]>
Commit | Line | Data |
---|---|---|
f500de0e PS |
1 | Index: libitm/ChangeLog |
2 | =================================================================== | |
3 | --- libitm/ChangeLog (.../tags/gcc_4_7_0_release) (wersja 187293) | |
4 | +++ libitm/ChangeLog (.../branches/gcc-4_7-branch) (wersja 187293) | |
5 | @@ -1,3 +1,12 @@ | |
6 | +2012-04-04 H.J. Lu <hongjiu.lu@intel.com> | |
7 | + | |
8 | + Backported from mainline | |
9 | + 2012-04-04 H.J. Lu <hongjiu.lu@intel.com> | |
10 | + | |
11 | + PR libitm/52854 | |
12 | + * config/x86/target.h (gtm_jmpbuf): Replace long with long long | |
13 | + for x86-64. | |
14 | + | |
15 | 2012-03-22 Release Manager | |
16 | ||
17 | * GCC 4.7.0 released. | |
18 | Index: libitm/config/x86/target.h | |
19 | =================================================================== | |
20 | --- libitm/config/x86/target.h (.../tags/gcc_4_7_0_release) (wersja 187293) | |
21 | +++ libitm/config/x86/target.h (.../branches/gcc-4_7-branch) (wersja 187293) | |
22 | @@ -29,13 +29,13 @@ | |
23 | typedef struct gtm_jmpbuf | |
24 | { | |
25 | void *cfa; | |
26 | - unsigned long rbx; | |
27 | - unsigned long rbp; | |
28 | - unsigned long r12; | |
29 | - unsigned long r13; | |
30 | - unsigned long r14; | |
31 | - unsigned long r15; | |
32 | - unsigned long rip; | |
33 | + unsigned long long rbx; | |
34 | + unsigned long long rbp; | |
35 | + unsigned long long r12; | |
36 | + unsigned long long r13; | |
37 | + unsigned long long r14; | |
38 | + unsigned long long r15; | |
39 | + unsigned long long rip; | |
40 | } gtm_jmpbuf; | |
41 | #else | |
42 | typedef struct gtm_jmpbuf | |
43 | Index: libgomp/ChangeLog | |
44 | =================================================================== | |
45 | --- libgomp/ChangeLog (.../tags/gcc_4_7_0_release) (wersja 187293) | |
46 | +++ libgomp/ChangeLog (.../branches/gcc-4_7-branch) (wersja 187293) | |
47 | @@ -1,3 +1,8 @@ | |
48 | +2012-03-22 Jakub Jelinek <jakub@redhat.com> | |
49 | + | |
50 | + PR middle-end/52547 | |
51 | + * testsuite/libgomp.c/pr52547.c: New test. | |
52 | + | |
53 | 2012-03-22 Release Manager | |
54 | ||
55 | * GCC 4.7.0 released. | |
56 | Index: libgomp/testsuite/libgomp.c/pr52547.c | |
57 | =================================================================== | |
58 | --- libgomp/testsuite/libgomp.c/pr52547.c (.../tags/gcc_4_7_0_release) (wersja 0) | |
59 | +++ libgomp/testsuite/libgomp.c/pr52547.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
60 | @@ -0,0 +1,36 @@ | |
61 | +/* PR middle-end/52547 */ | |
62 | +/* { dg-do run } */ | |
63 | + | |
64 | +extern void abort (void); | |
65 | + | |
66 | +__attribute__((noinline, noclone)) int | |
67 | +baz (int *x, int (*fn) (int *)) | |
68 | +{ | |
69 | + return fn (x); | |
70 | +} | |
71 | + | |
72 | +__attribute__((noinline, noclone)) int | |
73 | +foo (int x, int *y) | |
74 | +{ | |
75 | + int i, e = 0; | |
76 | +#pragma omp parallel for reduction(|:e) | |
77 | + for (i = 0; i < x; ++i) | |
78 | + { | |
79 | + __label__ lab; | |
80 | + int bar (int *z) { return z - y; } | |
81 | + if (baz (&y[i], bar) != i) | |
82 | + e |= 1; | |
83 | + } | |
84 | + return e; | |
85 | +} | |
86 | + | |
87 | +int | |
88 | +main () | |
89 | +{ | |
90 | + int a[100], i; | |
91 | + for (i = 0; i < 100; i++) | |
92 | + a[i] = i; | |
93 | + if (foo (100, a)) | |
94 | + abort (); | |
95 | + return 0; | |
96 | +} | |
97 | Index: libstdc++-v3/configure | |
98 | =================================================================== | |
99 | --- libstdc++-v3/configure (.../tags/gcc_4_7_0_release) (wersja 187293) | |
100 | +++ libstdc++-v3/configure (.../branches/gcc-4_7-branch) (wersja 187293) | |
101 | @@ -3025,7 +3025,8 @@ | |
102 | target_alias=${target_alias-$host_alias} | |
103 | ||
104 | # Handy for debugging: | |
105 | -#AC_MSG_NOTICE($build / $host / $target / $host_alias / $target_alias); sleep 5 | |
106 | +{ $as_echo "$as_me:${as_lineno-$LINENO}: $build / $host / $target / $host_alias / $target_alias" >&5 | |
107 | +$as_echo "$as_me: $build / $host / $target / $host_alias / $target_alias" >&6;}; sleep 5 | |
108 | ||
109 | if test "$build" != "$host"; then | |
110 | # We are being configured with some form of cross compiler. | |
111 | @@ -11497,7 +11498,7 @@ | |
112 | lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 | |
113 | lt_status=$lt_dlunknown | |
114 | cat > conftest.$ac_ext <<_LT_EOF | |
115 | -#line 11500 "configure" | |
116 | +#line 11501 "configure" | |
117 | #include "confdefs.h" | |
118 | ||
119 | #if HAVE_DLFCN_H | |
120 | @@ -11603,7 +11604,7 @@ | |
121 | lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 | |
122 | lt_status=$lt_dlunknown | |
123 | cat > conftest.$ac_ext <<_LT_EOF | |
124 | -#line 11606 "configure" | |
125 | +#line 11607 "configure" | |
126 | #include "confdefs.h" | |
127 | ||
128 | #if HAVE_DLFCN_H | |
129 | @@ -14961,7 +14962,7 @@ | |
130 | # | |
131 | # Fake what AC_TRY_COMPILE does. XXX Look at redoing this new-style. | |
132 | cat > conftest.$ac_ext << EOF | |
133 | -#line 14964 "configure" | |
134 | +#line 14965 "configure" | |
135 | struct S { ~S(); }; | |
136 | void bar(); | |
137 | void foo() | |
138 | @@ -15296,7 +15297,7 @@ | |
139 | # Fake what AC_TRY_COMPILE does. | |
140 | ||
141 | cat > conftest.$ac_ext << EOF | |
142 | -#line 15299 "configure" | |
143 | +#line 15300 "configure" | |
144 | int main() | |
145 | { | |
146 | typedef bool atomic_type; | |
147 | @@ -15331,7 +15332,7 @@ | |
148 | rm -f conftest* | |
149 | ||
150 | cat > conftest.$ac_ext << EOF | |
151 | -#line 15334 "configure" | |
152 | +#line 15335 "configure" | |
153 | int main() | |
154 | { | |
155 | typedef short atomic_type; | |
156 | @@ -15366,7 +15367,7 @@ | |
157 | rm -f conftest* | |
158 | ||
159 | cat > conftest.$ac_ext << EOF | |
160 | -#line 15369 "configure" | |
161 | +#line 15370 "configure" | |
162 | int main() | |
163 | { | |
164 | // NB: _Atomic_word not necessarily int. | |
165 | @@ -15402,7 +15403,7 @@ | |
166 | rm -f conftest* | |
167 | ||
168 | cat > conftest.$ac_ext << EOF | |
169 | -#line 15405 "configure" | |
170 | +#line 15406 "configure" | |
171 | int main() | |
172 | { | |
173 | typedef long long atomic_type; | |
174 | @@ -15446,11 +15447,10 @@ | |
175 | ac_compiler_gnu=$ac_cv_c_compiler_gnu | |
176 | ||
177 | ||
178 | - # Set atomicity_dir to builtins if all of above tests pass. | |
179 | + # Set atomicity_dir to builtins if all but the long long test above passes. | |
180 | if test $glibcxx_cv_atomic_bool = yes \ | |
181 | && test $glibcxx_cv_atomic_short = yes \ | |
182 | - && test $glibcxx_cv_atomic_int = yes \ | |
183 | - && test $glibcxx_cv_atomic_long_long = yes ; then | |
184 | + && test $glibcxx_cv_atomic_int = yes; then | |
185 | ||
186 | $as_echo "#define _GLIBCXX_ATOMIC_BUILTINS 1" >>confdefs.h | |
187 | ||
188 | Index: libstdc++-v3/src/Makefile.in | |
189 | =================================================================== | |
190 | --- libstdc++-v3/src/Makefile.in (.../tags/gcc_4_7_0_release) (wersja 187293) | |
191 | +++ libstdc++-v3/src/Makefile.in (.../branches/gcc-4_7-branch) (wersja 187293) | |
192 | @@ -88,20 +88,22 @@ | |
193 | am__installdirs = "$(DESTDIR)$(toolexeclibdir)" | |
194 | LTLIBRARIES = $(toolexeclib_LTLIBRARIES) | |
195 | am__DEPENDENCIES_1 = | |
196 | -am_libstdc___la_OBJECTS = | |
197 | +@GLIBCXX_LDBL_COMPAT_TRUE@am__objects_1 = compatibility-ldbl.lo | |
198 | +@ENABLE_PARALLEL_TRUE@am__objects_2 = compatibility-parallel_list.lo \ | |
199 | +@ENABLE_PARALLEL_TRUE@ compatibility-parallel_list-2.lo | |
200 | +am__objects_3 = compatibility.lo compatibility-debug_list.lo \ | |
201 | + compatibility-debug_list-2.lo compatibility-list.lo \ | |
202 | + compatibility-list-2.lo $(am__objects_1) $(am__objects_2) | |
203 | +am__objects_4 = compatibility-c++0x.lo compatibility-atomic-c++0x.lo \ | |
204 | + compatibility-thread-c++0x.lo | |
205 | +am_libstdc___la_OBJECTS = $(am__objects_3) $(am__objects_4) | |
206 | libstdc___la_OBJECTS = $(am_libstdc___la_OBJECTS) | |
207 | DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) | |
208 | depcomp = | |
209 | am__depfiles_maybe = | |
210 | -COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ | |
211 | - $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) | |
212 | -LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ | |
213 | - --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ | |
214 | - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) | |
215 | -CCLD = $(CC) | |
216 | -LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ | |
217 | - --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \ | |
218 | - $(LDFLAGS) -o $@ | |
219 | +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ | |
220 | + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) | |
221 | +CXXLD = $(CXX) | |
222 | SOURCES = $(libstdc___la_SOURCES) | |
223 | RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ | |
224 | html-recursive info-recursive install-data-recursive \ | |
225 | @@ -331,7 +333,27 @@ | |
226 | ||
227 | # Cross compiler support. | |
228 | toolexeclib_LTLIBRARIES = libstdc++.la | |
229 | -libstdc___la_SOURCES = | |
230 | +@GLIBCXX_LDBL_COMPAT_FALSE@ldbl_compat_sources = | |
231 | +@GLIBCXX_LDBL_COMPAT_TRUE@ldbl_compat_sources = compatibility-ldbl.cc | |
232 | +@ENABLE_PARALLEL_FALSE@parallel_compat_sources = | |
233 | +@ENABLE_PARALLEL_TRUE@parallel_compat_sources = \ | |
234 | +@ENABLE_PARALLEL_TRUE@ compatibility-parallel_list.cc compatibility-parallel_list-2.cc | |
235 | + | |
236 | +cxx98_sources = \ | |
237 | + compatibility.cc \ | |
238 | + compatibility-debug_list.cc \ | |
239 | + compatibility-debug_list-2.cc \ | |
240 | + compatibility-list.cc \ | |
241 | + compatibility-list-2.cc \ | |
242 | + ${ldbl_compat_sources} \ | |
243 | + ${parallel_compat_sources} | |
244 | + | |
245 | +cxx11_sources = \ | |
246 | + compatibility-c++0x.cc \ | |
247 | + compatibility-atomic-c++0x.cc \ | |
248 | + compatibility-thread-c++0x.cc | |
249 | + | |
250 | +libstdc___la_SOURCES = $(cxx98_sources) $(cxx11_sources) | |
251 | libstdc___la_LIBADD = \ | |
252 | $(GLIBCXX_LIBS) \ | |
253 | $(top_builddir)/libsupc++/libsupc++convenience.la \ | |
254 | @@ -349,6 +371,9 @@ | |
255 | ||
256 | libstdc___la_LINK = $(CXXLINK) $(libstdc___la_LDFLAGS) | |
257 | ||
258 | +# Use special rules for parallel mode compilation. | |
259 | +PARALLEL_FLAGS = -fopenmp -D_GLIBCXX_PARALLEL -I$(glibcxx_builddir)/../libgomp | |
260 | + | |
261 | # AM_CXXFLAGS needs to be in each subdirectory so that it can be | |
262 | # modified in a per-library or per-sub-library way. Need to manually | |
263 | # set this option because CONFIG_CXXFLAGS has to be after | |
264 | @@ -356,12 +381,10 @@ | |
265 | # as the occasion calls for it. | |
266 | AM_CXXFLAGS = \ | |
267 | $(XTEMPLATE_FLAGS) \ | |
268 | - $(WARN_CXXFLAGS) \ | |
269 | - $(OPTIMIZE_CXXFLAGS) \ | |
270 | - $(CONFIG_CXXFLAGS) | |
271 | + $(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS) | |
272 | ||
273 | ||
274 | -# libstdc++ libtool notes | |
275 | +# Libtool notes | |
276 | ||
277 | # 1) Need to explicitly set LTCXXCOMPILE so that AM_CXXFLAGS is | |
278 | # last. (That way, things like -O2 passed down from the toplevel can | |
279 | @@ -379,10 +402,11 @@ | |
280 | # correct solution is to add `--tag CXX' to LTCXXCOMPILE and maybe | |
281 | # CXXLINK, just after $(LIBTOOL), so that libtool doesn't have to | |
282 | # attempt to infer which configuration to use | |
283 | -LTCXXCOMPILE = $(LIBTOOL) --tag CXX \ | |
284 | - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile \ | |
285 | - $(CXX) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ | |
286 | - $(AM_CXXFLAGS) $(CXXFLAGS) | |
287 | +LTCXXCOMPILE = \ | |
288 | + $(LIBTOOL) --tag CXX \ | |
289 | + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ | |
290 | + --mode=compile $(CXX) $(INCLUDES) \ | |
291 | + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) | |
292 | ||
293 | LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS)) | |
294 | ||
295 | @@ -392,8 +416,11 @@ | |
296 | # course is problematic at this point. So, we get the top-level | |
297 | # directory to configure libstdc++-v3 to use gcc as the C++ | |
298 | # compilation driver. | |
299 | -CXXLINK = $(LIBTOOL) --tag CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ | |
300 | - $(CXX) $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@ | |
301 | +CXXLINK = \ | |
302 | + $(LIBTOOL) --tag CXX \ | |
303 | + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ | |
304 | + --mode=link $(CXX) \ | |
305 | + $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@ | |
306 | ||
307 | @ENABLE_SYMVERS_TRUE@CLEANFILES = libstdc++-symbols.ver $(version_dep) | |
308 | @ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@version_arg = -Wl,-exported_symbols_list,libstdc++-symbols.explist | |
309 | @@ -423,6 +450,7 @@ | |
310 | all: all-recursive | |
311 | ||
312 | .SUFFIXES: | |
313 | +.SUFFIXES: .cc .lo .o .obj | |
314 | $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/fragment.am $(am__configure_deps) | |
315 | @for dep in $?; do \ | |
316 | case '$(am__configure_deps)' in \ | |
317 | @@ -493,6 +521,15 @@ | |
318 | distclean-compile: | |
319 | -rm -f *.tab.c | |
320 | ||
321 | +.cc.o: | |
322 | + $(CXXCOMPILE) -c -o $@ $< | |
323 | + | |
324 | +.cc.obj: | |
325 | + $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` | |
326 | + | |
327 | +.cc.lo: | |
328 | + $(LTCXXCOMPILE) -c -o $@ $< | |
329 | + | |
330 | mostlyclean-libtool: | |
331 | -rm -f *.lo | |
332 | ||
333 | @@ -757,9 +794,41 @@ | |
334 | uninstall-toolexeclibLTLIBRARIES | |
335 | ||
336 | ||
337 | -vpath % $(top_srcdir)/src | |
338 | -vpath % $(top_srcdir) | |
339 | +vpath % $(top_srcdir)/src/c++98 | |
340 | +vpath % $(top_srcdir)/src/c++11 | |
341 | +compatibility-parallel_list.lo: compatibility-parallel_list.cc | |
342 | + $(LTCXXCOMPILE) -c $< | |
343 | +compatibility-parallel_list.o: compatibility-parallel_list.cc | |
344 | + $(CXXCOMPILE) -c $< | |
345 | ||
346 | +compatibility-parallel_list-2.lo: compatibility-parallel_list-2.cc | |
347 | + $(LTCXXCOMPILE) -c $< | |
348 | +compatibility-parallel_list-2.o: compatibility-parallel_list-2.cc | |
349 | + $(CXXCOMPILE) -c $< | |
350 | + | |
351 | +# Use special rules for compatibility-ldbl.cc compilation, as we need to | |
352 | +# pass -mlong-double-64. | |
353 | +@GLIBCXX_LDBL_COMPAT_TRUE@compatibility-ldbl.lo: compatibility-ldbl.cc | |
354 | +@GLIBCXX_LDBL_COMPAT_TRUE@ $(LTCXXCOMPILE) -mlong-double-64 -c $< | |
355 | +@GLIBCXX_LDBL_COMPAT_TRUE@compatibility-ldbl.o: compatibility-ldbl.cc | |
356 | +@GLIBCXX_LDBL_COMPAT_TRUE@ $(CXXCOMPILE) -mlong-double-64 -c $< | |
357 | + | |
358 | +# Use special rules for C++11 files/objects. | |
359 | +compatibility-c++0x.lo: compatibility-c++0x.cc | |
360 | + $(LTCXXCOMPILE) -std=gnu++11 -c $< | |
361 | +compatibility-c++0x.o: compatibility-c++0x.cc | |
362 | + $(CXXCOMPILE) -std=gnu++11 -c $< | |
363 | + | |
364 | +compatibility-atomic-c++0x.lo: compatibility-atomic-c++0x.cc | |
365 | + $(LTCXXCOMPILE) -std=gnu++11 -c $< | |
366 | +compatibility-atomic-c++0x.o: compatibility-atomic-c++0x.cc | |
367 | + $(CXXCOMPILE) -std=gnu++11 -c $< | |
368 | + | |
369 | +compatibility-thread-c++0x.lo: compatibility-thread-c++0x.cc | |
370 | + $(LTCXXCOMPILE) -std=gnu++11 -c $< | |
371 | +compatibility-thread-c++0x.o: compatibility-thread-c++0x.cc | |
372 | + $(CXXCOMPILE) -std=gnu++11 -c $< | |
373 | + | |
374 | # Symbol versioning for shared libraries. | |
375 | @ENABLE_SYMVERS_TRUE@libstdc++-symbols.ver: ${glibcxx_srcdir}/$(SYMVER_FILE) \ | |
376 | @ENABLE_SYMVERS_TRUE@ $(port_specific_symbol_files) | |
377 | @@ -777,7 +846,7 @@ | |
378 | @ENABLE_SYMVERS_TRUE@ fi; \ | |
379 | @ENABLE_SYMVERS_TRUE@ fi | |
380 | @ENABLE_SYMVERS_TRUE@ $(EGREP) -v '^[ ]*#(#| |$$)' $@.tmp | \ | |
381 | -@ENABLE_SYMVERS_TRUE@ $(COMPILE) -E -P -include config.h - > $@ || (rm -f $@ ; exit 1) | |
382 | +@ENABLE_SYMVERS_TRUE@ $(CC) -E -P -include ../config.h - > $@ || (rm -f $@ ; exit 1) | |
383 | @ENABLE_SYMVERS_TRUE@ rm -f $@.tmp | |
384 | @ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@libstdc++-symbols.ver-sun : libstdc++-symbols.ver \ | |
385 | @ENABLE_SYMVERS_SUN_TRUE@@ENABLE_SYMVERS_TRUE@ $(toplevel_srcdir)/contrib/make_sunver.pl \ | |
386 | @@ -800,7 +869,6 @@ | |
387 | @ENABLE_SYMVERS_DARWIN_TRUE@@ENABLE_SYMVERS_TRUE@ > $@ || (rm -f $@ ; exit 1) | |
388 | ||
389 | # Control additional build primary rules. | |
390 | -# EXTRA_LTLIBRARIES = | |
391 | all-once: libstdc++convenience.la $(STAMP_DEBUG) | |
392 | install-data-once: $(STAMP_INSTALL_DEBUG) | |
393 | ||
394 | @@ -846,7 +914,7 @@ | |
395 | mv Makefile Makefile.tmp; \ | |
396 | sed -e 's,all-local: all-once,all-local:,' \ | |
397 | -e 's,install-data-local: install-data-once,install-data-local:,' \ | |
398 | - -e 's,src/c,src/debug/c,' \ | |
399 | + -e '/vpath/!s,src/c,src/debug/c,' \ | |
400 | < Makefile.tmp > Makefile ; \ | |
401 | $(MAKE) CXXFLAGS='$(DEBUG_FLAGS)' \ | |
402 | toolexeclibdir=$(glibcxx_toolexeclibdir)/debug all) ; | |
403 | Index: libstdc++-v3/src/Makefile.am | |
404 | =================================================================== | |
405 | --- libstdc++-v3/src/Makefile.am (.../tags/gcc_4_7_0_release) (wersja 187293) | |
406 | +++ libstdc++-v3/src/Makefile.am (.../branches/gcc-4_7-branch) (wersja 187293) | |
407 | @@ -29,11 +29,38 @@ | |
408 | # Cross compiler support. | |
409 | toolexeclib_LTLIBRARIES = libstdc++.la | |
410 | ||
411 | -vpath % $(top_srcdir)/src | |
412 | -vpath % $(top_srcdir) | |
413 | +vpath % $(top_srcdir)/src/c++98 | |
414 | +vpath % $(top_srcdir)/src/c++11 | |
415 | ||
416 | -libstdc___la_SOURCES = | |
417 | +if GLIBCXX_LDBL_COMPAT | |
418 | +ldbl_compat_sources = compatibility-ldbl.cc | |
419 | +else | |
420 | +ldbl_compat_sources = | |
421 | +endif | |
422 | ||
423 | +if ENABLE_PARALLEL | |
424 | +parallel_compat_sources = \ | |
425 | + compatibility-parallel_list.cc compatibility-parallel_list-2.cc | |
426 | +else | |
427 | +parallel_compat_sources = | |
428 | +endif | |
429 | + | |
430 | +cxx98_sources = \ | |
431 | + compatibility.cc \ | |
432 | + compatibility-debug_list.cc \ | |
433 | + compatibility-debug_list-2.cc \ | |
434 | + compatibility-list.cc \ | |
435 | + compatibility-list-2.cc \ | |
436 | + ${ldbl_compat_sources} \ | |
437 | + ${parallel_compat_sources} | |
438 | + | |
439 | +cxx11_sources = \ | |
440 | + compatibility-c++0x.cc \ | |
441 | + compatibility-atomic-c++0x.cc \ | |
442 | + compatibility-thread-c++0x.cc | |
443 | + | |
444 | +libstdc___la_SOURCES = $(cxx98_sources) $(cxx11_sources) | |
445 | + | |
446 | libstdc___la_LIBADD = \ | |
447 | $(GLIBCXX_LIBS) \ | |
448 | $(top_builddir)/libsupc++/libsupc++convenience.la \ | |
449 | @@ -52,6 +79,43 @@ | |
450 | libstdc___la_LINK = $(CXXLINK) $(libstdc___la_LDFLAGS) | |
451 | ||
452 | ||
453 | +# Use special rules for parallel mode compilation. | |
454 | +PARALLEL_FLAGS = -fopenmp -D_GLIBCXX_PARALLEL -I$(glibcxx_builddir)/../libgomp | |
455 | +compatibility-parallel_list.lo: compatibility-parallel_list.cc | |
456 | + $(LTCXXCOMPILE) -c $< | |
457 | +compatibility-parallel_list.o: compatibility-parallel_list.cc | |
458 | + $(CXXCOMPILE) -c $< | |
459 | + | |
460 | +compatibility-parallel_list-2.lo: compatibility-parallel_list-2.cc | |
461 | + $(LTCXXCOMPILE) -c $< | |
462 | +compatibility-parallel_list-2.o: compatibility-parallel_list-2.cc | |
463 | + $(CXXCOMPILE) -c $< | |
464 | + | |
465 | +# Use special rules for compatibility-ldbl.cc compilation, as we need to | |
466 | +# pass -mlong-double-64. | |
467 | +if GLIBCXX_LDBL_COMPAT | |
468 | +compatibility-ldbl.lo: compatibility-ldbl.cc | |
469 | + $(LTCXXCOMPILE) -mlong-double-64 -c $< | |
470 | +compatibility-ldbl.o: compatibility-ldbl.cc | |
471 | + $(CXXCOMPILE) -mlong-double-64 -c $< | |
472 | +endif | |
473 | + | |
474 | +# Use special rules for C++11 files/objects. | |
475 | +compatibility-c++0x.lo: compatibility-c++0x.cc | |
476 | + $(LTCXXCOMPILE) -std=gnu++11 -c $< | |
477 | +compatibility-c++0x.o: compatibility-c++0x.cc | |
478 | + $(CXXCOMPILE) -std=gnu++11 -c $< | |
479 | + | |
480 | +compatibility-atomic-c++0x.lo: compatibility-atomic-c++0x.cc | |
481 | + $(LTCXXCOMPILE) -std=gnu++11 -c $< | |
482 | +compatibility-atomic-c++0x.o: compatibility-atomic-c++0x.cc | |
483 | + $(CXXCOMPILE) -std=gnu++11 -c $< | |
484 | + | |
485 | +compatibility-thread-c++0x.lo: compatibility-thread-c++0x.cc | |
486 | + $(LTCXXCOMPILE) -std=gnu++11 -c $< | |
487 | +compatibility-thread-c++0x.o: compatibility-thread-c++0x.cc | |
488 | + $(CXXCOMPILE) -std=gnu++11 -c $< | |
489 | + | |
490 | # AM_CXXFLAGS needs to be in each subdirectory so that it can be | |
491 | # modified in a per-library or per-sub-library way. Need to manually | |
492 | # set this option because CONFIG_CXXFLAGS has to be after | |
493 | @@ -59,13 +123,10 @@ | |
494 | # as the occasion calls for it. | |
495 | AM_CXXFLAGS = \ | |
496 | $(XTEMPLATE_FLAGS) \ | |
497 | - $(WARN_CXXFLAGS) \ | |
498 | - $(OPTIMIZE_CXXFLAGS) \ | |
499 | - $(CONFIG_CXXFLAGS) | |
500 | + $(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS) | |
501 | ||
502 | +# Libtool notes | |
503 | ||
504 | -# libstdc++ libtool notes | |
505 | - | |
506 | # 1) Need to explicitly set LTCXXCOMPILE so that AM_CXXFLAGS is | |
507 | # last. (That way, things like -O2 passed down from the toplevel can | |
508 | # be overridden by --enable-debug.) | |
509 | @@ -82,10 +143,11 @@ | |
510 | # correct solution is to add `--tag CXX' to LTCXXCOMPILE and maybe | |
511 | # CXXLINK, just after $(LIBTOOL), so that libtool doesn't have to | |
512 | # attempt to infer which configuration to use | |
513 | -LTCXXCOMPILE = $(LIBTOOL) --tag CXX \ | |
514 | - $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile \ | |
515 | - $(CXX) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ | |
516 | - $(AM_CXXFLAGS) $(CXXFLAGS) | |
517 | +LTCXXCOMPILE = \ | |
518 | + $(LIBTOOL) --tag CXX \ | |
519 | + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ | |
520 | + --mode=compile $(CXX) $(INCLUDES) \ | |
521 | + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) | |
522 | ||
523 | LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS)) | |
524 | ||
525 | @@ -95,9 +157,13 @@ | |
526 | # course is problematic at this point. So, we get the top-level | |
527 | # directory to configure libstdc++-v3 to use gcc as the C++ | |
528 | # compilation driver. | |
529 | -CXXLINK = $(LIBTOOL) --tag CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ | |
530 | - $(CXX) $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@ | |
531 | +CXXLINK = \ | |
532 | + $(LIBTOOL) --tag CXX \ | |
533 | + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ | |
534 | + --mode=link $(CXX) \ | |
535 | + $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@ | |
536 | ||
537 | + | |
538 | # Symbol versioning for shared libraries. | |
539 | if ENABLE_SYMVERS | |
540 | libstdc++-symbols.ver: ${glibcxx_srcdir}/$(SYMVER_FILE) \ | |
541 | @@ -116,7 +182,7 @@ | |
542 | fi; \ | |
543 | fi | |
544 | $(EGREP) -v '^[ ]*#(#| |$$)' $@.tmp | \ | |
545 | - $(COMPILE) -E -P -include config.h - > $@ || (rm -f $@ ; exit 1) | |
546 | + $(CC) -E -P -include ../config.h - > $@ || (rm -f $@ ; exit 1) | |
547 | rm -f $@.tmp | |
548 | ||
549 | CLEANFILES = libstdc++-symbols.ver | |
550 | @@ -165,7 +231,6 @@ | |
551 | ||
552 | ||
553 | # Control additional build primary rules. | |
554 | -# EXTRA_LTLIBRARIES = | |
555 | all-once: libstdc++convenience.la $(STAMP_DEBUG) | |
556 | install-data-once: $(STAMP_INSTALL_DEBUG) | |
557 | ||
558 | @@ -228,7 +293,7 @@ | |
559 | mv Makefile Makefile.tmp; \ | |
560 | sed -e 's,all-local: all-once,all-local:,' \ | |
561 | -e 's,install-data-local: install-data-once,install-data-local:,' \ | |
562 | - -e 's,src/c,src/debug/c,' \ | |
563 | + -e '/vpath/!s,src/c,src/debug/c,' \ | |
564 | < Makefile.tmp > Makefile ; \ | |
565 | $(MAKE) CXXFLAGS='$(DEBUG_FLAGS)' \ | |
566 | toolexeclibdir=$(glibcxx_toolexeclibdir)/debug all) ; | |
567 | Index: libstdc++-v3/src/c++98/Makefile.in | |
568 | =================================================================== | |
569 | --- libstdc++-v3/src/c++98/Makefile.in (.../tags/gcc_4_7_0_release) (wersja 187293) | |
570 | +++ libstdc++-v3/src/c++98/Makefile.in (.../branches/gcc-4_7-branch) (wersja 187293) | |
571 | @@ -76,23 +76,18 @@ | |
572 | @ENABLE_EXTERN_TEMPLATE_TRUE@ misc-inst.lo ostream-inst.lo \ | |
573 | @ENABLE_EXTERN_TEMPLATE_TRUE@ sstream-inst.lo streambuf-inst.lo \ | |
574 | @ENABLE_EXTERN_TEMPLATE_TRUE@ wlocale-inst.lo | |
575 | -@GLIBCXX_LDBL_COMPAT_TRUE@am__objects_3 = compatibility-ldbl.lo | |
576 | -@ENABLE_PARALLEL_TRUE@am__objects_4 = parallel_settings.lo \ | |
577 | -@ENABLE_PARALLEL_TRUE@ compatibility-parallel_list.lo \ | |
578 | -@ENABLE_PARALLEL_TRUE@ compatibility-parallel_list-2.lo | |
579 | -am__objects_5 = basic_file.lo c++locale.lo $(am__objects_2) \ | |
580 | - $(am__objects_3) $(am__objects_4) | |
581 | -am__objects_6 = bitmap_allocator.lo pool_allocator.lo mt_allocator.lo \ | |
582 | - codecvt.lo compatibility.lo compatibility-debug_list.lo \ | |
583 | - compatibility-debug_list-2.lo compatibility-list.lo \ | |
584 | - compatibility-list-2.lo complex_io.lo ctype.lo globals_io.lo \ | |
585 | - hash_tr1.lo hashtable_tr1.lo ios.lo ios_failure.lo ios_init.lo \ | |
586 | +@ENABLE_PARALLEL_TRUE@am__objects_3 = parallel_settings.lo | |
587 | +am__objects_4 = basic_file.lo c++locale.lo $(am__objects_2) \ | |
588 | + $(am__objects_3) | |
589 | +am__objects_5 = bitmap_allocator.lo pool_allocator.lo mt_allocator.lo \ | |
590 | + codecvt.lo complex_io.lo ctype.lo globals_io.lo hash_tr1.lo \ | |
591 | + hashtable_tr1.lo ios.lo ios_failure.lo ios_init.lo \ | |
592 | ios_locale.lo list.lo locale.lo locale_init.lo \ | |
593 | locale_facets.lo localename.lo math_stubs_float.lo \ | |
594 | math_stubs_long_double.lo stdexcept.lo strstream.lo tree.lo \ | |
595 | istream.lo streambuf.lo valarray.lo $(am__objects_1) \ | |
596 | - $(am__objects_5) | |
597 | -am_libc__98convenience_la_OBJECTS = $(am__objects_6) | |
598 | + $(am__objects_4) | |
599 | +am_libc__98convenience_la_OBJECTS = $(am__objects_5) | |
600 | libc__98convenience_la_OBJECTS = $(am_libc__98convenience_la_OBJECTS) | |
601 | DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) | |
602 | depcomp = | |
603 | @@ -315,7 +310,7 @@ | |
604 | AM_CPPFLAGS = $(GLIBCXX_INCLUDES) | |
605 | ||
606 | # Convenience library for C++98 runtime. | |
607 | -noinst_LTLIBRARIES = libc++98convenience.la | |
608 | +noinst_LTLIBRARIES = libc++98convenience.la | |
609 | headers = | |
610 | ||
611 | # Source files linked in via configuration/make substitution for a | |
612 | @@ -337,15 +332,10 @@ | |
613 | # particular host, but with ad hoc naming rules. | |
614 | host_sources_extra = \ | |
615 | basic_file.cc c++locale.cc \ | |
616 | - ${inst_sources} ${ldbl_compat_sources} ${parallel_sources} | |
617 | + ${inst_sources} ${parallel_sources} | |
618 | ||
619 | @ENABLE_PARALLEL_FALSE@parallel_sources = | |
620 | -@ENABLE_PARALLEL_TRUE@parallel_sources = parallel_settings.cc \ | |
621 | -@ENABLE_PARALLEL_TRUE@ compatibility-parallel_list.cc \ | |
622 | -@ENABLE_PARALLEL_TRUE@ compatibility-parallel_list-2.cc | |
623 | - | |
624 | -@GLIBCXX_LDBL_COMPAT_FALSE@ldbl_compat_sources = | |
625 | -@GLIBCXX_LDBL_COMPAT_TRUE@ldbl_compat_sources = compatibility-ldbl.cc | |
626 | +@ENABLE_PARALLEL_TRUE@parallel_sources = parallel_settings.cc | |
627 | @ENABLE_EXTERN_TEMPLATE_FALSE@XTEMPLATE_FLAGS = | |
628 | @ENABLE_EXTERN_TEMPLATE_TRUE@XTEMPLATE_FLAGS = -fno-implicit-templates | |
629 | @ENABLE_EXTERN_TEMPLATE_FALSE@inst_sources = | |
630 | @@ -370,11 +360,6 @@ | |
631 | pool_allocator.cc \ | |
632 | mt_allocator.cc \ | |
633 | codecvt.cc \ | |
634 | - compatibility.cc \ | |
635 | - compatibility-debug_list.cc \ | |
636 | - compatibility-debug_list-2.cc \ | |
637 | - compatibility-list.cc \ | |
638 | - compatibility-list-2.cc \ | |
639 | complex_io.cc \ | |
640 | ctype.cc \ | |
641 | globals_io.cc \ | |
642 | @@ -417,9 +402,7 @@ | |
643 | AM_CXXFLAGS = \ | |
644 | $(PIC_CXXFLAGS) \ | |
645 | $(XTEMPLATE_FLAGS) \ | |
646 | - $(WARN_CXXFLAGS) \ | |
647 | - $(OPTIMIZE_CXXFLAGS) \ | |
648 | - $(CONFIG_CXXFLAGS) | |
649 | + $(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS) | |
650 | ||
651 | AM_MAKEFLAGS = \ | |
652 | "gxx_include_dir=$(gxx_include_dir)" | |
653 | @@ -445,9 +428,11 @@ | |
654 | # attempt to infer which configuration to use. | |
655 | # We have to put --tag disable-shared after --tag CXX lest things | |
656 | # CXX undo the affect of disable-shared. | |
657 | -LTCXXCOMPILE = $(LIBTOOL) --tag CXX --tag disable-shared $(LIBTOOLFLAGS) \ | |
658 | - --mode=compile $(CXX) $(TOPLEVEL_INCLUDES) \ | |
659 | - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) | |
660 | +LTCXXCOMPILE = \ | |
661 | + $(LIBTOOL) --tag CXX --tag disable-shared \ | |
662 | + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ | |
663 | + --mode=compile $(CXX) $(TOPLEVEL_INCLUDES) \ | |
664 | + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) | |
665 | ||
666 | LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS)) | |
667 | ||
668 | @@ -457,9 +442,11 @@ | |
669 | # course is problematic at this point. So, we get the top-level | |
670 | # directory to configure libstdc++-v3 to use gcc as the C++ | |
671 | # compilation driver. | |
672 | -CXXLINK = $(LIBTOOL) --tag CXX --tag disable-shared $(LIBTOOLFLAGS) \ | |
673 | - --mode=link $(CXX) \ | |
674 | - $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@ | |
675 | +CXXLINK = \ | |
676 | + $(LIBTOOL) --tag CXX --tag disable-shared \ | |
677 | + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ | |
678 | + --mode=link $(CXX) \ | |
679 | + $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@ | |
680 | ||
681 | all: all-am | |
682 | ||
683 | @@ -726,7 +713,6 @@ | |
684 | $(LN_S) ${glibcxx_srcdir}/$(BASIC_FILE_CC) ./$@ || true | |
685 | ||
686 | vpath % $(top_srcdir)/src/c++98 | |
687 | -vpath % $(top_srcdir) | |
688 | strstream.lo: strstream.cc | |
689 | $(LTCXXCOMPILE) -I$(GLIBCXX_INCLUDE_DIR)/backward -Wno-deprecated -c $< | |
690 | strstream.o: strstream.cc | |
691 | @@ -744,23 +730,6 @@ | |
692 | parallel_settings.o: parallel_settings.cc | |
693 | $(CXXCOMPILE) $(PARALLEL_FLAGS) -c $< | |
694 | ||
695 | -compatibility-parallel_list.lo: compatibility-parallel_list.cc | |
696 | - $(LTCXXCOMPILE) -c $< | |
697 | -compatibility-parallel_list.o: compatibility-parallel_list.cc | |
698 | - $(CXXCOMPILE) -c $< | |
699 | - | |
700 | -compatibility-parallel_list-2.lo: compatibility-parallel_list-2.cc | |
701 | - $(LTCXXCOMPILE) -c $< | |
702 | -compatibility-parallel_list-2.o: compatibility-parallel_list-2.cc | |
703 | - $(CXXCOMPILE) -c $< | |
704 | - | |
705 | -# Use special rules for compatibility-ldbl.cc compilation, as we need to | |
706 | -# pass -mlong-double-64. | |
707 | -@GLIBCXX_LDBL_COMPAT_TRUE@compatibility-ldbl.lo: compatibility-ldbl.cc | |
708 | -@GLIBCXX_LDBL_COMPAT_TRUE@ $(LTCXXCOMPILE) -mlong-double-64 -c $< | |
709 | -@GLIBCXX_LDBL_COMPAT_TRUE@compatibility-ldbl.o: compatibility-ldbl.cc | |
710 | -@GLIBCXX_LDBL_COMPAT_TRUE@ $(CXXCOMPILE) -mlong-double-64 -c $< | |
711 | - | |
712 | # Tell versions [3.59,3.63) of GNU make to not export all variables. | |
713 | # Otherwise a system limit (for SysV at least) may be exceeded. | |
714 | .NOEXPORT: | |
715 | Index: libstdc++-v3/src/c++98/compatibility-list.cc | |
716 | =================================================================== | |
717 | --- libstdc++-v3/src/c++98/compatibility-list.cc (.../tags/gcc_4_7_0_release) (wersja 187293) | |
718 | +++ libstdc++-v3/src/c++98/compatibility-list.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
719 | @@ -1,6 +1,6 @@ | |
720 | // Compatibility symbols for previous versions, list bits -*- C++ -*- | |
721 | ||
722 | -// Copyright (C) 2010, 2011 Free Software Foundation, Inc. | |
723 | +// Copyright (C) 2010, 2011, 2012 Free Software Foundation, Inc. | |
724 | // | |
725 | // This file is part of the GNU ISO C++ Library. This library is free | |
726 | // software; you can redistribute it and/or modify it under the | |
727 | Index: libstdc++-v3/src/c++98/compatibility-ldbl.cc | |
728 | =================================================================== | |
729 | --- libstdc++-v3/src/c++98/compatibility-ldbl.cc (.../tags/gcc_4_7_0_release) (wersja 187293) | |
730 | +++ libstdc++-v3/src/c++98/compatibility-ldbl.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
731 | @@ -1,6 +1,6 @@ | |
732 | // Compatibility symbols for -mlong-double-64 compatibility -*- C++ -*- | |
733 | ||
734 | -// Copyright (C) 2006, 2008, 2009, 2010, 2011 | |
735 | +// Copyright (C) 2006, 2008, 2009, 2010, 2011, 2012 | |
736 | // Free Software Foundation, Inc. | |
737 | // | |
738 | // This file is part of the GNU ISO C++ Library. This library is free | |
739 | Index: libstdc++-v3/src/c++98/compatibility.cc | |
740 | =================================================================== | |
741 | --- libstdc++-v3/src/c++98/compatibility.cc (.../tags/gcc_4_7_0_release) (wersja 187293) | |
742 | +++ libstdc++-v3/src/c++98/compatibility.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
743 | @@ -199,7 +199,7 @@ | |
744 | #endif | |
745 | ||
746 | _GLIBCXX_END_NAMESPACE_VERSION | |
747 | -} // namespace | |
748 | +} // namespace std | |
749 | ||
750 | ||
751 | // NB: These symbols renames should go into the shared library only, | |
752 | @@ -228,7 +228,7 @@ | |
753 | #endif | |
754 | ||
755 | _GLIBCXX_END_NAMESPACE_VERSION | |
756 | -} // namespace | |
757 | +} // namespace std | |
758 | ||
759 | ||
760 | /* gcc-4.0.0 | |
761 | @@ -357,7 +357,7 @@ | |
762 | #endif | |
763 | ||
764 | _GLIBCXX_END_NAMESPACE_VERSION | |
765 | -} // namespace | |
766 | +} // namespace std | |
767 | ||
768 | // The rename syntax for default exported names is | |
769 | // asm (".symver name1,exportedname@GLIBCXX_3.4") | |
770 | Index: libstdc++-v3/src/c++98/compatibility-list-2.cc | |
771 | =================================================================== | |
772 | --- libstdc++-v3/src/c++98/compatibility-list-2.cc (.../tags/gcc_4_7_0_release) (wersja 187293) | |
773 | +++ libstdc++-v3/src/c++98/compatibility-list-2.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
774 | @@ -1,6 +1,6 @@ | |
775 | // Compatibility symbols for previous versions, list bits -*- C++ -*- | |
776 | ||
777 | -// Copyright (C) 2011 Free Software Foundation, Inc. | |
778 | +// Copyright (C) 2011, 2012 Free Software Foundation, Inc. | |
779 | // | |
780 | // This file is part of the GNU ISO C++ Library. This library is free | |
781 | // software; you can redistribute it and/or modify it under the | |
782 | @@ -24,6 +24,8 @@ | |
783 | ||
784 | #include <bits/move.h> | |
785 | ||
786 | +#ifdef PIC | |
787 | + | |
788 | #ifndef _GLIBCXX_BEGIN_NAMESPACE_COMPAT | |
789 | # define _GLIBCXX_BEGIN_NAMESPACE_COMPAT | |
790 | #endif | |
791 | @@ -111,3 +113,5 @@ | |
792 | _GLIBCXX_END_NAMESPACE_COMPAT | |
793 | ||
794 | } // namespace std | |
795 | + | |
796 | +#endif | |
797 | Index: libstdc++-v3/src/c++98/Makefile.am | |
798 | =================================================================== | |
799 | --- libstdc++-v3/src/c++98/Makefile.am (.../tags/gcc_4_7_0_release) (wersja 187293) | |
800 | +++ libstdc++-v3/src/c++98/Makefile.am (.../branches/gcc-4_7-branch) (wersja 187293) | |
801 | @@ -25,7 +25,7 @@ | |
802 | include $(top_srcdir)/fragment.am | |
803 | ||
804 | # Convenience library for C++98 runtime. | |
805 | -noinst_LTLIBRARIES = libc++98convenience.la | |
806 | +noinst_LTLIBRARIES = libc++98convenience.la | |
807 | ||
808 | headers = | |
809 | ||
810 | @@ -74,7 +74,7 @@ | |
811 | # particular host, but with ad hoc naming rules. | |
812 | host_sources_extra = \ | |
813 | basic_file.cc c++locale.cc \ | |
814 | - ${inst_sources} ${ldbl_compat_sources} ${parallel_sources} | |
815 | + ${inst_sources} ${parallel_sources} | |
816 | ||
817 | c++locale.cc: ${glibcxx_srcdir}/$(CLOCALE_CC) | |
818 | $(LN_S) ${glibcxx_srcdir}/$(CLOCALE_CC) ./$@ || true | |
819 | @@ -83,19 +83,11 @@ | |
820 | $(LN_S) ${glibcxx_srcdir}/$(BASIC_FILE_CC) ./$@ || true | |
821 | ||
822 | if ENABLE_PARALLEL | |
823 | -parallel_sources = parallel_settings.cc \ | |
824 | - compatibility-parallel_list.cc \ | |
825 | - compatibility-parallel_list-2.cc | |
826 | +parallel_sources = parallel_settings.cc | |
827 | else | |
828 | parallel_sources = | |
829 | endif | |
830 | ||
831 | -if GLIBCXX_LDBL_COMPAT | |
832 | -ldbl_compat_sources = compatibility-ldbl.cc | |
833 | -else | |
834 | -ldbl_compat_sources = | |
835 | -endif | |
836 | - | |
837 | if ENABLE_EXTERN_TEMPLATE | |
838 | XTEMPLATE_FLAGS = -fno-implicit-templates | |
839 | inst_sources = \ | |
840 | @@ -122,11 +114,6 @@ | |
841 | pool_allocator.cc \ | |
842 | mt_allocator.cc \ | |
843 | codecvt.cc \ | |
844 | - compatibility.cc \ | |
845 | - compatibility-debug_list.cc \ | |
846 | - compatibility-debug_list-2.cc \ | |
847 | - compatibility-list.cc \ | |
848 | - compatibility-list-2.cc \ | |
849 | complex_io.cc \ | |
850 | ctype.cc \ | |
851 | globals_io.cc \ | |
852 | @@ -153,7 +140,6 @@ | |
853 | ${host_sources_extra} | |
854 | ||
855 | vpath % $(top_srcdir)/src/c++98 | |
856 | -vpath % $(top_srcdir) | |
857 | ||
858 | libc__98convenience_la_SOURCES = $(sources) | |
859 | ||
860 | @@ -180,25 +166,6 @@ | |
861 | parallel_settings.o: parallel_settings.cc | |
862 | $(CXXCOMPILE) $(PARALLEL_FLAGS) -c $< | |
863 | ||
864 | -compatibility-parallel_list.lo: compatibility-parallel_list.cc | |
865 | - $(LTCXXCOMPILE) -c $< | |
866 | -compatibility-parallel_list.o: compatibility-parallel_list.cc | |
867 | - $(CXXCOMPILE) -c $< | |
868 | - | |
869 | -compatibility-parallel_list-2.lo: compatibility-parallel_list-2.cc | |
870 | - $(LTCXXCOMPILE) -c $< | |
871 | -compatibility-parallel_list-2.o: compatibility-parallel_list-2.cc | |
872 | - $(CXXCOMPILE) -c $< | |
873 | - | |
874 | -if GLIBCXX_LDBL_COMPAT | |
875 | -# Use special rules for compatibility-ldbl.cc compilation, as we need to | |
876 | -# pass -mlong-double-64. | |
877 | -compatibility-ldbl.lo: compatibility-ldbl.cc | |
878 | - $(LTCXXCOMPILE) -mlong-double-64 -c $< | |
879 | -compatibility-ldbl.o: compatibility-ldbl.cc | |
880 | - $(CXXCOMPILE) -mlong-double-64 -c $< | |
881 | -endif | |
882 | - | |
883 | # AM_CXXFLAGS needs to be in each subdirectory so that it can be | |
884 | # modified in a per-library or per-sub-library way. Need to manually | |
885 | # set this option because CONFIG_CXXFLAGS has to be after | |
886 | @@ -207,9 +174,7 @@ | |
887 | AM_CXXFLAGS = \ | |
888 | $(PIC_CXXFLAGS) \ | |
889 | $(XTEMPLATE_FLAGS) \ | |
890 | - $(WARN_CXXFLAGS) \ | |
891 | - $(OPTIMIZE_CXXFLAGS) \ | |
892 | - $(CONFIG_CXXFLAGS) | |
893 | + $(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS) | |
894 | ||
895 | AM_MAKEFLAGS = \ | |
896 | "gxx_include_dir=$(gxx_include_dir)" | |
897 | @@ -234,9 +199,11 @@ | |
898 | # attempt to infer which configuration to use. | |
899 | # We have to put --tag disable-shared after --tag CXX lest things | |
900 | # CXX undo the affect of disable-shared. | |
901 | -LTCXXCOMPILE = $(LIBTOOL) --tag CXX --tag disable-shared $(LIBTOOLFLAGS) \ | |
902 | - --mode=compile $(CXX) $(TOPLEVEL_INCLUDES) \ | |
903 | - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) | |
904 | +LTCXXCOMPILE = \ | |
905 | + $(LIBTOOL) --tag CXX --tag disable-shared \ | |
906 | + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ | |
907 | + --mode=compile $(CXX) $(TOPLEVEL_INCLUDES) \ | |
908 | + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) | |
909 | ||
910 | LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS)) | |
911 | ||
912 | @@ -246,6 +213,8 @@ | |
913 | # course is problematic at this point. So, we get the top-level | |
914 | # directory to configure libstdc++-v3 to use gcc as the C++ | |
915 | # compilation driver. | |
916 | -CXXLINK = $(LIBTOOL) --tag CXX --tag disable-shared $(LIBTOOLFLAGS) \ | |
917 | - --mode=link $(CXX) \ | |
918 | - $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@ | |
919 | +CXXLINK = \ | |
920 | + $(LIBTOOL) --tag CXX --tag disable-shared \ | |
921 | + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ | |
922 | + --mode=link $(CXX) \ | |
923 | + $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@ | |
924 | Index: libstdc++-v3/src/c++11/compatibility-thread-c++0x.cc | |
925 | =================================================================== | |
926 | --- libstdc++-v3/src/c++11/compatibility-thread-c++0x.cc (.../tags/gcc_4_7_0_release) (wersja 0) | |
927 | +++ libstdc++-v3/src/c++11/compatibility-thread-c++0x.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
928 | @@ -0,0 +1,72 @@ | |
929 | +// Compatibility symbols for previous versions, C++0x bits -*- C++ -*- | |
930 | + | |
931 | +// Copyright (C) 2009, 2010, 2011, 2012 Free Software Foundation, Inc. | |
932 | +// | |
933 | +// This file is part of the GNU ISO C++ Library. This library is free | |
934 | +// software; you can redistribute it and/or modify it under the | |
935 | +// terms of the GNU General Public License as published by the | |
936 | +// Free Software Foundation; either version 3, or (at your option) | |
937 | +// any later version. | |
938 | + | |
939 | +// This library is distributed in the hope that it will be useful, | |
940 | +// but WITHOUT ANY WARRANTY; without even the implied warranty of | |
941 | +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
942 | +// GNU General Public License for more details. | |
943 | + | |
944 | +// Under Section 7 of GPL version 3, you are granted additional | |
945 | +// permissions described in the GCC Runtime Library Exception, version | |
946 | +// 3.1, as published by the Free Software Foundation. | |
947 | + | |
948 | +// You should have received a copy of the GNU General Public License and | |
949 | +// a copy of the GCC Runtime Library Exception along with this program; | |
950 | +// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see | |
951 | +// <http://www.gnu.org/licenses/>. | |
952 | + | |
953 | +#include <future> | |
954 | +#include <mutex> | |
955 | + | |
956 | +#ifndef __GXX_EXPERIMENTAL_CXX0X__ | |
957 | +# error "compatibility-c++0x.cc must be compiled with -std=gnu++0x" | |
958 | +#endif | |
959 | + | |
960 | +#define _GLIBCXX_ASM_SYMVER(cur, old, version) \ | |
961 | + asm (".symver " #cur "," #old "@@@" #version); | |
962 | + | |
963 | +// XXX GLIBCXX_ABI Deprecated | |
964 | +// gcc-4.6.0 | |
965 | +// <future> export changes | |
966 | +#if defined(_GLIBCXX_SYMVER_GNU) && defined(PIC) \ | |
967 | + && defined(_GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE) \ | |
968 | + && defined(_GLIBCXX_HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT) | |
969 | + | |
970 | +namespace __gnu_cxx _GLIBCXX_VISIBILITY(default) | |
971 | +{ | |
972 | + const std::error_category* future_category = &std::future_category(); | |
973 | +} | |
974 | + | |
975 | +_GLIBCXX_ASM_SYMVER(_ZN9__gnu_cxx15future_categoryE, _ZSt15future_category, GLIBCXX_3.4.14) | |
976 | + | |
977 | +#endif | |
978 | + | |
979 | +// XXX GLIBCXX_ABI Deprecated | |
980 | +// gcc-4.6.0 | |
981 | +// <mutex> export changes | |
982 | +#if defined(_GLIBCXX_HAS_GTHREADS) && defined(_GLIBCXX_USE_C99_STDINT_TR1) | |
983 | +#if defined(_GLIBCXX_SYMVER_GNU) && defined(PIC) \ | |
984 | + && defined(_GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE) \ | |
985 | + && defined(_GLIBCXX_HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT) | |
986 | + | |
987 | +namespace __gnu_cxx _GLIBCXX_VISIBILITY(default) | |
988 | +{ | |
989 | + std::defer_lock_t defer_lock; | |
990 | + std::try_to_lock_t try_to_lock; | |
991 | + std::adopt_lock_t adopt_lock; | |
992 | +} | |
993 | + | |
994 | +_GLIBCXX_ASM_SYMVER(_ZN9__gnu_cxx10adopt_lockE, _ZSt10adopt_lock, GLIBCXX_3.4.11) | |
995 | +_GLIBCXX_ASM_SYMVER(_ZN9__gnu_cxx10defer_lockE, _ZSt10defer_lock, GLIBCXX_3.4.11) | |
996 | +_GLIBCXX_ASM_SYMVER(_ZN9__gnu_cxx11try_to_lockE, _ZSt11try_to_lock, GLIBCXX_3.4.11) | |
997 | + | |
998 | + | |
999 | +#endif | |
1000 | +#endif // _GLIBCXX_HAS_GTHREADS && _GLIBCXX_USE_C99_STDINT_TR1 | |
1001 | Index: libstdc++-v3/src/c++11/Makefile.in | |
1002 | =================================================================== | |
1003 | --- libstdc++-v3/src/c++11/Makefile.in (.../tags/gcc_4_7_0_release) (wersja 187293) | |
1004 | +++ libstdc++-v3/src/c++11/Makefile.in (.../branches/gcc-4_7-branch) (wersja 187293) | |
1005 | @@ -66,11 +66,10 @@ | |
1006 | CONFIG_CLEAN_VPATH_FILES = | |
1007 | LTLIBRARIES = $(noinst_LTLIBRARIES) | |
1008 | libc__11convenience_la_LIBADD = | |
1009 | -am__objects_1 = chrono.lo condition_variable.lo compatibility-c++0x.lo \ | |
1010 | - compatibility-atomic-c++0x.lo debug.lo functexcept.lo \ | |
1011 | - functional.lo future.lo hash_c++0x.lo hashtable_c++0x.lo \ | |
1012 | - limits.lo mutex.lo placeholders.lo regex.lo shared_ptr.lo \ | |
1013 | - system_error.lo thread.lo | |
1014 | +am__objects_1 = chrono.lo condition_variable.lo debug.lo \ | |
1015 | + functexcept.lo functional.lo future.lo hash_c++0x.lo \ | |
1016 | + hashtable_c++0x.lo limits.lo mutex.lo placeholders.lo regex.lo \ | |
1017 | + shared_ptr.lo system_error.lo thread.lo | |
1018 | @ENABLE_EXTERN_TEMPLATE_TRUE@am__objects_2 = fstream-inst.lo \ | |
1019 | @ENABLE_EXTERN_TEMPLATE_TRUE@ string-inst.lo wstring-inst.lo | |
1020 | am_libc__11convenience_la_OBJECTS = $(am__objects_1) $(am__objects_2) | |
1021 | @@ -301,8 +300,6 @@ | |
1022 | sources = \ | |
1023 | chrono.cc \ | |
1024 | condition_variable.cc \ | |
1025 | - compatibility-c++0x.cc \ | |
1026 | - compatibility-atomic-c++0x.cc \ | |
1027 | debug.cc \ | |
1028 | functexcept.cc \ | |
1029 | functional.cc \ | |
1030 | @@ -333,11 +330,10 @@ | |
1031 | # OPTIMIZE_CXXFLAGS on the compile line so that -O2 can be overridden | |
1032 | # as the occasion calls for it. | |
1033 | AM_CXXFLAGS = \ | |
1034 | + -std=gnu++11 \ | |
1035 | $(PIC_CXXFLAGS) \ | |
1036 | $(XTEMPLATE_FLAGS) \ | |
1037 | - $(WARN_CXXFLAGS) \ | |
1038 | - $(OPTIMIZE_CXXFLAGS) \ | |
1039 | - $(CONFIG_CXXFLAGS) -std=gnu++11 | |
1040 | + $(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS) | |
1041 | ||
1042 | AM_MAKEFLAGS = \ | |
1043 | "gxx_include_dir=$(gxx_include_dir)" | |
1044 | @@ -363,9 +359,11 @@ | |
1045 | # attempt to infer which configuration to use. | |
1046 | # We have to put --tag disable-shared after --tag CXX lest things | |
1047 | # CXX undo the affect of disable-shared. | |
1048 | -LTCXXCOMPILE = $(LIBTOOL) --tag CXX --tag disable-shared $(LIBTOOLFLAGS) \ | |
1049 | - --mode=compile $(CXX) $(TOPLEVEL_INCLUDES) \ | |
1050 | - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) | |
1051 | +LTCXXCOMPILE = \ | |
1052 | + $(LIBTOOL) --tag CXX --tag disable-shared \ | |
1053 | + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ | |
1054 | + --mode=compile $(CXX) $(TOPLEVEL_INCLUDES) \ | |
1055 | + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) | |
1056 | ||
1057 | LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS)) | |
1058 | ||
1059 | @@ -375,9 +373,11 @@ | |
1060 | # course is problematic at this point. So, we get the top-level | |
1061 | # directory to configure libstdc++-v3 to use gcc as the C++ | |
1062 | # compilation driver. | |
1063 | -CXXLINK = $(LIBTOOL) --tag CXX --tag disable-shared $(LIBTOOLFLAGS) \ | |
1064 | - --mode=link $(CXX) \ | |
1065 | - $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@ | |
1066 | +CXXLINK = \ | |
1067 | + $(LIBTOOL) --tag CXX --tag disable-shared \ | |
1068 | + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ | |
1069 | + --mode=link $(CXX) \ | |
1070 | + $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@ | |
1071 | ||
1072 | all: all-am | |
1073 | ||
1074 | @@ -612,7 +612,6 @@ | |
1075 | ||
1076 | ||
1077 | vpath % $(top_srcdir)/src/c++11 | |
1078 | -vpath % $(top_srcdir) | |
1079 | ||
1080 | # Tell versions [3.59,3.63) of GNU make to not export all variables. | |
1081 | # Otherwise a system limit (for SysV at least) may be exceeded. | |
1082 | Index: libstdc++-v3/src/c++11/compatibility-atomic-c++0x.cc | |
1083 | =================================================================== | |
1084 | --- libstdc++-v3/src/c++11/compatibility-atomic-c++0x.cc (.../tags/gcc_4_7_0_release) (wersja 187293) | |
1085 | +++ libstdc++-v3/src/c++11/compatibility-atomic-c++0x.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
1086 | @@ -1,6 +1,6 @@ | |
1087 | // <atomic> compatibility -*- C++ -*- | |
1088 | ||
1089 | -// Copyright (C) 2008, 2009, 2010, 2011 | |
1090 | +// Copyright (C) 2008, 2009, 2010, 2011, 2012 | |
1091 | // Free Software Foundation, Inc. | |
1092 | // | |
1093 | // This file is part of the GNU ISO C++ Library. This library is free | |
1094 | @@ -30,6 +30,8 @@ | |
1095 | // XXX GLIBCXX_ABI Deprecated | |
1096 | // gcc-4.7.0 | |
1097 | ||
1098 | +#ifdef PIC | |
1099 | + | |
1100 | #define LOGSIZE 4 | |
1101 | ||
1102 | namespace | |
1103 | @@ -133,6 +135,7 @@ | |
1104 | _GLIBCXX_END_NAMESPACE_VERSION | |
1105 | } // namespace std | |
1106 | ||
1107 | +#endif | |
1108 | ||
1109 | // XXX GLIBCXX_ABI Deprecated | |
1110 | // gcc-4.5.0 | |
1111 | Index: libstdc++-v3/src/c++11/mutex.cc | |
1112 | =================================================================== | |
1113 | --- libstdc++-v3/src/c++11/mutex.cc (.../tags/gcc_4_7_0_release) (wersja 187293) | |
1114 | +++ libstdc++-v3/src/c++11/mutex.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
1115 | @@ -1,6 +1,6 @@ | |
1116 | // mutex -*- C++ -*- | |
1117 | ||
1118 | -// Copyright (C) 2008, 2009, 2010 Free Software Foundation, Inc. | |
1119 | +// Copyright (C) 2008, 2009, 2010, 2012 Free Software Foundation, Inc. | |
1120 | // | |
1121 | // This file is part of the GNU ISO C++ Library. This library is free | |
1122 | // software; you can redistribute it and/or modify it under the | |
1123 | @@ -92,30 +92,6 @@ | |
1124 | } | |
1125 | ||
1126 | _GLIBCXX_END_NAMESPACE_VERSION | |
1127 | -} // namespace | |
1128 | +} // namespace std | |
1129 | ||
1130 | -// XXX GLIBCXX_ABI Deprecated | |
1131 | -// gcc-4.6.0 | |
1132 | -// <mutex> export changes | |
1133 | -#if defined(_GLIBCXX_SYMVER_GNU) && defined(PIC) \ | |
1134 | - && defined(_GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE) \ | |
1135 | - && defined(_GLIBCXX_HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT) | |
1136 | - | |
1137 | -namespace __gnu_cxx _GLIBCXX_VISIBILITY(default) | |
1138 | -{ | |
1139 | - std::defer_lock_t defer_lock; | |
1140 | - std::try_to_lock_t try_to_lock; | |
1141 | - std::adopt_lock_t adopt_lock; | |
1142 | -} | |
1143 | - | |
1144 | -#define _GLIBCXX_ASM_SYMVER(cur, old, version) \ | |
1145 | - asm (".symver " #cur "," #old "@@" #version); | |
1146 | - | |
1147 | -_GLIBCXX_ASM_SYMVER(_ZN9__gnu_cxx10adopt_lockE, _ZSt10adopt_lock, GLIBCXX_3.4.11) | |
1148 | -_GLIBCXX_ASM_SYMVER(_ZN9__gnu_cxx10defer_lockE, _ZSt10defer_lock, GLIBCXX_3.4.11) | |
1149 | -_GLIBCXX_ASM_SYMVER(_ZN9__gnu_cxx11try_to_lockE, _ZSt11try_to_lock, GLIBCXX_3.4.11) | |
1150 | - | |
1151 | - | |
1152 | -#endif | |
1153 | - | |
1154 | #endif // _GLIBCXX_HAS_GTHREADS && _GLIBCXX_USE_C99_STDINT_TR1 | |
1155 | Index: libstdc++-v3/src/c++11/future.cc | |
1156 | =================================================================== | |
1157 | --- libstdc++-v3/src/c++11/future.cc (.../tags/gcc_4_7_0_release) (wersja 187293) | |
1158 | +++ libstdc++-v3/src/c++11/future.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
1159 | @@ -96,23 +96,3 @@ | |
1160 | ||
1161 | _GLIBCXX_END_NAMESPACE_VERSION | |
1162 | } // namespace std | |
1163 | - | |
1164 | -// XXX GLIBCXX_ABI Deprecated | |
1165 | -// gcc-4.6.0 | |
1166 | -// <future> export changes | |
1167 | -#if defined(_GLIBCXX_SYMVER_GNU) && defined(PIC) \ | |
1168 | - && defined(_GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE) \ | |
1169 | - && defined(_GLIBCXX_HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT) | |
1170 | - | |
1171 | -namespace __gnu_cxx _GLIBCXX_VISIBILITY(default) | |
1172 | -{ | |
1173 | - const std::error_category* future_category = &__future_category_instance(); | |
1174 | -} | |
1175 | - | |
1176 | -#define _GLIBCXX_ASM_SYMVER(cur, old, version) \ | |
1177 | - asm (".symver " #cur "," #old "@@@" #version); | |
1178 | - | |
1179 | -_GLIBCXX_ASM_SYMVER(_ZN9__gnu_cxx15future_categoryE, _ZSt15future_category, GLIBCXX_3.4.14) | |
1180 | - | |
1181 | -#endif | |
1182 | - | |
1183 | Index: libstdc++-v3/src/c++11/Makefile.am | |
1184 | =================================================================== | |
1185 | --- libstdc++-v3/src/c++11/Makefile.am (.../tags/gcc_4_7_0_release) (wersja 187293) | |
1186 | +++ libstdc++-v3/src/c++11/Makefile.am (.../branches/gcc-4_7-branch) (wersja 187293) | |
1187 | @@ -32,8 +32,6 @@ | |
1188 | sources = \ | |
1189 | chrono.cc \ | |
1190 | condition_variable.cc \ | |
1191 | - compatibility-c++0x.cc \ | |
1192 | - compatibility-atomic-c++0x.cc \ | |
1193 | debug.cc \ | |
1194 | functexcept.cc \ | |
1195 | functional.cc \ | |
1196 | @@ -60,7 +58,6 @@ | |
1197 | endif | |
1198 | ||
1199 | vpath % $(top_srcdir)/src/c++11 | |
1200 | -vpath % $(top_srcdir) | |
1201 | ||
1202 | libc__11convenience_la_SOURCES = $(sources) $(inst_sources) | |
1203 | ||
1204 | @@ -70,11 +67,10 @@ | |
1205 | # OPTIMIZE_CXXFLAGS on the compile line so that -O2 can be overridden | |
1206 | # as the occasion calls for it. | |
1207 | AM_CXXFLAGS = \ | |
1208 | + -std=gnu++11 \ | |
1209 | $(PIC_CXXFLAGS) \ | |
1210 | $(XTEMPLATE_FLAGS) \ | |
1211 | - $(WARN_CXXFLAGS) \ | |
1212 | - $(OPTIMIZE_CXXFLAGS) \ | |
1213 | - $(CONFIG_CXXFLAGS) -std=gnu++11 | |
1214 | + $(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS) | |
1215 | ||
1216 | AM_MAKEFLAGS = \ | |
1217 | "gxx_include_dir=$(gxx_include_dir)" | |
1218 | @@ -99,9 +95,11 @@ | |
1219 | # attempt to infer which configuration to use. | |
1220 | # We have to put --tag disable-shared after --tag CXX lest things | |
1221 | # CXX undo the affect of disable-shared. | |
1222 | -LTCXXCOMPILE = $(LIBTOOL) --tag CXX --tag disable-shared $(LIBTOOLFLAGS) \ | |
1223 | - --mode=compile $(CXX) $(TOPLEVEL_INCLUDES) \ | |
1224 | - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) | |
1225 | +LTCXXCOMPILE = \ | |
1226 | + $(LIBTOOL) --tag CXX --tag disable-shared \ | |
1227 | + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ | |
1228 | + --mode=compile $(CXX) $(TOPLEVEL_INCLUDES) \ | |
1229 | + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) | |
1230 | ||
1231 | LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS)) | |
1232 | ||
1233 | @@ -111,6 +109,8 @@ | |
1234 | # course is problematic at this point. So, we get the top-level | |
1235 | # directory to configure libstdc++-v3 to use gcc as the C++ | |
1236 | # compilation driver. | |
1237 | -CXXLINK = $(LIBTOOL) --tag CXX --tag disable-shared $(LIBTOOLFLAGS) \ | |
1238 | - --mode=link $(CXX) \ | |
1239 | - $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@ | |
1240 | +CXXLINK = \ | |
1241 | + $(LIBTOOL) --tag CXX --tag disable-shared \ | |
1242 | + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ | |
1243 | + --mode=link $(CXX) \ | |
1244 | + $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@ | |
1245 | Index: libstdc++-v3/src/c++11/compatibility-c++0x.cc | |
1246 | =================================================================== | |
1247 | --- libstdc++-v3/src/c++11/compatibility-c++0x.cc (.../tags/gcc_4_7_0_release) (wersja 187293) | |
1248 | +++ libstdc++-v3/src/c++11/compatibility-c++0x.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
1249 | @@ -1,6 +1,6 @@ | |
1250 | // Compatibility symbols for previous versions, C++0x bits -*- C++ -*- | |
1251 | ||
1252 | -// Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc. | |
1253 | +// Copyright (C) 2009, 2010, 2011, 2012 Free Software Foundation, Inc. | |
1254 | // | |
1255 | // This file is part of the GNU ISO C++ Library. This library is free | |
1256 | // software; you can redistribute it and/or modify it under the | |
1257 | @@ -30,6 +30,8 @@ | |
1258 | # error "compatibility-c++0x.cc must be compiled with -std=gnu++0x" | |
1259 | #endif | |
1260 | ||
1261 | +#ifdef PIC | |
1262 | + | |
1263 | namespace std _GLIBCXX_VISIBILITY(default) | |
1264 | { | |
1265 | // gcc-4.4.0 | |
1266 | @@ -119,3 +121,4 @@ | |
1267 | } // namespace chrono | |
1268 | } | |
1269 | ||
1270 | +#endif | |
1271 | Index: libstdc++-v3/include/Makefile.in | |
1272 | =================================================================== | |
1273 | --- libstdc++-v3/include/Makefile.in (.../tags/gcc_4_7_0_release) (wersja 187293) | |
1274 | +++ libstdc++-v3/include/Makefile.in (.../branches/gcc-4_7-branch) (wersja 187293) | |
1275 | @@ -1497,7 +1497,7 @@ | |
1276 | sed -e "s,define __GLIBCXX__,define __GLIBCXX__ $$date," \ | |
1277 | -e "s,define _GLIBCXX_INLINE_VERSION, define _GLIBCXX_INLINE_VERSION $$ns_version," \ | |
1278 | -e "s,define _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY, define _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY $$visibility," \ | |
1279 | - -e "s,define _GLIBCXX_EXTERN_TEMPLATE, define _GLIBCXX_EXTERN_TEMPLATE $$externtemplate," \ | |
1280 | + -e "s,define _GLIBCXX_EXTERN_TEMPLATE$$, define _GLIBCXX_EXTERN_TEMPLATE $$externtemplate," \ | |
1281 | -e "$$ldbl_compat" \ | |
1282 | < ${glibcxx_srcdir}/include/bits/c++config > $@ ;\ | |
1283 | sed -e 's/HAVE_/_GLIBCXX_HAVE_/g' \ | |
1284 | Index: libstdc++-v3/include/debug/forward_list | |
1285 | =================================================================== | |
1286 | --- libstdc++-v3/include/debug/forward_list (.../tags/gcc_4_7_0_release) (wersja 187293) | |
1287 | +++ libstdc++-v3/include/debug/forward_list (.../branches/gcc-4_7-branch) (wersja 187293) | |
1288 | @@ -414,6 +414,10 @@ | |
1289 | } | |
1290 | ||
1291 | void | |
1292 | + splice_after(const_iterator __pos, forward_list& __list) | |
1293 | + { splice_after(__pos, std::move(__list)); } | |
1294 | + | |
1295 | + void | |
1296 | splice_after(const_iterator __pos, forward_list&& __list, | |
1297 | const_iterator __i) | |
1298 | { | |
1299 | @@ -436,6 +440,11 @@ | |
1300 | } | |
1301 | ||
1302 | void | |
1303 | + splice_after(const_iterator __pos, forward_list& __list, | |
1304 | + const_iterator __i) | |
1305 | + { splice_after(__pos, std::move(__list), __i); } | |
1306 | + | |
1307 | + void | |
1308 | splice_after(const_iterator __pos, forward_list&& __list, | |
1309 | const_iterator __before, const_iterator __last) | |
1310 | { | |
1311 | @@ -481,6 +490,11 @@ | |
1312 | } | |
1313 | ||
1314 | void | |
1315 | + splice_after(const_iterator __pos, forward_list& __list, | |
1316 | + const_iterator __before, const_iterator __last) | |
1317 | + { splice_after(__pos, std::move(__list), __before, __last); } | |
1318 | + | |
1319 | + void | |
1320 | remove(const _Tp& __val) | |
1321 | { | |
1322 | _Base_iterator __x = _Base::before_begin(); | |
1323 | @@ -561,6 +575,10 @@ | |
1324 | } | |
1325 | } | |
1326 | ||
1327 | + void | |
1328 | + merge(forward_list& __list) | |
1329 | + { merge(std::move(__list)); } | |
1330 | + | |
1331 | template<typename _Comp> | |
1332 | void | |
1333 | merge(forward_list&& __list, _Comp __comp) | |
1334 | @@ -580,6 +598,11 @@ | |
1335 | } | |
1336 | } | |
1337 | ||
1338 | + template<typename _Comp> | |
1339 | + void | |
1340 | + merge(forward_list& __list, _Comp __comp) | |
1341 | + { merge(std::move(__list), __comp); } | |
1342 | + | |
1343 | using _Base::sort; | |
1344 | using _Base::reverse; | |
1345 | ||
1346 | @@ -733,8 +756,12 @@ | |
1347 | typedef typename _It::iterator_type _BaseIt; | |
1348 | ||
1349 | static bool | |
1350 | - _M_Is(_BaseIt __it, const _Sequence* __seq) | |
1351 | + _S_Is(_BaseIt __it, const _Sequence* __seq) | |
1352 | { return __it == __seq->_M_base().cbefore_begin(); } | |
1353 | + | |
1354 | + static bool | |
1355 | + _S_Is_Beginnest(_BaseIt __it, const _Sequence* __seq) | |
1356 | + { return _S_Is(__it, __seq); } | |
1357 | }; | |
1358 | } | |
1359 | ||
1360 | Index: libstdc++-v3/include/debug/safe_iterator.tcc | |
1361 | =================================================================== | |
1362 | --- libstdc++-v3/include/debug/safe_iterator.tcc (.../tags/gcc_4_7_0_release) (wersja 187293) | |
1363 | +++ libstdc++-v3/include/debug/safe_iterator.tcc (.../branches/gcc-4_7-branch) (wersja 187293) | |
1364 | @@ -1,6 +1,6 @@ | |
1365 | // Debugging iterator implementation (out of line) -*- C++ -*- | |
1366 | ||
1367 | -// Copyright (C) 2003, 2004, 2005, 2006, 2007, 2009, 2010, 2011 | |
1368 | +// Copyright (C) 2003, 2004, 2005, 2006, 2007, 2009, 2010, 2011, 2012 | |
1369 | // Free Software Foundation, Inc. | |
1370 | // | |
1371 | // This file is part of the GNU ISO C++ Library. This library is free | |
1372 | @@ -91,10 +91,11 @@ | |
1373 | /* We can only test for equality, but check if one of the | |
1374 | iterators is at an extreme. */ | |
1375 | /* Optim for classic [begin, it) or [it, end) ranges, limit checks | |
1376 | - * when code is valid. */ | |
1377 | - if (_M_is_begin() || __rhs._M_is_end()) | |
1378 | + * when code is valid. Note, for the special case of forward_list, | |
1379 | + * before_begin replaces the role of begin. */ | |
1380 | + if (_M_is_beginnest() || __rhs._M_is_end()) | |
1381 | return true; | |
1382 | - if (_M_is_end() || __rhs._M_is_begin()) | |
1383 | + if (_M_is_end() || __rhs._M_is_beginnest()) | |
1384 | return false; | |
1385 | ||
1386 | // Assume that this is a valid range; we can't check anything else | |
1387 | Index: libstdc++-v3/include/debug/safe_iterator.h | |
1388 | =================================================================== | |
1389 | --- libstdc++-v3/include/debug/safe_iterator.h (.../tags/gcc_4_7_0_release) (wersja 187293) | |
1390 | +++ libstdc++-v3/include/debug/safe_iterator.h (.../branches/gcc-4_7-branch) (wersja 187293) | |
1391 | @@ -1,6 +1,6 @@ | |
1392 | // Safe iterator implementation -*- C++ -*- | |
1393 | ||
1394 | -// Copyright (C) 2003, 2004, 2005, 2006, 2009, 2010, 2011 | |
1395 | +// Copyright (C) 2003, 2004, 2005, 2006, 2009, 2010, 2011, 2012 | |
1396 | // Free Software Foundation, Inc. | |
1397 | // | |
1398 | // This file is part of the GNU ISO C++ Library. This library is free | |
1399 | @@ -50,8 +50,12 @@ | |
1400 | typedef typename _It::iterator_type _BaseIt; | |
1401 | ||
1402 | static bool | |
1403 | - _M_Is(_BaseIt __it, const _Sequence* __seq) | |
1404 | + _S_Is(_BaseIt, const _Sequence*) | |
1405 | { return false; } | |
1406 | + | |
1407 | + static bool | |
1408 | + _S_Is_Beginnest(_BaseIt __it, const _Sequence* __seq) | |
1409 | + { return __it == __seq->_M_base().begin(); } | |
1410 | }; | |
1411 | ||
1412 | /** Iterators that derive from _Safe_iterator_base but that aren't | |
1413 | @@ -169,7 +173,25 @@ | |
1414 | ._M_iterator(__x, "other")); | |
1415 | } | |
1416 | ||
1417 | +#ifdef __GXX_EXPERIMENTAL_CXX0X__ | |
1418 | /** | |
1419 | + * @brief Move construction. | |
1420 | + * @post __x is singular and unattached | |
1421 | + */ | |
1422 | + _Safe_iterator(_Safe_iterator&& __x) : _M_current() | |
1423 | + { | |
1424 | + _GLIBCXX_DEBUG_VERIFY(!__x._M_singular() | |
1425 | + || __x._M_current == _Iterator(), | |
1426 | + _M_message(__msg_init_copy_singular) | |
1427 | + ._M_iterator(*this, "this") | |
1428 | + ._M_iterator(__x, "other")); | |
1429 | + std::swap(_M_current, __x._M_current); | |
1430 | + this->_M_attach(__x._M_sequence); | |
1431 | + __x._M_detach(); | |
1432 | + } | |
1433 | +#endif | |
1434 | + | |
1435 | + /** | |
1436 | * @brief Converting constructor from a mutable iterator to a | |
1437 | * constant iterator. | |
1438 | */ | |
1439 | @@ -208,7 +230,28 @@ | |
1440 | return *this; | |
1441 | } | |
1442 | ||
1443 | +#ifdef __GXX_EXPERIMENTAL_CXX0X__ | |
1444 | /** | |
1445 | + * @brief Move assignment. | |
1446 | + * @post __x is singular and unattached | |
1447 | + */ | |
1448 | + _Safe_iterator& | |
1449 | + operator=(_Safe_iterator&& __x) | |
1450 | + { | |
1451 | + _GLIBCXX_DEBUG_VERIFY(!__x._M_singular() | |
1452 | + || __x._M_current == _Iterator(), | |
1453 | + _M_message(__msg_copy_singular) | |
1454 | + ._M_iterator(*this, "this") | |
1455 | + ._M_iterator(__x, "other")); | |
1456 | + _M_current = __x._M_current; | |
1457 | + _M_attach(__x._M_sequence); | |
1458 | + __x._M_detach(); | |
1459 | + __x._M_current = _Iterator(); | |
1460 | + return *this; | |
1461 | + } | |
1462 | +#endif | |
1463 | + | |
1464 | + /** | |
1465 | * @brief Iterator dereference. | |
1466 | * @pre iterator is dereferenceable | |
1467 | */ | |
1468 | @@ -422,7 +465,17 @@ | |
1469 | /// Is this iterator equal to the sequence's before_begin() iterator if | |
1470 | /// any? | |
1471 | bool _M_is_before_begin() const | |
1472 | - { return _BeforeBeginHelper<_Sequence>::_M_Is(base(), _M_get_sequence()); } | |
1473 | + { | |
1474 | + return _BeforeBeginHelper<_Sequence>::_S_Is(base(), _M_get_sequence()); | |
1475 | + } | |
1476 | + | |
1477 | + /// Is this iterator equal to the sequence's before_begin() iterator if | |
1478 | + /// any or begin() otherwise? | |
1479 | + bool _M_is_beginnest() const | |
1480 | + { | |
1481 | + return _BeforeBeginHelper<_Sequence>::_S_Is_Beginnest(base(), | |
1482 | + _M_get_sequence()); | |
1483 | + } | |
1484 | }; | |
1485 | ||
1486 | template<typename _IteratorL, typename _IteratorR, typename _Sequence> | |
1487 | Index: libstdc++-v3/include/std/scoped_allocator | |
1488 | =================================================================== | |
1489 | --- libstdc++-v3/include/std/scoped_allocator (.../tags/gcc_4_7_0_release) (wersja 187293) | |
1490 | +++ libstdc++-v3/include/std/scoped_allocator (.../branches/gcc-4_7-branch) (wersja 187293) | |
1491 | @@ -1,6 +1,6 @@ | |
1492 | // <scoped_allocator> -*- C++ -*- | |
1493 | ||
1494 | -// Copyright (C) 2011 Free Software Foundation, Inc. | |
1495 | +// Copyright (C) 2011, 2012 Free Software Foundation, Inc. | |
1496 | // | |
1497 | // This file is part of the GNU ISO C++ Library. This library is free | |
1498 | // software; you can redistribute it and/or modify it under the | |
1499 | @@ -77,7 +77,7 @@ | |
1500 | ||
1501 | template<typename _Alloc> | |
1502 | inline auto | |
1503 | - __do_outermost(_Alloc& __a, _Alloc&) -> decltype(__a.outer_allocator()) | |
1504 | + __do_outermost(_Alloc& __a, _Alloc*) -> decltype(__a.outer_allocator()) | |
1505 | { return __a.outer_allocator(); } | |
1506 | ||
1507 | template<typename _Alloc> | |
1508 | @@ -87,8 +87,8 @@ | |
1509 | ||
1510 | template<typename _Alloc> | |
1511 | inline auto | |
1512 | - __outermost(_Alloc& __a) -> decltype(__do_outermost(__a, __a)) | |
1513 | - { return __do_outermost(__a, __a); } | |
1514 | + __outermost(_Alloc& __a) -> decltype(__do_outermost(__a, &__a)) | |
1515 | + { return __do_outermost(__a, &__a); } | |
1516 | ||
1517 | template<typename _OuterAlloc, typename... _InnerAllocs> | |
1518 | class scoped_allocator_adaptor; | |
1519 | Index: libstdc++-v3/include/std/array | |
1520 | =================================================================== | |
1521 | --- libstdc++-v3/include/std/array (.../tags/gcc_4_7_0_release) (wersja 187293) | |
1522 | +++ libstdc++-v3/include/std/array (.../branches/gcc-4_7-branch) (wersja 187293) | |
1523 | @@ -1,6 +1,7 @@ | |
1524 | // <array> -*- C++ -*- | |
1525 | ||
1526 | -// Copyright (C) 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. | |
1527 | +// Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012 | |
1528 | +// Free Software Foundation, Inc. | |
1529 | // | |
1530 | // This file is part of the GNU ISO C++ Library. This library is free | |
1531 | // software; you can redistribute it and/or modify it under the | |
1532 | @@ -174,8 +175,9 @@ | |
1533 | const_reference | |
1534 | at(size_type __n) const | |
1535 | { | |
1536 | - return __n < _Nm ? | |
1537 | - _M_instance[__n] : __throw_out_of_range(__N("array::at")); | |
1538 | + if (__n >= _Nm) | |
1539 | + std::__throw_out_of_range(__N("array::at")); | |
1540 | + return _M_instance[__n]; | |
1541 | } | |
1542 | #endif | |
1543 | ||
1544 | Index: libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp | |
1545 | =================================================================== | |
1546 | --- libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp (.../tags/gcc_4_7_0_release) (wersja 187293) | |
1547 | +++ libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp (.../branches/gcc-4_7-branch) (wersja 187293) | |
1548 | @@ -1,6 +1,6 @@ | |
1549 | // -*- C++ -*- | |
1550 | ||
1551 | -// Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011 | |
1552 | +// Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 | |
1553 | // Free Software Foundation, Inc. | |
1554 | // | |
1555 | // This file is part of the GNU ISO C++ Library. This library is free | |
1556 | @@ -188,7 +188,11 @@ | |
1557 | __try | |
1558 | { | |
1559 | while (child_it != p_icp->end()) | |
1560 | - a_p_children[child_i++] = recursive_copy_node(*(child_it++)); | |
1561 | + { | |
1562 | + a_p_children[child_i] = recursive_copy_node(*(child_it)); | |
1563 | + child_i++; | |
1564 | + child_it++; | |
1565 | + } | |
1566 | p_ret = s_inode_allocator.allocate(1); | |
1567 | } | |
1568 | __catch(...) | |
1569 | Index: libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/pat_trie_base.hpp | |
1570 | =================================================================== | |
1571 | --- libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/pat_trie_base.hpp (.../tags/gcc_4_7_0_release) (wersja 187293) | |
1572 | +++ libstdc++-v3/include/ext/pb_ds/detail/pat_trie_/pat_trie_base.hpp (.../branches/gcc-4_7-branch) (wersja 187293) | |
1573 | @@ -1,6 +1,6 @@ | |
1574 | // -*- C++ -*- | |
1575 | ||
1576 | -// Copyright (C) 2005, 2006, 2009, 2011 Free Software Foundation, Inc. | |
1577 | +// Copyright (C) 2005, 2006, 2009, 2011, 2012 Free Software Foundation, Inc. | |
1578 | // | |
1579 | // This file is part of the GNU ISO C++ Library. This library is free | |
1580 | // software; you can redistribute it and/or modify it under the terms | |
1581 | @@ -50,7 +50,11 @@ | |
1582 | /// Base type for PATRICIA trees. | |
1583 | struct pat_trie_base | |
1584 | { | |
1585 | - /// Three types of nodes. | |
1586 | + /** | |
1587 | + * @brief Three types of nodes. | |
1588 | + * | |
1589 | + * i_node is used by _Inode, leaf_node by _Leaf, and head_node by _Head. | |
1590 | + */ | |
1591 | enum node_type | |
1592 | { | |
1593 | i_node, | |
1594 | Index: libstdc++-v3/include/ext/functional | |
1595 | =================================================================== | |
1596 | --- libstdc++-v3/include/ext/functional (.../tags/gcc_4_7_0_release) (wersja 187293) | |
1597 | +++ libstdc++-v3/include/ext/functional (.../branches/gcc-4_7-branch) (wersja 187293) | |
1598 | @@ -1,6 +1,6 @@ | |
1599 | // Functional extensions -*- C++ -*- | |
1600 | ||
1601 | -// Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2009, 2010 | |
1602 | +// Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2009, 2010, 2012 | |
1603 | // Free Software Foundation, Inc. | |
1604 | // | |
1605 | // This file is part of the GNU ISO C++ Library. This library is free | |
1606 | @@ -183,7 +183,13 @@ | |
1607 | * @addtogroup SGIextensions | |
1608 | */ | |
1609 | template <class _Tp> | |
1610 | - struct identity : public std::_Identity<_Tp> {}; | |
1611 | + struct identity | |
1612 | +#ifdef __GXX_EXPERIMENTAL_CXX0X__ | |
1613 | + : public std::unary_function<_Tp,_Tp>, | |
1614 | + public std::_Identity<_Tp> {}; | |
1615 | +#else | |
1616 | + : public std::_Identity<_Tp> {}; | |
1617 | +#endif | |
1618 | ||
1619 | /** @c select1st and @c select2nd are extensions provided by SGI. Their | |
1620 | * @c operator()s | |
1621 | @@ -197,11 +203,23 @@ | |
1622 | */ | |
1623 | /// An \link SGIextensions SGI extension \endlink. | |
1624 | template <class _Pair> | |
1625 | - struct select1st : public std::_Select1st<_Pair> {}; | |
1626 | + struct select1st | |
1627 | +#ifdef __GXX_EXPERIMENTAL_CXX0X__ | |
1628 | + : public std::unary_function<_Pair, typename _Pair::first_type>, | |
1629 | + public std::_Select1st<_Pair> {}; | |
1630 | +#else | |
1631 | + : public std::_Select1st<_Pair> {}; | |
1632 | +#endif | |
1633 | ||
1634 | /// An \link SGIextensions SGI extension \endlink. | |
1635 | template <class _Pair> | |
1636 | - struct select2nd : public std::_Select2nd<_Pair> {}; | |
1637 | + struct select2nd | |
1638 | +#ifdef __GXX_EXPERIMENTAL_CXX0X__ | |
1639 | + : public std::unary_function<_Pair, typename _Pair::second_type>, | |
1640 | + public std::_Select2nd<_Pair> {}; | |
1641 | +#else | |
1642 | + : public std::_Select2nd<_Pair> {}; | |
1643 | +#endif | |
1644 | /** @} */ | |
1645 | ||
1646 | // extension documented next | |
1647 | Index: libstdc++-v3/include/bits/hashtable.h | |
1648 | =================================================================== | |
1649 | --- libstdc++-v3/include/bits/hashtable.h (.../tags/gcc_4_7_0_release) (wersja 187293) | |
1650 | +++ libstdc++-v3/include/bits/hashtable.h (.../branches/gcc-4_7-branch) (wersja 187293) | |
1651 | @@ -1,6 +1,7 @@ | |
1652 | // hashtable.h header -*- C++ -*- | |
1653 | ||
1654 | -// Copyright (C) 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. | |
1655 | +// Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012 | |
1656 | +// Free Software Foundation, Inc. | |
1657 | // | |
1658 | // This file is part of the GNU ISO C++ Library. This library is free | |
1659 | // software; you can redistribute it and/or modify it under the | |
1660 | @@ -596,6 +597,12 @@ | |
1661 | // reserve, if present, comes from _Rehash_base. | |
1662 | ||
1663 | private: | |
1664 | + // Helper rehash method used when keys are unique. | |
1665 | + void _M_rehash_aux(size_type __n, std::true_type); | |
1666 | + | |
1667 | + // Helper rehash method used when keys can be non-unique. | |
1668 | + void _M_rehash_aux(size_type __n, std::false_type); | |
1669 | + | |
1670 | // Unconditionally change size of bucket array to n, restore hash policy | |
1671 | // state to __state on exception. | |
1672 | void _M_rehash(size_type __n, const _RehashPolicyState& __state); | |
1673 | @@ -1592,41 +1599,143 @@ | |
1674 | { | |
1675 | __try | |
1676 | { | |
1677 | - _Bucket* __new_buckets = _M_allocate_buckets(__n); | |
1678 | - _Node* __p = _M_begin(); | |
1679 | - _M_before_begin._M_nxt = nullptr; | |
1680 | - std::size_t __cur_bbegin_bkt; | |
1681 | - while (__p) | |
1682 | + _M_rehash_aux(__n, integral_constant<bool, __uk>()); | |
1683 | + } | |
1684 | + __catch(...) | |
1685 | + { | |
1686 | + // A failure here means that buckets allocation failed. We only | |
1687 | + // have to restore hash policy previous state. | |
1688 | + _M_rehash_policy._M_reset(__state); | |
1689 | + __throw_exception_again; | |
1690 | + } | |
1691 | + } | |
1692 | + | |
1693 | + // Rehash when there is no equivalent elements. | |
1694 | + template<typename _Key, typename _Value, | |
1695 | + typename _Allocator, typename _ExtractKey, typename _Equal, | |
1696 | + typename _H1, typename _H2, typename _Hash, typename _RehashPolicy, | |
1697 | + bool __chc, bool __cit, bool __uk> | |
1698 | + void | |
1699 | + _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, | |
1700 | + _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: | |
1701 | + _M_rehash_aux(size_type __n, std::true_type) | |
1702 | + { | |
1703 | + _Bucket* __new_buckets = _M_allocate_buckets(__n); | |
1704 | + _Node* __p = _M_begin(); | |
1705 | + _M_before_begin._M_nxt = nullptr; | |
1706 | + std::size_t __bbegin_bkt; | |
1707 | + while (__p) | |
1708 | + { | |
1709 | + _Node* __next = __p->_M_next(); | |
1710 | + std::size_t __bkt = _HCBase::_M_bucket_index(__p, __n); | |
1711 | + if (!__new_buckets[__bkt]) | |
1712 | { | |
1713 | - _Node* __next = __p->_M_next(); | |
1714 | - std::size_t __new_index = _HCBase::_M_bucket_index(__p, __n); | |
1715 | - if (!__new_buckets[__new_index]) | |
1716 | + __p->_M_nxt = _M_before_begin._M_nxt; | |
1717 | + _M_before_begin._M_nxt = __p; | |
1718 | + __new_buckets[__bkt] = &_M_before_begin; | |
1719 | + if (__p->_M_nxt) | |
1720 | + __new_buckets[__bbegin_bkt] = __p; | |
1721 | + __bbegin_bkt = __bkt; | |
1722 | + } | |
1723 | + else | |
1724 | + { | |
1725 | + __p->_M_nxt = __new_buckets[__bkt]->_M_nxt; | |
1726 | + __new_buckets[__bkt]->_M_nxt = __p; | |
1727 | + } | |
1728 | + __p = __next; | |
1729 | + } | |
1730 | + _M_deallocate_buckets(_M_buckets, _M_bucket_count); | |
1731 | + _M_bucket_count = __n; | |
1732 | + _M_buckets = __new_buckets; | |
1733 | + } | |
1734 | + | |
1735 | + // Rehash when there can be equivalent elements, preserve their relative | |
1736 | + // order. | |
1737 | + template<typename _Key, typename _Value, | |
1738 | + typename _Allocator, typename _ExtractKey, typename _Equal, | |
1739 | + typename _H1, typename _H2, typename _Hash, typename _RehashPolicy, | |
1740 | + bool __chc, bool __cit, bool __uk> | |
1741 | + void | |
1742 | + _Hashtable<_Key, _Value, _Allocator, _ExtractKey, _Equal, | |
1743 | + _H1, _H2, _Hash, _RehashPolicy, __chc, __cit, __uk>:: | |
1744 | + _M_rehash_aux(size_type __n, std::false_type) | |
1745 | + { | |
1746 | + _Bucket* __new_buckets = _M_allocate_buckets(__n); | |
1747 | + | |
1748 | + _Node* __p = _M_begin(); | |
1749 | + _M_before_begin._M_nxt = nullptr; | |
1750 | + std::size_t __bbegin_bkt; | |
1751 | + std::size_t __prev_bkt; | |
1752 | + _Node* __prev_p = nullptr; | |
1753 | + bool __check_bucket = false; | |
1754 | + | |
1755 | + while (__p) | |
1756 | + { | |
1757 | + _Node* __next = __p->_M_next(); | |
1758 | + std::size_t __bkt = _HCBase::_M_bucket_index(__p, __n); | |
1759 | + | |
1760 | + if (__prev_p && __prev_bkt == __bkt) | |
1761 | + { | |
1762 | + // Previous insert was already in this bucket, we insert after | |
1763 | + // the previously inserted one to preserve equivalent elements | |
1764 | + // relative order. | |
1765 | + __p->_M_nxt = __prev_p->_M_nxt; | |
1766 | + __prev_p->_M_nxt = __p; | |
1767 | + | |
1768 | + // Inserting after a node in a bucket require to check that we | |
1769 | + // haven't change the bucket last node, in this case next | |
1770 | + // bucket containing its before begin node must be updated. We | |
1771 | + // schedule a check as soon as we move out of the sequence of | |
1772 | + // equivalent nodes to limit the number of checks. | |
1773 | + __check_bucket = true; | |
1774 | + } | |
1775 | + else | |
1776 | + { | |
1777 | + if (__check_bucket) | |
1778 | { | |
1779 | + // Check if we shall update the next bucket because of insertions | |
1780 | + // into __prev_bkt bucket. | |
1781 | + if (__prev_p->_M_nxt) | |
1782 | + { | |
1783 | + std::size_t __next_bkt | |
1784 | + = _HCBase::_M_bucket_index(__prev_p->_M_next(), __n); | |
1785 | + if (__next_bkt != __prev_bkt) | |
1786 | + __new_buckets[__next_bkt] = __prev_p; | |
1787 | + } | |
1788 | + __check_bucket = false; | |
1789 | + } | |
1790 | + if (!__new_buckets[__bkt]) | |
1791 | + { | |
1792 | __p->_M_nxt = _M_before_begin._M_nxt; | |
1793 | _M_before_begin._M_nxt = __p; | |
1794 | - __new_buckets[__new_index] = &_M_before_begin; | |
1795 | + __new_buckets[__bkt] = &_M_before_begin; | |
1796 | if (__p->_M_nxt) | |
1797 | - __new_buckets[__cur_bbegin_bkt] = __p; | |
1798 | - __cur_bbegin_bkt = __new_index; | |
1799 | + __new_buckets[__bbegin_bkt] = __p; | |
1800 | + __bbegin_bkt = __bkt; | |
1801 | } | |
1802 | else | |
1803 | { | |
1804 | - __p->_M_nxt = __new_buckets[__new_index]->_M_nxt; | |
1805 | - __new_buckets[__new_index]->_M_nxt = __p; | |
1806 | + __p->_M_nxt = __new_buckets[__bkt]->_M_nxt; | |
1807 | + __new_buckets[__bkt]->_M_nxt = __p; | |
1808 | } | |
1809 | - __p = __next; | |
1810 | } | |
1811 | - _M_deallocate_buckets(_M_buckets, _M_bucket_count); | |
1812 | - _M_bucket_count = __n; | |
1813 | - _M_buckets = __new_buckets; | |
1814 | + | |
1815 | + __prev_p = __p; | |
1816 | + __prev_bkt = __bkt; | |
1817 | + __p = __next; | |
1818 | } | |
1819 | - __catch(...) | |
1820 | + | |
1821 | + if (__check_bucket && __prev_p->_M_nxt) | |
1822 | { | |
1823 | - // A failure here means that buckets allocation failed. We only | |
1824 | - // have to restore hash policy previous state. | |
1825 | - _M_rehash_policy._M_reset(__state); | |
1826 | - __throw_exception_again; | |
1827 | + std::size_t __next_bkt | |
1828 | + = _HCBase::_M_bucket_index(__prev_p->_M_next(), __n); | |
1829 | + if (__next_bkt != __prev_bkt) | |
1830 | + __new_buckets[__next_bkt] = __prev_p; | |
1831 | } | |
1832 | + | |
1833 | + _M_deallocate_buckets(_M_buckets, _M_bucket_count); | |
1834 | + _M_bucket_count = __n; | |
1835 | + _M_buckets = __new_buckets; | |
1836 | } | |
1837 | ||
1838 | _GLIBCXX_END_NAMESPACE_VERSION | |
1839 | Index: libstdc++-v3/include/bits/stl_algobase.h | |
1840 | =================================================================== | |
1841 | --- libstdc++-v3/include/bits/stl_algobase.h (.../tags/gcc_4_7_0_release) (wersja 187293) | |
1842 | +++ libstdc++-v3/include/bits/stl_algobase.h (.../branches/gcc-4_7-branch) (wersja 187293) | |
1843 | @@ -982,14 +982,26 @@ | |
1844 | __lg(int __n) | |
1845 | { return sizeof(int) * __CHAR_BIT__ - 1 - __builtin_clz(__n); } | |
1846 | ||
1847 | + inline unsigned | |
1848 | + __lg(unsigned __n) | |
1849 | + { return sizeof(int) * __CHAR_BIT__ - 1 - __builtin_clz(__n); } | |
1850 | + | |
1851 | inline long | |
1852 | __lg(long __n) | |
1853 | { return sizeof(long) * __CHAR_BIT__ - 1 - __builtin_clzl(__n); } | |
1854 | ||
1855 | + inline unsigned long | |
1856 | + __lg(unsigned long __n) | |
1857 | + { return sizeof(long) * __CHAR_BIT__ - 1 - __builtin_clzl(__n); } | |
1858 | + | |
1859 | inline long long | |
1860 | __lg(long long __n) | |
1861 | { return sizeof(long long) * __CHAR_BIT__ - 1 - __builtin_clzll(__n); } | |
1862 | ||
1863 | + inline unsigned long long | |
1864 | + __lg(unsigned long long __n) | |
1865 | + { return sizeof(long long) * __CHAR_BIT__ - 1 - __builtin_clzll(__n); } | |
1866 | + | |
1867 | _GLIBCXX_END_NAMESPACE_VERSION | |
1868 | ||
1869 | _GLIBCXX_BEGIN_NAMESPACE_ALGO | |
1870 | Index: libstdc++-v3/include/bits/hashtable_policy.h | |
1871 | =================================================================== | |
1872 | --- libstdc++-v3/include/bits/hashtable_policy.h (.../tags/gcc_4_7_0_release) (wersja 187293) | |
1873 | +++ libstdc++-v3/include/bits/hashtable_policy.h (.../branches/gcc-4_7-branch) (wersja 187293) | |
1874 | @@ -533,7 +533,9 @@ | |
1875 | ||
1876 | // Specialization using EBO. | |
1877 | template<int _Nm, typename _Tp> | |
1878 | - struct _Hashtable_ebo_helper<_Nm, _Tp, true> : private _Tp | |
1879 | + struct _Hashtable_ebo_helper<_Nm, _Tp, true> | |
1880 | + // See PR53067. | |
1881 | + : public _Tp | |
1882 | { | |
1883 | _Hashtable_ebo_helper() = default; | |
1884 | _Hashtable_ebo_helper(const _Tp& __tp) : _Tp(__tp) | |
1885 | @@ -595,8 +597,9 @@ | |
1886 | template<typename _Key, typename _Value, typename _ExtractKey, | |
1887 | typename _H1, typename _H2, typename _Hash> | |
1888 | struct _Hash_code_base<_Key, _Value, _ExtractKey, _H1, _H2, _Hash, false> | |
1889 | - : private _Hashtable_ebo_helper<0, _ExtractKey>, | |
1890 | - private _Hashtable_ebo_helper<1, _Hash> | |
1891 | + // See PR53067. | |
1892 | + : public _Hashtable_ebo_helper<0, _ExtractKey>, | |
1893 | + public _Hashtable_ebo_helper<1, _Hash> | |
1894 | { | |
1895 | private: | |
1896 | typedef _Hashtable_ebo_helper<0, _ExtractKey> _EboExtractKey; | |
1897 | @@ -669,9 +672,10 @@ | |
1898 | typename _H1, typename _H2> | |
1899 | struct _Hash_code_base<_Key, _Value, _ExtractKey, _H1, _H2, | |
1900 | _Default_ranged_hash, false> | |
1901 | - : private _Hashtable_ebo_helper<0, _ExtractKey>, | |
1902 | - private _Hashtable_ebo_helper<1, _H1>, | |
1903 | - private _Hashtable_ebo_helper<2, _H2> | |
1904 | + // See PR53067. | |
1905 | + : public _Hashtable_ebo_helper<0, _ExtractKey>, | |
1906 | + public _Hashtable_ebo_helper<1, _H1>, | |
1907 | + public _Hashtable_ebo_helper<2, _H2> | |
1908 | { | |
1909 | private: | |
1910 | typedef _Hashtable_ebo_helper<0, _ExtractKey> _EboExtractKey; | |
1911 | @@ -748,9 +752,10 @@ | |
1912 | typename _H1, typename _H2> | |
1913 | struct _Hash_code_base<_Key, _Value, _ExtractKey, _H1, _H2, | |
1914 | _Default_ranged_hash, true> | |
1915 | - : private _Hashtable_ebo_helper<0, _ExtractKey>, | |
1916 | - private _Hashtable_ebo_helper<1, _H1>, | |
1917 | - private _Hashtable_ebo_helper<2, _H2> | |
1918 | + // See PR53067. | |
1919 | + : public _Hashtable_ebo_helper<0, _ExtractKey>, | |
1920 | + public _Hashtable_ebo_helper<1, _H1>, | |
1921 | + public _Hashtable_ebo_helper<2, _H2> | |
1922 | { | |
1923 | private: | |
1924 | typedef _Hashtable_ebo_helper<0, _ExtractKey> _EboExtractKey; | |
1925 | @@ -853,9 +858,10 @@ | |
1926 | typename _H1, typename _H2, typename _Hash, | |
1927 | bool __cache_hash_code> | |
1928 | struct _Hashtable_base | |
1929 | + // See PR53067. | |
1930 | : public _Hash_code_base<_Key, _Value, _ExtractKey, _H1, _H2, _Hash, | |
1931 | __cache_hash_code>, | |
1932 | - private _Hashtable_ebo_helper<0, _Equal> | |
1933 | + public _Hashtable_ebo_helper<0, _Equal> | |
1934 | { | |
1935 | private: | |
1936 | typedef _Hashtable_ebo_helper<0, _Equal> _EboEqual; | |
1937 | @@ -906,7 +912,8 @@ | |
1938 | typename _H1, typename _H2, typename _Hash> | |
1939 | struct _Local_iterator_base<_Key, _Value, _ExtractKey, | |
1940 | _H1, _H2, _Hash, true> | |
1941 | - : private _H2 | |
1942 | + // See PR53067. | |
1943 | + : public _H2 | |
1944 | { | |
1945 | _Local_iterator_base() = default; | |
1946 | _Local_iterator_base(_Hash_node<_Value, true>* __p, | |
1947 | @@ -937,8 +944,9 @@ | |
1948 | typename _H1, typename _H2, typename _Hash> | |
1949 | struct _Local_iterator_base<_Key, _Value, _ExtractKey, | |
1950 | _H1, _H2, _Hash, false> | |
1951 | - : private _Hash_code_base<_Key, _Value, _ExtractKey, | |
1952 | - _H1, _H2, _Hash, false> | |
1953 | + // See PR53067. | |
1954 | + : public _Hash_code_base<_Key, _Value, _ExtractKey, | |
1955 | + _H1, _H2, _Hash, false> | |
1956 | { | |
1957 | _Local_iterator_base() = default; | |
1958 | _Local_iterator_base(_Hash_node<_Value, false>* __p, | |
1959 | Index: libstdc++-v3/include/bits/forward_list.h | |
1960 | =================================================================== | |
1961 | --- libstdc++-v3/include/bits/forward_list.h (.../tags/gcc_4_7_0_release) (wersja 187293) | |
1962 | +++ libstdc++-v3/include/bits/forward_list.h (.../branches/gcc-4_7-branch) (wersja 187293) | |
1963 | @@ -1,6 +1,6 @@ | |
1964 | // <forward_list.h> -*- C++ -*- | |
1965 | ||
1966 | -// Copyright (C) 2008, 2009, 2010, 2011 Free Software Foundation, Inc. | |
1967 | +// Copyright (C) 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. | |
1968 | // | |
1969 | // This file is part of the GNU ISO C++ Library. This library is free | |
1970 | // software; you can redistribute it and/or modify it under the | |
1971 | @@ -53,15 +53,6 @@ | |
1972 | _Fwd_list_node_base* _M_next; | |
1973 | ||
1974 | _Fwd_list_node_base* | |
1975 | - _M_transfer_after(_Fwd_list_node_base* __begin) | |
1976 | - { | |
1977 | - _Fwd_list_node_base* __end = __begin; | |
1978 | - while (__end && __end->_M_next) | |
1979 | - __end = __end->_M_next; | |
1980 | - return _M_transfer_after(__begin, __end); | |
1981 | - } | |
1982 | - | |
1983 | - _Fwd_list_node_base* | |
1984 | _M_transfer_after(_Fwd_list_node_base* __begin, | |
1985 | _Fwd_list_node_base* __end) | |
1986 | { | |
1987 | @@ -606,8 +597,8 @@ | |
1988 | * in the range [@a __first,@a __last). | |
1989 | * | |
1990 | * Note that the assignment completely changes the %forward_list and | |
1991 | - * that the resulting %forward_list's size is the same as the number | |
1992 | - * of elements assigned. Old data may be lost. | |
1993 | + * that the number of elements of the resulting %forward_list's is the | |
1994 | + * same as the number of elements assigned. Old data is lost. | |
1995 | */ | |
1996 | template<typename _InputIterator> | |
1997 | void | |
1998 | @@ -622,10 +613,10 @@ | |
1999 | * @param __n Number of elements to be assigned. | |
2000 | * @param __val Value to be assigned. | |
2001 | * | |
2002 | - * This function fills a %forward_list with @a __n copies of the given | |
2003 | - * value. Note that the assignment completely changes the | |
2004 | - * %forward_list and that the resulting %forward_list's size is the | |
2005 | - * same as the number of elements assigned. Old data may be lost. | |
2006 | + * This function fills a %forward_list with @a __n copies of the | |
2007 | + * given value. Note that the assignment completely changes the | |
2008 | + * %forward_list, and that the resulting %forward_list has __n | |
2009 | + * elements. Old data is lost. | |
2010 | */ | |
2011 | void | |
2012 | assign(size_type __n, const _Tp& __val) | |
2013 | @@ -744,7 +735,7 @@ | |
2014 | { return this->_M_impl._M_head._M_next == 0; } | |
2015 | ||
2016 | /** | |
2017 | - * Returns the largest possible size of %forward_list. | |
2018 | + * Returns the largest possible number of elements of %forward_list. | |
2019 | */ | |
2020 | size_type | |
2021 | max_size() const noexcept | |
2022 | @@ -926,7 +917,8 @@ | |
2023 | * does not invalidate iterators and references. | |
2024 | */ | |
2025 | iterator | |
2026 | - insert_after(const_iterator __pos, std::initializer_list<_Tp> __il); | |
2027 | + insert_after(const_iterator __pos, std::initializer_list<_Tp> __il) | |
2028 | + { return insert_after(__pos, __il.begin(), __il.end()); } | |
2029 | ||
2030 | /** | |
2031 | * @brief Removes the element pointed to by the iterator following | |
2032 | @@ -997,9 +989,9 @@ | |
2033 | * | |
2034 | * This function will %resize the %forward_list to the specified | |
2035 | * number of elements. If the number is smaller than the | |
2036 | - * %forward_list's current size the %forward_list is truncated, | |
2037 | - * otherwise the %forward_list is extended and the new elements | |
2038 | - * are default constructed. | |
2039 | + * %forward_list's current number of elements the %forward_list | |
2040 | + * is truncated, otherwise the %forward_list is extended and the | |
2041 | + * new elements are default constructed. | |
2042 | */ | |
2043 | void | |
2044 | resize(size_type __sz); | |
2045 | @@ -1012,9 +1004,9 @@ | |
2046 | * | |
2047 | * This function will %resize the %forward_list to the specified | |
2048 | * number of elements. If the number is smaller than the | |
2049 | - * %forward_list's current size the %forward_list is truncated, | |
2050 | - * otherwise the %forward_list is extended and new elements are | |
2051 | - * populated with given data. | |
2052 | + * %forward_list's current number of elements the %forward_list | |
2053 | + * is truncated, otherwise the %forward_list is extended and new | |
2054 | + * elements are populated with given data. | |
2055 | */ | |
2056 | void | |
2057 | resize(size_type __sz, const value_type& __val); | |
2058 | @@ -1048,9 +1040,13 @@ | |
2059 | splice_after(const_iterator __pos, forward_list&& __list) | |
2060 | { | |
2061 | if (!__list.empty()) | |
2062 | - _M_splice_after(__pos, std::move(__list)); | |
2063 | + _M_splice_after(__pos, __list.before_begin(), __list.end()); | |
2064 | } | |
2065 | ||
2066 | + void | |
2067 | + splice_after(const_iterator __pos, forward_list& __list) | |
2068 | + { splice_after(__pos, std::move(__list)); } | |
2069 | + | |
2070 | /** | |
2071 | * @brief Insert element from another %forward_list. | |
2072 | * @param __pos Iterator referencing the element to insert after. | |
2073 | @@ -1063,16 +1059,13 @@ | |
2074 | */ | |
2075 | void | |
2076 | splice_after(const_iterator __pos, forward_list&& __list, | |
2077 | + const_iterator __i); | |
2078 | + | |
2079 | + void | |
2080 | + splice_after(const_iterator __pos, forward_list& __list, | |
2081 | const_iterator __i) | |
2082 | - { | |
2083 | - const_iterator __j = __i; | |
2084 | - ++__j; | |
2085 | - if (__pos == __i || __pos == __j) | |
2086 | - return; | |
2087 | + { splice_after(__pos, std::move(__list), __i); } | |
2088 | ||
2089 | - splice_after(__pos, std::move(__list), __i, __j); | |
2090 | - } | |
2091 | - | |
2092 | /** | |
2093 | * @brief Insert range from another %forward_list. | |
2094 | * @param __pos Iterator referencing the element to insert after. | |
2095 | @@ -1087,9 +1080,15 @@ | |
2096 | * Undefined if @a __pos is in (__before,__last). | |
2097 | */ | |
2098 | void | |
2099 | - splice_after(const_iterator __pos, forward_list&& __list, | |
2100 | - const_iterator __before, const_iterator __last); | |
2101 | + splice_after(const_iterator __pos, forward_list&&, | |
2102 | + const_iterator __before, const_iterator __last) | |
2103 | + { _M_splice_after(__pos, __before, __last); } | |
2104 | ||
2105 | + void | |
2106 | + splice_after(const_iterator __pos, forward_list&, | |
2107 | + const_iterator __before, const_iterator __last) | |
2108 | + { _M_splice_after(__pos, __before, __last); } | |
2109 | + | |
2110 | /** | |
2111 | * @brief Remove all elements equal to value. | |
2112 | * @param __val The value to remove. | |
2113 | @@ -1131,7 +1130,7 @@ | |
2114 | */ | |
2115 | void | |
2116 | unique() | |
2117 | - { this->unique(std::equal_to<_Tp>()); } | |
2118 | + { unique(std::equal_to<_Tp>()); } | |
2119 | ||
2120 | /** | |
2121 | * @brief Remove consecutive elements satisfying a predicate. | |
2122 | @@ -1160,8 +1159,12 @@ | |
2123 | */ | |
2124 | void | |
2125 | merge(forward_list&& __list) | |
2126 | - { this->merge(std::move(__list), std::less<_Tp>()); } | |
2127 | + { merge(std::move(__list), std::less<_Tp>()); } | |
2128 | ||
2129 | + void | |
2130 | + merge(forward_list& __list) | |
2131 | + { merge(std::move(__list)); } | |
2132 | + | |
2133 | /** | |
2134 | * @brief Merge sorted lists according to comparison function. | |
2135 | * @param __list Sorted list to merge. | |
2136 | @@ -1177,6 +1180,11 @@ | |
2137 | void | |
2138 | merge(forward_list&& __list, _Comp __comp); | |
2139 | ||
2140 | + template<typename _Comp> | |
2141 | + void | |
2142 | + merge(forward_list& __list, _Comp __comp) | |
2143 | + { merge(std::move(__list), __comp); } | |
2144 | + | |
2145 | /** | |
2146 | * @brief Sort the elements of the list. | |
2147 | * | |
2148 | @@ -1185,7 +1193,7 @@ | |
2149 | */ | |
2150 | void | |
2151 | sort() | |
2152 | - { this->sort(std::less<_Tp>()); } | |
2153 | + { sort(std::less<_Tp>()); } | |
2154 | ||
2155 | /** | |
2156 | * @brief Sort the forward_list using a comparison function. | |
2157 | @@ -1225,7 +1233,8 @@ | |
2158 | ||
2159 | // Called by splice_after and insert_after. | |
2160 | iterator | |
2161 | - _M_splice_after(const_iterator __pos, forward_list&& __list); | |
2162 | + _M_splice_after(const_iterator __pos, const_iterator __before, | |
2163 | + const_iterator __last); | |
2164 | ||
2165 | // Called by forward_list(n). | |
2166 | void | |
2167 | @@ -1240,11 +1249,11 @@ | |
2168 | * @brief Forward list equality comparison. | |
2169 | * @param __lx A %forward_list | |
2170 | * @param __ly A %forward_list of the same type as @a __lx. | |
2171 | - * @return True iff the size and elements of the forward lists are equal. | |
2172 | + * @return True iff the elements of the forward lists are equal. | |
2173 | * | |
2174 | - * This is an equivalence relation. It is linear in the size of the | |
2175 | - * forward lists. Deques are considered equivalent if corresponding | |
2176 | - * elements compare equal. | |
2177 | + * This is an equivalence relation. It is linear in the number of | |
2178 | + * elements of the forward lists. Deques are considered equivalent | |
2179 | + * if corresponding elements compare equal. | |
2180 | */ | |
2181 | template<typename _Tp, typename _Alloc> | |
2182 | bool | |
2183 | @@ -1257,8 +1266,9 @@ | |
2184 | * @param __ly A %forward_list of the same type as @a __lx. | |
2185 | * @return True iff @a __lx is lexicographically less than @a __ly. | |
2186 | * | |
2187 | - * This is a total ordering relation. It is linear in the size of the | |
2188 | - * forward lists. The elements must be comparable with @c <. | |
2189 | + * This is a total ordering relation. It is linear in the number of | |
2190 | + * elements of the forward lists. The elements must be comparable | |
2191 | + * with @c <. | |
2192 | * | |
2193 | * See std::lexicographical_compare() for how the determination is made. | |
2194 | */ | |
2195 | Index: libstdc++-v3/include/bits/stl_vector.h | |
2196 | =================================================================== | |
2197 | --- libstdc++-v3/include/bits/stl_vector.h (.../tags/gcc_4_7_0_release) (wersja 187293) | |
2198 | +++ libstdc++-v3/include/bits/stl_vector.h (.../branches/gcc-4_7-branch) (wersja 187293) | |
2199 | @@ -419,36 +419,18 @@ | |
2200 | * @brief %Vector move assignment operator. | |
2201 | * @param __x A %vector of identical element and allocator types. | |
2202 | * | |
2203 | - * The contents of @a __x are moved into this %vector (without copying). | |
2204 | + * The contents of @a __x are moved into this %vector (without copying, | |
2205 | + * if the allocators permit it). | |
2206 | * @a __x is a valid, but unspecified %vector. | |
2207 | */ | |
2208 | vector& | |
2209 | operator=(vector&& __x) noexcept(_Alloc_traits::_S_nothrow_move()) | |
2210 | { | |
2211 | - if (_Alloc_traits::_S_propagate_on_move_assign()) | |
2212 | - { | |
2213 | - // We're moving the rvalue's allocator so can move the data too. | |
2214 | - const vector __tmp(std::move(*this)); // discard existing data | |
2215 | - this->_M_impl._M_swap_data(__x._M_impl); | |
2216 | - std::__alloc_on_move(_M_get_Tp_allocator(), | |
2217 | - __x._M_get_Tp_allocator()); | |
2218 | - } | |
2219 | - else if (_Alloc_traits::_S_always_equal() | |
2220 | - || __x._M_get_Tp_allocator() == this->_M_get_Tp_allocator()) | |
2221 | - { | |
2222 | - // The rvalue's allocator can free our storage and vice versa, | |
2223 | - // so can swap the data storage after destroying our contents. | |
2224 | - this->clear(); | |
2225 | - this->_M_impl._M_swap_data(__x._M_impl); | |
2226 | - } | |
2227 | - else | |
2228 | - { | |
2229 | - // The rvalue's allocator cannot be moved, or is not equal, | |
2230 | - // so we need to individually move each element. | |
2231 | - this->assign(std::__make_move_if_noexcept_iterator(__x.begin()), | |
2232 | - std::__make_move_if_noexcept_iterator(__x.end())); | |
2233 | - __x.clear(); | |
2234 | - } | |
2235 | + constexpr bool __move_storage = | |
2236 | + _Alloc_traits::_S_propagate_on_move_assign() | |
2237 | + || _Alloc_traits::_S_always_equal(); | |
2238 | + _M_move_assign(std::move(__x), | |
2239 | + integral_constant<bool, __move_storage>()); | |
2240 | return *this; | |
2241 | } | |
2242 | ||
2243 | @@ -1337,6 +1319,39 @@ | |
2244 | std::_Destroy(__pos, this->_M_impl._M_finish, _M_get_Tp_allocator()); | |
2245 | this->_M_impl._M_finish = __pos; | |
2246 | } | |
2247 | + | |
2248 | +#ifdef __GXX_EXPERIMENTAL_CXX0X__ | |
2249 | + private: | |
2250 | + // Constant-time move assignment when source object's memory can be | |
2251 | + // moved, either because the source's allocator will move too | |
2252 | + // or because the allocators are equal. | |
2253 | + void | |
2254 | + _M_move_assign(vector&& __x, std::true_type) noexcept | |
2255 | + { | |
2256 | + const vector __tmp(std::move(*this)); | |
2257 | + this->_M_impl._M_swap_data(__x._M_impl); | |
2258 | + if (_Alloc_traits::_S_propagate_on_move_assign()) | |
2259 | + std::__alloc_on_move(_M_get_Tp_allocator(), | |
2260 | + __x._M_get_Tp_allocator()); | |
2261 | + } | |
2262 | + | |
2263 | + // Do move assignment when it might not be possible to move source | |
2264 | + // object's memory, resulting in a linear-time operation. | |
2265 | + void | |
2266 | + _M_move_assign(vector&& __x, std::false_type) | |
2267 | + { | |
2268 | + if (__x._M_get_Tp_allocator() == this->_M_get_Tp_allocator()) | |
2269 | + _M_move_assign(std::move(__x), std::true_type()); | |
2270 | + else | |
2271 | + { | |
2272 | + // The rvalue's allocator cannot be moved and is not equal, | |
2273 | + // so we need to individually move each element. | |
2274 | + this->assign(std::__make_move_if_noexcept_iterator(__x.begin()), | |
2275 | + std::__make_move_if_noexcept_iterator(__x.end())); | |
2276 | + __x.clear(); | |
2277 | + } | |
2278 | + } | |
2279 | +#endif | |
2280 | }; | |
2281 | ||
2282 | ||
2283 | Index: libstdc++-v3/include/bits/ptr_traits.h | |
2284 | =================================================================== | |
2285 | --- libstdc++-v3/include/bits/ptr_traits.h (.../tags/gcc_4_7_0_release) (wersja 187293) | |
2286 | +++ libstdc++-v3/include/bits/ptr_traits.h (.../branches/gcc-4_7-branch) (wersja 187293) | |
2287 | @@ -140,14 +140,8 @@ | |
2288 | /// Type used to represent the difference between two pointers | |
2289 | typedef typename __ptrtr_diff_type<_Ptr>::__type difference_type; | |
2290 | ||
2291 | - private: | |
2292 | template<typename _Up> | |
2293 | using rebind = typename __ptrtr_rebind<_Ptr, _Up>::__type; | |
2294 | - | |
2295 | - // allocator_traits needs to use __rebind | |
2296 | - template<typename> friend struct allocator_traits; | |
2297 | - template<typename> friend struct pointer_traits; | |
2298 | - template<typename, typename> friend class __ptrtr_rebind_helper2; | |
2299 | }; | |
2300 | ||
2301 | /** | |
2302 | Index: libstdc++-v3/include/bits/stl_algo.h | |
2303 | =================================================================== | |
2304 | --- libstdc++-v3/include/bits/stl_algo.h (.../tags/gcc_4_7_0_release) (wersja 187293) | |
2305 | +++ libstdc++-v3/include/bits/stl_algo.h (.../branches/gcc-4_7-branch) (wersja 187293) | |
2306 | @@ -244,7 +244,6 @@ | |
2307 | } | |
2308 | } | |
2309 | ||
2310 | -#ifdef __GXX_EXPERIMENTAL_CXX0X__ | |
2311 | /// This is an overload used by find_if_not() for the Input Iterator case. | |
2312 | template<typename _InputIterator, typename _Predicate> | |
2313 | inline _InputIterator | |
2314 | @@ -303,8 +302,30 @@ | |
2315 | return __last; | |
2316 | } | |
2317 | } | |
2318 | -#endif | |
2319 | ||
2320 | + /// Provided for stable_partition to use. | |
2321 | + template<typename _InputIterator, typename _Predicate> | |
2322 | + inline _InputIterator | |
2323 | + __find_if_not(_InputIterator __first, _InputIterator __last, | |
2324 | + _Predicate __pred) | |
2325 | + { | |
2326 | + return std::__find_if_not(__first, __last, __pred, | |
2327 | + std::__iterator_category(__first)); | |
2328 | + } | |
2329 | + | |
2330 | + /// Like find_if_not(), but uses and updates a count of the | |
2331 | + /// remaining range length instead of comparing against an end | |
2332 | + /// iterator. | |
2333 | + template<typename _InputIterator, typename _Predicate, typename _Distance> | |
2334 | + _InputIterator | |
2335 | + __find_if_not_n(_InputIterator __first, _Distance& __len, _Predicate __pred) | |
2336 | + { | |
2337 | + for (; __len; --__len, ++__first) | |
2338 | + if (!bool(__pred(*__first))) | |
2339 | + break; | |
2340 | + return __first; | |
2341 | + } | |
2342 | + | |
2343 | // set_difference | |
2344 | // set_intersection | |
2345 | // set_symmetric_difference | |
2346 | @@ -789,8 +810,7 @@ | |
2347 | __glibcxx_function_requires(_UnaryPredicateConcept<_Predicate, | |
2348 | typename iterator_traits<_InputIterator>::value_type>) | |
2349 | __glibcxx_requires_valid_range(__first, __last); | |
2350 | - return std::__find_if_not(__first, __last, __pred, | |
2351 | - std::__iterator_category(__first)); | |
2352 | + return std::__find_if_not(__first, __last, __pred); | |
2353 | } | |
2354 | ||
2355 | /** | |
2356 | @@ -1784,30 +1804,39 @@ | |
2357 | // partition | |
2358 | ||
2359 | /// This is a helper function... | |
2360 | + /// Requires __len != 0 and !__pred(*__first), | |
2361 | + /// same as __stable_partition_adaptive. | |
2362 | template<typename _ForwardIterator, typename _Predicate, typename _Distance> | |
2363 | _ForwardIterator | |
2364 | __inplace_stable_partition(_ForwardIterator __first, | |
2365 | - _ForwardIterator __last, | |
2366 | _Predicate __pred, _Distance __len) | |
2367 | { | |
2368 | if (__len == 1) | |
2369 | - return __pred(*__first) ? __last : __first; | |
2370 | + return __first; | |
2371 | _ForwardIterator __middle = __first; | |
2372 | std::advance(__middle, __len / 2); | |
2373 | - _ForwardIterator __begin = std::__inplace_stable_partition(__first, | |
2374 | - __middle, | |
2375 | - __pred, | |
2376 | - __len / 2); | |
2377 | - _ForwardIterator __end = std::__inplace_stable_partition(__middle, __last, | |
2378 | - __pred, | |
2379 | - __len | |
2380 | - - __len / 2); | |
2381 | - std::rotate(__begin, __middle, __end); | |
2382 | - std::advance(__begin, std::distance(__middle, __end)); | |
2383 | - return __begin; | |
2384 | + _ForwardIterator __left_split = | |
2385 | + std::__inplace_stable_partition(__first, __pred, __len / 2); | |
2386 | + // Advance past true-predicate values to satisfy this | |
2387 | + // function's preconditions. | |
2388 | + _Distance __right_len = __len - __len / 2; | |
2389 | + _ForwardIterator __right_split = | |
2390 | + std::__find_if_not_n(__middle, __right_len, __pred); | |
2391 | + if (__right_len) | |
2392 | + __right_split = std::__inplace_stable_partition(__middle, | |
2393 | + __pred, | |
2394 | + __right_len); | |
2395 | + std::rotate(__left_split, __middle, __right_split); | |
2396 | + std::advance(__left_split, std::distance(__middle, __right_split)); | |
2397 | + return __left_split; | |
2398 | } | |
2399 | ||
2400 | /// This is a helper function... | |
2401 | + /// Requires __first != __last and !__pred(*__first) | |
2402 | + /// and __len == distance(__first, __last). | |
2403 | + /// | |
2404 | + /// !__pred(*__first) allows us to guarantee that we don't | |
2405 | + /// move-assign an element onto itself. | |
2406 | template<typename _ForwardIterator, typename _Pointer, typename _Predicate, | |
2407 | typename _Distance> | |
2408 | _ForwardIterator | |
2409 | @@ -1821,6 +1850,12 @@ | |
2410 | { | |
2411 | _ForwardIterator __result1 = __first; | |
2412 | _Pointer __result2 = __buffer; | |
2413 | + // The precondition guarantees that !__pred(*__first), so | |
2414 | + // move that element to the buffer before starting the loop. | |
2415 | + // This ensures that we only call __pred once per element. | |
2416 | + *__result2 = _GLIBCXX_MOVE(*__first); | |
2417 | + ++__result2; | |
2418 | + ++__first; | |
2419 | for (; __first != __last; ++__first) | |
2420 | if (__pred(*__first)) | |
2421 | { | |
2422 | @@ -1839,17 +1874,23 @@ | |
2423 | { | |
2424 | _ForwardIterator __middle = __first; | |
2425 | std::advance(__middle, __len / 2); | |
2426 | - _ForwardIterator __begin = | |
2427 | + _ForwardIterator __left_split = | |
2428 | std::__stable_partition_adaptive(__first, __middle, __pred, | |
2429 | __len / 2, __buffer, | |
2430 | __buffer_size); | |
2431 | - _ForwardIterator __end = | |
2432 | - std::__stable_partition_adaptive(__middle, __last, __pred, | |
2433 | - __len - __len / 2, | |
2434 | - __buffer, __buffer_size); | |
2435 | - std::rotate(__begin, __middle, __end); | |
2436 | - std::advance(__begin, std::distance(__middle, __end)); | |
2437 | - return __begin; | |
2438 | + // Advance past true-predicate values to satisfy this | |
2439 | + // function's preconditions. | |
2440 | + _Distance __right_len = __len - __len / 2; | |
2441 | + _ForwardIterator __right_split = | |
2442 | + std::__find_if_not_n(__middle, __right_len, __pred); | |
2443 | + if (__right_len) | |
2444 | + __right_split = | |
2445 | + std::__stable_partition_adaptive(__right_split, __last, __pred, | |
2446 | + __right_len, | |
2447 | + __buffer, __buffer_size); | |
2448 | + std::rotate(__left_split, __middle, __right_split); | |
2449 | + std::advance(__left_split, std::distance(__middle, __right_split)); | |
2450 | + return __left_split; | |
2451 | } | |
2452 | } | |
2453 | ||
2454 | @@ -1882,6 +1923,8 @@ | |
2455 | typename iterator_traits<_ForwardIterator>::value_type>) | |
2456 | __glibcxx_requires_valid_range(__first, __last); | |
2457 | ||
2458 | + __first = std::__find_if_not(__first, __last, __pred); | |
2459 | + | |
2460 | if (__first == __last) | |
2461 | return __first; | |
2462 | else | |
2463 | @@ -1901,7 +1944,7 @@ | |
2464 | _DistanceType(__buf.size())); | |
2465 | else | |
2466 | return | |
2467 | - std::__inplace_stable_partition(__first, __last, __pred, | |
2468 | + std::__inplace_stable_partition(__first, __pred, | |
2469 | _DistanceType(__buf.requested_size())); | |
2470 | } | |
2471 | } | |
2472 | Index: libstdc++-v3/include/bits/forward_list.tcc | |
2473 | =================================================================== | |
2474 | --- libstdc++-v3/include/bits/forward_list.tcc (.../tags/gcc_4_7_0_release) (wersja 187293) | |
2475 | +++ libstdc++-v3/include/bits/forward_list.tcc (.../branches/gcc-4_7-branch) (wersja 187293) | |
2476 | @@ -225,22 +225,37 @@ | |
2477 | template<typename _Tp, typename _Alloc> | |
2478 | typename forward_list<_Tp, _Alloc>::iterator | |
2479 | forward_list<_Tp, _Alloc>:: | |
2480 | - _M_splice_after(const_iterator __pos, forward_list&& __list) | |
2481 | + _M_splice_after(const_iterator __pos, | |
2482 | + const_iterator __before, const_iterator __last) | |
2483 | { | |
2484 | _Node_base* __tmp = const_cast<_Node_base*>(__pos._M_node); | |
2485 | - iterator __before = __list.before_begin(); | |
2486 | - return iterator(__tmp->_M_transfer_after(__before._M_node)); | |
2487 | + _Node_base* __b = const_cast<_Node_base*>(__before._M_node); | |
2488 | + _Node_base* __end = __b; | |
2489 | + | |
2490 | + while (__end && __end->_M_next != __last._M_node) | |
2491 | + __end = __end->_M_next; | |
2492 | + | |
2493 | + if (__b != __end) | |
2494 | + return iterator(__tmp->_M_transfer_after(__b, __end)); | |
2495 | + else | |
2496 | + return iterator(__tmp); | |
2497 | } | |
2498 | ||
2499 | template<typename _Tp, typename _Alloc> | |
2500 | void | |
2501 | forward_list<_Tp, _Alloc>:: | |
2502 | splice_after(const_iterator __pos, forward_list&&, | |
2503 | - const_iterator __before, const_iterator __last) | |
2504 | + const_iterator __i) | |
2505 | { | |
2506 | + const_iterator __j = __i; | |
2507 | + ++__j; | |
2508 | + | |
2509 | + if (__pos == __i || __pos == __j) | |
2510 | + return; | |
2511 | + | |
2512 | _Node_base* __tmp = const_cast<_Node_base*>(__pos._M_node); | |
2513 | - __tmp->_M_transfer_after(const_cast<_Node_base*>(__before._M_node), | |
2514 | - const_cast<_Node_base*>(__last._M_node)); | |
2515 | + __tmp->_M_transfer_after(const_cast<_Node_base*>(__i._M_node), | |
2516 | + const_cast<_Node_base*>(__j._M_node)); | |
2517 | } | |
2518 | ||
2519 | template<typename _Tp, typename _Alloc> | |
2520 | @@ -251,7 +266,7 @@ | |
2521 | if (__n) | |
2522 | { | |
2523 | forward_list __tmp(__n, __val, get_allocator()); | |
2524 | - return _M_splice_after(__pos, std::move(__tmp)); | |
2525 | + return _M_splice_after(__pos, __tmp.before_begin(), __tmp.end()); | |
2526 | } | |
2527 | else | |
2528 | return iterator(const_cast<_Node_base*>(__pos._M_node)); | |
2529 | @@ -266,26 +281,12 @@ | |
2530 | { | |
2531 | forward_list __tmp(__first, __last, get_allocator()); | |
2532 | if (!__tmp.empty()) | |
2533 | - return _M_splice_after(__pos, std::move(__tmp)); | |
2534 | + return _M_splice_after(__pos, __tmp.before_begin(), __tmp.end()); | |
2535 | else | |
2536 | return iterator(const_cast<_Node_base*>(__pos._M_node)); | |
2537 | } | |
2538 | ||
2539 | template<typename _Tp, typename _Alloc> | |
2540 | - typename forward_list<_Tp, _Alloc>::iterator | |
2541 | - forward_list<_Tp, _Alloc>:: | |
2542 | - insert_after(const_iterator __pos, std::initializer_list<_Tp> __il) | |
2543 | - { | |
2544 | - if (__il.size()) | |
2545 | - { | |
2546 | - forward_list __tmp(__il, get_allocator()); | |
2547 | - return _M_splice_after(__pos, std::move(__tmp)); | |
2548 | - } | |
2549 | - else | |
2550 | - return iterator(const_cast<_Node_base*>(__pos._M_node)); | |
2551 | - } | |
2552 | - | |
2553 | - template<typename _Tp, typename _Alloc> | |
2554 | void | |
2555 | forward_list<_Tp, _Alloc>:: | |
2556 | remove(const _Tp& __val) | |
2557 | Index: libstdc++-v3/include/bits/shared_ptr_base.h | |
2558 | =================================================================== | |
2559 | --- libstdc++-v3/include/bits/shared_ptr_base.h (.../tags/gcc_4_7_0_release) (wersja 187293) | |
2560 | +++ libstdc++-v3/include/bits/shared_ptr_base.h (.../branches/gcc-4_7-branch) (wersja 187293) | |
2561 | @@ -343,6 +343,8 @@ | |
2562 | _Sp_counted_deleter(_Ptr __p, _Deleter __d, const _Alloc& __a) | |
2563 | : _M_ptr(__p), _M_del(__d, __a) { } | |
2564 | ||
2565 | + ~_Sp_counted_deleter() noexcept { } | |
2566 | + | |
2567 | virtual void | |
2568 | _M_dispose() noexcept | |
2569 | { _M_del._M_del(_M_ptr); } | |
2570 | @@ -401,6 +403,8 @@ | |
2571 | std::forward<_Args>(__args)...); // might throw | |
2572 | } | |
2573 | ||
2574 | + ~_Sp_counted_ptr_inplace() noexcept { } | |
2575 | + | |
2576 | virtual void | |
2577 | _M_dispose() noexcept | |
2578 | { allocator_traits<_Alloc>::destroy(_M_impl, _M_impl._M_ptr); } | |
2579 | Index: libstdc++-v3/include/bits/deque.tcc | |
2580 | =================================================================== | |
2581 | --- libstdc++-v3/include/bits/deque.tcc (.../tags/gcc_4_7_0_release) (wersja 187293) | |
2582 | +++ libstdc++-v3/include/bits/deque.tcc (.../branches/gcc-4_7-branch) (wersja 187293) | |
2583 | @@ -1,7 +1,7 @@ | |
2584 | // Deque implementation (out of line) -*- C++ -*- | |
2585 | ||
2586 | // Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, | |
2587 | -// 2009, 2010, 2011 | |
2588 | +// 2009, 2010, 2011, 2012 | |
2589 | // Free Software Foundation, Inc. | |
2590 | // | |
2591 | // This file is part of the GNU ISO C++ Library. This library is free | |
2592 | @@ -175,12 +175,12 @@ | |
2593 | { | |
2594 | if (__position._M_cur == this->_M_impl._M_start._M_cur) | |
2595 | { | |
2596 | - push_front(std::forward<_Args>(__args)...); | |
2597 | + emplace_front(std::forward<_Args>(__args)...); | |
2598 | return this->_M_impl._M_start; | |
2599 | } | |
2600 | else if (__position._M_cur == this->_M_impl._M_finish._M_cur) | |
2601 | { | |
2602 | - push_back(std::forward<_Args>(__args)...); | |
2603 | + emplace_back(std::forward<_Args>(__args)...); | |
2604 | iterator __tmp = this->_M_impl._M_finish; | |
2605 | --__tmp; | |
2606 | return __tmp; | |
2607 | Index: libstdc++-v3/include/bits/random.tcc | |
2608 | =================================================================== | |
2609 | --- libstdc++-v3/include/bits/random.tcc (.../tags/gcc_4_7_0_release) (wersja 187293) | |
2610 | +++ libstdc++-v3/include/bits/random.tcc (.../branches/gcc-4_7-branch) (wersja 187293) | |
2611 | @@ -730,40 +730,65 @@ | |
2612 | independent_bits_engine<_RandomNumberEngine, __w, _UIntType>:: | |
2613 | operator()() | |
2614 | { | |
2615 | - const long double __r = static_cast<long double>(_M_b.max()) | |
2616 | - - static_cast<long double>(_M_b.min()) + 1.0L; | |
2617 | - const result_type __m = std::log(__r) / std::log(2.0L); | |
2618 | - result_type __n, __n0, __y0, __y1, __s0, __s1; | |
2619 | + typedef typename _RandomNumberEngine::result_type _Eresult_type; | |
2620 | + const _Eresult_type __r | |
2621 | + = (_M_b.max() - _M_b.min() < std::numeric_limits<_Eresult_type>::max() | |
2622 | + ? _M_b.max() - _M_b.min() + 1 : 0); | |
2623 | + const unsigned __edig = std::numeric_limits<_Eresult_type>::digits; | |
2624 | + const unsigned __m = __r ? std::__lg(__r) : __edig; | |
2625 | + | |
2626 | + typedef typename std::common_type<_Eresult_type, result_type>::type | |
2627 | + __ctype; | |
2628 | + const unsigned __cdig = std::numeric_limits<__ctype>::digits; | |
2629 | + | |
2630 | + unsigned __n, __n0; | |
2631 | + __ctype __s0, __s1, __y0, __y1; | |
2632 | + | |
2633 | for (size_t __i = 0; __i < 2; ++__i) | |
2634 | { | |
2635 | __n = (__w + __m - 1) / __m + __i; | |
2636 | __n0 = __n - __w % __n; | |
2637 | - const result_type __w0 = __w / __n; | |
2638 | - const result_type __w1 = __w0 + 1; | |
2639 | - __s0 = result_type(1) << __w0; | |
2640 | - __s1 = result_type(1) << __w1; | |
2641 | - __y0 = __s0 * (__r / __s0); | |
2642 | - __y1 = __s1 * (__r / __s1); | |
2643 | - if (__r - __y0 <= __y0 / __n) | |
2644 | + const unsigned __w0 = __w / __n; // __w0 <= __m | |
2645 | + | |
2646 | + __s0 = 0; | |
2647 | + __s1 = 0; | |
2648 | + if (__w0 < __cdig) | |
2649 | + { | |
2650 | + __s0 = __ctype(1) << __w0; | |
2651 | + __s1 = __s0 << 1; | |
2652 | + } | |
2653 | + | |
2654 | + __y0 = 0; | |
2655 | + __y1 = 0; | |
2656 | + if (__r) | |
2657 | + { | |
2658 | + __y0 = __s0 * (__r / __s0); | |
2659 | + if (__s1) | |
2660 | + __y1 = __s1 * (__r / __s1); | |
2661 | + | |
2662 | + if (__r - __y0 <= __y0 / __n) | |
2663 | + break; | |
2664 | + } | |
2665 | + else | |
2666 | break; | |
2667 | } | |
2668 | ||
2669 | result_type __sum = 0; | |
2670 | for (size_t __k = 0; __k < __n0; ++__k) | |
2671 | { | |
2672 | - result_type __u; | |
2673 | + __ctype __u; | |
2674 | do | |
2675 | __u = _M_b() - _M_b.min(); | |
2676 | - while (__u >= __y0); | |
2677 | - __sum = __s0 * __sum + __u % __s0; | |
2678 | + while (__y0 && __u >= __y0); | |
2679 | + __sum = __s0 * __sum + (__s0 ? __u % __s0 : __u); | |
2680 | } | |
2681 | for (size_t __k = __n0; __k < __n; ++__k) | |
2682 | { | |
2683 | - result_type __u; | |
2684 | + __ctype __u; | |
2685 | do | |
2686 | __u = _M_b() - _M_b.min(); | |
2687 | - while (__u >= __y1); | |
2688 | - __sum = __s1 * __sum + __u % __s1; | |
2689 | + while (__y1 && __u >= __y1); | |
2690 | + __sum = __s1 * __sum + (__s1 ? __u % __s1 : __u); | |
2691 | } | |
2692 | return __sum; | |
2693 | } | |
2694 | @@ -840,12 +865,11 @@ | |
2695 | operator()(_UniformRandomNumberGenerator& __urng, | |
2696 | const param_type& __param) | |
2697 | { | |
2698 | - typedef typename std::make_unsigned<typename | |
2699 | - _UniformRandomNumberGenerator::result_type>::type __urngtype; | |
2700 | + typedef typename _UniformRandomNumberGenerator::result_type | |
2701 | + _Gresult_type; | |
2702 | typedef typename std::make_unsigned<result_type>::type __utype; | |
2703 | - typedef typename std::conditional<(sizeof(__urngtype) | |
2704 | - > sizeof(__utype)), | |
2705 | - __urngtype, __utype>::type __uctype; | |
2706 | + typedef typename std::common_type<_Gresult_type, __utype>::type | |
2707 | + __uctype; | |
2708 | ||
2709 | const __uctype __urngmin = __urng.min(); | |
2710 | const __uctype __urngmax = __urng.max(); | |
2711 | Index: libstdc++-v3/include/bits/stl_function.h | |
2712 | =================================================================== | |
2713 | --- libstdc++-v3/include/bits/stl_function.h (.../tags/gcc_4_7_0_release) (wersja 187293) | |
2714 | +++ libstdc++-v3/include/bits/stl_function.h (.../branches/gcc-4_7-branch) (wersja 187293) | |
2715 | @@ -1,6 +1,7 @@ | |
2716 | // Functor implementations -*- C++ -*- | |
2717 | ||
2718 | -// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009, 2010, 2011 | |
2719 | +// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009, 2010, | |
2720 | +// 2011, 2012 | |
2721 | // Free Software Foundation, Inc. | |
2722 | // | |
2723 | // This file is part of the GNU ISO C++ Library. This library is free | |
2724 | @@ -471,7 +472,12 @@ | |
2725 | /** @} */ | |
2726 | ||
2727 | template<typename _Tp> | |
2728 | - struct _Identity : public unary_function<_Tp,_Tp> | |
2729 | + struct _Identity | |
2730 | +#ifndef __GXX_EXPERIMENTAL_CXX0X__ | |
2731 | + // unary_function itself is deprecated in C++11 and deriving from | |
2732 | + // it can even be a nuisance (see PR 52942). | |
2733 | + : public unary_function<_Tp,_Tp> | |
2734 | +#endif | |
2735 | { | |
2736 | _Tp& | |
2737 | operator()(_Tp& __x) const | |
2738 | @@ -483,8 +489,10 @@ | |
2739 | }; | |
2740 | ||
2741 | template<typename _Pair> | |
2742 | - struct _Select1st : public unary_function<_Pair, | |
2743 | - typename _Pair::first_type> | |
2744 | + struct _Select1st | |
2745 | +#ifndef __GXX_EXPERIMENTAL_CXX0X__ | |
2746 | + : public unary_function<_Pair, typename _Pair::first_type> | |
2747 | +#endif | |
2748 | { | |
2749 | typename _Pair::first_type& | |
2750 | operator()(_Pair& __x) const | |
2751 | @@ -508,8 +516,10 @@ | |
2752 | }; | |
2753 | ||
2754 | template<typename _Pair> | |
2755 | - struct _Select2nd : public unary_function<_Pair, | |
2756 | - typename _Pair::second_type> | |
2757 | + struct _Select2nd | |
2758 | +#ifndef __GXX_EXPERIMENTAL_CXX0X__ | |
2759 | + : public unary_function<_Pair, typename _Pair::second_type> | |
2760 | +#endif | |
2761 | { | |
2762 | typename _Pair::second_type& | |
2763 | operator()(_Pair& __x) const | |
2764 | Index: libstdc++-v3/include/Makefile.am | |
2765 | =================================================================== | |
2766 | --- libstdc++-v3/include/Makefile.am (.../tags/gcc_4_7_0_release) (wersja 187293) | |
2767 | +++ libstdc++-v3/include/Makefile.am (.../branches/gcc-4_7-branch) (wersja 187293) | |
2768 | @@ -1,7 +1,7 @@ | |
2769 | ## Makefile for the include subdirectory of the GNU C++ Standard library. | |
2770 | ## | |
2771 | ## Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, | |
2772 | -## 2011 | |
2773 | +## 2011, 2012 | |
2774 | ## Free Software Foundation, Inc. | |
2775 | ## | |
2776 | ## This file is part of the libstdc++ version 3 distribution. | |
2777 | @@ -1105,7 +1105,7 @@ | |
2778 | sed -e "s,define __GLIBCXX__,define __GLIBCXX__ $$date," \ | |
2779 | -e "s,define _GLIBCXX_INLINE_VERSION, define _GLIBCXX_INLINE_VERSION $$ns_version," \ | |
2780 | -e "s,define _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY, define _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY $$visibility," \ | |
2781 | - -e "s,define _GLIBCXX_EXTERN_TEMPLATE, define _GLIBCXX_EXTERN_TEMPLATE $$externtemplate," \ | |
2782 | + -e "s,define _GLIBCXX_EXTERN_TEMPLATE$$, define _GLIBCXX_EXTERN_TEMPLATE $$externtemplate," \ | |
2783 | -e "$$ldbl_compat" \ | |
2784 | < ${glibcxx_srcdir}/include/bits/c++config > $@ ;\ | |
2785 | sed -e 's/HAVE_/_GLIBCXX_HAVE_/g' \ | |
2786 | Index: libstdc++-v3/ChangeLog | |
2787 | =================================================================== | |
2788 | --- libstdc++-v3/ChangeLog (.../tags/gcc_4_7_0_release) (wersja 187293) | |
2789 | +++ libstdc++-v3/ChangeLog (.../branches/gcc-4_7-branch) (wersja 187293) | |
2790 | @@ -1,3 +1,272 @@ | |
2791 | +2012-05-02 Paolo Carlini <paolo.carlini@oracle.com> | |
2792 | + | |
2793 | + PR libstdc++/53193 | |
2794 | + * testsuite/23_containers/unordered_set/instantiation_neg.cc: Adjust | |
2795 | + dg-error line number. | |
2796 | + | |
2797 | +2012-05-01 François Dumont <fdumont@gcc.gnu.org> | |
2798 | + | |
2799 | + PR libstdc++/53115 | |
2800 | + * include/bits/hashtable.h | |
2801 | + (_Hashtable<>::_M_rehash_aux(size_type, false_type)): Fix buckets | |
2802 | + after insertion of several equivalent elements. | |
2803 | + * testsuite/23_containers/unordered_multiset/insert/53115.cc: New. | |
2804 | + * testsuite/23_containers/unordered_multimap/insert/53115.cc: New. | |
2805 | + | |
2806 | +2012-04-30 Andreas Tobler <andreast@fgznet.ch> | |
2807 | + | |
2808 | + Backport from mainline | |
2809 | + 2012-03-21 Andreas Tobler <andreast@fgznet.ch> | |
2810 | + | |
2811 | + * testsuite/23_containers/vector/bool/modifiers/insert/31370.cc: | |
2812 | + Skip this test on powerpc64-*-freebsd*. | |
2813 | + | |
2814 | +2012-04-25 Jonathan Wakely <jwakely.gcc@gmail.com> | |
2815 | + | |
2816 | + * include/std/scoped_allocator (scoped_allocator::__outermost): Do | |
2817 | + not pass non-POD to varargs function. | |
2818 | + * testsuite/20_util/scoped_allocator/1.cc: Fix test. | |
2819 | + | |
2820 | +2012-04-23 Chris Jefferson <chris@bubblescope.net> | |
2821 | + | |
2822 | + PR testsuite/53046 | |
2823 | + * testsuite/25_algorithms/stable_partition/mem_check.cc: Fix size | |
2824 | + of array A. | |
2825 | + * testsuite/25_algorithms/stable_sort/mem_check.cc: Likewise. | |
2826 | + | |
2827 | +2012-04-22 Paolo Carlini <paolo.carlini@oracle.com> | |
2828 | + | |
2829 | + PR libstdc++/53067 | |
2830 | + * include/bits/hashtable_policy.h: Change inheritances to public. | |
2831 | + * testsuite/23_containers/unordered_map/requirements/53067.cc: New. | |
2832 | + * testsuite/23_containers/unordered_set/requirements/53067.cc: Likewise. | |
2833 | + | |
2834 | +2012-04-22 Jonathan Wakely <jwakely.gcc@gmail.com> | |
2835 | + | |
2836 | + PR libstdc++/53027 | |
2837 | + * include/bits/ptr_traits.h (pointer_traits::rebind): Make public. | |
2838 | + * testsuite/20_util/pointer_traits/requirements/typedefs.cc: Check | |
2839 | + rebind works. | |
2840 | + | |
2841 | +2012-04-21 Alan Modra <amodra@gmail.com> | |
2842 | + | |
2843 | + PR libstdc++/52839 | |
2844 | + * acinclude.m4 (_GLIBCXX_ATOMIC_BUILTINS): Do not depend on | |
2845 | + glibcxx_cv_atomic_long_long. | |
2846 | + * configure: Regenerate. | |
2847 | + | |
2848 | +2012-04-16 Bernhard Reutner-Fischer <aldot@gcc.gnu.org> | |
2849 | + | |
2850 | + PR bootstrap/52840 | |
2851 | + * src/Makefile.am (build-debug): Do not adjust vpath dir, remove | |
2852 | + Makefile.tmp | |
2853 | + * src/Makefile.in: Adjust as per above. | |
2854 | + | |
2855 | +2012-04-16 Benjamin Kosnik <bkoz@redhat.com> | |
2856 | + | |
2857 | + PR libstdc++/52689 | |
2858 | + * libsupc++/Makefile.am (LTCXXCOMPILE, CXXLINK): Tweak. | |
2859 | + * libsupc++/Makefile.in: Regenerated. | |
2860 | + * src/Makefile.am (LTCXXCOMPILE, CXXLINK): Tweak. | |
2861 | + (libstdc___la_SOURCES): Add in compatiblity files, with content | |
2862 | + that varies with -DPIC. | |
2863 | + * src/Makefile.in: Regenerated. | |
2864 | + * src/c++11/Makefile.am (LTCXXCOMPILE, CXXLINK): Tweak. | |
2865 | + * src/c++11/Makefile.in: Regenerated. | |
2866 | + * src/c++11/compatibility-atomic-c++0x.cc: Guard with PIC. | |
2867 | + * src/c++11/compatibility-c++0x.cc: Same. | |
2868 | + * src/c++11/future.cc: Consolidate compatibility bits into.. | |
2869 | + * src/c++11/mutex.cc: Consolidate compatibility bits into.. | |
2870 | + * src/c++11/compatibility-thread-cxx0x.cc: ...here. New. | |
2871 | + * src/c++98/Makefile.am (LTCXXCOMPILE, CXXLINK): Tweak. | |
2872 | + * src/c++98/Makefile.in: Regenerated. | |
2873 | + * src/c++98/compatibility-list-2.cc: Guard with PIC. | |
2874 | + * src/c++98/compatibility.cc: Tweak comments. | |
2875 | + | |
2876 | +2012-04-16 Benjamin Kosnik <bkoz@redhat.com> | |
2877 | + | |
2878 | + * include/ext/pb_ds/detail/pat_trie_/ | |
2879 | + constructors_destructor_fn_imps.hpp: Increment after recursion. | |
2880 | + * include/ext/pb_ds/detail/pat_trie_/pat_trie_base.hpp: Convert | |
2881 | + node_type markup from brief. | |
2882 | + | |
2883 | +2012-04-14 Paolo Carlini <paolo.carlini@oracle.com> | |
2884 | + | |
2885 | + PR libstdc++/52699 | |
2886 | + * include/bits/random.tcc (independent_bits_engine<>::operator()()) | |
2887 | + Avoid various overflows; use common_type on result_type and | |
2888 | + _RandomNumberEngine::result_type; avoid floating point computations; | |
2889 | + other smaller tweaks. | |
2890 | + | |
2891 | + * include/bits/random.tcc (uniform_int_distribution<>::operator()) | |
2892 | + Use common_type; assume _UniformRandomNumberGenerator::result_type | |
2893 | + unsigned; tidy. | |
2894 | + | |
2895 | + * include/bits/stl_algobase.h (__lg(unsigned), __lg(unsigned long), | |
2896 | + __lg(unsigned long long)): Add. | |
2897 | + | |
2898 | +2012-04-13 Paolo Carlini <paolo.carlini@oracle.com> | |
2899 | + | |
2900 | + * include/debug/safe_iterator.h (_BeforeBeginHelper<>:: | |
2901 | + _S_Is_Beginnest): Add. | |
2902 | + * include/debug/forward_list (_BeforeBeginHelper<>:: | |
2903 | + _S_Is_Beginnest): Likewise. | |
2904 | + (_Safe_iterator<>::_M_is_beginnest): Add. | |
2905 | + * include/debug/safe_iterator.tcc (_Safe_iterator<>::_M_valid_range): | |
2906 | + Use the latter. | |
2907 | + * testsuite/23_containers/forward_list/debug/splice_after.cc: | |
2908 | + Add test. | |
2909 | + | |
2910 | +2012-04-12 Paolo Carlini <paolo.carlini@oracle.com> | |
2911 | + | |
2912 | + * include/bits/forward_list.h (splice_after(const_iterator, | |
2913 | + forward_list&), splice_after(const_iterator, forward_list&, | |
2914 | + consst_iterator), splice_after(const_iterator, forward_list&, | |
2915 | + const_iterator, const_iterator), merge(forward_list&), | |
2916 | + merge(forward_list&, _Comp)): Add per C++11 as published (and | |
2917 | + LWG 1310). | |
2918 | + * include/debug/forward_list: Adjust. | |
2919 | + | |
2920 | + * include/bits/forward_list.h (splice_after(const_iterator, | |
2921 | + forward_list&&, const_iterator)): Only declare. | |
2922 | + (_M_transfer_after): Remove. | |
2923 | + (_M_splice_after(const_iterator, forward_list&&)): Change signature. | |
2924 | + (splice_after(const_iterator, forward_list&&, const_iterator, | |
2925 | + const_iterator)): Use the latter. | |
2926 | + * include/bits/forward_list.tcc (splice_after(const_iterator, | |
2927 | + forward_list&&, const_iterator)): Define here. | |
2928 | + (_M_splice_after): Define, use throughout. | |
2929 | + | |
2930 | + * include/bits/forward_list.h (insert_after(const_iterator, | |
2931 | + std::initializer_list<_Tp>)): Forward to insert_after(const_iterator, | |
2932 | + _InputIterator, _InputIterator). | |
2933 | + * include/bits/forward_list.tcc: Remove definition. | |
2934 | + | |
2935 | + * testsuite/23_containers/forward_list/modifiers/6.cc: New. | |
2936 | + * testsuite/23_containers/forward_list/operations/1.cc: Adjust. | |
2937 | + | |
2938 | + * testsuite/23_containers/forward_list/requirements/dr438/ | |
2939 | + assign_neg.cc: Adjust dg-error line number. | |
2940 | + * testsuite/23_containers/forward_list/requirements/dr438/ | |
2941 | + insert_neg.cc: Likewise. | |
2942 | + * testsuite/23_containers/forward_list/requirements/dr438/ | |
2943 | + constructor_1_neg.cc: Likewise. | |
2944 | + * testsuite/23_containers/forward_list/requirements/dr438/ | |
2945 | + constructor_2_neg.cc: Likewise. | |
2946 | + | |
2947 | +2012-04-12 Jeffrey Yasskin <jyasskin@google.com> | |
2948 | + | |
2949 | + PR libstdc++/52822 | |
2950 | + * include/bits/stl_algo.h (__find_if_not): Expose in C++98 mode. | |
2951 | + (__find_if_not_n): Like __find_if_not, but works on and updates a | |
2952 | + counted range instead of a bounded range. | |
2953 | + (stable_partition): Guarantee !__pred(*__first) in call to | |
2954 | + __stable_partition_adaptive() or __inplace_stable_partition(). | |
2955 | + (__stable_partition_adaptive): Use new precondition to avoid | |
2956 | + moving/copying objects onto themselves. Guarantee new | |
2957 | + precondition to recursive calls. | |
2958 | + (__inplace_stable_partition): Use new precondition to simplify | |
2959 | + base case, remove __last parameter. Guarantee new precondition to | |
2960 | + recursive calls. | |
2961 | + * testsuite/25_algorithms/stable_partition/moveable.cc (test02): | |
2962 | + Test a sequence that starts with a value matching the predicate. | |
2963 | + * testsuite/25_algorithms/stable_partition/pr52822.cc: Test | |
2964 | + vectors, which have a destructive self-move-assignment. | |
2965 | + | |
2966 | +2012-04-12 Paolo Carlini <paolo.carlini@oracle.com> | |
2967 | + | |
2968 | + PR libstdc++/52942 | |
2969 | + * include/bits/stl_function.h (_Identity, _Select1st, _Select2nd): | |
2970 | + In C++11 mode do not derive from std::unary_function. | |
2971 | + * include/ext/functional (identity, select1st, select2nd): Adjust. | |
2972 | + * testsuite/23_containers/unordered_map/requirements/52942.cc: New. | |
2973 | + * testsuite/23_containers/unordered_set/requirements/52942.cc: Likewise. | |
2974 | + | |
2975 | +2012-04-11 Jonathan Wakely <jwakely.gcc@gmail.com> | |
2976 | + | |
2977 | + PR libstdc++/52924 | |
2978 | + * include/bits/shared_ptr_base.h (_Sp_counted_deleter): Add | |
2979 | + user-defined destructor. | |
2980 | + (_Sp_counted_inplace): Likewise. | |
2981 | + * testsuite/20_util/shared_ptr/cons/52924.cc: New. | |
2982 | + * testsuite/20_util/shared_ptr/cons/43820_neg.cc: Adjust dg-error | |
2983 | + line numbers. | |
2984 | + | |
2985 | +2012-04-11 Jonathan Wakely <jwakely.gcc@gmail.com> | |
2986 | + | |
2987 | + * testsuite/performance/30_threads/future/polling.cc: Adjust. | |
2988 | + | |
2989 | +2012-04-11 Jonathan Wakely <jwakely.gcc@gmail.com> | |
2990 | + | |
2991 | + PR libstdc++/52591 | |
2992 | + * include/bits/stl_vector.h (vector::operator=(vector&&)): Dispatch | |
2993 | + to _M_move_assign depending on whether allocator is moved. | |
2994 | + (vector::_M_move_assign): Add overloaded functions. | |
2995 | + * testsuite/23_containers/vector/52591.cc: New. | |
2996 | + * testsuite/23_containers/vector/requirements/dr438/assign_neg.cc: | |
2997 | + Adjust dg-error line number. | |
2998 | + * testsuite/23_containers/vector/requirements/dr438/ | |
2999 | + constructor_1_neg.cc: | |
3000 | + Likewise. | |
3001 | + * testsuite/23_containers/vector/requirements/dr438/ | |
3002 | + constructor_2_neg.cc: | |
3003 | + Likewise. | |
3004 | + * testsuite/23_containers/vector/requirements/dr438/insert_neg.cc: | |
3005 | + Likewise. | |
3006 | + | |
3007 | +2012-04-09 François Dumont <fdumont@gcc.gnu.org> | |
3008 | + | |
3009 | + PR libstdc++/52476 | |
3010 | + * include/bits/hashtable.h (_Hashtable<>::_M_rehash_aux): Add. | |
3011 | + (_Hashtable<>::_M_rehash): Use the latter. | |
3012 | + * testsuite/23_containers/unordered_multimap/insert/52476.cc: New. | |
3013 | + * testsuite/23_containers/unordered_multiset/insert/52476.cc: New. | |
3014 | + | |
3015 | +2012-04-09 Terry Guo <terry.guo@arm.com> | |
3016 | + | |
3017 | + Backport from mainline | |
3018 | + 2012-03-28 Terry Guo <terry.guo@arm.com> | |
3019 | + | |
3020 | + * testsuite/Makefile.am (TEST_GCC_EXEC_PREFIX): New. | |
3021 | + * testsuite/Makefile.in: Regenerated. | |
3022 | + | |
3023 | +2012-03-30 Jeffrey Yasskin <jyasskin@gcc.gnu.org> | |
3024 | + Paolo Carlini <paolo.carlini@oracle.com> | |
3025 | + | |
3026 | + PR libstdc++/52799 | |
3027 | + * include/bits/deque.tcc (emplace): Fix thinko, replace push_front | |
3028 | + -> emplace_front, and likewise for *_back. | |
3029 | + * testsuite/23_containers/deque/modifiers/emplace/52799.cc: New. | |
3030 | + * testsuite/23_containers/list/modifiers/emplace/52799.cc: Likewise. | |
3031 | + * testsuite/23_containers/vector/modifiers/emplace/52799.cc: Likewise. | |
3032 | + | |
3033 | +2012-03-23 David S. Miller <davem@davemloft.net> | |
3034 | + | |
3035 | + * config/abi/post/sparc-linux-gnu/baseline_symbols.txt: Update. | |
3036 | + | |
3037 | +2012-03-23 Paolo Carlini <paolo.carlini@oracle.com> | |
3038 | + | |
3039 | + * include/bits/forward_list.h: Fix comments. | |
3040 | + | |
3041 | +2012-03-23 Paweł Sikora <pawel.sikora@agmk.net> | |
3042 | + | |
3043 | + PR libstdc++/52540 | |
3044 | + * include/Makefile.am (c++config.h): Fix sed rule to not break | |
3045 | + the _GLIBCXX_EXTERN_TEMPLATE redefinition. | |
3046 | + * include/Makefile.in: Regenerate. | |
3047 | + | |
3048 | +2012-03-22 Jonathan Wakely <jwakely.gcc@gmail.com> | |
3049 | + | |
3050 | + PR libstdc++/52433 | |
3051 | + * include/debug/safe_iterator.h (_Safe_iterator): Add move | |
3052 | + constructor and move assignment operator. | |
3053 | + * testsuite/23_containers/vector/debug/52433.cc: New. | |
3054 | + | |
3055 | +2012-03-22 Paolo Carlini <paolo.carlini@oracle.com> | |
3056 | + | |
3057 | + * include/std/array (array<>::at(size_type) const): Fix version | |
3058 | + for undefined __EXCEPTIONS. | |
3059 | + | |
3060 | 2012-03-22 Release Manager | |
3061 | ||
3062 | * GCC 4.7.0 released. | |
3063 | Index: libstdc++-v3/libsupc++/Makefile.in | |
3064 | =================================================================== | |
3065 | --- libstdc++-v3/libsupc++/Makefile.in (.../tags/gcc_4_7_0_release) (wersja 187293) | |
3066 | +++ libstdc++-v3/libsupc++/Makefile.in (.../branches/gcc-4_7-branch) (wersja 187293) | |
3067 | @@ -344,15 +344,15 @@ | |
3068 | # 2) integrated libsupc++convenience.la that is to be a part of libstdc++.a | |
3069 | noinst_LTLIBRARIES = libsupc++convenience.la | |
3070 | std_HEADERS = \ | |
3071 | - cxxabi.h exception initializer_list new typeinfo | |
3072 | + cxxabi.h exception initializer_list new typeinfo | |
3073 | ||
3074 | bits_HEADERS = \ | |
3075 | atomic_lockfree_defines.h cxxabi_forced.h \ | |
3076 | - exception_defines.h exception_ptr.h hash_bytes.h nested_exception.h | |
3077 | + exception_defines.h exception_ptr.h hash_bytes.h nested_exception.h | |
3078 | ||
3079 | headers = $(std_HEADERS) $(bits_HEADERS) | |
3080 | @GLIBCXX_HOSTED_TRUE@c_sources = \ | |
3081 | -@GLIBCXX_HOSTED_TRUE@ cp-demangle.c | |
3082 | +@GLIBCXX_HOSTED_TRUE@ cp-demangle.c | |
3083 | ||
3084 | sources = \ | |
3085 | array_type_info.cc \ | |
3086 | @@ -404,7 +404,7 @@ | |
3087 | vmi_class_type_info.cc \ | |
3088 | vterminate.cc | |
3089 | ||
3090 | -libsupc___la_SOURCES = $(sources) $(c_sources) | |
3091 | +libsupc___la_SOURCES = $(sources) $(c_sources) | |
3092 | libsupc__convenience_la_SOURCES = $(sources) $(c_sources) | |
3093 | ||
3094 | # AM_CXXFLAGS needs to be in each subdirectory so that it can be | |
3095 | @@ -415,9 +415,7 @@ | |
3096 | AM_CXXFLAGS = \ | |
3097 | $(PIC_CXXFLAGS) \ | |
3098 | $(XTEMPLATE_FLAGS) \ | |
3099 | - $(WARN_CXXFLAGS) \ | |
3100 | - $(OPTIMIZE_CXXFLAGS) \ | |
3101 | - $(CONFIG_CXXFLAGS) | |
3102 | + $(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS) | |
3103 | ||
3104 | AM_MAKEFLAGS = \ | |
3105 | "gxx_include_dir=$(gxx_include_dir)" | |
3106 | @@ -435,7 +433,7 @@ | |
3107 | # LTCOMPILE is copied from LTCXXCOMPILE below. | |
3108 | LTCOMPILE = $(LIBTOOL) --tag CC --tag disable-shared $(LIBTOOLFLAGS) --mode=compile \ | |
3109 | $(CC) $(DEFS) $(C_INCLUDES) $(PIC_CXXFLAGS) \ | |
3110 | - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) | |
3111 | + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) | |
3112 | ||
3113 | ||
3114 | # Libtool notes | |
3115 | @@ -459,9 +457,11 @@ | |
3116 | # | |
3117 | # We have to put --tag disable-shared after --tag CXX lest things | |
3118 | # CXX undo the affect of disable-shared. | |
3119 | -LTCXXCOMPILE = $(LIBTOOL) --tag CXX --tag disable-shared $(LIBTOOLFLAGS) \ | |
3120 | - --mode=compile $(CXX) $(TOPLEVEL_INCLUDES) \ | |
3121 | - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) | |
3122 | +LTCXXCOMPILE = \ | |
3123 | + $(LIBTOOL) --tag CXX --tag disable-shared \ | |
3124 | + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ | |
3125 | + --mode=compile $(CXX) $(TOPLEVEL_INCLUDES) \ | |
3126 | + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) | |
3127 | ||
3128 | LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS)) | |
3129 | ||
3130 | @@ -471,9 +471,11 @@ | |
3131 | # course is problematic at this point. So, we get the top-level | |
3132 | # directory to configure libstdc++-v3 to use gcc as the C++ | |
3133 | # compilation driver. | |
3134 | -CXXLINK = $(LIBTOOL) --tag CXX --tag disable-shared $(LIBTOOLFLAGS) \ | |
3135 | - --mode=link $(CXX) \ | |
3136 | - $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@ | |
3137 | +CXXLINK = \ | |
3138 | + $(LIBTOOL) --tag CXX --tag disable-shared \ | |
3139 | + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ | |
3140 | + --mode=link $(CXX) \ | |
3141 | + $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@ | |
3142 | ||
3143 | ||
3144 | # Install notes | |
3145 | Index: libstdc++-v3/libsupc++/Makefile.am | |
3146 | =================================================================== | |
3147 | --- libstdc++-v3/libsupc++/Makefile.am (.../tags/gcc_4_7_0_release) (wersja 187293) | |
3148 | +++ libstdc++-v3/libsupc++/Makefile.am (.../branches/gcc-4_7-branch) (wersja 187293) | |
3149 | @@ -32,17 +32,17 @@ | |
3150 | noinst_LTLIBRARIES = libsupc++convenience.la | |
3151 | ||
3152 | std_HEADERS = \ | |
3153 | - cxxabi.h exception initializer_list new typeinfo | |
3154 | + cxxabi.h exception initializer_list new typeinfo | |
3155 | ||
3156 | bits_HEADERS = \ | |
3157 | atomic_lockfree_defines.h cxxabi_forced.h \ | |
3158 | - exception_defines.h exception_ptr.h hash_bytes.h nested_exception.h | |
3159 | + exception_defines.h exception_ptr.h hash_bytes.h nested_exception.h | |
3160 | ||
3161 | headers = $(std_HEADERS) $(bits_HEADERS) | |
3162 | ||
3163 | if GLIBCXX_HOSTED | |
3164 | c_sources = \ | |
3165 | - cp-demangle.c | |
3166 | + cp-demangle.c | |
3167 | endif | |
3168 | ||
3169 | sources = \ | |
3170 | @@ -95,7 +95,7 @@ | |
3171 | vmi_class_type_info.cc \ | |
3172 | vterminate.cc | |
3173 | ||
3174 | -libsupc___la_SOURCES = $(sources) $(c_sources) | |
3175 | +libsupc___la_SOURCES = $(sources) $(c_sources) | |
3176 | libsupc__convenience_la_SOURCES = $(sources) $(c_sources) | |
3177 | ||
3178 | # AM_CXXFLAGS needs to be in each subdirectory so that it can be | |
3179 | @@ -106,9 +106,7 @@ | |
3180 | AM_CXXFLAGS = \ | |
3181 | $(PIC_CXXFLAGS) \ | |
3182 | $(XTEMPLATE_FLAGS) \ | |
3183 | - $(WARN_CXXFLAGS) \ | |
3184 | - $(OPTIMIZE_CXXFLAGS) \ | |
3185 | - $(CONFIG_CXXFLAGS) | |
3186 | + $(WARN_CXXFLAGS) $(OPTIMIZE_CXXFLAGS) $(CONFIG_CXXFLAGS) | |
3187 | ||
3188 | AM_MAKEFLAGS = \ | |
3189 | "gxx_include_dir=$(gxx_include_dir)" | |
3190 | @@ -125,7 +123,7 @@ | |
3191 | # LTCOMPILE is copied from LTCXXCOMPILE below. | |
3192 | LTCOMPILE = $(LIBTOOL) --tag CC --tag disable-shared $(LIBTOOLFLAGS) --mode=compile \ | |
3193 | $(CC) $(DEFS) $(C_INCLUDES) $(PIC_CXXFLAGS) \ | |
3194 | - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) | |
3195 | + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) | |
3196 | ||
3197 | cp-demangle.c: | |
3198 | rm -f $@ | |
3199 | @@ -178,9 +176,11 @@ | |
3200 | # | |
3201 | # We have to put --tag disable-shared after --tag CXX lest things | |
3202 | # CXX undo the affect of disable-shared. | |
3203 | -LTCXXCOMPILE = $(LIBTOOL) --tag CXX --tag disable-shared $(LIBTOOLFLAGS) \ | |
3204 | - --mode=compile $(CXX) $(TOPLEVEL_INCLUDES) \ | |
3205 | - $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) | |
3206 | +LTCXXCOMPILE = \ | |
3207 | + $(LIBTOOL) --tag CXX --tag disable-shared \ | |
3208 | + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ | |
3209 | + --mode=compile $(CXX) $(TOPLEVEL_INCLUDES) \ | |
3210 | + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) | |
3211 | ||
3212 | LTLDFLAGS = $(shell $(SHELL) $(top_srcdir)/../libtool-ldflags $(LDFLAGS)) | |
3213 | ||
3214 | @@ -190,11 +190,12 @@ | |
3215 | # course is problematic at this point. So, we get the top-level | |
3216 | # directory to configure libstdc++-v3 to use gcc as the C++ | |
3217 | # compilation driver. | |
3218 | -CXXLINK = $(LIBTOOL) --tag CXX --tag disable-shared $(LIBTOOLFLAGS) \ | |
3219 | - --mode=link $(CXX) \ | |
3220 | - $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@ | |
3221 | +CXXLINK = \ | |
3222 | + $(LIBTOOL) --tag CXX --tag disable-shared \ | |
3223 | + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ | |
3224 | + --mode=link $(CXX) \ | |
3225 | + $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LTLDFLAGS) -o $@ | |
3226 | ||
3227 | - | |
3228 | # Install notes | |
3229 | # We have to have rules modified from the default to counteract SUN make | |
3230 | # prepending each of $(*_HEADERS) with VPATH below. | |
3231 | Index: libstdc++-v3/testsuite/25_algorithms/stable_partition/mem_check.cc | |
3232 | =================================================================== | |
3233 | --- libstdc++-v3/testsuite/25_algorithms/stable_partition/mem_check.cc (.../tags/gcc_4_7_0_release) (wersja 187293) | |
3234 | +++ libstdc++-v3/testsuite/25_algorithms/stable_partition/mem_check.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
3235 | @@ -1,4 +1,4 @@ | |
3236 | -// Copyright (C) 2009 Free Software Foundation, Inc. | |
3237 | +// Copyright (C) 2009, 2012 Free Software Foundation, Inc. | |
3238 | // | |
3239 | // This file is part of the GNU ISO C++ Library. This library is free | |
3240 | // software; you can redistribute it and/or modify it under the | |
3241 | @@ -31,7 +31,7 @@ | |
3242 | typedef test_container<copy_tracker, random_access_iterator_wrapper> Container; | |
3243 | ||
3244 | const int A[] = {10, 20, 1, 11, 2, 21, 28, 29, 12, 35, 15, 27, 6, 16, 7, | |
3245 | - 25, 17, 8, 23, 18, 9, 19, 24, 30, 13, 4, 14, 22, 26}; | |
3246 | + 25, 17, 8, 23, 18, 9, 19, 24, 30, 13, 4, 14, 22, 26, 0}; | |
3247 | ||
3248 | bool even(const copy_tracker& ct) | |
3249 | { return ct.id() < 19; } | |
3250 | Index: libstdc++-v3/testsuite/25_algorithms/stable_partition/pr52822.cc | |
3251 | =================================================================== | |
3252 | --- libstdc++-v3/testsuite/25_algorithms/stable_partition/pr52822.cc (.../tags/gcc_4_7_0_release) (wersja 0) | |
3253 | +++ libstdc++-v3/testsuite/25_algorithms/stable_partition/pr52822.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
3254 | @@ -0,0 +1,43 @@ | |
3255 | +// { dg-options "-std=gnu++0x" } | |
3256 | + | |
3257 | +// Copyright (C) 2012 Free Software Foundation, Inc. | |
3258 | +// | |
3259 | +// This file is part of the GNU ISO C++ Library. This library is free | |
3260 | +// software; you can redistribute it and/or modify it under the | |
3261 | +// terms of the GNU General Public License as published by the | |
3262 | +// Free Software Foundation; either version 3, or (at your option) | |
3263 | +// any later version. | |
3264 | + | |
3265 | +// This library is distributed in the hope that it will be useful, | |
3266 | +// but WITHOUT ANY WARRANTY; without Pred the implied warranty of | |
3267 | +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
3268 | +// GNU General Public License for more details. | |
3269 | + | |
3270 | +// You should have received a copy of the GNU General Public License along | |
3271 | +// with this library; see the file COPYING3. If not see | |
3272 | +// <http://www.gnu.org/licenses/>. | |
3273 | + | |
3274 | +// 25.2.12 [lib.alg.partitions] Partitions. | |
3275 | + | |
3276 | +#include <algorithm> | |
3277 | +#include <vector> | |
3278 | +#include <testsuite_hooks.h> | |
3279 | + | |
3280 | +bool true_vector_pred(const std::vector<int>&) { return true; } | |
3281 | + | |
3282 | +void | |
3283 | +test01() | |
3284 | +{ | |
3285 | + std::vector<std::vector<int> > v(1); | |
3286 | + v[0].push_back(7); | |
3287 | + VERIFY( v[0].size() == 1 ); | |
3288 | + std::stable_partition(v.begin(), v.end(), &true_vector_pred); | |
3289 | + VERIFY( v[0].size() == 1 ); | |
3290 | +} | |
3291 | + | |
3292 | +int | |
3293 | +main() | |
3294 | +{ | |
3295 | + test01(); | |
3296 | + return 0; | |
3297 | +} | |
3298 | Index: libstdc++-v3/testsuite/25_algorithms/stable_partition/moveable.cc | |
3299 | =================================================================== | |
3300 | --- libstdc++-v3/testsuite/25_algorithms/stable_partition/moveable.cc (.../tags/gcc_4_7_0_release) (wersja 187293) | |
3301 | +++ libstdc++-v3/testsuite/25_algorithms/stable_partition/moveable.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
3302 | @@ -35,6 +35,11 @@ | |
3303 | const int B[] = {2, 4, 6, 8, 10, 12, 14, 16, 1, 3, 5, 7, 9, 11, 13, 15, 17}; | |
3304 | const int N = sizeof(A) / sizeof(int); | |
3305 | ||
3306 | +// Check that starting with a true predicate works too. (PR52822) | |
3307 | +const int A2[] = {2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17}; | |
3308 | +const int B2[] = {2, 4, 6, 8, 10, 12, 14, 16, 3, 5, 7, 9, 11, 13, 15, 17}; | |
3309 | +const int N2 = sizeof(A2) / sizeof(int); | |
3310 | + | |
3311 | struct Pred | |
3312 | { | |
3313 | bool | |
3314 | @@ -42,7 +47,7 @@ | |
3315 | { return (x.val % 2) == 0; } | |
3316 | }; | |
3317 | ||
3318 | -// 25.2.12 stable_partition() | |
3319 | +// 25.2.12 stable_partition(), starting with a false predicate. | |
3320 | void | |
3321 | test01() | |
3322 | { | |
3323 | @@ -56,9 +61,24 @@ | |
3324 | VERIFY( std::equal(s1, s1 + N, B) ); | |
3325 | } | |
3326 | ||
3327 | +// 25.2.12 stable_partition(), starting with a true predicate. | |
3328 | +void | |
3329 | +test02() | |
3330 | +{ | |
3331 | + bool test __attribute__((unused)) = true; | |
3332 | + | |
3333 | + rvalstruct s1[N2]; | |
3334 | + std::copy(A2, A2 + N2, s1); | |
3335 | + Container con(s1, s1 + N2); | |
3336 | + | |
3337 | + std::stable_partition(con.begin(), con.end(), Pred()); | |
3338 | + VERIFY( std::equal(s1, s1 + N2, B2) ); | |
3339 | +} | |
3340 | + | |
3341 | int | |
3342 | main() | |
3343 | { | |
3344 | test01(); | |
3345 | + test02(); | |
3346 | return 0; | |
3347 | } | |
3348 | Index: libstdc++-v3/testsuite/25_algorithms/stable_sort/mem_check.cc | |
3349 | =================================================================== | |
3350 | --- libstdc++-v3/testsuite/25_algorithms/stable_sort/mem_check.cc (.../tags/gcc_4_7_0_release) (wersja 187293) | |
3351 | +++ libstdc++-v3/testsuite/25_algorithms/stable_sort/mem_check.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
3352 | @@ -1,4 +1,4 @@ | |
3353 | -// Copyright (C) 2009 Free Software Foundation, Inc. | |
3354 | +// Copyright (C) 2009, 2012 Free Software Foundation, Inc. | |
3355 | // | |
3356 | // This file is part of the GNU ISO C++ Library. This library is free | |
3357 | // software; you can redistribute it and/or modify it under the | |
3358 | @@ -31,7 +31,7 @@ | |
3359 | typedef test_container<copy_tracker, random_access_iterator_wrapper> Container; | |
3360 | ||
3361 | const int A[] = {10, 20, 1, 11, 2, 21, 28, 29, 12, 35, 15, 27, 6, 16, 7, | |
3362 | - 25, 17, 8, 23, 18, 9, 19, 24, 30, 13, 4, 14, 22, 26}; | |
3363 | + 25, 17, 8, 23, 18, 9, 19, 24, 30, 13, 4, 14, 22, 26, 0}; | |
3364 | ||
3365 | void | |
3366 | test_mem1(int throw_count) | |
3367 | Index: libstdc++-v3/testsuite/Makefile.in | |
3368 | =================================================================== | |
3369 | --- libstdc++-v3/testsuite/Makefile.in (.../tags/gcc_4_7_0_release) (wersja 187293) | |
3370 | +++ libstdc++-v3/testsuite/Makefile.in (.../branches/gcc-4_7-branch) (wersja 187293) | |
3371 | @@ -505,6 +505,7 @@ | |
3372 | @echo 'set libiconv "$(LIBICONV)"' >>site.tmp | |
3373 | @echo 'set baseline_dir "$(baseline_dir)"' >> site.tmp | |
3374 | @echo 'set baseline_subdir_switch "$(baseline_subdir_switch)"' >> site.tmp | |
3375 | + @echo 'set TEST_GCC_EXEC_PREFIX "$(libdir)/gcc/"' >> site.tmp | |
3376 | @echo '## All variables above are generated by configure. Do Not Edit ##' >>site.tmp | |
3377 | @test ! -f site.exp || \ | |
3378 | sed '1,/^## All variables above are.*##/ d' site.exp >> site.tmp | |
3379 | Index: libstdc++-v3/testsuite/performance/30_threads/future/polling.cc | |
3380 | =================================================================== | |
3381 | --- libstdc++-v3/testsuite/performance/30_threads/future/polling.cc (.../tags/gcc_4_7_0_release) (wersja 187293) | |
3382 | +++ libstdc++-v3/testsuite/performance/30_threads/future/polling.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
3383 | @@ -1,4 +1,4 @@ | |
3384 | -// Copyright (C) 2009, 2010 Free Software Foundation, Inc. | |
3385 | +// Copyright (C) 2009, 2010, 2012 Free Software Foundation, Inc. | |
3386 | // | |
3387 | // This file is part of the GNU ISO C++ Library. This library is free | |
3388 | // software; you can redistribute it and/or modify it under the | |
3389 | @@ -22,7 +22,7 @@ | |
3390 | ||
3391 | inline bool is_ready(std::shared_future<void>& f) | |
3392 | { | |
3393 | - return f.wait_for(std::chrono::microseconds(1)); | |
3394 | + return f.wait_for(std::chrono::microseconds(1)) == std::future_status::ready; | |
3395 | } | |
3396 | ||
3397 | void poll(std::shared_future<void> f) | |
3398 | Index: libstdc++-v3/testsuite/Makefile.am | |
3399 | =================================================================== | |
3400 | --- libstdc++-v3/testsuite/Makefile.am (.../tags/gcc_4_7_0_release) (wersja 187293) | |
3401 | +++ libstdc++-v3/testsuite/Makefile.am (.../branches/gcc-4_7-branch) (wersja 187293) | |
3402 | @@ -60,6 +60,7 @@ | |
3403 | @echo 'set libiconv "$(LIBICONV)"' >>site.tmp | |
3404 | @echo 'set baseline_dir "$(baseline_dir)"' >> site.tmp | |
3405 | @echo 'set baseline_subdir_switch "$(baseline_subdir_switch)"' >> site.tmp | |
3406 | + @echo 'set TEST_GCC_EXEC_PREFIX "$(libdir)/gcc/"' >> site.tmp | |
3407 | @echo '## All variables above are generated by configure. Do Not Edit ##' >>site.tmp | |
3408 | @test ! -f site.exp || \ | |
3409 | sed '1,/^## All variables above are.*##/ d' site.exp >> site.tmp | |
3410 | Index: libstdc++-v3/testsuite/23_containers/unordered_map/requirements/53067.cc | |
3411 | =================================================================== | |
3412 | --- libstdc++-v3/testsuite/23_containers/unordered_map/requirements/53067.cc (.../tags/gcc_4_7_0_release) (wersja 0) | |
3413 | +++ libstdc++-v3/testsuite/23_containers/unordered_map/requirements/53067.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
3414 | @@ -0,0 +1,28 @@ | |
3415 | +// { dg-do compile } | |
3416 | +// { dg-options "-std=gnu++11" } | |
3417 | + | |
3418 | +// Copyright (C) 2012 Free Software Foundation, Inc. | |
3419 | +// | |
3420 | +// This file is part of the GNU ISO C++ Library. This library is free | |
3421 | +// software; you can redistribute it and/or modify it under the | |
3422 | +// terms of the GNU General Public License as published by the | |
3423 | +// Free Software Foundation; either version 3, or (at your option) | |
3424 | +// any later version. | |
3425 | + | |
3426 | +// This library is distributed in the hope that it will be useful, | |
3427 | +// but WITHOUT ANY WARRANTY; without Pred the implied warranty of | |
3428 | +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
3429 | +// GNU General Public License for more details. | |
3430 | + | |
3431 | +// You should have received a copy of the GNU General Public License along | |
3432 | +// with this library; see the file COPYING3. If not see | |
3433 | +// <http://www.gnu.org/licenses/>. | |
3434 | + | |
3435 | +#include <unordered_map> | |
3436 | +#include <functional> | |
3437 | + | |
3438 | +void f() | |
3439 | +{ | |
3440 | + std::unordered_map<int, int> Foo; | |
3441 | + ref(Foo); | |
3442 | +} | |
3443 | Index: libstdc++-v3/testsuite/23_containers/unordered_map/requirements/52942.cc | |
3444 | =================================================================== | |
3445 | --- libstdc++-v3/testsuite/23_containers/unordered_map/requirements/52942.cc (.../tags/gcc_4_7_0_release) (wersja 0) | |
3446 | +++ libstdc++-v3/testsuite/23_containers/unordered_map/requirements/52942.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
3447 | @@ -0,0 +1,37 @@ | |
3448 | +// { dg-do compile } | |
3449 | +// { dg-options "-std=gnu++11" } | |
3450 | + | |
3451 | +// Copyright (C) 2012 Free Software Foundation, Inc. | |
3452 | +// | |
3453 | +// This file is part of the GNU ISO C++ Library. This library is free | |
3454 | +// software; you can redistribute it and/or modify it under the | |
3455 | +// terms of the GNU General Public License as published by the | |
3456 | +// Free Software Foundation; either version 3, or (at your option) | |
3457 | +// any later version. | |
3458 | + | |
3459 | +// This library is distributed in the hope that it will be useful, | |
3460 | +// but WITHOUT ANY WARRANTY; without Pred the implied warranty of | |
3461 | +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
3462 | +// GNU General Public License for more details. | |
3463 | + | |
3464 | +// You should have received a copy of the GNU General Public License along | |
3465 | +// with this library; see the file COPYING3. If not see | |
3466 | +// <http://www.gnu.org/licenses/>. | |
3467 | + | |
3468 | +#include <unordered_map> | |
3469 | +#include <functional> | |
3470 | + | |
3471 | +struct TFoo {}; | |
3472 | + | |
3473 | +struct TFoo_hash | |
3474 | +{ | |
3475 | + std::size_t operator()(const TFoo &) const { return 0; } | |
3476 | +}; | |
3477 | + | |
3478 | +void f1(std::unordered_map<TFoo, int, TFoo_hash> &) {} | |
3479 | + | |
3480 | +void f2() | |
3481 | +{ | |
3482 | + std::unordered_map<TFoo, int, TFoo_hash> map1; | |
3483 | + std::bind(f1, std::ref(map1)); | |
3484 | +} | |
3485 | Index: libstdc++-v3/testsuite/23_containers/forward_list/modifiers/6.cc | |
3486 | =================================================================== | |
3487 | --- libstdc++-v3/testsuite/23_containers/forward_list/modifiers/6.cc (.../tags/gcc_4_7_0_release) (wersja 0) | |
3488 | +++ libstdc++-v3/testsuite/23_containers/forward_list/modifiers/6.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
3489 | @@ -0,0 +1,94 @@ | |
3490 | +// { dg-options "-std=gnu++11" } | |
3491 | + | |
3492 | +// Copyright (C) 2012 Free Software Foundation, Inc. | |
3493 | +// | |
3494 | +// This file is part of the GNU ISO C++ Library. This library is free | |
3495 | +// software; you can redistribute it and/or modify it under the | |
3496 | +// terms of the GNU General Public License as published by the | |
3497 | +// Free Software Foundation; either version 3, or (at your option) | |
3498 | +// any later version. | |
3499 | + | |
3500 | +// This library is distributed in the hope that it will be useful, | |
3501 | +// but WITHOUT ANY WARRANTY; without Pred the implied warranty of | |
3502 | +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
3503 | +// GNU General Public License for more details. | |
3504 | + | |
3505 | +// You should have received a copy of the GNU General Public License along | |
3506 | +// with this library; see the file COPYING3. If not see | |
3507 | +// <http://www.gnu.org/licenses/>. | |
3508 | + | |
3509 | +#include <forward_list> | |
3510 | + | |
3511 | +#include <testsuite_hooks.h> | |
3512 | + | |
3513 | +void test01() | |
3514 | +{ | |
3515 | + bool test __attribute__((unused)) = true; | |
3516 | + | |
3517 | + std::forward_list<int> fl1(1, 5), fl2(1, 4), fl3(1, 3), | |
3518 | + fl4(1, 2), fl5(1, 1), fl6(1, 0); | |
3519 | + | |
3520 | + fl1.splice_after(fl1.before_begin(), fl2); | |
3521 | + | |
3522 | + auto it = fl1.begin(); | |
3523 | + | |
3524 | + VERIFY( *it == 4 ); | |
3525 | + | |
3526 | + ++it; | |
3527 | + | |
3528 | + VERIFY( *it == 5 ); | |
3529 | + | |
3530 | + fl3.splice_after(fl3.before_begin(), fl4, fl4.before_begin()); | |
3531 | + | |
3532 | + it = fl3.begin(); | |
3533 | + | |
3534 | + VERIFY( *it == 2 ); | |
3535 | + | |
3536 | + ++it; | |
3537 | + | |
3538 | + VERIFY( *it == 3 ); | |
3539 | + | |
3540 | + fl5.splice_after(fl5.before_begin(), fl6, fl6.before_begin(), fl6.end()); | |
3541 | + | |
3542 | + it = fl5.begin(); | |
3543 | + | |
3544 | + VERIFY( *it == 0 ); | |
3545 | + | |
3546 | + ++it; | |
3547 | + | |
3548 | + VERIFY( *it == 1 ); | |
3549 | + | |
3550 | + fl1.merge(fl2); | |
3551 | + | |
3552 | + it = fl1.begin(); | |
3553 | + | |
3554 | + VERIFY( *it == 4 ); | |
3555 | + | |
3556 | + ++it; | |
3557 | + | |
3558 | + VERIFY( *it == 5 ); | |
3559 | + | |
3560 | + fl1.merge(fl3, std::less<int>()); | |
3561 | + | |
3562 | + it = fl1.begin(); | |
3563 | + | |
3564 | + VERIFY( *it == 2 ); | |
3565 | + | |
3566 | + ++it; | |
3567 | + | |
3568 | + VERIFY( *it == 3 ); | |
3569 | + | |
3570 | + ++it; | |
3571 | + | |
3572 | + VERIFY( *it == 4 ); | |
3573 | + | |
3574 | + ++it; | |
3575 | + | |
3576 | + VERIFY( *it == 5 ); | |
3577 | +} | |
3578 | + | |
3579 | +int main() | |
3580 | +{ | |
3581 | + test01(); | |
3582 | + return 0; | |
3583 | +} | |
3584 | Index: libstdc++-v3/testsuite/23_containers/forward_list/operations/1.cc | |
3585 | =================================================================== | |
3586 | --- libstdc++-v3/testsuite/23_containers/forward_list/operations/1.cc (.../tags/gcc_4_7_0_release) (wersja 187293) | |
3587 | +++ libstdc++-v3/testsuite/23_containers/forward_list/operations/1.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
3588 | @@ -1,6 +1,6 @@ | |
3589 | // { dg-options "-std=gnu++0x" } | |
3590 | ||
3591 | -// Copyright (C) 2008, 2009 Free Software Foundation, Inc. | |
3592 | +// Copyright (C) 2008, 2009, 2012 Free Software Foundation, Inc. | |
3593 | // | |
3594 | // This file is part of the GNU ISO C++ Library. This library is free | |
3595 | // software; you can redistribute it and/or modify it under the | |
3596 | @@ -68,7 +68,7 @@ | |
3597 | ||
3598 | VERIFY(*befy == 10.0); | |
3599 | ++befy; | |
3600 | - VERIFY(*befy == 15.0); | |
3601 | + VERIFY(*befy == 14.0); | |
3602 | } | |
3603 | ||
3604 | // This test verifies the following: | |
3605 | Index: libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/assign_neg.cc | |
3606 | =================================================================== | |
3607 | --- libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/assign_neg.cc (.../tags/gcc_4_7_0_release) (wersja 187293) | |
3608 | +++ libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/assign_neg.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
3609 | @@ -1,8 +1,8 @@ | |
3610 | // { dg-do compile } | |
3611 | // { dg-options "-std=gnu++0x" } | |
3612 | -// { dg-error "no matching" "" { target *-*-* } 1213 } | |
3613 | +// { dg-error "no matching" "" { target *-*-* } 1221 } | |
3614 | ||
3615 | -// Copyright (C) 2009, 2010, 2011 Free Software Foundation | |
3616 | +// Copyright (C) 2009, 2010, 2011, 2012 Free Software Foundation | |
3617 | // | |
3618 | // This file is part of the GNU ISO C++ Library. This library is free | |
3619 | // software; you can redistribute it and/or modify it under the | |
3620 | Index: libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/insert_neg.cc | |
3621 | =================================================================== | |
3622 | --- libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/insert_neg.cc (.../tags/gcc_4_7_0_release) (wersja 187293) | |
3623 | +++ libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/insert_neg.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
3624 | @@ -1,8 +1,8 @@ | |
3625 | // { dg-do compile } | |
3626 | // { dg-options "-std=gnu++0x" } | |
3627 | -// { dg-error "no matching" "" { target *-*-* } 1213 } | |
3628 | +// { dg-error "no matching" "" { target *-*-* } 1221 } | |
3629 | ||
3630 | -// Copyright (C) 2009, 2010, 2011 Free Software Foundation | |
3631 | +// Copyright (C) 2009, 2010, 2011, 2012 Free Software Foundation | |
3632 | // | |
3633 | // This file is part of the GNU ISO C++ Library. This library is free | |
3634 | // software; you can redistribute it and/or modify it under the | |
3635 | Index: libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/constructor_1_neg.cc | |
3636 | =================================================================== | |
3637 | --- libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/constructor_1_neg.cc (.../tags/gcc_4_7_0_release) (wersja 187293) | |
3638 | +++ libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/constructor_1_neg.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
3639 | @@ -1,8 +1,8 @@ | |
3640 | // { dg-do compile } | |
3641 | // { dg-options "-std=gnu++0x" } | |
3642 | -// { dg-error "no matching" "" { target *-*-* } 1213 } | |
3643 | +// { dg-error "no matching" "" { target *-*-* } 1221 } | |
3644 | ||
3645 | -// Copyright (C) 2009, 2010, 2011 Free Software Foundation | |
3646 | +// Copyright (C) 2009, 2010, 2011, 2012 Free Software Foundation | |
3647 | // | |
3648 | // This file is part of the GNU ISO C++ Library. This library is free | |
3649 | // software; you can redistribute it and/or modify it under the | |
3650 | Index: libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/constructor_2_neg.cc | |
3651 | =================================================================== | |
3652 | --- libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/constructor_2_neg.cc (.../tags/gcc_4_7_0_release) (wersja 187293) | |
3653 | +++ libstdc++-v3/testsuite/23_containers/forward_list/requirements/dr438/constructor_2_neg.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
3654 | @@ -1,8 +1,8 @@ | |
3655 | // { dg-do compile } | |
3656 | // { dg-options "-std=gnu++0x" } | |
3657 | -// { dg-error "no matching" "" { target *-*-* } 1213 } | |
3658 | +// { dg-error "no matching" "" { target *-*-* } 1221 } | |
3659 | ||
3660 | -// Copyright (C) 2009, 2010, 2011 Free Software Foundation | |
3661 | +// Copyright (C) 2009, 2010, 2011, 2012 Free Software Foundation | |
3662 | // | |
3663 | // This file is part of the GNU ISO C++ Library. This library is free | |
3664 | // software; you can redistribute it and/or modify it under the | |
3665 | Index: libstdc++-v3/testsuite/23_containers/forward_list/debug/splice_after.cc | |
3666 | =================================================================== | |
3667 | --- libstdc++-v3/testsuite/23_containers/forward_list/debug/splice_after.cc (.../tags/gcc_4_7_0_release) (wersja 187293) | |
3668 | +++ libstdc++-v3/testsuite/23_containers/forward_list/debug/splice_after.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
3669 | @@ -1,6 +1,6 @@ | |
3670 | // { dg-options "-std=gnu++0x" } | |
3671 | ||
3672 | -// Copyright (C) 2010 Free Software Foundation, Inc. | |
3673 | +// Copyright (C) 2010, 2012 Free Software Foundation, Inc. | |
3674 | // | |
3675 | // This file is part of the GNU ISO C++ Library. This library is free | |
3676 | // software; you can redistribute it and/or modify it under the | |
3677 | @@ -34,6 +34,10 @@ | |
3678 | ||
3679 | VERIFY( before == fl1.before_begin() ); | |
3680 | VERIFY( end == fl1.end() ); | |
3681 | + | |
3682 | + // no-op just to check that debug mode does not see any problem with it. | |
3683 | + fl1.splice_after(fl1.before_begin(), std::move(fl2), | |
3684 | + fl2.before_begin(), fl2.begin()); | |
3685 | } | |
3686 | ||
3687 | int | |
3688 | Index: libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/53115.cc | |
3689 | =================================================================== | |
3690 | --- libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/53115.cc (.../tags/gcc_4_7_0_release) (wersja 0) | |
3691 | +++ libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/53115.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
3692 | @@ -0,0 +1,101 @@ | |
3693 | +// { dg-options "-std=gnu++11" } | |
3694 | +// | |
3695 | +// Copyright (C) 2012 Free Software Foundation, Inc. | |
3696 | +// | |
3697 | +// This file is part of the GNU ISO C++ Library. This library is free | |
3698 | +// software; you can redistribute it and/or modify it under the | |
3699 | +// terms of the GNU General Public License as published by the | |
3700 | +// Free Software Foundation; either version 3, or (at your option) | |
3701 | +// any later version. | |
3702 | +// | |
3703 | +// This library is distributed in the hope that it will be useful, | |
3704 | +// but WITHOUT ANY WARRANTY; without even the implied warranty of | |
3705 | +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
3706 | +// GNU General Public License for more details. | |
3707 | +// | |
3708 | +// You should have received a copy of the GNU General Public License along | |
3709 | +// with this library; see the file COPYING3. If not see | |
3710 | +// <http://www.gnu.org/licenses/>. | |
3711 | + | |
3712 | +#include <unordered_map> | |
3713 | +#include <testsuite_hooks.h> | |
3714 | + | |
3715 | +namespace | |
3716 | +{ | |
3717 | + std::size_t | |
3718 | + get_nb_bucket_elems(const std::unordered_multimap<int, int>& us) | |
3719 | + { | |
3720 | + std::size_t nb = 0; | |
3721 | + for (std::size_t b = 0; b != us.bucket_count(); ++b) | |
3722 | + nb += us.bucket_size(b); | |
3723 | + return nb; | |
3724 | + } | |
3725 | +} | |
3726 | + | |
3727 | +void test01() | |
3728 | +{ | |
3729 | + using namespace std; | |
3730 | + bool test __attribute__((unused)) = true; | |
3731 | + | |
3732 | + std::unordered_multimap<int, int> umm; | |
3733 | + umm.insert(make_pair(10, 1)); | |
3734 | + VERIFY( umm.size() == 1 ); | |
3735 | + VERIFY( std::distance(umm.begin(), umm.end()) == umm.size() ); | |
3736 | + VERIFY( get_nb_bucket_elems(umm) == umm.size() ); | |
3737 | + | |
3738 | + umm.insert(make_pair(10, 2)); | |
3739 | + VERIFY( umm.size() == 2 ); | |
3740 | + VERIFY( std::distance(umm.begin(), umm.end()) == umm.size() ); | |
3741 | + VERIFY( get_nb_bucket_elems(umm) == umm.size() ); | |
3742 | + | |
3743 | + umm.insert(make_pair(10, 3)); | |
3744 | + VERIFY( umm.size() == 3 ); | |
3745 | + VERIFY( std::distance(umm.begin(), umm.end()) == umm.size() ); | |
3746 | + VERIFY( get_nb_bucket_elems(umm) == umm.size() ); | |
3747 | + | |
3748 | + umm.insert(make_pair(10, 4)); | |
3749 | + VERIFY( umm.size() == 4 ); | |
3750 | + VERIFY( std::distance(umm.begin(), umm.end()) == umm.size() ); | |
3751 | + VERIFY( get_nb_bucket_elems(umm) == umm.size() ); | |
3752 | + | |
3753 | + umm.insert(make_pair(10, 5)); | |
3754 | + VERIFY( umm.size() == 5 ); | |
3755 | + VERIFY( std::distance(umm.begin(), umm.end()) == umm.size() ); | |
3756 | + VERIFY( get_nb_bucket_elems(umm) == umm.size() ); | |
3757 | + | |
3758 | + umm.insert(make_pair(24, 6)); | |
3759 | + VERIFY( umm.size() == 6 ); | |
3760 | + VERIFY( std::distance(umm.begin(), umm.end()) == umm.size() ); | |
3761 | + VERIFY( get_nb_bucket_elems(umm) == umm.size() ); | |
3762 | + | |
3763 | + umm.insert(make_pair(25, 7)); | |
3764 | + VERIFY( umm.size() == 7 ); | |
3765 | + VERIFY( std::distance(umm.begin(), umm.end()) == umm.size() ); | |
3766 | + VERIFY( get_nb_bucket_elems(umm) == umm.size() ); | |
3767 | + | |
3768 | + umm.insert(make_pair(2, 8)); | |
3769 | + VERIFY( umm.size() == 8 ); | |
3770 | + VERIFY( std::distance(umm.begin(), umm.end()) == umm.size() ); | |
3771 | + VERIFY( get_nb_bucket_elems(umm) == umm.size() ); | |
3772 | + | |
3773 | + umm.insert(make_pair(2, 9)); | |
3774 | + VERIFY( umm.size() == 9 ); | |
3775 | + VERIFY( std::distance(umm.begin(), umm.end()) == umm.size() ); | |
3776 | + VERIFY( get_nb_bucket_elems(umm) == umm.size() ); | |
3777 | + | |
3778 | + umm.insert(make_pair(1, 10)); | |
3779 | + VERIFY( umm.size() == 10 ); | |
3780 | + VERIFY( std::distance(umm.begin(), umm.end()) == umm.size() ); | |
3781 | + VERIFY( get_nb_bucket_elems(umm) == umm.size() ); | |
3782 | + | |
3783 | + umm.insert(make_pair(10, 11)); | |
3784 | + VERIFY( umm.size() == 11 ); | |
3785 | + VERIFY( std::distance(umm.begin(), umm.end()) == umm.size() ); | |
3786 | + VERIFY( get_nb_bucket_elems(umm) == umm.size() ); | |
3787 | +} | |
3788 | + | |
3789 | +int main() | |
3790 | +{ | |
3791 | + test01(); | |
3792 | + return 0; | |
3793 | +} | |
3794 | Index: libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/52476.cc | |
3795 | =================================================================== | |
3796 | --- libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/52476.cc (.../tags/gcc_4_7_0_release) (wersja 0) | |
3797 | +++ libstdc++-v3/testsuite/23_containers/unordered_multimap/insert/52476.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
3798 | @@ -0,0 +1,59 @@ | |
3799 | +// { dg-options "-std=gnu++0x" } | |
3800 | +// | |
3801 | +// Copyright (C) 2012 Free Software Foundation, Inc. | |
3802 | +// | |
3803 | +// This file is part of the GNU ISO C++ Library. This library is free | |
3804 | +// software; you can redistribute it and/or modify it under the | |
3805 | +// terms of the GNU General Public License as published by the | |
3806 | +// Free Software Foundation; either version 3, or (at your option) | |
3807 | +// any later version. | |
3808 | +// | |
3809 | +// This library is distributed in the hope that it will be useful, | |
3810 | +// but WITHOUT ANY WARRANTY; without even the implied warranty of | |
3811 | +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
3812 | +// GNU General Public License for more details. | |
3813 | +// | |
3814 | +// You should have received a copy of the GNU General Public License along | |
3815 | +// with this library; see the file COPYING3. If not see | |
3816 | +// <http://www.gnu.org/licenses/>. | |
3817 | + | |
3818 | +#include <unordered_map> | |
3819 | +#include <vector> | |
3820 | +#include <algorithm> | |
3821 | +#include <testsuite_hooks.h> | |
3822 | + | |
3823 | +void test01() | |
3824 | +{ | |
3825 | + using namespace std; | |
3826 | + bool test __attribute__((unused)) = true; | |
3827 | + | |
3828 | + unordered_multimap<int, int> mmap; | |
3829 | + vector<int> values; | |
3830 | + | |
3831 | + size_t nb_bkts = mmap.bucket_count(); | |
3832 | + int i = 0; | |
3833 | + for (;; ++i) | |
3834 | + { | |
3835 | + mmap.insert(make_pair(0, i)); | |
3836 | + if (mmap.bucket_count() != nb_bkts) | |
3837 | + // Container got rehash | |
3838 | + break; | |
3839 | + values.clear(); | |
3840 | + transform(mmap.begin(), mmap.end(), back_inserter(values), | |
3841 | + [](const pair<int, int>& p) { return p.second; }); | |
3842 | + } | |
3843 | + | |
3844 | + vector<int> rehash_values; | |
3845 | + transform(mmap.begin(), mmap.end(), back_inserter(rehash_values), | |
3846 | + [](const pair<int, int>& p) { return p.second; }); | |
3847 | + // Remove the value that result in a rehash | |
3848 | + rehash_values.erase(remove(rehash_values.begin(), rehash_values.end(), i)); | |
3849 | + | |
3850 | + VERIFY( rehash_values == values ); | |
3851 | +} | |
3852 | + | |
3853 | +int main() | |
3854 | +{ | |
3855 | + test01(); | |
3856 | + return 0; | |
3857 | +} | |
3858 | Index: libstdc++-v3/testsuite/23_containers/vector/modifiers/emplace/52799.cc | |
3859 | =================================================================== | |
3860 | --- libstdc++-v3/testsuite/23_containers/vector/modifiers/emplace/52799.cc (.../tags/gcc_4_7_0_release) (wersja 0) | |
3861 | +++ libstdc++-v3/testsuite/23_containers/vector/modifiers/emplace/52799.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
3862 | @@ -0,0 +1,28 @@ | |
3863 | +// { dg-options "-std=gnu++11" } | |
3864 | +// { dg-do compile } | |
3865 | + | |
3866 | +// Copyright (C) 2012 Free Software Foundation, Inc. | |
3867 | +// | |
3868 | +// This file is part of the GNU ISO C++ Library. This library is free | |
3869 | +// software; you can redistribute it and/or modify it under the | |
3870 | +// terms of the GNU General Public License as published by the | |
3871 | +// Free Software Foundation; either version 3, or (at your option) | |
3872 | +// any later version. | |
3873 | + | |
3874 | +// This library is distributed in the hope that it will be useful, | |
3875 | +// but WITHOUT ANY WARRANTY; without even the implied warranty of | |
3876 | +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
3877 | +// GNU General Public License for more details. | |
3878 | + | |
3879 | +// You should have received a copy of the GNU General Public License along | |
3880 | +// with this library; see the file COPYING3. If not see | |
3881 | +// <http://www.gnu.org/licenses/>. | |
3882 | + | |
3883 | +#include <vector> | |
3884 | + | |
3885 | +// libstdc++/52799 | |
3886 | +int main() | |
3887 | +{ | |
3888 | + std::vector<int> v; | |
3889 | + v.emplace(v.begin()); | |
3890 | +} | |
3891 | Index: libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/assign_neg.cc | |
3892 | =================================================================== | |
3893 | --- libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/assign_neg.cc (.../tags/gcc_4_7_0_release) (wersja 187293) | |
3894 | +++ libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/assign_neg.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
3895 | @@ -18,7 +18,7 @@ | |
3896 | // <http://www.gnu.org/licenses/>. | |
3897 | ||
3898 | // { dg-do compile } | |
3899 | -// { dg-error "no matching" "" { target *-*-* } 1225 } | |
3900 | +// { dg-error "no matching" "" { target *-*-* } 1207 } | |
3901 | ||
3902 | #include <vector> | |
3903 | ||
3904 | Index: libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/insert_neg.cc | |
3905 | =================================================================== | |
3906 | --- libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/insert_neg.cc (.../tags/gcc_4_7_0_release) (wersja 187293) | |
3907 | +++ libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/insert_neg.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
3908 | @@ -18,7 +18,7 @@ | |
3909 | // <http://www.gnu.org/licenses/>. | |
3910 | ||
3911 | // { dg-do compile } | |
3912 | -// { dg-error "no matching" "" { target *-*-* } 1266 } | |
3913 | +// { dg-error "no matching" "" { target *-*-* } 1248 } | |
3914 | ||
3915 | #include <vector> | |
3916 | ||
3917 | Index: libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_1_neg.cc | |
3918 | =================================================================== | |
3919 | --- libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_1_neg.cc (.../tags/gcc_4_7_0_release) (wersja 187293) | |
3920 | +++ libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_1_neg.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
3921 | @@ -18,7 +18,7 @@ | |
3922 | // <http://www.gnu.org/licenses/>. | |
3923 | ||
3924 | // { dg-do compile } | |
3925 | -// { dg-error "no matching" "" { target *-*-* } 1155 } | |
3926 | +// { dg-error "no matching" "" { target *-*-* } 1137 } | |
3927 | ||
3928 | #include <vector> | |
3929 | ||
3930 | Index: libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_2_neg.cc | |
3931 | =================================================================== | |
3932 | --- libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_2_neg.cc (.../tags/gcc_4_7_0_release) (wersja 187293) | |
3933 | +++ libstdc++-v3/testsuite/23_containers/vector/requirements/dr438/constructor_2_neg.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
3934 | @@ -18,7 +18,7 @@ | |
3935 | // <http://www.gnu.org/licenses/>. | |
3936 | ||
3937 | // { dg-do compile } | |
3938 | -// { dg-error "no matching" "" { target *-*-* } 1155 } | |
3939 | +// { dg-error "no matching" "" { target *-*-* } 1137 } | |
3940 | ||
3941 | #include <vector> | |
3942 | #include <utility> | |
3943 | Index: libstdc++-v3/testsuite/23_containers/vector/debug/52433.cc | |
3944 | =================================================================== | |
3945 | --- libstdc++-v3/testsuite/23_containers/vector/debug/52433.cc (.../tags/gcc_4_7_0_release) (wersja 0) | |
3946 | +++ libstdc++-v3/testsuite/23_containers/vector/debug/52433.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
3947 | @@ -0,0 +1,43 @@ | |
3948 | +// Copyright (C) 2012 Free Software Foundation, Inc. | |
3949 | +// | |
3950 | +// This file is part of the GNU ISO C++ Library. This library is free | |
3951 | +// software; you can redistribute it and/or modify it under the | |
3952 | +// terms of the GNU General Public License as published by the | |
3953 | +// Free Software Foundation; either version 3, or (at your option) | |
3954 | +// any later version. | |
3955 | +// | |
3956 | +// This library is distributed in the hope that it will be useful, | |
3957 | +// but WITHOUT ANY WARRANTY; without even the implied warranty of | |
3958 | +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
3959 | +// GNU General Public License for more details. | |
3960 | +// | |
3961 | +// You should have received a copy of the GNU General Public License along | |
3962 | +// with this library; see the file COPYING3. If not see | |
3963 | +// <http://www.gnu.org/licenses/>. | |
3964 | +// | |
3965 | +// { dg-require-debug-mode "" } | |
3966 | +// { dg-options "-std=gnu++0x" } | |
3967 | +// { dg-do compile } | |
3968 | + | |
3969 | +// PR libstdc++/52433 | |
3970 | + | |
3971 | +#include <vector> | |
3972 | + | |
3973 | +struct X | |
3974 | +{ | |
3975 | + std::vector<int>::iterator i; | |
3976 | + | |
3977 | + X() = default; | |
3978 | + X(const X&) = default; | |
3979 | + X(X&&) = default; | |
3980 | + X& operator=(const X&) = default; | |
3981 | + X& operator=(X&&) = default; | |
3982 | +}; | |
3983 | + | |
3984 | +X test01() | |
3985 | +{ | |
3986 | + X x; | |
3987 | + x = X(); | |
3988 | + return x; | |
3989 | +} | |
3990 | + | |
3991 | Index: libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/insert/31370.cc | |
3992 | =================================================================== | |
3993 | --- libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/insert/31370.cc (.../tags/gcc_4_7_0_release) (wersja 187293) | |
3994 | +++ libstdc++-v3/testsuite/23_containers/vector/bool/modifiers/insert/31370.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
3995 | @@ -1,4 +1,4 @@ | |
3996 | -// Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc. | |
3997 | +// Copyright (C) 2007, 2009, 2010, 2012 Free Software Foundation, Inc. | |
3998 | // | |
3999 | // This file is part of the GNU ISO C++ Library. This library is free | |
4000 | // software; you can redistribute it and/or modify it under the | |
4001 | @@ -17,6 +17,7 @@ | |
4002 | ||
4003 | // 23.2.5 class vector<bool> [lib.vector.bool] | |
4004 | ||
4005 | +// { dg-skip-if "" { powerpc64-*-freebsd* } { "*" } { "" } } | |
4006 | // { dg-do run { xfail *-*-darwin8.[0-4].* } } | |
4007 | ||
4008 | #include <vector> | |
4009 | Index: libstdc++-v3/testsuite/23_containers/vector/52591.cc | |
4010 | =================================================================== | |
4011 | --- libstdc++-v3/testsuite/23_containers/vector/52591.cc (.../tags/gcc_4_7_0_release) (wersja 0) | |
4012 | +++ libstdc++-v3/testsuite/23_containers/vector/52591.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
4013 | @@ -0,0 +1,38 @@ | |
4014 | +// Copyright (C) 2012 Free Software Foundation, Inc. | |
4015 | +// | |
4016 | +// This file is part of the GNU ISO C++ Library. This library is free | |
4017 | +// software; you can redistribute it and/or modify it under the | |
4018 | +// terms of the GNU General Public License as published by the | |
4019 | +// Free Software Foundation; either version 3, or (at your option) | |
4020 | +// any later version. | |
4021 | + | |
4022 | +// This library is distributed in the hope that it will be useful, | |
4023 | +// but WITHOUT ANY WARRANTY; without even the implied warranty of | |
4024 | +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
4025 | +// GNU General Public License for more details. | |
4026 | + | |
4027 | +// You should have received a copy of the GNU General Public License along | |
4028 | +// with this library; see the file COPYING3. If not see | |
4029 | +// <http://www.gnu.org/licenses/>. | |
4030 | + | |
4031 | +// { dg-do compile } | |
4032 | +// { dg-options "-std=gnu++0x" } | |
4033 | + | |
4034 | +// libstdc++/52591 | |
4035 | + | |
4036 | +#include <vector> | |
4037 | + | |
4038 | +// As an extension we allow move-assignment of std::vector when the element | |
4039 | +// type is not MoveAssignable, as long as the allocator type propagates or | |
4040 | +// is known to always compare equal. | |
4041 | + | |
4042 | +struct C | |
4043 | +{ | |
4044 | + C& operator=(C&&) = delete; | |
4045 | +}; | |
4046 | + | |
4047 | +void test01() | |
4048 | +{ | |
4049 | + std::vector<C> a; | |
4050 | + a = std::vector<C>(); | |
4051 | +} | |
4052 | Index: libstdc++-v3/testsuite/23_containers/unordered_set/instantiation_neg.cc | |
4053 | =================================================================== | |
4054 | --- libstdc++-v3/testsuite/23_containers/unordered_set/instantiation_neg.cc (.../tags/gcc_4_7_0_release) (wersja 187293) | |
4055 | +++ libstdc++-v3/testsuite/23_containers/unordered_set/instantiation_neg.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
4056 | @@ -2,7 +2,7 @@ | |
4057 | // { dg-options "-std=gnu++0x" } | |
4058 | // { dg-require-normal-mode "" } | |
4059 | ||
4060 | -// Copyright (C) 2011 Free Software Foundation, Inc. | |
4061 | +// Copyright (C) 2011, 2012 Free Software Foundation, Inc. | |
4062 | // | |
4063 | // This file is part of the GNU ISO C++ Library. This library is free | |
4064 | // software; you can redistribute it and/or modify it under the | |
4065 | @@ -19,7 +19,7 @@ | |
4066 | // with this library; see the file COPYING3. If not see | |
4067 | // <http://www.gnu.org/licenses/>. | |
4068 | ||
4069 | -// { dg-error "static assertion failed" "" { target *-*-* } 185 } | |
4070 | +// { dg-error "static assertion failed" "" { target *-*-* } 186 } | |
4071 | ||
4072 | #include <unordered_set> | |
4073 | ||
4074 | Index: libstdc++-v3/testsuite/23_containers/unordered_set/requirements/53067.cc | |
4075 | =================================================================== | |
4076 | --- libstdc++-v3/testsuite/23_containers/unordered_set/requirements/53067.cc (.../tags/gcc_4_7_0_release) (wersja 0) | |
4077 | +++ libstdc++-v3/testsuite/23_containers/unordered_set/requirements/53067.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
4078 | @@ -0,0 +1,28 @@ | |
4079 | +// { dg-do compile } | |
4080 | +// { dg-options "-std=gnu++11" } | |
4081 | + | |
4082 | +// Copyright (C) 2012 Free Software Foundation, Inc. | |
4083 | +// | |
4084 | +// This file is part of the GNU ISO C++ Library. This library is free | |
4085 | +// software; you can redistribute it and/or modify it under the | |
4086 | +// terms of the GNU General Public License as published by the | |
4087 | +// Free Software Foundation; either version 3, or (at your option) | |
4088 | +// any later version. | |
4089 | + | |
4090 | +// This library is distributed in the hope that it will be useful, | |
4091 | +// but WITHOUT ANY WARRANTY; without Pred the implied warranty of | |
4092 | +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
4093 | +// GNU General Public License for more details. | |
4094 | + | |
4095 | +// You should have received a copy of the GNU General Public License along | |
4096 | +// with this library; see the file COPYING3. If not see | |
4097 | +// <http://www.gnu.org/licenses/>. | |
4098 | + | |
4099 | +#include <unordered_set> | |
4100 | +#include <functional> | |
4101 | + | |
4102 | +void f() | |
4103 | +{ | |
4104 | + std::unordered_set<int> Foo; | |
4105 | + ref(Foo); | |
4106 | +} | |
4107 | Index: libstdc++-v3/testsuite/23_containers/unordered_set/requirements/52942.cc | |
4108 | =================================================================== | |
4109 | --- libstdc++-v3/testsuite/23_containers/unordered_set/requirements/52942.cc (.../tags/gcc_4_7_0_release) (wersja 0) | |
4110 | +++ libstdc++-v3/testsuite/23_containers/unordered_set/requirements/52942.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
4111 | @@ -0,0 +1,37 @@ | |
4112 | +// { dg-do compile } | |
4113 | +// { dg-options "-std=gnu++11" } | |
4114 | + | |
4115 | +// Copyright (C) 2012 Free Software Foundation, Inc. | |
4116 | +// | |
4117 | +// This file is part of the GNU ISO C++ Library. This library is free | |
4118 | +// software; you can redistribute it and/or modify it under the | |
4119 | +// terms of the GNU General Public License as published by the | |
4120 | +// Free Software Foundation; either version 3, or (at your option) | |
4121 | +// any later version. | |
4122 | + | |
4123 | +// This library is distributed in the hope that it will be useful, | |
4124 | +// but WITHOUT ANY WARRANTY; without Pred the implied warranty of | |
4125 | +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
4126 | +// GNU General Public License for more details. | |
4127 | + | |
4128 | +// You should have received a copy of the GNU General Public License along | |
4129 | +// with this library; see the file COPYING3. If not see | |
4130 | +// <http://www.gnu.org/licenses/>. | |
4131 | + | |
4132 | +#include <unordered_set> | |
4133 | +#include <functional> | |
4134 | + | |
4135 | +struct TFoo {}; | |
4136 | + | |
4137 | +struct TFoo_hash | |
4138 | +{ | |
4139 | + std::size_t operator()(const TFoo &) const { return 0; } | |
4140 | +}; | |
4141 | + | |
4142 | +void f1(std::unordered_set<TFoo, TFoo_hash> &) {} | |
4143 | + | |
4144 | +void f2() | |
4145 | +{ | |
4146 | + std::unordered_set<TFoo, TFoo_hash> set1; | |
4147 | + std::bind(f1, std::ref(set1)); | |
4148 | +} | |
4149 | Index: libstdc++-v3/testsuite/23_containers/deque/modifiers/emplace/52799.cc | |
4150 | =================================================================== | |
4151 | --- libstdc++-v3/testsuite/23_containers/deque/modifiers/emplace/52799.cc (.../tags/gcc_4_7_0_release) (wersja 0) | |
4152 | +++ libstdc++-v3/testsuite/23_containers/deque/modifiers/emplace/52799.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
4153 | @@ -0,0 +1,28 @@ | |
4154 | +// { dg-options "-std=gnu++11" } | |
4155 | +// { dg-do compile } | |
4156 | + | |
4157 | +// Copyright (C) 2012 Free Software Foundation, Inc. | |
4158 | +// | |
4159 | +// This file is part of the GNU ISO C++ Library. This library is free | |
4160 | +// software; you can redistribute it and/or modify it under the | |
4161 | +// terms of the GNU General Public License as published by the | |
4162 | +// Free Software Foundation; either version 3, or (at your option) | |
4163 | +// any later version. | |
4164 | + | |
4165 | +// This library is distributed in the hope that it will be useful, | |
4166 | +// but WITHOUT ANY WARRANTY; without even the implied warranty of | |
4167 | +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
4168 | +// GNU General Public License for more details. | |
4169 | + | |
4170 | +// You should have received a copy of the GNU General Public License along | |
4171 | +// with this library; see the file COPYING3. If not see | |
4172 | +// <http://www.gnu.org/licenses/>. | |
4173 | + | |
4174 | +#include <deque> | |
4175 | + | |
4176 | +// libstdc++/52799 | |
4177 | +int main() | |
4178 | +{ | |
4179 | + std::deque<int> d; | |
4180 | + d.emplace(d.begin()); | |
4181 | +} | |
4182 | Index: libstdc++-v3/testsuite/23_containers/list/modifiers/emplace/52799.cc | |
4183 | =================================================================== | |
4184 | --- libstdc++-v3/testsuite/23_containers/list/modifiers/emplace/52799.cc (.../tags/gcc_4_7_0_release) (wersja 0) | |
4185 | +++ libstdc++-v3/testsuite/23_containers/list/modifiers/emplace/52799.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
4186 | @@ -0,0 +1,28 @@ | |
4187 | +// { dg-options "-std=gnu++11" } | |
4188 | +// { dg-do compile } | |
4189 | + | |
4190 | +// Copyright (C) 2012 Free Software Foundation, Inc. | |
4191 | +// | |
4192 | +// This file is part of the GNU ISO C++ Library. This library is free | |
4193 | +// software; you can redistribute it and/or modify it under the | |
4194 | +// terms of the GNU General Public License as published by the | |
4195 | +// Free Software Foundation; either version 3, or (at your option) | |
4196 | +// any later version. | |
4197 | + | |
4198 | +// This library is distributed in the hope that it will be useful, | |
4199 | +// but WITHOUT ANY WARRANTY; without even the implied warranty of | |
4200 | +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
4201 | +// GNU General Public License for more details. | |
4202 | + | |
4203 | +// You should have received a copy of the GNU General Public License along | |
4204 | +// with this library; see the file COPYING3. If not see | |
4205 | +// <http://www.gnu.org/licenses/>. | |
4206 | + | |
4207 | +#include <list> | |
4208 | + | |
4209 | +// libstdc++/52799 | |
4210 | +int main() | |
4211 | +{ | |
4212 | + std::list<int> l; | |
4213 | + l.emplace(l.begin()); | |
4214 | +} | |
4215 | Index: libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/53115.cc | |
4216 | =================================================================== | |
4217 | --- libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/53115.cc (.../tags/gcc_4_7_0_release) (wersja 0) | |
4218 | +++ libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/53115.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
4219 | @@ -0,0 +1,101 @@ | |
4220 | +// { dg-options "-std=gnu++11" } | |
4221 | +// | |
4222 | +// Copyright (C) 2012 Free Software Foundation, Inc. | |
4223 | +// | |
4224 | +// This file is part of the GNU ISO C++ Library. This library is free | |
4225 | +// software; you can redistribute it and/or modify it under the | |
4226 | +// terms of the GNU General Public License as published by the | |
4227 | +// Free Software Foundation; either version 3, or (at your option) | |
4228 | +// any later version. | |
4229 | +// | |
4230 | +// This library is distributed in the hope that it will be useful, | |
4231 | +// but WITHOUT ANY WARRANTY; without even the implied warranty of | |
4232 | +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
4233 | +// GNU General Public License for more details. | |
4234 | +// | |
4235 | +// You should have received a copy of the GNU General Public License along | |
4236 | +// with this library; see the file COPYING3. If not see | |
4237 | +// <http://www.gnu.org/licenses/>. | |
4238 | + | |
4239 | +#include <unordered_set> | |
4240 | +#include <testsuite_hooks.h> | |
4241 | + | |
4242 | +namespace | |
4243 | +{ | |
4244 | + std::size_t | |
4245 | + get_nb_bucket_elems(const std::unordered_multiset<int>& us) | |
4246 | + { | |
4247 | + std::size_t nb = 0; | |
4248 | + for (std::size_t b = 0; b != us.bucket_count(); ++b) | |
4249 | + nb += us.bucket_size(b); | |
4250 | + return nb; | |
4251 | + } | |
4252 | +} | |
4253 | + | |
4254 | +void test01() | |
4255 | +{ | |
4256 | + using namespace std; | |
4257 | + bool test __attribute__((unused)) = true; | |
4258 | + | |
4259 | + std::unordered_multiset<int> mms; | |
4260 | + mms.insert(10); | |
4261 | + VERIFY( mms.size() == 1 ); | |
4262 | + VERIFY( std::distance(mms.begin(), mms.end()) == mms.size() ); | |
4263 | + VERIFY( get_nb_bucket_elems(mms) == mms.size() ); | |
4264 | + | |
4265 | + mms.insert(10); | |
4266 | + VERIFY( mms.size() == 2 ); | |
4267 | + VERIFY( std::distance(mms.begin(), mms.end()) == mms.size() ); | |
4268 | + VERIFY( get_nb_bucket_elems(mms) == mms.size() ); | |
4269 | + | |
4270 | + mms.insert(10); | |
4271 | + VERIFY( mms.size() == 3 ); | |
4272 | + VERIFY( std::distance(mms.begin(), mms.end()) == mms.size() ); | |
4273 | + VERIFY( get_nb_bucket_elems(mms) == mms.size() ); | |
4274 | + | |
4275 | + mms.insert(10); | |
4276 | + VERIFY( mms.size() == 4 ); | |
4277 | + VERIFY( std::distance(mms.begin(), mms.end()) == mms.size() ); | |
4278 | + VERIFY( get_nb_bucket_elems(mms) == mms.size() ); | |
4279 | + | |
4280 | + mms.insert(10); | |
4281 | + VERIFY( mms.size() == 5 ); | |
4282 | + VERIFY( std::distance(mms.begin(), mms.end()) == mms.size() ); | |
4283 | + VERIFY( get_nb_bucket_elems(mms) == mms.size() ); | |
4284 | + | |
4285 | + mms.insert(24); | |
4286 | + VERIFY( mms.size() == 6 ); | |
4287 | + VERIFY( std::distance(mms.begin(), mms.end()) == mms.size() ); | |
4288 | + VERIFY( get_nb_bucket_elems(mms) == mms.size() ); | |
4289 | + | |
4290 | + mms.insert(25); | |
4291 | + VERIFY( mms.size() == 7 ); | |
4292 | + VERIFY( std::distance(mms.begin(), mms.end()) == mms.size() ); | |
4293 | + VERIFY( get_nb_bucket_elems(mms) == mms.size() ); | |
4294 | + | |
4295 | + mms.insert(2); | |
4296 | + VERIFY( mms.size() == 8 ); | |
4297 | + VERIFY( std::distance(mms.begin(), mms.end()) == mms.size() ); | |
4298 | + VERIFY( get_nb_bucket_elems(mms) == mms.size() ); | |
4299 | + | |
4300 | + mms.insert(2); | |
4301 | + VERIFY( mms.size() == 9 ); | |
4302 | + VERIFY( std::distance(mms.begin(), mms.end()) == mms.size() ); | |
4303 | + VERIFY( get_nb_bucket_elems(mms) == mms.size() ); | |
4304 | + | |
4305 | + mms.insert(1); | |
4306 | + VERIFY( mms.size() == 10 ); | |
4307 | + VERIFY( std::distance(mms.begin(), mms.end()) == mms.size() ); | |
4308 | + VERIFY( get_nb_bucket_elems(mms) == mms.size() ); | |
4309 | + | |
4310 | + mms.insert(10); | |
4311 | + VERIFY( mms.size() == 11 ); | |
4312 | + VERIFY( std::distance(mms.begin(), mms.end()) == mms.size() ); | |
4313 | + VERIFY( get_nb_bucket_elems(mms) == mms.size() ); | |
4314 | +} | |
4315 | + | |
4316 | +int main() | |
4317 | +{ | |
4318 | + test01(); | |
4319 | + return 0; | |
4320 | +} | |
4321 | Index: libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/52476.cc | |
4322 | =================================================================== | |
4323 | --- libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/52476.cc (.../tags/gcc_4_7_0_release) (wersja 0) | |
4324 | +++ libstdc++-v3/testsuite/23_containers/unordered_multiset/insert/52476.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
4325 | @@ -0,0 +1,77 @@ | |
4326 | +// { dg-options "-std=gnu++0x" } | |
4327 | +// | |
4328 | +// Copyright (C) 2012 Free Software Foundation, Inc. | |
4329 | +// | |
4330 | +// This file is part of the GNU ISO C++ Library. This library is free | |
4331 | +// software; you can redistribute it and/or modify it under the | |
4332 | +// terms of the GNU General Public License as published by the | |
4333 | +// Free Software Foundation; either version 3, or (at your option) | |
4334 | +// any later version. | |
4335 | +// | |
4336 | +// This library is distributed in the hope that it will be useful, | |
4337 | +// but WITHOUT ANY WARRANTY; without even the implied warranty of | |
4338 | +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
4339 | +// GNU General Public License for more details. | |
4340 | +// | |
4341 | +// You should have received a copy of the GNU General Public License along | |
4342 | +// with this library; see the file COPYING3. If not see | |
4343 | +// <http://www.gnu.org/licenses/>. | |
4344 | + | |
4345 | +#include <unordered_set> | |
4346 | +#include <vector> | |
4347 | +#include <algorithm> | |
4348 | +#include <testsuite_hooks.h> | |
4349 | + | |
4350 | +namespace | |
4351 | +{ | |
4352 | + struct pair_hash | |
4353 | + { | |
4354 | + std::size_t | |
4355 | + operator()(const std::pair<int, int>& p) const noexcept | |
4356 | + { return std::hash<int>()(p.first); } | |
4357 | + }; | |
4358 | + | |
4359 | + struct pair_equal_to | |
4360 | + { | |
4361 | + bool | |
4362 | + operator()(const std::pair<int, int>& x, | |
4363 | + const std::pair<int, int>& y) const noexcept | |
4364 | + { return x.first == y.first; } | |
4365 | + }; | |
4366 | +} | |
4367 | + | |
4368 | +void test01() | |
4369 | +{ | |
4370 | + using namespace std; | |
4371 | + bool test __attribute__((unused)) = true; | |
4372 | + | |
4373 | + unordered_multiset<pair<int, int>, pair_hash, pair_equal_to> mset; | |
4374 | + vector<int> values; | |
4375 | + | |
4376 | + size_t nb_bkts = mset.bucket_count(); | |
4377 | + int i = 0; | |
4378 | + for (;; ++i) | |
4379 | + { | |
4380 | + mset.insert(make_pair(0, i)); | |
4381 | + if (mset.bucket_count() != nb_bkts) | |
4382 | + // Container got rehash | |
4383 | + break; | |
4384 | + values.clear(); | |
4385 | + transform(mset.begin(), mset.end(), back_inserter(values), | |
4386 | + [](const pair<int, int>& p) { return p.second; }); | |
4387 | + } | |
4388 | + | |
4389 | + vector<int> rehash_values; | |
4390 | + transform(mset.begin(), mset.end(), back_inserter(rehash_values), | |
4391 | + [](const pair<int, int>& p) { return p.second; }); | |
4392 | + // Remove the value that result in a rehash | |
4393 | + rehash_values.erase(remove(rehash_values.begin(), rehash_values.end(), i)); | |
4394 | + | |
4395 | + VERIFY( rehash_values == values ); | |
4396 | +} | |
4397 | + | |
4398 | +int main() | |
4399 | +{ | |
4400 | + test01(); | |
4401 | + return 0; | |
4402 | +} | |
4403 | Index: libstdc++-v3/testsuite/20_util/shared_ptr/cons/43820_neg.cc | |
4404 | =================================================================== | |
4405 | --- libstdc++-v3/testsuite/20_util/shared_ptr/cons/43820_neg.cc (.../tags/gcc_4_7_0_release) (wersja 187293) | |
4406 | +++ libstdc++-v3/testsuite/20_util/shared_ptr/cons/43820_neg.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
4407 | @@ -32,9 +32,9 @@ | |
4408 | { | |
4409 | X* px = 0; | |
4410 | std::shared_ptr<X> p1(px); // { dg-error "here" } | |
4411 | - // { dg-error "incomplete" "" { target *-*-* } 771 } | |
4412 | + // { dg-error "incomplete" "" { target *-*-* } 775 } | |
4413 | ||
4414 | std::shared_ptr<X> p9(ap()); // { dg-error "here" } | |
4415 | - // { dg-error "incomplete" "" { target *-*-* } 865 } | |
4416 | + // { dg-error "incomplete" "" { target *-*-* } 869 } | |
4417 | ||
4418 | } | |
4419 | Index: libstdc++-v3/testsuite/20_util/shared_ptr/cons/52924.cc | |
4420 | =================================================================== | |
4421 | --- libstdc++-v3/testsuite/20_util/shared_ptr/cons/52924.cc (.../tags/gcc_4_7_0_release) (wersja 0) | |
4422 | +++ libstdc++-v3/testsuite/20_util/shared_ptr/cons/52924.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
4423 | @@ -0,0 +1,44 @@ | |
4424 | +// { dg-options "-std=gnu++0x" } | |
4425 | +// { dg-do compile } | |
4426 | + | |
4427 | +// Copyright (C) 2012 Free Software Foundation | |
4428 | +// | |
4429 | +// This file is part of the GNU ISO C++ Library. This library is free | |
4430 | +// software; you can redistribute it and/or modify it under the | |
4431 | +// terms of the GNU General Public License as published by the | |
4432 | +// Free Software Foundation; either version 3, or (at your option) | |
4433 | +// any later version. | |
4434 | + | |
4435 | +// This library is distributed in the hope that it will be useful, | |
4436 | +// but WITHOUT ANY WARRANTY; without even the implied warranty of | |
4437 | +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
4438 | +// GNU General Public License for more details. | |
4439 | + | |
4440 | +// You should have received a copy of the GNU General Public License along | |
4441 | +// with this library; see the file COPYING3. If not see | |
4442 | +// <http://www.gnu.org/licenses/>. | |
4443 | + | |
4444 | +#include <memory> | |
4445 | + | |
4446 | +// libstdc++/52924 | |
4447 | + | |
4448 | +struct A { } a; | |
4449 | + | |
4450 | +struct D { | |
4451 | + ~D() noexcept(false) { } | |
4452 | + void operator()(A*) { } | |
4453 | +} d; | |
4454 | + | |
4455 | +auto sp = std::shared_ptr<A>(&a, d); | |
4456 | + | |
4457 | +template<typename T> | |
4458 | +struct Alloc : std::allocator<T> | |
4459 | +{ | |
4460 | + Alloc() = default; | |
4461 | + ~Alloc() noexcept(false) { } | |
4462 | + template<typename U> Alloc(const Alloc<U>&) { } | |
4463 | +}; | |
4464 | + | |
4465 | +Alloc<A> al; | |
4466 | + | |
4467 | +auto as = std::allocate_shared<A>(al); | |
4468 | Index: libstdc++-v3/testsuite/20_util/scoped_allocator/1.cc | |
4469 | =================================================================== | |
4470 | --- libstdc++-v3/testsuite/20_util/scoped_allocator/1.cc (.../tags/gcc_4_7_0_release) (wersja 187293) | |
4471 | +++ libstdc++-v3/testsuite/20_util/scoped_allocator/1.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
4472 | @@ -1,6 +1,6 @@ | |
4473 | // { dg-options "-std=gnu++0x" } | |
4474 | ||
4475 | -// Copyright (C) 2011 Free Software Foundation, Inc. | |
4476 | +// Copyright (C) 2011, 2012 Free Software Foundation, Inc. | |
4477 | // | |
4478 | // This file is part of the GNU ISO C++ Library. This library is free | |
4479 | // software; you can redistribute it and/or modify it under the | |
4480 | @@ -33,7 +33,7 @@ | |
4481 | ||
4482 | Element(const allocator_type& a = allocator_type()) : alloc(a) { } | |
4483 | ||
4484 | - Element(std::allocator_arg_t, const allocator_type& a, int i = 0) | |
4485 | + Element(std::allocator_arg_t, const allocator_type& a, int = 0) | |
4486 | : alloc(a) { } | |
4487 | ||
4488 | Element(std::allocator_arg_t, const allocator_type& a, const Element&) | |
4489 | @@ -53,6 +53,7 @@ | |
4490 | alloc1_type a1(1); | |
4491 | Element e; | |
4492 | EltVec ev1(1, e, a1); | |
4493 | + VERIFY( ev1.get_allocator().get_personality() == 1 ); | |
4494 | VERIFY( ev1[0].get_allocator().get_personality() == 1 ); | |
4495 | } | |
4496 | ||
4497 | @@ -60,14 +61,16 @@ | |
4498 | { | |
4499 | bool test __attribute((unused)) = false; | |
4500 | ||
4501 | - typedef std::vector<Element, Element::allocator_type> EltVec; | |
4502 | + typedef std::scoped_allocator_adaptor<Element::allocator_type> inner_alloc_type; | |
4503 | ||
4504 | - typedef std::scoped_allocator_adaptor<EltVec::allocator_type, | |
4505 | - Element::allocator_type> alloc_type; | |
4506 | + typedef std::vector<Element, inner_alloc_type> EltVec; | |
4507 | ||
4508 | + typedef std::scoped_allocator_adaptor<Element::allocator_type, | |
4509 | + Element::allocator_type> alloc_type; | |
4510 | + | |
4511 | typedef std::vector<EltVec, alloc_type> EltVecVec; | |
4512 | ||
4513 | - alloc_type a(1, 2); | |
4514 | + alloc_type a(1, Element::allocator_type(2)); // outer=1, inner=2 | |
4515 | Element e; | |
4516 | EltVec ev(1, e); | |
4517 | EltVecVec evv(1, ev, a); | |
4518 | @@ -76,7 +79,7 @@ | |
4519 | VERIFY( evv[0].get_allocator().get_personality() == 2 ); | |
4520 | VERIFY( evv[0][0].get_allocator().get_personality() == 2 ); | |
4521 | ||
4522 | - alloc_type a2(3, 4); | |
4523 | + alloc_type a2(3, Element::allocator_type(4)); // outer=3, inner=4 | |
4524 | ||
4525 | EltVecVec evv2(evv, a2); // copy with a different allocator | |
4526 | ||
4527 | @@ -96,4 +99,5 @@ | |
4528 | int main() | |
4529 | { | |
4530 | test01(); | |
4531 | + test02(); | |
4532 | } | |
4533 | Index: libstdc++-v3/testsuite/20_util/pointer_traits/requirements/typedefs.cc | |
4534 | =================================================================== | |
4535 | --- libstdc++-v3/testsuite/20_util/pointer_traits/requirements/typedefs.cc (.../tags/gcc_4_7_0_release) (wersja 187293) | |
4536 | +++ libstdc++-v3/testsuite/20_util/pointer_traits/requirements/typedefs.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
4537 | @@ -32,6 +32,7 @@ | |
4538 | typedef typename test_type::pointer pointer; | |
4539 | typedef typename test_type::element_type element_type; | |
4540 | typedef typename test_type::difference_type difference_type; | |
4541 | + typedef typename test_type::template rebind<char> rebind_type; | |
4542 | } | |
4543 | ||
4544 | int main() | |
4545 | Index: libstdc++-v3/config/abi/post/sparc-linux-gnu/baseline_symbols.txt | |
4546 | =================================================================== | |
4547 | --- libstdc++-v3/config/abi/post/sparc-linux-gnu/baseline_symbols.txt (.../tags/gcc_4_7_0_release) (wersja 187293) | |
4548 | +++ libstdc++-v3/config/abi/post/sparc-linux-gnu/baseline_symbols.txt (.../branches/gcc-4_7-branch) (wersja 187293) | |
4549 | @@ -43,6 +43,10 @@ | |
4550 | FUNC:_ZN11__gnu_debug19_Safe_sequence_base18_M_detach_singularEv@@GLIBCXX_3.4 | |
4551 | FUNC:_ZN11__gnu_debug19_Safe_sequence_base22_M_revalidate_singularEv@@GLIBCXX_3.4 | |
4552 | FUNC:_ZN11__gnu_debug19_Safe_sequence_base7_M_swapERS0_@@GLIBCXX_3.4 | |
4553 | +FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_attachEPNS_19_Safe_sequence_baseEb@@GLIBCXX_3.4.17 | |
4554 | +FUNC:_ZN11__gnu_debug25_Safe_local_iterator_base9_M_detachEv@@GLIBCXX_3.4.17 | |
4555 | +FUNC:_ZN11__gnu_debug30_Safe_unordered_container_base13_M_detach_allEv@@GLIBCXX_3.4.17 | |
4556 | +FUNC:_ZN11__gnu_debug30_Safe_unordered_container_base7_M_swapERS0_@@GLIBCXX_3.4.17 | |
4557 | FUNC:_ZN14__gnu_parallel9_Settings3getEv@@GLIBCXX_3.4.10 | |
4558 | FUNC:_ZN14__gnu_parallel9_Settings3setERS0_@@GLIBCXX_3.4.10 | |
4559 | FUNC:_ZN9__gnu_cxx12__atomic_addEPVii@@GLIBCXX_3.4 | |
4560 | @@ -877,6 +881,7 @@ | |
4561 | FUNC:_ZNSaIwEC2Ev@@GLIBCXX_3.4 | |
4562 | FUNC:_ZNSaIwED1Ev@@GLIBCXX_3.4 | |
4563 | FUNC:_ZNSaIwED2Ev@@GLIBCXX_3.4 | |
4564 | +FUNC:_ZNSbIwSt11char_traitsIwESaIwEE10_S_compareEjj@@GLIBCXX_3.4.16 | |
4565 | FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_Alloc_hiderC1EPwRKS1_@@GLIBCXX_3.4 | |
4566 | FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_Alloc_hiderC2EPwRKS1_@@GLIBCXX_3.4 | |
4567 | FUNC:_ZNSbIwSt11char_traitsIwESaIwEE12_M_leak_hardEv@@GLIBCXX_3.4 | |
4568 | @@ -961,6 +966,7 @@ | |
4569 | FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjRKS2_jj@@GLIBCXX_3.4 | |
4570 | FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7replaceEjjjw@@GLIBCXX_3.4 | |
4571 | FUNC:_ZNSbIwSt11char_traitsIwESaIwEE7reserveEj@@GLIBCXX_3.4 | |
4572 | +FUNC:_ZNSbIwSt11char_traitsIwESaIwEE8pop_backEv@@GLIBCXX_3.4.17 | |
4573 | FUNC:_ZNSbIwSt11char_traitsIwESaIwEE9_M_assignEPwjw@@GLIBCXX_3.4.5 | |
4574 | FUNC:_ZNSbIwSt11char_traitsIwESaIwEE9_M_assignEPwjw@GLIBCXX_3.4 | |
4575 | FUNC:_ZNSbIwSt11char_traitsIwESaIwEE9_M_mutateEjjj@@GLIBCXX_3.4 | |
4576 | @@ -1116,6 +1122,7 @@ | |
4577 | FUNC:_ZNSolsEt@@GLIBCXX_3.4 | |
4578 | FUNC:_ZNSolsEx@@GLIBCXX_3.4 | |
4579 | FUNC:_ZNSolsEy@@GLIBCXX_3.4 | |
4580 | +FUNC:_ZNSs10_S_compareEjj@@GLIBCXX_3.4.16 | |
4581 | FUNC:_ZNSs12_Alloc_hiderC1EPcRKSaIcE@@GLIBCXX_3.4 | |
4582 | FUNC:_ZNSs12_Alloc_hiderC2EPcRKSaIcE@@GLIBCXX_3.4 | |
4583 | FUNC:_ZNSs12_M_leak_hardEv@@GLIBCXX_3.4 | |
4584 | @@ -1200,6 +1207,7 @@ | |
4585 | FUNC:_ZNSs7replaceEjjRKSsjj@@GLIBCXX_3.4 | |
4586 | FUNC:_ZNSs7replaceEjjjc@@GLIBCXX_3.4 | |
4587 | FUNC:_ZNSs7reserveEj@@GLIBCXX_3.4 | |
4588 | +FUNC:_ZNSs8pop_backEv@@GLIBCXX_3.4.17 | |
4589 | FUNC:_ZNSs9_M_assignEPcjc@@GLIBCXX_3.4.5 | |
4590 | FUNC:_ZNSs9_M_assignEPcjc@GLIBCXX_3.4 | |
4591 | FUNC:_ZNSs9_M_mutateEjjj@@GLIBCXX_3.4 | |
4592 | @@ -1433,6 +1441,9 @@ | |
4593 | FUNC:_ZNSt13__future_base12_Result_baseD0Ev@@GLIBCXX_3.4.15 | |
4594 | FUNC:_ZNSt13__future_base12_Result_baseD1Ev@@GLIBCXX_3.4.15 | |
4595 | FUNC:_ZNSt13__future_base12_Result_baseD2Ev@@GLIBCXX_3.4.15 | |
4596 | +FUNC:_ZNSt13__future_base19_Async_state_commonD0Ev@@GLIBCXX_3.4.17 | |
4597 | +FUNC:_ZNSt13__future_base19_Async_state_commonD1Ev@@GLIBCXX_3.4.17 | |
4598 | +FUNC:_ZNSt13__future_base19_Async_state_commonD2Ev@@GLIBCXX_3.4.17 | |
4599 | FUNC:_ZNSt13bad_exceptionD0Ev@@GLIBCXX_3.4 | |
4600 | FUNC:_ZNSt13bad_exceptionD1Ev@@GLIBCXX_3.4 | |
4601 | FUNC:_ZNSt13bad_exceptionD2Ev@@GLIBCXX_3.4 | |
4602 | @@ -1741,6 +1752,8 @@ | |
4603 | FUNC:_ZNSt15__exception_ptrneERKNS_13exception_ptrES2_@@CXXABI_1.3.3 | |
4604 | FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE10pubseekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4 | |
4605 | FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE10pubseekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4 | |
4606 | +FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE12__safe_gbumpEi@@GLIBCXX_3.4.16 | |
4607 | +FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE12__safe_pbumpEi@@GLIBCXX_3.4.16 | |
4608 | FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4setgEPcS3_S3_@@GLIBCXX_3.4 | |
4609 | FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4setpEPcS3_@@GLIBCXX_3.4 | |
4610 | FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEE4syncEv@@GLIBCXX_3.4 | |
4611 | @@ -1780,6 +1793,8 @@ | |
4612 | FUNC:_ZNSt15basic_streambufIcSt11char_traitsIcEEaSERKS2_@@GLIBCXX_3.4 | |
4613 | FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE10pubseekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4 | |
4614 | FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE10pubseekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4 | |
4615 | +FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE12__safe_gbumpEi@@GLIBCXX_3.4.16 | |
4616 | +FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE12__safe_pbumpEi@@GLIBCXX_3.4.16 | |
4617 | FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4setgEPwS3_S3_@@GLIBCXX_3.4 | |
4618 | FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4setpEPwS3_@@GLIBCXX_3.4 | |
4619 | FUNC:_ZNSt15basic_streambufIwSt11char_traitsIwEE4syncEv@@GLIBCXX_3.4 | |
4620 | @@ -1824,6 +1839,7 @@ | |
4621 | FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7_M_syncEPcjj@@GLIBCXX_3.4 | |
4622 | FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4 | |
4623 | FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4 | |
4624 | +FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE8_M_pbumpEPcS4_x@@GLIBCXX_3.4.16 | |
4625 | FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE8overflowEi@@GLIBCXX_3.4 | |
4626 | FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9pbackfailEi@@GLIBCXX_3.4 | |
4627 | FUNC:_ZNSt15basic_stringbufIcSt11char_traitsIcESaIcEE9showmanycEv@@GLIBCXX_3.4.6 | |
4628 | @@ -1841,6 +1857,7 @@ | |
4629 | FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7_M_syncEPwjj@@GLIBCXX_3.4 | |
4630 | FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7seekoffExSt12_Ios_SeekdirSt13_Ios_Openmode@@GLIBCXX_3.4 | |
4631 | FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE7seekposESt4fposI11__mbstate_tESt13_Ios_Openmode@@GLIBCXX_3.4 | |
4632 | +FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE8_M_pbumpEPwS4_x@@GLIBCXX_3.4.16 | |
4633 | FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE8overflowEj@@GLIBCXX_3.4 | |
4634 | FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE9pbackfailEj@@GLIBCXX_3.4 | |
4635 | FUNC:_ZNSt15basic_stringbufIwSt11char_traitsIwESaIwEE9showmanycEv@@GLIBCXX_3.4.6 | |
4636 | @@ -2145,6 +2162,7 @@ | |
4637 | FUNC:_ZNSt6localeD2Ev@@GLIBCXX_3.4 | |
4638 | FUNC:_ZNSt6localeaSERKS_@@GLIBCXX_3.4 | |
4639 | FUNC:_ZNSt6thread15_M_start_threadESt10shared_ptrINS_10_Impl_baseEE@@GLIBCXX_3.4.11 | |
4640 | +FUNC:_ZNSt6thread20hardware_concurrencyEv@@GLIBCXX_3.4.17 | |
4641 | FUNC:_ZNSt6thread4joinEv@@GLIBCXX_3.4.11 | |
4642 | FUNC:_ZNSt6thread6detachEv@@GLIBCXX_3.4.11 | |
4643 | FUNC:_ZNSt7codecvtIcc11__mbstate_tEC1EP15__locale_structj@@GLIBCXX_3.4 | |
4644 | @@ -2640,14 +2658,17 @@ | |
4645 | FUNC:_ZnwjRKSt9nothrow_t@@GLIBCXX_3.4 | |
4646 | FUNC:__atomic_flag_for_address@@GLIBCXX_3.4.11 | |
4647 | FUNC:__atomic_flag_wait_explicit@@GLIBCXX_3.4.11 | |
4648 | +FUNC:__cxa_allocate_dependent_exception@@CXXABI_1.3.6 | |
4649 | FUNC:__cxa_allocate_exception@@CXXABI_1.3 | |
4650 | FUNC:__cxa_bad_cast@@CXXABI_1.3 | |
4651 | FUNC:__cxa_bad_typeid@@CXXABI_1.3 | |
4652 | FUNC:__cxa_begin_catch@@CXXABI_1.3 | |
4653 | FUNC:__cxa_call_unexpected@@CXXABI_1.3 | |
4654 | FUNC:__cxa_current_exception_type@@CXXABI_1.3 | |
4655 | +FUNC:__cxa_deleted_virtual@@CXXABI_1.3.6 | |
4656 | FUNC:__cxa_demangle@@CXXABI_1.3 | |
4657 | FUNC:__cxa_end_catch@@CXXABI_1.3 | |
4658 | +FUNC:__cxa_free_dependent_exception@@CXXABI_1.3.6 | |
4659 | FUNC:__cxa_free_exception@@CXXABI_1.3 | |
4660 | FUNC:__cxa_get_exception_ptr@@CXXABI_1.3.1 | |
4661 | FUNC:__cxa_get_globals@@CXXABI_1.3 | |
4662 | @@ -2658,6 +2679,7 @@ | |
4663 | FUNC:__cxa_pure_virtual@@CXXABI_1.3 | |
4664 | FUNC:__cxa_rethrow@@CXXABI_1.3 | |
4665 | FUNC:__cxa_throw@@CXXABI_1.3 | |
4666 | +FUNC:__cxa_tm_cleanup@@CXXABI_TM_1 | |
4667 | FUNC:__cxa_vec_cctor@@CXXABI_1.3 | |
4668 | FUNC:__cxa_vec_cleanup@@CXXABI_1.3 | |
4669 | FUNC:__cxa_vec_ctor@@CXXABI_1.3 | |
4670 | @@ -2701,7 +2723,9 @@ | |
4671 | OBJECT:0:CXXABI_1.3.3 | |
4672 | OBJECT:0:CXXABI_1.3.4 | |
4673 | OBJECT:0:CXXABI_1.3.5 | |
4674 | +OBJECT:0:CXXABI_1.3.6 | |
4675 | OBJECT:0:CXXABI_LDBL_1.3 | |
4676 | +OBJECT:0:CXXABI_TM_1 | |
4677 | OBJECT:0:GLIBCXX_3.4 | |
4678 | OBJECT:0:GLIBCXX_3.4.1 | |
4679 | OBJECT:0:GLIBCXX_3.4.10 | |
4680 | @@ -2710,6 +2734,8 @@ | |
4681 | OBJECT:0:GLIBCXX_3.4.13 | |
4682 | OBJECT:0:GLIBCXX_3.4.14 | |
4683 | OBJECT:0:GLIBCXX_3.4.15 | |
4684 | +OBJECT:0:GLIBCXX_3.4.16 | |
4685 | +OBJECT:0:GLIBCXX_3.4.17 | |
4686 | OBJECT:0:GLIBCXX_3.4.2 | |
4687 | OBJECT:0:GLIBCXX_3.4.3 | |
4688 | OBJECT:0:GLIBCXX_3.4.4 | |
4689 | @@ -2737,6 +2763,7 @@ | |
4690 | OBJECT:12:_ZTIN9__gnu_cxx13stdio_filebufIwSt11char_traitsIwEEE@@GLIBCXX_3.4 | |
4691 | OBJECT:12:_ZTIN9__gnu_cxx18stdio_sync_filebufIcSt11char_traitsIcEEE@@GLIBCXX_3.4 | |
4692 | OBJECT:12:_ZTIN9__gnu_cxx18stdio_sync_filebufIwSt11char_traitsIwEEE@@GLIBCXX_3.4 | |
4693 | +OBJECT:12:_ZTINSt13__future_base19_Async_state_commonE@@GLIBCXX_3.4.17 | |
4694 | OBJECT:12:_ZTINSt17__gnu_cxx_ldbl1287num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEEE@@GLIBCXX_LDBL_3.4 | |
4695 | OBJECT:12:_ZTINSt17__gnu_cxx_ldbl1287num_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEEE@@GLIBCXX_LDBL_3.4 | |
4696 | OBJECT:12:_ZTINSt17__gnu_cxx_ldbl1287num_putIcSt19ostreambuf_iteratorIcSt11char_traitsIcEEEE@@GLIBCXX_LDBL_3.4 | |
4697 | @@ -3245,6 +3272,7 @@ | |
4698 | OBJECT:20:_ZTSSt15underflow_error@@GLIBCXX_3.4 | |
4699 | OBJECT:20:_ZTVNSt13__future_base11_State_baseE@@GLIBCXX_3.4.15 | |
4700 | OBJECT:20:_ZTVNSt13__future_base12_Result_baseE@@GLIBCXX_3.4.15 | |
4701 | +OBJECT:20:_ZTVNSt13__future_base19_Async_state_commonE@@GLIBCXX_3.4.17 | |
4702 | OBJECT:20:_ZTVNSt8ios_base7failureE@@GLIBCXX_3.4 | |
4703 | OBJECT:20:_ZTVSt10bad_typeid@@GLIBCXX_3.4 | |
4704 | OBJECT:20:_ZTVSt10lock_error@@GLIBCXX_3.4.11 | |
4705 | @@ -3437,6 +3465,7 @@ | |
4706 | OBJECT:40:_ZTVSt19basic_ostringstreamIwSt11char_traitsIwESaIwEE@@GLIBCXX_3.4 | |
4707 | OBJECT:40:_ZTVSt8time_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE@@GLIBCXX_3.4 | |
4708 | OBJECT:40:_ZTVSt8time_getIwSt19istreambuf_iteratorIwSt11char_traitsIwEEE@@GLIBCXX_3.4 | |
4709 | +OBJECT:41:_ZTSNSt13__future_base19_Async_state_commonE@@GLIBCXX_3.4.17 | |
4710 | OBJECT:41:_ZTSSt15basic_streambufIcSt11char_traitsIcEE@@GLIBCXX_3.4 | |
4711 | OBJECT:41:_ZTSSt15basic_streambufIwSt11char_traitsIwEE@@GLIBCXX_3.4 | |
4712 | OBJECT:44:_ZTVN10__cxxabiv117__class_type_infoE@@CXXABI_1.3 | |
4713 | Index: libstdc++-v3/acinclude.m4 | |
4714 | =================================================================== | |
4715 | --- libstdc++-v3/acinclude.m4 (.../tags/gcc_4_7_0_release) (wersja 187293) | |
4716 | +++ libstdc++-v3/acinclude.m4 (.../branches/gcc-4_7-branch) (wersja 187293) | |
4717 | @@ -2955,11 +2955,10 @@ | |
4718 | CXXFLAGS="$old_CXXFLAGS" | |
4719 | AC_LANG_RESTORE | |
4720 | ||
4721 | - # Set atomicity_dir to builtins if all of above tests pass. | |
4722 | + # Set atomicity_dir to builtins if all but the long long test above passes. | |
4723 | if test $glibcxx_cv_atomic_bool = yes \ | |
4724 | && test $glibcxx_cv_atomic_short = yes \ | |
4725 | - && test $glibcxx_cv_atomic_int = yes \ | |
4726 | - && test $glibcxx_cv_atomic_long_long = yes ; then | |
4727 | + && test $glibcxx_cv_atomic_int = yes; then | |
4728 | AC_DEFINE(_GLIBCXX_ATOMIC_BUILTINS, 1, | |
4729 | [Define if the compiler supports C++11 atomics.]) | |
4730 | atomicity_dir=cpu/generic/atomicity_builtins | |
4731 | Index: libiberty/ChangeLog | |
4732 | =================================================================== | |
4733 | --- libiberty/ChangeLog (.../tags/gcc_4_7_0_release) (wersja 187293) | |
4734 | +++ libiberty/ChangeLog (.../branches/gcc-4_7-branch) (wersja 187293) | |
4735 | @@ -1,3 +1,12 @@ | |
4736 | +2012-03-24 H.J. Lu <hongjiu.lu@intel.com> | |
4737 | + | |
4738 | + * testsuite/demangle-expected: Fix a typo. | |
4739 | + | |
4740 | +2012-03-22 Jason Merrill <jason@redhat.com> | |
4741 | + | |
4742 | + * cp-demangle.c (cplus_demangle_operators): Add li. | |
4743 | + (d_unqualified_name): Handle it specially. | |
4744 | + | |
4745 | 2012-03-22 Release Manager | |
4746 | ||
4747 | * GCC 4.7.0 released. | |
4748 | Index: libiberty/testsuite/demangle-expected | |
4749 | =================================================================== | |
4750 | --- libiberty/testsuite/demangle-expected (.../tags/gcc_4_7_0_release) (wersja 187293) | |
4751 | +++ libiberty/testsuite/demangle-expected (.../branches/gcc-4_7-branch) (wersja 187293) | |
4752 | @@ -4073,6 +4073,9 @@ | |
4753 | _Z2f1IiEDTnw_T_ilEES0_ | |
4754 | decltype (new int{}) f1<int>(int) | |
4755 | --format=gnu-v3 | |
4756 | +_Zli2_wPKc | |
4757 | +operator"" _w(char const*) | |
4758 | +--format=gnu-v3 | |
4759 | _Z1fIiEDTnw_Dapifp_EET_ | |
4760 | decltype (new auto({parm#1})) f<int>(int) | |
4761 | --format=gnu-v3 | |
4762 | Index: libiberty/cp-demangle.c | |
4763 | =================================================================== | |
4764 | --- libiberty/cp-demangle.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
4765 | +++ libiberty/cp-demangle.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
4766 | @@ -1419,7 +1419,12 @@ | |
4767 | ||
4768 | ret = d_operator_name (di); | |
4769 | if (ret != NULL && ret->type == DEMANGLE_COMPONENT_OPERATOR) | |
4770 | - di->expansion += sizeof "operator" + ret->u.s_operator.op->len - 2; | |
4771 | + { | |
4772 | + di->expansion += sizeof "operator" + ret->u.s_operator.op->len - 2; | |
4773 | + if (!strcmp (ret->u.s_operator.op->code, "li")) | |
4774 | + ret = d_make_comp (di, DEMANGLE_COMPONENT_UNARY, ret, | |
4775 | + d_source_name (di)); | |
4776 | + } | |
4777 | return ret; | |
4778 | } | |
4779 | else if (peek == 'C' || peek == 'D') | |
4780 | @@ -1596,6 +1601,7 @@ | |
4781 | { "ix", NL ("[]"), 2 }, | |
4782 | { "lS", NL ("<<="), 2 }, | |
4783 | { "le", NL ("<="), 2 }, | |
4784 | + { "li", NL ("operator\"\" "), 1 }, | |
4785 | { "ls", NL ("<<"), 2 }, | |
4786 | { "lt", NL ("<"), 2 }, | |
4787 | { "mI", NL ("-="), 2 }, | |
4788 | Index: ChangeLog | |
4789 | =================================================================== | |
4790 | --- ChangeLog (.../tags/gcc_4_7_0_release) (wersja 187293) | |
4791 | +++ ChangeLog (.../branches/gcc-4_7-branch) (wersja 187293) | |
4792 | @@ -1,3 +1,11 @@ | |
4793 | +2012-03-28 Georg-Johann Lay <avr@gjlay.de> | |
4794 | + | |
4795 | + Backport from 2012-03-28 mainline r185907. | |
4796 | + | |
4797 | + PR target/52737 | |
4798 | + * contrib/gcc_update (files_and_dependencies): | |
4799 | + Remove gcc/config/avr/t-multilib from touch data. | |
4800 | + | |
4801 | 2012-03-22 Release Manager | |
4802 | ||
4803 | * GCC 4.7.0 released. | |
4804 | Index: contrib/gcc_update | |
4805 | =================================================================== | |
4806 | --- contrib/gcc_update (.../tags/gcc_4_7_0_release) (wersja 187293) | |
4807 | +++ contrib/gcc_update (.../branches/gcc-4_7-branch) (wersja 187293) | |
4808 | @@ -83,7 +83,6 @@ | |
4809 | gcc/config/arm/arm-tables.opt: gcc/config/arm/arm-arches.def gcc/config/arm/arm-cores.def gcc/config/arm/arm-fpus.def gcc/config/arm/genopt.sh | |
4810 | gcc/config/avr/avr-tables.opt: gcc/config/avr/avr-mcus.def gcc/config/avr/genopt.sh | |
4811 | gcc/config/avr/t-multilib: gcc/config/avr/avr-mcus.def gcc/config/avr/genmultilib.awk | |
4812 | -gcc/config/avr/multilib.h: gcc/config/avr/avr-mcus.def gcc/config/avr/genmultilib.awk | |
4813 | gcc/config/c6x/c6x-tables.opt: gcc/config/c6x/c6x-isas.def gcc/config/c6x/genopt.sh | |
4814 | gcc/config/c6x/c6x-sched.md: gcc/config/c6x/c6x-sched.md.in gcc/config/c6x/gensched.sh | |
4815 | gcc/config/c6x/c6x-mult.md: gcc/config/c6x/c6x-mult.md.in gcc/config/c6x/genmult.sh | |
4816 | Index: libjava/ChangeLog | |
4817 | =================================================================== | |
4818 | --- libjava/ChangeLog (.../tags/gcc_4_7_0_release) (wersja 187293) | |
4819 | +++ libjava/ChangeLog (.../branches/gcc-4_7-branch) (wersja 187293) | |
4820 | @@ -1,3 +1,8 @@ | |
4821 | +2012-04-23 Andrew Haley <aph@redhat.com> | |
4822 | + | |
4823 | + * defineclass.cc (MAJOR_1_7, MINOR_1_7): New. | |
4824 | + (parse): Allow MAJOR_1_7 classfile version. | |
4825 | + | |
4826 | 2012-03-22 Release Manager | |
4827 | ||
4828 | * GCC 4.7.0 released. | |
4829 | Index: libjava/defineclass.cc | |
4830 | =================================================================== | |
4831 | --- libjava/defineclass.cc (.../tags/gcc_4_7_0_release) (wersja 187293) | |
4832 | +++ libjava/defineclass.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
4833 | @@ -361,6 +361,8 @@ | |
4834 | #define MINOR_1_5 0 | |
4835 | #define MAJOR_1_6 50 | |
4836 | #define MINOR_1_6 0 | |
4837 | +#define MAJOR_1_7 51 | |
4838 | +#define MINOR_1_7 0 | |
4839 | ||
4840 | void | |
4841 | _Jv_ClassReader::parse () | |
4842 | @@ -371,8 +373,8 @@ | |
4843 | ||
4844 | int minor_version = read2u (); | |
4845 | int major_version = read2u (); | |
4846 | - if (major_version < MAJOR_1_1 || major_version > MAJOR_1_6 | |
4847 | - || (major_version == MAJOR_1_6 && minor_version > MINOR_1_6)) | |
4848 | + if (major_version < MAJOR_1_1 || major_version > MAJOR_1_7 | |
4849 | + || (major_version == MAJOR_1_7 && minor_version > MINOR_1_7)) | |
4850 | throw_class_format_error ("unrecognized class file version"); | |
4851 | is_15 = (major_version >= MAJOR_1_5); | |
4852 | ||
4853 | Index: libgcc/config.host | |
4854 | =================================================================== | |
4855 | --- libgcc/config.host (.../tags/gcc_4_7_0_release) (wersja 187293) | |
4856 | +++ libgcc/config.host (.../branches/gcc-4_7-branch) (wersja 187293) | |
4857 | @@ -744,15 +744,13 @@ | |
4858 | ;; | |
4859 | mips*-*-netbsd*) # NetBSD/mips, either endian. | |
4860 | ;; | |
4861 | -mips64*-*-linux* | mipsisa64*-*-linux*) | |
4862 | - extra_parts="$extra_parts crtfastmath.o" | |
4863 | - tmake_file="${tmake_file} t-crtfm mips/t-mips16 mips/t-tpbit" | |
4864 | - md_unwind_header=mips/linux-unwind.h | |
4865 | - ;; | |
4866 | mips*-*-linux*) # Linux MIPS, either endian. | |
4867 | extra_parts="$extra_parts crtfastmath.o" | |
4868 | tmake_file="${tmake_file} t-crtfm mips/t-mips16" | |
4869 | md_unwind_header=mips/linux-unwind.h | |
4870 | + if test "${ac_cv_sizeof_long_double}" = 16; then | |
4871 | + tmake_file="${tmake_file} mips/t-tpbit" | |
4872 | + fi | |
4873 | ;; | |
4874 | mips*-*-openbsd*) | |
4875 | ;; | |
4876 | @@ -848,9 +846,15 @@ | |
4877 | tmake_file="$tmake_file rs6000/t-darwin64 rs6000/t-ibm-ldouble" | |
4878 | extra_parts="$extra_parts crt2.o" | |
4879 | ;; | |
4880 | -powerpc-*-freebsd*) | |
4881 | - tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-savresfgpr rs6000/t-crtstuff rs6000/t-freebsd t-softfp-sfdf t-softfp-excl t-softfp t-slibgcc-libgcc" | |
4882 | +powerpc*-*-freebsd*) | |
4883 | + tmake_file="${tmake_file} rs6000/t-ppccomm rs6000/t-savresfgpr rs6000/t-crtstuff rs6000/t-freebsd t-softfp-sfdf t-softfp-excl t-softfp" | |
4884 | extra_parts="$extra_parts crtbeginT.o ecrti.o ecrtn.o ncrti.o ncrtn.o" | |
4885 | + case ${host} in | |
4886 | + powerpc64*) | |
4887 | + tmake_file="${tmake_file} rs6000/t-freebsd64" | |
4888 | + md_unwind_header=rs6000/freebsd-unwind.h | |
4889 | + ;; | |
4890 | + esac | |
4891 | ;; | |
4892 | powerpc-*-netbsd*) | |
4893 | tmake_file="$tmake_file rs6000/t-netbsd rs6000/t-crtstuff" | |
4894 | Index: libgcc/ChangeLog | |
4895 | =================================================================== | |
4896 | --- libgcc/ChangeLog (.../tags/gcc_4_7_0_release) (wersja 187293) | |
4897 | +++ libgcc/ChangeLog (.../branches/gcc-4_7-branch) (wersja 187293) | |
4898 | @@ -1,3 +1,102 @@ | |
4899 | +2012-04-30 Andreas Tobler <andreast@fgznet.ch> | |
4900 | + | |
4901 | + Backport from mainline | |
4902 | + 2012-03-21 Andreas Tobler <andreast@fgznet.ch> | |
4903 | + | |
4904 | + * config.host: Add bits to support powerpc64-*-freebsd*. | |
4905 | + * config/rs6000/freebsd-unwind.h: New file. | |
4906 | + * config/rs6000/t-freebsd64: New file. | |
4907 | + | |
4908 | +2012-04-28 Aurelien Jarno <aurelien@aurel32.net> | |
4909 | + | |
4910 | + * config.host (mips64*-*-linux*, mipsisa64*-*-linux*): Remove. | |
4911 | + (mips*-*-linux*): Include mips/t-tpbit when long double is | |
4912 | + 16 bytes long. | |
4913 | + | |
4914 | +2012-04-20 Thomas Schwinge <thomas@codesourcery.com> | |
4915 | + | |
4916 | + struct siginfo vs. siginfo_t | |
4917 | + | |
4918 | + Backport from trunk: | |
4919 | + | |
4920 | + 2012-04-20 Thomas Schwinge <thomas@codesourcery.com> | |
4921 | + | |
4922 | + * config/alpha/linux-unwind.h (alpha_fallback_frame_state): Use | |
4923 | + siginfo_t instead of struct siginfo. | |
4924 | + * config/bfin/linux-unwind.h (bfin_fallback_frame_state): Likewise. | |
4925 | + * config/i386/linux-unwind.h (x86_fallback_frame_state): Likewise. | |
4926 | + * config/ia64/linux-unwind.h (ia64_fallback_frame_state) | |
4927 | + (ia64_handle_unwabi): Likewise. | |
4928 | + * config/mips/linux-unwind.h (mips_fallback_frame_state): Likewise. | |
4929 | + * config/pa/linux-unwind.h (pa32_fallback_frame_state): Likewise. | |
4930 | + * config/sh/linux-unwind.h (shmedia_fallback_frame_state) | |
4931 | + (sh_fallback_frame_state): Likewise. | |
4932 | + * config/tilepro/linux-unwind.h (tile_fallback_frame_state): Likewise. | |
4933 | + * config/xtensa/linux-unwind.h (xtensa_fallback_frame_state): Likewise. | |
4934 | + | |
4935 | +2012-04-06 Walter Lee <walt@tilera.com> | |
4936 | + | |
4937 | + Backport from mainline | |
4938 | + 2012-03-07 Walter Lee <walt@tilera.com> | |
4939 | + | |
4940 | + * config/tilepro/atomic.c: Rename "atomic_" prefix to | |
4941 | + "arch_atomic_". | |
4942 | + (atomic_xor): Rename and move definition to | |
4943 | + config/tilepro/atomic.h. | |
4944 | + (atomic_nand): Ditto. | |
4945 | + * config/tilepro/atomic.h: Rename "atomic_" prefix to | |
4946 | + "arch_atomic_". | |
4947 | + (arch_atomic_xor): Move from config/tilepro/atomic.c. | |
4948 | + (arch_atomic_nand): Ditto. | |
4949 | + | |
4950 | +2012-04-02 H.J. Lu <hongjiu.lu@intel.com> | |
4951 | + | |
4952 | + Backported from mainline | |
4953 | + 2012-04-02 H.J. Lu <hongjiu.lu@intel.com> | |
4954 | + | |
4955 | + * config/i386/linux-unwind.h (RT_SIGRETURN_SYSCALL): Update x32 | |
4956 | + system call number. | |
4957 | + | |
4958 | +2012-03-31 Eric Botcazou <ebotcazou@adacore.com> | |
4959 | + | |
4960 | + * config/ia64/unwind-ia64.c (uw_install_context): Manually save LC | |
4961 | + if it hasn't been previously saved. | |
4962 | + | |
4963 | +2012-03-28 Georg-Johann Lay <avr@gjlay.de> | |
4964 | + | |
4965 | + Backport from 2012-03-28 mainline r185907. | |
4966 | + | |
4967 | + PR target/52737 | |
4968 | + * config/avr/lib1funcs.S: Use __AVR_HAVE_SPH__ for SP_H checks | |
4969 | + instead of __AVR_HAVE_8BIT_SP__. | |
4970 | + | |
4971 | +2012-03-22 Georg-Johann Lay <avr@gjlay.de> | |
4972 | + | |
4973 | + Backport from 2012-03-07 mainline r185033. | |
4974 | + | |
4975 | + PR target/52507 | |
4976 | + * config/avr/lib1funcs.S (__movmemx_hi): Fix loop label in RAM-part. | |
4977 | + | |
4978 | + Backport from 2012-03-07 mainline r185031. | |
4979 | + | |
4980 | + PR target/52505 | |
4981 | + * config/avr/lib1funcs.S (__xload_1): Don't read unintentionally | |
4982 | + from RAM. | |
4983 | + | |
4984 | + Backport from 2012-03-07 mainline r185030. | |
4985 | + | |
4986 | + PR target/52461 | |
4987 | + PR target/52508 | |
4988 | + * config/avr/lib1funcs.S (__do_copy_data): Clear RAMPZ after usage | |
4989 | + if RAMPZ affects reading from RAM. | |
4990 | + (__tablejump_elpm__): Ditto. | |
4991 | + (.xload): Ditto. | |
4992 | + (__movmemx_hi): Ditto. | |
4993 | + (__do_global_ctors): Right condition for RAMPZ usage is "have ELPM". | |
4994 | + (__do_global_dtors): Ditto. | |
4995 | + (__xload_1, __xload_2, __xload_3, __xload_4): Ditto. | |
4996 | + (__movmemx_hi): Ditto. | |
4997 | + | |
4998 | 2012-03-22 Release Manager | |
4999 | ||
5000 | * GCC 4.7.0 released. | |
5001 | Index: libgcc/config/alpha/linux-unwind.h | |
5002 | =================================================================== | |
5003 | --- libgcc/config/alpha/linux-unwind.h (.../tags/gcc_4_7_0_release) (wersja 187293) | |
5004 | +++ libgcc/config/alpha/linux-unwind.h (.../branches/gcc-4_7-branch) (wersja 187293) | |
5005 | @@ -1,5 +1,5 @@ | |
5006 | /* DWARF2 EH unwinding support for Alpha Linux. | |
5007 | - Copyright (C) 2004, 2005, 2009, 2011 Free Software Foundation, Inc. | |
5008 | + Copyright (C) 2004, 2005, 2009, 2011, 2012 Free Software Foundation, Inc. | |
5009 | ||
5010 | This file is part of GCC. | |
5011 | ||
5012 | @@ -49,7 +49,7 @@ | |
5013 | else if (pc[1] == 0x201f015f) /* lda $0,NR_rt_sigreturn */ | |
5014 | { | |
5015 | struct rt_sigframe { | |
5016 | - struct siginfo info; | |
5017 | + siginfo_t info; | |
5018 | struct ucontext uc; | |
5019 | } *rt_ = context->cfa; | |
5020 | sc = &rt_->uc.uc_mcontext; | |
5021 | Index: libgcc/config/ia64/unwind-ia64.c | |
5022 | =================================================================== | |
5023 | --- libgcc/config/ia64/unwind-ia64.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
5024 | +++ libgcc/config/ia64/unwind-ia64.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
5025 | @@ -2171,8 +2171,20 @@ | |
5026 | struct _Unwind_Context *target) | |
5027 | { | |
5028 | unsigned long ireg_buf[4], ireg_nat = 0, ireg_pr = 0; | |
5029 | + unsigned long saved_lc; | |
5030 | long i; | |
5031 | ||
5032 | + /* ??? LC is a fixed register so the call to __builtin_unwind_init in | |
5033 | + uw_init_context doesn't cause it to be saved. In case it isn't in | |
5034 | + the user frames either, we need to manually do so here, lest it be | |
5035 | + clobbered by the loop just below. */ | |
5036 | + if (target->lc_loc == NULL) | |
5037 | + { | |
5038 | + register unsigned long lc asm ("ar.lc"); | |
5039 | + saved_lc = lc; | |
5040 | + target->lc_loc = &saved_lc; | |
5041 | + } | |
5042 | + | |
5043 | /* Copy integer register data from the target context to a | |
5044 | temporary buffer. Do this so that we can frob AR.UNAT | |
5045 | to get the NaT bits for these registers set properly. */ | |
5046 | Index: libgcc/config/ia64/linux-unwind.h | |
5047 | =================================================================== | |
5048 | --- libgcc/config/ia64/linux-unwind.h (.../tags/gcc_4_7_0_release) (wersja 187293) | |
5049 | +++ libgcc/config/ia64/linux-unwind.h (.../branches/gcc-4_7-branch) (wersja 187293) | |
5050 | @@ -1,5 +1,5 @@ | |
5051 | /* DWARF2 EH unwinding support for IA64 Linux. | |
5052 | - Copyright (C) 2004, 2005, 2009 Free Software Foundation, Inc. | |
5053 | + Copyright (C) 2004, 2005, 2009, 2012 Free Software Foundation, Inc. | |
5054 | ||
5055 | This file is part of GCC. | |
5056 | ||
5057 | @@ -47,7 +47,7 @@ | |
5058 | struct sigframe { | |
5059 | char scratch[16]; | |
5060 | unsigned long sig_number; | |
5061 | - struct siginfo *info; | |
5062 | + siginfo_t *info; | |
5063 | struct sigcontext *sc; | |
5064 | } *frame_ = (struct sigframe *)context->psp; | |
5065 | struct sigcontext *sc = frame_->sc; | |
5066 | @@ -137,7 +137,7 @@ | |
5067 | struct sigframe { | |
5068 | char scratch[16]; | |
5069 | unsigned long sig_number; | |
5070 | - struct siginfo *info; | |
5071 | + siginfo_t *info; | |
5072 | struct sigcontext *sc; | |
5073 | } *frame = (struct sigframe *)context->psp; | |
5074 | struct sigcontext *sc = frame->sc; | |
5075 | Index: libgcc/config/i386/linux-unwind.h | |
5076 | =================================================================== | |
5077 | --- libgcc/config/i386/linux-unwind.h (.../tags/gcc_4_7_0_release) (wersja 187293) | |
5078 | +++ libgcc/config/i386/linux-unwind.h (.../branches/gcc-4_7-branch) (wersja 187293) | |
5079 | @@ -1,5 +1,5 @@ | |
5080 | /* DWARF2 EH unwinding support for AMD x86-64 and x86. | |
5081 | - Copyright (C) 2004, 2005, 2006, 2009, 2010, 2011 | |
5082 | + Copyright (C) 2004, 2005, 2006, 2009, 2010, 2011, 2012 | |
5083 | Free Software Foundation, Inc. | |
5084 | ||
5085 | This file is part of GCC. | |
5086 | @@ -48,7 +48,7 @@ | |
5087 | #ifdef __LP64__ | |
5088 | #define RT_SIGRETURN_SYSCALL 0x050f0000000fc0c7ULL | |
5089 | #else | |
5090 | -#define RT_SIGRETURN_SYSCALL 0x050f40002006c0c7ULL | |
5091 | +#define RT_SIGRETURN_SYSCALL 0x050f40000201c0c7ULL | |
5092 | #endif | |
5093 | if (*(unsigned char *)(pc+0) == 0x48 | |
5094 | && *(unsigned long long *)(pc+1) == RT_SIGRETURN_SYSCALL) | |
5095 | @@ -139,9 +139,9 @@ | |
5096 | { | |
5097 | struct rt_sigframe { | |
5098 | int sig; | |
5099 | - struct siginfo *pinfo; | |
5100 | + siginfo_t *pinfo; | |
5101 | void *puc; | |
5102 | - struct siginfo info; | |
5103 | + siginfo_t info; | |
5104 | struct ucontext uc; | |
5105 | } *rt_ = context->cfa; | |
5106 | /* The void * cast is necessary to avoid an aliasing warning. | |
5107 | Index: libgcc/config/rs6000/t-freebsd64 | |
5108 | =================================================================== | |
5109 | --- libgcc/config/rs6000/t-freebsd64 (.../tags/gcc_4_7_0_release) (wersja 0) | |
5110 | +++ libgcc/config/rs6000/t-freebsd64 (.../branches/gcc-4_7-branch) (wersja 187293) | |
5111 | @@ -0,0 +1,5 @@ | |
5112 | +HOST_LIBGCC2_CFLAGS += -mno-minimal-toc | |
5113 | +SHLIB_MAPFILES = libgcc-std.ver | |
5114 | + | |
5115 | +softfp_wrap_start := '\#ifndef __powerpc64__' | |
5116 | +softfp_wrap_end := '\#endif' | |
5117 | Index: libgcc/config/rs6000/freebsd-unwind.h | |
5118 | =================================================================== | |
5119 | --- libgcc/config/rs6000/freebsd-unwind.h (.../tags/gcc_4_7_0_release) (wersja 0) | |
5120 | +++ libgcc/config/rs6000/freebsd-unwind.h (.../branches/gcc-4_7-branch) (wersja 187293) | |
5121 | @@ -0,0 +1,69 @@ | |
5122 | +/* DWARF2 EH unwinding support for PowerPC64 FreeBSD. | |
5123 | + Copyright (C) 2012 Free Software Foundation, Inc. | |
5124 | + | |
5125 | + This file is part of GCC. | |
5126 | + | |
5127 | + GCC is free software; you can redistribute it and/or modify it | |
5128 | + under the terms of the GNU General Public License as published | |
5129 | + by the Free Software Foundation; either version 3, or (at your | |
5130 | + option) any later version. | |
5131 | + | |
5132 | + GCC is distributed in the hope that it will be useful, but WITHOUT | |
5133 | + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY | |
5134 | + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public | |
5135 | + License for more details. | |
5136 | + | |
5137 | + Under Section 7 of GPL version 3, you are granted additional | |
5138 | + permissions described in the GCC Runtime Library Exception, version | |
5139 | + 3.1, as published by the Free Software Foundation. | |
5140 | + | |
5141 | + You should have received a copy of the GNU General Public License and | |
5142 | + a copy of the GCC Runtime Library Exception along with this program; | |
5143 | + see the files COPYING3 and COPYING.RUNTIME respectively. If not, see | |
5144 | + <http://www.gnu.org/licenses/>. */ | |
5145 | + | |
5146 | +#define R_LR 65 | |
5147 | + | |
5148 | +#define MD_FROB_UPDATE_CONTEXT frob_update_context | |
5149 | + | |
5150 | +static void | |
5151 | +frob_update_context (struct _Unwind_Context *context, | |
5152 | + _Unwind_FrameState *fs ATTRIBUTE_UNUSED) | |
5153 | +{ | |
5154 | + const unsigned int *pc = (const unsigned int *) context->ra; | |
5155 | + | |
5156 | +#ifdef __powerpc64__ | |
5157 | + if (fs->regs.reg[2].how == REG_UNSAVED) | |
5158 | + { | |
5159 | + /* If the current unwind info (FS) does not contain explicit info | |
5160 | + saving R2, then we have to do a minor amount of code reading to | |
5161 | + figure out if it was saved. The big problem here is that the | |
5162 | + code that does the save/restore is generated by the linker, so | |
5163 | + we have no good way to determine at compile time what to do. */ | |
5164 | + if (pc[0] == 0xF8410028 | |
5165 | + || ((pc[0] & 0xFFFF0000) == 0x3D820000 | |
5166 | + && pc[1] == 0xF8410028)) | |
5167 | + { | |
5168 | + /* We are in a plt call stub or r2 adjusting long branch stub, | |
5169 | + before r2 has been saved. Keep REG_UNSAVED. */ | |
5170 | + } | |
5171 | + else | |
5172 | + { | |
5173 | + unsigned int *insn | |
5174 | + = (unsigned int *) _Unwind_GetGR (context, R_LR); | |
5175 | + if (insn && *insn == 0xE8410028) | |
5176 | + _Unwind_SetGRPtr (context, 2, context->cfa + 40); | |
5177 | + else if (pc[0] == 0x4E800421 | |
5178 | + && pc[1] == 0xE8410028) | |
5179 | + { | |
5180 | + /* We are at the bctrl instruction in a call via function | |
5181 | + pointer. gcc always emits the load of the new R2 just | |
5182 | + before the bctrl so this is the first and only place | |
5183 | + we need to use the stored R2. */ | |
5184 | + _Unwind_Word sp = _Unwind_GetGR (context, 1); | |
5185 | + _Unwind_SetGRPtr (context, 2, (void *)(sp + 40)); | |
5186 | + } | |
5187 | + } | |
5188 | + } | |
5189 | +#endif | |
5190 | +} | |
5191 | Index: libgcc/config/sh/linux-unwind.h | |
5192 | =================================================================== | |
5193 | --- libgcc/config/sh/linux-unwind.h (.../tags/gcc_4_7_0_release) (wersja 187293) | |
5194 | +++ libgcc/config/sh/linux-unwind.h (.../branches/gcc-4_7-branch) (wersja 187293) | |
5195 | @@ -1,5 +1,6 @@ | |
5196 | /* DWARF2 EH unwinding support for SH Linux. | |
5197 | - Copyright (C) 2004, 2005, 2006, 2007, 2009 Free Software Foundation, Inc. | |
5198 | + Copyright (C) 2004, 2005, 2006, 2007, 2009, 2012 Free Software Foundation, | |
5199 | + Inc. | |
5200 | ||
5201 | This file is part of GCC. | |
5202 | ||
5203 | @@ -80,9 +81,9 @@ | |
5204 | && (*(unsigned long *) (pc+11) == 0x6ff0fff0)) | |
5205 | { | |
5206 | struct rt_sigframe { | |
5207 | - struct siginfo *pinfo; | |
5208 | + siginfo_t *pinfo; | |
5209 | void *puc; | |
5210 | - struct siginfo info; | |
5211 | + siginfo_t info; | |
5212 | struct ucontext uc; | |
5213 | } *rt_ = context->cfa; | |
5214 | /* The void * cast is necessary to avoid an aliasing warning. | |
5215 | @@ -179,7 +180,7 @@ | |
5216 | && (*(unsigned short *) (pc+14) == 0x00ad)))) | |
5217 | { | |
5218 | struct rt_sigframe { | |
5219 | - struct siginfo info; | |
5220 | + siginfo_t info; | |
5221 | struct ucontext uc; | |
5222 | } *rt_ = context->cfa; | |
5223 | /* The void * cast is necessary to avoid an aliasing warning. | |
5224 | Index: libgcc/config/tilepro/atomic.h | |
5225 | =================================================================== | |
5226 | --- libgcc/config/tilepro/atomic.h (.../tags/gcc_4_7_0_release) (wersja 187293) | |
5227 | +++ libgcc/config/tilepro/atomic.h (.../branches/gcc-4_7-branch) (wersja 187293) | |
5228 | @@ -104,8 +104,8 @@ | |
5229 | ||
5230 | /* 32-bit integer compare-and-exchange. */ | |
5231 | static __inline __attribute__ ((always_inline)) | |
5232 | - int atomic_val_compare_and_exchange_4 (volatile int *mem, | |
5233 | - int oldval, int newval) | |
5234 | + int arch_atomic_val_compare_and_exchange_4 (volatile int *mem, | |
5235 | + int oldval, int newval) | |
5236 | { | |
5237 | #ifdef __tilegx__ | |
5238 | __insn_mtspr (SPR_CMPEXCH_VALUE, oldval); | |
5239 | @@ -123,9 +123,9 @@ | |
5240 | ||
5241 | /* 64-bit integer compare-and-exchange. */ | |
5242 | static __inline __attribute__ ((always_inline)) | |
5243 | - int64_t atomic_val_compare_and_exchange_8 (volatile int64_t * mem, | |
5244 | - int64_t oldval, | |
5245 | - int64_t newval) | |
5246 | + int64_t arch_atomic_val_compare_and_exchange_8 (volatile int64_t * mem, | |
5247 | + int64_t oldval, | |
5248 | + int64_t newval) | |
5249 | { | |
5250 | #ifdef __tilegx__ | |
5251 | __insn_mtspr (SPR_CMPEXCH_VALUE, oldval); | |
5252 | @@ -146,41 +146,41 @@ | |
5253 | ||
5254 | /* This non-existent symbol is called for sizes other than "4" and "8", | |
5255 | indicating a bug in the caller. */ | |
5256 | -extern int __atomic_error_bad_argument_size (void) | |
5257 | +extern int __arch_atomic_error_bad_argument_size (void) | |
5258 | __attribute__ ((warning ("sizeof atomic argument not 4 or 8"))); | |
5259 | ||
5260 | ||
5261 | -#define atomic_val_compare_and_exchange(mem, o, n) \ | |
5262 | +#define arch_atomic_val_compare_and_exchange(mem, o, n) \ | |
5263 | ({ \ | |
5264 | (__typeof(*(mem)))(__typeof(*(mem)-*(mem))) \ | |
5265 | ((sizeof(*(mem)) == 8) ? \ | |
5266 | - atomic_val_compare_and_exchange_8( \ | |
5267 | + arch_atomic_val_compare_and_exchange_8( \ | |
5268 | (volatile int64_t*)(mem), (__typeof((o)-(o)))(o), \ | |
5269 | (__typeof((n)-(n)))(n)) : \ | |
5270 | (sizeof(*(mem)) == 4) ? \ | |
5271 | - atomic_val_compare_and_exchange_4( \ | |
5272 | + arch_atomic_val_compare_and_exchange_4( \ | |
5273 | (volatile int*)(mem), (__typeof((o)-(o)))(o), \ | |
5274 | (__typeof((n)-(n)))(n)) : \ | |
5275 | - __atomic_error_bad_argument_size()); \ | |
5276 | + __arch_atomic_error_bad_argument_size()); \ | |
5277 | }) | |
5278 | ||
5279 | -#define atomic_bool_compare_and_exchange(mem, o, n) \ | |
5280 | +#define arch_atomic_bool_compare_and_exchange(mem, o, n) \ | |
5281 | ({ \ | |
5282 | __typeof(o) __o = (o); \ | |
5283 | __builtin_expect( \ | |
5284 | - __o == atomic_val_compare_and_exchange((mem), __o, (n)), 1); \ | |
5285 | + __o == arch_atomic_val_compare_and_exchange((mem), __o, (n)), 1); \ | |
5286 | }) | |
5287 | ||
5288 | ||
5289 | /* Loop with compare_and_exchange until we guess the correct value. | |
5290 | Normally "expr" will be an expression using __old and __value. */ | |
5291 | -#define __atomic_update_cmpxchg(mem, value, expr) \ | |
5292 | +#define __arch_atomic_update_cmpxchg(mem, value, expr) \ | |
5293 | ({ \ | |
5294 | __typeof(value) __value = (value); \ | |
5295 | __typeof(*(mem)) *__mem = (mem), __old = *__mem, __guess; \ | |
5296 | do { \ | |
5297 | __guess = __old; \ | |
5298 | - __old = atomic_val_compare_and_exchange(__mem, __old, (expr)); \ | |
5299 | + __old = arch_atomic_val_compare_and_exchange(__mem, __old, (expr)); \ | |
5300 | } while (__builtin_expect(__old != __guess, 0)); \ | |
5301 | __old; \ | |
5302 | }) | |
5303 | @@ -189,14 +189,14 @@ | |
5304 | ||
5305 | /* Generic atomic op with 8- or 4-byte variant. | |
5306 | The _mask, _addend, and _expr arguments are ignored on tilegx. */ | |
5307 | -#define __atomic_update(mem, value, op, _mask, _addend, _expr) \ | |
5308 | +#define __arch_atomic_update(mem, value, op, _mask, _addend, _expr) \ | |
5309 | ({ \ | |
5310 | ((__typeof(*(mem))) \ | |
5311 | ((sizeof(*(mem)) == 8) ? (__typeof(*(mem)-*(mem)))__insn_##op( \ | |
5312 | (void *)(mem), (int64_t)(__typeof((value)-(value)))(value)) : \ | |
5313 | (sizeof(*(mem)) == 4) ? (int)__insn_##op##4( \ | |
5314 | (void *)(mem), (int32_t)(__typeof((value)-(value)))(value)) : \ | |
5315 | - __atomic_error_bad_argument_size())); \ | |
5316 | + __arch_atomic_error_bad_argument_size())); \ | |
5317 | }) | |
5318 | ||
5319 | #else | |
5320 | @@ -211,7 +211,7 @@ | |
5321 | Only 32-bit support is provided. */ | |
5322 | static __inline __attribute__ ((always_inline)) | |
5323 | int | |
5324 | - __atomic_update_4 (volatile int *mem, int mask, int addend) | |
5325 | + __arch_atomic_update_4 (volatile int *mem, int mask, int addend) | |
5326 | { | |
5327 | int result; | |
5328 | __asm__ __volatile__ ("swint1":"=R00" (result), | |
5329 | @@ -224,48 +224,55 @@ | |
5330 | ||
5331 | /* Generic atomic op with 8- or 4-byte variant. | |
5332 | The _op argument is ignored on tilepro. */ | |
5333 | -#define __atomic_update(mem, value, _op, mask, addend, expr) \ | |
5334 | +#define __arch_atomic_update(mem, value, _op, mask, addend, expr) \ | |
5335 | ({ \ | |
5336 | (__typeof(*(mem)))(__typeof(*(mem)-*(mem))) \ | |
5337 | ((sizeof(*(mem)) == 8) ? \ | |
5338 | - __atomic_update_cmpxchg((mem), (value), (expr)) : \ | |
5339 | + __arch_atomic_update_cmpxchg((mem), (value), (expr)) : \ | |
5340 | (sizeof(*(mem)) == 4) ? \ | |
5341 | - __atomic_update_4((volatile int*)(mem), (__typeof((mask)-(mask)))(mask), \ | |
5342 | - (__typeof((addend)-(addend)))(addend)) : \ | |
5343 | - __atomic_error_bad_argument_size()); \ | |
5344 | + __arch_atomic_update_4((volatile int*)(mem), \ | |
5345 | + (__typeof((mask)-(mask)))(mask), \ | |
5346 | + (__typeof((addend)-(addend)))(addend)) : \ | |
5347 | + __arch_atomic_error_bad_argument_size()); \ | |
5348 | }) | |
5349 | ||
5350 | #endif /* __tilegx__ */ | |
5351 | ||
5352 | ||
5353 | -#define atomic_exchange(mem, newvalue) \ | |
5354 | - __atomic_update(mem, newvalue, exch, 0, newvalue, __value) | |
5355 | +#define arch_atomic_exchange(mem, newvalue) \ | |
5356 | + __arch_atomic_update(mem, newvalue, exch, 0, newvalue, __value) | |
5357 | ||
5358 | -#define atomic_add(mem, value) \ | |
5359 | - __atomic_update(mem, value, fetchadd, -1, value, __old + __value) | |
5360 | +#define arch_atomic_add(mem, value) \ | |
5361 | + __arch_atomic_update(mem, value, fetchadd, -1, value, __old + __value) | |
5362 | ||
5363 | -#define atomic_sub(mem, value) atomic_add((mem), -(value)) | |
5364 | +#define arch_atomic_sub(mem, value) arch_atomic_add((mem), -(value)) | |
5365 | ||
5366 | -#define atomic_increment(mem) atomic_add((mem), 1) | |
5367 | +#define arch_atomic_increment(mem) arch_atomic_add((mem), 1) | |
5368 | ||
5369 | -#define atomic_decrement(mem) atomic_add((mem), -1) | |
5370 | +#define arch_atomic_decrement(mem) arch_atomic_add((mem), -1) | |
5371 | ||
5372 | -#define atomic_and(mem, mask) \ | |
5373 | - __atomic_update(mem, mask, fetchand, mask, 0, __old & __value) | |
5374 | +#define arch_atomic_and(mem, mask) \ | |
5375 | + __arch_atomic_update(mem, mask, fetchand, mask, 0, __old & __value) | |
5376 | ||
5377 | -#define atomic_or(mem, mask) \ | |
5378 | - __atomic_update(mem, mask, fetchor, ~mask, mask, __old | __value) | |
5379 | +#define arch_atomic_or(mem, mask) \ | |
5380 | + __arch_atomic_update(mem, mask, fetchor, ~mask, mask, __old | __value) | |
5381 | ||
5382 | -#define atomic_bit_set(mem, bit) \ | |
5383 | +#define arch_atomic_xor(mem, mask) \ | |
5384 | + __arch_atomic_update_cmpxchg(mem, mask, __old ^ __value) | |
5385 | + | |
5386 | +#define arch_atomic_nand(mem, mask) \ | |
5387 | + __arch_atomic_update_cmpxchg(mem, mask, ~(__old & __value)) | |
5388 | + | |
5389 | +#define arch_atomic_bit_set(mem, bit) \ | |
5390 | ({ \ | |
5391 | __typeof(*(mem)) __mask = (__typeof(*(mem)))1 << (bit); \ | |
5392 | - __mask & atomic_or((mem), __mask); \ | |
5393 | + __mask & arch_atomic_or((mem), __mask); \ | |
5394 | }) | |
5395 | ||
5396 | -#define atomic_bit_clear(mem, bit) \ | |
5397 | +#define arch_atomic_bit_clear(mem, bit) \ | |
5398 | ({ \ | |
5399 | __typeof(*(mem)) __mask = (__typeof(*(mem)))1 << (bit); \ | |
5400 | - __mask & atomic_and((mem), ~__mask); \ | |
5401 | + __mask & arch_atomic_and((mem), ~__mask); \ | |
5402 | }) | |
5403 | ||
5404 | #ifdef __tilegx__ | |
5405 | @@ -275,9 +282,9 @@ | |
5406 | This accessor is provided for compatibility with TILEPro, which | |
5407 | required an explicit atomic operation for stores that needed | |
5408 | to be atomic with respect to other atomic methods in this header. */ | |
5409 | -#define atomic_write(mem, value) ((void) (*(mem) = (value))) | |
5410 | +#define arch_atomic_write(mem, value) ((void) (*(mem) = (value))) | |
5411 | #else | |
5412 | -#define atomic_write(mem, value) \ | |
5413 | +#define arch_atomic_write(mem, value) \ | |
5414 | do { \ | |
5415 | __typeof(mem) __aw_mem = (mem); \ | |
5416 | __typeof(value) __aw_val = (value); \ | |
5417 | @@ -285,26 +292,26 @@ | |
5418 | __aw_intval = (__typeof((value) - (value)))__aw_val; \ | |
5419 | switch (sizeof(*__aw_mem)) { \ | |
5420 | case 8: \ | |
5421 | - __atomic_update_cmpxchg(__aw_mem, __aw_val, __value); \ | |
5422 | + __arch_atomic_update_cmpxchg(__aw_mem, __aw_val, __value); \ | |
5423 | break; \ | |
5424 | case 4: \ | |
5425 | - __atomic_update_4((int *)__aw_mem, 0, __aw_intval); \ | |
5426 | + __arch_atomic_update_4((int *)__aw_mem, 0, __aw_intval); \ | |
5427 | break; \ | |
5428 | case 2: \ | |
5429 | __aw_off = 8 * ((long)__aw_mem & 0x2); \ | |
5430 | __aw_mask = 0xffffU << __aw_off; \ | |
5431 | __aw_mem32 = (unsigned int *)((long)__aw_mem & ~0x2); \ | |
5432 | __aw_val32 = (__aw_intval << __aw_off) & __aw_mask; \ | |
5433 | - __atomic_update_cmpxchg(__aw_mem32, __aw_val32, \ | |
5434 | - (__old & ~__aw_mask) | __value); \ | |
5435 | + __arch_atomic_update_cmpxchg(__aw_mem32, __aw_val32, \ | |
5436 | + (__old & ~__aw_mask) | __value); \ | |
5437 | break; \ | |
5438 | case 1: \ | |
5439 | __aw_off = 8 * ((long)__aw_mem & 0x3); \ | |
5440 | __aw_mask = 0xffU << __aw_off; \ | |
5441 | __aw_mem32 = (unsigned int *)((long)__aw_mem & ~0x3); \ | |
5442 | __aw_val32 = (__aw_intval << __aw_off) & __aw_mask; \ | |
5443 | - __atomic_update_cmpxchg(__aw_mem32, __aw_val32, \ | |
5444 | - (__old & ~__aw_mask) | __value); \ | |
5445 | + __arch_atomic_update_cmpxchg(__aw_mem32, __aw_val32, \ | |
5446 | + (__old & ~__aw_mask) | __value); \ | |
5447 | break; \ | |
5448 | } \ | |
5449 | } while (0) | |
5450 | @@ -315,15 +322,15 @@ | |
5451 | This macro prevents loads or stores from being moved by the compiler | |
5452 | across the macro. Any loaded value that was loaded before this | |
5453 | macro must then be reloaded by the compiler. */ | |
5454 | -#define atomic_compiler_barrier() __asm__ __volatile__("" ::: "memory") | |
5455 | +#define arch_atomic_compiler_barrier() __asm__ __volatile__("" ::: "memory") | |
5456 | ||
5457 | /* Full memory barrier. | |
5458 | ||
5459 | - This macro has the semantics of atomic_compiler_barrer(), but also | |
5460 | + This macro has the semantics of arch_atomic_compiler_barrer(), but also | |
5461 | ensures that previous stores are visible to other cores, and that | |
5462 | all previous loaded values have been placed into their target | |
5463 | register on this core. */ | |
5464 | -#define atomic_full_barrier() __insn_mf() | |
5465 | +#define arch_atomic_full_barrier() __insn_mf() | |
5466 | ||
5467 | /* Read memory barrier. | |
5468 | ||
5469 | @@ -335,9 +342,9 @@ | |
5470 | On current TILE chips a read barrier is implemented as a full barrier, | |
5471 | but this may not be true in later versions of the architecture. | |
5472 | ||
5473 | - See also atomic_acquire_barrier() for the appropriate idiom to use | |
5474 | + See also arch_atomic_acquire_barrier() for the appropriate idiom to use | |
5475 | to ensure no reads are lifted above an atomic lock instruction. */ | |
5476 | -#define atomic_read_barrier() atomic_full_barrier() | |
5477 | +#define arch_atomic_read_barrier() arch_atomic_full_barrier() | |
5478 | ||
5479 | /* Write memory barrier. | |
5480 | ||
5481 | @@ -349,9 +356,9 @@ | |
5482 | On current TILE chips a write barrier is implemented as a full barrier, | |
5483 | but this may not be true in later versions of the architecture. | |
5484 | ||
5485 | - See also atomic_release_barrier() for the appropriate idiom to use | |
5486 | + See also arch_atomic_release_barrier() for the appropriate idiom to use | |
5487 | to ensure all writes are complete prior to an atomic unlock instruction. */ | |
5488 | -#define atomic_write_barrier() atomic_full_barrier() | |
5489 | +#define arch_atomic_write_barrier() arch_atomic_full_barrier() | |
5490 | ||
5491 | /* Lock acquisition barrier. | |
5492 | ||
5493 | @@ -367,10 +374,10 @@ | |
5494 | This should be done after the atomic operation that actually | |
5495 | acquires the lock, and in conjunction with a "control dependency" | |
5496 | that checks the atomic operation result to see if the lock was | |
5497 | - in fact acquired. See the atomic_read_barrier() macro | |
5498 | + in fact acquired. See the arch_atomic_read_barrier() macro | |
5499 | for a heavier-weight barrier to use in certain unusual constructs, | |
5500 | - or atomic_acquire_barrier_value() if no control dependency exists. */ | |
5501 | -#define atomic_acquire_barrier() atomic_compiler_barrier() | |
5502 | + or arch_atomic_acquire_barrier_value() if no control dependency exists. */ | |
5503 | +#define arch_atomic_acquire_barrier() arch_atomic_compiler_barrier() | |
5504 | ||
5505 | /* Lock release barrier. | |
5506 | ||
5507 | @@ -383,7 +390,7 @@ | |
5508 | for locking, that is, when leaving a critical section. This should | |
5509 | be done before the operation (such as a store of zero) that | |
5510 | actually releases the lock. */ | |
5511 | -#define atomic_release_barrier() atomic_write_barrier() | |
5512 | +#define arch_atomic_release_barrier() arch_atomic_write_barrier() | |
5513 | ||
5514 | /* Barrier until the read of a particular value is complete. | |
5515 | ||
5516 | @@ -400,7 +407,7 @@ | |
5517 | atomic instruction, even if the value itself is not checked. This | |
5518 | guarantees that if the atomic instruction succeeded in taking the lock, | |
5519 | the lock was held before any reads in the critical section issued. */ | |
5520 | -#define atomic_acquire_barrier_value(val) \ | |
5521 | +#define arch_atomic_acquire_barrier_value(val) \ | |
5522 | __asm__ __volatile__("move %0, %0" :: "r"(val)) | |
5523 | ||
5524 | /* Access the given variable in memory exactly once. | |
5525 | @@ -421,8 +428,9 @@ | |
5526 | ||
5527 | Note that multiple uses of this macro are guaranteed to be ordered, | |
5528 | i.e. the compiler will not reorder stores or loads that are wrapped | |
5529 | - in atomic_access_once(). */ | |
5530 | -#define atomic_access_once(x) (*(volatile __typeof(x) *)&(x)) | |
5531 | + in arch_atomic_access_once(). */ | |
5532 | +#define arch_atomic_access_once(x) (*(volatile __typeof(x) *)&(x)) | |
5533 | ||
5534 | ||
5535 | + | |
5536 | #endif /* !_ATOMIC_H_ */ | |
5537 | Index: libgcc/config/tilepro/linux-unwind.h | |
5538 | =================================================================== | |
5539 | --- libgcc/config/tilepro/linux-unwind.h (.../tags/gcc_4_7_0_release) (wersja 187293) | |
5540 | +++ libgcc/config/tilepro/linux-unwind.h (.../branches/gcc-4_7-branch) (wersja 187293) | |
5541 | @@ -61,7 +61,7 @@ | |
5542 | ||
5543 | struct rt_sigframe { | |
5544 | unsigned char save_area[C_ABI_SAVE_AREA_SIZE]; | |
5545 | - struct siginfo info; | |
5546 | + siginfo_t info; | |
5547 | struct ucontext uc; | |
5548 | } *rt_; | |
5549 | ||
5550 | Index: libgcc/config/tilepro/atomic.c | |
5551 | =================================================================== | |
5552 | --- libgcc/config/tilepro/atomic.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
5553 | +++ libgcc/config/tilepro/atomic.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
5554 | @@ -63,18 +63,12 @@ | |
5555 | ||
5556 | #define __unused __attribute__((unused)) | |
5557 | ||
5558 | -/* Provide additional methods not implemented by atomic.h. */ | |
5559 | -#define atomic_xor(mem, mask) \ | |
5560 | - __atomic_update_cmpxchg(mem, mask, __old ^ __value) | |
5561 | -#define atomic_nand(mem, mask) \ | |
5562 | - __atomic_update_cmpxchg(mem, mask, ~(__old & __value)) | |
5563 | - | |
5564 | #define __atomic_fetch_and_do(type, size, opname) \ | |
5565 | type \ | |
5566 | __atomic_fetch_##opname##_##size(type* p, type i, int model) \ | |
5567 | { \ | |
5568 | pre_atomic_barrier(model); \ | |
5569 | - type rv = atomic_##opname(p, i); \ | |
5570 | + type rv = arch_atomic_##opname(p, i); \ | |
5571 | post_atomic_barrier(model); \ | |
5572 | return rv; \ | |
5573 | } | |
5574 | @@ -96,7 +90,7 @@ | |
5575 | __atomic_##opname##_fetch_##size(type* p, type i, int model) \ | |
5576 | { \ | |
5577 | pre_atomic_barrier(model); \ | |
5578 | - type rv = atomic_##opname(p, i) op i; \ | |
5579 | + type rv = arch_atomic_##opname(p, i) op i; \ | |
5580 | post_atomic_barrier(model); \ | |
5581 | return rv; \ | |
5582 | } | |
5583 | @@ -120,7 +114,7 @@ | |
5584 | { \ | |
5585 | type oldval = *oldvalp; \ | |
5586 | pre_atomic_barrier(models); \ | |
5587 | - type retval = atomic_val_compare_and_exchange(ptr, oldval, newval); \ | |
5588 | + type retval = arch_atomic_val_compare_and_exchange(ptr, oldval, newval); \ | |
5589 | post_atomic_barrier(models); \ | |
5590 | bool success = (retval == oldval); \ | |
5591 | *oldvalp = retval; \ | |
5592 | @@ -131,7 +125,7 @@ | |
5593 | __atomic_exchange_##size(volatile type* ptr, type val, int model) \ | |
5594 | { \ | |
5595 | pre_atomic_barrier(model); \ | |
5596 | - type retval = atomic_exchange(ptr, val); \ | |
5597 | + type retval = arch_atomic_exchange(ptr, val); \ | |
5598 | post_atomic_barrier(model); \ | |
5599 | return retval; \ | |
5600 | } | |
5601 | @@ -159,7 +153,7 @@ | |
5602 | type oldval = (oldword >> shift) & valmask; \ | |
5603 | if (__builtin_expect((oldval == *guess), 1)) { \ | |
5604 | unsigned int word = (oldword & bgmask) | ((val & valmask) << shift); \ | |
5605 | - oldword = atomic_val_compare_and_exchange(p, oldword, word); \ | |
5606 | + oldword = arch_atomic_val_compare_and_exchange(p, oldword, word); \ | |
5607 | oldval = (oldword >> shift) & valmask; \ | |
5608 | } \ | |
5609 | post_atomic_barrier(models); \ | |
5610 | @@ -187,7 +181,7 @@ | |
5611 | oldval = (oldword >> shift) & valmask; \ | |
5612 | val = expr; \ | |
5613 | unsigned int word = (oldword & bgmask) | ((val & valmask) << shift); \ | |
5614 | - xword = atomic_val_compare_and_exchange(p, oldword, word); \ | |
5615 | + xword = arch_atomic_val_compare_and_exchange(p, oldword, word); \ | |
5616 | } while (__builtin_expect(xword != oldword, 0)); \ | |
5617 | bottom \ | |
5618 | } | |
5619 | Index: libgcc/config/avr/lib1funcs.S | |
5620 | =================================================================== | |
5621 | --- libgcc/config/avr/lib1funcs.S (.../tags/gcc_4_7_0_release) (wersja 187293) | |
5622 | +++ libgcc/config/avr/lib1funcs.S (.../branches/gcc-4_7-branch) (wersja 187293) | |
5623 | @@ -25,7 +25,9 @@ | |
5624 | #define __zero_reg__ r1 | |
5625 | #define __tmp_reg__ r0 | |
5626 | #define __SREG__ 0x3f | |
5627 | +#if defined (__AVR_HAVE_SPH__) | |
5628 | #define __SP_H__ 0x3e | |
5629 | +#endif | |
5630 | #define __SP_L__ 0x3d | |
5631 | #define __RAMPZ__ 0x3B | |
5632 | #define __EIND__ 0x3C | |
5633 | @@ -1258,7 +1260,7 @@ | |
5634 | ||
5635 | #if defined (__AVR_HAVE_JMP_CALL__) | |
5636 | # define SPEED_DIV 8 | |
5637 | -#elif defined (__AVR_HAVE_MOVW__) && !defined (__AVR_HAVE_8BIT_SP__) | |
5638 | +#elif defined (__AVR_HAVE_MOVW__) && defined (__AVR_HAVE_SPH__) | |
5639 | # define SPEED_DIV 16 | |
5640 | #else | |
5641 | # define SPEED_DIV 0 | |
5642 | @@ -1540,10 +1542,10 @@ | |
5643 | ||
5644 | 4: ;; Epilogue: Restore the Z = 12 Registers and return | |
5645 | in r28, __SP_L__ | |
5646 | -#if defined (__AVR_HAVE_8BIT_SP__) | |
5647 | +#if defined (__AVR_HAVE_SPH__) | |
5648 | + in r29, __SP_H__ | |
5649 | +#else | |
5650 | clr r29 | |
5651 | -#else | |
5652 | - in r29, __SP_H__ | |
5653 | #endif /* #SP = 8/16 */ | |
5654 | ldi r30, 12 | |
5655 | XJMP __epilogue_restores__ + ((18 - 12) * 2) | |
5656 | @@ -1691,7 +1693,7 @@ | |
5657 | push r17 | |
5658 | push r28 | |
5659 | push r29 | |
5660 | -#if defined (__AVR_HAVE_8BIT_SP__) | |
5661 | +#if !defined (__AVR_HAVE_SPH__) | |
5662 | in r28,__SP_L__ | |
5663 | sub r28,r26 | |
5664 | out __SP_L__,r28 | |
5665 | @@ -1747,7 +1749,7 @@ | |
5666 | ldd r16,Y+4 | |
5667 | ldd r17,Y+3 | |
5668 | ldd r26,Y+2 | |
5669 | -#if defined (__AVR_HAVE_8BIT_SP__) | |
5670 | +#if !defined (__AVR_HAVE_SPH__) | |
5671 | ldd r29,Y+1 | |
5672 | add r28,r30 | |
5673 | out __SP_L__,r28 | |
5674 | @@ -1893,6 +1895,10 @@ | |
5675 | cpc r27, r17 | |
5676 | brne .L__do_copy_data_loop | |
5677 | #endif /* !defined(__AVR_HAVE_ELPMX__) && !defined(__AVR_HAVE_ELPM__) */ | |
5678 | +#if defined (__AVR_HAVE_ELPM__) && defined (__AVR_HAVE_RAMPD__) | |
5679 | + ;; Reset RAMPZ to 0 so that EBI devices don't read garbage from RAM | |
5680 | + out __RAMPZ__, __zero_reg__ | |
5681 | +#endif /* ELPM && RAMPD */ | |
5682 | ENDF __do_copy_data | |
5683 | #endif /* L_copy_data */ | |
5684 | ||
5685 | @@ -1920,7 +1926,7 @@ | |
5686 | #ifdef L_ctors | |
5687 | .section .init6,"ax",@progbits | |
5688 | DEFUN __do_global_ctors | |
5689 | -#if defined(__AVR_HAVE_RAMPZ__) | |
5690 | +#if defined(__AVR_HAVE_ELPM__) | |
5691 | ldi r17, hi8(__ctors_start) | |
5692 | ldi r28, lo8(__ctors_end) | |
5693 | ldi r29, hi8(__ctors_end) | |
5694 | @@ -1953,14 +1959,14 @@ | |
5695 | cpi r28, lo8(__ctors_start) | |
5696 | cpc r29, r17 | |
5697 | brne .L__do_global_ctors_loop | |
5698 | -#endif /* defined(__AVR_HAVE_RAMPZ__) */ | |
5699 | +#endif /* defined(__AVR_HAVE_ELPM__) */ | |
5700 | ENDF __do_global_ctors | |
5701 | #endif /* L_ctors */ | |
5702 | ||
5703 | #ifdef L_dtors | |
5704 | .section .fini6,"ax",@progbits | |
5705 | DEFUN __do_global_dtors | |
5706 | -#if defined(__AVR_HAVE_RAMPZ__) | |
5707 | +#if defined(__AVR_HAVE_ELPM__) | |
5708 | ldi r17, hi8(__dtors_end) | |
5709 | ldi r28, lo8(__dtors_start) | |
5710 | ldi r29, hi8(__dtors_start) | |
5711 | @@ -1993,7 +1999,7 @@ | |
5712 | cpi r28, lo8(__dtors_end) | |
5713 | cpc r29, r17 | |
5714 | brne .L__do_global_dtors_loop | |
5715 | -#endif /* defined(__AVR_HAVE_RAMPZ__) */ | |
5716 | +#endif /* defined(__AVR_HAVE_ELPM__) */ | |
5717 | ENDF __do_global_dtors | |
5718 | #endif /* L_dtors */ | |
5719 | ||
5720 | @@ -2001,18 +2007,21 @@ | |
5721 | ||
5722 | #ifdef L_tablejump_elpm | |
5723 | DEFUN __tablejump_elpm__ | |
5724 | -#if defined (__AVR_HAVE_ELPM__) | |
5725 | -#if defined (__AVR_HAVE_LPMX__) | |
5726 | +#if defined (__AVR_HAVE_ELPMX__) | |
5727 | elpm __tmp_reg__, Z+ | |
5728 | elpm r31, Z | |
5729 | mov r30, __tmp_reg__ | |
5730 | +#if defined (__AVR_HAVE_RAMPD__) | |
5731 | + ;; Reset RAMPZ to 0 so that EBI devices don't read garbage from RAM | |
5732 | + out __RAMPZ__, __zero_reg__ | |
5733 | +#endif /* RAMPD */ | |
5734 | #if defined (__AVR_HAVE_EIJMP_EICALL__) | |
5735 | eijmp | |
5736 | #else | |
5737 | ijmp | |
5738 | #endif | |
5739 | ||
5740 | -#else | |
5741 | +#elif defined (__AVR_HAVE_ELPM__) | |
5742 | elpm | |
5743 | adiw r30, 1 | |
5744 | push r0 | |
5745 | @@ -2024,7 +2033,6 @@ | |
5746 | #endif | |
5747 | ret | |
5748 | #endif | |
5749 | -#endif /* defined (__AVR_HAVE_ELPM__) */ | |
5750 | ENDF __tablejump_elpm__ | |
5751 | #endif /* defined (L_tablejump_elpm) */ | |
5752 | ||
5753 | @@ -2114,11 +2122,18 @@ | |
5754 | adiw r30, 1 | |
5755 | .endif | |
5756 | #endif | |
5757 | +#if defined (__AVR_HAVE_ELPM__) && defined (__AVR_HAVE_RAMPD__) | |
5758 | +.if \dest == D0+\n-1 | |
5759 | + ;; Reset RAMPZ to 0 so that EBI devices don't read garbage from RAM | |
5760 | + out __RAMPZ__, __zero_reg__ | |
5761 | +.endif | |
5762 | +#endif | |
5763 | .endm ; .xload | |
5764 | ||
5765 | #if defined (L_xload_1) | |
5766 | DEFUN __xload_1 | |
5767 | -#if defined (__AVR_HAVE_LPMX__) && !defined (__AVR_HAVE_RAMPZ__) | |
5768 | +#if defined (__AVR_HAVE_LPMX__) && !defined (__AVR_HAVE_ELPM__) | |
5769 | + sbrc HHI8, 7 | |
5770 | ld D0, Z | |
5771 | sbrs HHI8, 7 | |
5772 | lpm D0, Z | |
5773 | @@ -2126,14 +2141,14 @@ | |
5774 | #else | |
5775 | sbrc HHI8, 7 | |
5776 | rjmp 1f | |
5777 | -#if defined (__AVR_HAVE_RAMPZ__) | |
5778 | +#if defined (__AVR_HAVE_ELPM__) | |
5779 | out __RAMPZ__, HHI8 | |
5780 | -#endif /* __AVR_HAVE_RAMPZ__ */ | |
5781 | +#endif /* __AVR_HAVE_ELPM__ */ | |
5782 | .xload D0, 1 | |
5783 | ret | |
5784 | 1: ld D0, Z | |
5785 | ret | |
5786 | -#endif /* LPMx && ! RAMPZ */ | |
5787 | +#endif /* LPMx && ! ELPM */ | |
5788 | ENDF __xload_1 | |
5789 | #endif /* L_xload_1 */ | |
5790 | ||
5791 | @@ -2141,9 +2156,9 @@ | |
5792 | DEFUN __xload_2 | |
5793 | sbrc HHI8, 7 | |
5794 | rjmp 1f | |
5795 | -#if defined (__AVR_HAVE_RAMPZ__) | |
5796 | +#if defined (__AVR_HAVE_ELPM__) | |
5797 | out __RAMPZ__, HHI8 | |
5798 | -#endif /* __AVR_HAVE_RAMPZ__ */ | |
5799 | +#endif /* __AVR_HAVE_ELPM__ */ | |
5800 | .xload D0, 2 | |
5801 | .xload D1, 2 | |
5802 | ret | |
5803 | @@ -2157,9 +2172,9 @@ | |
5804 | DEFUN __xload_3 | |
5805 | sbrc HHI8, 7 | |
5806 | rjmp 1f | |
5807 | -#if defined (__AVR_HAVE_RAMPZ__) | |
5808 | +#if defined (__AVR_HAVE_ELPM__) | |
5809 | out __RAMPZ__, HHI8 | |
5810 | -#endif /* __AVR_HAVE_RAMPZ__ */ | |
5811 | +#endif /* __AVR_HAVE_ELPM__ */ | |
5812 | .xload D0, 3 | |
5813 | .xload D1, 3 | |
5814 | .xload D2, 3 | |
5815 | @@ -2175,9 +2190,9 @@ | |
5816 | DEFUN __xload_4 | |
5817 | sbrc HHI8, 7 | |
5818 | rjmp 1f | |
5819 | -#if defined (__AVR_HAVE_RAMPZ__) | |
5820 | +#if defined (__AVR_HAVE_ELPM__) | |
5821 | out __RAMPZ__, HHI8 | |
5822 | -#endif /* __AVR_HAVE_RAMPZ__ */ | |
5823 | +#endif /* __AVR_HAVE_ELPM__ */ | |
5824 | .xload D0, 4 | |
5825 | .xload D1, 4 | |
5826 | .xload D2, 4 | |
5827 | @@ -2219,7 +2234,7 @@ | |
5828 | ||
5829 | ;; Read from Flash | |
5830 | ||
5831 | -#if defined (__AVR_HAVE_RAMPZ__) | |
5832 | +#if defined (__AVR_HAVE_ELPM__) | |
5833 | out __RAMPZ__, HHI8 | |
5834 | #endif | |
5835 | ||
5836 | @@ -2243,6 +2258,10 @@ | |
5837 | st X+, r0 | |
5838 | sbiw LOOP, 1 | |
5839 | brne 0b | |
5840 | +#if defined (__AVR_HAVE_ELPM__) && defined (__AVR_HAVE_RAMPD__) | |
5841 | + ;; Reset RAMPZ to 0 so that EBI devices don't read garbage from RAM | |
5842 | + out __RAMPZ__, __zero_reg__ | |
5843 | +#endif /* ELPM && RAMPD */ | |
5844 | ret | |
5845 | ||
5846 | ;; Read from RAM | |
5847 | @@ -2252,7 +2271,7 @@ | |
5848 | ;; and store that Byte to RAM Destination | |
5849 | st X+, r0 | |
5850 | sbiw LOOP, 1 | |
5851 | - brne 0b | |
5852 | + brne 1b | |
5853 | ret | |
5854 | ENDF __movmemx_hi | |
5855 | ||
5856 | Index: libgcc/config/pa/linux-unwind.h | |
5857 | =================================================================== | |
5858 | --- libgcc/config/pa/linux-unwind.h (.../tags/gcc_4_7_0_release) (wersja 187293) | |
5859 | +++ libgcc/config/pa/linux-unwind.h (.../branches/gcc-4_7-branch) (wersja 187293) | |
5860 | @@ -1,5 +1,5 @@ | |
5861 | /* DWARF2 EH unwinding support for PA Linux. | |
5862 | - Copyright (C) 2004, 2005, 2009 Free Software Foundation, Inc. | |
5863 | + Copyright (C) 2004, 2005, 2009, 2012 Free Software Foundation, Inc. | |
5864 | ||
5865 | This file is part of GCC. | |
5866 | ||
5867 | @@ -63,7 +63,7 @@ | |
5868 | int i; | |
5869 | struct sigcontext *sc; | |
5870 | struct rt_sigframe { | |
5871 | - struct siginfo info; | |
5872 | + siginfo_t info; | |
5873 | struct ucontext uc; | |
5874 | } *frame; | |
5875 | ||
5876 | Index: libgcc/config/xtensa/linux-unwind.h | |
5877 | =================================================================== | |
5878 | --- libgcc/config/xtensa/linux-unwind.h (.../tags/gcc_4_7_0_release) (wersja 187293) | |
5879 | +++ libgcc/config/xtensa/linux-unwind.h (.../branches/gcc-4_7-branch) (wersja 187293) | |
5880 | @@ -1,5 +1,5 @@ | |
5881 | /* DWARF2 EH unwinding support for Xtensa. | |
5882 | - Copyright (C) 2008, 2009 Free Software Foundation, Inc. | |
5883 | + Copyright (C) 2008, 2009, 2012 Free Software Foundation, Inc. | |
5884 | ||
5885 | This file is part of GCC. | |
5886 | ||
5887 | @@ -62,7 +62,7 @@ | |
5888 | struct sigcontext *sc; | |
5889 | ||
5890 | struct rt_sigframe { | |
5891 | - struct siginfo info; | |
5892 | + siginfo_t info; | |
5893 | struct ucontext uc; | |
5894 | } *rt_; | |
5895 | ||
5896 | Index: libgcc/config/mips/linux-unwind.h | |
5897 | =================================================================== | |
5898 | --- libgcc/config/mips/linux-unwind.h (.../tags/gcc_4_7_0_release) (wersja 187293) | |
5899 | +++ libgcc/config/mips/linux-unwind.h (.../branches/gcc-4_7-branch) (wersja 187293) | |
5900 | @@ -1,5 +1,6 @@ | |
5901 | /* DWARF2 EH unwinding support for MIPS Linux. | |
5902 | - Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. | |
5903 | + Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2012 Free Software | |
5904 | + Foundation, Inc. | |
5905 | ||
5906 | This file is part of GCC. | |
5907 | ||
5908 | @@ -75,7 +76,7 @@ | |
5909 | struct rt_sigframe { | |
5910 | u_int32_t ass[4]; /* Argument save space for o32. */ | |
5911 | u_int32_t trampoline[2]; | |
5912 | - struct siginfo info; | |
5913 | + siginfo_t info; | |
5914 | _sig_ucontext_t uc; | |
5915 | } *rt_ = context->cfa; | |
5916 | sc = &rt_->uc.uc_mcontext; | |
5917 | Index: libgcc/config/bfin/linux-unwind.h | |
5918 | =================================================================== | |
5919 | --- libgcc/config/bfin/linux-unwind.h (.../tags/gcc_4_7_0_release) (wersja 187293) | |
5920 | +++ libgcc/config/bfin/linux-unwind.h (.../branches/gcc-4_7-branch) (wersja 187293) | |
5921 | @@ -1,5 +1,5 @@ | |
5922 | /* DWARF2 EH unwinding support for Blackfin. | |
5923 | - Copyright (C) 2007, 2009 Free Software Foundation, Inc. | |
5924 | + Copyright (C) 2007, 2009, 2012 Free Software Foundation, Inc. | |
5925 | ||
5926 | This file is part of GCC. | |
5927 | ||
5928 | @@ -48,10 +48,10 @@ | |
5929 | { | |
5930 | struct rt_sigframe { | |
5931 | int sig; | |
5932 | - struct siginfo *pinfo; | |
5933 | + siginfo_t *pinfo; | |
5934 | void *puc; | |
5935 | char retcode[8]; | |
5936 | - struct siginfo info; | |
5937 | + siginfo_t info; | |
5938 | struct ucontext uc; | |
5939 | } *rt_ = context->cfa; | |
5940 | ||
5941 | Index: gcc/tree-vrp.c | |
5942 | =================================================================== | |
5943 | --- gcc/tree-vrp.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
5944 | +++ gcc/tree-vrp.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
5945 | @@ -695,17 +695,22 @@ | |
5946 | /* If VAR is a default definition of a parameter, the variable can | |
5947 | take any value in VAR's type. */ | |
5948 | sym = SSA_NAME_VAR (var); | |
5949 | - if (SSA_NAME_IS_DEFAULT_DEF (var) | |
5950 | - && TREE_CODE (sym) == PARM_DECL) | |
5951 | + if (SSA_NAME_IS_DEFAULT_DEF (var)) | |
5952 | { | |
5953 | - /* Try to use the "nonnull" attribute to create ~[0, 0] | |
5954 | - anti-ranges for pointers. Note that this is only valid with | |
5955 | - default definitions of PARM_DECLs. */ | |
5956 | - if (POINTER_TYPE_P (TREE_TYPE (sym)) | |
5957 | - && nonnull_arg_p (sym)) | |
5958 | + if (TREE_CODE (sym) == PARM_DECL) | |
5959 | + { | |
5960 | + /* Try to use the "nonnull" attribute to create ~[0, 0] | |
5961 | + anti-ranges for pointers. Note that this is only valid with | |
5962 | + default definitions of PARM_DECLs. */ | |
5963 | + if (POINTER_TYPE_P (TREE_TYPE (sym)) | |
5964 | + && nonnull_arg_p (sym)) | |
5965 | + set_value_range_to_nonnull (vr, TREE_TYPE (sym)); | |
5966 | + else | |
5967 | + set_value_range_to_varying (vr); | |
5968 | + } | |
5969 | + else if (TREE_CODE (sym) == RESULT_DECL | |
5970 | + && DECL_BY_REFERENCE (sym)) | |
5971 | set_value_range_to_nonnull (vr, TREE_TYPE (sym)); | |
5972 | - else | |
5973 | - set_value_range_to_varying (vr); | |
5974 | } | |
5975 | ||
5976 | return vr; | |
5977 | Index: gcc/doc/extend.texi | |
5978 | =================================================================== | |
5979 | --- gcc/doc/extend.texi (.../tags/gcc_4_7_0_release) (wersja 187293) | |
5980 | +++ gcc/doc/extend.texi (.../branches/gcc-4_7-branch) (wersja 187293) | |
5981 | @@ -1311,18 +1311,18 @@ | |
5982 | #ifdef __FLASH | |
5983 | const __flash int var = 1; | |
5984 | ||
5985 | -int read_i (void) | |
5986 | +int read_var (void) | |
5987 | @{ | |
5988 | - return i; | |
5989 | + return var; | |
5990 | @} | |
5991 | #else | |
5992 | -#include <avr/pgmspace.h> /* From avr-libc */ | |
5993 | +#include <avr/pgmspace.h> /* From AVR-LibC */ | |
5994 | ||
5995 | const int var PROGMEM = 1; | |
5996 | ||
5997 | -int read_i (void) | |
5998 | +int read_var (void) | |
5999 | @{ | |
6000 | - return (int) pgm_read_word (&i); | |
6001 | + return (int) pgm_read_word (&var); | |
6002 | @} | |
6003 | #endif /* __FLASH */ | |
6004 | @end example | |
6005 | @@ -1332,7 +1332,8 @@ | |
6006 | accesses to these data will read from generic address space, i.e.@: | |
6007 | from RAM, | |
6008 | so that you need special accessors like @code{pgm_read_byte} | |
6009 | -from @w{@uref{http://nongnu.org/avr-libc/user-manual,avr-libc}}. | |
6010 | +from @w{@uref{http://nongnu.org/avr-libc/user-manual,AVR-LibC}} | |
6011 | +together with attribute @code{progmem}. | |
6012 | ||
6013 | @b{Limitations and caveats} | |
6014 | ||
6015 | @@ -1345,7 +1346,7 @@ | |
6016 | @code{__memx}. | |
6017 | ||
6018 | @item | |
6019 | -If you use one if the @code{__flash@var{N}} address spaces | |
6020 | +If you use one of the @code{__flash@var{N}} address spaces | |
6021 | you will have to arrange your linker skript to locate the | |
6022 | @code{.progmem@var{N}.data} sections according to your needs. | |
6023 | ||
6024 | @@ -4782,7 +4783,7 @@ | |
6025 | In order to read data located with the @code{progmem} attribute | |
6026 | (inline) assembler must be used. | |
6027 | @example | |
6028 | -/* Use custom macros from @w{@uref{http://nongnu.org/avr-libc/user-manual,avr-libc}} */ | |
6029 | +/* Use custom macros from @w{@uref{http://nongnu.org/avr-libc/user-manual,AVR-LibC}} */ | |
6030 | #include <avr/pgmspace.h> | |
6031 | ||
6032 | /* Locate var in flash memory */ | |
6033 | Index: gcc/doc/invoke.texi | |
6034 | =================================================================== | |
6035 | --- gcc/doc/invoke.texi (.../tags/gcc_4_7_0_release) (wersja 187293) | |
6036 | +++ gcc/doc/invoke.texi (.../branches/gcc-4_7-branch) (wersja 187293) | |
6037 | @@ -11085,8 +11085,7 @@ | |
6038 | ||
6039 | @item -mtiny-stack | |
6040 | @opindex mtiny-stack | |
6041 | -Only use the lower 8@tie{}bits of the stack pointer and assume that the high | |
6042 | -byte of SP is always zero. | |
6043 | +Only change the lower 8@tie{}bits of the stack pointer. | |
6044 | @end table | |
6045 | ||
6046 | @subsubsection @code{EIND} and Devices with more than 128 Ki Bytes of Flash | |
6047 | Index: gcc/doc/install.texi | |
6048 | =================================================================== | |
6049 | --- gcc/doc/install.texi (.../tags/gcc_4_7_0_release) (wersja 187293) | |
6050 | +++ gcc/doc/install.texi (.../branches/gcc-4_7-branch) (wersja 187293) | |
6051 | @@ -1238,7 +1238,7 @@ | |
6052 | ||
6053 | @item --with-llsc | |
6054 | On MIPS targets, make @option{-mllsc} the default when no | |
6055 | -@option{-mno-lsc} option is passed. This is the default for | |
6056 | +@option{-mno-llsc} option is passed. This is the default for | |
6057 | Linux-based targets, as the kernel will emulate them if the ISA does | |
6058 | not provide them. | |
6059 | ||
6060 | Index: gcc/godump.c | |
6061 | =================================================================== | |
6062 | --- gcc/godump.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
6063 | +++ gcc/godump.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
6064 | @@ -1024,12 +1024,25 @@ | |
6065 | fprintf (go_dump_file, "type _%s ", | |
6066 | IDENTIFIER_POINTER (DECL_NAME (decl))); | |
6067 | go_output_type (container); | |
6068 | + | |
6069 | + if (RECORD_OR_UNION_TYPE_P (TREE_TYPE (decl))) | |
6070 | + { | |
6071 | + HOST_WIDE_INT size = int_size_in_bytes (TREE_TYPE (decl)); | |
6072 | + | |
6073 | + if (size > 0) | |
6074 | + fprintf (go_dump_file, | |
6075 | + "\nconst _sizeof_%s = " HOST_WIDE_INT_PRINT_DEC, | |
6076 | + IDENTIFIER_POINTER (DECL_NAME (decl)), | |
6077 | + size); | |
6078 | + } | |
6079 | + | |
6080 | pointer_set_insert (container->decls_seen, decl); | |
6081 | } | |
6082 | else if (RECORD_OR_UNION_TYPE_P (TREE_TYPE (decl))) | |
6083 | { | |
6084 | void **slot; | |
6085 | const char *type; | |
6086 | + HOST_WIDE_INT size; | |
6087 | ||
6088 | type = IDENTIFIER_POINTER (TYPE_NAME (TREE_TYPE ((decl)))); | |
6089 | /* If type defined already, skip. */ | |
6090 | @@ -1047,6 +1060,13 @@ | |
6091 | fprintf (go_dump_file, "type _%s ", | |
6092 | IDENTIFIER_POINTER (TYPE_NAME (TREE_TYPE (decl)))); | |
6093 | go_output_type (container); | |
6094 | + | |
6095 | + size = int_size_in_bytes (TREE_TYPE (decl)); | |
6096 | + if (size > 0) | |
6097 | + fprintf (go_dump_file, | |
6098 | + "\nconst _sizeof_%s = " HOST_WIDE_INT_PRINT_DEC, | |
6099 | + IDENTIFIER_POINTER (TYPE_NAME (TREE_TYPE (decl))), | |
6100 | + size); | |
6101 | } | |
6102 | else | |
6103 | return; | |
6104 | Index: gcc/lto-symtab.c | |
6105 | =================================================================== | |
6106 | --- gcc/lto-symtab.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
6107 | +++ gcc/lto-symtab.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
6108 | @@ -215,8 +215,8 @@ | |
6109 | { | |
6110 | fprintf (cgraph_dump_file, "Replacing cgraph node %s/%i by %s/%i" | |
6111 | " for symbol %s\n", | |
6112 | - cgraph_node_name (node), node->uid, | |
6113 | - cgraph_node_name (prevailing_node), | |
6114 | + xstrdup (cgraph_node_name (node)), node->uid, | |
6115 | + xstrdup (cgraph_node_name (prevailing_node)), | |
6116 | prevailing_node->uid, | |
6117 | IDENTIFIER_POINTER ((*targetm.asm_out.mangle_assembler_name) | |
6118 | (IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (node->decl))))); | |
6119 | Index: gcc/tree-ssa-tail-merge.c | |
6120 | =================================================================== | |
6121 | --- gcc/tree-ssa-tail-merge.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
6122 | +++ gcc/tree-ssa-tail-merge.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
6123 | @@ -1123,18 +1123,31 @@ | |
6124 | } | |
6125 | } | |
6126 | ||
6127 | -/* Let GSI skip backwards over local defs. */ | |
6128 | +/* Let GSI skip backwards over local defs. Return the earliest vuse in VUSE. | |
6129 | + Return true in VUSE_ESCAPED if the vuse influenced a SSA_OP_DEF of one of the | |
6130 | + processed statements. */ | |
6131 | ||
6132 | static void | |
6133 | -gsi_advance_bw_nondebug_nonlocal (gimple_stmt_iterator *gsi) | |
6134 | +gsi_advance_bw_nondebug_nonlocal (gimple_stmt_iterator *gsi, tree *vuse, | |
6135 | + bool *vuse_escaped) | |
6136 | { | |
6137 | gimple stmt; | |
6138 | + tree lvuse; | |
6139 | ||
6140 | while (true) | |
6141 | { | |
6142 | if (gsi_end_p (*gsi)) | |
6143 | return; | |
6144 | stmt = gsi_stmt (*gsi); | |
6145 | + | |
6146 | + lvuse = gimple_vuse (stmt); | |
6147 | + if (lvuse != NULL_TREE) | |
6148 | + { | |
6149 | + *vuse = lvuse; | |
6150 | + if (!ZERO_SSA_OPERANDS (stmt, SSA_OP_DEF)) | |
6151 | + *vuse_escaped = true; | |
6152 | + } | |
6153 | + | |
6154 | if (!(is_gimple_assign (stmt) && local_def (gimple_get_lhs (stmt)) | |
6155 | && !gimple_has_side_effects (stmt))) | |
6156 | return; | |
6157 | @@ -1150,9 +1163,11 @@ | |
6158 | { | |
6159 | gimple_stmt_iterator gsi1 = gsi_last_nondebug_bb (bb1); | |
6160 | gimple_stmt_iterator gsi2 = gsi_last_nondebug_bb (bb2); | |
6161 | + tree vuse1 = NULL_TREE, vuse2 = NULL_TREE; | |
6162 | + bool vuse_escaped = false; | |
6163 | ||
6164 | - gsi_advance_bw_nondebug_nonlocal (&gsi1); | |
6165 | - gsi_advance_bw_nondebug_nonlocal (&gsi2); | |
6166 | + gsi_advance_bw_nondebug_nonlocal (&gsi1, &vuse1, &vuse_escaped); | |
6167 | + gsi_advance_bw_nondebug_nonlocal (&gsi2, &vuse2, &vuse_escaped); | |
6168 | ||
6169 | while (!gsi_end_p (gsi1) && !gsi_end_p (gsi2)) | |
6170 | { | |
6171 | @@ -1161,13 +1176,20 @@ | |
6172 | ||
6173 | gsi_prev_nondebug (&gsi1); | |
6174 | gsi_prev_nondebug (&gsi2); | |
6175 | - gsi_advance_bw_nondebug_nonlocal (&gsi1); | |
6176 | - gsi_advance_bw_nondebug_nonlocal (&gsi2); | |
6177 | + gsi_advance_bw_nondebug_nonlocal (&gsi1, &vuse1, &vuse_escaped); | |
6178 | + gsi_advance_bw_nondebug_nonlocal (&gsi2, &vuse2, &vuse_escaped); | |
6179 | } | |
6180 | ||
6181 | if (!(gsi_end_p (gsi1) && gsi_end_p (gsi2))) | |
6182 | return; | |
6183 | ||
6184 | + /* If the incoming vuses are not the same, and the vuse escaped into an | |
6185 | + SSA_OP_DEF, then merging the 2 blocks will change the value of the def, | |
6186 | + which potentially means the semantics of one of the blocks will be changed. | |
6187 | + TODO: make this check more precise. */ | |
6188 | + if (vuse_escaped && vuse1 != vuse2) | |
6189 | + return; | |
6190 | + | |
6191 | if (dump_file) | |
6192 | fprintf (dump_file, "find_duplicates: <bb %d> duplicate of <bb %d>\n", | |
6193 | bb1->index, bb2->index); | |
6194 | Index: gcc/c-family/ChangeLog | |
6195 | =================================================================== | |
6196 | --- gcc/c-family/ChangeLog (.../tags/gcc_4_7_0_release) (wersja 187293) | |
6197 | +++ gcc/c-family/ChangeLog (.../branches/gcc-4_7-branch) (wersja 187293) | |
6198 | @@ -1,3 +1,8 @@ | |
6199 | +2012-03-23 William Bader <williambader@hotmail.com> | |
6200 | + | |
6201 | + PR c/52682 | |
6202 | + * c-lex.c (c_lex_with_flags): Avoid declarations after stmts. | |
6203 | + | |
6204 | 2012-03-22 Release Manager | |
6205 | ||
6206 | * GCC 4.7.0 released. | |
6207 | Index: gcc/c-family/c-lex.c | |
6208 | =================================================================== | |
6209 | --- gcc/c-family/c-lex.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
6210 | +++ gcc/c-family/c-lex.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
6211 | @@ -342,6 +342,8 @@ | |
6212 | ||
6213 | if (flags & CPP_N_USERDEF) | |
6214 | { | |
6215 | + char *str; | |
6216 | + tree literal; | |
6217 | tree suffix_id = get_identifier (suffix); | |
6218 | int len = tok->val.str.len - strlen (suffix); | |
6219 | /* If this is going to be used as a C string to pass to a | |
6220 | @@ -350,9 +352,9 @@ | |
6221 | (const char *) tok->val.str.text); | |
6222 | TREE_TYPE (num_string) = char_array_type_node; | |
6223 | num_string = fix_string_type (num_string); | |
6224 | - char *str = CONST_CAST (char *, TREE_STRING_POINTER (num_string)); | |
6225 | + str = CONST_CAST (char *, TREE_STRING_POINTER (num_string)); | |
6226 | str[len] = '\0'; | |
6227 | - tree literal = build_userdef_literal (suffix_id, *value, | |
6228 | + literal = build_userdef_literal (suffix_id, *value, | |
6229 | num_string); | |
6230 | *value = literal; | |
6231 | } | |
d52df9a1 | 6232 | Index: gcc/DATESTAMP |
7bd46337 | 6233 | =================================================================== |
f500de0e PS |
6234 | --- gcc/DATESTAMP (.../tags/gcc_4_7_0_release) (wersja 187293) |
6235 | +++ gcc/DATESTAMP (.../branches/gcc-4_7-branch) (wersja 187293) | |
6236 | @@ -1 +1 @@ | |
6237 | -20120322 | |
6238 | +20120508 | |
6239 | Index: gcc/ipa-cp.c | |
6240 | =================================================================== | |
6241 | --- gcc/ipa-cp.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
6242 | +++ gcc/ipa-cp.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
6243 | @@ -2180,8 +2180,9 @@ | |
6244 | if (dump_file) | |
6245 | fprintf (dump_file, " - adding an extra caller %s/%i" | |
6246 | " of %s/%i\n", | |
6247 | - cgraph_node_name (cs->caller), cs->caller->uid, | |
6248 | - cgraph_node_name (val->spec_node), | |
6249 | + xstrdup (cgraph_node_name (cs->caller)), | |
6250 | + cs->caller->uid, | |
6251 | + xstrdup (cgraph_node_name (val->spec_node)), | |
6252 | val->spec_node->uid); | |
6253 | ||
6254 | cgraph_redirect_edge_callee (cs, val->spec_node); | |
6255 | Index: gcc/tree-scalar-evolution.c | |
6256 | =================================================================== | |
6257 | --- gcc/tree-scalar-evolution.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
6258 | +++ gcc/tree-scalar-evolution.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
6259 | @@ -499,65 +499,6 @@ | |
6260 | return chrec_dont_know; | |
6261 | } | |
6262 | ||
6263 | -/* Determine whether the CHREC is always positive/negative. If the expression | |
6264 | - cannot be statically analyzed, return false, otherwise set the answer into | |
6265 | - VALUE. */ | |
6266 | - | |
6267 | -bool | |
6268 | -chrec_is_positive (tree chrec, bool *value) | |
6269 | -{ | |
6270 | - bool value0, value1, value2; | |
6271 | - tree end_value, nb_iter; | |
6272 | - | |
6273 | - switch (TREE_CODE (chrec)) | |
6274 | - { | |
6275 | - case POLYNOMIAL_CHREC: | |
6276 | - if (!chrec_is_positive (CHREC_LEFT (chrec), &value0) | |
6277 | - || !chrec_is_positive (CHREC_RIGHT (chrec), &value1)) | |
6278 | - return false; | |
6279 | - | |
6280 | - /* FIXME -- overflows. */ | |
6281 | - if (value0 == value1) | |
6282 | - { | |
6283 | - *value = value0; | |
6284 | - return true; | |
6285 | - } | |
6286 | - | |
6287 | - /* Otherwise the chrec is under the form: "{-197, +, 2}_1", | |
6288 | - and the proof consists in showing that the sign never | |
6289 | - changes during the execution of the loop, from 0 to | |
6290 | - loop->nb_iterations. */ | |
6291 | - if (!evolution_function_is_affine_p (chrec)) | |
6292 | - return false; | |
6293 | - | |
6294 | - nb_iter = number_of_latch_executions (get_chrec_loop (chrec)); | |
6295 | - if (chrec_contains_undetermined (nb_iter)) | |
6296 | - return false; | |
6297 | - | |
6298 | -#if 0 | |
6299 | - /* TODO -- If the test is after the exit, we may decrease the number of | |
6300 | - iterations by one. */ | |
6301 | - if (after_exit) | |
6302 | - nb_iter = chrec_fold_minus (type, nb_iter, build_int_cst (type, 1)); | |
6303 | -#endif | |
6304 | - | |
6305 | - end_value = chrec_apply (CHREC_VARIABLE (chrec), chrec, nb_iter); | |
6306 | - | |
6307 | - if (!chrec_is_positive (end_value, &value2)) | |
6308 | - return false; | |
6309 | - | |
6310 | - *value = value0; | |
6311 | - return value0 == value1; | |
6312 | - | |
6313 | - case INTEGER_CST: | |
6314 | - *value = (tree_int_cst_sgn (chrec) == 1); | |
6315 | - return true; | |
6316 | - | |
6317 | - default: | |
6318 | - return false; | |
6319 | - } | |
6320 | -} | |
6321 | - | |
6322 | /* Associate CHREC to SCALAR. */ | |
6323 | ||
6324 | static void | |
6325 | Index: gcc/configure | |
6326 | =================================================================== | |
6327 | --- gcc/configure (.../tags/gcc_4_7_0_release) (wersja 187293) | |
6328 | +++ gcc/configure (.../branches/gcc-4_7-branch) (wersja 187293) | |
6329 | @@ -26474,7 +26474,15 @@ | |
6330 | fi | |
6331 | ||
6332 | case "$target:$tm_file" in | |
6333 | - powerpc64*-*-linux* | powerpc*-*-linux*rs6000/biarch64.h*) | |
6334 | + powerpc64-*-freebsd* | powerpc64*-*-linux* | powerpc*-*-linux*rs6000/biarch64.h*) | |
6335 | + case "$target" in | |
6336 | + *-*-linux*) | |
6337 | + emul_name="-melf64ppc" | |
6338 | + ;; | |
6339 | + *-*-freebsd*) | |
6340 | + emul_name="-melf64ppc_fbsd" | |
6341 | + ;; | |
6342 | + esac | |
6343 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking linker support for omitting dot symbols" >&5 | |
6344 | $as_echo_n "checking linker support for omitting dot symbols... " >&6; } | |
6345 | if test "${gcc_cv_ld_no_dot_syms+set}" = set; then : | |
6346 | @@ -26504,7 +26512,7 @@ | |
6347 | EOF | |
6348 | if $gcc_cv_as -a64 -o conftest1.o conftest1.s > /dev/null 2>&1 \ | |
6349 | && $gcc_cv_as -a64 -o conftest2.o conftest2.s > /dev/null 2>&1 \ | |
6350 | - && $gcc_cv_ld -melf64ppc -o conftest conftest1.o conftest2.o > /dev/null 2>&1; then | |
6351 | + && $gcc_cv_ld $emul_name -o conftest conftest1.o conftest2.o > /dev/null 2>&1; then | |
6352 | gcc_cv_ld_no_dot_syms=yes | |
6353 | fi | |
6354 | rm -f conftest conftest1.o conftest2.o conftest1.s conftest2.s | |
6355 | @@ -26541,7 +26549,7 @@ | |
6356 | ld 9,ie0@got@tprel@l(9) | |
6357 | EOF | |
6358 | if $gcc_cv_as -a64 -o conftest.o conftest.s > /dev/null 2>&1 \ | |
6359 | - && $gcc_cv_ld -melf64ppc --no-toc-sort -o conftest conftest.o > /dev/null 2>&1; then | |
6360 | + && $gcc_cv_ld $emul_name --no-toc-sort -o conftest conftest.o > /dev/null 2>&1; then | |
6361 | gcc_cv_ld_large_toc=yes | |
6362 | fi | |
6363 | rm -f conftest conftest.o conftest.s | |
6364 | Index: gcc/fold-const.c | |
6365 | =================================================================== | |
6366 | --- gcc/fold-const.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
6367 | +++ gcc/fold-const.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
6368 | @@ -6850,64 +6850,81 @@ | |
6369 | s = integer_one_node; | |
6370 | } | |
6371 | ||
6372 | - for (;; ref = TREE_OPERAND (ref, 0)) | |
6373 | + /* Handle &x.array the same as we would handle &x.array[0]. */ | |
6374 | + if (TREE_CODE (ref) == COMPONENT_REF | |
6375 | + && TREE_CODE (TREE_TYPE (ref)) == ARRAY_TYPE) | |
6376 | { | |
6377 | - if (TREE_CODE (ref) == ARRAY_REF) | |
6378 | + tree domain; | |
6379 | + | |
6380 | + /* Remember if this was a multi-dimensional array. */ | |
6381 | + if (TREE_CODE (TREE_OPERAND (ref, 0)) == ARRAY_REF) | |
6382 | + mdim = true; | |
6383 | + | |
6384 | + domain = TYPE_DOMAIN (TREE_TYPE (ref)); | |
6385 | + if (! domain) | |
6386 | + goto cont; | |
6387 | + itype = TREE_TYPE (domain); | |
6388 | + | |
6389 | + step = TYPE_SIZE_UNIT (TREE_TYPE (TREE_TYPE (ref))); | |
6390 | + if (TREE_CODE (step) != INTEGER_CST) | |
6391 | + goto cont; | |
6392 | + | |
6393 | + if (s) | |
6394 | { | |
6395 | - tree domain; | |
6396 | + if (! tree_int_cst_equal (step, s)) | |
6397 | + goto cont; | |
6398 | + } | |
6399 | + else | |
6400 | + { | |
6401 | + /* Try if delta is a multiple of step. */ | |
6402 | + tree tmp = div_if_zero_remainder (EXACT_DIV_EXPR, op1, step); | |
6403 | + if (! tmp) | |
6404 | + goto cont; | |
6405 | + delta = tmp; | |
6406 | + } | |
6407 | ||
6408 | - /* Remember if this was a multi-dimensional array. */ | |
6409 | - if (TREE_CODE (TREE_OPERAND (ref, 0)) == ARRAY_REF) | |
6410 | - mdim = true; | |
6411 | + /* Only fold here if we can verify we do not overflow one | |
6412 | + dimension of a multi-dimensional array. */ | |
6413 | + if (mdim) | |
6414 | + { | |
6415 | + tree tmp; | |
6416 | ||
6417 | - domain = TYPE_DOMAIN (TREE_TYPE (TREE_OPERAND (ref, 0))); | |
6418 | - if (! domain) | |
6419 | - continue; | |
6420 | - itype = TREE_TYPE (domain); | |
6421 | + if (!TYPE_MIN_VALUE (domain) | |
6422 | + || !TYPE_MAX_VALUE (domain) | |
6423 | + || TREE_CODE (TYPE_MAX_VALUE (domain)) != INTEGER_CST) | |
6424 | + goto cont; | |
6425 | ||
6426 | - step = array_ref_element_size (ref); | |
6427 | - if (TREE_CODE (step) != INTEGER_CST) | |
6428 | - continue; | |
6429 | + tmp = fold_binary_loc (loc, PLUS_EXPR, itype, | |
6430 | + fold_convert_loc (loc, itype, | |
6431 | + TYPE_MIN_VALUE (domain)), | |
6432 | + fold_convert_loc (loc, itype, delta)); | |
6433 | + if (TREE_CODE (tmp) != INTEGER_CST | |
6434 | + || tree_int_cst_lt (TYPE_MAX_VALUE (domain), tmp)) | |
6435 | + goto cont; | |
6436 | + } | |
6437 | ||
6438 | - if (s) | |
6439 | - { | |
6440 | - if (! tree_int_cst_equal (step, s)) | |
6441 | - continue; | |
6442 | - } | |
6443 | - else | |
6444 | - { | |
6445 | - /* Try if delta is a multiple of step. */ | |
6446 | - tree tmp = div_if_zero_remainder (EXACT_DIV_EXPR, op1, step); | |
6447 | - if (! tmp) | |
6448 | - continue; | |
6449 | - delta = tmp; | |
6450 | - } | |
6451 | + /* We found a suitable component reference. */ | |
6452 | ||
6453 | - /* Only fold here if we can verify we do not overflow one | |
6454 | - dimension of a multi-dimensional array. */ | |
6455 | - if (mdim) | |
6456 | - { | |
6457 | - tree tmp; | |
6458 | + pref = TREE_OPERAND (addr, 0); | |
6459 | + ret = copy_node (pref); | |
6460 | + SET_EXPR_LOCATION (ret, loc); | |
6461 | ||
6462 | - if (TREE_CODE (TREE_OPERAND (ref, 1)) != INTEGER_CST | |
6463 | - || !TYPE_MAX_VALUE (domain) | |
6464 | - || TREE_CODE (TYPE_MAX_VALUE (domain)) != INTEGER_CST) | |
6465 | - continue; | |
6466 | + ret = build4_loc (loc, ARRAY_REF, TREE_TYPE (TREE_TYPE (ref)), ret, | |
6467 | + fold_build2_loc | |
6468 | + (loc, PLUS_EXPR, itype, | |
6469 | + fold_convert_loc (loc, itype, | |
6470 | + TYPE_MIN_VALUE | |
6471 | + (TYPE_DOMAIN (TREE_TYPE (ref)))), | |
6472 | + fold_convert_loc (loc, itype, delta)), | |
6473 | + NULL_TREE, NULL_TREE); | |
6474 | + return build_fold_addr_expr_loc (loc, ret); | |
6475 | + } | |
6476 | ||
6477 | - tmp = fold_binary_loc (loc, PLUS_EXPR, itype, | |
6478 | - fold_convert_loc (loc, itype, | |
6479 | - TREE_OPERAND (ref, 1)), | |
6480 | - fold_convert_loc (loc, itype, delta)); | |
6481 | - if (!tmp | |
6482 | - || TREE_CODE (tmp) != INTEGER_CST | |
6483 | - || tree_int_cst_lt (TYPE_MAX_VALUE (domain), tmp)) | |
6484 | - continue; | |
6485 | - } | |
6486 | +cont: | |
6487 | ||
6488 | - break; | |
6489 | - } | |
6490 | - else if (TREE_CODE (ref) == COMPONENT_REF | |
6491 | - && TREE_CODE (TREE_TYPE (ref)) == ARRAY_TYPE) | |
6492 | + for (;; ref = TREE_OPERAND (ref, 0)) | |
6493 | + { | |
6494 | + if (TREE_CODE (ref) == ARRAY_REF) | |
6495 | { | |
6496 | tree domain; | |
6497 | ||
6498 | @@ -6915,12 +6932,12 @@ | |
6499 | if (TREE_CODE (TREE_OPERAND (ref, 0)) == ARRAY_REF) | |
6500 | mdim = true; | |
6501 | ||
6502 | - domain = TYPE_DOMAIN (TREE_TYPE (ref)); | |
6503 | + domain = TYPE_DOMAIN (TREE_TYPE (TREE_OPERAND (ref, 0))); | |
6504 | if (! domain) | |
6505 | continue; | |
6506 | itype = TREE_TYPE (domain); | |
6507 | ||
6508 | - step = TYPE_SIZE_UNIT (TREE_TYPE (TREE_TYPE (ref))); | |
6509 | + step = array_ref_element_size (ref); | |
6510 | if (TREE_CODE (step) != INTEGER_CST) | |
6511 | continue; | |
6512 | ||
6513 | @@ -6944,16 +6961,17 @@ | |
6514 | { | |
6515 | tree tmp; | |
6516 | ||
6517 | - if (!TYPE_MIN_VALUE (domain) | |
6518 | + if (TREE_CODE (TREE_OPERAND (ref, 1)) != INTEGER_CST | |
6519 | || !TYPE_MAX_VALUE (domain) | |
6520 | || TREE_CODE (TYPE_MAX_VALUE (domain)) != INTEGER_CST) | |
6521 | continue; | |
6522 | ||
6523 | tmp = fold_binary_loc (loc, PLUS_EXPR, itype, | |
6524 | fold_convert_loc (loc, itype, | |
6525 | - TYPE_MIN_VALUE (domain)), | |
6526 | + TREE_OPERAND (ref, 1)), | |
6527 | fold_convert_loc (loc, itype, delta)); | |
6528 | - if (TREE_CODE (tmp) != INTEGER_CST | |
6529 | + if (!tmp | |
6530 | + || TREE_CODE (tmp) != INTEGER_CST | |
6531 | || tree_int_cst_lt (TYPE_MAX_VALUE (domain), tmp)) | |
6532 | continue; | |
6533 | } | |
6534 | @@ -6982,29 +7000,11 @@ | |
6535 | pos = TREE_OPERAND (pos, 0); | |
6536 | } | |
6537 | ||
6538 | - if (TREE_CODE (ref) == ARRAY_REF) | |
6539 | - { | |
6540 | - TREE_OPERAND (pos, 1) | |
6541 | - = fold_build2_loc (loc, PLUS_EXPR, itype, | |
6542 | - fold_convert_loc (loc, itype, TREE_OPERAND (pos, 1)), | |
6543 | - fold_convert_loc (loc, itype, delta)); | |
6544 | - return fold_build1_loc (loc, ADDR_EXPR, TREE_TYPE (addr), ret); | |
6545 | - } | |
6546 | - else if (TREE_CODE (ref) == COMPONENT_REF) | |
6547 | - { | |
6548 | - gcc_assert (ret == pos); | |
6549 | - ret = build4_loc (loc, ARRAY_REF, TREE_TYPE (TREE_TYPE (ref)), ret, | |
6550 | - fold_build2_loc | |
6551 | - (loc, PLUS_EXPR, itype, | |
6552 | - fold_convert_loc (loc, itype, | |
6553 | - TYPE_MIN_VALUE | |
6554 | - (TYPE_DOMAIN (TREE_TYPE (ref)))), | |
6555 | - fold_convert_loc (loc, itype, delta)), | |
6556 | - NULL_TREE, NULL_TREE); | |
6557 | - return build_fold_addr_expr_loc (loc, ret); | |
6558 | - } | |
6559 | - else | |
6560 | - gcc_unreachable (); | |
6561 | + TREE_OPERAND (pos, 1) | |
6562 | + = fold_build2_loc (loc, PLUS_EXPR, itype, | |
6563 | + fold_convert_loc (loc, itype, TREE_OPERAND (pos, 1)), | |
6564 | + fold_convert_loc (loc, itype, delta)); | |
6565 | + return fold_build1_loc (loc, ADDR_EXPR, TREE_TYPE (addr), ret); | |
6566 | } | |
6567 | ||
6568 | ||
6569 | Index: gcc/tree-chrec.h | |
6570 | =================================================================== | |
6571 | --- gcc/tree-chrec.h (.../tags/gcc_4_7_0_release) (wersja 187293) | |
6572 | +++ gcc/tree-chrec.h (.../branches/gcc-4_7-branch) (wersja 187293) | |
6573 | @@ -77,7 +77,6 @@ | |
6574 | /* Observers. */ | |
6575 | extern bool eq_evolutions_p (const_tree, const_tree); | |
6576 | extern bool is_multivariate_chrec (const_tree); | |
6577 | -extern bool chrec_is_positive (tree, bool *); | |
6578 | extern bool chrec_contains_symbols (const_tree); | |
6579 | extern bool chrec_contains_symbols_defined_in_loop (const_tree, unsigned); | |
6580 | extern bool chrec_contains_undetermined (const_tree); | |
6581 | Index: gcc/DEV-PHASE | |
6582 | =================================================================== | |
6583 | --- gcc/DEV-PHASE (.../tags/gcc_4_7_0_release) (wersja 187293) | |
6584 | +++ gcc/DEV-PHASE (.../branches/gcc-4_7-branch) (wersja 187293) | |
6585 | @@ -0,0 +1 @@ | |
6586 | +prerelease | |
6587 | Index: gcc/tree-ssa-sccvn.c | |
6588 | =================================================================== | |
6589 | --- gcc/tree-ssa-sccvn.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
6590 | +++ gcc/tree-ssa-sccvn.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
6591 | @@ -1348,18 +1348,19 @@ | |
6592 | ||
6593 | /* Lookup an existing or insert a new vn_reference entry into the | |
6594 | value table for the VUSE, SET, TYPE, OPERANDS reference which | |
6595 | - has the constant value CST. */ | |
6596 | + has the value VALUE which is either a constant or an SSA name. */ | |
6597 | ||
6598 | static vn_reference_t | |
6599 | -vn_reference_lookup_or_insert_constant_for_pieces (tree vuse, | |
6600 | - alias_set_type set, | |
6601 | - tree type, | |
6602 | - VEC (vn_reference_op_s, | |
6603 | - heap) *operands, | |
6604 | - tree cst) | |
6605 | +vn_reference_lookup_or_insert_for_pieces (tree vuse, | |
6606 | + alias_set_type set, | |
6607 | + tree type, | |
6608 | + VEC (vn_reference_op_s, | |
6609 | + heap) *operands, | |
6610 | + tree value) | |
6611 | { | |
6612 | struct vn_reference_s vr1; | |
6613 | vn_reference_t result; | |
6614 | + unsigned value_id; | |
6615 | vr1.vuse = vuse; | |
6616 | vr1.operands = operands; | |
6617 | vr1.type = type; | |
6618 | @@ -1367,10 +1368,13 @@ | |
6619 | vr1.hashcode = vn_reference_compute_hash (&vr1); | |
6620 | if (vn_reference_lookup_1 (&vr1, &result)) | |
6621 | return result; | |
6622 | + if (TREE_CODE (value) == SSA_NAME) | |
6623 | + value_id = VN_INFO (value)->value_id; | |
6624 | + else | |
6625 | + value_id = get_or_alloc_constant_value_id (value); | |
6626 | return vn_reference_insert_pieces (vuse, set, type, | |
6627 | VEC_copy (vn_reference_op_s, heap, | |
6628 | - operands), cst, | |
6629 | - get_or_alloc_constant_value_id (cst)); | |
6630 | + operands), value, value_id); | |
6631 | } | |
6632 | ||
6633 | /* Callback for walk_non_aliased_vuses. Tries to perform a lookup | |
6634 | @@ -1452,7 +1456,7 @@ | |
6635 | && offset2 + size2 >= offset + maxsize) | |
6636 | { | |
6637 | tree val = build_zero_cst (vr->type); | |
6638 | - return vn_reference_lookup_or_insert_constant_for_pieces | |
6639 | + return vn_reference_lookup_or_insert_for_pieces | |
6640 | (vuse, vr->set, vr->type, vr->operands, val); | |
6641 | } | |
6642 | } | |
6643 | @@ -1473,7 +1477,7 @@ | |
6644 | && offset2 + size2 >= offset + maxsize) | |
6645 | { | |
6646 | tree val = build_zero_cst (vr->type); | |
6647 | - return vn_reference_lookup_or_insert_constant_for_pieces | |
6648 | + return vn_reference_lookup_or_insert_for_pieces | |
6649 | (vuse, vr->set, vr->type, vr->operands, val); | |
6650 | } | |
6651 | } | |
6652 | @@ -1514,7 +1518,7 @@ | |
6653 | / BITS_PER_UNIT), | |
6654 | ref->size / BITS_PER_UNIT); | |
6655 | if (val) | |
6656 | - return vn_reference_lookup_or_insert_constant_for_pieces | |
6657 | + return vn_reference_lookup_or_insert_for_pieces | |
6658 | (vuse, vr->set, vr->type, vr->operands, val); | |
6659 | } | |
6660 | } | |
6661 | @@ -1568,7 +1572,7 @@ | |
6662 | } | |
6663 | } | |
6664 | if (val) | |
6665 | - return vn_reference_lookup_or_insert_constant_for_pieces | |
6666 | + return vn_reference_lookup_or_insert_for_pieces | |
6667 | (vuse, vr->set, vr->type, vr->operands, val); | |
6668 | } | |
6669 | } | |
6670 | Index: gcc/cgraphunit.c | |
6671 | =================================================================== | |
6672 | --- gcc/cgraphunit.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
6673 | +++ gcc/cgraphunit.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
6674 | @@ -2490,8 +2490,8 @@ | |
6675 | if (cgraph_dump_file) | |
6676 | { | |
6677 | fprintf (cgraph_dump_file, "updating call of %s/%i -> %s/%i: ", | |
6678 | - cgraph_node_name (e->caller), e->caller->uid, | |
6679 | - cgraph_node_name (e->callee), e->callee->uid); | |
6680 | + xstrdup (cgraph_node_name (e->caller)), e->caller->uid, | |
6681 | + xstrdup (cgraph_node_name (e->callee)), e->callee->uid); | |
6682 | print_gimple_stmt (cgraph_dump_file, e->call_stmt, 0, dump_flags); | |
6683 | if (e->callee->clone.combined_args_to_skip) | |
6684 | { | |
6685 | @@ -2577,8 +2577,8 @@ | |
6686 | if (cgraph_dump_file) | |
6687 | { | |
6688 | fprintf (cgraph_dump_file, "cloning %s to %s\n", | |
6689 | - cgraph_node_name (node->clone_of), | |
6690 | - cgraph_node_name (node)); | |
6691 | + xstrdup (cgraph_node_name (node->clone_of)), | |
6692 | + xstrdup (cgraph_node_name (node))); | |
6693 | if (node->clone.tree_map) | |
6694 | { | |
6695 | unsigned int i; | |
6696 | @@ -2591,9 +2591,11 @@ | |
6697 | replace_info = VEC_index (ipa_replace_map_p, | |
6698 | node->clone.tree_map, | |
6699 | i); | |
6700 | - print_generic_expr (cgraph_dump_file, replace_info->old_tree, 0); | |
6701 | + print_generic_expr (cgraph_dump_file, | |
6702 | + replace_info->old_tree, 0); | |
6703 | fprintf (cgraph_dump_file, " -> "); | |
6704 | - print_generic_expr (cgraph_dump_file, replace_info->new_tree, 0); | |
6705 | + print_generic_expr (cgraph_dump_file, | |
6706 | + replace_info->new_tree, 0); | |
6707 | fprintf (cgraph_dump_file, "%s%s;", | |
6708 | replace_info->replace_p ? "(replace)":"", | |
6709 | replace_info->ref_p ? "(ref)":""); | |
6710 | @@ -2603,12 +2605,15 @@ | |
6711 | if (node->clone.args_to_skip) | |
6712 | { | |
6713 | fprintf (cgraph_dump_file, " args_to_skip: "); | |
6714 | - dump_bitmap (cgraph_dump_file, node->clone.args_to_skip); | |
6715 | + dump_bitmap (cgraph_dump_file, | |
6716 | + node->clone.args_to_skip); | |
6717 | } | |
6718 | if (node->clone.args_to_skip) | |
6719 | { | |
6720 | - fprintf (cgraph_dump_file, " combined_args_to_skip:"); | |
6721 | - dump_bitmap (cgraph_dump_file, node->clone.combined_args_to_skip); | |
6722 | + fprintf (cgraph_dump_file, | |
6723 | + " combined_args_to_skip:"); | |
6724 | + dump_bitmap (cgraph_dump_file, | |
6725 | + node->clone.combined_args_to_skip); | |
6726 | } | |
6727 | } | |
6728 | cgraph_materialize_clone (node); | |
6729 | Index: gcc/ChangeLog | |
6730 | =================================================================== | |
6731 | --- gcc/ChangeLog (.../tags/gcc_4_7_0_release) (wersja 187293) | |
6732 | +++ gcc/ChangeLog (.../branches/gcc-4_7-branch) (wersja 187293) | |
6733 | @@ -1,3 +1,808 @@ | |
6734 | +2012-05-08 Hans-Peter Nilsson <hp@axis.com> | |
6735 | + | |
6736 | + PR target/53272 | |
6737 | + * config/cris/cris.c (cris_normal_notice_update_cc): For TARGET_V32, | |
6738 | + when a constant source operand matches an "I" constraint, the "no | |
6739 | + CC0 change" applies to a register-destination only, not a | |
6740 | + strict_low_part-destination. | |
6741 | + | |
6742 | +2012-05-07 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> | |
6743 | + | |
6744 | + Backport from mainline: | |
6745 | + 2012-04-19 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> | |
6746 | + | |
6747 | + * config/arm/sync.md (sync_optab): Change ior attribute to "or". | |
6748 | + | |
6749 | +2012-05-07 Jakub Jelinek <jakub@redhat.com> | |
6750 | + | |
6751 | + PR tree-optimization/53239 | |
6752 | + * tree-vrp.c (get_value_range): Set VR of | |
6753 | + SSA_NAME_IS_DEFAULT_DEF of DECL_BY_REFERENCE RESULT_DECL | |
6754 | + to nonnull. | |
6755 | + | |
6756 | +2012-05-07 Richard Guenther <rguenther@suse.de> | |
6757 | + | |
6758 | + PR tree-optimization/53195 | |
6759 | + * tree-inline.c (setup_one_parameter): Properly add referenced | |
6760 | + vars from the parameters new known value. | |
6761 | + | |
6762 | +2012-05-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> | |
6763 | + | |
6764 | + Backport from mainline: | |
6765 | + 2012-04-27 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> | |
6766 | + | |
6767 | + PR target/52999 | |
6768 | + * config/pa/pa.c (pa_legitimate_constant_p): Don't put function labels | |
6769 | + in constant pool. | |
6770 | + | |
6771 | +2012-05-04 Ian Lance Taylor <iant@google.com> | |
6772 | + | |
6773 | + * tree-vect-patterns.c (vect_single_imm_use): Correct return | |
6774 | + values from false to NULL. | |
6775 | + | |
6776 | +2012-05-04 Uros Bizjak <ubizjak@gmail.com> | |
6777 | + | |
6778 | + Backport from mainline | |
6779 | + 2012-05-04 Uros Bizjak <ubizjak@gmail.com> | |
6780 | + | |
6781 | + PR target/53228 | |
6782 | + * config/i386/i386.h (X86_ARCH_CMOV): Rename from X86_ARCH_CMOVE. | |
6783 | + (TARGET_CMOV): Rename from TARGET_CMOVE. | |
6784 | + (TARGET_CMOVE): New define. | |
6785 | + * config/i386/i386.c (ix86_option_override_internal): Use TARGET_CMOV. | |
6786 | + Do not set TARGET_CMOVE here. | |
6787 | + | |
6788 | +2012-05-04 Ulrich Weigand <ulrich.weigand@linaro.org> | |
6789 | + | |
6790 | + Backport from mainline: | |
6791 | + | |
6792 | + 2012-05-04 Ulrich Weigand <ulrich.weigand@linaro.org> | |
6793 | + | |
6794 | + PR tree-optimization/52633 | |
6795 | + * tree-vect-patterns.c (vect_vect_recog_func_ptrs): Swap order of | |
6796 | + vect_recog_widen_shift_pattern and vect_recog_over_widening_pattern. | |
6797 | + (vect_recog_over_widening_pattern): Remove handling of code that was | |
6798 | + already detected as over-widening pattern. Remove special handling | |
6799 | + of "unsigned" cases. Instead, support general case of conversion | |
6800 | + of the shift result to another type. | |
6801 | + | |
6802 | + 2012-05-04 Ulrich Weigand <ulrich.weigand@linaro.org> | |
6803 | + | |
6804 | + * tree-vect-patterns.c (vect_single_imm_use): New function. | |
6805 | + (vect_recog_widen_mult_pattern): Use it instead of open-coding loop. | |
6806 | + (vect_recog_over_widening_pattern): Likewise. | |
6807 | + (vect_recog_widen_shift_pattern): Likewise. | |
6808 | + | |
6809 | + 2012-04-10 Ulrich Weigand <ulrich.weigand@linaro.org> | |
6810 | + | |
6811 | + PR tree-optimization/52870 | |
6812 | + * tree-vect-patterns.c (vect_recog_widen_mult_pattern): Verify that | |
6813 | + presumed pattern statement is within the same loop or basic block. | |
6814 | + | |
6815 | +2012-05-04 Richard Guenther <rguenther@suse.de> | |
6816 | + | |
6817 | + * common.opt (flto-report): Do not mark as Optimization. | |
6818 | + | |
6819 | +2012-05-04 Eric Botcazou <ebotcazou@adacore.com> | |
6820 | + | |
6821 | + PR target/48496 | |
6822 | + * recog.c (constrain_operands): If extra constraints are present, also | |
6823 | + accept pseudo-registers with equivalent memory locations during reload. | |
6824 | + | |
6825 | +2012-05-03 Michael Meissner <meissner@linux.vnet.ibm.com> | |
6826 | + | |
6827 | + Backport from the mainline | |
6828 | + 2012-05-03 Michael Meissner <meissner@linux.vnet.ibm.com> | |
6829 | + | |
6830 | + PR target/53199 | |
6831 | + * config/rs6000/rs6000.md (bswapdi splitters): If | |
6832 | + -mavoid-indexed-addresses (or -mcpu=power6 which sets it by | |
6833 | + default) is used, generate an alternate sequence that does not | |
6834 | + depend on using indexed addressing. | |
6835 | + | |
6836 | +2012-05-03 David S. Miller <davem@davemloft.net> | |
6837 | + | |
6838 | + PR target/52684 | |
6839 | + * config/sparc/sparc.c (emit_soft_tfmode_libcall): If we pass a | |
6840 | + MEM directly into a libcall, mark it's MEM_EXPR as addressable. | |
6841 | + (sparc_emit_float_lib_cmp): Likewise. | |
6842 | + | |
6843 | +2012-05-04 Martin Jambor <mjambor@suse.cz> | |
6844 | + | |
6845 | + Backport from mainline | |
6846 | + 2012-05-02 Martin Jambor <mjambor@suse.cz> | |
6847 | + | |
6848 | + PR lto/52605 | |
6849 | + * dwarf2out.c (dwarf2out_decl): Only lookup die representing context | |
6850 | + of a variable when the contect is a function. | |
6851 | + | |
6852 | +2012-05-03 Jakub Jelinek <jakub@redhat.com> | |
6853 | + | |
6854 | + PR plugins/53126 | |
6855 | + * gcc-ar.c (main): If GCC_EXEC_PREFIX is set in env, | |
6856 | + append program name to it and pass that as first argument | |
6857 | + to make_relative_prefix. Always pass standard_libexec_prefix | |
6858 | + as last argument to make_relative_prefix. If | |
6859 | + make_relative_prefix returns NULL, fall back to | |
6860 | + standard_libexec_prefix. | |
6861 | + | |
6862 | + PR debug/53174 | |
6863 | + * tree-predcom.c (remove_stmt): Call reset_debug_uses on stmts being | |
6864 | + removed. | |
6865 | + | |
6866 | + PR target/53187 | |
6867 | + * config/arm/arm.c (arm_select_cc_mode): If x has MODE_CC class | |
6868 | + mode, return that mode. | |
6869 | + | |
6870 | +2012-05-03 Richard Guenther <rguenther@suse.de> | |
6871 | + | |
6872 | + PR tree-optimization/53144 | |
6873 | + * tree-ssa-sccvn.c (vn_reference_lookup_or_insert_constant_for_pieces): | |
6874 | + Rename to ... | |
6875 | + (vn_reference_lookup_or_insert_for_pieces): ... this. Properly deal | |
6876 | + with SSA name values. | |
6877 | + (vn_reference_lookup_3): Adjust callers. | |
6878 | + | |
6879 | +2012-05-02 Jakub Jelinek <jakub@redhat.com> | |
6880 | + | |
6881 | + PR tree-optimization/53163 | |
6882 | + * tree-ssa-phiopt.c (cond_if_else_store_replacement): Don't ignore | |
6883 | + return value from compute_all_dependences. | |
6884 | + | |
6885 | + PR rtl-optimization/53160 | |
6886 | + * ree.c (combine_reaching_defs): Handle the case where cand->insn | |
6887 | + has been modified by ree pass already. | |
6888 | + | |
6889 | +2012-05-01 Uros Bizjak <ubizjak@gmail.com> | |
6890 | + | |
6891 | + Backport from mainline | |
6892 | + 2012-04-30 Uros Bizjak <ubizjak@gmail.com> | |
6893 | + | |
6894 | + PR middle-end/53136 | |
6895 | + * ipa-prop.c (ipa_print_node_jump_functions): Wrap multiple | |
6896 | + calls to cgraph_node_name in xstrdup. | |
6897 | + (ipa_make_edge_direct_to_target): Ditto. | |
6898 | + * tree-sra.c (convert_callers_for_node): Ditto. | |
6899 | + * lto-symtab.c (lto_cgraph_replace_node): Ditto. | |
6900 | + * ipa-cp.c (perhaps_add_new_callers): Ditto. | |
6901 | + * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Ditto. | |
6902 | + (cgraph_materialize_all_clones): Ditto. | |
6903 | + * ipa-inline.c (report_inline_failed_reason): Ditto. | |
6904 | + (want_early_inline_function_p): Ditto. | |
6905 | + (edge_badness): Ditto. | |
6906 | + (update_edge_key): Ditto. | |
6907 | + (flatten_function): Ditto. | |
6908 | + (ipa_inline): Ditto. | |
6909 | + (inline_always_inline_functions): Ditto. | |
6910 | + (early_inline_small_functions): Ditto. | |
6911 | + | |
6912 | +2012-04-30 Andreas Tobler <andreast@fgznet.ch> | |
6913 | + | |
6914 | + Backport from mainline | |
6915 | + 2012-03-21 Andreas Tobler <andreast@fgznet.ch> | |
6916 | + | |
6917 | + * configure.ac (HAVE_LD_NO_DOT_SYMBOLS): Add powerpc64-*-freebsd*. | |
6918 | + Introduce emul_name to select the right linker emulation for | |
6919 | + powerpc64-*-freebsd*. | |
6920 | + * configure: Regenerate. | |
6921 | + * config.gcc: Add bits to support powerpc64-*-freebsd*. | |
6922 | + * config/rs6000/freebsd.h (POWERPC_FREEBSD): Define. | |
6923 | + * config/rs6000/freebsd64.h: New file. | |
6924 | + * config/rs6000/rs6000.c (rs6000_option_override_internal): Use | |
6925 | + POWERPC_FREEBSD. | |
6926 | + (rs6000_savres_strategy): Likewise. | |
6927 | + (rs6000_savres_routine_name): Likewise. | |
6928 | + (rs6000_elf_file_end): Likewise. | |
6929 | + * config/rs6000/t-freebsd64: New file. | |
6930 | + * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Set the | |
6931 | + rs6000_current_abi for 64-bit FreeBSD to ABI_AIX. | |
6932 | + | |
6933 | +2012-04-30 Uros Bizjak <ubizjak@gmail.com> | |
6934 | + | |
6935 | + Backport from mainline | |
6936 | + 2012-04-27 Paolo Bonzini <bonzini@gnu.org> | |
6937 | + | |
6938 | + PR target/53138 | |
6939 | + * config/i386/i386.md (x86_mov<mode>cc_0_m1_neg): Add clobber. | |
6940 | + | |
6941 | +2012-04-30 Eric Botcazou <ebotcazou@adacore.com> | |
6942 | + | |
6943 | + * config/i386/i386.c (ix86_handle_struct_attribute): Use the proper | |
6944 | + predicate to discriminate types. | |
6945 | + | |
6946 | +2012-04-27 Richard Guenther <rguenther@suse.de> | |
6947 | + | |
6948 | + PR c/51527 | |
6949 | + * convert.c (convert_to_integer): Avoid infinite recursion for | |
6950 | + target-defined built-in types. | |
6951 | + | |
6952 | +2012-04-26 Hans-Peter Nilsson <hp@axis.com> | |
6953 | + | |
6954 | + PR target/53120 | |
6955 | + * config/cris/cris.md ("*andhi_lowpart_v32") | |
6956 | + ("*andqi_lowpart_v32"): Change first input-only operand from | |
6957 | + a (match_operand ...) to (match_dup 0). Drop alternatives with | |
6958 | + const_int-matching constraints for redundancy. | |
6959 | + ("*andhi_lowpart_non_v32", "*andqi_lowpart_non_v32"): Ditto. Drop | |
6960 | + three-operand alternative. | |
6961 | + | |
6962 | +2012-04-26 Uros Bizjak <ubizjak@gmail.com> | |
6963 | + | |
6964 | + Backport from mainline | |
6965 | + 2012-04-23 Uros Bizjak <ubizjak@gmail.com> | |
6966 | + | |
6967 | + * config/i386/i386.md (*add<mode>_2): Add r/r/0 alternative. | |
6968 | + (*addsi_2_zext): Ditto. | |
6969 | + (*add<mode>_3): Ditto. | |
6970 | + (*addsi_3_zext): Ditto. | |
6971 | + (*add<mode>_5): Ditto. | |
6972 | + | |
6973 | +2012-04-25 Jakub Jelinek <jakub@redhat.com> | |
6974 | + | |
6975 | + PR c/52880 | |
6976 | + * c-typeck.c (set_nonincremental_init, | |
6977 | + set_nonincremental_init_from_string): Pass true instead of false | |
6978 | + as IMPLICIT to add_pending_init. | |
6979 | + | |
6980 | +2012-04-24 Georg-Johann Lay <avr@gjlay.de> | |
6981 | + | |
6982 | + Backport from 2012-04-24 mainline r186768. | |
6983 | + | |
6984 | + PR target/53065 | |
6985 | + * config/avr/avr.h (HARD_REGNO_CALL_PART_CLOBBERED): New hook define. | |
6986 | + | |
6987 | +2012-04-24 Richard Guenther <rguenther@suse.de> | |
6988 | + | |
6989 | + PR tree-optimization/53085 | |
6990 | + * tree-ssa-pre.c (eliminate): Do not eliminate volatile redundant | |
6991 | + stores. | |
6992 | + | |
6993 | +2012-04-24 Jakub Jelinek <jakub@redhat.com> | |
6994 | + | |
6995 | + PR middle-end/53084 | |
6996 | + * varasm.c (compute_reloc_for_constant): Handle ADDR_EXPR | |
6997 | + of MEM_REF. | |
6998 | + (output_addressed_constants): Likewise. | |
6999 | + | |
7000 | + PR middle-end/52999 | |
7001 | + * varasm.c (get_section): Don't ICE for section conflicts with | |
7002 | + built-in section kinds. | |
7003 | + | |
7004 | +2012-04-23 David Edelsohn <dje.gcc@gmail.com> | |
7005 | + | |
7006 | + * config/rs6000/sync.md (fetchop_name): Change ior attribute to "or". | |
7007 | + | |
7008 | +2012-04-23 Georg-Johann Lay <avr@gjlay.de> | |
7009 | + | |
7010 | + * doc/extend.texi (AVR Named Address Spaces): Fix typos. | |
7011 | + | |
7012 | +2012-04-23 Richard Guenther <rguenther@suse.de> | |
7013 | + | |
7014 | + PR c/53060 | |
7015 | + * c-typeck.c (build_binary_op): Fix typo. | |
7016 | + | |
7017 | +2012-04-23 Jakub Jelinek <jakub@redhat.com> | |
7018 | + | |
7019 | + PR tree-optimizations/52891 | |
7020 | + * tree-vect-patterns.c (adjust_bool_pattern): Use | |
7021 | + build_nonstandard_type even if rhs1 has unsigned INTEGER_TYPE, | |
7022 | + but with non-standard precision. | |
7023 | + | |
7024 | +2012-04-22 Ian Lance Taylor <iant@google.com> | |
7025 | + | |
7026 | + * godump.c (go_output_typedef): Dump size of structs. | |
7027 | + | |
7028 | +2012-04-20 Ulrich Weigand <ulrich.weigand@linaro.org> | |
7029 | + | |
7030 | + Backport from mainline: | |
7031 | + | |
7032 | + * config/arm/arm.c (arm_print_operand): Fix invalid alignment | |
7033 | + hints for 'A' operand types. | |
7034 | + | |
7035 | +2012-04-19 Georg-Johann Lay <avr@gjlay.de> | |
7036 | + | |
7037 | + Backport from 2012-04-19 mainline r186588. | |
7038 | + | |
7039 | + PR target/53033 | |
7040 | + * config/avr/avr.c (avr_out_load_psi): Fix assembler template for | |
7041 | + the case *(X+const). | |
7042 | + | |
7043 | +2012-04-18 Uros Bizjak <ubizjak@gmail.com> | |
7044 | + | |
7045 | + * config/alpha/sync.md (fetchop_name): Change ior attribute to "or". | |
7046 | + | |
7047 | +2012-04-17 Uros Bizjak <ubizjak@gmail.com> | |
7048 | + | |
7049 | + PR target/53020 | |
7050 | + * config/i386/sync.md (atomic_<code><mode>): Rename to | |
7051 | + atomic_<logic><mode>. | |
7052 | + | |
7053 | +2012-04-16 Uros Bizjak <ubizjak@gmail.com> | |
7054 | + | |
7055 | + Backport from mainline | |
7056 | + 2012-04-12 Uros Bizjak <ubizjak@gmail.com> | |
7057 | + | |
7058 | + PR target/52932 | |
7059 | + * config/i386/avx2intrin.h (_mm256_permutevar8x32_ps): Change second | |
7060 | + argument type to __m256i. Update call to __builtin_ia32_permvarsf256. | |
7061 | + * config/i386/sse.md (avx2_permvarv8sf): Change operand 1 to V8SI. | |
7062 | + (avx2_permvarv8sf, avx2_permvarv8si): Switch operands 1 and 2. | |
7063 | + * config/i386/i386.c (bdesc_args) <__builtin_ia32_permvarsf256>: | |
7064 | + Update builtin type to V8SF_FTYPE_V8SF_V8SI. | |
7065 | + (ix86_expand_vec_perm): Update calls to gen_avx2_permvarv8si and | |
7066 | + gen_avx2_permvarv8sf. | |
7067 | + | |
7068 | +2012-04-16 Martin Jambor <mjambor@suse.cz> | |
7069 | + | |
7070 | + Backported from mainline | |
7071 | + | |
7072 | + 2012-04-13 Martin Jambor <mjambor@suse.cz> | |
7073 | + PR middle-end/52939 | |
7074 | + | |
7075 | + * gimple-fold.c (gimple_get_virt_method_for_binfo): Bail out if | |
7076 | + fold_ctor_reference returns a zero constant. | |
7077 | + | |
7078 | +2012-04-13 H.J. Lu <hongjiu.lu@intel.com> | |
7079 | + | |
7080 | + Backported from mainline | |
7081 | + 2012-04-13 H.J. Lu <hongjiu.lu@intel.com> | |
7082 | + | |
7083 | + * config/i386/i386-c.c (ix86_target_macros): Define _ILP32 | |
7084 | + and __ILP32__ for x32. | |
7085 | + | |
7086 | +2012-04-13 Tom de Vries <tom@codesourcery.com> | |
7087 | + | |
7088 | + Backport from mainline r186418. | |
7089 | + | |
7090 | + 2012-04-13 Tom de Vries <tom@codesourcery.com> | |
7091 | + | |
7092 | + * tree-ssa-tail-merge.c (gsi_advance_bw_nondebug_nonlocal): Add | |
7093 | + parameters vuse and vuse_escaped. | |
7094 | + (find_duplicate): Init vuse1, vuse2 and vuse_escaped. Pass to | |
7095 | + gsi_advance_bw_nondebug_nonlocal. Return if vuse_escaped and | |
7096 | + vuse1 != vuse2. | |
7097 | + | |
7098 | +2012-04-13 Richard Guenther <rguenther@suse.de> | |
7099 | + | |
7100 | + PR tree-optimization/52969 | |
7101 | + * tree-if-conv.c (predicate_mem_writes): Properly gimplify | |
7102 | + the condition for the COND_EXPR and handle predicate negation | |
7103 | + by swapping the COND_EXPR arms. | |
7104 | + | |
7105 | +2012-04-13 Richard Guenther <rguenther@suse.de> | |
7106 | + | |
7107 | + PR c/52862 | |
7108 | + * convert.c (convert_to_pointer): Remove special-casing of | |
7109 | + zero. | |
7110 | + | |
7111 | +2012-04-12 Michael Meissner <meissner@linux.vnet.ibm.com> | |
7112 | + | |
7113 | + Backport from mainline | |
7114 | + 2012-04-12 Michael Meissner <meissner@linux.vnet.ibm.com> | |
7115 | + | |
7116 | + PR target/52775 | |
7117 | + * config/rs6000/rs6000.h (TARGET_FCFID): Add TARGET_PPC_GPOPT to | |
7118 | + the list of options to enable the FCFID instruction. | |
7119 | + (TARGET_EXTRA_BUILTINS): Adjust comment. | |
7120 | + | |
7121 | +2012-04-12 Richard Guenther <rguenther@suse.de> | |
7122 | + | |
7123 | + PR tree-optimization/52943 | |
7124 | + * tree-chrec.h (chrec_is_positive): Remove. | |
7125 | + * tree-scalar-evolution.c (chrec_is_positive): Move ... | |
7126 | + * tree-data-ref.c (chrec_is_positive): ... here. Make static. | |
7127 | + Return false for a constant zero instead of negative. | |
7128 | + (analyze_siv_subscript_cst_affine): Handle zero difference | |
7129 | + in the initial condition explicitely. | |
7130 | + | |
7131 | +2012-04-10 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> | |
7132 | + | |
7133 | + PR middle-end/52894 | |
7134 | + * varasm.c (process_pending_assemble_externals): Set | |
7135 | + pending_assemble_externals_processed true. | |
7136 | + (assemble_external): Call assemble_external_real if the pending | |
7137 | + assemble externals have been processed. | |
7138 | + | |
7139 | +2012-04-09 Eric Botcazou <ebotcazou@adacore.com> | |
7140 | + | |
7141 | + PR target/52717 | |
7142 | + * config/sparc/sparc.c (sparc_file_end): Set TREE_PUBLIC explicitly on | |
7143 | + the DECL generated for the special GOT helper. | |
7144 | + | |
7145 | +2012-04-06 Walter Lee <walt@tilera.com> | |
7146 | + | |
7147 | + Backport from mainline | |
7148 | + 2012-03-07 Walter Lee <walt@tilera.com> | |
7149 | + | |
7150 | + * config/tilegx/tilegx.c (tilegx_expand_prologue): Don't generate | |
7151 | + REG_CFA_* notes for the stack pointer. | |
7152 | + (tilegx_expand_epilogue): Restore stack pointer by adjusting it by | |
7153 | + EH_RETURN_STACKADJ_RTX. | |
7154 | + * config/tilepro/tilepro.c (tilepro_expand_prologue): Don't | |
7155 | + generate REG_CFA_* notes for the stack pointer. | |
7156 | + (tilepro_expand_epilogue): Restore stack pointer by adjusting it | |
7157 | + by EH_RETURN_STACKADJ_RTX. | |
7158 | + | |
7159 | +2012-04-06 Matt Turner <mattst88@gmail.com> | |
7160 | + | |
7161 | + * doc/install.texi: Correct typo "-mno-lsc" -> "-mno-llsc". | |
7162 | + | |
7163 | +2012-04-06 Eric Botcazou <ebotcazou@adacore.com> | |
7164 | + | |
7165 | + * config/ia64/ia64.c (ia64_load_pair_ok): Return 0 if the second member | |
7166 | + of the destination isn't also a FP_REGS register. | |
7167 | + | |
7168 | +2012-04-03 Richard Guenther <rguenther@suse.de> | |
7169 | + | |
7170 | + Backport from mainline | |
7171 | + 2012-03-02 Richard Guenther <rguenther@suse.de> | |
7172 | + | |
7173 | + PR tree-optimization/52406 | |
7174 | + * tree-data-ref.h: Update documentation about DR_BASE_OBJECT. | |
7175 | + (struct indices): Add unconstrained_base member. | |
7176 | + (struct dr_alias): Remove unused vops member. | |
7177 | + (DR_UNCONSTRAINED_BASE): New define. | |
7178 | + * tree-data-ref.c (dr_analyze_indices): For COMPONENT_REFs | |
7179 | + add indices to allow their disambiguation. Make DR_BASE_OBJECT | |
7180 | + be an artificial access that covers the whole indexed object, | |
7181 | + or mark it with DR_UNCONSTRAINED_BASE if we cannot do so. Canonicalize | |
7182 | + plain decl base-objects to their MEM_REF variant. | |
7183 | + (dr_may_alias_p): When the base-object of either data reference | |
7184 | + has unknown size use only points-to information. | |
7185 | + (compute_affine_dependence): Make dumps easier to read and | |
7186 | + more verbose. | |
7187 | + * tree-vect-data-ref.c (vector_alignment_reachable_p): Use | |
7188 | + DR_REF when looking for packed references. | |
7189 | + (vect_supportable_dr_alignment): Likewise. | |
7190 | + | |
7191 | +2012-04-03 Richard Guenther <rguenther@suse.de> | |
7192 | + | |
7193 | + Backport from mainline | |
7194 | + 2012-03-15 Richard Guenther <rguenther@suse.de> | |
7195 | + | |
7196 | + PR middle-end/52580 | |
7197 | + * tree-data-ref.c (subscript_dependence_tester_1): Check | |
7198 | + all dimensions for non-conflicting access functions. | |
7199 | + | |
7200 | +2012-04-03 Richard Guenther <rguenther@suse.de> | |
7201 | + | |
7202 | + Backport from mainline | |
7203 | + 2012-03-06 Richard Guenther <rguenther@suse.de> | |
7204 | + | |
7205 | + PR middle-end/52493 | |
7206 | + * tree-ssa-alias.c (ptr_derefs_may_alias_p): Robustify. | |
7207 | + | |
7208 | + 2012-03-23 Richard Guenther <rguenther@suse.de> | |
7209 | + | |
7210 | + PR tree-optimization/52678 | |
7211 | + * tree-vectorizer.h (struct _stmt_vec_info): Add | |
7212 | + loop_phi_evolution_part member. | |
7213 | + (STMT_VINFO_LOOP_PHI_EVOLUTION_PART): New define. | |
7214 | + * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Initialize | |
7215 | + STMT_VINFO_LOOP_PHI_EVOLUTION_PART. | |
7216 | + * tree-vect-loop-manip.c (vect_update_ivs_after_vectorizer): | |
7217 | + Use the cached evolution part and the PHI nodes value from | |
7218 | + the loop preheader edge instead of re-analyzing the evolution. | |
7219 | + | |
7220 | + 2012-03-26 Richard Guenther <rguenther@suse.de> | |
7221 | + | |
7222 | + PR tree-optimization/52701 | |
7223 | + * tree-vect-loop.c (vect_analyze_scalar_cycles_1): Always | |
7224 | + compute and set the evolution part of PHI nodes. | |
7225 | + | |
7226 | + 2012-03-30 Richard Guenther <rguenther@suse.de> | |
7227 | + | |
7228 | + PR tree-optimization/52754 | |
7229 | + * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Only | |
7230 | + propagate arbitrary addresses into really plain dereferences. | |
7231 | + | |
7232 | +2012-04-03 Jakub Jelinek <jakub@redhat.com> | |
7233 | + | |
7234 | + PR tree-optimization/52835 | |
7235 | + * tree-data-ref.c (build_rdg): Return NULL if | |
7236 | + compute_data_dependences_for_loop failed. | |
7237 | + | |
7238 | +2012-03-31 Eric Botcazou <ebotcazou@adacore.com> | |
7239 | + | |
7240 | + * tree-cfg.c (call_can_make_abnormal_goto): New predicate. | |
7241 | + (stmt_can_make_abnormal_goto): Use it. | |
7242 | + (is_ctrl_altering_stmt): Likewise. | |
7243 | + | |
7244 | +2012-03-31 Martin Jambor <mjambor@suse.cz> | |
7245 | + | |
7246 | + Backported from mainline | |
7247 | + 2012-03-30 Martin Jambor <mjambor@suse.cz> | |
7248 | + | |
7249 | + * tree-ssa-ccp.c (insert_clobbers_for_var): Do not assert that there | |
7250 | + is a builtin_stack_save in a dominating BB. | |
7251 | + | |
7252 | +2012-03-29 Uros Bizjak <ubizjak@gmail.com> | |
7253 | + | |
7254 | + * config/i386/sse.md (avx_h<plusminus_insn>v4df3): Fix results | |
7255 | + crossing 128bit lane boundary. | |
7256 | + | |
7257 | +2012-03-29 Uros Bizjak <ubizjak@gmail.com> | |
7258 | + | |
7259 | + Backported from mainline | |
7260 | + 2012-03-27 Uros Bizjak <ubizjak@gmail.com> | |
7261 | + | |
7262 | + PR target/52698 | |
7263 | + * config/i386/i386-protos.h (ix86_legitimize_reload_address): | |
7264 | + New prototype. | |
7265 | + * config/i386/i386.h (LEGITIMIZE_RELOAD_ADDRESS): New define. | |
7266 | + * config/i386/i386.c: Include reload.h. | |
7267 | + (ix86_legitimize_reload_address): New function. | |
7268 | + | |
7269 | +2012-03-28 Martin Jambor <mjambor@suse.cz> | |
7270 | + | |
7271 | + Backported from mainline | |
7272 | + 2012-03-27 Martin Jambor <mjambor@suse.cz> | |
7273 | + | |
7274 | + PR middle-end/52693 | |
7275 | + * tree-sra.c (sra_modify_assign): Do not call | |
7276 | + load_assign_lhs_subreplacements when working with an unscalarizable | |
7277 | + region. | |
7278 | + | |
7279 | +2012-03-28 Jakub Jelinek <jakub@redhat.com> | |
7280 | + | |
7281 | + PR middle-end/52691 | |
7282 | + * tree-ssa-ccp.c (optimize_stdarg_builtin): Optimize | |
7283 | + __builtin_va_start to __builtin_next_arg if the latter is | |
7284 | + builtin_decl_explicit_p rather than when it is not. | |
7285 | + | |
7286 | + PR middle-end/52750 | |
7287 | + * tree-vect-generic.c (vector_element): Perform multiplication | |
7288 | + for pos in bitsizetype type instead of idx type. | |
7289 | + | |
7290 | +2012-03-28 Georg-Johann Lay <avr@gjlay.de> | |
7291 | + | |
7292 | + Backport from 2012-03-28 mainline r185910. | |
7293 | + | |
7294 | + PR target/52692 | |
7295 | + * config/avr/avr.c (TARGET_BUILTIN_DECL): New define. | |
7296 | + (avr_builtin_decl): New static function. | |
7297 | + (struct avr_builtin_description, avr_bdesc): Move up. | |
7298 | + Add GTY marker. Add field fndecl. Remove redundant field id. | |
7299 | + (avr_init_builtins): Initialize avr_bdesc[ID].fndecl. | |
7300 | + (avr_expand_builtin): Code cleanup because .id is removed. | |
7301 | + | |
7302 | +2012-03-28 Aurelien Buhrig <aurelien.buhrig.gcc@gmail.com> | |
7303 | + | |
7304 | + PR middle-end/51893 | |
7305 | + * expmed.c (store_bit_field_1): Fix wordnum value for big-endian | |
7306 | + targets. | |
7307 | + | |
7308 | +2012-03-28 Georg-Johann Lay <avr@gjlay.de> | |
7309 | + | |
7310 | + Backport from 2012-03-28 mainline r185907. | |
7311 | + | |
7312 | + PR target/52737 | |
7313 | + * config.gcc (tm_file): Remove avr/multilib.h. | |
7314 | + | |
7315 | + * doc/invoke.texi (AVR Options): Adjust | |
7316 | + documentation of -mtiny-stack. | |
7317 | + | |
7318 | + * config/avr/genmultilib.awk: Remove code to generate multilib.h. | |
7319 | + (BEGIN): Use -msp8 as multilib option instead of -mtiny-stack. | |
7320 | + * config/avr/t-avr: Remove generation of multilib.h. | |
7321 | + * config/avr/t-multilib: Regenerate. | |
7322 | + * config/avr/multilib.h: Remove. | |
7323 | + * config/avr/avr.opt (-msp8): New option. | |
7324 | + (avr_sp8): New variable. | |
7325 | + * config/avr/driver-avr.c (avr_device_to_sp8): New function. | |
7326 | + * config/avr/avr.h (AVR_HAVE_SPH): New define. | |
7327 | + (AVR_HAVE_8BIT_SP): Also set by avr_sp8 i.e. -msp8. | |
7328 | + (avr_device_to_sp8): New prototype. | |
7329 | + (EXTRA_SPEC_FUNCTIONS): Add { "device_to_sp8", avr_device_to_sp8 } | |
7330 | + (DRIVER_SELF_SPECS): New define. | |
7331 | + * config/avr/avr-c.c (avr_cpu_cpp_builtins): New built-in defines: | |
7332 | + __AVR_SP8__, __AVR_HAVE_SPH__. | |
7333 | + * config/avr/avr.c (output_movhi): Use AVR_HAVE_SPH instead of | |
7334 | + AVR_HAVE_8BIT_SP to decide if SP_H is present. | |
7335 | + (avr_file_start): Ditto. | |
7336 | + | |
7337 | +2012-03-28 Jakub Jelinek <jakub@redhat.com> | |
7338 | + | |
7339 | + PR target/52736 | |
7340 | + * config/i386/sse.md (sse2_loadlpd splitter): Use offset 0 | |
7341 | + instead of 8 in adjust_address. | |
7342 | + | |
7343 | +2012-03-27 Eric Botcazou <ebotcazou@adacore.com> | |
7344 | + | |
7345 | + * expmed.c (store_bit_field): Assert that BITREGION_START is a multiple | |
7346 | + of a unit before computing the offset in units. | |
7347 | + | |
7348 | +2012-03-27 Richard Guenther <rguenther@suse.de> | |
7349 | + | |
7350 | + PR middle-end/52720 | |
7351 | + * fold-const.c (try_move_mult_to_index): Handle &x.array more | |
7352 | + explicitely. | |
7353 | + | |
7354 | +2012-03-24 Eric Botcazou <ebotcazou@adacore.com> | |
7355 | + | |
7356 | + PR target/52610 | |
7357 | + * config/sparc/sparc.h (ASM_CPU_SPEC): Pass -Av8 if -mcpu=leon. | |
7358 | + | |
7359 | +2012-03-24 Steven Bosscher <steven@gcc.gnu.org> | |
7360 | + | |
7361 | + PR middle-end/52640 | |
7362 | + * varasm.c: Include pointer-set.h. | |
7363 | + (pending_assemble_externals_set): New pointer set. | |
7364 | + (process_pending_assemble_externals): Destroy the pointer set. | |
7365 | + (assemble_external): See if decl is in pending_assemble_externals_set, | |
7366 | + and add it to pending_assemble_externals if necessary. | |
7367 | + (init_varasm_once): Allocate pending_assemble_externals_set. | |
7368 | + | |
7369 | +2012-03-23 Michael Meissner <meissner@linux.vnet.ibm.com> | |
7370 | + | |
7371 | + Backported from mainline | |
7372 | + 2012-03-06 Michael Meissner <meissner@linux.vnet.ibm.com> | |
7373 | + | |
7374 | + PR target/50310 | |
7375 | + * config/rs6000/vector.md (vector_uneq<mode>): Add support for | |
7376 | + UNEQ, LTGT, ORDERED, and UNORDERED IEEE vector comparisons. | |
7377 | + (vector_ltgt<mode>): Likewise. | |
7378 | + (vector_ordered<mode>): Likewise. | |
7379 | + (vector_unordered<mode>): Likewise. | |
7380 | + * config/rs6000/rs6000.c (rs6000_emit_vector_compare_inner): Likewise. | |
7381 | + | |
7382 | +2012-03-23 Joern Rennecke <joern.rennecke@embecosm.com> | |
7383 | + | |
7384 | + * config/epiphany/epiphany.c (epiphany_function_value_regno_p): | |
7385 | + Make static. | |
7386 | + | |
7387 | +2012-03-22 Kaz Kojima <kkojima@gcc.gnu.org> | |
7388 | + | |
7389 | + Backported from mainline | |
7390 | + 2012-03-02 Kaz Kojima <kkojima@gcc.gnu.org> | |
7391 | + | |
7392 | + PR target/48596 | |
7393 | + PR target/48806 | |
7394 | + * config/sh/sh.c (sh_register_move_cost): Increase cost between | |
7395 | + GENERAL_REGS and FP_REGS for SImode. | |
7396 | + | |
7397 | +2012-03-22 Jakub Jelinek <jakub@redhat.com> | |
7398 | + | |
7399 | + PR middle-end/52547 | |
7400 | + * tree-nested.c (convert_tramp_reference_stmt): Call declare_vars | |
7401 | + on any new_local_var_chain vars declared during recursing on | |
7402 | + GIMPLE_OMP_PARALLEL or GIMPLE_OMP_TASK body. | |
7403 | + | |
7404 | +2012-03-22 Georg-Johann Lay <avr@gjlay.de> | |
7405 | + | |
7406 | + Backport from 2012-03-22 mainline r185692. | |
7407 | + | |
7408 | + PR target/52496 | |
7409 | + * config/avr/avr.md (unspec): Remove UNSPEC_MEMORY_BARRIER. | |
7410 | + (unspecv): Add UNSPECV_MEMORY_BARRIER. | |
7411 | + (cli_sei): Use unspec_volatile instead of unspec for memory barrier. | |
7412 | + (delay_cycles_1, delay_cycles_2): Ditto. | |
7413 | + (delay_cycles_3, delay_cycles_4): Ditto. | |
7414 | + (nopv, *nopv): Ditto. | |
7415 | + (sleep, *sleep): Ditto. | |
7416 | + (wdr, *wdr): Ditto. | |
7417 | + | |
7418 | + Backport from 2012-03-21 mainline r185605. | |
7419 | + | |
7420 | + PR rtl-optimization/52543 | |
7421 | + PR target/52461 | |
7422 | + * config/avr/avr-protos.h (avr_load_lpm): New prototype. | |
7423 | + * config/avr/avr.c (avr_mode_dependent_address_p): New function. | |
7424 | + (TARGET_MODE_DEPENDENT_ADDRESS_P): New define. | |
7425 | + (avr_load_libgcc_p): Restrict to __flash loads. | |
7426 | + (avr_out_lpm): Only handle 1-byte loads from __flash. | |
7427 | + (avr_load_lpm): New function. | |
7428 | + (avr_find_unused_d_reg): Remove. | |
7429 | + (avr_out_lpm_no_lpmx): Remove. | |
7430 | + (adjust_insn_length): Handle ADJUST_LEN_LOAD_LPM. | |
7431 | + * config/avr/avr.md (unspec): Add UNSPEC_LPM. | |
7432 | + (load_<mode>_libgcc): Use UNSPEC_LPM instead of MEM. | |
7433 | + (load_<mode>, load_<mode>_clobber): New insns. | |
7434 | + (mov<mode>): For multi-byte move from non-generic | |
7435 | + 16-bit address spaces: Expand to load_<mode> resp. | |
7436 | + load_<mode>_clobber. | |
7437 | + (load<mode>_libgcc): Remove expander. | |
7438 | + (split-lpmx): Remove split. | |
7439 | + | |
7440 | + Backport from 2012-03-13 mainline r185329. | |
7441 | + | |
7442 | + PR target/52488 | |
7443 | + * config/avr/avr.c (avr_prologue_setup_frame): Cut down stack | |
7444 | + offset (size) to a value the insns can deal with. | |
7445 | + (expand_epilogue): Ditto. | |
7446 | + | |
7447 | + Backport from 2012-03-12 mainline r185256. | |
7448 | + | |
7449 | + PR target/52499 | |
7450 | + * config/avr/avr.c (avr_mode_code_base_reg_class): Change return | |
7451 | + type from reg_class_t to enum reg_class. | |
7452 | + * config/avr/avr-protos.h (avr_mode_code_base_reg_class): Ditto. | |
7453 | + | |
7454 | + Backport from 2012-03-12 mainline r185253. | |
7455 | + | |
7456 | + PR target/52148 | |
7457 | + * config/avr/avr.c (avr_out_movmem): Fix typo in output template | |
7458 | + for the case ADDR_SPACE_FLASH and AVR_HAVE_LPMX introduced in | |
7459 | + r184615 from 2012-02-28. | |
7460 | + | |
7461 | + Backport from 2012-03-08 mainline r185105. | |
7462 | + | |
7463 | + * config/avr/avr.md (*addhi3, addhi3_clobber): Add "w" alternative | |
7464 | + for constants in [-63,63]. | |
7465 | + | |
7466 | + Backport from 2012-03-08 mainline r185100. | |
7467 | + | |
7468 | + PR target/52496 | |
7469 | + * config/avr/avr.c (avr_mem_clobber): New static function. | |
7470 | + (avr_expand_delay_cycles): Add memory clobber operand to | |
7471 | + delay_cycles_1, delay_cycles_2, delay_cycles_3, delay_cycles_4. | |
7472 | + * config/avr/avr.md (unspec): Add UNSPEC_MEMORY_BARRIER. | |
7473 | + (enable_interrupt, disable_interrupt): New expander. | |
7474 | + (nopv, sleep, wdr): New expanders. | |
7475 | + (delay_cycles_1): Add memory clobber. | |
7476 | + (delay_cycles_2): Add memory clobber. | |
7477 | + (delay_cycles_3): Add memory clobber. | |
7478 | + (delay_cycles_4): Add memory clobber. | |
7479 | + (cli_sei): New insn from former "enable_interrupt", | |
7480 | + "disable_interrupt" with memory clobber. | |
7481 | + (*wdt): New insn from former "wdt" with memory clobber. | |
7482 | + (*nopv): Similar, but for "nopv". | |
7483 | + (*sleep): Similar, but for "sleep". | |
7484 | + | |
7485 | + Backport from 2012-03-07 mainline r185043. | |
7486 | + | |
7487 | + PR target/52484 | |
7488 | + * config/avr/avr.md (xload<mode>_A): Add R22... to register footprint. | |
7489 | + | |
7490 | + Backport from 2012-03-07 mainline r185032. | |
7491 | + | |
7492 | + PR target/52506 | |
7493 | + * gcc/config/avr/avr.c (expand_epilogue): Fix order of restoration | |
7494 | + to: RAMPZ, RAMPY, RAMPX, RAMPD. | |
7495 | + (expand_prologue): Only clear RAMPZ if it has effect on RAM-read. | |
7496 | + | |
7497 | + Backport from 2012-03-07 mainline r185031. | |
7498 | + | |
7499 | + PR target/52505 | |
7500 | + * config/avr/avr.c (avr_out_xload): Don't read unintentionally | |
7501 | + from RAM. | |
7502 | + * config/avr/avr.md (xload_8): Adjust insn length. | |
7503 | + | |
7504 | + Backport from 2012-03-07 mainline r185030. | |
7505 | + | |
7506 | + PR target/52461 | |
7507 | + * gcc/config/avr/avr.c (avr_out_lpm): Clear RAMPZ after usage | |
7508 | + if RAMPZ affects reading from RAM. | |
7509 | + | |
7510 | + Backport from 2012-03-05 mainline r184919. | |
7511 | + | |
7512 | + * config/avr/avr.md (*umaddqihi4.2): New insn-and-split. | |
7513 | + | |
7514 | +2012-03-22 Georg-Johann Lay <avr@gjlay.de> | |
7515 | + | |
7516 | + Backport from mainline r185259. | |
7517 | + | |
7518 | + PR other/52545 | |
7519 | + * output.h (SECTION_EXCLUDE, SECTION_MACH_DEP): Don't use | |
7520 | + SECTION_MACH_DEP reserved bits for SECTION_EXCLUDE. | |
7521 | + | |
7522 | +2012-03-22 Jakub Jelinek <jakub@redhat.com> | |
7523 | + | |
7524 | + Backported from mainline | |
7525 | + 2012-03-13 Jakub Jelinek <jakub@redhat.com> | |
7526 | + | |
7527 | + PR c/52577 | |
7528 | + * c-parser.c (c_parser_postfix_expression) | |
7529 | + <case RID_BUILTIN_SHUFFLE>: Call mark_exp_read on argument values. | |
7530 | + | |
7531 | + * config/i386/smmintrin.h: Avoid /* within a comment. | |
7532 | + * config/i386/nmmintrin.h: Likewise. | |
7533 | + | |
7534 | +2012-03-22 Richard Guenther <rguenther@suse.de> | |
7535 | + | |
7536 | + * BASE-VER: Set to 4.7.1. | |
7537 | + * DEV-PHASE: Set to prerelease. | |
7538 | + | |
7539 | 2012-03-22 Release Manager | |
7540 | ||
7541 | * GCC 4.7.0 released. | |
7542 | @@ -74,8 +879,8 @@ | |
7543 | 2012-03-07 Ralf Corsépius <ralf.corsepius@rtems.org> | |
7544 | ||
7545 | PR target/51417 | |
7546 | - * Makefile.in: Let install-gcc-ar depend on installdirs, gcc-ar$(exeext), | |
7547 | - gcc-nm$(exeext), gcc-ranlib$(exeext). | |
7548 | + * Makefile.in: Let install-gcc-ar depend on installdirs, | |
7549 | + gcc-ar$(exeext), gcc-nm$(exeext), gcc-ranlib$(exeext). | |
7550 | Don't double canonicalize if cross-compiling. | |
7551 | ||
7552 | 2012-03-06 Aldy Hernandez <aldyh@redhat.com> | |
7553 | @@ -234,7 +1039,7 @@ | |
7554 | 2012-03-01 Georg-Johann Lay <avr@gjlay.de> | |
7555 | ||
7556 | * config/avr/avr-c.c (avr_cpu_cpp_builtins): Restore built-in | |
7557 | - defines for __UINT24_MAX__, __INT24_MAX__, __INT24_MIN__ | |
7558 | + defines for __UINT24_MAX__, __INT24_MAX__, __INT24_MIN__ | |
7559 | unintentionally removed in r184616. | |
7560 | ||
7561 | 2012-03-01 Venkataramanan Kumar <venkataramanan.kumar@amd.com> | |
7562 | @@ -390,7 +1195,7 @@ | |
7563 | ||
7564 | * config/avr/avr-devices.c (avr_mcu_type): Adjust NULL part | |
7565 | of initializer to changes from r184614. | |
7566 | - | |
7567 | + | |
7568 | 2012-02-28 Richard Guenther <rguenther@suse.de> | |
7569 | ||
7570 | PR tree-optimization/52395 | |
7571 | Index: gcc/tree-vect-loop-manip.c | |
7572 | =================================================================== | |
7573 | --- gcc/tree-vect-loop-manip.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
7574 | +++ gcc/tree-vect-loop-manip.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
7575 | @@ -1797,13 +1797,12 @@ | |
7576 | !gsi_end_p (gsi) && !gsi_end_p (gsi1); | |
7577 | gsi_next (&gsi), gsi_next (&gsi1)) | |
7578 | { | |
7579 | - tree access_fn = NULL; | |
7580 | - tree evolution_part; | |
7581 | tree init_expr; | |
7582 | tree step_expr, off; | |
7583 | tree type; | |
7584 | tree var, ni, ni_name; | |
7585 | gimple_stmt_iterator last_gsi; | |
7586 | + stmt_vec_info stmt_info; | |
7587 | ||
7588 | phi = gsi_stmt (gsi); | |
7589 | phi1 = gsi_stmt (gsi1); | |
7590 | @@ -1822,45 +1821,34 @@ | |
7591 | } | |
7592 | ||
7593 | /* Skip reduction phis. */ | |
7594 | - if (STMT_VINFO_DEF_TYPE (vinfo_for_stmt (phi)) == vect_reduction_def) | |
7595 | + stmt_info = vinfo_for_stmt (phi); | |
7596 | + if (STMT_VINFO_DEF_TYPE (stmt_info) == vect_reduction_def) | |
7597 | { | |
7598 | if (vect_print_dump_info (REPORT_DETAILS)) | |
7599 | fprintf (vect_dump, "reduc phi. skip."); | |
7600 | continue; | |
7601 | } | |
7602 | ||
7603 | - access_fn = analyze_scalar_evolution (loop, PHI_RESULT (phi)); | |
7604 | - gcc_assert (access_fn); | |
7605 | - /* We can end up with an access_fn like | |
7606 | - (short int) {(short unsigned int) i_49, +, 1}_1 | |
7607 | - for further analysis we need to strip the outer cast but we | |
7608 | - need to preserve the original type. */ | |
7609 | - type = TREE_TYPE (access_fn); | |
7610 | - STRIP_NOPS (access_fn); | |
7611 | - evolution_part = | |
7612 | - unshare_expr (evolution_part_in_loop_num (access_fn, loop->num)); | |
7613 | - gcc_assert (evolution_part != NULL_TREE); | |
7614 | + type = TREE_TYPE (gimple_phi_result (phi)); | |
7615 | + step_expr = STMT_VINFO_LOOP_PHI_EVOLUTION_PART (stmt_info); | |
7616 | + step_expr = unshare_expr (step_expr); | |
7617 | ||
7618 | /* FORNOW: We do not support IVs whose evolution function is a polynomial | |
7619 | of degree >= 2 or exponential. */ | |
7620 | - gcc_assert (!tree_is_chrec (evolution_part)); | |
7621 | + gcc_assert (!tree_is_chrec (step_expr)); | |
7622 | ||
7623 | - step_expr = evolution_part; | |
7624 | - init_expr = unshare_expr (initial_condition_in_loop_num (access_fn, | |
7625 | - loop->num)); | |
7626 | - init_expr = fold_convert (type, init_expr); | |
7627 | + init_expr = PHI_ARG_DEF_FROM_EDGE (phi, loop_preheader_edge (loop)); | |
7628 | ||
7629 | off = fold_build2 (MULT_EXPR, TREE_TYPE (step_expr), | |
7630 | fold_convert (TREE_TYPE (step_expr), niters), | |
7631 | step_expr); | |
7632 | - if (POINTER_TYPE_P (TREE_TYPE (init_expr))) | |
7633 | + if (POINTER_TYPE_P (type)) | |
7634 | ni = fold_build_pointer_plus (init_expr, off); | |
7635 | else | |
7636 | - ni = fold_build2 (PLUS_EXPR, TREE_TYPE (init_expr), | |
7637 | - init_expr, | |
7638 | - fold_convert (TREE_TYPE (init_expr), off)); | |
7639 | + ni = fold_build2 (PLUS_EXPR, type, | |
7640 | + init_expr, fold_convert (type, off)); | |
7641 | ||
7642 | - var = create_tmp_var (TREE_TYPE (init_expr), "tmp"); | |
7643 | + var = create_tmp_var (type, "tmp"); | |
7644 | add_referenced_var (var); | |
7645 | ||
7646 | last_gsi = gsi_last_bb (exit_bb); | |
7647 | Index: gcc/testsuite/gcc.target/arm/pr52633.c | |
7648 | =================================================================== | |
7649 | --- gcc/testsuite/gcc.target/arm/pr52633.c (.../tags/gcc_4_7_0_release) (wersja 0) | |
7650 | +++ gcc/testsuite/gcc.target/arm/pr52633.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
7651 | @@ -0,0 +1,13 @@ | |
7652 | +/* PR tree-optimization/52633 */ | |
7653 | +/* { dg-do compile } */ | |
7654 | +/* { dg-require-effective-target arm_neon_ok } */ | |
7655 | +/* { dg-options "-march=armv7-a -mfloat-abi=softfp -mfpu=neon -O -ftree-vectorize" } */ | |
7656 | + | |
7657 | +void | |
7658 | +test (unsigned short *x, signed char *y) | |
7659 | +{ | |
7660 | + int i; | |
7661 | + for (i = 0; i < 32; i++) | |
7662 | + x[i] = (short) (y[i] << 5); | |
7663 | +} | |
7664 | + | |
7665 | Index: gcc/testsuite/gcc.target/arm/pr53187.c | |
7666 | =================================================================== | |
7667 | --- gcc/testsuite/gcc.target/arm/pr53187.c (.../tags/gcc_4_7_0_release) (wersja 0) | |
7668 | +++ gcc/testsuite/gcc.target/arm/pr53187.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
7669 | @@ -0,0 +1,13 @@ | |
7670 | +/* PR target/53187 */ | |
7671 | +/* { dg-do compile } */ | |
7672 | +/* { dg-options "-march=armv7-a -mfloat-abi=hard -O2" } */ | |
7673 | + | |
7674 | +void bar (int); | |
7675 | + | |
7676 | +void | |
7677 | +foo (int x, double y, double z) | |
7678 | +{ | |
7679 | + _Bool t = z >= y; | |
7680 | + if (!t || x) | |
7681 | + bar (t ? 1 : 16); | |
7682 | +} | |
7683 | Index: gcc/testsuite/gcc.target/powerpc/pr52775.c | |
7684 | =================================================================== | |
7685 | --- gcc/testsuite/gcc.target/powerpc/pr52775.c (.../tags/gcc_4_7_0_release) (wersja 0) | |
7686 | +++ gcc/testsuite/gcc.target/powerpc/pr52775.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
7687 | @@ -0,0 +1,16 @@ | |
7688 | +/* { dg-do compile { target { powerpc*-*-* && ilp32 } } } */ | |
7689 | +/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */ | |
7690 | +/* { dg-options "-O1 -mcpu=power4" } */ | |
7691 | +/* { dg-final { scan-assembler-times "fcfid" 2 } } */ | |
7692 | + | |
7693 | +double | |
7694 | +int_to_double (int *p) | |
7695 | +{ | |
7696 | + return (double)*p; | |
7697 | +} | |
7698 | + | |
7699 | +double | |
7700 | +long_long_to_double (long long *p) | |
7701 | +{ | |
7702 | + return (double)*p; | |
7703 | +} | |
7704 | Index: gcc/testsuite/gcc.target/powerpc/pr53199.c | |
7705 | =================================================================== | |
7706 | --- gcc/testsuite/gcc.target/powerpc/pr53199.c (.../tags/gcc_4_7_0_release) (wersja 0) | |
7707 | +++ gcc/testsuite/gcc.target/powerpc/pr53199.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
7708 | @@ -0,0 +1,50 @@ | |
7709 | +/* { dg-do compile { target { powerpc*-*-* } } } */ | |
7710 | +/* { dg-skip-if "" { powerpc*-*-darwin* } { "*" } { "" } } */ | |
7711 | +/* { dg-options "-O2 -mcpu=power6 -mavoid-indexed-addresses" } */ | |
7712 | +/* { dg-final { scan-assembler-times "lwbrx" 6 } } */ | |
7713 | +/* { dg-final { scan-assembler-times "stwbrx" 6 } } */ | |
7714 | + | |
7715 | +/* PR 51399: bswap gets an error if -mavoid-indexed-addresses was used in | |
7716 | + creating the two lwbrx instructions. */ | |
7717 | + | |
7718 | +long long | |
7719 | +load64_reverse_1 (long long *p) | |
7720 | +{ | |
7721 | + return __builtin_bswap64 (*p); | |
7722 | +} | |
7723 | + | |
7724 | +long long | |
7725 | +load64_reverse_2 (long long *p) | |
7726 | +{ | |
7727 | + return __builtin_bswap64 (p[1]); | |
7728 | +} | |
7729 | + | |
7730 | +long long | |
7731 | +load64_reverse_3 (long long *p, int i) | |
7732 | +{ | |
7733 | + return __builtin_bswap64 (p[i]); | |
7734 | +} | |
7735 | + | |
7736 | +void | |
7737 | +store64_reverse_1 (long long *p, long long x) | |
7738 | +{ | |
7739 | + *p = __builtin_bswap64 (x); | |
7740 | +} | |
7741 | + | |
7742 | +void | |
7743 | +store64_reverse_2 (long long *p, long long x) | |
7744 | +{ | |
7745 | + p[1] = __builtin_bswap64 (x); | |
7746 | +} | |
7747 | + | |
7748 | +void | |
7749 | +store64_reverse_3 (long long *p, long long x, int i) | |
7750 | +{ | |
7751 | + p[i] = __builtin_bswap64 (x); | |
7752 | +} | |
7753 | + | |
7754 | +long long | |
7755 | +reg_reverse (long long x) | |
7756 | +{ | |
7757 | + return __builtin_bswap64 (x); | |
7758 | +} | |
7759 | Index: gcc/testsuite/gcc.target/avr/torture/addr-space-1-0.c | |
7760 | =================================================================== | |
7761 | --- gcc/testsuite/gcc.target/avr/torture/addr-space-1-0.c (.../tags/gcc_4_7_0_release) (wersja 0) | |
7762 | +++ gcc/testsuite/gcc.target/avr/torture/addr-space-1-0.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
7763 | @@ -0,0 +1,6 @@ | |
7764 | +/* { dg-options "-std=gnu99" } */ | |
7765 | +/* { dg-do run } */ | |
7766 | + | |
7767 | +#define __as __flash | |
7768 | + | |
7769 | +#include "addr-space-1.h" | |
7770 | Index: gcc/testsuite/gcc.target/avr/torture/addr-space-1-1.c | |
7771 | =================================================================== | |
7772 | --- gcc/testsuite/gcc.target/avr/torture/addr-space-1-1.c (.../tags/gcc_4_7_0_release) (wersja 0) | |
7773 | +++ gcc/testsuite/gcc.target/avr/torture/addr-space-1-1.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
7774 | @@ -0,0 +1,6 @@ | |
7775 | +/* { dg-options "-std=gnu99 -Tavr51-flash1.x" } */ | |
7776 | +/* { dg-do run } */ | |
7777 | + | |
7778 | +#define __as __flash1 | |
7779 | + | |
7780 | +#include "addr-space-1.h" | |
7781 | Index: gcc/testsuite/gcc.target/avr/torture/addr-space-2-0.c | |
7782 | =================================================================== | |
7783 | --- gcc/testsuite/gcc.target/avr/torture/addr-space-2-0.c (.../tags/gcc_4_7_0_release) (wersja 0) | |
7784 | +++ gcc/testsuite/gcc.target/avr/torture/addr-space-2-0.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
7785 | @@ -0,0 +1,6 @@ | |
7786 | +/* { dg-options "-std=gnu99" } */ | |
7787 | +/* { dg-do run } */ | |
7788 | + | |
7789 | +#define __as __flash | |
7790 | + | |
7791 | +#include "addr-space-2.h" | |
7792 | Index: gcc/testsuite/gcc.target/avr/torture/addr-space-2-1.c | |
7793 | =================================================================== | |
7794 | --- gcc/testsuite/gcc.target/avr/torture/addr-space-2-1.c (.../tags/gcc_4_7_0_release) (wersja 0) | |
7795 | +++ gcc/testsuite/gcc.target/avr/torture/addr-space-2-1.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
7796 | @@ -0,0 +1,6 @@ | |
7797 | +/* { dg-options "-std=gnu99 -Tavr51-flash1.x" } */ | |
7798 | +/* { dg-do run } */ | |
7799 | + | |
7800 | +#define __as __flash1 | |
7801 | + | |
7802 | +#include "addr-space-2.h" | |
7803 | Index: gcc/testsuite/gcc.target/avr/torture/avr-torture.exp | |
7804 | =================================================================== | |
7805 | --- gcc/testsuite/gcc.target/avr/torture/avr-torture.exp (.../tags/gcc_4_7_0_release) (wersja 187293) | |
7806 | +++ gcc/testsuite/gcc.target/avr/torture/avr-torture.exp (.../branches/gcc-4_7-branch) (wersja 187293) | |
7807 | @@ -38,6 +38,7 @@ | |
7808 | { -O0 } \ | |
7809 | { -O1 } \ | |
7810 | { -O2 } \ | |
7811 | + { -Os -flto } \ | |
7812 | { -O2 -mcall-prologues } \ | |
7813 | { -O2 -fdata-sections } \ | |
7814 | { -O2 -fmerge-all-constants } \ | |
7815 | Index: gcc/testsuite/gcc.target/avr/torture/addr-space-1-x.c | |
7816 | =================================================================== | |
7817 | --- gcc/testsuite/gcc.target/avr/torture/addr-space-1-x.c (.../tags/gcc_4_7_0_release) (wersja 0) | |
7818 | +++ gcc/testsuite/gcc.target/avr/torture/addr-space-1-x.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
7819 | @@ -0,0 +1,6 @@ | |
7820 | +/* { dg-options "-std=gnu99" } */ | |
7821 | +/* { dg-do run } */ | |
7822 | + | |
7823 | +#define __as __memx | |
7824 | + | |
7825 | +#include "addr-space-1.h" | |
7826 | Index: gcc/testsuite/gcc.target/avr/torture/addr-space-1.h | |
7827 | =================================================================== | |
7828 | --- gcc/testsuite/gcc.target/avr/torture/addr-space-1.h (.../tags/gcc_4_7_0_release) (wersja 0) | |
7829 | +++ gcc/testsuite/gcc.target/avr/torture/addr-space-1.h (.../branches/gcc-4_7-branch) (wersja 187293) | |
7830 | @@ -0,0 +1,83 @@ | |
7831 | +#include <stdlib.h> | |
7832 | +#include <string.h> | |
7833 | + | |
7834 | +typedef struct | |
7835 | +{ | |
7836 | + char i1; | |
7837 | + short i2; | |
7838 | + long i4; | |
7839 | + long long i8; | |
7840 | + char str[2][10]; | |
7841 | +} a_t; | |
7842 | + | |
7843 | +const __as a_t A = | |
7844 | + { | |
7845 | + 12, 345, 678910, 1234567891011ll, | |
7846 | + { | |
7847 | + "xxx..xxx", | |
7848 | + "yyy..yyy" | |
7849 | + } | |
7850 | + }; | |
7851 | + | |
7852 | +const __as volatile a_t V = | |
7853 | + { | |
7854 | + 12+1, 345+1, 678910+1, 1234567891011ll+1, | |
7855 | + { | |
7856 | + "XXX..XXX", | |
7857 | + "YYY..YYY" | |
7858 | + } | |
7859 | + }; | |
7860 | + | |
7861 | +a_t A2; | |
7862 | +volatile a_t V2; | |
7863 | + | |
7864 | +int main (void) | |
7865 | +{ | |
7866 | + if (A.i1 != 12 | |
7867 | + || A.i1 != V.i1 -1) | |
7868 | + abort(); | |
7869 | + | |
7870 | + if (A.i2 != 345 | |
7871 | + || A.i2 != V.i2 -1) | |
7872 | + abort(); | |
7873 | + | |
7874 | + if (A.i4 != 678910 | |
7875 | + || A.i4 != V.i4 -1) | |
7876 | + abort(); | |
7877 | + | |
7878 | + if (A.i8 != 1234567891011ll | |
7879 | + || A.i8 != V.i8 -1) | |
7880 | + abort(); | |
7881 | + | |
7882 | + A2 = A; | |
7883 | + V2 = V; | |
7884 | + | |
7885 | + if (A2.i1 != 12 | |
7886 | + || A2.i1 != V2.i1 -1) | |
7887 | + abort(); | |
7888 | + | |
7889 | + if (A2.i2 != 345 | |
7890 | + || A2.i2 != V2.i2 -1) | |
7891 | + abort(); | |
7892 | + | |
7893 | + if (A2.i4 != 678910 | |
7894 | + || A2.i4 != V2.i4 -1) | |
7895 | + abort(); | |
7896 | + | |
7897 | + if (A2.i8 != 1234567891011ll | |
7898 | + || A2.i8 != V2.i8 -1) | |
7899 | + abort(); | |
7900 | + | |
7901 | + if (strcmp (A2.str[0], "xxx..xxx")) | |
7902 | + abort(); | |
7903 | + if (strcmp (A2.str[1], "yyy..yyy")) | |
7904 | + abort(); | |
7905 | + | |
7906 | + if (strcmp ((const char*) V2.str[0], "XXX..XXX")) | |
7907 | + abort(); | |
7908 | + if (strcmp ((const char*) V2.str[1], "YYY..YYY")) | |
7909 | + abort(); | |
7910 | + | |
7911 | + exit (0); | |
7912 | + return 0; | |
7913 | +} | |
7914 | Index: gcc/testsuite/gcc.target/avr/torture/addr-space-2-x.c | |
7915 | =================================================================== | |
7916 | --- gcc/testsuite/gcc.target/avr/torture/addr-space-2-x.c (.../tags/gcc_4_7_0_release) (wersja 0) | |
7917 | +++ gcc/testsuite/gcc.target/avr/torture/addr-space-2-x.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
7918 | @@ -0,0 +1,9 @@ | |
7919 | +/* { dg-options "-std=gnu99 -Wa,--no-warn" } */ | |
7920 | +/* { dg-do run } */ | |
7921 | + | |
7922 | +/* --no-warn because: "assembling 24-bit address needs binutils extension" | |
7923 | + see binutils PR13503. */ | |
7924 | + | |
7925 | +#define __as __memx | |
7926 | + | |
7927 | +#include "addr-space-2.h" | |
7928 | Index: gcc/testsuite/gcc.target/avr/torture/addr-space-2.h | |
7929 | =================================================================== | |
7930 | --- gcc/testsuite/gcc.target/avr/torture/addr-space-2.h (.../tags/gcc_4_7_0_release) (wersja 0) | |
7931 | +++ gcc/testsuite/gcc.target/avr/torture/addr-space-2.h (.../branches/gcc-4_7-branch) (wersja 187293) | |
7932 | @@ -0,0 +1,106 @@ | |
7933 | +extern void exit (int); | |
7934 | +extern void abort (void); | |
7935 | + | |
7936 | +typedef struct T | |
7937 | +{ | |
7938 | + char val; | |
7939 | + const __as struct T *l, *r; | |
7940 | +} tree; | |
7941 | + | |
7942 | +/* | |
7943 | + abcd | |
7944 | + / \ | |
7945 | + ab cd | |
7946 | + / \ / \ | |
7947 | + a b c d | |
7948 | +*/ | |
7949 | + | |
7950 | +const __as tree a = { 'a', 0, 0 }; | |
7951 | +const __as tree b = { 'b', 0, 0 }; | |
7952 | +const __as tree c = { 'c', 0, 0 }; | |
7953 | +const __as tree d = { 'd', 0, 0 }; | |
7954 | + | |
7955 | +const __as tree ab = { 'A', &a, &b }; | |
7956 | +const __as tree cd = { 'C', &c, &d }; | |
7957 | + | |
7958 | +const __as tree abcd = { '*', &ab, &cd }; | |
7959 | + | |
7960 | +static void | |
7961 | +test1 (void) | |
7962 | +{ | |
7963 | + if (abcd.val != '*') | |
7964 | + abort(); | |
7965 | + | |
7966 | + if (abcd.l->val != 'A') | |
7967 | + abort(); | |
7968 | + if (abcd.r->val != 'C') | |
7969 | + abort(); | |
7970 | + | |
7971 | + if (abcd.l->l->val != 'a') | |
7972 | + abort(); | |
7973 | + if (abcd.l->r->val != 'b') | |
7974 | + abort(); | |
7975 | + if (abcd.r->l->val != 'c') | |
7976 | + abort(); | |
7977 | + if (abcd.r->r->val != 'd') | |
7978 | + abort(); | |
7979 | +} | |
7980 | + | |
7981 | +static void | |
7982 | +test2 (const __as tree *t) | |
7983 | +{ | |
7984 | + if (t->val != '*') | |
7985 | + abort(); | |
7986 | + | |
7987 | + if (t->l->val != 'A') | |
7988 | + abort(); | |
7989 | + if (t->r->val != 'C') | |
7990 | + abort(); | |
7991 | + | |
7992 | + if (t->l->l->val != 'a') | |
7993 | + abort(); | |
7994 | + if (t->l->r->val != 'b') | |
7995 | + abort(); | |
7996 | + if (t->r->l->val != 'c') | |
7997 | + abort(); | |
7998 | + if (t->r->r->val != 'd') | |
7999 | + abort(); | |
8000 | +} | |
8001 | + | |
8002 | +static void | |
8003 | +test3 (const __as tree *pt) | |
8004 | +{ | |
8005 | + tree t = *pt; | |
8006 | + | |
8007 | + if (t.val != '*') | |
8008 | + abort(); | |
8009 | + | |
8010 | + if (t.l->val != 'A') | |
8011 | + abort(); | |
8012 | + if (t.r->val != 'C') | |
8013 | + abort(); | |
8014 | + | |
8015 | + if (t.l->l->val != 'a') | |
8016 | + abort(); | |
8017 | + if (t.l->r->val != 'b') | |
8018 | + abort(); | |
8019 | + if (t.r->l->val != 'c') | |
8020 | + abort(); | |
8021 | + if (t.r->r->val != 'd') | |
8022 | + abort(); | |
8023 | +} | |
8024 | + | |
8025 | +int main (void) | |
8026 | +{ | |
8027 | + const __as tree *t = &abcd; | |
8028 | + test1(); | |
8029 | + test2 (&abcd); | |
8030 | + test3 (&abcd); | |
8031 | + | |
8032 | + __asm ("" : "+r" (t)); | |
8033 | + test2 (t); | |
8034 | + test3 (t); | |
8035 | + | |
8036 | + exit (0); | |
8037 | + return 0; | |
8038 | +} | |
8039 | Index: gcc/testsuite/gcc.target/avr/torture/addr-space-1-g.c | |
8040 | =================================================================== | |
8041 | --- gcc/testsuite/gcc.target/avr/torture/addr-space-1-g.c (.../tags/gcc_4_7_0_release) (wersja 0) | |
8042 | +++ gcc/testsuite/gcc.target/avr/torture/addr-space-1-g.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
8043 | @@ -0,0 +1,6 @@ | |
8044 | +/* { dg-options "-std=gnu99" } */ | |
8045 | +/* { dg-do run } */ | |
8046 | + | |
8047 | +#define __as | |
8048 | + | |
8049 | +#include "addr-space-1.h" | |
8050 | Index: gcc/testsuite/gcc.target/avr/torture/addr-space-2-g.c | |
8051 | =================================================================== | |
8052 | --- gcc/testsuite/gcc.target/avr/torture/addr-space-2-g.c (.../tags/gcc_4_7_0_release) (wersja 0) | |
8053 | +++ gcc/testsuite/gcc.target/avr/torture/addr-space-2-g.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
8054 | @@ -0,0 +1,6 @@ | |
8055 | +/* { dg-options "-std=gnu99" } */ | |
8056 | +/* { dg-do run } */ | |
8057 | + | |
8058 | +#define __as | |
8059 | + | |
8060 | +#include "addr-space-2.h" | |
8061 | Index: gcc/testsuite/gcc.target/avr/torture/builtins-2.c | |
8062 | =================================================================== | |
8063 | --- gcc/testsuite/gcc.target/avr/torture/builtins-2.c (.../tags/gcc_4_7_0_release) (wersja 0) | |
8064 | +++ gcc/testsuite/gcc.target/avr/torture/builtins-2.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
8065 | @@ -0,0 +1,46 @@ | |
8066 | +/* { dg-options "-std=gnu99 -Tavr51-flash1.x" } */ | |
8067 | +/* { dg-do run } */ | |
8068 | + | |
8069 | +#include <stdlib.h> | |
8070 | +#include "../progmem.h" | |
8071 | + | |
8072 | +int volatile a; | |
8073 | + | |
8074 | +void f1 (void) | |
8075 | +{ | |
8076 | + __builtin_avr_sei (); | |
8077 | + __builtin_avr_cli (); | |
8078 | + __builtin_avr_wdr (); | |
8079 | + __builtin_avr_sleep (); | |
8080 | + __builtin_avr_nop (); | |
8081 | + a = __builtin_avr_swap (a); | |
8082 | + a = __builtin_avr_fmul (1,a); | |
8083 | + a = __builtin_avr_fmuls (1,a); | |
8084 | + a = __builtin_avr_fmulsu (1,a); | |
8085 | + a = __builtin_avr_insert_bits (0x1f2f5364, a, a); | |
8086 | +} | |
8087 | + | |
8088 | +const __flash char c0 = 1; | |
8089 | +const __flash1 char c1 = 1; | |
8090 | + | |
8091 | +int main (void) | |
8092 | +{ | |
8093 | + const __memx void *p; | |
8094 | + | |
8095 | + f1(); | |
8096 | + __builtin_avr_delay_cycles (1000); | |
8097 | + | |
8098 | + p = &c0; | |
8099 | + if (__builtin_avr_flash_segment (p) != 0) | |
8100 | + abort(); | |
8101 | + | |
8102 | + p = &c1; | |
8103 | + if (__builtin_avr_flash_segment (p) != 1) | |
8104 | + abort(); | |
8105 | + | |
8106 | + if (__builtin_avr_flash_segment ("p") != -1) | |
8107 | + abort(); | |
8108 | + | |
8109 | + exit (0); | |
8110 | + return 0; | |
8111 | +} | |
8112 | Index: gcc/testsuite/gcc.target/avr/progmem.h | |
8113 | =================================================================== | |
8114 | --- gcc/testsuite/gcc.target/avr/progmem.h (.../tags/gcc_4_7_0_release) (wersja 187293) | |
8115 | +++ gcc/testsuite/gcc.target/avr/progmem.h (.../branches/gcc-4_7-branch) (wersja 187293) | |
8116 | @@ -5,6 +5,7 @@ | |
8117 | static const char __c[] PROGMEM = (s); \ | |
8118 | &__c[0];})) | |
8119 | ||
8120 | +#ifdef __AVR_HAVE_LPMX__ | |
8121 | #define pgm_read_char(addr) \ | |
8122 | (__extension__({ \ | |
8123 | unsigned int __addr16 = (unsigned int)(addr); \ | |
8124 | @@ -12,3 +13,13 @@ | |
8125 | __asm__ ("lpm %0, %a1" \ | |
8126 | : "=r" (__result) : "z" (__addr16)); \ | |
8127 | __result; })) | |
8128 | +#else | |
8129 | +#define pgm_read_char(addr) \ | |
8130 | + (__extension__({ \ | |
8131 | + unsigned int __addr16 = (unsigned int)(addr); \ | |
8132 | + char __result; \ | |
8133 | + __asm__ ("lpm" "\n\t" \ | |
8134 | + "mov %0, r0" \ | |
8135 | + : "=r" (__result) : "z" (__addr16)); \ | |
8136 | + __result; })) | |
8137 | +#endif | |
8138 | Index: gcc/testsuite/gcc.target/i386/avx2-vpermps-1.c | |
8139 | =================================================================== | |
8140 | --- gcc/testsuite/gcc.target/i386/avx2-vpermps-1.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
8141 | +++ gcc/testsuite/gcc.target/i386/avx2-vpermps-1.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
8142 | @@ -5,9 +5,10 @@ | |
8143 | #include <immintrin.h> | |
8144 | ||
8145 | __m256 x; | |
8146 | +__m256i y; | |
8147 | ||
8148 | void extern | |
8149 | avx2_test (void) | |
8150 | { | |
8151 | - x = _mm256_permutevar8x32_ps (x, x); | |
8152 | + x = _mm256_permutevar8x32_ps (x, y); | |
8153 | } | |
8154 | Index: gcc/testsuite/gcc.target/i386/avx2-vpermps-2.c | |
8155 | =================================================================== | |
8156 | --- gcc/testsuite/gcc.target/i386/avx2-vpermps-2.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
8157 | +++ gcc/testsuite/gcc.target/i386/avx2-vpermps-2.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
8158 | @@ -8,7 +8,7 @@ | |
8159 | #define NUM 10 | |
8160 | ||
8161 | static void | |
8162 | -init_permps (float *src1, float *src2, int seed) | |
8163 | +init_permps (float *src1, int *src2, int seed) | |
8164 | { | |
8165 | int i, sign = 1; | |
8166 | ||
8167 | @@ -21,24 +21,24 @@ | |
8168 | } | |
8169 | ||
8170 | static void | |
8171 | -calc_permps (float *src1, float *src2, float *dst) | |
8172 | +calc_permps (float *src1, int *src2, float *dst) | |
8173 | { | |
8174 | int i; | |
8175 | unsigned temp; | |
8176 | - unsigned *idx = (int *) src1; | |
8177 | ||
8178 | memcpy (dst, src1, 32); | |
8179 | for (i = 0; i < 8; i++) | |
8180 | { | |
8181 | - temp = idx[i]; | |
8182 | - dst[i] = src2[temp & 7]; | |
8183 | + temp = src2[i]; | |
8184 | + dst[i] = src1[temp & 7]; | |
8185 | } | |
8186 | } | |
8187 | ||
8188 | static void | |
8189 | avx2_test (void) | |
8190 | { | |
8191 | - union256 src1, src2, dst; | |
8192 | + union256 src1, dst; | |
8193 | + union256i_d src2; | |
8194 | float dst_ref[8]; | |
8195 | int i; | |
8196 | ||
8197 | Index: gcc/testsuite/gcc.target/i386/pr52736.c | |
8198 | =================================================================== | |
8199 | --- gcc/testsuite/gcc.target/i386/pr52736.c (.../tags/gcc_4_7_0_release) (wersja 0) | |
8200 | +++ gcc/testsuite/gcc.target/i386/pr52736.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
8201 | @@ -0,0 +1,29 @@ | |
8202 | +/* PR target/52736 */ | |
8203 | +/* { dg-do run } */ | |
8204 | +/* { dg-options "-O1 -msse2" } */ | |
8205 | +/* { dg-require-effective-target sse2_runtime } */ | |
8206 | + | |
8207 | +#include <x86intrin.h> | |
8208 | + | |
8209 | +typedef double D __attribute__((may_alias)); | |
8210 | +__attribute__((aligned(16))) static const double r[4] = { 1., 5., 1., 3. }; | |
8211 | + | |
8212 | +__attribute__((noinline, noclone)) | |
8213 | +void | |
8214 | +foo (int x) | |
8215 | +{ | |
8216 | + asm volatile ("" : "+g" (x) : : "memory"); | |
8217 | + if (x != 3) | |
8218 | + __builtin_abort (); | |
8219 | +} | |
8220 | + | |
8221 | +int | |
8222 | +main () | |
8223 | +{ | |
8224 | + __m128d t = _mm_set1_pd (5.); | |
8225 | + ((D *)(&t))[0] = 1.; | |
8226 | + foo (_mm_movemask_pd (_mm_cmpeq_pd (t, _mm_load_pd (&r[0])))); | |
8227 | + ((D *)(&t))[1] = 3.; | |
8228 | + foo (_mm_movemask_pd (_mm_cmpeq_pd (t, _mm_load_pd (&r[2])))); | |
8229 | + return 0; | |
8230 | +} | |
8231 | Index: gcc/testsuite/gcc.target/i386/pr52754.c | |
8232 | =================================================================== | |
8233 | --- gcc/testsuite/gcc.target/i386/pr52754.c (.../tags/gcc_4_7_0_release) (wersja 0) | |
8234 | +++ gcc/testsuite/gcc.target/i386/pr52754.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
8235 | @@ -0,0 +1,33 @@ | |
8236 | +/* { dg-do run } */ | |
8237 | +/* { dg-options "-O2 -fpredictive-commoning -msse2 -std=c99" } */ | |
8238 | +/* { dg-require-effective-target sse2 } */ | |
8239 | + | |
8240 | +#include <x86intrin.h> | |
8241 | + | |
8242 | +#include "isa-check.h" | |
8243 | +#include "sse-os-support.h" | |
8244 | + | |
8245 | +int main() | |
8246 | +{ | |
8247 | + const float mem[8] = { 0, 1, 2, 3, 4, 5, 6, 7 }; | |
8248 | + | |
8249 | + unsigned int indexes[8]; | |
8250 | + for (unsigned int i = 0; i < 8; ++i) indexes[i] = i; | |
8251 | + | |
8252 | + check_isa (); | |
8253 | + | |
8254 | + if (!sse_os_support ()) | |
8255 | + exit (0); | |
8256 | + | |
8257 | + __m128 x = _mm_setr_ps(0, 1, 2, 3); | |
8258 | + for (unsigned int i = 0; i + 4 < 6; ++i) { | |
8259 | + const unsigned int *ii = &indexes[i]; | |
8260 | + const __m128 tmp = _mm_setr_ps(mem[ii[0]], mem[ii[1]], mem[ii[2]], mem[ii[3]]); | |
8261 | + if (0xf != _mm_movemask_ps(_mm_cmpeq_ps(tmp, x))) { | |
8262 | + __builtin_abort(); | |
8263 | + } | |
8264 | + x = _mm_add_ps(x, _mm_set1_ps(1)); | |
8265 | + } | |
8266 | + | |
8267 | + return 0; | |
8268 | +} | |
8269 | Index: gcc/testsuite/gcc.target/i386/avx2-vpermd-2.c | |
8270 | =================================================================== | |
8271 | --- gcc/testsuite/gcc.target/i386/avx2-vpermd-2.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
8272 | +++ gcc/testsuite/gcc.target/i386/avx2-vpermd-2.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
8273 | @@ -29,8 +29,8 @@ | |
8274 | memcpy (dst, src1, 32); | |
8275 | for (i = 0; i < 8; i++) | |
8276 | { | |
8277 | - temp = src1[i]; | |
8278 | - dst[i] = src2[temp & 7]; | |
8279 | + temp = src2[i]; | |
8280 | + dst[i] = src1[temp & 7]; | |
8281 | } | |
8282 | } | |
8283 | ||
8284 | Index: gcc/testsuite/gcc.target/ia64/pr52657.c | |
8285 | =================================================================== | |
8286 | --- gcc/testsuite/gcc.target/ia64/pr52657.c (.../tags/gcc_4_7_0_release) (wersja 0) | |
8287 | +++ gcc/testsuite/gcc.target/ia64/pr52657.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
8288 | @@ -0,0 +1,44 @@ | |
8289 | +/* { dg-do compile } */ | |
8290 | +/* { dg-options "-O" } */ | |
8291 | + | |
8292 | +typedef unsigned long int mp_limb_t; | |
8293 | + | |
8294 | +typedef struct | |
8295 | +{ | |
8296 | + int _mp_alloc; | |
8297 | + int _mp_size; | |
8298 | + mp_limb_t *_mp_d; | |
8299 | +} __mpz_struct; | |
8300 | + | |
8301 | +typedef __mpz_struct mpz_t[1]; | |
8302 | +typedef mp_limb_t * mp_ptr; | |
8303 | +typedef const mp_limb_t * mp_srcptr; | |
8304 | +typedef long int mp_size_t; | |
8305 | + | |
8306 | +extern mp_limb_t __gmpn_addmul_2 (mp_ptr, mp_srcptr, mp_size_t, mp_srcptr); | |
8307 | + | |
8308 | +void | |
8309 | +__gmpn_redc_2 (mp_ptr rp, mp_ptr up, mp_srcptr mp, mp_size_t n, mp_srcptr mip) | |
8310 | +{ | |
8311 | + mp_limb_t q[2]; | |
8312 | + mp_size_t j; | |
8313 | + mp_limb_t upn; | |
8314 | + | |
8315 | + for (j = n - 2; j >= 0; j -= 2) | |
8316 | + { | |
8317 | + mp_limb_t _ph, _pl; | |
8318 | + __asm__ ("xma.hu %0 = %3, %5, f0\n\t" | |
8319 | + "xma.l %1 = %3, %5, f0\n\t" | |
8320 | + ";;\n\t" | |
8321 | + "xma.l %0 = %3, %4, %0\n\t" | |
8322 | + ";;\n\t" | |
8323 | + "xma.l %0 = %2, %5, %0" | |
8324 | + : "=&f" (q[1]), "=&f" (q[0]) | |
8325 | + : "f" (mip[1]), "f" (mip[0]), "f" (up[1]), "f" (up[0])); | |
8326 | + upn = up[n]; | |
8327 | + up[1] = __gmpn_addmul_2 (up, mp, n, q); | |
8328 | + up[0] = up[n]; | |
8329 | + up[n] = upn; | |
8330 | + up += 2; | |
8331 | + } | |
8332 | +} | |
8333 | Index: gcc/testsuite/gcc.target/ia64/pr48496.c | |
8334 | =================================================================== | |
8335 | --- gcc/testsuite/gcc.target/ia64/pr48496.c (.../tags/gcc_4_7_0_release) (wersja 0) | |
8336 | +++ gcc/testsuite/gcc.target/ia64/pr48496.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
8337 | @@ -0,0 +1,24 @@ | |
8338 | +/* { dg-do compile } */ | |
8339 | +/* { dg-options "-O2" } */ | |
8340 | + | |
8341 | +typedef unsigned int UINT64 __attribute__((__mode__(__DI__))); | |
8342 | + | |
8343 | +typedef struct | |
8344 | +{ | |
8345 | + UINT64 x[2] __attribute__((aligned(16))); | |
8346 | +} fpreg; | |
8347 | + | |
8348 | +struct ia64_args | |
8349 | +{ | |
8350 | + fpreg fp_regs[8]; | |
8351 | + UINT64 gp_regs[8]; | |
8352 | +}; | |
8353 | + | |
8354 | +ffi_call(long i, long gpcount, long fpcount, void **avalue) | |
8355 | +{ | |
8356 | + struct ia64_args *stack; | |
8357 | + stack = __builtin_alloca (64); | |
8358 | + asm ("stf.spill %0 = %1%P0" : "=m" (*&stack->fp_regs[fpcount++]) | |
8359 | + : "f"(*(double *)avalue[i])); | |
8360 | + stack->gp_regs[gpcount++] = *(UINT64 *)avalue[i]; | |
8361 | +} | |
8362 | Index: gcc/testsuite/go.test/go-test.exp | |
8363 | =================================================================== | |
8364 | --- gcc/testsuite/go.test/go-test.exp (.../tags/gcc_4_7_0_release) (wersja 187293) | |
8365 | +++ gcc/testsuite/go.test/go-test.exp (.../branches/gcc-4_7-branch) (wersja 187293) | |
8366 | @@ -217,6 +217,13 @@ | |
8367 | return "" | |
8368 | } | |
8369 | } | |
8370 | + "powerpc*-*-*" { | |
8371 | + if [check_effective_target_ilp32] { | |
8372 | + set goarch "ppc" | |
8373 | + } else { | |
8374 | + set goarch "ppc64" | |
8375 | + } | |
8376 | + } | |
8377 | "sparc*-*-*" { | |
8378 | if [check_effective_target_ilp32] { | |
8379 | set goarch "sparc" | |
8380 | @@ -302,7 +309,7 @@ | |
8381 | } | |
8382 | ||
8383 | # Handle certain tests in a target-dependant way. | |
8384 | - if { [istarget "alpha*-*-*"] || [istarget "sparc*-*-solaris*"] } { | |
8385 | + if { [istarget "alpha*-*-*"] || [istarget "sparc*-*-solaris*"] || [istarget "powerpc*-*-*"] } { | |
8386 | if { [string match "*go.test/test/nilptr.go" $test] } { | |
8387 | untested $test | |
8388 | continue | |
8389 | Index: gcc/testsuite/lib/target-supports.exp | |
8390 | =================================================================== | |
8391 | --- gcc/testsuite/lib/target-supports.exp (.../tags/gcc_4_7_0_release) (wersja 187293) | |
8392 | +++ gcc/testsuite/lib/target-supports.exp (.../branches/gcc-4_7-branch) (wersja 187293) | |
8393 | @@ -2576,8 +2576,23 @@ | |
8394 | } "-mcpu=niagara3"] | |
8395 | } | |
8396 | ||
8397 | -# Return 1 if this is a Sparc target with VIS enabled. | |
8398 | +# Return 1 if this is a SPARC-V9 target. | |
8399 | ||
8400 | +proc check_effective_target_sparc_v9 { } { | |
8401 | + if { [istarget sparc*-*-*] } { | |
8402 | + return [check_no_compiler_messages sparc_v9 object { | |
8403 | + int main (void) { | |
8404 | + asm volatile ("return %i7+8"); | |
8405 | + return 0; | |
8406 | + } | |
8407 | + }] | |
8408 | + } else { | |
8409 | + return 0 | |
8410 | + } | |
8411 | +} | |
8412 | + | |
8413 | +# Return 1 if this is a SPARC target with VIS enabled. | |
8414 | + | |
8415 | proc check_effective_target_sparc_vis { } { | |
8416 | if { [istarget sparc*-*-*] } { | |
8417 | return [check_no_compiler_messages sparc_vis object { | |
8418 | @@ -3755,7 +3770,8 @@ | |
8419 | if { [istarget x86_64-*-*] | |
8420 | || [istarget i?86-*-*]) | |
8421 | || [istarget arm*-*-*] | |
8422 | - || [istarget alpha*-*-*] } { | |
8423 | + || [istarget alpha*-*-*] | |
8424 | + || ([istarget sparc*-*-*] && [check_effective_target_lp64]) } { | |
8425 | return 1 | |
8426 | } else { | |
8427 | return 0 | |
8428 | @@ -3800,6 +3816,10 @@ | |
8429 | } "" ] | |
8430 | } elseif { [istarget alpha*-*-*] } { | |
8431 | return 1 | |
8432 | + } elseif { ([istarget sparc*-*-*] | |
8433 | + && [check_effective_target_lp64] | |
8434 | + && [check_effective_target_ultrasparc_hw]) } { | |
8435 | + return 1 | |
8436 | } else { | |
8437 | return 0 | |
8438 | } | |
8439 | @@ -3825,8 +3845,7 @@ | |
8440 | || [istarget hppa*-*linux*] | |
8441 | || [istarget s390*-*-*] | |
8442 | || [istarget powerpc*-*-*] | |
8443 | - || [istarget sparc64-*-*] | |
8444 | - || [istarget sparcv9-*-*] | |
8445 | + || ([istarget sparc*-*-*] && [check_effective_target_sparc_v9]) | |
8446 | || [check_effective_target_mips_llsc] } { | |
8447 | set et_sync_int_long_saved 1 | |
8448 | } | |
8449 | @@ -3855,8 +3874,7 @@ | |
8450 | || [istarget hppa*-*linux*] | |
8451 | || [istarget s390*-*-*] | |
8452 | || [istarget powerpc*-*-*] | |
8453 | - || [istarget sparc64-*-*] | |
8454 | - || [istarget sparcv9-*-*] | |
8455 | + || ([istarget sparc*-*-*] && [check_effective_target_sparc_v9]) | |
8456 | || [check_effective_target_mips_llsc] } { | |
8457 | set et_sync_char_short_saved 1 | |
8458 | } | |
8459 | Index: gcc/testsuite/gfortran.dg/function_optimize_11.f90 | |
8460 | =================================================================== | |
8461 | --- gcc/testsuite/gfortran.dg/function_optimize_11.f90 (.../tags/gcc_4_7_0_release) (wersja 0) | |
8462 | +++ gcc/testsuite/gfortran.dg/function_optimize_11.f90 (.../branches/gcc-4_7-branch) (wersja 187293) | |
8463 | @@ -0,0 +1,17 @@ | |
8464 | +! { dg-do run } | |
8465 | +! { dg-options "-ffrontend-optimize" } | |
8466 | +! Do not move common functions out of implicit DO loop constructors. | |
8467 | +program test | |
8468 | + integer, parameter :: N = 4 | |
8469 | + integer, parameter :: dp=kind(1.d0) | |
8470 | + real(kind=dp), parameter :: pi=4*atan(1._dp) | |
8471 | + real(kind=dp), parameter :: eps = 1.e-14_dp | |
8472 | + real(kind=dp) :: h1(0:N-1), h2(0:N-1) | |
8473 | + integer i | |
8474 | + | |
8475 | + i = 1 | |
8476 | + h1 = [(cos(2*pi*mod(i*k,N)/N),k=0,N/2), & | |
8477 | + & (sin(2*pi*mod(i*k,N)/N),k=1,N/2-1)] | |
8478 | + h2 = (/ 1._dp, 0._dp, -1._dp, 1._dp /) | |
8479 | + if (any(abs(h1 - h2) > eps)) call abort | |
8480 | +end program test | |
8481 | Index: gcc/testsuite/gfortran.dg/constructor_7.f90 | |
8482 | =================================================================== | |
8483 | --- gcc/testsuite/gfortran.dg/constructor_7.f90 (.../tags/gcc_4_7_0_release) (wersja 0) | |
8484 | +++ gcc/testsuite/gfortran.dg/constructor_7.f90 (.../branches/gcc-4_7-branch) (wersja 187293) | |
8485 | @@ -0,0 +1,48 @@ | |
8486 | +! { dg-do compile } | |
8487 | +! { dg-options "-std=f95" } | |
8488 | +! | |
8489 | +! PR fortran/53111 | |
8490 | +! | |
8491 | + | |
8492 | +! ------------ INVALID ONE ------------------------ | |
8493 | + | |
8494 | +module m | |
8495 | +type t | |
8496 | + integer :: i | |
8497 | +end type t | |
8498 | +end | |
8499 | + | |
8500 | +module m2 | |
8501 | + interface t | |
8502 | + module procedure sub | |
8503 | + end interface t | |
8504 | +contains | |
8505 | + integer function sub() | |
8506 | + sub = 4 | |
8507 | + end function sub | |
8508 | +end module m2 | |
8509 | + | |
8510 | +! Note: The following is formally valid as long as "t" is not used. | |
8511 | +! For simplicity, -std=f95 will give an error. | |
8512 | +! It is unlikely that a real-world program is rejected with -std=f95 | |
8513 | +! because of that. | |
8514 | + | |
8515 | +use m ! { dg-error "Fortran 2003: Generic name 't' of function 'sub' at .1. being the same name as derived type at" } | |
8516 | +use m2 ! { dg-error "Fortran 2003: Generic name 't' of function 'sub' at .1. being the same name as derived type at" } | |
8517 | +! i = sub() ! << Truly invalid in F95, valid in F2003 | |
8518 | +end | |
8519 | + | |
8520 | +! ------------ INVALID TWO ------------------------ | |
8521 | + | |
8522 | +module m3 | |
8523 | +type t2 ! { dg-error "Fortran 2003: Generic name 't2' of function 'sub2' at .1. being the same name as derived type at" } | |
8524 | + integer :: i | |
8525 | +end type t2 | |
8526 | + interface t2 | |
8527 | + module procedure sub2 | |
8528 | + end interface t2 | |
8529 | +contains | |
8530 | + integer function sub2() ! { dg-error "Fortran 2003: Generic name 't2' of function 'sub2' at .1. being the same name as derived type at" } | |
8531 | + sub2 = 4 | |
8532 | + end function sub2 | |
8533 | +end module m3 | |
8534 | Index: gcc/testsuite/gfortran.dg/intrinsic_8.f90 | |
8535 | =================================================================== | |
8536 | --- gcc/testsuite/gfortran.dg/intrinsic_8.f90 (.../tags/gcc_4_7_0_release) (wersja 0) | |
8537 | +++ gcc/testsuite/gfortran.dg/intrinsic_8.f90 (.../branches/gcc-4_7-branch) (wersja 187293) | |
8538 | @@ -0,0 +1,23 @@ | |
8539 | +! { dg-do compile } | |
8540 | +! | |
8541 | +! PR fortran/52452 | |
8542 | +! | |
8543 | +! Contributed by Roger Ferrer Ibanez | |
8544 | +! | |
8545 | +PROGRAM test_etime | |
8546 | + IMPLICIT NONE | |
8547 | + INTRINSIC :: etime | |
8548 | + REAL(4) :: tarray(1:2) | |
8549 | + REAL(4) :: result | |
8550 | + | |
8551 | + CALL etime(tarray, result) | |
8552 | +END PROGRAM test_etime | |
8553 | + | |
8554 | +subroutine test_etime2 | |
8555 | + IMPLICIT NONE | |
8556 | + INTRINSIC :: etime | |
8557 | + REAL(4) :: tarray(1:2) | |
8558 | + REAL(4) :: result | |
8559 | + | |
8560 | + result = etime(tarray) | |
8561 | +END subroutine test_etime2 | |
8562 | Index: gcc/testsuite/gfortran.dg/pr52701.f90 | |
8563 | =================================================================== | |
8564 | --- gcc/testsuite/gfortran.dg/pr52701.f90 (.../tags/gcc_4_7_0_release) (wersja 0) | |
8565 | +++ gcc/testsuite/gfortran.dg/pr52701.f90 (.../branches/gcc-4_7-branch) (wersja 187293) | |
8566 | @@ -0,0 +1,20 @@ | |
8567 | +! { dg-do compile } | |
8568 | +! { dg-options "-O3" } | |
8569 | +function pr52701 (x, z, e, f, g, l) | |
8570 | + integer a, b, c, d, e, f, g, i, j, l, pr52701 | |
8571 | + double precision x(e), z(e*e) | |
8572 | + do i = l, f | |
8573 | + do j = l, i | |
8574 | + d = 0 | |
8575 | + do a = 1, g | |
8576 | + c = a - g | |
8577 | + do b = 1, g | |
8578 | + d = d + 1 | |
8579 | + c = c + g | |
8580 | + z(d) = z(d) / (x(i) + x(j) - x(f + a) - x(f + b)) | |
8581 | + end do | |
8582 | + end do | |
8583 | + end do | |
8584 | + end do | |
8585 | + pr52701 = c | |
8586 | +end | |
8587 | Index: gcc/testsuite/gfortran.dg/typebound_operator_15.f90 | |
8588 | =================================================================== | |
8589 | --- gcc/testsuite/gfortran.dg/typebound_operator_15.f90 (.../tags/gcc_4_7_0_release) (wersja 0) | |
8590 | +++ gcc/testsuite/gfortran.dg/typebound_operator_15.f90 (.../branches/gcc-4_7-branch) (wersja 187293) | |
8591 | @@ -0,0 +1,78 @@ | |
8592 | +! { dg-do run } | |
8593 | +! | |
8594 | +! PR fortran/53255 | |
8595 | +! | |
8596 | +! Contributed by Reinhold Bader. | |
8597 | +! | |
8598 | +! Before TYPE(ext)'s .tr. wrongly called the base type's trace | |
8599 | +! instead of ext's trace_ext. | |
8600 | +! | |
8601 | +module mod_base | |
8602 | + implicit none | |
8603 | + private | |
8604 | + integer, public :: base_cnt = 0 | |
8605 | + type, public :: base | |
8606 | + private | |
8607 | + real :: r(2,2) = reshape( (/ 1.0, 2.0, 3.0, 4.0 /), (/ 2, 2 /)) | |
8608 | + contains | |
8609 | + procedure, private :: trace | |
8610 | + generic :: operator(.tr.) => trace | |
8611 | + end type base | |
8612 | +contains | |
8613 | + complex function trace(this) | |
8614 | + class(base), intent(in) :: this | |
8615 | + base_cnt = base_cnt + 1 | |
8616 | +! write(*,*) 'executing base' | |
8617 | + trace = this%r(1,1) + this%r(2,2) | |
8618 | + end function trace | |
8619 | +end module mod_base | |
8620 | + | |
8621 | +module mod_ext | |
8622 | + use mod_base | |
8623 | + implicit none | |
8624 | + private | |
8625 | + integer, public :: ext_cnt = 0 | |
8626 | + public :: base, base_cnt | |
8627 | + type, public, extends(base) :: ext | |
8628 | + private | |
8629 | + real :: i(2,2) = reshape( (/ 1.0, 1.0, 1.0, 1.5 /), (/ 2, 2 /)) | |
8630 | + contains | |
8631 | + procedure, private :: trace => trace_ext | |
8632 | + end type ext | |
8633 | +contains | |
8634 | + complex function trace_ext(this) | |
8635 | + class(ext), intent(in) :: this | |
8636 | + | |
8637 | +! the following should be executed through invoking .tr. p below | |
8638 | +! write(*,*) 'executing override' | |
8639 | + ext_cnt = ext_cnt + 1 | |
8640 | + trace_ext = .tr. this%base + (0.0, 1.0) * ( this%i(1,1) + this%i(2,2) ) | |
8641 | + end function trace_ext | |
8642 | + | |
8643 | +end module mod_ext | |
8644 | +program test_override | |
8645 | + use mod_ext | |
8646 | + implicit none | |
8647 | + type(base) :: o | |
8648 | + type(ext) :: p | |
8649 | + real :: r | |
8650 | + | |
8651 | + ! Note: ext's ".tr." (trace_ext) calls also base's "trace" | |
8652 | + | |
8653 | +! write(*,*) .tr. o | |
8654 | +! write(*,*) .tr. p | |
8655 | + if (base_cnt /= 0 .or. ext_cnt /= 0) call abort () | |
8656 | + r = .tr. o | |
8657 | + if (base_cnt /= 1 .or. ext_cnt /= 0) call abort () | |
8658 | + r = .tr. p | |
8659 | + if (base_cnt /= 2 .or. ext_cnt /= 1) call abort () | |
8660 | + | |
8661 | + if (abs(.tr. o - 5.0 ) < 1.0e-6 .and. abs( .tr. p - (5.0,2.5)) < 1.0e-6) & | |
8662 | + then | |
8663 | + if (base_cnt /= 4 .or. ext_cnt /= 2) call abort () | |
8664 | +! write(*,*) 'OK' | |
8665 | + else | |
8666 | + call abort() | |
8667 | +! write(*,*) 'FAIL' | |
8668 | + end if | |
8669 | +end program test_override | |
8670 | Index: gcc/testsuite/gfortran.dg/pr52678.f | |
8671 | =================================================================== | |
8672 | --- gcc/testsuite/gfortran.dg/pr52678.f (.../tags/gcc_4_7_0_release) (wersja 0) | |
8673 | +++ gcc/testsuite/gfortran.dg/pr52678.f (.../branches/gcc-4_7-branch) (wersja 187293) | |
8674 | @@ -0,0 +1,18 @@ | |
8675 | +! { dg-do compile } | |
8676 | +! { dg-options "-O -ftree-vectorize" } | |
8677 | + SUBROUTINE OpenAD_set_ref_state(DRF, RHOFACF, RHOFACC) | |
8678 | + real(8) DRF(1 : 15) | |
8679 | + real(8) RHOFACF(1 : 16) | |
8680 | + real(8) RHOFACC(1 : 15) | |
8681 | + integer, dimension(:), allocatable :: oad_it | |
8682 | + integer :: oad_it_ptr | |
8683 | + INTEGER(8) OpenAD_Symbol_188 | |
8684 | + INTEGER(4) K | |
8685 | + OpenAD_Symbol_188 = 0 | |
8686 | + DO K = 2, 15, 1 | |
8687 | + RHOFACF(INT(K)) = ((RHOFACC(K) * DRF(K + (-1)) + RHOFACC(K + | |
8688 | + + (-1)) * DRF(K)) /(DRF(K) + DRF(K + (-1)))) | |
8689 | + OpenAD_Symbol_188 = (INT(OpenAD_Symbol_188) + INT(1)) | |
8690 | + END DO | |
8691 | + oad_it(oad_it_ptr) = OpenAD_Symbol_188 | |
8692 | + end subroutine OpenAD_set_ref_state | |
8693 | Index: gcc/testsuite/gfortran.dg/use_only_6.f90 | |
8694 | =================================================================== | |
8695 | --- gcc/testsuite/gfortran.dg/use_only_6.f90 (.../tags/gcc_4_7_0_release) (wersja 0) | |
8696 | +++ gcc/testsuite/gfortran.dg/use_only_6.f90 (.../branches/gcc-4_7-branch) (wersja 187293) | |
8697 | @@ -0,0 +1,14 @@ | |
8698 | +! { dg-do compile } | |
8699 | +! PR 52668 - there used to be a bogus warning about not using b. | |
8700 | +! Original test case by Arnaud Desitter. | |
8701 | +module mm | |
8702 | + integer :: a, b | |
8703 | + common /mm1/ a, b | |
8704 | +end module mm | |
8705 | + | |
8706 | +subroutine aa() | |
8707 | + use mm, only: a | |
8708 | + implicit none | |
8709 | + a = 1 | |
8710 | +end subroutine aa | |
8711 | +! { dg-final { cleanup-modules "mm" } } | |
8712 | Index: gcc/testsuite/gfortran.dg/function_optimize_12.f90 | |
8713 | =================================================================== | |
8714 | --- gcc/testsuite/gfortran.dg/function_optimize_12.f90 (.../tags/gcc_4_7_0_release) (wersja 0) | |
8715 | +++ gcc/testsuite/gfortran.dg/function_optimize_12.f90 (.../branches/gcc-4_7-branch) (wersja 187293) | |
8716 | @@ -0,0 +1,12 @@ | |
8717 | +! { dg-do run } | |
8718 | +! { dg-options "-ffrontend-optimize" } | |
8719 | +! PR 53148 - this used to cause wrong code because the label was | |
8720 | +! placed after the statement assigning the new variables. | |
8721 | +program main | |
8722 | + integer :: n | |
8723 | + double precision x | |
8724 | + n = 3 | |
8725 | + goto 100 | |
8726 | +100 x = dble(n) + dble(n) | |
8727 | + if (x /= 6.d0) call abort | |
8728 | +end program main | |
8729 | Index: gcc/testsuite/gfortran.dg/constructor_8.f90 | |
8730 | =================================================================== | |
8731 | --- gcc/testsuite/gfortran.dg/constructor_8.f90 (.../tags/gcc_4_7_0_release) (wersja 0) | |
8732 | +++ gcc/testsuite/gfortran.dg/constructor_8.f90 (.../branches/gcc-4_7-branch) (wersja 187293) | |
8733 | @@ -0,0 +1,22 @@ | |
8734 | +! { dg-do compile } | |
8735 | +! { dg-options "-std=f95" } | |
8736 | +! | |
8737 | +! PR fortran/53111 | |
8738 | +! | |
8739 | +! Contributed by Jacob Middag, reduced by Janus Weil. | |
8740 | +! | |
8741 | + | |
8742 | +module a | |
8743 | + type :: my | |
8744 | + real :: x | |
8745 | + end type | |
8746 | +end module | |
8747 | + | |
8748 | +module b | |
8749 | + use a | |
8750 | +end module | |
8751 | + | |
8752 | +program test | |
8753 | + use a | |
8754 | + use b | |
8755 | +end program | |
8756 | Index: gcc/testsuite/gfortran.dg/pointer_intent_6.f90 | |
8757 | =================================================================== | |
8758 | --- gcc/testsuite/gfortran.dg/pointer_intent_6.f90 (.../tags/gcc_4_7_0_release) (wersja 0) | |
8759 | +++ gcc/testsuite/gfortran.dg/pointer_intent_6.f90 (.../branches/gcc-4_7-branch) (wersja 187293) | |
8760 | @@ -0,0 +1,19 @@ | |
8761 | +! { dg-do compile } | |
8762 | +! | |
8763 | +! PR fortran/52864 | |
8764 | +! | |
8765 | +! Assigning to an intent(in) pointer (which is valid). | |
8766 | +! | |
8767 | + program test | |
8768 | + type PoisFFT_Solver3D | |
8769 | + complex, dimension(:,:,:), & | |
8770 | + pointer :: work => null() | |
8771 | + end type PoisFFT_Solver3D | |
8772 | + contains | |
8773 | + subroutine PoisFFT_Solver3D_FullPeriodic(D, p) | |
8774 | + type(PoisFFT_Solver3D), intent(in) :: D | |
8775 | + real, intent(in), pointer :: p(:) | |
8776 | + D%work(i,j,k) = 0.0 | |
8777 | + p = 0.0 | |
8778 | + end subroutine | |
8779 | + end | |
8780 | Index: gcc/testsuite/gfortran.dg/pr52835.f90 | |
8781 | =================================================================== | |
8782 | --- gcc/testsuite/gfortran.dg/pr52835.f90 (.../tags/gcc_4_7_0_release) (wersja 0) | |
8783 | +++ gcc/testsuite/gfortran.dg/pr52835.f90 (.../branches/gcc-4_7-branch) (wersja 187293) | |
8784 | @@ -0,0 +1,16 @@ | |
8785 | +! PR tree-optimization/52835 | |
8786 | +! { dg-do compile } | |
8787 | +! { dg-options "-O3 -fdump-tree-optimized" } | |
8788 | + | |
8789 | +subroutine foo (x, y, z, n) | |
8790 | + integer :: n, i | |
8791 | + real :: x(n), y(n), z(n) | |
8792 | + do i = 1, n | |
8793 | + z(i) = 0.0 | |
8794 | + y(i) = 0.0 | |
8795 | + call bar (y(i), z(i), x(i)) | |
8796 | + end do | |
8797 | +end subroutine | |
8798 | + | |
8799 | +! { dg-final { scan-tree-dump "bar " "optimized" } } | |
8800 | +! { dg-final { cleanup-tree-dump "optimized" } } | |
8801 | Index: gcc/testsuite/gfortran.dg/vect/pr52580.f | |
8802 | =================================================================== | |
8803 | --- gcc/testsuite/gfortran.dg/vect/pr52580.f (.../tags/gcc_4_7_0_release) (wersja 0) | |
8804 | +++ gcc/testsuite/gfortran.dg/vect/pr52580.f (.../branches/gcc-4_7-branch) (wersja 187293) | |
8805 | @@ -0,0 +1,33 @@ | |
8806 | +! { dg-do compile } | |
8807 | +! { dg-require-effective-target vect_double } | |
8808 | + SUBROUTINE CALC2 | |
8809 | + IMPLICIT REAL*8 (A-H, O-Z) | |
8810 | + PARAMETER (N1=1335, N2=1335) | |
8811 | + | |
8812 | + COMMON U(N1,N2), V(N1,N2), P(N1,N2), | |
8813 | + * UNEW(N1,N2), VNEW(N1,N2), | |
8814 | + 1 PNEW(N1,N2), UOLD(N1,N2), | |
8815 | + * VOLD(N1,N2), POLD(N1,N2), | |
8816 | + 2 CU(N1,N2), CV(N1,N2), | |
8817 | + * Z(N1,N2), H(N1,N2), PSI(N1,N2) | |
8818 | + COMMON /CONS/ DT,TDT,DX,DY,A,ALPHA,ITMAX,MPRINT,M,N,MP1, | |
8819 | + 1 NP1,EL,PI,TPI,DI,DJ,PCF | |
8820 | + TDTS8 = TDT/8.D0 | |
8821 | + TDTSDX = TDT/DX | |
8822 | + TDTSDY = TDT/DY | |
8823 | + | |
8824 | + DO 200 J=1,N | |
8825 | + DO 200 I=1,M | |
8826 | + UNEW(I+1,J) = UOLD(I+1,J)+ | |
8827 | + 1 TDTS8*(Z(I+1,J+1)+Z(I+1,J))*(CV(I+1,J+1)+CV(I,J+1)+CV(I,J) | |
8828 | + 2 +CV(I+1,J))-TDTSDX*(H(I+1,J)-H(I,J)) | |
8829 | + VNEW(I,J+1) = VOLD(I,J+1)-TDTS8*(Z(I+1,J+1)+Z(I,J+1)) | |
8830 | + 1 *(CU(I+1,J+1)+CU(I,J+1)+CU(I,J)+CU(I+1,J)) | |
8831 | + 2 -TDTSDY*(H(I,J+1)-H(I,J)) | |
8832 | + PNEW(I,J) = POLD(I,J)-TDTSDX*(CU(I+1,J)-CU(I,J)) | |
8833 | + 1 -TDTSDY*(CV(I,J+1)-CV(I,J)) | |
8834 | + 200 CONTINUE | |
8835 | + RETURN | |
8836 | + END | |
8837 | +! { dg-final { scan-tree-dump-times "LOOP VECTORIZED" 1 "vect" } } | |
8838 | +! { dg-final { cleanup-tree-dump "vect" } } | |
8839 | Index: gcc/testsuite/gcc.c-torture/execute/pr53160.c | |
8840 | =================================================================== | |
8841 | --- gcc/testsuite/gcc.c-torture/execute/pr53160.c (.../tags/gcc_4_7_0_release) (wersja 0) | |
8842 | +++ gcc/testsuite/gcc.c-torture/execute/pr53160.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
8843 | @@ -0,0 +1,35 @@ | |
8844 | +/* PR rtl-optimization/53160 */ | |
8845 | + | |
8846 | +extern void abort (void); | |
8847 | + | |
8848 | +int a, c = 1, d, e, g; | |
8849 | +volatile int b; | |
8850 | +volatile char f; | |
8851 | +long h; | |
8852 | +short i; | |
8853 | + | |
8854 | +void | |
8855 | +foo (void) | |
8856 | +{ | |
8857 | + for (e = 0; e; ++e) | |
8858 | + ; | |
8859 | +} | |
8860 | + | |
8861 | +int | |
8862 | +main () | |
8863 | +{ | |
8864 | + if (g) | |
8865 | + (void) b; | |
8866 | + foo (); | |
8867 | + for (d = 0; d >= 0; d--) | |
8868 | + { | |
8869 | + short j = f; | |
8870 | + int k = 0; | |
8871 | + i = j ? j : j << k; | |
8872 | + } | |
8873 | + h = c == 0 ? 0 : i; | |
8874 | + a = h; | |
8875 | + if (a != 0) | |
8876 | + abort (); | |
8877 | + return 0; | |
8878 | +} | |
8879 | Index: gcc/testsuite/gcc.c-torture/execute/pr53084.c | |
8880 | =================================================================== | |
8881 | --- gcc/testsuite/gcc.c-torture/execute/pr53084.c (.../tags/gcc_4_7_0_release) (wersja 0) | |
8882 | +++ gcc/testsuite/gcc.c-torture/execute/pr53084.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
8883 | @@ -0,0 +1,18 @@ | |
8884 | +/* PR middle-end/53084 */ | |
8885 | + | |
8886 | +extern void abort (void); | |
8887 | + | |
8888 | +__attribute__((noinline, noclone)) void | |
8889 | +bar (const char *p) | |
8890 | +{ | |
8891 | + if (p[0] != 'o' || p[1] != 'o' || p[2]) | |
8892 | + abort (); | |
8893 | +} | |
8894 | + | |
8895 | +int | |
8896 | +main () | |
8897 | +{ | |
8898 | + static const char *const foo[] = {"foo" + 1}; | |
8899 | + bar (foo[0]); | |
8900 | + return 0; | |
8901 | +} | |
8902 | Index: gcc/testsuite/gcc.c-torture/execute/20120427-1.c | |
8903 | =================================================================== | |
8904 | --- gcc/testsuite/gcc.c-torture/execute/20120427-1.c (.../tags/gcc_4_7_0_release) (wersja 0) | |
8905 | +++ gcc/testsuite/gcc.c-torture/execute/20120427-1.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
8906 | @@ -0,0 +1,36 @@ | |
8907 | +typedef struct sreal | |
8908 | +{ | |
8909 | + unsigned sig; /* Significant. */ | |
8910 | + int exp; /* Exponent. */ | |
8911 | +} sreal; | |
8912 | + | |
8913 | +sreal_compare (sreal *a, sreal *b) | |
8914 | +{ | |
8915 | + if (a->exp > b->exp) | |
8916 | + return 1; | |
8917 | + if (a->exp < b->exp) | |
8918 | + return -1; | |
8919 | + if (a->sig > b->sig) | |
8920 | + return 1; | |
8921 | + return -(a->sig < b->sig); | |
8922 | +} | |
8923 | + | |
8924 | +sreal a[] = { | |
8925 | + { 0, 0 }, | |
8926 | + { 1, 0 }, | |
8927 | + { 0, 1 }, | |
8928 | + { 1, 1 } | |
8929 | +}; | |
8930 | + | |
8931 | +int main() | |
8932 | +{ | |
8933 | + int i, j; | |
8934 | + for (i = 0; i <= 3; i++) { | |
8935 | + for (j = 0; j < 3; j++) { | |
8936 | + if (i < j && sreal_compare(&a[i], &a[j]) != -1) abort(); | |
8937 | + if (i == j && sreal_compare(&a[i], &a[j]) != 0) abort(); | |
8938 | + if (i > j && sreal_compare(&a[i], &a[j]) != 1) abort(); | |
8939 | + } | |
8940 | + } | |
8941 | + return 0; | |
8942 | +} | |
8943 | Index: gcc/testsuite/gcc.c-torture/compile/pr52891-1.c | |
8944 | =================================================================== | |
8945 | --- gcc/testsuite/gcc.c-torture/compile/pr52891-1.c (.../tags/gcc_4_7_0_release) (wersja 0) | |
8946 | +++ gcc/testsuite/gcc.c-torture/compile/pr52891-1.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
8947 | @@ -0,0 +1,20 @@ | |
8948 | +/* PR tree-optimizations/52891 */ | |
8949 | + | |
8950 | +struct S | |
8951 | +{ | |
8952 | + int a; | |
8953 | + struct T { unsigned c : 10; } b; | |
8954 | +} s; | |
8955 | + | |
8956 | +void | |
8957 | +bar (short x, short y, int **p) | |
8958 | +{ | |
8959 | + if ((x && y) + **p) | |
8960 | + while (1); | |
8961 | +} | |
8962 | + | |
8963 | +void | |
8964 | +foo (int **p) | |
8965 | +{ | |
8966 | + bar (s.a, s.b.c, p); | |
8967 | +} | |
8968 | Index: gcc/testsuite/gcc.c-torture/compile/limits-externdecl.c | |
8969 | =================================================================== | |
8970 | --- gcc/testsuite/gcc.c-torture/compile/limits-externdecl.c (.../tags/gcc_4_7_0_release) (wersja 0) | |
8971 | +++ gcc/testsuite/gcc.c-torture/compile/limits-externdecl.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
8972 | @@ -0,0 +1,56 @@ | |
8973 | +/* Inspired by the test case for PR middle-end/52640. */ | |
8974 | + | |
8975 | +typedef struct | |
8976 | +{ | |
8977 | + char *value; | |
8978 | +} REFERENCE; | |
8979 | + | |
8980 | +/* Add a few "extern int Xxxxxx ();" declarations. */ | |
8981 | +#undef DEF | |
8982 | +#undef LIM1 | |
8983 | +#undef LIM2 | |
8984 | +#undef LIM3 | |
8985 | +#undef LIM4 | |
8986 | +#undef LIM5 | |
8987 | +#undef LIM6 | |
8988 | +#define DEF(x) extern int x () | |
8989 | +#define LIM1(x) DEF(x##0); DEF(x##1); DEF(x##2); DEF(x##3); DEF(x##4); \ | |
8990 | + DEF(x##5); DEF(x##6); DEF(x##7); DEF(x##8); DEF(x##9); | |
8991 | +#define LIM2(x) LIM1(x##0) LIM1(x##1) LIM1(x##2) LIM1(x##3) LIM1(x##4) \ | |
8992 | + LIM1(x##5) LIM1(x##6) LIM1(x##7) LIM1(x##8) LIM1(x##9) | |
8993 | +#define LIM3(x) LIM2(x##0) LIM2(x##1) LIM2(x##2) LIM2(x##3) LIM2(x##4) \ | |
8994 | + LIM2(x##5) LIM2(x##6) LIM2(x##7) LIM2(x##8) LIM2(x##9) | |
8995 | +#define LIM4(x) LIM3(x##0) LIM3(x##1) LIM3(x##2) LIM3(x##3) LIM3(x##4) \ | |
8996 | + LIM3(x##5) LIM3(x##6) LIM3(x##7) LIM3(x##8) LIM3(x##9) | |
8997 | +#define LIM5(x) LIM4(x##0) LIM4(x##1) LIM4(x##2) LIM4(x##3) LIM4(x##4) \ | |
8998 | + LIM4(x##5) LIM4(x##6) LIM4(x##7) LIM4(x##8) LIM4(x##9) | |
8999 | +#define LIM6(x) LIM5(x##0) LIM5(x##1) LIM5(x##2) LIM5(x##3) LIM5(x##4) \ | |
9000 | + LIM5(x##5) LIM5(x##6) LIM5(x##7) LIM5(x##8) LIM5(x##9) | |
9001 | +LIM5 (X); | |
9002 | + | |
9003 | +/* Add references to them, or GCC will simply ignore the extern decls. */ | |
9004 | +#undef DEF | |
9005 | +#undef LIM1 | |
9006 | +#undef LIM2 | |
9007 | +#undef LIM3 | |
9008 | +#undef LIM4 | |
9009 | +#undef LIM5 | |
9010 | +#undef LIM6 | |
9011 | +#define DEF(x) (char *) x | |
9012 | +#define LIM1(x) DEF(x##0), DEF(x##1), DEF(x##2), DEF(x##3), DEF(x##4), \ | |
9013 | + DEF(x##5), DEF(x##6), DEF(x##7), DEF(x##8), DEF(x##9), | |
9014 | +#define LIM2(x) LIM1(x##0) LIM1(x##1) LIM1(x##2) LIM1(x##3) LIM1(x##4) \ | |
9015 | + LIM1(x##5) LIM1(x##6) LIM1(x##7) LIM1(x##8) LIM1(x##9) | |
9016 | +#define LIM3(x) LIM2(x##0) LIM2(x##1) LIM2(x##2) LIM2(x##3) LIM2(x##4) \ | |
9017 | + LIM2(x##5) LIM2(x##6) LIM2(x##7) LIM2(x##8) LIM2(x##9) | |
9018 | +#define LIM4(x) LIM3(x##0) LIM3(x##1) LIM3(x##2) LIM3(x##3) LIM3(x##4) \ | |
9019 | + LIM3(x##5) LIM3(x##6) LIM3(x##7) LIM3(x##8) LIM3(x##9) | |
9020 | +#define LIM5(x) LIM4(x##0) LIM4(x##1) LIM4(x##2) LIM4(x##3) LIM4(x##4) \ | |
9021 | + LIM4(x##5) LIM4(x##6) LIM4(x##7) LIM4(x##8) LIM4(x##9) | |
9022 | +#define LIM6(x) LIM5(x##0) LIM5(x##1) LIM5(x##2) LIM5(x##3) LIM5(x##4) \ | |
9023 | + LIM5(x##5) LIM5(x##6) LIM5(x##7) LIM5(x##8) LIM5(x##9) | |
9024 | +REFERENCE references[] = { | |
9025 | + LIM5 (X) | |
9026 | + 0 | |
9027 | +}; | |
9028 | + | |
9029 | Index: gcc/testsuite/gcc.c-torture/compile/pr53163.c | |
9030 | =================================================================== | |
9031 | --- gcc/testsuite/gcc.c-torture/compile/pr53163.c (.../tags/gcc_4_7_0_release) (wersja 0) | |
9032 | +++ gcc/testsuite/gcc.c-torture/compile/pr53163.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
9033 | @@ -0,0 +1,34 @@ | |
9034 | +/* PR tree-optimization/53163 */ | |
9035 | + | |
9036 | +struct S { int s; } b, f; | |
9037 | +int a, c; | |
9038 | + | |
9039 | +void | |
9040 | +foo (void) | |
9041 | +{ | |
9042 | + int d, e; | |
9043 | + for (d = 4; d < 19; ++d) | |
9044 | + for (e = 2; e >= 0; e--) | |
9045 | + { | |
9046 | + a = 0; | |
9047 | + a = 1; | |
9048 | + } | |
9049 | +} | |
9050 | + | |
9051 | +void | |
9052 | +bar (void) | |
9053 | +{ | |
9054 | + int g, h, i; | |
9055 | + for (i = 1; i >= 0; i--) | |
9056 | + { | |
9057 | + b = f; | |
9058 | + for (g = 0; g <= 1; g++) | |
9059 | + { | |
9060 | + if (c) | |
9061 | + break; | |
9062 | + for (h = 0; h <= 1; h++) | |
9063 | + foo (); | |
9064 | + foo (); | |
9065 | + } | |
9066 | + } | |
9067 | +} | |
9068 | Index: gcc/testsuite/gcc.c-torture/compile/pr52891-2.c | |
9069 | =================================================================== | |
9070 | --- gcc/testsuite/gcc.c-torture/compile/pr52891-2.c (.../tags/gcc_4_7_0_release) (wersja 0) | |
9071 | +++ gcc/testsuite/gcc.c-torture/compile/pr52891-2.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
9072 | @@ -0,0 +1,16 @@ | |
9073 | +/* PR tree-optimizations/52891 */ | |
9074 | + | |
9075 | +#if __SIZEOF_INT__ > 2 | |
9076 | +struct __attribute__((packed)) S { unsigned s : 22; }; | |
9077 | +#else | |
9078 | +struct __attribute__((packed)) S { unsigned s : 12; }; | |
9079 | +#endif | |
9080 | +struct __attribute__((packed)) T { struct S t; } c; | |
9081 | +int a, b, d; | |
9082 | + | |
9083 | +void | |
9084 | +foo (void) | |
9085 | +{ | |
9086 | + if (1 ? (!c.t.s & (d < 0)) < a : 0) | |
9087 | + b = 0; | |
9088 | +} | |
9089 | Index: gcc/testsuite/gcc.c-torture/compile/pr52750.c | |
9090 | =================================================================== | |
9091 | --- gcc/testsuite/gcc.c-torture/compile/pr52750.c (.../tags/gcc_4_7_0_release) (wersja 0) | |
9092 | +++ gcc/testsuite/gcc.c-torture/compile/pr52750.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
9093 | @@ -0,0 +1,11 @@ | |
9094 | +/* PR middle-end/52750 */ | |
9095 | + | |
9096 | +typedef signed char V __attribute__((vector_size (32))); | |
9097 | + | |
9098 | +void | |
9099 | +foo (V *x) | |
9100 | +{ | |
9101 | + V m = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, | |
9102 | + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31}; | |
9103 | + *x = __builtin_shuffle (*x, m); | |
9104 | +} | |
9105 | Index: gcc/testsuite/gcc.c-torture/compile/pr53187.c | |
9106 | =================================================================== | |
9107 | --- gcc/testsuite/gcc.c-torture/compile/pr53187.c (.../tags/gcc_4_7_0_release) (wersja 0) | |
9108 | +++ gcc/testsuite/gcc.c-torture/compile/pr53187.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
9109 | @@ -0,0 +1,11 @@ | |
9110 | +/* PR target/53187 */ | |
9111 | + | |
9112 | +void bar (int); | |
9113 | + | |
9114 | +void | |
9115 | +foo (int x, double y, double z) | |
9116 | +{ | |
9117 | + _Bool t = z >= y; | |
9118 | + if (!t || x) | |
9119 | + bar (t ? 1 : 16); | |
9120 | +} | |
9121 | Index: gcc/testsuite/gnat.dg/controlled6.adb | |
9122 | =================================================================== | |
9123 | --- gcc/testsuite/gnat.dg/controlled6.adb (.../tags/gcc_4_7_0_release) (wersja 0) | |
9124 | +++ gcc/testsuite/gnat.dg/controlled6.adb (.../branches/gcc-4_7-branch) (wersja 187293) | |
9125 | @@ -0,0 +1,24 @@ | |
9126 | +-- { dg-do compile } | |
9127 | +-- { dg-options "-O -gnatn" } | |
9128 | + | |
9129 | +with Ada.Text_IO; use Ada.Text_IO; | |
9130 | +with Controlled6_Pkg; | |
9131 | +with Controlled6_Pkg.Iterators; | |
9132 | + | |
9133 | +procedure Controlled6 is | |
9134 | + | |
9135 | + type String_Access is access String; | |
9136 | + | |
9137 | + package My_Q is new Controlled6_Pkg (String_Access); | |
9138 | + package My_Iterators is new My_Q.Iterators (0); | |
9139 | + use My_Iterators; | |
9140 | + | |
9141 | + Iterator : Iterator_Type := Find; | |
9142 | + | |
9143 | +begin | |
9144 | + loop | |
9145 | + exit when Is_Null (Iterator); | |
9146 | + Put (Current (Iterator).all & ' '); | |
9147 | + Find_Next (Iterator); | |
9148 | + end loop; | |
9149 | +end; | |
9150 | Index: gcc/testsuite/gnat.dg/concat2.adb | |
9151 | =================================================================== | |
9152 | --- gcc/testsuite/gnat.dg/concat2.adb (.../tags/gcc_4_7_0_release) (wersja 0) | |
9153 | +++ gcc/testsuite/gnat.dg/concat2.adb (.../branches/gcc-4_7-branch) (wersja 187293) | |
9154 | @@ -0,0 +1,18 @@ | |
9155 | +with Text_IO; use Text_IO; | |
9156 | + | |
9157 | +package body Concat2 is | |
9158 | + | |
9159 | + function Get_Param return String is | |
9160 | + begin | |
9161 | + return ""; | |
9162 | + end; | |
9163 | + | |
9164 | + procedure Browse is | |
9165 | + Mode : constant String := Get_Param; | |
9166 | + Mode_Param : constant String := "MODE=" & Mode; | |
9167 | + begin | |
9168 | + Put_Line (Mode_Param); | |
9169 | + end; | |
9170 | + | |
9171 | +end Concat2; | |
9172 | + | |
9173 | Index: gcc/testsuite/gnat.dg/controlled6_pkg-iterators.adb | |
9174 | =================================================================== | |
9175 | --- gcc/testsuite/gnat.dg/controlled6_pkg-iterators.adb (.../tags/gcc_4_7_0_release) (wersja 0) | |
9176 | +++ gcc/testsuite/gnat.dg/controlled6_pkg-iterators.adb (.../branches/gcc-4_7-branch) (wersja 187293) | |
9177 | @@ -0,0 +1,21 @@ | |
9178 | +package body Controlled6_Pkg.Iterators is | |
9179 | + | |
9180 | + function Find return Iterator_Type is | |
9181 | + Iterator : Iterator_Type; | |
9182 | + begin | |
9183 | + return Iterator; | |
9184 | + end Find; | |
9185 | + | |
9186 | + function Current (Iterator : in Iterator_Type) return T is begin | |
9187 | + return Iterator.Current.Item; | |
9188 | + end Current; | |
9189 | + | |
9190 | + procedure Find_Next (Iterator : in out Iterator_Type) is begin | |
9191 | + Iterator.Current := null; | |
9192 | + end Find_Next; | |
9193 | + | |
9194 | + function Is_Null (Iterator : in Iterator_Type) return Boolean is begin | |
9195 | + return Iterator.Current = null; | |
9196 | + end Is_Null; | |
9197 | + | |
9198 | +end Controlled6_Pkg.Iterators; | |
9199 | Index: gcc/testsuite/gnat.dg/concat2.ads | |
9200 | =================================================================== | |
9201 | --- gcc/testsuite/gnat.dg/concat2.ads (.../tags/gcc_4_7_0_release) (wersja 0) | |
9202 | +++ gcc/testsuite/gnat.dg/concat2.ads (.../branches/gcc-4_7-branch) (wersja 187293) | |
9203 | @@ -0,0 +1,8 @@ | |
9204 | +-- { dg-do compile } | |
9205 | +-- { dg-options "-O" } | |
9206 | + | |
9207 | +package Concat2 is | |
9208 | + | |
9209 | + procedure Browse; | |
9210 | + | |
9211 | +end Concat2; | |
9212 | Index: gcc/testsuite/gnat.dg/controlled6_pkg-iterators.ads | |
9213 | =================================================================== | |
9214 | --- gcc/testsuite/gnat.dg/controlled6_pkg-iterators.ads (.../tags/gcc_4_7_0_release) (wersja 0) | |
9215 | +++ gcc/testsuite/gnat.dg/controlled6_pkg-iterators.ads (.../branches/gcc-4_7-branch) (wersja 187293) | |
9216 | @@ -0,0 +1,22 @@ | |
9217 | +with Ada.Finalization; | |
9218 | + | |
9219 | +generic | |
9220 | + | |
9221 | + I : Integer; | |
9222 | + | |
9223 | +package Controlled6_Pkg.Iterators is | |
9224 | + | |
9225 | + type Iterator_Type is new Ada.Finalization.Controlled with record | |
9226 | + Current : Node_Access_Type; | |
9227 | + end record; | |
9228 | + | |
9229 | + function Find return Iterator_Type; | |
9230 | + | |
9231 | + function Current (Iterator : in Iterator_Type) return T; | |
9232 | + pragma Inline (Current); | |
9233 | + | |
9234 | + procedure Find_Next (Iterator : in out Iterator_Type); | |
9235 | + | |
9236 | + function Is_Null (Iterator : in Iterator_Type) return Boolean; | |
9237 | + | |
9238 | +end Controlled6_Pkg.Iterators; | |
9239 | Index: gcc/testsuite/gnat.dg/controlled6_pkg.ads | |
9240 | =================================================================== | |
9241 | --- gcc/testsuite/gnat.dg/controlled6_pkg.ads (.../tags/gcc_4_7_0_release) (wersja 0) | |
9242 | +++ gcc/testsuite/gnat.dg/controlled6_pkg.ads (.../branches/gcc-4_7-branch) (wersja 187293) | |
9243 | @@ -0,0 +1,15 @@ | |
9244 | +with Ada.Finalization; | |
9245 | + | |
9246 | +generic | |
9247 | + | |
9248 | + type T is private; | |
9249 | + | |
9250 | +package Controlled6_Pkg is | |
9251 | + | |
9252 | + type Node_Type is record | |
9253 | + Item : T; | |
9254 | + end record; | |
9255 | + | |
9256 | + type Node_Access_Type is access Node_Type; | |
9257 | + | |
9258 | +end Controlled6_Pkg; | |
9259 | Index: gcc/testsuite/gcc.dg/pr49994-3.c | |
9260 | =================================================================== | |
9261 | --- gcc/testsuite/gcc.dg/pr49994-3.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
9262 | +++ gcc/testsuite/gcc.dg/pr49994-3.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
9263 | @@ -1,8 +1,7 @@ | |
9264 | /* { dg-do compile } */ | |
9265 | -/* { dg-options "-O2 -fsched2-use-superblocks -g" } */ | |
9266 | +/* { dg-options "-O2 -fsched2-use-superblocks -g -w" } */ | |
9267 | /* { dg-options "-O2 -fsched2-use-superblocks -g -mbackchain" { target s390*-*-* } } */ | |
9268 | /* { dg-require-effective-target scheduling } */ | |
9269 | -/* { dg-skip-if "PR testsuite/50722" { ia64-*-*-* hppa*-*-* *-*-hpux* } } */ | |
9270 | ||
9271 | void * | |
9272 | foo (int offset) | |
9273 | Index: gcc/testsuite/gcc.dg/pr52691.c | |
9274 | =================================================================== | |
9275 | --- gcc/testsuite/gcc.dg/pr52691.c (.../tags/gcc_4_7_0_release) (wersja 0) | |
9276 | +++ gcc/testsuite/gcc.dg/pr52691.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
9277 | @@ -0,0 +1,24 @@ | |
9278 | +/* PR middle-end/52691 */ | |
9279 | +/* { dg-do compile } */ | |
9280 | +/* { dg-options "-O2 -fdump-tree-optimized" } */ | |
9281 | + | |
9282 | +#include <stdarg.h> | |
9283 | + | |
9284 | +int | |
9285 | +foo (int a, ...) | |
9286 | +{ | |
9287 | + int b = 0, c = 0; | |
9288 | + va_list ap; | |
9289 | + va_start (ap, a); | |
9290 | + if (a > 1) | |
9291 | + b = va_arg (ap, double); | |
9292 | + if (a > 2) | |
9293 | + c = va_arg (ap, long long); | |
9294 | + va_end (ap); | |
9295 | + return a + b + c; | |
9296 | +} | |
9297 | + | |
9298 | +/* { dg-final { scan-tree-dump "__builtin_next_arg" "optimized" { target { { i?86-*-* x86_64-*-* } && ia32 } } } } */ | |
9299 | +/* { dg-final { scan-tree-dump "__builtin_next_arg" "optimized" { target { powerpc*-*-darwin* powerpc*-*-aix* } } } } */ | |
9300 | +/* { dg-final { scan-tree-dump "__builtin_next_arg" "optimized" { target { powerpc*-*-linux* && lp64 } } } } */ | |
9301 | +/* { dg-final { cleanup-tree-dump "optimized" } } */ | |
9302 | Index: gcc/testsuite/gcc.dg/pr52862.c | |
9303 | =================================================================== | |
9304 | --- gcc/testsuite/gcc.dg/pr52862.c (.../tags/gcc_4_7_0_release) (wersja 0) | |
9305 | +++ gcc/testsuite/gcc.dg/pr52862.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
9306 | @@ -0,0 +1,9 @@ | |
9307 | +/* { dg-do compile } */ | |
9308 | +/* { dg-options "-O" } */ | |
9309 | + | |
9310 | +void ASMAtomicWritePtrVoid(const void *pv); | |
9311 | +void rtThreadDestroy(void) | |
9312 | +{ | |
9313 | + void * const pvTypeChecked = ((void *)0); | |
9314 | + ASMAtomicWritePtrVoid((void *)(pvTypeChecked)); | |
9315 | +} | |
9316 | Index: gcc/testsuite/gcc.dg/pr52880.c | |
9317 | =================================================================== | |
9318 | --- gcc/testsuite/gcc.dg/pr52880.c (.../tags/gcc_4_7_0_release) (wersja 0) | |
9319 | +++ gcc/testsuite/gcc.dg/pr52880.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
9320 | @@ -0,0 +1,10 @@ | |
9321 | +/* PR c/52880 */ | |
9322 | +/* { dg-do compile } */ | |
9323 | +/* { dg-options "-Woverride-init" } */ | |
9324 | + | |
9325 | +struct A { int a; int b; }; | |
9326 | +struct B { struct A c; int d, e; }; | |
9327 | +struct B f = { .c.a = 0, .e = 1, .d = 2, .c.b = 3 }; | |
9328 | +struct C { int g; int h; }; | |
9329 | +struct D { int i; struct C j; int k; }; | |
9330 | +struct D l = { .j.g = 0, .k = 1, .i = 2, .j.h = 3 }; | |
9331 | Index: gcc/testsuite/gcc.dg/pr53174.c | |
9332 | =================================================================== | |
9333 | --- gcc/testsuite/gcc.dg/pr53174.c (.../tags/gcc_4_7_0_release) (wersja 0) | |
9334 | +++ gcc/testsuite/gcc.dg/pr53174.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
9335 | @@ -0,0 +1,67 @@ | |
9336 | +/* PR debug/53174 */ | |
9337 | +/* { dg-do compile } */ | |
9338 | +/* { dg-options "-Ofast -g" } */ | |
9339 | + | |
9340 | +int w, h; | |
9341 | + | |
9342 | +void | |
9343 | +bar (float (*x)[4], int y, int z) | |
9344 | +{ | |
9345 | + int a, b, c, d, e, f, g; | |
9346 | + | |
9347 | + a = 2; | |
9348 | + b = 2; | |
9349 | + c = 274; | |
9350 | + d = 274; | |
9351 | + if (!z) | |
9352 | + a = 12; | |
9353 | + if (!y) | |
9354 | + b = 12; | |
9355 | + if (z + 266 >= h - 2) | |
9356 | + c = 8 + h - z; | |
9357 | + if (y + 266 >= w - 2) | |
9358 | + d = 8 + w - y; | |
9359 | + for (e = a; e < c; e++) | |
9360 | + for (f = b, g = e * 276 + f; f < d; f++, g++) | |
9361 | + { | |
9362 | + float (*h)[4] = x + (g - 277); | |
9363 | + float k = (*h)[0]; | |
9364 | + float l = (*h)[1]; | |
9365 | + float m = (*h)[2]; | |
9366 | + h++; | |
9367 | + k += (*h)[0]; | |
9368 | + l += (*h)[1]; | |
9369 | + m += (*h)[2]; | |
9370 | + h++; | |
9371 | + k += (*h)[0]; | |
9372 | + l += (*h)[1]; | |
9373 | + m += (*h)[2]; | |
9374 | + h += 274; | |
9375 | + k += (*h)[0]; | |
9376 | + l += (*h)[1]; | |
9377 | + m += (*h)[2]; | |
9378 | + h += 2; | |
9379 | + k += (*h)[0]; | |
9380 | + l += (*h)[1]; | |
9381 | + m += (*h)[2]; | |
9382 | + h += 274; | |
9383 | + k += (*h)[0]; | |
9384 | + l += (*h)[1]; | |
9385 | + m += (*h)[2]; | |
9386 | + h++; | |
9387 | + k += (*h)[0]; | |
9388 | + l += (*h)[1]; | |
9389 | + m += (*h)[2]; | |
9390 | + h++; | |
9391 | + k += (*h)[0]; | |
9392 | + l += (*h)[1]; | |
9393 | + m += (*h)[2]; | |
9394 | + k *= 0.125f; | |
9395 | + l *= 0.125f; | |
9396 | + m *= 0.125f; | |
9397 | + k = k + (x[g][1] - l); | |
9398 | + m = m + (x[g][1] - l); | |
9399 | + x[g][0] = k; | |
9400 | + x[g][2] = m; | |
9401 | + } | |
9402 | +} | |
9403 | Index: gcc/testsuite/gcc.dg/dll-8.c | |
9404 | =================================================================== | |
9405 | --- gcc/testsuite/gcc.dg/dll-8.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
9406 | +++ gcc/testsuite/gcc.dg/dll-8.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
9407 | ||
9408 | Zmiany atrybutów dla: gcc/testsuite/gcc.dg/dll-8.c | |
9409 | ___________________________________________________________________ | |
9410 | Deleted: svn:executable | |
9411 | ## -1 +0,0 ## | |
9412 | -* | |
9413 | \ No newline at end of property | |
9414 | Index: gcc/testsuite/gcc.dg/lto/pr53214_0.c | |
9415 | =================================================================== | |
9416 | --- gcc/testsuite/gcc.dg/lto/pr53214_0.c (.../tags/gcc_4_7_0_release) (wersja 0) | |
9417 | +++ gcc/testsuite/gcc.dg/lto/pr53214_0.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
9418 | @@ -0,0 +1,8 @@ | |
9419 | +/* { dg-lto-do run } */ | |
9420 | + | |
9421 | +double a(double) __attribute__ ((optimize(1), used)); | |
9422 | +double a(double r) | |
9423 | +{ | |
9424 | + return r; | |
9425 | +} | |
9426 | +int main () { return 0; } | |
9427 | Index: gcc/testsuite/gcc.dg/torture/pr52969.c | |
9428 | =================================================================== | |
9429 | --- gcc/testsuite/gcc.dg/torture/pr52969.c (.../tags/gcc_4_7_0_release) (wersja 0) | |
9430 | +++ gcc/testsuite/gcc.dg/torture/pr52969.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
9431 | @@ -0,0 +1,16 @@ | |
9432 | +/* { dg-do compile } */ | |
9433 | +/* { dg-options "-ftree-loop-if-convert-stores" } */ | |
9434 | + | |
9435 | +int a, b; | |
9436 | +float xsum[100]; | |
9437 | +void foo (float *cluster) | |
9438 | +{ | |
9439 | + int j; | |
9440 | + for (; a ; ++j) { | |
9441 | + xsum[j] = cluster[j]; | |
9442 | + if (xsum[j] > 0) | |
9443 | + xsum[j] = 0; | |
9444 | + } | |
9445 | + if (xsum[0]) | |
9446 | + b = 0; | |
9447 | +} | |
9448 | Index: gcc/testsuite/gcc.dg/torture/pr52693.c | |
9449 | =================================================================== | |
9450 | --- gcc/testsuite/gcc.dg/torture/pr52693.c (.../tags/gcc_4_7_0_release) (wersja 0) | |
9451 | +++ gcc/testsuite/gcc.dg/torture/pr52693.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
9452 | @@ -0,0 +1,33 @@ | |
9453 | +/* { dg-do run } */ | |
9454 | + | |
9455 | +struct pair | |
9456 | +{ | |
9457 | + int x; | |
9458 | + int y; | |
9459 | +}; | |
9460 | + | |
9461 | +struct array | |
9462 | +{ | |
9463 | + struct pair elems[ 2 ]; | |
9464 | + unsigned index; | |
9465 | +}; | |
9466 | + | |
9467 | +extern void abort (); | |
9468 | + | |
9469 | +void __attribute__ ((noinline,noclone)) | |
9470 | +test_results (int x1, int y1, int x2, int y2) | |
9471 | +{ | |
9472 | + if (x1 != x2 || y1 != y2) | |
9473 | + abort (); | |
9474 | +} | |
9475 | + | |
9476 | +int | |
9477 | +main (void) | |
9478 | +{ | |
9479 | + struct array arr = {{{1,2}, {3,4}}, 1}; | |
9480 | + struct pair last = arr.elems[arr.index]; | |
9481 | + | |
9482 | + test_results ( last.x, last.y, arr.elems[1].x, arr.elems[1].y); | |
9483 | + | |
9484 | + return 0; | |
9485 | +} | |
9486 | Index: gcc/testsuite/gcc.dg/torture/pr52406.c | |
9487 | =================================================================== | |
9488 | --- gcc/testsuite/gcc.dg/torture/pr52406.c (.../tags/gcc_4_7_0_release) (wersja 0) | |
9489 | +++ gcc/testsuite/gcc.dg/torture/pr52406.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
9490 | @@ -0,0 +1,29 @@ | |
9491 | +/* { dg-do run } */ | |
9492 | + | |
9493 | +extern void abort (void); | |
9494 | +struct { int f1; } a[2]; | |
9495 | + | |
9496 | +int *b, *const k = &a[1].f1; | |
9497 | +static int **c = &b; | |
9498 | + | |
9499 | +int e, f, d; | |
9500 | + | |
9501 | +int | |
9502 | +main () | |
9503 | +{ | |
9504 | + int **l = &b; | |
9505 | + *l = k; | |
9506 | + for (; d <= 0; d++) | |
9507 | + { | |
9508 | + int *j = &e; | |
9509 | + **c = 1; | |
9510 | + *l = k; | |
9511 | + *k ^= 0; | |
9512 | + f = **l; | |
9513 | + *j = f; | |
9514 | + } | |
9515 | + if (e != 1) | |
9516 | + abort (); | |
9517 | + return 0; | |
9518 | +} | |
9519 | + | |
9520 | Index: gcc/testsuite/gcc.dg/torture/pr53272-1.c | |
9521 | =================================================================== | |
9522 | --- gcc/testsuite/gcc.dg/torture/pr53272-1.c (.../tags/gcc_4_7_0_release) (wersja 0) | |
9523 | +++ gcc/testsuite/gcc.dg/torture/pr53272-1.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
9524 | @@ -0,0 +1,39 @@ | |
9525 | +/* { dg-do run } */ | |
9526 | +/* { dg-additional-sources "pr53272-2.c" } */ | |
9527 | +struct rtc_class_ops { | |
9528 | + int (*f)(void *, unsigned int enabled); | |
9529 | +}; | |
9530 | + | |
9531 | +struct rtc_device | |
9532 | +{ | |
9533 | + void *owner; | |
9534 | + const struct rtc_class_ops *ops; | |
9535 | + int ops_lock; | |
9536 | +}; | |
9537 | + | |
9538 | +__attribute__ ((__noinline__, __noclone__)) | |
9539 | +extern int foo(void *); | |
9540 | +__attribute__ ((__noinline__, __noclone__)) | |
9541 | +extern void foobar(void *); | |
9542 | + | |
9543 | +__attribute__ ((__noinline__, __noclone__)) | |
9544 | +int rtc_update_irq_enable(struct rtc_device *rtc, unsigned int enabled) | |
9545 | +{ | |
9546 | + int err; | |
9547 | + asm volatile (""); | |
9548 | + | |
9549 | + err = foo(&rtc->ops_lock); | |
9550 | + | |
9551 | + if (err) | |
9552 | + return err; | |
9553 | + | |
9554 | + if (!rtc->ops) | |
9555 | + err = -19; | |
9556 | + else if (!rtc->ops->f) | |
9557 | + err = -22; | |
9558 | + else | |
9559 | + err = rtc->ops->f(rtc->owner, enabled); | |
9560 | + | |
9561 | + foobar(&rtc->ops_lock); | |
9562 | + return err; | |
9563 | +} | |
9564 | Index: gcc/testsuite/gcc.dg/torture/pr53144.c | |
9565 | =================================================================== | |
9566 | --- gcc/testsuite/gcc.dg/torture/pr53144.c (.../tags/gcc_4_7_0_release) (wersja 0) | |
9567 | +++ gcc/testsuite/gcc.dg/torture/pr53144.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
9568 | @@ -0,0 +1,21 @@ | |
9569 | +/* { dg-do compile } */ | |
9570 | + | |
9571 | +typedef unsigned char __attribute__((vector_size(4))) uvec; | |
9572 | + | |
9573 | +int main (int argc, char *argv[]) { | |
9574 | + int i; | |
9575 | + int x = 0; | |
9576 | + uvec uc0 = (uvec) {argc, 1, 2, 10}; | |
9577 | + unsigned char uc1[4] = {0, 3, 2, 200}; | |
9578 | + signed char ucg[4] = {1, 0, 0, 0 }; | |
9579 | + signed char ucl[4] = {0, 1, 0, 1 }; | |
9580 | + | |
9581 | +#define uc0_ ((unsigned char *)&uc0) | |
9582 | + | |
9583 | + for (i = 0; i < 4; i ++) { | |
9584 | + x |= ucg[i] != (uc0_[i] > uc1[i]); | |
9585 | + x |= ucl[i] != (uc0_[i] < uc1[i]); | |
9586 | + } | |
9587 | + return x; | |
9588 | +} | |
9589 | + | |
9590 | Index: gcc/testsuite/gcc.dg/torture/pr53272-2.c | |
9591 | =================================================================== | |
9592 | --- gcc/testsuite/gcc.dg/torture/pr53272-2.c (.../tags/gcc_4_7_0_release) (wersja 0) | |
9593 | +++ gcc/testsuite/gcc.dg/torture/pr53272-2.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
9594 | @@ -0,0 +1,39 @@ | |
9595 | +__attribute__ ((__noinline__, __noclone__)) | |
9596 | +int foo(void *x) | |
9597 | +{ | |
9598 | + asm (""); | |
9599 | + return *(int *) x != 42; | |
9600 | +} | |
9601 | + | |
9602 | +__attribute__ ((__noinline__, __noclone__)) | |
9603 | +void foobar(void *x) | |
9604 | +{ | |
9605 | + asm (""); | |
9606 | + if (foo(x)) | |
9607 | + __builtin_abort(); | |
9608 | +} | |
9609 | + | |
9610 | +struct rtc_class_ops { | |
9611 | + int (*f)(void *, unsigned int enabled); | |
9612 | +}; | |
9613 | + | |
9614 | +struct rtc_device | |
9615 | +{ | |
9616 | + void *owner; | |
9617 | + struct rtc_class_ops *ops; | |
9618 | + int ops_lock; | |
9619 | +}; | |
9620 | + | |
9621 | +extern __attribute__ ((__noinline__, __noclone__)) | |
9622 | +int rtc_update_irq_enable(struct rtc_device *rtc, unsigned int); | |
9623 | + | |
9624 | +int main(void) | |
9625 | +{ | |
9626 | + struct rtc_class_ops ops = {(void *) 0}; | |
9627 | + struct rtc_device dev1 = {0, &ops, 42}; | |
9628 | + | |
9629 | + if (rtc_update_irq_enable (&dev1, 1) != -22) | |
9630 | + __builtin_abort (); | |
9631 | + | |
9632 | + __builtin_exit (0); | |
9633 | +} | |
9634 | Index: gcc/testsuite/gcc.dg/torture/pr53120.c | |
9635 | =================================================================== | |
9636 | --- gcc/testsuite/gcc.dg/torture/pr53120.c (.../tags/gcc_4_7_0_release) (wersja 0) | |
9637 | +++ gcc/testsuite/gcc.dg/torture/pr53120.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
9638 | @@ -0,0 +1,110 @@ | |
9639 | +/* { dg-do compile } */ | |
9640 | +/* { dg-options "-fno-tree-sra" } */ | |
9641 | +typedef struct { | |
9642 | + unsigned int en : 1; | |
9643 | + unsigned int bit_order : 1; | |
9644 | + unsigned int scl_io : 1; | |
9645 | + unsigned int scl_inv : 1; | |
9646 | + unsigned int sda0_io : 1; | |
9647 | + unsigned int sda0_idle : 1; | |
9648 | + unsigned int sda1_io : 1; | |
9649 | + unsigned int sda1_idle : 1; | |
9650 | + unsigned int sda2_io : 1; | |
9651 | + unsigned int sda2_idle : 1; | |
9652 | + unsigned int sda3_io : 1; | |
9653 | + unsigned int sda3_idle : 1; | |
9654 | + unsigned int sda_sel : 2; | |
9655 | + unsigned int sen_idle : 1; | |
9656 | + unsigned int sen_inv : 1; | |
9657 | + unsigned int sen_sel : 2; | |
9658 | + unsigned int dummy1 : 14; | |
9659 | +} reg_gio_rw_i2c1_cfg; | |
9660 | + | |
9661 | +typedef struct { | |
9662 | + unsigned int data0 : 8; | |
9663 | + unsigned int data1 : 8; | |
9664 | + unsigned int data2 : 8; | |
9665 | + unsigned int data3 : 8; | |
9666 | +} reg_gio_rw_i2c1_data; | |
9667 | + | |
9668 | +typedef struct { | |
9669 | + unsigned int trf_bits : 6; | |
9670 | + unsigned int switch_dir : 6; | |
9671 | + unsigned int extra_start : 3; | |
9672 | + unsigned int early_end : 1; | |
9673 | + unsigned int start_stop : 1; | |
9674 | + unsigned int ack_dir0 : 1; | |
9675 | + unsigned int ack_dir1 : 1; | |
9676 | + unsigned int ack_dir2 : 1; | |
9677 | + unsigned int ack_dir3 : 1; | |
9678 | + unsigned int ack_dir4 : 1; | |
9679 | + unsigned int ack_dir5 : 1; | |
9680 | + unsigned int ack_bit : 1; | |
9681 | + unsigned int start_bit : 1; | |
9682 | + unsigned int freq : 2; | |
9683 | + unsigned int dummy1 : 5; | |
9684 | +} reg_gio_rw_i2c1_ctrl; | |
9685 | + | |
9686 | +extern reg_gio_rw_i2c1_cfg reg_gio; | |
9687 | +extern reg_gio_rw_i2c1_data reg_data; | |
9688 | +extern int reg_start; | |
9689 | +extern reg_gio_rw_i2c1_ctrl reg_ctrl; | |
9690 | + | |
9691 | +extern void foobar(void); | |
9692 | +extern void foo(int); | |
9693 | +extern void frob(unsigned int); | |
9694 | +extern void bar(int); | |
9695 | +extern void baz(void); | |
9696 | + | |
9697 | +unsigned int f(int *devspec, unsigned int addr) | |
9698 | +{ | |
9699 | + reg_gio_rw_i2c1_ctrl ctrl = {0}; | |
9700 | + reg_gio_rw_i2c1_data data = {0}; | |
9701 | + | |
9702 | + foobar(); | |
9703 | + | |
9704 | + static int first = 1; | |
9705 | + | |
9706 | + if (first) { | |
9707 | + reg_gio_rw_i2c1_cfg cfg = {0}; | |
9708 | + first = 0; | |
9709 | + | |
9710 | + foo(1); | |
9711 | + cfg.sda0_idle = 1; | |
9712 | + cfg.sda0_io = 0; | |
9713 | + cfg.scl_inv = 0; | |
9714 | + cfg.scl_io = 0; | |
9715 | + cfg.bit_order = 1; | |
9716 | + cfg.sda_sel = 0; | |
9717 | + cfg.sen_sel = 0; | |
9718 | + cfg.en = 1; | |
9719 | + reg_gio = cfg; | |
9720 | + } | |
9721 | + | |
9722 | + ctrl.freq = 1; | |
9723 | + ctrl.start_bit = 0; | |
9724 | + ctrl.ack_bit = 1; | |
9725 | + ctrl.ack_dir0 = 0; | |
9726 | + ctrl.ack_dir1 = 0; | |
9727 | + ctrl.ack_dir2 = 0; | |
9728 | + ctrl.ack_dir3 = 1; | |
9729 | + ctrl.ack_dir4 = 0; | |
9730 | + ctrl.ack_dir5 = 0; | |
9731 | + ctrl.start_stop = 1; | |
9732 | + ctrl.early_end = 0; | |
9733 | + ctrl.extra_start = 2; | |
9734 | + ctrl.switch_dir = 8*3; | |
9735 | + ctrl.trf_bits = 8*4; | |
9736 | + reg_ctrl = ctrl; | |
9737 | + frob(0xac); | |
9738 | + data.data0 = devspec[1] & 192; | |
9739 | + data.data1 = addr; | |
9740 | + data.data2 = devspec[1] | 0x01; | |
9741 | + reg_data = data; | |
9742 | + reg_start = 1; | |
9743 | + bar(100); | |
9744 | + data = reg_data; | |
9745 | + baz(); | |
9746 | + | |
9747 | + return data.data3; | |
9748 | +} | |
9749 | Index: gcc/testsuite/gcc.dg/torture/pr52493.c | |
9750 | =================================================================== | |
9751 | --- gcc/testsuite/gcc.dg/torture/pr52493.c (.../tags/gcc_4_7_0_release) (wersja 0) | |
9752 | +++ gcc/testsuite/gcc.dg/torture/pr52493.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
9753 | @@ -0,0 +1,38 @@ | |
9754 | +/* { dg-do compile } */ | |
9755 | + | |
9756 | +struct Time { | |
9757 | + long int sec; | |
9758 | + long usec; | |
9759 | +}; | |
9760 | +struct Flow { | |
9761 | + unsigned short iif; | |
9762 | + struct Time mtime; | |
9763 | +}; | |
9764 | +struct NetFlow { | |
9765 | + unsigned MaxFlows; | |
9766 | + unsigned HeaderFields; | |
9767 | + unsigned short *HeaderFormat; | |
9768 | +}; | |
9769 | +static struct NetFlow *netflow; | |
9770 | +static struct Time start_time; | |
9771 | +static unsigned char emit_packet[1500]; | |
9772 | +inline long int cmpmtime(struct Time *t1, struct Time *t2) | |
9773 | +{ | |
9774 | + return (t1->sec - t2->sec) * 1000 + (t1->usec - t2->usec) / 1000; | |
9775 | +} | |
9776 | +static void fill(int fields, unsigned short *format, | |
9777 | + struct Flow *flow, void *p) | |
9778 | +{ | |
9779 | + int i; | |
9780 | + for (i = 0; i < fields; i++) | |
9781 | + if (format[i] == 21) | |
9782 | + { | |
9783 | + unsigned int __v; | |
9784 | + __v = cmpmtime(&flow->mtime, &start_time); | |
9785 | + *((unsigned int *) p) = __v; | |
9786 | + } | |
9787 | +} | |
9788 | +void emit_thread() | |
9789 | +{ | |
9790 | + fill(netflow->HeaderFields, netflow->HeaderFormat, 0, &emit_packet); | |
9791 | +} | |
9792 | Index: gcc/testsuite/gcc.dg/torture/pr52720.c | |
9793 | =================================================================== | |
9794 | --- gcc/testsuite/gcc.dg/torture/pr52720.c (.../tags/gcc_4_7_0_release) (wersja 0) | |
9795 | +++ gcc/testsuite/gcc.dg/torture/pr52720.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
9796 | @@ -0,0 +1,28 @@ | |
9797 | +/* { dg-do compile } */ | |
9798 | +/* { dg-options "-march=k8-sse3" { target x86_64-*-* } } */ | |
9799 | + | |
9800 | +struct alu_bank_swizzle { | |
9801 | + int hw_gpr[3][4]; | |
9802 | + int hw_cfile_addr[4]; | |
9803 | +}; | |
9804 | +static void init_bank_swizzle(struct alu_bank_swizzle *bs) | |
9805 | +{ | |
9806 | + int i, cycle, component; | |
9807 | + for (cycle = 0; cycle < 3; cycle++) | |
9808 | + for (component = 0; component < 4; component++) | |
9809 | + bs->hw_gpr[cycle][component] = -1; | |
9810 | + for (i = 0; i < 4; i++) | |
9811 | + bs->hw_cfile_addr[i] = -1; | |
9812 | +} | |
9813 | +int check_and_set_bank_swizzle(int max_slots, int *slots) | |
9814 | +{ | |
9815 | + struct alu_bank_swizzle bs; | |
9816 | + int i; | |
9817 | + for (i = 0; i < max_slots; i++) | |
9818 | + { | |
9819 | + init_bank_swizzle(&bs); | |
9820 | + if (slots[i]) | |
9821 | + check_vector(&bs); | |
9822 | + } | |
9823 | +} | |
9824 | + | |
9825 | Index: gcc/testsuite/gcc.dg/torture/pr52943.c | |
9826 | =================================================================== | |
9827 | --- gcc/testsuite/gcc.dg/torture/pr52943.c (.../tags/gcc_4_7_0_release) (wersja 0) | |
9828 | +++ gcc/testsuite/gcc.dg/torture/pr52943.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
9829 | @@ -0,0 +1,20 @@ | |
9830 | +/* { dg-do run } */ | |
9831 | + | |
9832 | +extern void abort (void); | |
9833 | +int a[] = { 0, 0, 0, 6 }; | |
9834 | + | |
9835 | +int b; | |
9836 | +int | |
9837 | +main () | |
9838 | +{ | |
9839 | + for (;;) | |
9840 | + { | |
9841 | + b = 3; | |
9842 | + for (; b; b -= 1) | |
9843 | + a[b] = a[3] > 1; | |
9844 | + break; | |
9845 | + } | |
9846 | + if (a[1] != 0) | |
9847 | + abort (); | |
9848 | + return 0; | |
9849 | +} | |
9850 | Index: gcc/testsuite/gcc.dg/pr52734.c | |
9851 | =================================================================== | |
9852 | --- gcc/testsuite/gcc.dg/pr52734.c (.../tags/gcc_4_7_0_release) (wersja 0) | |
9853 | +++ gcc/testsuite/gcc.dg/pr52734.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
9854 | @@ -0,0 +1,35 @@ | |
9855 | +/* { dg-do run } */ | |
9856 | +/* { dg-options "-O2" } */ | |
9857 | + | |
9858 | +int bbb = 0; | |
9859 | + | |
9860 | +int __attribute__((noinline,noclone)) aaa(void) | |
9861 | +{ | |
9862 | + ++bbb; | |
9863 | + return 0; | |
9864 | +} | |
9865 | + | |
9866 | +int __attribute__((noinline,noclone)) ccc(void) | |
9867 | +{ | |
9868 | + int ddd; | |
9869 | + /* bbb == 0 */ | |
9870 | + if (aaa()) | |
9871 | + return bbb; | |
9872 | + | |
9873 | + /* bbb == 1 */ | |
9874 | + ddd = bbb; | |
9875 | + /* bbb == ddd == 1 */ | |
9876 | + if (aaa ()) | |
9877 | + return 0; | |
9878 | + /* bbb == 2, ddd == 1 */ | |
9879 | + | |
9880 | + return ddd; | |
9881 | +} | |
9882 | + | |
9883 | +int main(void) | |
9884 | +{ | |
9885 | + if (ccc() != 1) | |
9886 | + __builtin_abort(); | |
9887 | + return 0; | |
9888 | +} | |
9889 | + | |
9890 | Index: gcc/testsuite/gcc.dg/vect/vect-over-widen-1.c | |
9891 | =================================================================== | |
9892 | --- gcc/testsuite/gcc.dg/vect/vect-over-widen-1.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
9893 | +++ gcc/testsuite/gcc.dg/vect/vect-over-widen-1.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
9894 | @@ -58,7 +58,9 @@ | |
9895 | return 0; | |
9896 | } | |
9897 | ||
9898 | -/* { dg-final { scan-tree-dump-times "vect_recog_over_widening_pattern: detected" 4 "vect" { target {! vect_sizes_32B_16B} } } } */ | |
9899 | +/* { dg-final { scan-tree-dump-times "vect_recog_widen_shift_pattern: detected" 2 "vect" { target vect_widen_shift } } } */ | |
9900 | +/* { dg-final { scan-tree-dump-times "vect_recog_over_widening_pattern: detected" 2 "vect" { target vect_widen_shift } } } */ | |
9901 | +/* { dg-final { scan-tree-dump-times "vect_recog_over_widening_pattern: detected" 4 "vect" { target { { ! vect_sizes_32B_16B } && { ! vect_widen_shift } } } } } */ | |
9902 | /* { dg-final { scan-tree-dump-times "vect_recog_over_widening_pattern: detected" 8 "vect" { target vect_sizes_32B_16B } } } */ | |
9903 | /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */ | |
9904 | /* { dg-final { cleanup-tree-dump "vect" } } */ | |
9905 | Index: gcc/testsuite/gcc.dg/vect/vect-over-widen-1-big-array.c | |
9906 | =================================================================== | |
9907 | --- gcc/testsuite/gcc.dg/vect/vect-over-widen-1-big-array.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
9908 | +++ gcc/testsuite/gcc.dg/vect/vect-over-widen-1-big-array.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
9909 | @@ -58,7 +58,9 @@ | |
9910 | return 0; | |
9911 | } | |
9912 | ||
9913 | -/* { dg-final { scan-tree-dump-times "vect_recog_over_widening_pattern: detected" 4 "vect" } } */ | |
9914 | +/* { dg-final { scan-tree-dump-times "vect_recog_widen_shift_pattern: detected" 2 "vect" { target vect_widen_shift } } } */ | |
9915 | +/* { dg-final { scan-tree-dump-times "vect_recog_over_widening_pattern: detected" 2 "vect" { target vect_widen_shift } } } */ | |
9916 | +/* { dg-final { scan-tree-dump-times "vect_recog_over_widening_pattern: detected" 4 "vect" { target { ! vect_widen_shift } } } } */ | |
9917 | /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */ | |
9918 | /* { dg-final { cleanup-tree-dump "vect" } } */ | |
9919 | ||
9920 | Index: gcc/testsuite/gcc.dg/vect/vect-over-widen-4.c | |
9921 | =================================================================== | |
9922 | --- gcc/testsuite/gcc.dg/vect/vect-over-widen-4.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
9923 | +++ gcc/testsuite/gcc.dg/vect/vect-over-widen-4.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
9924 | @@ -62,7 +62,9 @@ | |
9925 | return 0; | |
9926 | } | |
9927 | ||
9928 | -/* { dg-final { scan-tree-dump-times "vect_recog_over_widening_pattern: detected" 4 "vect" { target {! vect_sizes_32B_16B } } } } */ | |
9929 | +/* { dg-final { scan-tree-dump-times "vect_recog_widen_shift_pattern: detected" 2 "vect" { target vect_widen_shift } } } */ | |
9930 | +/* { dg-final { scan-tree-dump-times "vect_recog_over_widening_pattern: detected" 2 "vect" { target vect_widen_shift } } } */ | |
9931 | +/* { dg-final { scan-tree-dump-times "vect_recog_over_widening_pattern: detected" 4 "vect" { target { { ! vect_sizes_32B_16B } && { ! vect_widen_shift } } } } } */ | |
9932 | /* { dg-final { scan-tree-dump-times "vect_recog_over_widening_pattern: detected" 8 "vect" { target vect_sizes_32B_16B } } } */ | |
9933 | /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */ | |
9934 | /* { dg-final { cleanup-tree-dump "vect" } } */ | |
9935 | Index: gcc/testsuite/gcc.dg/vect/vect-over-widen-4-big-array.c | |
9936 | =================================================================== | |
9937 | --- gcc/testsuite/gcc.dg/vect/vect-over-widen-4-big-array.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
9938 | +++ gcc/testsuite/gcc.dg/vect/vect-over-widen-4-big-array.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
9939 | @@ -62,7 +62,9 @@ | |
9940 | return 0; | |
9941 | } | |
9942 | ||
9943 | -/* { dg-final { scan-tree-dump-times "vect_recog_over_widening_pattern: detected" 4 "vect" } } */ | |
9944 | +/* { dg-final { scan-tree-dump-times "vect_recog_widen_shift_pattern: detected" 2 "vect" { target vect_widen_shift } } } */ | |
9945 | +/* { dg-final { scan-tree-dump-times "vect_recog_over_widening_pattern: detected" 2 "vect" { target vect_widen_shift } } } */ | |
9946 | +/* { dg-final { scan-tree-dump-times "vect_recog_over_widening_pattern: detected" 4 "vect" { target { ! vect_widen_shift } } } } */ | |
9947 | /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */ | |
9948 | /* { dg-final { cleanup-tree-dump "vect" } } */ | |
9949 | ||
9950 | Index: gcc/testsuite/gcc.dg/vect/pr52870.c | |
9951 | =================================================================== | |
9952 | --- gcc/testsuite/gcc.dg/vect/pr52870.c (.../tags/gcc_4_7_0_release) (wersja 0) | |
9953 | +++ gcc/testsuite/gcc.dg/vect/pr52870.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
9954 | @@ -0,0 +1,17 @@ | |
9955 | +/* { dg-do compile } */ | |
9956 | +/* { dg-options "-O1 -ftree-vectorize" } */ | |
9957 | + | |
9958 | +long | |
9959 | +test (int *x) | |
9960 | +{ | |
9961 | + unsigned long sx, xprec; | |
9962 | + | |
9963 | + sx = *x >= 0 ? *x : -*x; | |
9964 | + | |
9965 | + xprec = sx * 64; | |
9966 | + | |
9967 | + if (sx < 16384) | |
9968 | + foo (sx); | |
9969 | + | |
9970 | + return xprec; | |
9971 | +} | |
9972 | Index: gcc/testsuite/gcc.dg/pr53060.c | |
9973 | =================================================================== | |
9974 | --- gcc/testsuite/gcc.dg/pr53060.c (.../tags/gcc_4_7_0_release) (wersja 0) | |
9975 | +++ gcc/testsuite/gcc.dg/pr53060.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
9976 | @@ -0,0 +1,24 @@ | |
9977 | +/* { dg-do run } */ | |
9978 | + | |
9979 | +extern void abort (void); | |
9980 | + | |
9981 | +int f(void) { return 2; } | |
9982 | +unsigned int g(void) { return 5; } | |
9983 | +unsigned int h = 1; | |
9984 | + | |
9985 | +typedef unsigned int vec __attribute__((vector_size(16))); | |
9986 | + | |
9987 | +vec i = { 1, 2, 3, 4}; | |
9988 | + | |
9989 | +vec fv1(void) { return i + (h ? f() : g()); } | |
9990 | +vec fv2(void) { return (h ? f() : g()) + i; } | |
9991 | + | |
9992 | +int main() | |
9993 | +{ | |
9994 | + vec i, j; | |
9995 | + j = fv1(); | |
9996 | + if (j[0] != 3) abort(); | |
9997 | + i = fv2(); | |
9998 | + if (i[0] != 3) abort(); | |
9999 | + return 0; | |
10000 | +} | |
10001 | Index: gcc/testsuite/gcc.dg/Wunused-var-3.c | |
10002 | =================================================================== | |
10003 | --- gcc/testsuite/gcc.dg/Wunused-var-3.c (.../tags/gcc_4_7_0_release) (wersja 0) | |
10004 | +++ gcc/testsuite/gcc.dg/Wunused-var-3.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
10005 | @@ -0,0 +1,34 @@ | |
10006 | +/* PR c/52577 */ | |
10007 | +/* { dg-do compile } */ | |
10008 | +/* { dg-options "-Wunused" } */ | |
10009 | + | |
10010 | +typedef int V __attribute__((vector_size (sizeof (int) * 4))); | |
10011 | + | |
10012 | +void | |
10013 | +f1 (V *p) | |
10014 | +{ | |
10015 | + V mask = { 1, 2, 3, 0 }; | |
10016 | + *p = __builtin_shuffle (*p, mask); | |
10017 | +} | |
10018 | + | |
10019 | +void | |
10020 | +f2 (V *p, V *q) | |
10021 | +{ | |
10022 | + V mask = { 1, 2, 3, 0 }; | |
10023 | + *p = __builtin_shuffle (*p, *q, mask); | |
10024 | +} | |
10025 | + | |
10026 | +void | |
10027 | +f3 (V *p, V *mask) | |
10028 | +{ | |
10029 | + V a = { 1, 2, 3, 0 }; | |
10030 | + *p = __builtin_shuffle (a, *mask); | |
10031 | +} | |
10032 | + | |
10033 | +void | |
10034 | +f4 (V *p, V *mask) | |
10035 | +{ | |
10036 | + V a = { 1, 2, 3, 0 }; | |
10037 | + V b = { 2, 3, 4, 1 }; | |
10038 | + *p = __builtin_shuffle (a, b, *mask); | |
10039 | +} | |
10040 | Index: gcc/testsuite/ChangeLog | |
10041 | =================================================================== | |
10042 | --- gcc/testsuite/ChangeLog (.../tags/gcc_4_7_0_release) (wersja 187293) | |
10043 | +++ gcc/testsuite/ChangeLog (.../branches/gcc-4_7-branch) (wersja 187293) | |
10044 | @@ -1,3 +1,525 @@ | |
10045 | +2012-05-08 Hans-Peter Nilsson <hp@axis.com> | |
10046 | + | |
10047 | + PR target/53272 | |
10048 | + * gcc.dg/torture/pr53272-1.c, gcc.dg/torture/pr53272-2.c: New test. | |
10049 | + | |
10050 | +2012-05-07 Jakub Jelinek <jakub@redhat.com> | |
10051 | + | |
10052 | + PR tree-optimization/53239 | |
10053 | + * g++.dg/opt/vrp3.C: New test. | |
10054 | + * g++.dg/opt/vrp3-aux.cc: New file. | |
10055 | + * g++.dg/opt/vrp3.h: New file. | |
10056 | + | |
10057 | +2012-05-07 Tobias Burnus <burnus@net-b.de> | |
10058 | + | |
10059 | + Backport from mainline: | |
10060 | + 2012-05-07 Tobias Burnus <burnus@net-b.de> | |
10061 | + | |
10062 | + PR fortran/53255 | |
10063 | + * gfortran.dg/typebound_operator_15.f90: New. | |
10064 | + | |
10065 | +2012-05-05 Tobias Burnus <burnus@net-b.de> | |
10066 | + | |
10067 | + Backport from mainline: | |
10068 | + 2012-05-04 Tobias Burnus <burnus@net-b.de> | |
10069 | + | |
10070 | + PR fortran/53111 | |
10071 | + * gfortran.dg/constructor_7.f90: New. | |
10072 | + * gfortran.dg/constructor_8.f90: New. | |
10073 | + | |
10074 | +2012-05-04 Ulrich Weigand <ulrich.weigand@linaro.org> | |
10075 | + | |
10076 | + Backport from mainline: | |
10077 | + | |
10078 | + 2012-05-04 Ulrich Weigand <ulrich.weigand@linaro.org> | |
10079 | + | |
10080 | + PR tree-optimization/52633 | |
10081 | + * gcc.dg/vect/vect-over-widen-1.c: Two patterns should now be | |
10082 | + recognized as widening shifts instead of over-widening. | |
10083 | + * gcc.dg/vect/vect-over-widen-1-big-array.c: Likewise. | |
10084 | + * gcc.dg/vect/vect-over-widen-4.c: Likewise. | |
10085 | + * gcc.dg/vect/vect-over-widen-4-big-array.c: Likewise. | |
10086 | + * gcc.target/arm/pr52633.c: New test. | |
10087 | + | |
10088 | + 2012-04-10 Ulrich Weigand <ulrich.weigand@linaro.org> | |
10089 | + | |
10090 | + PR tree-optimization/52870 | |
10091 | + * gcc.dg/vect/pr52870.c: New test. | |
10092 | + | |
10093 | +2012-05-04 Richard Guenther <rguenther@suse.de> | |
10094 | + | |
10095 | + * gcc.dg/lto/pr53214_0.c: New testcase. | |
10096 | + | |
10097 | +2012-05-04 Eric Botcazou <ebotcazou@adacore.com> | |
10098 | + | |
10099 | + * gcc.target/ia64/pr48496.c: New test. | |
10100 | + * gcc.target/ia64/pr52657.c: Likewise. | |
10101 | + | |
10102 | +2012-05-03 Michael Meissner <meissner@linux.vnet.ibm.com> | |
10103 | + | |
10104 | + Backport from mainline | |
10105 | + 2012-05-03 Michael Meissner <meissner@linux.vnet.ibm.com> | |
10106 | + | |
10107 | + PR target/53199 | |
10108 | + * gcc.target/powwerpc/pr53199.c: New file. | |
10109 | + | |
10110 | +2012-05-03 Martin Jambor <mjambor@suse.cz> | |
10111 | + | |
10112 | + Backport from mainline | |
10113 | + 2012-05-02 Martin Jambor <mjambor@suse.cz> | |
10114 | + | |
10115 | + PR lto/52605 | |
10116 | + * g++.dg/lto/pr52605_0.C: New test. | |
10117 | + | |
10118 | +2012-05-03 Paolo Carlini <paolo.carlini@oracle.com> | |
10119 | + | |
10120 | + PR c++/53186 | |
10121 | + * g++.dg/other/final2.C: New. | |
10122 | + | |
10123 | +2012-05-03 Jakub Jelinek <jakub@redhat.com> | |
10124 | + | |
10125 | + PR debug/53174 | |
10126 | + * gcc.dg/pr53174.c: New test. | |
10127 | + | |
10128 | + PR target/53187 | |
10129 | + * gcc.target/arm/pr53187.c: New test. | |
10130 | + * gcc.c-torture/compile/pr53187.c: New test. | |
10131 | + | |
10132 | +2012-05-03 Richard Guenther <rguenther@suse.de> | |
10133 | + | |
10134 | + PR tree-optimization/53144 | |
10135 | + * gcc.dg/torture/pr53144.c: New testcase. | |
10136 | + | |
10137 | +2012-05-02 Tobias Burnus <burnus@net-b.de> | |
10138 | + | |
10139 | + Backport from mainline | |
10140 | + 2012-04-16 Tobias Burnus <burnus@net-b.de> | |
10141 | + | |
10142 | + PR fortran/52864 | |
10143 | + * gfortran.dg/pointer_intent_6.f90: New. | |
10144 | + | |
10145 | +2012-05-02 Jakub Jelinek <jakub@redhat.com> | |
10146 | + | |
10147 | + PR tree-optimization/53163 | |
10148 | + * gcc.c-torture/compile/pr53163.c: New test. | |
10149 | + | |
10150 | + PR rtl-optimization/53160 | |
10151 | + * gcc.c-torture/execute/pr53160.c: New test. | |
10152 | + | |
10153 | +2012-04-30 Thomas Koenig <tkoenig@gcc.gnu.org> | |
10154 | + | |
10155 | + PR fortran/53148 | |
10156 | + Backport from trunk | |
10157 | + * gfortran.dg/function_optimize_12.f90: New test. | |
10158 | + | |
10159 | +2012-04-30 Uros Bizjak <ubizjak@gmail.com> | |
10160 | + | |
10161 | + Backport from mainline | |
10162 | + 2012-04-27 Paolo Bonzini <bonzini@gnu.org> | |
10163 | + | |
10164 | + PR target/53138 | |
10165 | + * gcc.c-torture/execute/20120427-1.c: New testcase. | |
10166 | + | |
10167 | +2012-04-26 Hans-Peter Nilsson <hp@axis.com> | |
10168 | + | |
10169 | + PR target/53120 | |
10170 | + * gcc.dg/torture/pr53120.c: New test. | |
10171 | + | |
10172 | +2012-04-25 Jakub Jelinek <jakub@redhat.com> | |
10173 | + | |
10174 | + PR c/52880 | |
10175 | + * gcc.dg/pr52880.c: New test. | |
10176 | + | |
10177 | +2012-04-24 Georg-Johann Lay <avr@gjlay.de> | |
10178 | + | |
10179 | + PR testsuite/52641 | |
10180 | + PR tree-optimizations/52891 | |
10181 | + | |
10182 | + * gcc.c-torture/compile/pr52891-2.c: Fix test for 16-bit int. | |
10183 | + | |
10184 | +2012-04-24 Richard Guenther <rguenther@suse.de> | |
10185 | + | |
10186 | + PR tree-optimization/53085 | |
10187 | + * g++.dg/torture/pr53085.C: New testcase. | |
10188 | + | |
10189 | +2012-04-23 Richard Guenther <rguenther@suse.de> | |
10190 | + | |
10191 | + PR c/53060 | |
10192 | + * gcc.dg/pr53060.c: New testcase. | |
10193 | + | |
10194 | +2012-04-23 Jakub Jelinek <jakub@redhat.com> | |
10195 | + | |
10196 | + PR tree-optimizations/52891 | |
10197 | + * gcc.c-torture/compile/pr52891-1.c: New test. | |
10198 | + * gcc.c-torture/compile/pr52891-2.c: New test. | |
10199 | + | |
10200 | +2012-04-20 Ian Lance Taylor <iant@google.com> | |
10201 | + | |
10202 | + * go.test/go-test.exp (go-set-goarch): Recognize powerpc*-*-*. | |
10203 | + (go-gc-tests): Skip nilptr.go on powerpc*-*-*. | |
10204 | + | |
10205 | +2012-04-17 Paolo Carlini <paolo.carlini@oracle.com> | |
10206 | + | |
10207 | + PR c++/53003 | |
10208 | + * g++.dg/parse/crash59.C: New. | |
10209 | + | |
10210 | +2012-04-16 Jason Merrill <jason@redhat.com> | |
10211 | + | |
10212 | + PR c++/38543 | |
10213 | + * g++.dg/cpp0x/variadic131.C: New. | |
10214 | + | |
10215 | +2012-04-16 Jason Merrill <jason@redhat.com> | |
10216 | + | |
10217 | + PR c++/50830 | |
10218 | + * g++.dg/cpp0x/variadic129.C: New. | |
10219 | + | |
10220 | + PR c++/50303 | |
10221 | + * g++.dg/cpp0x/variadic128.C: New. | |
10222 | + | |
10223 | +2012-04-16 Uros Bizjak <ubizjak@gmail.com> | |
10224 | + | |
10225 | + Backport from mainline | |
10226 | + 2012-04-12 Uros Bizjak <ubizjak@gmail.com> | |
10227 | + | |
10228 | + PR target/52932 | |
10229 | + * gcc.target/i386/avx2-vpermps-1.c (avx2_test): Use __m256i type for | |
10230 | + second function argument. | |
10231 | + * gcc.target/i386/avx2-vpermps-2.c (init_permps): Update declaration. | |
10232 | + (calc_permps): Update declaration. Calculate result correctly. | |
10233 | + (avx2_test): Change src2 type to union256i_d. | |
10234 | + * gcc.target/i386/avx2-vpermd-2.c (calc_permd): Calculate result | |
10235 | + correctly. | |
10236 | + | |
10237 | +2012-04-16 Martin Jambor <mjambor@suse.cz> | |
10238 | + | |
10239 | + Backported from mainline | |
10240 | + | |
10241 | + 2012-04-13 Martin Jambor <mjambor@suse.cz> | |
10242 | + PR middle-end/52939 | |
10243 | + | |
10244 | + * g++.dg/ipa/pr52939.C: New test. | |
10245 | + | |
10246 | +2012-04-15 Jason Merrill <jason@redhat.com> | |
10247 | + | |
10248 | + PR c++/52380 | |
10249 | + * g++.dg/cpp0x/variadic125.C: New. | |
10250 | + | |
10251 | + PR c++/52292 | |
10252 | + * g++.dg/cpp0x/variadic124.C: New. | |
10253 | + | |
10254 | +2012-04-15 Fabien Chêne <fabien@gcc.gnu.org> | |
10255 | + | |
10256 | + PR c++/52465 | |
10257 | + * g++.dg/lookup/using52.C: New. | |
10258 | + | |
10259 | +2012-04-13 Jason Merrill <jason@redhat.com> | |
10260 | + | |
10261 | + PR c++/52824 | |
10262 | + * g++.dg/cpp0x/variadic123.C: New. | |
10263 | + * g++.dg/cpp0x/alias-decl-15.C: Remove dg-errors. | |
10264 | + | |
10265 | +2012-04-11 Jason Merrill <jason@redhat.com> | |
10266 | + | |
10267 | + PR c++/52906 | |
10268 | + * g++.dg/ext/attrib45.C: New. | |
10269 | + | |
10270 | +2012-04-13 Tom de Vries <tom@codesourcery.com> | |
10271 | + | |
10272 | + Backport from mainline r186419. | |
10273 | + | |
10274 | + 2012-04-13 Tom de Vries <tom@codesourcery.com> | |
10275 | + | |
10276 | + * gcc.dg/pr52734.c: New test. | |
10277 | + | |
10278 | +2012-04-13 Richard Guenther <rguenther@suse.de> | |
10279 | + | |
10280 | + PR tree-optimization/52969 | |
10281 | + * gcc.dg/torture/pr52969.c: New testcase. | |
10282 | + | |
10283 | +2012-04-13 Richard Guenther <rguenther@suse.de> | |
10284 | + | |
10285 | + PR c/52862 | |
10286 | + * gcc.dg/pr52862.c: New testcase. | |
10287 | + | |
10288 | +2012-04-12 Michael Meissner <meissner@linux.vnet.ibm.com> | |
10289 | + | |
10290 | + Backport from mainline | |
10291 | + 2012-04-12 Michael Meissner <meissner@linux.vnet.ibm.com> | |
10292 | + | |
10293 | + PR target/52775 | |
10294 | + * gcc.target/powerpc/pr52775.c: New file. | |
10295 | + | |
10296 | +2012-04-12 Richard Guenther <rguenther@suse.de> | |
10297 | + | |
10298 | + PR tree-optimization/52943 | |
10299 | + * gcc.dg/torture/pr52943.c: New testcase. | |
10300 | + | |
10301 | +2012-04-09 Mike Stump <mikestump@comcast.net> | |
10302 | + | |
10303 | + * g++.dg/cpp0x/udlit-raw-op.C: Don't use CRLF endings. | |
10304 | + * gcc.dg/tree-ssa/vrp59.c: Likewise. | |
10305 | + * gcc.dg/tree-ssa/vrp60.c: Likewise. | |
10306 | + * gnat.dg/aggr11.adb: Likewise. | |
10307 | + * gnat.dg/aggr11_pkg.ads: Likewise. | |
10308 | + * gnat.dg/aggr15.adb: Likewise. | |
10309 | + * gnat.dg/aggr15.ads: Likewise. | |
10310 | + * gnat.dg/aggr17.adb: Likewise. | |
10311 | + * gnat.dg/aggr18.adb: Likewise. | |
10312 | + * gnat.dg/array14.adb: Likewise. | |
10313 | + * gnat.dg/array14.ads: Likewise. | |
10314 | + * gnat.dg/array14_pkg.ads: Likewise. | |
10315 | + * gnat.dg/array19.adb: Likewise. | |
10316 | + * gnat.dg/array19.ads: Likewise. | |
10317 | + * gnat.dg/discr27.adb: Likewise. | |
10318 | + * gnat.dg/discr27.ads: Likewise. | |
10319 | + * gnat.dg/discr35.adb: Likewise. | |
10320 | + * gnat.dg/discr35.ads: Likewise. | |
10321 | + * gnat.dg/discr6.adb: Likewise. | |
10322 | + * gnat.dg/discr6_pkg.ads: Likewise. | |
10323 | + * gnat.dg/import1.adb: Likewise. | |
10324 | + * gnat.dg/import1.ads: Likewise. | |
10325 | + * gnat.dg/loop_address2.adb: Likewise. | |
10326 | + * gnat.dg/opt7.adb: Likewise. | |
10327 | + * gnat.dg/opt7.ads: Likewise. | |
10328 | + * gnat.dg/pointer_variable_bounds.adb: Likewise. | |
10329 | + * gnat.dg/pointer_variable_bounds.ads: Likewise. | |
10330 | + * gnat.dg/rep_clause2.adb: Likewise. | |
10331 | + * gnat.dg/rep_clause2.ads: Likewise. | |
10332 | + * gnat.dg/slice2.adb: Likewise. | |
10333 | + * gnat.dg/slice2.ads: Likewise. | |
10334 | + * gnat.dg/slice6.adb: Likewise. | |
10335 | + * gnat.dg/slice6_pkg.ads: Likewise. | |
10336 | + * gnat.dg/specs/unchecked_union2.ads: Likewise. | |
10337 | + * gnat.dg/taft_type2.adb: Likewise. | |
10338 | + * gnat.dg/taft_type2.ads: Likewise. | |
10339 | + * gnat.dg/taft_type2_pkg.ads: Likewise. | |
10340 | + * gnat.dg/volatile10.adb: Likewise. | |
10341 | + * gnat.dg/volatile10_pkg.ads: Likewise. | |
10342 | + | |
10343 | + * gcc.dg/dll-8.c: Remove execute permissions. | |
10344 | + * g++.dg/ext/dllexport5.C: Likewise. | |
10345 | + | |
10346 | +2012-04-09 Eric Botcazou <ebotcazou@adacore.com> | |
10347 | + | |
10348 | + * lib/target-supports.exp (check_effective_target_sparc_v9): New. | |
10349 | + (check_effective_target_sync_long_long): Add SPARC case. | |
10350 | + (check_effective_target_sync_long_long_runtime): Likewise. | |
10351 | + (check_effective_target_sync_int_long): Adjust SPARC case. | |
10352 | + (check_effective_target_sync_char_short): Likewise. | |
10353 | + | |
10354 | +2012-04-07 Thomas Koenig <tkoenig@gcc.gnu.org> | |
10355 | + | |
10356 | + PR fortran/52893 | |
10357 | + Backport from trunk | |
10358 | + * gfortran.dg/function_optimize_11.f90: New test. | |
10359 | + | |
10360 | +2012-04-07 Thomas Koenig <tkoenig@gcc.gnu.org> | |
10361 | + | |
10362 | + PR fortran/52668 | |
10363 | + Backport from trunk | |
10364 | + * gfortran.dg/use_only_6.f90: New test. | |
10365 | + | |
10366 | +2012-04-06 Mike Stump <mikestump@comcast.net> | |
10367 | + | |
10368 | + PR testsuite/50722 | |
10369 | + * gcc.dg/pr49994-3.c: Use -w to squelch non-portable warnings. | |
10370 | + | |
10371 | +2012-04-05 Jason Merrill <jason@redhat.com> | |
10372 | + | |
10373 | + PR c++/52596 | |
10374 | + * g++.dg/template/qualified-id5.C: New. | |
10375 | + | |
10376 | +2012-04-03 Jason Merrill <jason@redhat.com> | |
10377 | + | |
10378 | + PR c++/52796 | |
10379 | + * g++.dg/cpp0x/variadic-value1.C: New. | |
10380 | + | |
10381 | +2012-04-03 Richard Guenther <rguenther@suse.de> | |
10382 | + | |
10383 | + Backport from mainline | |
10384 | + 2012-03-02 Richard Guenther <rguenther@suse.de> | |
10385 | + | |
10386 | + PR tree-optimization/52406 | |
10387 | + * gcc.dg/torture/pr52406.c: New testcase. | |
10388 | + | |
10389 | +2012-04-03 Richard Guenther <rguenther@suse.de> | |
10390 | + | |
10391 | + Backport from mainline | |
10392 | + 2012-03-15 Richard Guenther <rguenther@suse.de> | |
10393 | + | |
10394 | + PR middle-end/52580 | |
10395 | + * gfortran.dg/vect/pr52580.f: New testcase. | |
10396 | + | |
10397 | +2012-04-03 Richard Guenther <rguenther@suse.de> | |
10398 | + | |
10399 | + Backport from mainline | |
10400 | + 2012-03-06 Richard Guenther <rguenther@suse.de> | |
10401 | + | |
10402 | + PR middle-end/52493 | |
10403 | + * gcc.dg/torture/pr52493.c: New testcase. | |
10404 | + | |
10405 | + 2012-03-23 Richard Guenther <rguenther@suse.de> | |
10406 | + | |
10407 | + PR tree-optimization/52678 | |
10408 | + * gfortran.dg/pr52678.f: New testcase. | |
10409 | + | |
10410 | + 2012-03-26 Richard Guenther <rguenther@suse.de> | |
10411 | + | |
10412 | + PR tree-optimization/52701 | |
10413 | + * gfortran.dg/pr52701.f90: New testcase. | |
10414 | + | |
10415 | + 2012-03-30 Richard Guenther <rguenther@suse.de> | |
10416 | + | |
10417 | + PR tree-optimization/52754 | |
10418 | + * gcc.target/i386/pr52754.c: New testcase. | |
10419 | + | |
10420 | +2012-04-03 Jakub Jelinek <jakub@redhat.com> | |
10421 | + | |
10422 | + PR tree-optimization/52835 | |
10423 | + * gfortran.dg/pr52835.f90: New test. | |
10424 | + | |
10425 | +2012-03-31 Eric Botcazou <ebotcazou@adacore.com> | |
10426 | + | |
10427 | + * gnat.dg/controlled6.adb: New test. | |
10428 | + * gnat.dg/controlled6_pkg.ads: New helper. | |
10429 | + * gnat.dg/controlled6_pkg-iterators.ad[sb]: Likewise. | |
10430 | + | |
10431 | +2012-03-29 Meador Inge <meadori@codesourcery.com> | |
10432 | + | |
10433 | + PR c++/52672 | |
10434 | + * g++.dg/cpp0x/constexpr-52672.C: New testcase. | |
10435 | + | |
10436 | +2012-03-29 Paolo Carlini <paolo.carlini@oracle.com> | |
10437 | + | |
10438 | + PR c++/52718 | |
10439 | + * g++.dg/warn/Wzero-as-null-pointer-constant-5.C: New. | |
10440 | + | |
10441 | +2012-03-29 Jason Merrill <jason@redhat.com> | |
10442 | + | |
10443 | + PR c++/52685 | |
10444 | + * g++.dg/template/inherit8.C: New. | |
10445 | + | |
10446 | +2012-03-29 Jakub Jelinek <jakub@redhat.com> | |
10447 | + | |
10448 | + PR c++/52759 | |
10449 | + * g++.dg/ext/weak4.C: New test. | |
10450 | + | |
10451 | +2012-03-29 Jason Merrill <jason@redhat.com> | |
10452 | + | |
10453 | + PR c++/52743 | |
10454 | + * g++.dg/cpp0x/initlist-array3.C: New. | |
10455 | + | |
10456 | +2012-03-28 Jason Merrill <jason@redhat.com> | |
10457 | + | |
10458 | + PR c++/52746 | |
10459 | + * g++.dg/overload/virtual2.C: New. | |
10460 | + | |
10461 | +2012-03-28 Martin Jambor <mjambor@suse.cz> | |
10462 | + | |
10463 | + Backported from mainline | |
10464 | + 2012-03-27 Martin Jambor <mjambor@suse.cz> | |
10465 | + | |
10466 | + PR middle-end/52693 | |
10467 | + * gcc.dg/torture/pr52693.c: New test. | |
10468 | + | |
10469 | +2012-03-28 Jakub Jelinek <jakub@redhat.com> | |
10470 | + | |
10471 | + PR middle-end/52691 | |
10472 | + * gcc.dg/pr52691.c: New test. | |
10473 | + | |
10474 | + PR middle-end/52750 | |
10475 | + * gcc.c-torture/compile/pr52750.c: New test. | |
10476 | + | |
10477 | +2012-03-28 Georg-Johann Lay <avr@gjlay.de> | |
10478 | + | |
10479 | + Backport from 2012-03-28 mainline r185910. | |
10480 | + | |
10481 | + PR target/52692 | |
10482 | + * gcc.target/avr/torture/builtins-2.c: New test. | |
10483 | + | |
10484 | +2012-03-28 Jakub Jelinek <jakub@redhat.com> | |
10485 | + | |
10486 | + PR target/52736 | |
10487 | + * gcc.target/i386/pr52736.c: New test. | |
10488 | + | |
10489 | +2012-03-27 Richard Guenther <rguenther@suse.de> | |
10490 | + | |
10491 | + PR middle-end/52720 | |
10492 | + * gcc.dg/torture/pr52720.c: New testcase. | |
10493 | + | |
10494 | +2012-03-26 Georg-Johann Lay <avr@gjlay.de> | |
10495 | + | |
10496 | + Backport from 2012-03-26 mainline r185793. | |
10497 | + | |
10498 | + * gcc.target/avr/torture/avr-torture.exp (AVR_TORTURE_OPTIONS): | |
10499 | + Add "-Os -flto" to list. | |
10500 | + | |
10501 | +2012-03-25 Eric Botcazou <ebotcazou@adacore.com> | |
10502 | + | |
10503 | + * gnat.dg/concat2.ad[sb]: New test. | |
10504 | + | |
10505 | +2012-03-24 Steven Bosscher <steven@gcc.gnu.org> | |
10506 | + | |
10507 | + PR middle-end/52640 | |
10508 | + * gcc.c-torture/compile/limits-externdecl.c: New test. | |
10509 | + | |
10510 | +2012-03-22 Paolo Carlini <paolo.carlini@oracle.com> | |
10511 | + | |
10512 | + PR c++/52487 | |
10513 | + * g++.dg/cpp0x/lambda/lambda-ice7.C: New. | |
10514 | + | |
10515 | +2012-03-22 Tobias Burnus <burnus@net-b.de> | |
10516 | + | |
10517 | + PR fortran/52452 | |
10518 | + * gfortran.dg/intrinsic_8.f90: New. | |
10519 | + | |
10520 | +2012-03-22 Jakub Jelinek <jakub@redhat.com> | |
10521 | + | |
10522 | + PR c++/52671 | |
10523 | + * g++.dg/ext/attrib44.C: New test. | |
10524 | + | |
10525 | +2012-03-22 Jason Merrill <jason@redhat.com> | |
10526 | + | |
10527 | + * g++.dg/torture/pr52582.C: New. | |
10528 | + | |
10529 | +2012-03-22 Georg-Johann Lay <avr@gjlay.de> | |
10530 | + | |
10531 | + Backport from 2012-03-20 mainline r185583. | |
10532 | + | |
10533 | + * gcc.target/avr/progmem.h (pgm_read_char): Define depending on | |
10534 | + __AVR_HAVE_LPMX__ | |
10535 | + | |
10536 | + Backport from 2012-03-20 mainline r185570. | |
10537 | + | |
10538 | + PR target/49868 | |
10539 | + * gcc.target/avr/torture/addr-space-2.h: New file. | |
10540 | + * gcc.target/avr/torture/addr-space-2-g.h: New test. | |
10541 | + * gcc.target/avr/torture/addr-space-2-0.h: New test. | |
10542 | + * gcc.target/avr/torture/addr-space-2-1.h: New test. | |
10543 | + * gcc.target/avr/torture/addr-space-2-x.h: New test. | |
10544 | + | |
10545 | + Backport from 2012-03-12 mainline r185255. | |
10546 | + | |
10547 | + PR target/49868 | |
10548 | + * gcc.target/avr/torture/addr-space-1.h: New file. | |
10549 | + * gcc.target/avr/torture/addr-space-g.h: New test. | |
10550 | + * gcc.target/avr/torture/addr-space-0.h: New test. | |
10551 | + * gcc.target/avr/torture/addr-space-1.h: New test. | |
10552 | + * gcc.target/avr/torture/addr-space-x.h: New test. | |
10553 | + | |
10554 | +2012-03-22 Jakub Jelinek <jakub@redhat.com> | |
10555 | + | |
10556 | + Backported from mainline | |
10557 | + 2012-03-14 Jakub Jelinek <jakub@redhat.com> | |
10558 | + | |
10559 | + PR c++/52521 | |
10560 | + * g++.dg/cpp0x/udlit-args2.C: New test. | |
10561 | + | |
10562 | + 2012-03-13 Jakub Jelinek <jakub@redhat.com> | |
10563 | + | |
10564 | + PR c/52577 | |
10565 | + * gcc.dg/Wunused-var-3.c: New test. | |
10566 | + | |
10567 | 2012-03-22 Release Manager | |
10568 | ||
10569 | * GCC 4.7.0 released. | |
10570 | Index: gcc/testsuite/g++.dg/ext/weak4.C | |
10571 | =================================================================== | |
10572 | --- gcc/testsuite/g++.dg/ext/weak4.C (.../tags/gcc_4_7_0_release) (wersja 0) | |
10573 | +++ gcc/testsuite/g++.dg/ext/weak4.C (.../branches/gcc-4_7-branch) (wersja 187293) | |
10574 | @@ -0,0 +1,9 @@ | |
10575 | +// PR c++/52759 | |
10576 | +// { dg-do compile } | |
10577 | +// { dg-require-weak "" } | |
10578 | +// { dg-options "" } | |
10579 | +#pragma weak foo | |
10580 | +template <typename T> | |
10581 | +struct A { }; | |
10582 | +template <typename T> | |
10583 | +void bar (A<T> &); | |
10584 | Index: gcc/testsuite/g++.dg/ext/attrib44.C | |
10585 | =================================================================== | |
10586 | --- gcc/testsuite/g++.dg/ext/attrib44.C (.../tags/gcc_4_7_0_release) (wersja 0) | |
10587 | +++ gcc/testsuite/g++.dg/ext/attrib44.C (.../branches/gcc-4_7-branch) (wersja 187293) | |
10588 | @@ -0,0 +1,4 @@ | |
10589 | +// PR c++/52671 | |
10590 | +// { dg-do compile } | |
10591 | +__attribute__ ((deprecated)) enum E { E0 }; // { dg-warning "attribute ignored in declaration of" } | |
10592 | +// { dg-message "must follow the" "" { target *-*-* } 3 } | |
10593 | Index: gcc/testsuite/g++.dg/ext/attrib45.C | |
10594 | =================================================================== | |
10595 | --- gcc/testsuite/g++.dg/ext/attrib45.C (.../tags/gcc_4_7_0_release) (wersja 0) | |
10596 | +++ gcc/testsuite/g++.dg/ext/attrib45.C (.../branches/gcc-4_7-branch) (wersja 187293) | |
10597 | @@ -0,0 +1,3 @@ | |
10598 | +// PR c++/52906 | |
10599 | + | |
10600 | +__attribute__ ((__deprecated__)); // { dg-error "does not declare anything" } | |
10601 | Index: gcc/testsuite/g++.dg/ext/dllexport5.C | |
10602 | =================================================================== | |
10603 | --- gcc/testsuite/g++.dg/ext/dllexport5.C (.../tags/gcc_4_7_0_release) (wersja 187293) | |
10604 | +++ gcc/testsuite/g++.dg/ext/dllexport5.C (.../branches/gcc-4_7-branch) (wersja 187293) | |
10605 | ||
10606 | Zmiany atrybutów dla: gcc/testsuite/g++.dg/ext/dllexport5.C | |
10607 | ___________________________________________________________________ | |
10608 | Deleted: svn:executable | |
10609 | ## -1 +0,0 ## | |
10610 | -* | |
10611 | \ No newline at end of property | |
10612 | Index: gcc/testsuite/g++.dg/opt/vrp3-aux.cc | |
10613 | =================================================================== | |
10614 | --- gcc/testsuite/g++.dg/opt/vrp3-aux.cc (.../tags/gcc_4_7_0_release) (wersja 0) | |
10615 | +++ gcc/testsuite/g++.dg/opt/vrp3-aux.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
10616 | @@ -0,0 +1,21 @@ | |
10617 | +// { dg-do compile } | |
10618 | +// { dg-options "" } | |
10619 | + | |
10620 | +#include "vrp3.h" | |
10621 | + | |
10622 | +R::R () | |
10623 | +{ | |
10624 | + r1 = r2 = 1; | |
10625 | +} | |
10626 | + | |
10627 | +R::R (int n, int d) | |
10628 | +{ | |
10629 | + r1 = n; | |
10630 | + r2 = d; | |
10631 | +} | |
10632 | + | |
10633 | +int | |
10634 | +R::compare (R const &r, R const &s) | |
10635 | +{ | |
10636 | + return (int) (r.r1 * s.r2 - s.r1 * r.r2); | |
10637 | +} | |
10638 | Index: gcc/testsuite/g++.dg/opt/vrp3.C | |
10639 | =================================================================== | |
10640 | --- gcc/testsuite/g++.dg/opt/vrp3.C (.../tags/gcc_4_7_0_release) (wersja 0) | |
10641 | +++ gcc/testsuite/g++.dg/opt/vrp3.C (.../branches/gcc-4_7-branch) (wersja 187293) | |
10642 | @@ -0,0 +1,47 @@ | |
10643 | +// PR tree-optimization/53239 | |
10644 | +// { dg-do run } | |
10645 | +// { dg-options "-O2" } | |
10646 | +// { dg-additional-sources "vrp3-aux.cc" } | |
10647 | + | |
10648 | +#include "vrp3.h" | |
10649 | + | |
10650 | +struct M | |
10651 | +{ | |
10652 | + M (R m); | |
10653 | + R val; | |
10654 | + static int compare (M const &, M const &); | |
10655 | +}; | |
10656 | + | |
10657 | +inline M const & | |
10658 | +min (M const & t1, M const & t2) | |
10659 | +{ | |
10660 | + return R::compare (t1.val, t2.val) < 0 ? t1 : t2; | |
10661 | +} | |
10662 | + | |
10663 | +M::M (R m) | |
10664 | +{ | |
10665 | + val = m; | |
10666 | +} | |
10667 | + | |
10668 | +M | |
10669 | +test (M *x) | |
10670 | +{ | |
10671 | + M n (R (0, 0)); | |
10672 | + | |
10673 | + for (int i = 0; i < 2; i++) | |
10674 | + { | |
10675 | + M p = x[i]; | |
10676 | + n = min (n, p); | |
10677 | + } | |
10678 | + | |
10679 | + if (n.val.r2 != 2 || n.val.r1 != 1) | |
10680 | + __builtin_abort (); | |
10681 | + return n; | |
10682 | +} | |
10683 | + | |
10684 | +int | |
10685 | +main () | |
10686 | +{ | |
10687 | + M x[2] = { M (R (1, 2)), M (R (1, 1)) }; | |
10688 | + test (x); | |
10689 | +} | |
10690 | Index: gcc/testsuite/g++.dg/opt/vrp3.h | |
10691 | =================================================================== | |
10692 | --- gcc/testsuite/g++.dg/opt/vrp3.h (.../tags/gcc_4_7_0_release) (wersja 0) | |
10693 | +++ gcc/testsuite/g++.dg/opt/vrp3.h (.../branches/gcc-4_7-branch) (wersja 187293) | |
10694 | @@ -0,0 +1,9 @@ | |
10695 | +struct R | |
10696 | +{ | |
10697 | + long long r1, r2; | |
10698 | + void copy (R const &r) { r1 = r.r1; r2 = r.r2; } | |
10699 | + R (); | |
10700 | + explicit R (int, int); | |
10701 | + R (R const &r) { copy (r); } | |
10702 | + static int compare (R const &, R const &); | |
10703 | +}; | |
10704 | Index: gcc/testsuite/g++.dg/lookup/using52.C | |
10705 | =================================================================== | |
10706 | --- gcc/testsuite/g++.dg/lookup/using52.C (.../tags/gcc_4_7_0_release) (wersja 0) | |
10707 | +++ gcc/testsuite/g++.dg/lookup/using52.C (.../branches/gcc-4_7-branch) (wersja 187293) | |
10708 | @@ -0,0 +1,16 @@ | |
10709 | +// { dg-do compile } | |
10710 | +// PR c++/52645 | |
10711 | + | |
10712 | +class A | |
10713 | +{ | |
10714 | +protected: | |
10715 | + struct B {}; | |
10716 | +}; | |
10717 | + | |
10718 | +class C : A | |
10719 | +{ | |
10720 | +protected: | |
10721 | + using A::B; | |
10722 | + | |
10723 | + struct D : public B {}; | |
10724 | +}; | |
10725 | Index: gcc/testsuite/g++.dg/other/final2.C | |
10726 | =================================================================== | |
10727 | --- gcc/testsuite/g++.dg/other/final2.C (.../tags/gcc_4_7_0_release) (wersja 0) | |
10728 | +++ gcc/testsuite/g++.dg/other/final2.C (.../branches/gcc-4_7-branch) (wersja 187293) | |
10729 | @@ -0,0 +1,27 @@ | |
10730 | +// PR c++/53186 | |
10731 | +// { dg-options "-fdump-tree-original -std=c++11" } | |
10732 | + | |
10733 | +struct F1 | |
10734 | +{ | |
10735 | + virtual void operator()() final; | |
10736 | + virtual operator int() final; | |
10737 | + virtual int operator++() final; | |
10738 | +}; | |
10739 | + | |
10740 | +struct F2 final | |
10741 | +{ | |
10742 | + virtual void operator()(); | |
10743 | + virtual operator int(); | |
10744 | + virtual int operator++(); | |
10745 | +}; | |
10746 | + | |
10747 | +void fooF1(F1& a) { a(); int m = a; ++a; } | |
10748 | +void fooF2(F2& a) { a(); int m = a; ++a; } | |
10749 | + | |
10750 | +// { dg-final { scan-tree-dump-times "F1::operator\\(\\)" 1 "original" } } | |
10751 | +// { dg-final { scan-tree-dump-times "F1::operator int" 1 "original" } } | |
10752 | +// { dg-final { scan-tree-dump-times "F1::operator\\+\\+" 1 "original" } } | |
10753 | +// { dg-final { scan-tree-dump-times "F2::operator\\(\\)" 1 "original" } } | |
10754 | +// { dg-final { scan-tree-dump-times "F2::operator int" 1 "original" } } | |
10755 | +// { dg-final { scan-tree-dump-times "F2::operator\\+\\+" 1 "original" } } | |
10756 | +// { dg-final { cleanup-tree-dump "original" } } | |
10757 | Index: gcc/testsuite/g++.dg/lto/pr52605_0.C | |
10758 | =================================================================== | |
10759 | --- gcc/testsuite/g++.dg/lto/pr52605_0.C (.../tags/gcc_4_7_0_release) (wersja 0) | |
10760 | +++ gcc/testsuite/g++.dg/lto/pr52605_0.C (.../branches/gcc-4_7-branch) (wersja 187293) | |
10761 | @@ -0,0 +1,39 @@ | |
10762 | +// { dg-lto-do link } | |
10763 | +// { dg-lto-options {{-flto -g}} } | |
10764 | + | |
10765 | +extern "C" void abort (void); | |
10766 | + | |
10767 | +class A | |
10768 | +{ | |
10769 | +public: | |
10770 | + virtual int foo (int i); | |
10771 | +}; | |
10772 | + | |
10773 | +int A::foo (int i) | |
10774 | +{ | |
10775 | + return i + 1; | |
10776 | +} | |
10777 | + | |
10778 | +int __attribute__ ((noinline,noclone)) get_input(void) | |
10779 | +{ | |
10780 | + return 1; | |
10781 | +} | |
10782 | + | |
10783 | +int main (int argc, char *argv[]) | |
10784 | +{ | |
10785 | + | |
10786 | + class B : public A | |
10787 | + { | |
10788 | + public: | |
10789 | + int bar (int i) | |
10790 | + { | |
10791 | + return foo (i) + 2; | |
10792 | + } | |
10793 | + }; | |
10794 | + class B b; | |
10795 | + | |
10796 | + if (b.bar (get_input ()) != 4) | |
10797 | + abort (); | |
10798 | + return 0; | |
10799 | +} | |
10800 | + | |
10801 | Index: gcc/testsuite/g++.dg/warn/Wzero-as-null-pointer-constant-5.C | |
10802 | =================================================================== | |
10803 | --- gcc/testsuite/g++.dg/warn/Wzero-as-null-pointer-constant-5.C (.../tags/gcc_4_7_0_release) (wersja 0) | |
10804 | +++ gcc/testsuite/g++.dg/warn/Wzero-as-null-pointer-constant-5.C (.../branches/gcc-4_7-branch) (wersja 187293) | |
10805 | @@ -0,0 +1,20 @@ | |
10806 | +// PR c++/52718 | |
10807 | +// { dg-options "-Wzero-as-null-pointer-constant" } | |
10808 | + | |
10809 | +struct foo | |
10810 | +{ | |
10811 | + foo(void* a = 0) {}; // { dg-warning "zero as null pointer" } | |
10812 | +}; | |
10813 | + | |
10814 | +void* fun(void* a = 0) {}; // { dg-warning "zero as null pointer" } | |
10815 | + | |
10816 | +struct bar: foo | |
10817 | +{ | |
10818 | + bar() {}; | |
10819 | +}; | |
10820 | + | |
10821 | +struct baz | |
10822 | +{ | |
10823 | + baz(const foo& f1 = foo(), | |
10824 | + void* f2 = fun()) {}; | |
10825 | +}; | |
10826 | Index: gcc/testsuite/g++.dg/parse/crash59.C | |
10827 | =================================================================== | |
10828 | --- gcc/testsuite/g++.dg/parse/crash59.C (.../tags/gcc_4_7_0_release) (wersja 0) | |
10829 | +++ gcc/testsuite/g++.dg/parse/crash59.C (.../branches/gcc-4_7-branch) (wersja 187293) | |
10830 | @@ -0,0 +1,3 @@ | |
10831 | +// PR c++/53003 | |
10832 | + | |
10833 | +struct A{ void a{} return b // { dg-error "function definition|expected" } | |
10834 | Index: gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice7.C | |
10835 | =================================================================== | |
10836 | --- gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice7.C (.../tags/gcc_4_7_0_release) (wersja 0) | |
10837 | +++ gcc/testsuite/g++.dg/cpp0x/lambda/lambda-ice7.C (.../branches/gcc-4_7-branch) (wersja 187293) | |
10838 | @@ -0,0 +1,9 @@ | |
10839 | +// PR c++/52487 | |
10840 | +// { dg-options "-std=c++0x" } | |
10841 | + | |
10842 | +struct A; // { dg-error "forward declaration" } | |
10843 | + | |
10844 | +void foo(A& a) | |
10845 | +{ | |
10846 | + [=](){a;}; // { dg-error "invalid use of incomplete type" } | |
10847 | +} | |
10848 | Index: gcc/testsuite/g++.dg/cpp0x/alias-decl-15.C | |
10849 | =================================================================== | |
10850 | --- gcc/testsuite/g++.dg/cpp0x/alias-decl-15.C (.../tags/gcc_4_7_0_release) (wersja 187293) | |
10851 | +++ gcc/testsuite/g++.dg/cpp0x/alias-decl-15.C (.../branches/gcc-4_7-branch) (wersja 187293) | |
10852 | @@ -2,7 +2,7 @@ | |
10853 | // { dg-options "-std=c++0x" } | |
10854 | ||
10855 | template<class U, class V> //#1 | |
10856 | -struct foo {}; // { dg-error "provided for|foo" } | |
10857 | +struct foo {}; | |
10858 | ||
10859 | template<class U, class V=char> | |
10860 | struct P {}; | |
10861 | @@ -10,8 +10,8 @@ | |
10862 | template<template<class... U> class... TT> | |
10863 | struct bar { | |
10864 | template<class... Args> | |
10865 | - using mem = P<TT<Args...>...>;//#2 { dg-error "wrong number of|arguments" } | |
10866 | + using mem = P<TT<Args...>...>;//#2 | |
10867 | }; | |
10868 | ||
10869 | -bar<foo>::mem<int, char> b;//#3 { dg-error "invalid type" } | |
10870 | +bar<foo>::mem<int, char> b;//#3 | |
10871 | ||
10872 | Index: gcc/testsuite/g++.dg/cpp0x/variadic131.C | |
10873 | =================================================================== | |
10874 | --- gcc/testsuite/g++.dg/cpp0x/variadic131.C (.../tags/gcc_4_7_0_release) (wersja 0) | |
10875 | +++ gcc/testsuite/g++.dg/cpp0x/variadic131.C (.../branches/gcc-4_7-branch) (wersja 187293) | |
10876 | @@ -0,0 +1,11 @@ | |
10877 | +// PR c++/38543 | |
10878 | +// { dg-do compile { target c++11 } } | |
10879 | + | |
10880 | +template< typename ... T > void foo( T ... args ); | |
10881 | +template<> void foo( ){} | |
10882 | +template<> void foo(int,double){} | |
10883 | +int main() | |
10884 | +{ | |
10885 | + foo( 0, 0.0 ); | |
10886 | + return 55; | |
10887 | +} | |
10888 | Index: gcc/testsuite/g++.dg/cpp0x/constexpr-52672.C | |
10889 | =================================================================== | |
10890 | --- gcc/testsuite/g++.dg/cpp0x/constexpr-52672.C (.../tags/gcc_4_7_0_release) (wersja 0) | |
10891 | +++ gcc/testsuite/g++.dg/cpp0x/constexpr-52672.C (.../branches/gcc-4_7-branch) (wersja 187293) | |
10892 | @@ -0,0 +1,8 @@ | |
10893 | +// PR c++/52672 | |
10894 | +// { dg-do compile } | |
10895 | +// { dg-options "-std=c++11" } | |
10896 | + | |
10897 | +typedef unsigned long * ul_ptr; | |
10898 | +constexpr unsigned long a = *((ul_ptr)0x0); // { dg-error "" } | |
10899 | +constexpr unsigned long b = *((ul_ptr)(*((ul_ptr)0x0))); // { dg-error "" } | |
10900 | +constexpr unsigned long c = *((ul_ptr)*((ul_ptr)(*((ul_ptr)0x0)))); // { dg-error "" } | |
10901 | Index: gcc/testsuite/g++.dg/cpp0x/variadic123.C | |
10902 | =================================================================== | |
10903 | --- gcc/testsuite/g++.dg/cpp0x/variadic123.C (.../tags/gcc_4_7_0_release) (wersja 0) | |
10904 | +++ gcc/testsuite/g++.dg/cpp0x/variadic123.C (.../branches/gcc-4_7-branch) (wersja 187293) | |
10905 | @@ -0,0 +1,14 @@ | |
10906 | +// PR c++/52824 | |
10907 | +// { dg-do compile { target c++11 } } | |
10908 | + | |
10909 | +template<typename G, typename H> | |
10910 | +struct foo | |
10911 | +{}; | |
10912 | + | |
10913 | +template<typename... G> | |
10914 | +struct bar : foo<G...> | |
10915 | +{}; | |
10916 | + | |
10917 | +int main() { | |
10918 | + bar<int, float> f; | |
10919 | +} | |
10920 | Index: gcc/testsuite/g++.dg/cpp0x/variadic124.C | |
10921 | =================================================================== | |
10922 | --- gcc/testsuite/g++.dg/cpp0x/variadic124.C (.../tags/gcc_4_7_0_release) (wersja 0) | |
10923 | +++ gcc/testsuite/g++.dg/cpp0x/variadic124.C (.../branches/gcc-4_7-branch) (wersja 187293) | |
10924 | @@ -0,0 +1,29 @@ | |
10925 | +// PR c++/52292 | |
10926 | +// { dg-options -std=c++11 } | |
10927 | + | |
10928 | +template <template <typename...> class T> | |
10929 | +struct foo { | |
10930 | + template <typename... U> | |
10931 | + foo(T<U...> x) { } | |
10932 | +}; | |
10933 | + | |
10934 | +template <typename T> | |
10935 | +struct bar { | |
10936 | + bar(T x) : value(x) { } | |
10937 | + | |
10938 | + T value; | |
10939 | +}; | |
10940 | + | |
10941 | +struct generic : private foo<bar> { | |
10942 | + template <typename T> | |
10943 | + generic(bar<T> x) : foo(x) | |
10944 | + { | |
10945 | + } | |
10946 | + | |
10947 | +}; | |
10948 | + | |
10949 | +int main() | |
10950 | +{ | |
10951 | + bar<int> x(32); | |
10952 | + generic y(x); // FAILS | |
10953 | +} | |
10954 | Index: gcc/testsuite/g++.dg/cpp0x/initlist-array3.C | |
10955 | =================================================================== | |
10956 | --- gcc/testsuite/g++.dg/cpp0x/initlist-array3.C (.../tags/gcc_4_7_0_release) (wersja 0) | |
10957 | +++ gcc/testsuite/g++.dg/cpp0x/initlist-array3.C (.../branches/gcc-4_7-branch) (wersja 187293) | |
10958 | @@ -0,0 +1,10 @@ | |
10959 | +// PR c++/52743 | |
10960 | +// { dg-do compile { target c++11 } } | |
10961 | + | |
10962 | +void composite (int const (&) [2]); | |
10963 | +void composite (int const (&) [3]); | |
10964 | + | |
10965 | +int main () | |
10966 | +{ | |
10967 | + composite({0,1}); // { dg-error "ambiguous" } | |
10968 | +} | |
10969 | Index: gcc/testsuite/g++.dg/cpp0x/variadic125.C | |
10970 | =================================================================== | |
10971 | --- gcc/testsuite/g++.dg/cpp0x/variadic125.C (.../tags/gcc_4_7_0_release) (wersja 0) | |
10972 | +++ gcc/testsuite/g++.dg/cpp0x/variadic125.C (.../branches/gcc-4_7-branch) (wersja 187293) | |
10973 | @@ -0,0 +1,25 @@ | |
10974 | +// PR c++/52380 | |
10975 | +// { dg-do compile { target c++11 } } | |
10976 | + | |
10977 | +template<typename T> | |
10978 | +struct S | |
10979 | +{ | |
10980 | + template<typename U> | |
10981 | + struct Unary // Line 5 | |
10982 | + {}; | |
10983 | + | |
10984 | + template<unsigned, typename... Args> | |
10985 | + struct Dispatch // Line 9 | |
10986 | + : public Unary<Args...> | |
10987 | + {}; | |
10988 | + | |
10989 | + template<typename... Args> | |
10990 | + struct Variadic | |
10991 | + : public Dispatch<sizeof...(Args), Args...> | |
10992 | + {}; | |
10993 | +}; | |
10994 | + | |
10995 | +int main() | |
10996 | +{ | |
10997 | + S<void>::Variadic<void> z; | |
10998 | +} | |
10999 | Index: gcc/testsuite/g++.dg/cpp0x/variadic-value1.C | |
11000 | =================================================================== | |
11001 | --- gcc/testsuite/g++.dg/cpp0x/variadic-value1.C (.../tags/gcc_4_7_0_release) (wersja 0) | |
11002 | +++ gcc/testsuite/g++.dg/cpp0x/variadic-value1.C (.../branches/gcc-4_7-branch) (wersja 187293) | |
11003 | @@ -0,0 +1,24 @@ | |
11004 | +// PR c++/52796 | |
11005 | +// { dg-do run { target c++11 } } | |
11006 | + | |
11007 | +inline void *operator new(__SIZE_TYPE__ s, void *p) { return p; } | |
11008 | + | |
11009 | +struct A | |
11010 | +{ | |
11011 | + int i; | |
11012 | + template<class... Ts> | |
11013 | + A(Ts&&... ts): i(ts...) { } | |
11014 | +}; | |
11015 | + | |
11016 | +static union { | |
11017 | + unsigned char c[sizeof(A)]; | |
11018 | + int i; | |
11019 | +}; | |
11020 | + | |
11021 | +int main() | |
11022 | +{ | |
11023 | + i = 0xdeadbeef; | |
11024 | + new(c) A; | |
11025 | + if (i != 0) | |
11026 | + __builtin_abort(); | |
11027 | +} | |
11028 | Index: gcc/testsuite/g++.dg/cpp0x/udlit-args2.C | |
11029 | =================================================================== | |
11030 | --- gcc/testsuite/g++.dg/cpp0x/udlit-args2.C (.../tags/gcc_4_7_0_release) (wersja 0) | |
11031 | +++ gcc/testsuite/g++.dg/cpp0x/udlit-args2.C (.../branches/gcc-4_7-branch) (wersja 187293) | |
11032 | @@ -0,0 +1,15 @@ | |
11033 | +// PR c++/52521 | |
11034 | +// { dg-do compile } | |
11035 | +// { dg-options -std=c++11 } | |
11036 | + | |
11037 | +#include <cstddef> | |
11038 | + | |
11039 | +int operator "" _a (const char *); | |
11040 | +int operator "" _a (const char *, std::size_t); | |
11041 | +int a = 123_a; | |
11042 | +int a2 = "abc"_a; | |
11043 | + | |
11044 | +int operator "" _b (const char *, std::size_t); | |
11045 | +int operator "" _b (const char *); | |
11046 | +int b = 123_b; | |
11047 | +int b2 = "abc"_b; | |
11048 | Index: gcc/testsuite/g++.dg/cpp0x/variadic128.C | |
11049 | =================================================================== | |
11050 | --- gcc/testsuite/g++.dg/cpp0x/variadic128.C (.../tags/gcc_4_7_0_release) (wersja 0) | |
11051 | +++ gcc/testsuite/g++.dg/cpp0x/variadic128.C (.../branches/gcc-4_7-branch) (wersja 187293) | |
11052 | @@ -0,0 +1,16 @@ | |
11053 | +// PR c++/50303 | |
11054 | +// { dg-do compile { target c++11 } } | |
11055 | + | |
11056 | +template<typename Interface> | |
11057 | +struct A1 { | |
11058 | +}; | |
11059 | + | |
11060 | +template<template<class I> class... Actions> | |
11061 | +void g2() { | |
11062 | + g2<Actions...>(); | |
11063 | +} | |
11064 | + | |
11065 | +int main() | |
11066 | +{ | |
11067 | + g2<A1>(); | |
11068 | +} | |
11069 | Index: gcc/testsuite/g++.dg/cpp0x/variadic129.C | |
11070 | =================================================================== | |
11071 | --- gcc/testsuite/g++.dg/cpp0x/variadic129.C (.../tags/gcc_4_7_0_release) (wersja 0) | |
11072 | +++ gcc/testsuite/g++.dg/cpp0x/variadic129.C (.../branches/gcc-4_7-branch) (wersja 187293) | |
11073 | @@ -0,0 +1,19 @@ | |
11074 | +// PR c++/50830 | |
11075 | +// { dg-do compile { target c++11 } } | |
11076 | + | |
11077 | +template<template<class> class...> | |
11078 | +struct list_templates {}; | |
11079 | + | |
11080 | +template<class> | |
11081 | +struct aa {}; | |
11082 | + | |
11083 | +template<class... T> | |
11084 | +struct test {}; | |
11085 | + | |
11086 | +template<template<class> class... F, class T> | |
11087 | +struct test<list_templates<F...>, T> | |
11088 | +{ | |
11089 | + struct inner {}; | |
11090 | +}; | |
11091 | + | |
11092 | +test<list_templates<aa>, int> a4; // error | |
11093 | Index: gcc/testsuite/g++.dg/torture/pr53085.C | |
11094 | =================================================================== | |
11095 | --- gcc/testsuite/g++.dg/torture/pr53085.C (.../tags/gcc_4_7_0_release) (wersja 0) | |
11096 | +++ gcc/testsuite/g++.dg/torture/pr53085.C (.../branches/gcc-4_7-branch) (wersja 187293) | |
11097 | @@ -0,0 +1,17 @@ | |
11098 | +// { dg-do compile } | |
11099 | +// { dg-skip-if "" { *-*-* } { "-fno-fat-lto-objects" } { "" } } | |
11100 | +// { dg-options "-fdump-tree-optimized" } | |
11101 | + | |
11102 | +class aa{ | |
11103 | + void f(); | |
11104 | +private: | |
11105 | + volatile int a; | |
11106 | +}; | |
11107 | + | |
11108 | +void aa::f(){ | |
11109 | + a=1; | |
11110 | + a=1; | |
11111 | +} | |
11112 | + | |
11113 | +// { dg-final { scan-tree-dump-times "a ={v} 1;" 2 "optimized" } } | |
11114 | +// { dg-final { cleanup-tree-dump "optimized" } } | |
11115 | Index: gcc/testsuite/g++.dg/torture/pr52582.C | |
11116 | =================================================================== | |
11117 | --- gcc/testsuite/g++.dg/torture/pr52582.C (.../tags/gcc_4_7_0_release) (wersja 0) | |
11118 | +++ gcc/testsuite/g++.dg/torture/pr52582.C (.../branches/gcc-4_7-branch) (wersja 187293) | |
11119 | @@ -0,0 +1,23 @@ | |
11120 | +// PR c++/52582 | |
11121 | + | |
11122 | +inline void *operator new (__SIZE_TYPE__, void *p) throw () | |
11123 | +{ | |
11124 | + return p; | |
11125 | +} | |
11126 | +struct B | |
11127 | +{ | |
11128 | + virtual ~B (); | |
11129 | + B (); | |
11130 | +}; | |
11131 | +struct A : B | |
11132 | +{ | |
11133 | + A () : B () {} | |
11134 | + virtual void bar (); | |
11135 | +}; | |
11136 | +void | |
11137 | +foo () | |
11138 | +{ | |
11139 | + char a[64]; | |
11140 | + B *b = new (&a) A (); | |
11141 | + b->~B (); | |
11142 | +} | |
11143 | Index: gcc/testsuite/g++.dg/ipa/pr52939.C | |
11144 | =================================================================== | |
11145 | --- gcc/testsuite/g++.dg/ipa/pr52939.C (.../tags/gcc_4_7_0_release) (wersja 0) | |
11146 | +++ gcc/testsuite/g++.dg/ipa/pr52939.C (.../branches/gcc-4_7-branch) (wersja 187293) | |
11147 | @@ -0,0 +1,58 @@ | |
11148 | +/* Verify that we do not ICE on invalid devirtualizations (which might | |
11149 | + be OK at run-time because never executed). */ | |
11150 | +/* { dg-do run } */ | |
11151 | +/* { dg-options "-O3 -fno-early-inlining -fno-inline" } */ | |
11152 | + | |
11153 | +extern "C" void abort (void); | |
11154 | + | |
11155 | +class A | |
11156 | +{ | |
11157 | +public: | |
11158 | + int data; | |
11159 | + virtual int foo (int i); | |
11160 | +}; | |
11161 | + | |
11162 | +class B : public A | |
11163 | +{ | |
11164 | +public: | |
11165 | + virtual int foo (int i); | |
11166 | + virtual int bar (int i); | |
11167 | +}; | |
11168 | + | |
11169 | +int A::foo (int i) | |
11170 | +{ | |
11171 | + return i + 1; | |
11172 | +} | |
11173 | + | |
11174 | +int B::foo (int i) | |
11175 | +{ | |
11176 | + return i + 2; | |
11177 | +} | |
11178 | + | |
11179 | +int B::bar (int i) | |
11180 | +{ | |
11181 | + return i + 3; | |
11182 | +} | |
11183 | + | |
11184 | +static int middleman (class A *obj, int i) | |
11185 | +{ | |
11186 | + class B *b = (class B *) obj; | |
11187 | + | |
11188 | + if (i != 1) | |
11189 | + return b->bar (i); | |
11190 | + else | |
11191 | + return i; | |
11192 | +} | |
11193 | + | |
11194 | +int __attribute__ ((noinline,noclone)) get_input(void) | |
11195 | +{ | |
11196 | + return 1; | |
11197 | +} | |
11198 | + | |
11199 | +int main (int argc, char *argv[]) | |
11200 | +{ | |
11201 | + class A o; | |
11202 | + if (middleman (&o, get_input ()) != 1) | |
11203 | + abort (); | |
11204 | + return 0; | |
11205 | +} | |
11206 | Index: gcc/testsuite/g++.dg/overload/virtual2.C | |
11207 | =================================================================== | |
11208 | --- gcc/testsuite/g++.dg/overload/virtual2.C (.../tags/gcc_4_7_0_release) (wersja 0) | |
11209 | +++ gcc/testsuite/g++.dg/overload/virtual2.C (.../branches/gcc-4_7-branch) (wersja 187293) | |
11210 | @@ -0,0 +1,31 @@ | |
11211 | +// PR c++/52746 | |
11212 | +// { dg-do run } | |
11213 | + | |
11214 | +extern "C" int printf(const char*,...); | |
11215 | +extern "C" void abort(); | |
11216 | +bool db; | |
11217 | + | |
11218 | +struct A | |
11219 | +{ | |
11220 | + virtual ~A() {} | |
11221 | +}; | |
11222 | + | |
11223 | +struct B : public A | |
11224 | +{ | |
11225 | + virtual ~B() { db = true; } | |
11226 | +}; | |
11227 | + | |
11228 | +template<int> void test() | |
11229 | +{ | |
11230 | + B * b = new B; | |
11231 | + A * a = b; | |
11232 | + a->~A(); | |
11233 | + ::operator delete(b); | |
11234 | +} | |
11235 | + | |
11236 | +int main() | |
11237 | +{ | |
11238 | + test<0>(); | |
11239 | + if (!db) | |
11240 | + abort(); | |
11241 | +} | |
11242 | Index: gcc/testsuite/g++.dg/template/inherit8.C | |
11243 | =================================================================== | |
11244 | --- gcc/testsuite/g++.dg/template/inherit8.C (.../tags/gcc_4_7_0_release) (wersja 0) | |
11245 | +++ gcc/testsuite/g++.dg/template/inherit8.C (.../branches/gcc-4_7-branch) (wersja 187293) | |
11246 | @@ -0,0 +1,13 @@ | |
11247 | +// PR c++/52685 | |
11248 | + | |
11249 | +template <typename T> | |
11250 | +struct A | |
11251 | +{ | |
11252 | + template <typename U> | |
11253 | + struct B : public A <B<U> > | |
11254 | + { | |
11255 | + struct C : public B<U> | |
11256 | + { | |
11257 | + }; | |
11258 | + }; | |
11259 | +}; | |
11260 | Index: gcc/testsuite/g++.dg/template/qualified-id5.C | |
11261 | =================================================================== | |
11262 | --- gcc/testsuite/g++.dg/template/qualified-id5.C (.../tags/gcc_4_7_0_release) (wersja 0) | |
11263 | +++ gcc/testsuite/g++.dg/template/qualified-id5.C (.../branches/gcc-4_7-branch) (wersja 187293) | |
11264 | @@ -0,0 +1,17 @@ | |
11265 | +// PR c++/52596 | |
11266 | + | |
11267 | +struct msgpack_zone_finalizer_array { | |
11268 | + int* tail; | |
11269 | +}; | |
11270 | +struct msgpack_zone { | |
11271 | + msgpack_zone_finalizer_array finalizer_array; | |
11272 | +}; | |
11273 | +struct zone : public msgpack_zone { | |
11274 | + template <typename T> T* allocate(); | |
11275 | + | |
11276 | +}; | |
11277 | +template <typename T> | |
11278 | +T* zone::allocate() | |
11279 | +{ | |
11280 | + --msgpack_zone::finalizer_array.tail; | |
11281 | +} | |
11282 | Index: gcc/cp/typeck.c | |
11283 | =================================================================== | |
11284 | --- gcc/cp/typeck.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
11285 | +++ gcc/cp/typeck.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
11286 | @@ -2410,6 +2410,11 @@ | |
11287 | tf_warning_or_error); | |
11288 | expr = (adjust_result_of_qualified_name_lookup | |
11289 | (expr, dtor_type, object_type)); | |
11290 | + if (scope == NULL_TREE) | |
11291 | + /* We need to call adjust_result_of_qualified_name_lookup in case the | |
11292 | + destructor names a base class, but we unset BASELINK_QUALIFIED_P so | |
11293 | + that we still get virtual function binding. */ | |
11294 | + BASELINK_QUALIFIED_P (expr) = false; | |
11295 | return expr; | |
11296 | } | |
11297 | ||
11298 | Index: gcc/cp/class.c | |
11299 | =================================================================== | |
11300 | --- gcc/cp/class.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
11301 | +++ gcc/cp/class.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
11302 | @@ -3145,8 +3145,9 @@ | |
11303 | CLASSTYPE_NON_AGGREGATE (t) = 1; | |
11304 | ||
11305 | /* If at least one non-static data member is non-literal, the whole | |
11306 | - class becomes non-literal. */ | |
11307 | - if (!literal_type_p (type)) | |
11308 | + class becomes non-literal. Note: if the type is incomplete we | |
11309 | + will complain later on. */ | |
11310 | + if (COMPLETE_TYPE_P (type) && !literal_type_p (type)) | |
11311 | CLASSTYPE_LITERAL_P (t) = false; | |
11312 | ||
11313 | /* A standard-layout class is a class that: | |
11314 | Index: gcc/cp/decl.c | |
11315 | =================================================================== | |
11316 | --- gcc/cp/decl.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
11317 | +++ gcc/cp/decl.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
11318 | @@ -4216,10 +4216,11 @@ | |
11319 | error ("%<constexpr%> cannot be used for type declarations"); | |
11320 | } | |
11321 | ||
11322 | - if (declspecs->attributes) | |
11323 | + if (declspecs->attributes && declared_type) | |
11324 | { | |
11325 | location_t loc = input_location; | |
11326 | - if (!CLASSTYPE_TEMPLATE_INSTANTIATION (declared_type)) | |
11327 | + if (!CLASS_TYPE_P (declared_type) | |
11328 | + || !CLASSTYPE_TEMPLATE_INSTANTIATION (declared_type)) | |
11329 | /* For a non-template class, use the name location; for a template | |
11330 | class (an explicit instantiation), use the current location. */ | |
11331 | input_location = location_of (declared_type); | |
11332 | @@ -4419,7 +4420,8 @@ | |
11333 | } | |
11334 | ||
11335 | /* If #pragma weak was used, mark the decl weak now. */ | |
11336 | - maybe_apply_pragma_weak (decl); | |
11337 | + if (!processing_template_decl) | |
11338 | + maybe_apply_pragma_weak (decl); | |
11339 | ||
11340 | if (TREE_CODE (decl) == FUNCTION_DECL | |
11341 | && DECL_DECLARED_INLINE_P (decl) | |
11342 | @@ -10574,6 +10576,17 @@ | |
11343 | return error_mark_node; | |
11344 | } | |
11345 | ||
11346 | + if (warn_zero_as_null_pointer_constant | |
11347 | + && c_inhibit_evaluation_warnings == 0 | |
11348 | + && (POINTER_TYPE_P (decl_type) || TYPE_PTR_TO_MEMBER_P (decl_type)) | |
11349 | + && null_ptr_cst_p (arg) | |
11350 | + && !NULLPTR_TYPE_P (TREE_TYPE (arg))) | |
11351 | + { | |
11352 | + warning (OPT_Wzero_as_null_pointer_constant, | |
11353 | + "zero as null pointer constant"); | |
11354 | + return nullptr_node; | |
11355 | + } | |
11356 | + | |
11357 | /* [dcl.fct.default] | |
11358 | ||
11359 | Local variables shall not be used in default argument | |
11360 | Index: gcc/cp/method.c | |
11361 | =================================================================== | |
11362 | --- gcc/cp/method.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
11363 | +++ gcc/cp/method.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
11364 | @@ -1590,6 +1590,7 @@ | |
11365 | DECL_DELETED_FN (fn) = deleted_p; | |
11366 | DECL_DECLARED_CONSTEXPR_P (fn) = constexpr_p; | |
11367 | } | |
11368 | + DECL_EXTERNAL (fn) = true; | |
11369 | DECL_NOT_REALLY_EXTERN (fn) = 1; | |
11370 | DECL_DECLARED_INLINE_P (fn) = 1; | |
11371 | gcc_assert (!TREE_USED (fn)); | |
11372 | Index: gcc/cp/tree.c | |
11373 | =================================================================== | |
11374 | --- gcc/cp/tree.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
11375 | +++ gcc/cp/tree.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
11376 | @@ -150,8 +150,14 @@ | |
11377 | /* A scope ref in a template, left as SCOPE_REF to support later | |
11378 | access checking. */ | |
11379 | case SCOPE_REF: | |
11380 | - gcc_assert (!type_dependent_expression_p (CONST_CAST_TREE(ref))); | |
11381 | - return lvalue_kind (TREE_OPERAND (ref, 1)); | |
11382 | + { | |
11383 | + tree op = TREE_OPERAND (ref, 1); | |
11384 | + /* The member must be an lvalue; assume it isn't a bit-field. */ | |
11385 | + if (TREE_CODE (op) == IDENTIFIER_NODE) | |
11386 | + return clk_ordinary; | |
11387 | + gcc_assert (!type_dependent_expression_p (CONST_CAST_TREE (ref))); | |
11388 | + return lvalue_kind (op); | |
11389 | + } | |
11390 | ||
11391 | case MAX_EXPR: | |
11392 | case MIN_EXPR: | |
11393 | @@ -1228,12 +1234,11 @@ | |
11394 | TREE_CHAIN (*igo_prev) = new_binfo; | |
11395 | *igo_prev = new_binfo; | |
11396 | ||
11397 | - if (binfo) | |
11398 | + if (binfo && !BINFO_DEPENDENT_BASE_P (binfo)) | |
11399 | { | |
11400 | int ix; | |
11401 | tree base_binfo; | |
11402 | ||
11403 | - gcc_assert (!BINFO_DEPENDENT_BASE_P (binfo)); | |
11404 | gcc_assert (SAME_BINFO_TYPE_P (BINFO_TYPE (binfo), type)); | |
11405 | ||
11406 | BINFO_OFFSET (new_binfo) = BINFO_OFFSET (binfo); | |
11407 | @@ -1246,8 +1251,6 @@ | |
11408 | for (ix = 0; BINFO_BASE_ITERATE (binfo, ix, base_binfo); ix++) | |
11409 | { | |
11410 | tree new_base_binfo; | |
11411 | - | |
11412 | - gcc_assert (!BINFO_DEPENDENT_BASE_P (base_binfo)); | |
11413 | new_base_binfo = copy_binfo (base_binfo, BINFO_TYPE (base_binfo), | |
11414 | t, igo_prev, | |
11415 | BINFO_VIRTUAL_P (base_binfo)); | |
11416 | Index: gcc/cp/ChangeLog | |
11417 | =================================================================== | |
11418 | --- gcc/cp/ChangeLog (.../tags/gcc_4_7_0_release) (wersja 187293) | |
11419 | +++ gcc/cp/ChangeLog (.../branches/gcc-4_7-branch) (wersja 187293) | |
11420 | @@ -1,3 +1,133 @@ | |
11421 | +2012-05-03 Paolo Carlini <paolo.carlini@oracle.com> | |
11422 | + | |
11423 | + PR c++/53186 | |
11424 | + * call.c (build_over_call): Handle final member functions | |
11425 | + and class types. | |
11426 | + (build_new_method_call_1): Do not handle here. | |
11427 | + | |
11428 | +2012-04-17 Paolo Carlini <paolo.carlini@oracle.com> | |
11429 | + | |
11430 | + PR c++/53003 | |
11431 | + * parser.c (cp_parser_member_declaration): Check that | |
11432 | + initializer_token_start is non null before dereferencing it. | |
11433 | + | |
11434 | +2012-04-16 Jason Merrill <jason@redhat.com> | |
11435 | + | |
11436 | + PR c++/38543 | |
11437 | + * pt.c (determine_specialization): Instead of comparing the number | |
11438 | + of parms, check that tsubst gives the right answer. | |
11439 | + | |
11440 | + PR c++/50830 | |
11441 | + * pt.c (convert_template_argument): Handle template template | |
11442 | + argument packs. | |
11443 | + | |
11444 | + PR c++/50303 | |
11445 | + * pt.c (tsubst_pack_expansion): Use tsubst_expr for template | |
11446 | + template parameters. | |
11447 | + | |
11448 | +2012-04-15 Jason Merrill <jason@redhat.com> | |
11449 | + | |
11450 | + PR c++/52292 | |
11451 | + PR c++/52380 | |
11452 | + * pt.c (coerce_template_parms): Even if we aren't converting we | |
11453 | + want to expand argument packs. | |
11454 | + | |
11455 | +2012-04-15 Fabien Chêne <fabien@gcc.gnu.org> | |
11456 | + | |
11457 | + PR c++/52465 | |
11458 | + * parser.c (cp_parser_class_name): Call strip_using_decl and | |
11459 | + return the target decl. | |
11460 | + * name-lookup.c (strip_using_decl): Returns NULL_TREE if the decl | |
11461 | + to be stripped is NULL_TREE. | |
11462 | + (qualify_lookup): Call strip_using_decl and perform some checks on | |
11463 | + the target decl. | |
11464 | + | |
11465 | +2012-04-13 Jason Merrill <jason@redhat.com> | |
11466 | + | |
11467 | + PR c++/52824 | |
11468 | + * pt.c (any_pack_expanson_args_p): New. | |
11469 | + (coerce_template_parms): Use it. | |
11470 | + | |
11471 | +2012-04-11 Jason Merrill <jason@redhat.com> | |
11472 | + | |
11473 | + PR c++/52906 | |
11474 | + * decl.c (check_tag_decl): Don't complain about attributes if we | |
11475 | + don't even have a type. | |
11476 | + | |
11477 | +2012-04-05 Jason Merrill <jason@redhat.com> | |
11478 | + | |
11479 | + PR c++/52596 | |
11480 | + * tree.c (lvalue_kind): Treat a deferred access control SCOPE_REF | |
11481 | + as an lvalue. | |
11482 | + | |
11483 | +2012-04-03 Jason Merrill <jason@redhat.com> | |
11484 | + | |
11485 | + PR c++/52796 | |
11486 | + * pt.c (tsubst_initializer_list): A pack expansion with no elements | |
11487 | + means value-initialization. | |
11488 | + | |
11489 | +2012-03-29 Meador Inge <meadori@codesourcery.com> | |
11490 | + | |
11491 | + PR c++/52672 | |
11492 | + * semantics.c (cxx_fold_indirect_ref): Don't attempt to fold | |
11493 | + stripped child trees that are not pointer types. | |
11494 | + | |
11495 | +2012-03-29 Paolo Carlini <paolo.carlini@oracle.com> | |
11496 | + | |
11497 | + PR c++/52718 | |
11498 | + * decl.c (check_default_argument): With -Wzero-as-null-pointer-constant | |
11499 | + warn for a zero as null pointer constant default argument. | |
11500 | + | |
11501 | +2012-03-29 Jason Merrill <jason@redhat.com> | |
11502 | + | |
11503 | + PR c++/52685 | |
11504 | + * tree.c (copy_binfo): Handle BINFO_DEPENDENT_BASE_P. | |
11505 | + | |
11506 | +2012-03-29 Jakub Jelinek <jakub@redhat.com> | |
11507 | + | |
11508 | + PR c++/52759 | |
11509 | + * decl.c (start_decl): Don't call maybe_apply_pragma_weak | |
11510 | + if processing_template_decl. | |
11511 | + | |
11512 | +2012-03-29 Jason Merrill <jason@redhat.com> | |
11513 | + | |
11514 | + PR c++/52743 | |
11515 | + * call.c (compare_ics): Handle ck_aggr like ck_list. | |
11516 | + | |
11517 | +2012-03-28 Jason Merrill <jason@redhat.com> | |
11518 | + | |
11519 | + PR c++/52746 | |
11520 | + * typeck.c (lookup_destructor): Clear BASELINK_QUALIFIED_P if | |
11521 | + we didn't get an explicit scope. | |
11522 | + * pt.c (tsubst_baselink): Likewise. | |
11523 | + | |
11524 | +2012-03-22 Paolo Carlini <paolo.carlini@oracle.com> | |
11525 | + | |
11526 | + PR c++/52487 | |
11527 | + * class.c (check_field_decls): Call literal_type_p only | |
11528 | + on complete types. | |
11529 | + | |
11530 | +2012-03-22 Jakub Jelinek <jakub@redhat.com> | |
11531 | + | |
11532 | + PR c++/52671 | |
11533 | + * decl.c (check_tag_decl): Only use CLASSTYPE_TEMPLATE_INSTANTIATION | |
11534 | + on CLASS_TYPE_P types. | |
11535 | + | |
11536 | +2012-03-22 Jason Merrill <jason@redhat.com> | |
11537 | + | |
11538 | + PR c++/52582 | |
11539 | + * method.c (implicitly_declare_fn): Set DECL_EXTERNAL. | |
11540 | + | |
11541 | +2012-03-22 Jakub Jelinek <jakub@redhat.com> | |
11542 | + | |
11543 | + Backported from mainline | |
11544 | + 2012-03-14 Jakub Jelinek <jakub@redhat.com> | |
11545 | + | |
11546 | + PR c++/52521 | |
11547 | + * parser.c (lookup_literal_operator): Return fn only if | |
11548 | + processed all arguments from args vector and argtypes is | |
11549 | + void_list_node. | |
11550 | + | |
11551 | 2012-03-22 Release Manager | |
11552 | ||
11553 | * GCC 4.7.0 released. | |
11554 | Index: gcc/cp/pt.c | |
11555 | =================================================================== | |
11556 | --- gcc/cp/pt.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
11557 | +++ gcc/cp/pt.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
11558 | @@ -1860,6 +1860,7 @@ | |
11559 | { | |
11560 | tree decl_arg_types; | |
11561 | tree fn_arg_types; | |
11562 | + tree insttype; | |
11563 | ||
11564 | /* In case of explicit specialization, we need to check if | |
11565 | the number of template headers appearing in the specialization | |
11566 | @@ -1927,7 +1928,8 @@ | |
11567 | template <> void f<int>(); | |
11568 | The specialization f<int> is invalid but is not caught | |
11569 | by get_bindings below. */ | |
11570 | - if (list_length (fn_arg_types) != list_length (decl_arg_types)) | |
11571 | + if (cxx_dialect < cxx11 | |
11572 | + && list_length (fn_arg_types) != list_length (decl_arg_types)) | |
11573 | continue; | |
11574 | ||
11575 | /* Function templates cannot be specializations; there are | |
11576 | @@ -1950,6 +1952,18 @@ | |
11577 | specialize TMPL will produce DECL. */ | |
11578 | continue; | |
11579 | ||
11580 | + if (cxx_dialect >= cxx11) | |
11581 | + { | |
11582 | + /* Make sure that the deduced arguments actually work. */ | |
11583 | + insttype = tsubst (TREE_TYPE (fn), targs, tf_none, NULL_TREE); | |
11584 | + if (insttype == error_mark_node) | |
11585 | + continue; | |
11586 | + fn_arg_types | |
11587 | + = skip_artificial_parms_for (fn, TYPE_ARG_TYPES (insttype)); | |
11588 | + if (!compparms (fn_arg_types, decl_arg_types)) | |
11589 | + continue; | |
11590 | + } | |
11591 | + | |
11592 | /* Save this template, and the arguments deduced. */ | |
11593 | templates = tree_cons (targs, fn, templates); | |
11594 | } | |
11595 | @@ -6437,6 +6451,7 @@ | |
11596 | is_tmpl_type = | |
11597 | ((TREE_CODE (arg) == TEMPLATE_DECL | |
11598 | && TREE_CODE (DECL_TEMPLATE_RESULT (arg)) == TYPE_DECL) | |
11599 | + || (requires_tmpl_type && TREE_CODE (arg) == TYPE_ARGUMENT_PACK) | |
11600 | || TREE_CODE (arg) == TEMPLATE_TEMPLATE_PARM | |
11601 | || TREE_CODE (arg) == UNBOUND_CLASS_TEMPLATE); | |
11602 | ||
11603 | @@ -6508,7 +6523,9 @@ | |
11604 | { | |
11605 | if (requires_tmpl_type) | |
11606 | { | |
11607 | - if (TREE_CODE (TREE_TYPE (arg)) == UNBOUND_CLASS_TEMPLATE) | |
11608 | + if (template_parameter_pack_p (parm) && ARGUMENT_PACK_P (orig_arg)) | |
11609 | + val = orig_arg; | |
11610 | + else if (TREE_CODE (TREE_TYPE (arg)) == UNBOUND_CLASS_TEMPLATE) | |
11611 | /* The number of argument required is not known yet. | |
11612 | Just accept it for now. */ | |
11613 | val = TREE_TYPE (arg); | |
11614 | @@ -6734,6 +6751,20 @@ | |
11615 | return argument_pack; | |
11616 | } | |
11617 | ||
11618 | +/* Returns true if the template argument vector ARGS contains | |
11619 | + any pack expansions, false otherwise. */ | |
11620 | + | |
11621 | +static bool | |
11622 | +any_pack_expanson_args_p (tree args) | |
11623 | +{ | |
11624 | + int i; | |
11625 | + if (args) | |
11626 | + for (i = 0; i < TREE_VEC_LENGTH (args); ++i) | |
11627 | + if (PACK_EXPANSION_P (TREE_VEC_ELT (args, i))) | |
11628 | + return true; | |
11629 | + return false; | |
11630 | +} | |
11631 | + | |
11632 | /* Convert all template arguments to their appropriate types, and | |
11633 | return a vector containing the innermost resulting template | |
11634 | arguments. If any error occurs, return error_mark_node. Error and | |
11635 | @@ -6799,6 +6830,7 @@ | |
11636 | if ((nargs > nparms && !variadic_p) | |
11637 | || (nargs < nparms - variadic_p | |
11638 | && require_all_args | |
11639 | + && !any_pack_expanson_args_p (inner_args) | |
11640 | && (!use_default_args | |
11641 | || (TREE_VEC_ELT (parms, nargs) != error_mark_node | |
11642 | && !TREE_PURPOSE (TREE_VEC_ELT (parms, nargs)))))) | |
11643 | @@ -6876,7 +6908,7 @@ | |
11644 | { | |
11645 | /* We don't know how many args we have yet, just | |
11646 | use the unconverted ones for now. */ | |
11647 | - new_inner_args = args; | |
11648 | + new_inner_args = inner_args; | |
11649 | break; | |
11650 | } | |
11651 | } | |
11652 | @@ -9548,7 +9580,7 @@ | |
11653 | } | |
11654 | ||
11655 | /* Substitute into the PATTERN with the altered arguments. */ | |
11656 | - if (TREE_CODE (t) == EXPR_PACK_EXPANSION) | |
11657 | + if (!TYPE_P (pattern)) | |
11658 | TREE_VEC_ELT (result, i) = | |
11659 | tsubst_expr (pattern, args, complain, in_decl, | |
11660 | /*integral_constant_expression_p=*/false); | |
11661 | @@ -11858,6 +11890,7 @@ | |
11662 | tree optype; | |
11663 | tree template_args = 0; | |
11664 | bool template_id_p = false; | |
11665 | + bool qualified = BASELINK_QUALIFIED_P (baselink); | |
11666 | ||
11667 | /* A baselink indicates a function from a base class. Both the | |
11668 | BASELINK_ACCESS_BINFO and the base class referenced may | |
11669 | @@ -11906,9 +11939,12 @@ | |
11670 | ||
11671 | if (!object_type) | |
11672 | object_type = current_class_type; | |
11673 | - return adjust_result_of_qualified_name_lookup (baselink, | |
11674 | - qualifying_scope, | |
11675 | - object_type); | |
11676 | + | |
11677 | + if (qualified) | |
11678 | + baselink = adjust_result_of_qualified_name_lookup (baselink, | |
11679 | + qualifying_scope, | |
11680 | + object_type); | |
11681 | + return baselink; | |
11682 | } | |
11683 | ||
11684 | /* Like tsubst_expr for a SCOPE_REF, given by QUALIFIED_ID. DONE is | |
11685 | @@ -18979,6 +19015,7 @@ | |
11686 | } | |
11687 | else | |
11688 | { | |
11689 | + tree tmp; | |
11690 | decl = tsubst_copy (TREE_PURPOSE (t), argvec, | |
11691 | tf_warning_or_error, NULL_TREE); | |
11692 | ||
11693 | @@ -18987,10 +19024,17 @@ | |
11694 | in_base_initializer = 1; | |
11695 | ||
11696 | init = TREE_VALUE (t); | |
11697 | + tmp = init; | |
11698 | if (init != void_type_node) | |
11699 | init = tsubst_expr (init, argvec, | |
11700 | tf_warning_or_error, NULL_TREE, | |
11701 | /*integral_constant_expression_p=*/false); | |
11702 | + if (init == NULL_TREE && tmp != NULL_TREE) | |
11703 | + /* If we had an initializer but it instantiated to nothing, | |
11704 | + value-initialize the object. This will only occur when | |
11705 | + the initializer was a pack expansion where the parameter | |
11706 | + packs used in that expansion were of length zero. */ | |
11707 | + init = void_type_node; | |
11708 | in_base_initializer = 0; | |
11709 | } | |
11710 | ||
11711 | Index: gcc/cp/semantics.c | |
11712 | =================================================================== | |
11713 | --- gcc/cp/semantics.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
11714 | +++ gcc/cp/semantics.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
11715 | @@ -7202,7 +7202,8 @@ | |
11716 | sub = op0; | |
11717 | STRIP_NOPS (sub); | |
11718 | subtype = TREE_TYPE (sub); | |
11719 | - gcc_assert (POINTER_TYPE_P (subtype)); | |
11720 | + if (!POINTER_TYPE_P (subtype)) | |
11721 | + return NULL_TREE; | |
11722 | ||
11723 | if (TREE_CODE (sub) == ADDR_EXPR) | |
11724 | { | |
11725 | Index: gcc/cp/parser.c | |
11726 | =================================================================== | |
11727 | --- gcc/cp/parser.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
11728 | +++ gcc/cp/parser.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
11729 | @@ -1,6 +1,6 @@ | |
11730 | /* C++ Parser. | |
11731 | Copyright (C) 2000, 2001, 2002, 2003, 2004, | |
11732 | - 2005, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. | |
11733 | + 2005, 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. | |
11734 | Written by Mark Mitchell <mark@codesourcery.com>. | |
11735 | ||
11736 | This file is part of GCC. | |
11737 | @@ -3581,7 +3581,13 @@ | |
11738 | TREE_TYPE (tparm)))) | |
11739 | found = false; | |
11740 | } | |
11741 | - if (found) | |
11742 | + if (found | |
11743 | + && ix == VEC_length (tree, args) | |
11744 | + /* May be this should be sufficient_parms_p instead, | |
11745 | + depending on how exactly should user-defined literals | |
11746 | + work in presence of default arguments on the literal | |
11747 | + operator parameters. */ | |
11748 | + && argtypes == void_list_node) | |
11749 | return fn; | |
11750 | } | |
11751 | } | |
11752 | @@ -17835,6 +17841,8 @@ | |
11753 | decl = TYPE_NAME (decl); | |
11754 | } | |
11755 | ||
11756 | + decl = strip_using_decl (decl); | |
11757 | + | |
11758 | /* Check to see that it is really the name of a class. */ | |
11759 | if (TREE_CODE (decl) == TEMPLATE_ID_EXPR | |
11760 | && TREE_CODE (TREE_OPERAND (decl, 0)) == IDENTIFIER_NODE | |
11761 | @@ -19097,7 +19105,7 @@ | |
11762 | possible that this fact is an oversight in the | |
11763 | standard, since a pure function may be defined | |
11764 | outside of the class-specifier. */ | |
11765 | - if (initializer) | |
11766 | + if (initializer && initializer_token_start) | |
11767 | error_at (initializer_token_start->location, | |
11768 | "pure-specifier on function-definition"); | |
11769 | decl = cp_parser_save_member_function_body (parser, | |
11770 | Index: gcc/cp/call.c | |
11771 | =================================================================== | |
11772 | --- gcc/cp/call.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
11773 | +++ gcc/cp/call.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
11774 | @@ -6464,6 +6464,12 @@ | |
11775 | return error_mark_node; | |
11776 | } | |
11777 | ||
11778 | + /* See if the function member or the whole class type is declared | |
11779 | + final and the call can be devirtualized. */ | |
11780 | + if (DECL_FINAL_P (fn) | |
11781 | + || CLASSTYPE_FINAL (TYPE_METHOD_BASETYPE (TREE_TYPE (fn)))) | |
11782 | + flags |= LOOKUP_NONVIRTUAL; | |
11783 | + | |
11784 | /* [class.mfct.nonstatic]: If a nonstatic member function of a class | |
11785 | X is called for an object that is not of type X, or of a type | |
11786 | derived from X, the behavior is undefined. | |
11787 | @@ -7324,8 +7330,7 @@ | |
11788 | /* Optimize away vtable lookup if we know that this function | |
11789 | can't be overridden. */ | |
11790 | if (DECL_VINDEX (fn) && ! (flags & LOOKUP_NONVIRTUAL) | |
11791 | - && (resolves_to_fixed_type_p (instance, 0) | |
11792 | - || DECL_FINAL_P (fn) || CLASSTYPE_FINAL (basetype))) | |
11793 | + && resolves_to_fixed_type_p (instance, 0)) | |
11794 | flags |= LOOKUP_NONVIRTUAL; | |
11795 | if (explicit_targs) | |
11796 | flags |= LOOKUP_EXPLICIT_TMPL_ARGS; | |
11797 | @@ -7615,7 +7620,7 @@ | |
11798 | Specifically, we need to do the reference binding comparison at the | |
11799 | end of this function. */ | |
11800 | ||
11801 | - if (ics1->user_conv_p || ics1->kind == ck_list) | |
11802 | + if (ics1->user_conv_p || ics1->kind == ck_list || ics1->kind == ck_aggr) | |
11803 | { | |
11804 | conversion *t1; | |
11805 | conversion *t2; | |
11806 | Index: gcc/cp/name-lookup.c | |
11807 | =================================================================== | |
11808 | --- gcc/cp/name-lookup.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
11809 | +++ gcc/cp/name-lookup.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
11810 | @@ -1,5 +1,5 @@ | |
11811 | /* Definitions for C++ name lookup routines. | |
11812 | - Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 | |
11813 | + Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 | |
11814 | Free Software Foundation, Inc. | |
11815 | Contributed by Gabriel Dos Reis <gdr@integrable-solutions.net> | |
11816 | ||
11817 | @@ -400,6 +400,9 @@ | |
11818 | tree | |
11819 | strip_using_decl (tree decl) | |
11820 | { | |
11821 | + if (decl == NULL_TREE) | |
11822 | + return NULL_TREE; | |
11823 | + | |
11824 | while (TREE_CODE (decl) == USING_DECL && !DECL_DEPENDENT_P (decl)) | |
11825 | decl = USING_DECL_DECLS (decl); | |
11826 | return decl; | |
11827 | @@ -4115,9 +4118,13 @@ | |
11828 | return false; | |
11829 | if ((flags & LOOKUP_PREFER_NAMESPACES) && TREE_CODE (val) == NAMESPACE_DECL) | |
11830 | return true; | |
11831 | - if ((flags & LOOKUP_PREFER_TYPES) | |
11832 | - && (TREE_CODE (val) == TYPE_DECL || TREE_CODE (val) == TEMPLATE_DECL)) | |
11833 | - return true; | |
11834 | + if (flags & LOOKUP_PREFER_TYPES) | |
11835 | + { | |
11836 | + tree target_val = strip_using_decl (val); | |
11837 | + if (TREE_CODE (target_val) == TYPE_DECL | |
11838 | + || TREE_CODE (target_val) == TEMPLATE_DECL) | |
11839 | + return true; | |
11840 | + } | |
11841 | if (flags & (LOOKUP_PREFER_NAMESPACES | LOOKUP_PREFER_TYPES)) | |
11842 | return false; | |
11843 | /* Look through lambda things that we shouldn't be able to see. */ | |
11844 | Index: gcc/tree-ssa-ccp.c | |
11845 | =================================================================== | |
11846 | --- gcc/tree-ssa-ccp.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
11847 | +++ gcc/tree-ssa-ccp.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
11848 | @@ -1764,23 +1764,25 @@ | |
11849 | } | |
11850 | ||
11851 | /* Find a BUILT_IN_STACK_SAVE dominating gsi_stmt (I), and insert | |
11852 | - a clobber of VAR before each matching BUILT_IN_STACK_RESTORE. */ | |
11853 | + a clobber of VAR before each matching BUILT_IN_STACK_RESTORE. | |
11854 | ||
11855 | + It is possible that BUILT_IN_STACK_SAVE cannot be find in a dominator when a | |
11856 | + previous pass (such as DOM) duplicated it along multiple paths to a BB. In | |
11857 | + that case the function gives up without inserting the clobbers. */ | |
11858 | + | |
11859 | static void | |
11860 | insert_clobbers_for_var (gimple_stmt_iterator i, tree var) | |
11861 | { | |
11862 | - bool save_found; | |
11863 | gimple stmt; | |
11864 | tree saved_val; | |
11865 | htab_t visited = NULL; | |
11866 | ||
11867 | - for (save_found = false; !gsi_end_p (i); gsi_prev_dom_bb_nondebug (&i)) | |
11868 | + for (; !gsi_end_p (i); gsi_prev_dom_bb_nondebug (&i)) | |
11869 | { | |
11870 | stmt = gsi_stmt (i); | |
11871 | ||
11872 | if (!gimple_call_builtin_p (stmt, BUILT_IN_STACK_SAVE)) | |
11873 | continue; | |
11874 | - save_found = true; | |
11875 | ||
11876 | saved_val = gimple_call_lhs (stmt); | |
11877 | if (saved_val == NULL_TREE) | |
11878 | @@ -1792,7 +1794,6 @@ | |
11879 | ||
11880 | if (visited != NULL) | |
11881 | htab_delete (visited); | |
11882 | - gcc_assert (save_found); | |
11883 | } | |
11884 | ||
11885 | /* Detects a __builtin_alloca_with_align with constant size argument. Declares | |
11886 | @@ -2288,7 +2289,7 @@ | |
11887 | case BUILT_IN_VA_START: | |
11888 | if (!va_list_simple_ptr | |
11889 | || targetm.expand_builtin_va_start != NULL | |
11890 | - || builtin_decl_explicit_p (BUILT_IN_NEXT_ARG)) | |
11891 | + || !builtin_decl_explicit_p (BUILT_IN_NEXT_ARG)) | |
11892 | return NULL_TREE; | |
11893 | ||
11894 | if (gimple_call_num_args (call) != 2) | |
11895 | Index: gcc/tree-ssa-alias.c | |
11896 | =================================================================== | |
11897 | --- gcc/tree-ssa-alias.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
11898 | +++ gcc/tree-ssa-alias.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
11899 | @@ -236,17 +236,6 @@ | |
11900 | STRIP_NOPS (ptr1); | |
11901 | STRIP_NOPS (ptr2); | |
11902 | ||
11903 | - /* Anything we do not explicilty handle aliases. */ | |
11904 | - if ((TREE_CODE (ptr1) != SSA_NAME | |
11905 | - && TREE_CODE (ptr1) != ADDR_EXPR | |
11906 | - && TREE_CODE (ptr1) != POINTER_PLUS_EXPR) | |
11907 | - || (TREE_CODE (ptr2) != SSA_NAME | |
11908 | - && TREE_CODE (ptr2) != ADDR_EXPR | |
11909 | - && TREE_CODE (ptr2) != POINTER_PLUS_EXPR) | |
11910 | - || !POINTER_TYPE_P (TREE_TYPE (ptr1)) | |
11911 | - || !POINTER_TYPE_P (TREE_TYPE (ptr2))) | |
11912 | - return true; | |
11913 | - | |
11914 | /* Disregard pointer offsetting. */ | |
11915 | if (TREE_CODE (ptr1) == POINTER_PLUS_EXPR) | |
11916 | { | |
11917 | @@ -275,7 +264,7 @@ | |
11918 | if (base | |
11919 | && (TREE_CODE (base) == MEM_REF | |
11920 | || TREE_CODE (base) == TARGET_MEM_REF)) | |
11921 | - ptr1 = TREE_OPERAND (base, 0); | |
11922 | + return ptr_derefs_may_alias_p (TREE_OPERAND (base, 0), ptr2); | |
11923 | else if (base | |
11924 | && DECL_P (base)) | |
11925 | return ptr_deref_may_alias_decl_p (ptr2, base); | |
11926 | @@ -288,7 +277,7 @@ | |
11927 | if (base | |
11928 | && (TREE_CODE (base) == MEM_REF | |
11929 | || TREE_CODE (base) == TARGET_MEM_REF)) | |
11930 | - ptr2 = TREE_OPERAND (base, 0); | |
11931 | + return ptr_derefs_may_alias_p (ptr1, TREE_OPERAND (base, 0)); | |
11932 | else if (base | |
11933 | && DECL_P (base)) | |
11934 | return ptr_deref_may_alias_decl_p (ptr1, base); | |
11935 | @@ -296,6 +285,13 @@ | |
11936 | return true; | |
11937 | } | |
11938 | ||
11939 | + /* From here we require SSA name pointers. Anything else aliases. */ | |
11940 | + if (TREE_CODE (ptr1) != SSA_NAME | |
11941 | + || TREE_CODE (ptr2) != SSA_NAME | |
11942 | + || !POINTER_TYPE_P (TREE_TYPE (ptr1)) | |
11943 | + || !POINTER_TYPE_P (TREE_TYPE (ptr2))) | |
11944 | + return true; | |
11945 | + | |
11946 | /* We may end up with two empty points-to solutions for two same pointers. | |
11947 | In this case we still want to say both pointers alias, so shortcut | |
11948 | that here. */ | |
11949 | Index: gcc/ipa-inline.c | |
11950 | =================================================================== | |
11951 | --- gcc/ipa-inline.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
11952 | +++ gcc/ipa-inline.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
11953 | @@ -220,8 +220,8 @@ | |
11954 | if (dump_file) | |
11955 | { | |
11956 | fprintf (dump_file, " not inlinable: %s/%i -> %s/%i, %s\n", | |
11957 | - cgraph_node_name (e->caller), e->caller->uid, | |
11958 | - cgraph_node_name (e->callee), e->callee->uid, | |
11959 | + xstrdup (cgraph_node_name (e->caller)), e->caller->uid, | |
11960 | + xstrdup (cgraph_node_name (e->callee)), e->callee->uid, | |
11961 | cgraph_inline_failed_string (e->inline_failed)); | |
11962 | } | |
11963 | } | |
11964 | @@ -423,8 +423,8 @@ | |
11965 | if (dump_file) | |
11966 | fprintf (dump_file, " will not early inline: %s/%i->%s/%i, " | |
11967 | "call is cold and code would grow by %i\n", | |
11968 | - cgraph_node_name (e->caller), e->caller->uid, | |
11969 | - cgraph_node_name (callee), callee->uid, | |
11970 | + xstrdup (cgraph_node_name (e->caller)), e->caller->uid, | |
11971 | + xstrdup (cgraph_node_name (callee)), callee->uid, | |
11972 | growth); | |
11973 | want_inline = false; | |
11974 | } | |
11975 | @@ -434,8 +434,8 @@ | |
11976 | if (dump_file) | |
11977 | fprintf (dump_file, " will not early inline: %s/%i->%s/%i, " | |
11978 | "callee is not leaf and code would grow by %i\n", | |
11979 | - cgraph_node_name (e->caller), e->caller->uid, | |
11980 | - cgraph_node_name (callee), callee->uid, | |
11981 | + xstrdup (cgraph_node_name (e->caller)), e->caller->uid, | |
11982 | + xstrdup (cgraph_node_name (callee)), callee->uid, | |
11983 | growth); | |
11984 | want_inline = false; | |
11985 | } | |
11986 | @@ -444,8 +444,8 @@ | |
11987 | if (dump_file) | |
11988 | fprintf (dump_file, " will not early inline: %s/%i->%s/%i, " | |
11989 | "growth %i exceeds --param early-inlining-insns\n", | |
11990 | - cgraph_node_name (e->caller), e->caller->uid, | |
11991 | - cgraph_node_name (callee), callee->uid, | |
11992 | + xstrdup (cgraph_node_name (e->caller)), e->caller->uid, | |
11993 | + xstrdup (cgraph_node_name (callee)), callee->uid, | |
11994 | growth); | |
11995 | want_inline = false; | |
11996 | } | |
11997 | @@ -754,8 +754,8 @@ | |
11998 | if (dump) | |
11999 | { | |
12000 | fprintf (dump_file, " Badness calculation for %s -> %s\n", | |
12001 | - cgraph_node_name (edge->caller), | |
12002 | - cgraph_node_name (callee)); | |
12003 | + xstrdup (cgraph_node_name (edge->caller)), | |
12004 | + xstrdup (cgraph_node_name (callee))); | |
12005 | fprintf (dump_file, " size growth %i, time growth %i\n", | |
12006 | growth, | |
12007 | time_growth); | |
12008 | @@ -910,8 +910,10 @@ | |
12009 | { | |
12010 | fprintf (dump_file, | |
12011 | " decreasing badness %s/%i -> %s/%i, %i to %i\n", | |
12012 | - cgraph_node_name (edge->caller), edge->caller->uid, | |
12013 | - cgraph_node_name (edge->callee), edge->callee->uid, | |
12014 | + xstrdup (cgraph_node_name (edge->caller)), | |
12015 | + edge->caller->uid, | |
12016 | + xstrdup (cgraph_node_name (edge->callee)), | |
12017 | + edge->callee->uid, | |
12018 | (int)n->key, | |
12019 | badness); | |
12020 | } | |
12021 | @@ -925,8 +927,10 @@ | |
12022 | { | |
12023 | fprintf (dump_file, | |
12024 | " enqueuing call %s/%i -> %s/%i, badness %i\n", | |
12025 | - cgraph_node_name (edge->caller), edge->caller->uid, | |
12026 | - cgraph_node_name (edge->callee), edge->callee->uid, | |
12027 | + xstrdup (cgraph_node_name (edge->caller)), | |
12028 | + edge->caller->uid, | |
12029 | + xstrdup (cgraph_node_name (edge->callee)), | |
12030 | + edge->callee->uid, | |
12031 | badness); | |
12032 | } | |
12033 | edge->aux = fibheap_insert (heap, badness, edge); | |
12034 | @@ -1608,8 +1612,8 @@ | |
12035 | if (dump_file) | |
12036 | fprintf (dump_file, | |
12037 | "Not inlining %s into %s to avoid cycle.\n", | |
12038 | - cgraph_node_name (callee), | |
12039 | - cgraph_node_name (e->caller)); | |
12040 | + xstrdup (cgraph_node_name (callee)), | |
12041 | + xstrdup (cgraph_node_name (e->caller))); | |
12042 | e->inline_failed = CIF_RECURSIVE_INLINING; | |
12043 | continue; | |
12044 | } | |
12045 | @@ -1649,8 +1653,8 @@ | |
12046 | recursing through the original node if the node was cloned. */ | |
12047 | if (dump_file) | |
12048 | fprintf (dump_file, " Inlining %s into %s.\n", | |
12049 | - cgraph_node_name (callee), | |
12050 | - cgraph_node_name (e->caller)); | |
12051 | + xstrdup (cgraph_node_name (callee)), | |
12052 | + xstrdup (cgraph_node_name (e->caller))); | |
12053 | orig_callee = callee; | |
12054 | inline_call (e, true, NULL, NULL); | |
12055 | if (e->callee != orig_callee) | |
12056 | @@ -1752,7 +1756,8 @@ | |
12057 | { | |
12058 | fprintf (dump_file, | |
12059 | "\nInlining %s size %i.\n", | |
12060 | - cgraph_node_name (node), inline_summary (node)->size); | |
12061 | + cgraph_node_name (node), | |
12062 | + inline_summary (node)->size); | |
12063 | fprintf (dump_file, | |
12064 | " Called once from %s %i insns.\n", | |
12065 | cgraph_node_name (node->callers->caller), | |
12066 | @@ -1815,8 +1820,8 @@ | |
12067 | ||
12068 | if (dump_file) | |
12069 | fprintf (dump_file, " Inlining %s into %s (always_inline).\n", | |
12070 | - cgraph_node_name (e->callee), | |
12071 | - cgraph_node_name (e->caller)); | |
12072 | + xstrdup (cgraph_node_name (e->callee)), | |
12073 | + xstrdup (cgraph_node_name (e->caller))); | |
12074 | inline_call (e, true, NULL, NULL); | |
12075 | inlined = true; | |
12076 | } | |
12077 | @@ -1865,8 +1870,8 @@ | |
12078 | ||
12079 | if (dump_file) | |
12080 | fprintf (dump_file, " Inlining %s into %s.\n", | |
12081 | - cgraph_node_name (callee), | |
12082 | - cgraph_node_name (e->caller)); | |
12083 | + xstrdup (cgraph_node_name (callee)), | |
12084 | + xstrdup (cgraph_node_name (e->caller))); | |
12085 | inline_call (e, true, NULL, NULL); | |
12086 | inlined = true; | |
12087 | } | |
12088 | Index: gcc/dwarf2out.c | |
12089 | =================================================================== | |
12090 | --- gcc/dwarf2out.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
12091 | +++ gcc/dwarf2out.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
12092 | @@ -19889,7 +19889,9 @@ | |
12093 | return; | |
12094 | ||
12095 | /* For local statics lookup proper context die. */ | |
12096 | - if (TREE_STATIC (decl) && decl_function_context (decl)) | |
12097 | + if (TREE_STATIC (decl) | |
12098 | + && DECL_CONTEXT (decl) | |
12099 | + && TREE_CODE (DECL_CONTEXT (decl)) == FUNCTION_DECL) | |
12100 | context_die = lookup_decl_die (DECL_CONTEXT (decl)); | |
12101 | ||
12102 | /* If we are in terse mode, don't generate any DIEs to represent any | |
12103 | Index: gcc/go/lang.opt | |
12104 | =================================================================== | |
12105 | --- gcc/go/lang.opt (.../tags/gcc_4_7_0_release) (wersja 187293) | |
12106 | +++ gcc/go/lang.opt (.../branches/gcc-4_7-branch) (wersja 187293) | |
12107 | @@ -37,6 +37,14 @@ | |
12108 | Go | |
12109 | ; Documented in c.opt | |
12110 | ||
12111 | +fgo-check-divide-zero | |
12112 | +Go Var(go_check_divide_zero) Init(1) | |
12113 | +Add explicit checks for division by zero | |
12114 | + | |
12115 | +fgo-check-divide-overflow | |
12116 | +Go Var(go_check_divide_overflow) Init(1) | |
12117 | +Add explicit checks for division overflow in INT_MIN / -1 | |
12118 | + | |
12119 | fgo-dump- | |
12120 | Go Joined RejectNegative | |
12121 | -fgo-dump-<type> Dump Go frontend internal information | |
12122 | Index: gcc/go/ChangeLog | |
12123 | =================================================================== | |
12124 | --- gcc/go/ChangeLog (.../tags/gcc_4_7_0_release) (wersja 187293) | |
12125 | +++ gcc/go/ChangeLog (.../branches/gcc-4_7-branch) (wersja 187293) | |
12126 | @@ -1,3 +1,13 @@ | |
12127 | +2012-04-23 Ian Lance Taylor <iant@google.com> | |
12128 | + | |
12129 | + * go-lang.c (go_langhook_init): Set MPFR precision to 256. | |
12130 | + | |
12131 | +2012-04-20 Ian Lance Taylor <iant@google.com> | |
12132 | + | |
12133 | + * lang.opt: Add -fgo-check-divide-zero and | |
12134 | + -fgo-check-divide-overflow. | |
12135 | + * gccgo.texi (Invoking gccgo): Document new options. | |
12136 | + | |
12137 | 2012-03-22 Release Manager | |
12138 | ||
12139 | * GCC 4.7.0 released. | |
12140 | Index: gcc/go/gccgo.texi | |
12141 | =================================================================== | |
12142 | --- gcc/go/gccgo.texi (.../tags/gcc_4_7_0_release) (wersja 187293) | |
12143 | +++ gcc/go/gccgo.texi (.../branches/gcc-4_7-branch) (wersja 187293) | |
12144 | @@ -174,6 +174,31 @@ | |
12145 | more return parameters but lack an explicit @code{return} statement. | |
12146 | This warning may be disabled using | |
12147 | @option{-fno-require-return-statement}. | |
12148 | + | |
12149 | +@item -fgo-check-divide-zero | |
12150 | +@cindex @option{-fgo-check-divide-zero} | |
12151 | +@cindex @option{-fno-go-check-divide-zero} | |
12152 | +Add explicit checks for division by zero. In Go a division (or | |
12153 | +modulos) by zero causes a panic. On Unix systems this is detected in | |
12154 | +the runtime by catching the @code{SIGFPE} signal. Some processors, | |
12155 | +such as PowerPC, do not generate a SIGFPE on division by zero. Some | |
12156 | +runtimes do not generate a signal that can be caught. On those | |
12157 | +systems, this option may be used. Or the checks may be removed via | |
12158 | +@option{-fno-go-check-divide-zero}. This option is currently on by | |
12159 | +default, but in the future may be off by default on systems that do | |
12160 | +not require it. | |
12161 | + | |
12162 | +@item -fgo-check-divide-overflow | |
12163 | +@cindex @option{-fgo-check-divide-overflow} | |
12164 | +@cindex @option{-fno-go-check-divide-overflow} | |
12165 | +Add explicit checks for division overflow. For example, division | |
12166 | +overflow occurs when computing @code{INT_MIN / -1}. In Go this should | |
12167 | +be wrapped, to produce @code{INT_MIN}. Some processors, such as x86, | |
12168 | +generate a trap on division overflow. On those systems, this option | |
12169 | +may be used. Or the checks may be removed via | |
12170 | +@option{-fno-go-check-divide-overflow}. This option is currently on | |
12171 | +by default, but in the future may be off by default on systems that do | |
12172 | +not require it. | |
12173 | @end table | |
12174 | ||
12175 | @c man end | |
12176 | Index: gcc/go/go-lang.c | |
12177 | =================================================================== | |
12178 | --- gcc/go/go-lang.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
12179 | +++ gcc/go/go-lang.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
12180 | @@ -103,7 +103,7 @@ | |
12181 | /* The default precision for floating point numbers. This is used | |
12182 | for floating point constants with abstract type. This may | |
12183 | eventually be controllable by a command line option. */ | |
12184 | - mpfr_set_default_prec (128); | |
12185 | + mpfr_set_default_prec (256); | |
12186 | ||
12187 | /* Go uses exceptions. */ | |
12188 | using_eh_for_cleanups (); | |
12189 | Index: gcc/go/gofrontend/gogo.cc | |
12190 | =================================================================== | |
12191 | --- gcc/go/gofrontend/gogo.cc (.../tags/gcc_4_7_0_release) (wersja 187293) | |
12192 | +++ gcc/go/gofrontend/gogo.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
12193 | @@ -32,6 +32,7 @@ | |
12194 | imported_unsafe_(false), | |
12195 | packages_(), | |
12196 | init_functions_(), | |
12197 | + var_deps_(), | |
12198 | need_init_fn_(false), | |
12199 | init_fn_name_(), | |
12200 | imported_init_fns_(), | |
12201 | @@ -1653,8 +1654,12 @@ | |
12202 | } | |
12203 | ||
12204 | case Type::TYPE_STRUCT: | |
12205 | + // Traverse the field types first in case there is an embedded | |
12206 | + // field with methods that the struct should inherit. | |
12207 | + if (t->struct_type()->traverse_field_types(this) == TRAVERSE_EXIT) | |
12208 | + return TRAVERSE_EXIT; | |
12209 | t->struct_type()->finalize_methods(this->gogo_); | |
12210 | - break; | |
12211 | + return TRAVERSE_SKIP_COMPONENTS; | |
12212 | ||
12213 | default: | |
12214 | break; | |
12215 | @@ -2212,13 +2217,19 @@ | |
12216 | Expression::traverse(&init, &find_eval_ordering); | |
12217 | } | |
12218 | ||
12219 | - if (find_eval_ordering.size() <= 1) | |
12220 | - { | |
12221 | - // If there is only one expression with a side-effect, we can | |
12222 | - // leave it in place. | |
12223 | - return TRAVERSE_CONTINUE; | |
12224 | - } | |
12225 | + size_t c = find_eval_ordering.size(); | |
12226 | + if (c == 0) | |
12227 | + return TRAVERSE_CONTINUE; | |
12228 | ||
12229 | + // If there is only one expression with a side-effect, we can | |
12230 | + // usually leave it in place. However, for an assignment statement, | |
12231 | + // we need to evaluate an expression on the right hand side before | |
12232 | + // we evaluate any index expression on the left hand side, so for | |
12233 | + // that case we always move the expression. Otherwise we mishandle | |
12234 | + // m[0] = len(m) where m is a map. | |
12235 | + if (c == 1 && s->classification() != Statement::STATEMENT_ASSIGNMENT) | |
12236 | + return TRAVERSE_CONTINUE; | |
12237 | + | |
12238 | bool is_thunk = s->thunk_statement() != NULL; | |
12239 | for (Find_eval_ordering::const_iterator p = find_eval_ordering.begin(); | |
12240 | p != find_eval_ordering.end(); | |
12241 | @@ -3810,6 +3821,10 @@ | |
12242 | Variable::lower_init_expression(Gogo* gogo, Named_object* function, | |
12243 | Statement_inserter* inserter) | |
12244 | { | |
12245 | + Named_object* dep = gogo->var_depends_on(this); | |
12246 | + if (dep != NULL && dep->is_variable()) | |
12247 | + dep->var_value()->lower_init_expression(gogo, function, inserter); | |
12248 | + | |
12249 | if (this->init_ != NULL && !this->init_is_lowered_) | |
12250 | { | |
12251 | if (this->seen_) | |
12252 | @@ -4931,11 +4946,6 @@ | |
12253 | break; | |
12254 | ||
12255 | case Named_object::NAMED_OBJECT_PACKAGE: | |
12256 | - if (new_object->is_package() | |
12257 | - && (old_object->package_value()->name() | |
12258 | - == new_object->package_value()->name())) | |
12259 | - return old_object; | |
12260 | - | |
12261 | break; | |
12262 | } | |
12263 | ||
12264 | Index: gcc/go/gofrontend/gogo.h | |
12265 | =================================================================== | |
12266 | --- gcc/go/gofrontend/gogo.h (.../tags/gcc_4_7_0_release) (wersja 187293) | |
12267 | +++ gcc/go/gofrontend/gogo.h (.../branches/gcc-4_7-branch) (wersja 187293) | |
12268 | @@ -384,6 +384,23 @@ | |
12269 | void | |
12270 | clear_file_scope(); | |
12271 | ||
12272 | + // Record that VAR1 must be initialized after VAR2. This is used | |
12273 | + // when VAR2 does not appear in VAR1's INIT or PREINIT. | |
12274 | + void | |
12275 | + record_var_depends_on(Variable* var1, Named_object* var2) | |
12276 | + { | |
12277 | + go_assert(this->var_deps_.find(var1) == this->var_deps_.end()); | |
12278 | + this->var_deps_[var1] = var2; | |
12279 | + } | |
12280 | + | |
12281 | + // Return the variable that VAR depends on, or NULL if none. | |
12282 | + Named_object* | |
12283 | + var_depends_on(Variable* var) const | |
12284 | + { | |
12285 | + Var_deps::const_iterator p = this->var_deps_.find(var); | |
12286 | + return p != this->var_deps_.end() ? p->second : NULL; | |
12287 | + } | |
12288 | + | |
12289 | // Queue up a type-specific function to be written out. This is | |
12290 | // used when a type-specific function is needed when not at the top | |
12291 | // level. | |
12292 | @@ -639,8 +656,9 @@ | |
12293 | // Type used to map package names to packages. | |
12294 | typedef std::map<std::string, Package*> Packages; | |
12295 | ||
12296 | - // Type used to map special names in the sys package. | |
12297 | - typedef std::map<std::string, std::string> Sys_names; | |
12298 | + // Type used to map variables to the function calls that set them. | |
12299 | + // This is used for initialization dependency analysis. | |
12300 | + typedef std::map<Variable*, Named_object*> Var_deps; | |
12301 | ||
12302 | // Type used to queue writing a type specific function. | |
12303 | struct Specific_type_function | |
12304 | @@ -683,6 +701,10 @@ | |
12305 | Packages packages_; | |
12306 | // The functions named "init", if there are any. | |
12307 | std::vector<Named_object*> init_functions_; | |
12308 | + // A mapping from variables to the function calls that initialize | |
12309 | + // them, if it is not stored in the variable's init or preinit. | |
12310 | + // This is used for dependency analysis. | |
12311 | + Var_deps var_deps_; | |
12312 | // Whether we need a magic initialization function. | |
12313 | bool need_init_fn_; | |
12314 | // The name of the magic initialization function. | |
12315 | @@ -2791,6 +2813,9 @@ | |
12316 | // Channel capacity out of bounds in make: negative or overflow. | |
12317 | static const int RUNTIME_ERROR_MAKE_CHAN_OUT_OF_BOUNDS = 9; | |
12318 | ||
12319 | +// Division by zero. | |
12320 | +static const int RUNTIME_ERROR_DIVISION_BY_ZERO = 10; | |
12321 | + | |
12322 | // This is used by some of the langhooks. | |
12323 | extern Gogo* go_get_gogo(); | |
12324 | ||
12325 | Index: gcc/go/gofrontend/types.h | |
12326 | =================================================================== | |
12327 | --- gcc/go/gofrontend/types.h (.../tags/gcc_4_7_0_release) (wersja 187293) | |
12328 | +++ gcc/go/gofrontend/types.h (.../branches/gcc-4_7-branch) (wersja 187293) | |
12329 | @@ -680,6 +680,14 @@ | |
12330 | complex_type() const | |
12331 | { return this->convert<const Complex_type, TYPE_COMPLEX>(); } | |
12332 | ||
12333 | + // Return whether this is a numeric type. | |
12334 | + bool | |
12335 | + is_numeric_type() const | |
12336 | + { | |
12337 | + Type_classification tc = this->base()->classification_; | |
12338 | + return tc == TYPE_INTEGER || tc == TYPE_FLOAT || tc == TYPE_COMPLEX; | |
12339 | + } | |
12340 | + | |
12341 | // Return true if this is a boolean type. | |
12342 | bool | |
12343 | is_boolean_type() const | |
12344 | Index: gcc/go/gofrontend/parse.cc | |
12345 | =================================================================== | |
12346 | --- gcc/go/gofrontend/parse.cc (.../tags/gcc_4_7_0_release) (wersja 187293) | |
12347 | +++ gcc/go/gofrontend/parse.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
12348 | @@ -126,18 +126,22 @@ | |
12349 | ||
12350 | // ExpressionList = Expression { "," Expression } . | |
12351 | ||
12352 | +// If MAY_BE_COMPOSITE_LIT is true, an expression may be a composite | |
12353 | +// literal. | |
12354 | + | |
12355 | // If MAY_BE_SINK is true, the expressions in the list may be "_". | |
12356 | ||
12357 | Expression_list* | |
12358 | -Parse::expression_list(Expression* first, bool may_be_sink) | |
12359 | +Parse::expression_list(Expression* first, bool may_be_sink, | |
12360 | + bool may_be_composite_lit) | |
12361 | { | |
12362 | Expression_list* ret = new Expression_list(); | |
12363 | if (first != NULL) | |
12364 | ret->push_back(first); | |
12365 | while (true) | |
12366 | { | |
12367 | - ret->push_back(this->expression(PRECEDENCE_NORMAL, may_be_sink, true, | |
12368 | - NULL)); | |
12369 | + ret->push_back(this->expression(PRECEDENCE_NORMAL, may_be_sink, | |
12370 | + may_be_composite_lit, NULL)); | |
12371 | ||
12372 | const Token* token = this->peek_token(); | |
12373 | if (!token->is_op(OPERATOR_COMMA)) | |
12374 | @@ -1425,7 +1429,7 @@ | |
12375 | else | |
12376 | { | |
12377 | this->advance_token(); | |
12378 | - expr_list = this->expression_list(NULL, false); | |
12379 | + expr_list = this->expression_list(NULL, false, true); | |
12380 | *last_type = type; | |
12381 | if (*last_expr_list != NULL) | |
12382 | delete *last_expr_list; | |
12383 | @@ -1575,13 +1579,13 @@ | |
12384 | if (this->peek_token()->is_op(OPERATOR_EQ)) | |
12385 | { | |
12386 | this->advance_token(); | |
12387 | - init = this->expression_list(NULL, false); | |
12388 | + init = this->expression_list(NULL, false, true); | |
12389 | } | |
12390 | } | |
12391 | else | |
12392 | { | |
12393 | this->advance_token(); | |
12394 | - init = this->expression_list(NULL, false); | |
12395 | + init = this->expression_list(NULL, false, true); | |
12396 | } | |
12397 | ||
12398 | this->init_vars(&til, type, init, false, location); | |
12399 | @@ -1667,6 +1671,7 @@ | |
12400 | // the right number of values, but it might. Declare the variables, | |
12401 | // and then assign the results of the call to them. | |
12402 | ||
12403 | + Named_object* first_var = NULL; | |
12404 | unsigned int index = 0; | |
12405 | bool any_new = false; | |
12406 | for (Typed_identifier_list::const_iterator pv = vars->begin(); | |
12407 | @@ -1674,7 +1679,22 @@ | |
12408 | ++pv, ++index) | |
12409 | { | |
12410 | Expression* init = Expression::make_call_result(call, index); | |
12411 | - this->init_var(*pv, type, init, is_coloneq, false, &any_new); | |
12412 | + Named_object* no = this->init_var(*pv, type, init, is_coloneq, false, | |
12413 | + &any_new); | |
12414 | + | |
12415 | + if (this->gogo_->in_global_scope() && no->is_variable()) | |
12416 | + { | |
12417 | + if (first_var == NULL) | |
12418 | + first_var = no; | |
12419 | + else | |
12420 | + { | |
12421 | + // The subsequent vars have an implicit dependency on | |
12422 | + // the first one, so that everything gets initialized in | |
12423 | + // the right order and so that we detect cycles | |
12424 | + // correctly. | |
12425 | + this->gogo_->record_var_depends_on(no->var_value(), first_var); | |
12426 | + } | |
12427 | + } | |
12428 | } | |
12429 | ||
12430 | if (is_coloneq && !any_new) | |
12431 | @@ -1972,6 +1992,9 @@ | |
12432 | // In order to support both "a, b := 1, 0" and "a, b = 1, 0" we accept | |
12433 | // tuple assignments here as well. | |
12434 | ||
12435 | +// If MAY_BE_COMPOSITE_LIT is true, the expression on the right hand | |
12436 | +// side may be a composite literal. | |
12437 | + | |
12438 | // If P_RANGE_CLAUSE is not NULL, then this will recognize a | |
12439 | // RangeClause. | |
12440 | ||
12441 | @@ -1981,6 +2004,7 @@ | |
12442 | void | |
12443 | Parse::simple_var_decl_or_assignment(const std::string& name, | |
12444 | Location location, | |
12445 | + bool may_be_composite_lit, | |
12446 | Range_clause* p_range_clause, | |
12447 | Type_switch* p_type_switch) | |
12448 | { | |
12449 | @@ -2037,14 +2061,15 @@ | |
12450 | exprs->push_back(this->id_to_expression(p->name(), | |
12451 | p->location())); | |
12452 | ||
12453 | - Expression_list* more_exprs = this->expression_list(NULL, true); | |
12454 | + Expression_list* more_exprs = | |
12455 | + this->expression_list(NULL, true, may_be_composite_lit); | |
12456 | for (Expression_list::const_iterator p = more_exprs->begin(); | |
12457 | p != more_exprs->end(); | |
12458 | ++p) | |
12459 | exprs->push_back(*p); | |
12460 | delete more_exprs; | |
12461 | ||
12462 | - this->tuple_assignment(exprs, p_range_clause); | |
12463 | + this->tuple_assignment(exprs, may_be_composite_lit, p_range_clause); | |
12464 | return; | |
12465 | } | |
12466 | } | |
12467 | @@ -2060,11 +2085,12 @@ | |
12468 | ||
12469 | Expression_list* init; | |
12470 | if (p_type_switch == NULL) | |
12471 | - init = this->expression_list(NULL, false); | |
12472 | + init = this->expression_list(NULL, false, may_be_composite_lit); | |
12473 | else | |
12474 | { | |
12475 | bool is_type_switch = false; | |
12476 | - Expression* expr = this->expression(PRECEDENCE_NORMAL, false, true, | |
12477 | + Expression* expr = this->expression(PRECEDENCE_NORMAL, false, | |
12478 | + may_be_composite_lit, | |
12479 | &is_type_switch); | |
12480 | if (is_type_switch) | |
12481 | { | |
12482 | @@ -2083,7 +2109,7 @@ | |
12483 | else | |
12484 | { | |
12485 | this->advance_token(); | |
12486 | - init = this->expression_list(expr, false); | |
12487 | + init = this->expression_list(expr, false, may_be_composite_lit); | |
12488 | } | |
12489 | } | |
12490 | ||
12491 | @@ -2865,7 +2891,16 @@ | |
12492 | { | |
12493 | if (this->peek_token()->is_op(OPERATOR_LCURLY)) | |
12494 | { | |
12495 | - if (is_parenthesized) | |
12496 | + if (!may_be_composite_lit) | |
12497 | + { | |
12498 | + Type* t = ret->type(); | |
12499 | + if (t->named_type() != NULL | |
12500 | + || t->forward_declaration_type() != NULL) | |
12501 | + error_at(start_loc, | |
12502 | + _("parentheses required around this composite literal" | |
12503 | + "to avoid parsing ambiguity")); | |
12504 | + } | |
12505 | + else if (is_parenthesized) | |
12506 | error_at(start_loc, | |
12507 | "cannot parenthesize type in composite literal"); | |
12508 | ret = this->composite_lit(ret->type(), 0, ret->location()); | |
12509 | @@ -3040,7 +3075,7 @@ | |
12510 | const Token* token = this->advance_token(); | |
12511 | if (!token->is_op(OPERATOR_RPAREN)) | |
12512 | { | |
12513 | - args = this->expression_list(NULL, false); | |
12514 | + args = this->expression_list(NULL, false, true); | |
12515 | token = this->peek_token(); | |
12516 | if (token->is_op(OPERATOR_ELLIPSIS)) | |
12517 | { | |
12518 | @@ -3553,6 +3588,7 @@ | |
12519 | { | |
12520 | identifier = this->gogo_->pack_hidden_name(identifier, is_exported); | |
12521 | this->simple_var_decl_or_assignment(identifier, location, | |
12522 | + may_be_composite_lit, | |
12523 | p_range_clause, | |
12524 | (token->is_op(OPERATOR_COLONEQ) | |
12525 | ? p_type_switch | |
12526 | @@ -3588,7 +3624,7 @@ | |
12527 | this->inc_dec_stat(this->verify_not_sink(exp)); | |
12528 | else if (token->is_op(OPERATOR_COMMA) | |
12529 | || token->is_op(OPERATOR_EQ)) | |
12530 | - this->assignment(exp, p_range_clause); | |
12531 | + this->assignment(exp, may_be_composite_lit, p_range_clause); | |
12532 | else if (token->is_op(OPERATOR_PLUSEQ) | |
12533 | || token->is_op(OPERATOR_MINUSEQ) | |
12534 | || token->is_op(OPERATOR_OREQ) | |
12535 | @@ -3600,7 +3636,8 @@ | |
12536 | || token->is_op(OPERATOR_RSHIFTEQ) | |
12537 | || token->is_op(OPERATOR_ANDEQ) | |
12538 | || token->is_op(OPERATOR_BITCLEAREQ)) | |
12539 | - this->assignment(this->verify_not_sink(exp), p_range_clause); | |
12540 | + this->assignment(this->verify_not_sink(exp), may_be_composite_lit, | |
12541 | + p_range_clause); | |
12542 | else if (return_exp != NULL) | |
12543 | return this->verify_not_sink(exp); | |
12544 | else | |
12545 | @@ -3706,11 +3743,15 @@ | |
12546 | ||
12547 | // EXP is an expression that we have already parsed. | |
12548 | ||
12549 | +// If MAY_BE_COMPOSITE_LIT is true, an expression on the right hand | |
12550 | +// side may be a composite literal. | |
12551 | + | |
12552 | // If RANGE_CLAUSE is not NULL, then this will recognize a | |
12553 | // RangeClause. | |
12554 | ||
12555 | void | |
12556 | -Parse::assignment(Expression* expr, Range_clause* p_range_clause) | |
12557 | +Parse::assignment(Expression* expr, bool may_be_composite_lit, | |
12558 | + Range_clause* p_range_clause) | |
12559 | { | |
12560 | Expression_list* vars; | |
12561 | if (!this->peek_token()->is_op(OPERATOR_COMMA)) | |
12562 | @@ -3721,20 +3762,24 @@ | |
12563 | else | |
12564 | { | |
12565 | this->advance_token(); | |
12566 | - vars = this->expression_list(expr, true); | |
12567 | + vars = this->expression_list(expr, true, may_be_composite_lit); | |
12568 | } | |
12569 | ||
12570 | - this->tuple_assignment(vars, p_range_clause); | |
12571 | + this->tuple_assignment(vars, may_be_composite_lit, p_range_clause); | |
12572 | } | |
12573 | ||
12574 | // An assignment statement. LHS is the list of expressions which | |
12575 | // appear on the left hand side. | |
12576 | ||
12577 | +// If MAY_BE_COMPOSITE_LIT is true, an expression on the right hand | |
12578 | +// side may be a composite literal. | |
12579 | + | |
12580 | // If RANGE_CLAUSE is not NULL, then this will recognize a | |
12581 | // RangeClause. | |
12582 | ||
12583 | void | |
12584 | -Parse::tuple_assignment(Expression_list* lhs, Range_clause* p_range_clause) | |
12585 | +Parse::tuple_assignment(Expression_list* lhs, bool may_be_composite_lit, | |
12586 | + Range_clause* p_range_clause) | |
12587 | { | |
12588 | const Token* token = this->peek_token(); | |
12589 | if (!token->is_op(OPERATOR_EQ) | |
12590 | @@ -3766,7 +3811,8 @@ | |
12591 | return; | |
12592 | } | |
12593 | ||
12594 | - Expression_list* vals = this->expression_list(NULL, false); | |
12595 | + Expression_list* vals = this->expression_list(NULL, false, | |
12596 | + may_be_composite_lit); | |
12597 | ||
12598 | // We've parsed everything; check for errors. | |
12599 | if (lhs == NULL || vals == NULL) | |
12600 | @@ -3935,7 +3981,7 @@ | |
12601 | this->advance_token(); | |
12602 | Expression_list* vals = NULL; | |
12603 | if (this->expression_may_start_here()) | |
12604 | - vals = this->expression_list(NULL, false); | |
12605 | + vals = this->expression_list(NULL, false, true); | |
12606 | this->gogo_->add_statement(Statement::make_return_statement(vals, location)); | |
12607 | ||
12608 | if (vals == NULL | |
12609 | @@ -3971,7 +4017,7 @@ | |
12610 | ||
12611 | bool saw_simple_stat = false; | |
12612 | Expression* cond = NULL; | |
12613 | - bool saw_send_stmt; | |
12614 | + bool saw_send_stmt = false; | |
12615 | if (this->simple_stat_may_start_here()) | |
12616 | { | |
12617 | cond = this->simple_stat(false, &saw_send_stmt, NULL, NULL); | |
12618 | @@ -4296,7 +4342,7 @@ | |
12619 | if (token->is_keyword(KEYWORD_CASE)) | |
12620 | { | |
12621 | this->advance_token(); | |
12622 | - return this->expression_list(NULL, false); | |
12623 | + return this->expression_list(NULL, false, true); | |
12624 | } | |
12625 | else if (token->is_keyword(KEYWORD_DEFAULT)) | |
12626 | { | |
12627 | Index: gcc/go/gofrontend/unsafe.cc | |
12628 | =================================================================== | |
12629 | --- gcc/go/gofrontend/unsafe.cc (.../tags/gcc_4_7_0_release) (wersja 187293) | |
12630 | +++ gcc/go/gofrontend/unsafe.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
12631 | @@ -57,11 +57,11 @@ | |
12632 | if (add_to_globals) | |
12633 | this->add_named_type(pointer_type); | |
12634 | ||
12635 | - Type* int_type = this->lookup_global("int")->type_value(); | |
12636 | + Type* uintptr_type = Type::lookup_integer_type("uintptr"); | |
12637 | ||
12638 | // Sizeof. | |
12639 | Typed_identifier_list* results = new Typed_identifier_list; | |
12640 | - results->push_back(Typed_identifier("", int_type, bloc)); | |
12641 | + results->push_back(Typed_identifier("", uintptr_type, bloc)); | |
12642 | Function_type* fntype = Type::make_function_type(NULL, NULL, results, bloc); | |
12643 | fntype->set_is_builtin(); | |
12644 | no = bindings->add_function_declaration("Sizeof", package, fntype, bloc); | |
12645 | @@ -70,7 +70,7 @@ | |
12646 | ||
12647 | // Offsetof. | |
12648 | results = new Typed_identifier_list; | |
12649 | - results->push_back(Typed_identifier("", int_type, bloc)); | |
12650 | + results->push_back(Typed_identifier("", uintptr_type, bloc)); | |
12651 | fntype = Type::make_function_type(NULL, NULL, results, bloc); | |
12652 | fntype->set_is_varargs(); | |
12653 | fntype->set_is_builtin(); | |
12654 | @@ -80,7 +80,7 @@ | |
12655 | ||
12656 | // Alignof. | |
12657 | results = new Typed_identifier_list; | |
12658 | - results->push_back(Typed_identifier("", int_type, bloc)); | |
12659 | + results->push_back(Typed_identifier("", uintptr_type, bloc)); | |
12660 | fntype = Type::make_function_type(NULL, NULL, results, bloc); | |
12661 | fntype->set_is_varargs(); | |
12662 | fntype->set_is_builtin(); | |
12663 | Index: gcc/go/gofrontend/expressions.h | |
12664 | =================================================================== | |
12665 | --- gcc/go/gofrontend/expressions.h (.../tags/gcc_4_7_0_release) (wersja 187293) | |
12666 | +++ gcc/go/gofrontend/expressions.h (.../branches/gcc-4_7-branch) (wersja 187293) | |
12667 | @@ -18,6 +18,9 @@ | |
12668 | class Statement_inserter; | |
12669 | class Type; | |
12670 | struct Type_context; | |
12671 | +class Integer_type; | |
12672 | +class Float_type; | |
12673 | +class Complex_type; | |
12674 | class Function_type; | |
12675 | class Map_type; | |
12676 | class Struct_type; | |
12677 | @@ -38,6 +41,7 @@ | |
12678 | class Interface_field_reference_expression; | |
12679 | class Type_guard_expression; | |
12680 | class Receive_expression; | |
12681 | +class Numeric_constant; | |
12682 | class Named_object; | |
12683 | class Export; | |
12684 | class Import; | |
12685 | @@ -342,31 +346,12 @@ | |
12686 | is_constant() const | |
12687 | { return this->do_is_constant(); } | |
12688 | ||
12689 | - // If this is not a constant expression with integral type, return | |
12690 | - // false. If it is one, return true, and set VAL to the value. VAL | |
12691 | - // should already be initialized. If this returns true, it sets | |
12692 | - // *PTYPE to the type of the value, or NULL for an abstract type. | |
12693 | - // If IOTA_IS_CONSTANT is true, then an iota expression is assumed | |
12694 | - // to have its final value. | |
12695 | + // If this is not a numeric constant, return false. If it is one, | |
12696 | + // return true, and set VAL to hold the value. | |
12697 | bool | |
12698 | - integer_constant_value(bool iota_is_constant, mpz_t val, Type** ptype) const; | |
12699 | + numeric_constant_value(Numeric_constant* val) const | |
12700 | + { return this->do_numeric_constant_value(val); } | |
12701 | ||
12702 | - // If this is not a constant expression with floating point type, | |
12703 | - // return false. If it is one, return true, and set VAL to the | |
12704 | - // value. VAL should already be initialized. If this returns true, | |
12705 | - // it sets *PTYPE to the type of the value, or NULL for an abstract | |
12706 | - // type. | |
12707 | - bool | |
12708 | - float_constant_value(mpfr_t val, Type** ptype) const; | |
12709 | - | |
12710 | - // If this is not a constant expression with complex type, return | |
12711 | - // false. If it is one, return true, and set REAL and IMAG to the | |
12712 | - // value. REAL and IMAG should already be initialized. If this | |
12713 | - // return strue, it sets *PTYPE to the type of the value, or NULL | |
12714 | - // for an abstract type. | |
12715 | - bool | |
12716 | - complex_constant_value(mpfr_t real, mpfr_t imag, Type** ptype) const; | |
12717 | - | |
12718 | // If this is not a constant expression with string type, return | |
12719 | // false. If it is one, return true, and set VAL to the value. | |
12720 | bool | |
12721 | @@ -691,24 +676,12 @@ | |
12722 | do_is_constant() const | |
12723 | { return false; } | |
12724 | ||
12725 | - // Return whether this is a constant expression of integral type, | |
12726 | - // and set VAL to the value. | |
12727 | + // Return whether this is a constant expression of numeric type, and | |
12728 | + // set the Numeric_constant to the value. | |
12729 | virtual bool | |
12730 | - do_integer_constant_value(bool, mpz_t, Type**) const | |
12731 | + do_numeric_constant_value(Numeric_constant*) const | |
12732 | { return false; } | |
12733 | ||
12734 | - // Return whether this is a constant expression of floating point | |
12735 | - // type, and set VAL to the value. | |
12736 | - virtual bool | |
12737 | - do_float_constant_value(mpfr_t, Type**) const | |
12738 | - { return false; } | |
12739 | - | |
12740 | - // Return whether this is a constant expression of complex type, and | |
12741 | - // set REAL and IMAGE to the value. | |
12742 | - virtual bool | |
12743 | - do_complex_constant_value(mpfr_t, mpfr_t, Type**) const | |
12744 | - { return false; } | |
12745 | - | |
12746 | // Return whether this is a constant expression of string type, and | |
12747 | // set VAL to the value. | |
12748 | virtual bool | |
12749 | @@ -869,6 +842,11 @@ | |
12750 | bool | |
12751 | contains_error() const; | |
12752 | ||
12753 | + // Retrieve an element by index. | |
12754 | + Expression*& | |
12755 | + at(size_t i) | |
12756 | + { return this->entries_.at(i); } | |
12757 | + | |
12758 | // Return the first and last elements. | |
12759 | Expression*& | |
12760 | front() | |
12761 | @@ -1189,43 +1167,22 @@ | |
12762 | right() | |
12763 | { return this->right_; } | |
12764 | ||
12765 | - // Apply binary opcode OP to LEFT_VAL and RIGHT_VAL, setting VAL. | |
12766 | - // LEFT_TYPE is the type of LEFT_VAL, RIGHT_TYPE is the type of | |
12767 | - // RIGHT_VAL; LEFT_TYPE and/or RIGHT_TYPE may be NULL. Return true | |
12768 | - // if this could be done, false if not. | |
12769 | + // Apply binary opcode OP to LEFT_NC and RIGHT_NC, setting NC. | |
12770 | + // Return true if this could be done, false if not. Issue errors at | |
12771 | + // LOCATION as appropriate. | |
12772 | static bool | |
12773 | - eval_integer(Operator op, Type* left_type, mpz_t left_val, | |
12774 | - Type* right_type, mpz_t right_val, Location, | |
12775 | - mpz_t val); | |
12776 | + eval_constant(Operator op, Numeric_constant* left_nc, | |
12777 | + Numeric_constant* right_nc, Location location, | |
12778 | + Numeric_constant* nc); | |
12779 | ||
12780 | - // Apply binary opcode OP to LEFT_VAL and RIGHT_VAL, setting VAL. | |
12781 | - // Return true if this could be done, false if not. | |
12782 | + // Compare constants LEFT_NC and RIGHT_NC according to OP, setting | |
12783 | + // *RESULT. Return true if this could be done, false if not. Issue | |
12784 | + // errors at LOCATION as appropriate. | |
12785 | static bool | |
12786 | - eval_float(Operator op, Type* left_type, mpfr_t left_val, | |
12787 | - Type* right_type, mpfr_t right_val, mpfr_t val, | |
12788 | - Location); | |
12789 | + compare_constant(Operator op, Numeric_constant* left_nc, | |
12790 | + Numeric_constant* right_nc, Location location, | |
12791 | + bool* result); | |
12792 | ||
12793 | - // Apply binary opcode OP to LEFT_REAL/LEFT_IMAG and | |
12794 | - // RIGHT_REAL/RIGHT_IMAG, setting REAL/IMAG. Return true if this | |
12795 | - // could be done, false if not. | |
12796 | - static bool | |
12797 | - eval_complex(Operator op, Type* left_type, mpfr_t left_real, | |
12798 | - mpfr_t left_imag, Type* right_type, mpfr_t right_real, | |
12799 | - mpfr_t right_imag, mpfr_t real, mpfr_t imag, Location); | |
12800 | - | |
12801 | - // Compare integer constants according to OP. | |
12802 | - static bool | |
12803 | - compare_integer(Operator op, mpz_t left_val, mpz_t right_val); | |
12804 | - | |
12805 | - // Compare floating point constants according to OP. | |
12806 | - static bool | |
12807 | - compare_float(Operator op, Type* type, mpfr_t left_val, mpfr_t right_val); | |
12808 | - | |
12809 | - // Compare complex constants according to OP. | |
12810 | - static bool | |
12811 | - compare_complex(Operator op, Type* type, mpfr_t left_real, mpfr_t left_imag, | |
12812 | - mpfr_t right_val, mpfr_t right_imag); | |
12813 | - | |
12814 | static Expression* | |
12815 | do_import(Import*); | |
12816 | ||
12817 | @@ -1246,14 +1203,8 @@ | |
12818 | { return this->left_->is_constant() && this->right_->is_constant(); } | |
12819 | ||
12820 | bool | |
12821 | - do_integer_constant_value(bool, mpz_t val, Type**) const; | |
12822 | + do_numeric_constant_value(Numeric_constant*) const; | |
12823 | ||
12824 | - bool | |
12825 | - do_float_constant_value(mpfr_t val, Type**) const; | |
12826 | - | |
12827 | - bool | |
12828 | - do_complex_constant_value(mpfr_t real, mpfr_t imag, Type**) const; | |
12829 | - | |
12830 | void | |
12831 | do_discarding_value(); | |
12832 | ||
12833 | @@ -1283,6 +1234,34 @@ | |
12834 | do_dump_expression(Ast_dump_context*) const; | |
12835 | ||
12836 | private: | |
12837 | + static bool | |
12838 | + operation_type(Operator op, Type* left_type, Type* right_type, | |
12839 | + Type** result_type); | |
12840 | + | |
12841 | + static bool | |
12842 | + cmp_to_bool(Operator op, int cmp); | |
12843 | + | |
12844 | + static bool | |
12845 | + eval_integer(Operator op, const Numeric_constant*, const Numeric_constant*, | |
12846 | + Location, Numeric_constant*); | |
12847 | + | |
12848 | + static bool | |
12849 | + eval_float(Operator op, const Numeric_constant*, const Numeric_constant*, | |
12850 | + Location, Numeric_constant*); | |
12851 | + | |
12852 | + static bool | |
12853 | + eval_complex(Operator op, const Numeric_constant*, const Numeric_constant*, | |
12854 | + Location, Numeric_constant*); | |
12855 | + | |
12856 | + static bool | |
12857 | + compare_integer(const Numeric_constant*, const Numeric_constant*, int*); | |
12858 | + | |
12859 | + static bool | |
12860 | + compare_float(const Numeric_constant*, const Numeric_constant *, int*); | |
12861 | + | |
12862 | + static bool | |
12863 | + compare_complex(const Numeric_constant*, const Numeric_constant*, int*); | |
12864 | + | |
12865 | Expression* | |
12866 | lower_struct_comparison(Gogo*, Statement_inserter*); | |
12867 | ||
12868 | @@ -2101,4 +2080,173 @@ | |
12869 | Expression* channel_; | |
12870 | }; | |
12871 | ||
12872 | +// A numeric constant. This is used both for untyped constants and | |
12873 | +// for constants that have a type. | |
12874 | + | |
12875 | +class Numeric_constant | |
12876 | +{ | |
12877 | + public: | |
12878 | + Numeric_constant() | |
12879 | + : classification_(NC_INVALID), type_(NULL) | |
12880 | + { } | |
12881 | + | |
12882 | + ~Numeric_constant(); | |
12883 | + | |
12884 | + Numeric_constant(const Numeric_constant&); | |
12885 | + | |
12886 | + Numeric_constant& operator=(const Numeric_constant&); | |
12887 | + | |
12888 | + // Set to an unsigned long value. | |
12889 | + void | |
12890 | + set_unsigned_long(Type*, unsigned long); | |
12891 | + | |
12892 | + // Set to an integer value. | |
12893 | + void | |
12894 | + set_int(Type*, const mpz_t); | |
12895 | + | |
12896 | + // Set to a rune value. | |
12897 | + void | |
12898 | + set_rune(Type*, const mpz_t); | |
12899 | + | |
12900 | + // Set to a floating point value. | |
12901 | + void | |
12902 | + set_float(Type*, const mpfr_t); | |
12903 | + | |
12904 | + // Set to a complex value. | |
12905 | + void | |
12906 | + set_complex(Type*, const mpfr_t, const mpfr_t); | |
12907 | + | |
12908 | + // Classifiers. | |
12909 | + bool | |
12910 | + is_int() const | |
12911 | + { return this->classification_ == Numeric_constant::NC_INT; } | |
12912 | + | |
12913 | + bool | |
12914 | + is_rune() const | |
12915 | + { return this->classification_ == Numeric_constant::NC_RUNE; } | |
12916 | + | |
12917 | + bool | |
12918 | + is_float() const | |
12919 | + { return this->classification_ == Numeric_constant::NC_FLOAT; } | |
12920 | + | |
12921 | + bool | |
12922 | + is_complex() const | |
12923 | + { return this->classification_ == Numeric_constant::NC_COMPLEX; } | |
12924 | + | |
12925 | + // Value retrievers. These will initialize the values as well as | |
12926 | + // set them. GET_INT is only valid if IS_INT returns true, and | |
12927 | + // likewise respectively. | |
12928 | + void | |
12929 | + get_int(mpz_t*) const; | |
12930 | + | |
12931 | + void | |
12932 | + get_rune(mpz_t*) const; | |
12933 | + | |
12934 | + void | |
12935 | + get_float(mpfr_t*) const; | |
12936 | + | |
12937 | + void | |
12938 | + get_complex(mpfr_t*, mpfr_t*) const; | |
12939 | + | |
12940 | + // Codes returned by to_unsigned_long. | |
12941 | + enum To_unsigned_long | |
12942 | + { | |
12943 | + // Value is integer and fits in unsigned long. | |
12944 | + NC_UL_VALID, | |
12945 | + // Value is not integer. | |
12946 | + NC_UL_NOTINT, | |
12947 | + // Value is integer but is negative. | |
12948 | + NC_UL_NEGATIVE, | |
12949 | + // Value is non-negative integer but does not fit in unsigned | |
12950 | + // long. | |
12951 | + NC_UL_BIG | |
12952 | + }; | |
12953 | + | |
12954 | + // If the value can be expressed as an integer that fits in an | |
12955 | + // unsigned long, set *VAL and return NC_UL_VALID. Otherwise return | |
12956 | + // one of the other To_unsigned_long codes. | |
12957 | + To_unsigned_long | |
12958 | + to_unsigned_long(unsigned long* val) const; | |
12959 | + | |
12960 | + // If the value can be expressed as an int, return true and | |
12961 | + // initialize and set VAL. This will return false for a value with | |
12962 | + // an explicit float or complex type, even if the value is integral. | |
12963 | + bool | |
12964 | + to_int(mpz_t* val) const; | |
12965 | + | |
12966 | + // If the value can be expressed as a float, return true and | |
12967 | + // initialize and set VAL. | |
12968 | + bool | |
12969 | + to_float(mpfr_t* val) const; | |
12970 | + | |
12971 | + // If the value can be expressed as a complex, return true and | |
12972 | + // initialize and set VR and VI. | |
12973 | + bool | |
12974 | + to_complex(mpfr_t* vr, mpfr_t* vi) const; | |
12975 | + | |
12976 | + // Get the type. | |
12977 | + Type* | |
12978 | + type() const; | |
12979 | + | |
12980 | + // If the constant can be expressed in TYPE, then set the type of | |
12981 | + // the constant to TYPE and return true. Otherwise return false, | |
12982 | + // and, if ISSUE_ERROR is true, issue an error message. LOCATION is | |
12983 | + // the location to use for the error. | |
12984 | + bool | |
12985 | + set_type(Type* type, bool issue_error, Location location); | |
12986 | + | |
12987 | + // Return an Expression for this value. | |
12988 | + Expression* | |
12989 | + expression(Location) const; | |
12990 | + | |
12991 | + private: | |
12992 | + void | |
12993 | + clear(); | |
12994 | + | |
12995 | + To_unsigned_long | |
12996 | + mpz_to_unsigned_long(const mpz_t ival, unsigned long *val) const; | |
12997 | + | |
12998 | + To_unsigned_long | |
12999 | + mpfr_to_unsigned_long(const mpfr_t fval, unsigned long *val) const; | |
13000 | + | |
13001 | + bool | |
13002 | + check_int_type(Integer_type*, bool, Location) const; | |
13003 | + | |
13004 | + bool | |
13005 | + check_float_type(Float_type*, bool, Location) const; | |
13006 | + | |
13007 | + bool | |
13008 | + check_complex_type(Complex_type*, bool, Location) const; | |
13009 | + | |
13010 | + // The kinds of constants. | |
13011 | + enum Classification | |
13012 | + { | |
13013 | + NC_INVALID, | |
13014 | + NC_RUNE, | |
13015 | + NC_INT, | |
13016 | + NC_FLOAT, | |
13017 | + NC_COMPLEX | |
13018 | + }; | |
13019 | + | |
13020 | + // The kind of constant. | |
13021 | + Classification classification_; | |
13022 | + // The value. | |
13023 | + union | |
13024 | + { | |
13025 | + // If NC_INT or NC_RUNE. | |
13026 | + mpz_t int_val; | |
13027 | + // If NC_FLOAT. | |
13028 | + mpfr_t float_val; | |
13029 | + // If NC_COMPLEX. | |
13030 | + struct | |
13031 | + { | |
13032 | + mpfr_t real; | |
13033 | + mpfr_t imag; | |
13034 | + } complex_val; | |
13035 | + } u_; | |
13036 | + // The type if there is one. This will be NULL for an untyped | |
13037 | + // constant. | |
13038 | + Type* type_; | |
13039 | +}; | |
13040 | + | |
13041 | #endif // !defined(GO_EXPRESSIONS_H) | |
13042 | Index: gcc/go/gofrontend/statements.cc | |
13043 | =================================================================== | |
13044 | --- gcc/go/gofrontend/statements.cc (.../tags/gcc_4_7_0_release) (wersja 187293) | |
13045 | +++ gcc/go/gofrontend/statements.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
13046 | @@ -3214,10 +3214,9 @@ | |
13047 | size_t | |
13048 | Case_clauses::Hash_integer_value::operator()(Expression* pe) const | |
13049 | { | |
13050 | - Type* itype; | |
13051 | + Numeric_constant nc; | |
13052 | mpz_t ival; | |
13053 | - mpz_init(ival); | |
13054 | - if (!pe->integer_constant_value(true, ival, &itype)) | |
13055 | + if (!pe->numeric_constant_value(&nc) || !nc.to_int(&ival)) | |
13056 | go_unreachable(); | |
13057 | size_t ret = mpz_get_ui(ival); | |
13058 | mpz_clear(ival); | |
13059 | @@ -3236,14 +3235,14 @@ | |
13060 | bool | |
13061 | Case_clauses::Eq_integer_value::operator()(Expression* a, Expression* b) const | |
13062 | { | |
13063 | - Type* atype; | |
13064 | - Type* btype; | |
13065 | + Numeric_constant anc; | |
13066 | mpz_t aval; | |
13067 | + Numeric_constant bnc; | |
13068 | mpz_t bval; | |
13069 | - mpz_init(aval); | |
13070 | - mpz_init(bval); | |
13071 | - if (!a->integer_constant_value(true, aval, &atype) | |
13072 | - || !b->integer_constant_value(true, bval, &btype)) | |
13073 | + if (!a->numeric_constant_value(&anc) | |
13074 | + || !anc.to_int(&aval) | |
13075 | + || !b->numeric_constant_value(&bnc) | |
13076 | + || !bnc.to_int(&bval)) | |
13077 | go_unreachable(); | |
13078 | bool ret = mpz_cmp(aval, bval) == 0; | |
13079 | mpz_clear(aval); | |
13080 | @@ -3431,18 +3430,17 @@ | |
13081 | Expression* e = *p; | |
13082 | if (e->classification() != Expression::EXPRESSION_INTEGER) | |
13083 | { | |
13084 | - Type* itype; | |
13085 | + Numeric_constant nc; | |
13086 | mpz_t ival; | |
13087 | - mpz_init(ival); | |
13088 | - if (!(*p)->integer_constant_value(true, ival, &itype)) | |
13089 | + if (!(*p)->numeric_constant_value(&nc) || !nc.to_int(&ival)) | |
13090 | { | |
13091 | // Something went wrong. This can happen with a | |
13092 | // negative constant and an unsigned switch value. | |
13093 | go_assert(saw_errors()); | |
13094 | continue; | |
13095 | } | |
13096 | - go_assert(itype != NULL); | |
13097 | - e = Expression::make_integer(&ival, itype, e->location()); | |
13098 | + go_assert(nc.type() != NULL); | |
13099 | + e = Expression::make_integer(&ival, nc.type(), e->location()); | |
13100 | mpz_clear(ival); | |
13101 | } | |
13102 | ||
13103 | Index: gcc/go/gofrontend/gogo-tree.cc | |
13104 | =================================================================== | |
13105 | --- gcc/go/gofrontend/gogo-tree.cc (.../tags/gcc_4_7_0_release) (wersja 187293) | |
13106 | +++ gcc/go/gofrontend/gogo-tree.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
13107 | @@ -591,10 +591,11 @@ | |
13108 | return TRAVERSE_CONTINUE; | |
13109 | } | |
13110 | ||
13111 | -// Return true if EXPR refers to VAR. | |
13112 | +// Return true if EXPR, PREINIT, or DEP refers to VAR. | |
13113 | ||
13114 | static bool | |
13115 | -expression_requires(Expression* expr, Block* preinit, Named_object* var) | |
13116 | +expression_requires(Expression* expr, Block* preinit, Named_object* dep, | |
13117 | + Named_object* var) | |
13118 | { | |
13119 | Find_var::Seen_objects seen_objects; | |
13120 | Find_var find_var(var, &seen_objects); | |
13121 | @@ -602,7 +603,15 @@ | |
13122 | Expression::traverse(&expr, &find_var); | |
13123 | if (preinit != NULL) | |
13124 | preinit->traverse(&find_var); | |
13125 | - | |
13126 | + if (dep != NULL) | |
13127 | + { | |
13128 | + Expression* init = dep->var_value()->init(); | |
13129 | + if (init != NULL) | |
13130 | + Expression::traverse(&init, &find_var); | |
13131 | + if (dep->var_value()->has_pre_init()) | |
13132 | + dep->var_value()->preinit()->traverse(&find_var); | |
13133 | + } | |
13134 | + | |
13135 | return find_var.found(); | |
13136 | } | |
13137 | ||
13138 | @@ -659,7 +668,7 @@ | |
13139 | // variable V2 then we initialize V1 after V2. | |
13140 | ||
13141 | static void | |
13142 | -sort_var_inits(Var_inits* var_inits) | |
13143 | +sort_var_inits(Gogo* gogo, Var_inits* var_inits) | |
13144 | { | |
13145 | Var_inits ready; | |
13146 | while (!var_inits->empty()) | |
13147 | @@ -668,6 +677,7 @@ | |
13148 | Named_object* var = p1->var(); | |
13149 | Expression* init = var->var_value()->init(); | |
13150 | Block* preinit = var->var_value()->preinit(); | |
13151 | + Named_object* dep = gogo->var_depends_on(var->var_value()); | |
13152 | ||
13153 | // Start walking through the list to see which variables VAR | |
13154 | // needs to wait for. We can skip P1->WAITING variables--that | |
13155 | @@ -679,20 +689,22 @@ | |
13156 | ||
13157 | for (; p2 != var_inits->end(); ++p2) | |
13158 | { | |
13159 | - if (expression_requires(init, preinit, p2->var())) | |
13160 | + Named_object* p2var = p2->var(); | |
13161 | + if (expression_requires(init, preinit, dep, p2var)) | |
13162 | { | |
13163 | // Check for cycles. | |
13164 | - if (expression_requires(p2->var()->var_value()->init(), | |
13165 | - p2->var()->var_value()->preinit(), | |
13166 | + if (expression_requires(p2var->var_value()->init(), | |
13167 | + p2var->var_value()->preinit(), | |
13168 | + gogo->var_depends_on(p2var->var_value()), | |
13169 | var)) | |
13170 | { | |
13171 | error_at(var->location(), | |
13172 | ("initialization expressions for %qs and " | |
13173 | "%qs depend upon each other"), | |
13174 | var->message_name().c_str(), | |
13175 | - p2->var()->message_name().c_str()); | |
13176 | + p2var->message_name().c_str()); | |
13177 | inform(p2->var()->location(), "%qs defined here", | |
13178 | - p2->var()->message_name().c_str()); | |
13179 | + p2var->message_name().c_str()); | |
13180 | p2 = var_inits->end(); | |
13181 | } | |
13182 | else | |
13183 | @@ -715,9 +727,11 @@ | |
13184 | // VAR does not depends upon any other initialization expressions. | |
13185 | ||
13186 | // Check for a loop of VAR on itself. We only do this if | |
13187 | - // INIT is not NULL; when INIT is NULL, it means that | |
13188 | - // PREINIT sets VAR, which we will interpret as a loop. | |
13189 | - if (init != NULL && expression_requires(init, preinit, var)) | |
13190 | + // INIT is not NULL and there is no dependency; when INIT is | |
13191 | + // NULL, it means that PREINIT sets VAR, which we will | |
13192 | + // interpret as a loop. | |
13193 | + if (init != NULL && dep == NULL | |
13194 | + && expression_requires(init, preinit, NULL, var)) | |
13195 | error_at(var->location(), | |
13196 | "initialization expression for %qs depends upon itself", | |
13197 | var->message_name().c_str()); | |
13198 | @@ -784,7 +798,7 @@ | |
13199 | } | |
13200 | ||
13201 | // There is nothing useful we can output for constants which | |
13202 | - // have ideal or non-integeral type. | |
13203 | + // have ideal or non-integral type. | |
13204 | if (no->is_const()) | |
13205 | { | |
13206 | Type* type = no->const_value()->type(); | |
13207 | @@ -835,7 +849,9 @@ | |
13208 | ; | |
13209 | else if (TREE_CONSTANT(init)) | |
13210 | { | |
13211 | - if (expression_requires(no->var_value()->init(), NULL, no)) | |
13212 | + if (expression_requires(no->var_value()->init(), NULL, | |
13213 | + this->var_depends_on(no->var_value()), | |
13214 | + no)) | |
13215 | error_at(no->location(), | |
13216 | "initialization expression for %qs depends " | |
13217 | "upon itself", | |
13218 | @@ -880,6 +896,14 @@ | |
13219 | else | |
13220 | var_inits.push_back(Var_init(no, var_init_tree)); | |
13221 | } | |
13222 | + else if (this->var_depends_on(no->var_value()) != NULL) | |
13223 | + { | |
13224 | + // This variable is initialized from something that is | |
13225 | + // not in its init or preinit. This variable needs to | |
13226 | + // participate in dependency analysis sorting, in case | |
13227 | + // some other variable depends on this one. | |
13228 | + var_inits.push_back(Var_init(no, integer_zero_node)); | |
13229 | + } | |
13230 | ||
13231 | if (!is_sink && no->var_value()->type()->has_pointer()) | |
13232 | var_gc.push_back(no); | |
13233 | @@ -897,7 +921,7 @@ | |
13234 | // workable order. | |
13235 | if (!var_inits.empty()) | |
13236 | { | |
13237 | - sort_var_inits(&var_inits); | |
13238 | + sort_var_inits(this, &var_inits); | |
13239 | for (Var_inits::const_iterator p = var_inits.begin(); | |
13240 | p != var_inits.end(); | |
13241 | ++p) | |
13242 | Index: gcc/go/gofrontend/lex.cc | |
13243 | =================================================================== | |
13244 | --- gcc/go/gofrontend/lex.cc (.../tags/gcc_4_7_0_release) (wersja 187293) | |
13245 | +++ gcc/go/gofrontend/lex.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
13246 | @@ -1012,7 +1012,9 @@ | |
13247 | } | |
13248 | } | |
13249 | ||
13250 | - if (*p != '.' && *p != 'i' && !Lex::could_be_exponent(p, pend)) | |
13251 | + // A partial token that looks like an octal literal might actually be the | |
13252 | + // beginning of a floating-point or imaginary literal. | |
13253 | + if (base == 16 || (*p != '.' && *p != 'i' && !Lex::could_be_exponent(p, pend))) | |
13254 | { | |
13255 | std::string s(pnum, p - pnum); | |
13256 | mpz_t val; | |
13257 | Index: gcc/go/gofrontend/types.cc | |
13258 | =================================================================== | |
13259 | --- gcc/go/gofrontend/types.cc (.../tags/gcc_4_7_0_release) (wersja 187293) | |
13260 | +++ gcc/go/gofrontend/types.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
13261 | @@ -2230,15 +2230,13 @@ | |
13262 | return true; | |
13263 | else | |
13264 | { | |
13265 | + Numeric_constant nc; | |
13266 | + if (!at->length()->numeric_constant_value(&nc)) | |
13267 | + return false; | |
13268 | mpz_t ival; | |
13269 | - mpz_init(ival); | |
13270 | - Type* dummy; | |
13271 | - bool length_known = at->length()->integer_constant_value(true, | |
13272 | - ival, | |
13273 | - &dummy); | |
13274 | + if (!nc.to_int(&ival)) | |
13275 | + return false; | |
13276 | mpz_clear(ival); | |
13277 | - if (!length_known) | |
13278 | - return false; | |
13279 | return at->element_type()->is_backend_type_size_known(gogo); | |
13280 | } | |
13281 | } | |
13282 | @@ -5106,17 +5104,22 @@ | |
13283 | // Try to determine the lengths. If we can't, assume the arrays | |
13284 | // are not identical. | |
13285 | bool ret = false; | |
13286 | - mpz_t v1; | |
13287 | - mpz_init(v1); | |
13288 | - Type* type1; | |
13289 | - mpz_t v2; | |
13290 | - mpz_init(v2); | |
13291 | - Type* type2; | |
13292 | - if (l1->integer_constant_value(true, v1, &type1) | |
13293 | - && l2->integer_constant_value(true, v2, &type2)) | |
13294 | - ret = mpz_cmp(v1, v2) == 0; | |
13295 | - mpz_clear(v1); | |
13296 | - mpz_clear(v2); | |
13297 | + Numeric_constant nc1, nc2; | |
13298 | + if (l1->numeric_constant_value(&nc1) | |
13299 | + && l2->numeric_constant_value(&nc2)) | |
13300 | + { | |
13301 | + mpz_t v1; | |
13302 | + if (nc1.to_int(&v1)) | |
13303 | + { | |
13304 | + mpz_t v2; | |
13305 | + if (nc2.to_int(&v2)) | |
13306 | + { | |
13307 | + ret = mpz_cmp(v1, v2) == 0; | |
13308 | + mpz_clear(v2); | |
13309 | + } | |
13310 | + mpz_clear(v1); | |
13311 | + } | |
13312 | + } | |
13313 | return ret; | |
13314 | } | |
13315 | ||
13316 | @@ -5154,58 +5157,44 @@ | |
13317 | return false; | |
13318 | } | |
13319 | ||
13320 | - mpz_t val; | |
13321 | - mpz_init(val); | |
13322 | - Type* vt; | |
13323 | - if (!this->length_->integer_constant_value(true, val, &vt)) | |
13324 | + Numeric_constant nc; | |
13325 | + if (!this->length_->numeric_constant_value(&nc)) | |
13326 | { | |
13327 | - mpfr_t fval; | |
13328 | - mpfr_init(fval); | |
13329 | - if (!this->length_->float_constant_value(fval, &vt)) | |
13330 | - { | |
13331 | - if (this->length_->type()->integer_type() != NULL | |
13332 | - || this->length_->type()->float_type() != NULL) | |
13333 | - error_at(this->length_->location(), | |
13334 | - "array bound is not constant"); | |
13335 | - else | |
13336 | - error_at(this->length_->location(), | |
13337 | - "array bound is not numeric"); | |
13338 | - mpfr_clear(fval); | |
13339 | - mpz_clear(val); | |
13340 | - return false; | |
13341 | - } | |
13342 | - if (!mpfr_integer_p(fval)) | |
13343 | - { | |
13344 | - error_at(this->length_->location(), | |
13345 | - "array bound truncated to integer"); | |
13346 | - mpfr_clear(fval); | |
13347 | - mpz_clear(val); | |
13348 | - return false; | |
13349 | - } | |
13350 | - mpz_init(val); | |
13351 | - mpfr_get_z(val, fval, GMP_RNDN); | |
13352 | - mpfr_clear(fval); | |
13353 | + if (this->length_->type()->integer_type() != NULL | |
13354 | + || this->length_->type()->float_type() != NULL) | |
13355 | + error_at(this->length_->location(), "array bound is not constant"); | |
13356 | + else | |
13357 | + error_at(this->length_->location(), "array bound is not numeric"); | |
13358 | + return false; | |
13359 | } | |
13360 | ||
13361 | - if (mpz_sgn(val) < 0) | |
13362 | + unsigned long val; | |
13363 | + switch (nc.to_unsigned_long(&val)) | |
13364 | { | |
13365 | + case Numeric_constant::NC_UL_VALID: | |
13366 | + break; | |
13367 | + case Numeric_constant::NC_UL_NOTINT: | |
13368 | + error_at(this->length_->location(), "array bound truncated to integer"); | |
13369 | + return false; | |
13370 | + case Numeric_constant::NC_UL_NEGATIVE: | |
13371 | error_at(this->length_->location(), "negative array bound"); | |
13372 | - mpz_clear(val); | |
13373 | return false; | |
13374 | + case Numeric_constant::NC_UL_BIG: | |
13375 | + error_at(this->length_->location(), "array bound overflows"); | |
13376 | + return false; | |
13377 | + default: | |
13378 | + go_unreachable(); | |
13379 | } | |
13380 | ||
13381 | Type* int_type = Type::lookup_integer_type("int"); | |
13382 | - int tbits = int_type->integer_type()->bits(); | |
13383 | - int vbits = mpz_sizeinbase(val, 2); | |
13384 | - if (vbits + 1 > tbits) | |
13385 | + unsigned int tbits = int_type->integer_type()->bits(); | |
13386 | + if (sizeof(val) <= tbits * 8 | |
13387 | + && val >> (tbits - 1) != 0) | |
13388 | { | |
13389 | error_at(this->length_->location(), "array bound overflows"); | |
13390 | - mpz_clear(val); | |
13391 | return false; | |
13392 | } | |
13393 | ||
13394 | - mpz_clear(val); | |
13395 | - | |
13396 | return true; | |
13397 | } | |
13398 | ||
13399 | @@ -5457,11 +5446,16 @@ | |
13400 | go_assert(this->length_ != NULL); | |
13401 | if (this->length_tree_ == NULL_TREE) | |
13402 | { | |
13403 | + Numeric_constant nc; | |
13404 | mpz_t val; | |
13405 | - mpz_init(val); | |
13406 | - Type* t; | |
13407 | - if (this->length_->integer_constant_value(true, val, &t)) | |
13408 | + if (this->length_->numeric_constant_value(&nc) && nc.to_int(&val)) | |
13409 | { | |
13410 | + if (mpz_sgn(val) < 0) | |
13411 | + { | |
13412 | + this->length_tree_ = error_mark_node; | |
13413 | + return this->length_tree_; | |
13414 | + } | |
13415 | + Type* t = nc.type(); | |
13416 | if (t == NULL) | |
13417 | t = Type::lookup_integer_type("int"); | |
13418 | else if (t->is_abstract()) | |
13419 | @@ -5472,8 +5466,6 @@ | |
13420 | } | |
13421 | else | |
13422 | { | |
13423 | - mpz_clear(val); | |
13424 | - | |
13425 | // Make up a translation context for the array length | |
13426 | // expression. FIXME: This won't work in general. | |
13427 | Translate_context context(gogo, NULL, NULL, NULL); | |
13428 | @@ -5824,23 +5816,17 @@ | |
13429 | ret->push_back('['); | |
13430 | if (this->length_ != NULL) | |
13431 | { | |
13432 | - mpz_t val; | |
13433 | - mpz_init(val); | |
13434 | - Type* type; | |
13435 | - if (!this->length_->integer_constant_value(true, val, &type)) | |
13436 | - error_at(this->length_->location(), | |
13437 | - "array length must be integer constant expression"); | |
13438 | - else if (mpz_cmp_si(val, 0) < 0) | |
13439 | - error_at(this->length_->location(), "array length is negative"); | |
13440 | - else if (mpz_cmp_ui(val, mpz_get_ui(val)) != 0) | |
13441 | - error_at(this->length_->location(), "array length is too large"); | |
13442 | + Numeric_constant nc; | |
13443 | + unsigned long val; | |
13444 | + if (!this->length_->numeric_constant_value(&nc) | |
13445 | + || nc.to_unsigned_long(&val) != Numeric_constant::NC_UL_VALID) | |
13446 | + error_at(this->length_->location(), "invalid array length"); | |
13447 | else | |
13448 | { | |
13449 | char buf[50]; | |
13450 | - snprintf(buf, sizeof buf, "%lu", mpz_get_ui(val)); | |
13451 | + snprintf(buf, sizeof buf, "%lu", val); | |
13452 | ret->append(buf); | |
13453 | } | |
13454 | - mpz_clear(val); | |
13455 | } | |
13456 | ret->push_back(']'); | |
13457 | ||
13458 | @@ -5856,23 +5842,17 @@ | |
13459 | this->append_mangled_name(this->element_type_, gogo, ret); | |
13460 | if (this->length_ != NULL) | |
13461 | { | |
13462 | - mpz_t val; | |
13463 | - mpz_init(val); | |
13464 | - Type* type; | |
13465 | - if (!this->length_->integer_constant_value(true, val, &type)) | |
13466 | - error_at(this->length_->location(), | |
13467 | - "array length must be integer constant expression"); | |
13468 | - else if (mpz_cmp_si(val, 0) < 0) | |
13469 | - error_at(this->length_->location(), "array length is negative"); | |
13470 | - else if (mpz_cmp_ui(val, mpz_get_ui(val)) != 0) | |
13471 | - error_at(this->length_->location(), "array size is too large"); | |
13472 | + Numeric_constant nc; | |
13473 | + unsigned long val; | |
13474 | + if (!this->length_->numeric_constant_value(&nc) | |
13475 | + || nc.to_unsigned_long(&val) != Numeric_constant::NC_UL_VALID) | |
13476 | + error_at(this->length_->location(), "invalid array length"); | |
13477 | else | |
13478 | { | |
13479 | char buf[50]; | |
13480 | - snprintf(buf, sizeof buf, "%lu", mpz_get_ui(val)); | |
13481 | + snprintf(buf, sizeof buf, "%lu", val); | |
13482 | ret->append(buf); | |
13483 | } | |
13484 | - mpz_clear(val); | |
13485 | } | |
13486 | ret->push_back('e'); | |
13487 | } | |
13488 | @@ -6576,7 +6556,11 @@ | |
13489 | Interface_type::is_identical(const Interface_type* t, | |
13490 | bool errors_are_identical) const | |
13491 | { | |
13492 | - go_assert(this->methods_are_finalized_ && t->methods_are_finalized_); | |
13493 | + // If methods have not been finalized, then we are asking whether | |
13494 | + // func redeclarations are the same. This is an error, so for | |
13495 | + // simplicity we say they are never the same. | |
13496 | + if (!this->methods_are_finalized_ || !t->methods_are_finalized_) | |
13497 | + return false; | |
13498 | ||
13499 | // We require the same methods with the same types. The methods | |
13500 | // have already been sorted. | |
13501 | Index: gcc/go/gofrontend/import.cc | |
13502 | =================================================================== | |
13503 | --- gcc/go/gofrontend/import.cc (.../tags/gcc_4_7_0_release) (wersja 187293) | |
13504 | +++ gcc/go/gofrontend/import.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
13505 | @@ -669,6 +669,9 @@ | |
13506 | // This type has not yet been imported. | |
13507 | ntype->clear_is_visible(); | |
13508 | ||
13509 | + if (!type->is_undefined() && type->interface_type() != NULL) | |
13510 | + this->gogo_->record_interface_type(type->interface_type()); | |
13511 | + | |
13512 | type = ntype; | |
13513 | } | |
13514 | else if (no->is_type()) | |
13515 | Index: gcc/go/gofrontend/parse.h | |
13516 | =================================================================== | |
13517 | --- gcc/go/gofrontend/parse.h (.../tags/gcc_4_7_0_release) (wersja 187293) | |
13518 | +++ gcc/go/gofrontend/parse.h (.../branches/gcc-4_7-branch) (wersja 187293) | |
13519 | @@ -162,7 +162,8 @@ | |
13520 | ||
13521 | // Parser nonterminals. | |
13522 | void identifier_list(Typed_identifier_list*); | |
13523 | - Expression_list* expression_list(Expression*, bool may_be_sink); | |
13524 | + Expression_list* expression_list(Expression*, bool may_be_sink, | |
13525 | + bool may_be_composite_lit); | |
13526 | bool qualified_ident(std::string*, Named_object**); | |
13527 | Type* type(); | |
13528 | bool type_may_start_here(); | |
13529 | @@ -207,6 +208,7 @@ | |
13530 | bool is_coloneq, bool type_from_init, bool* is_new); | |
13531 | Named_object* create_dummy_global(Type*, Expression*, Location); | |
13532 | void simple_var_decl_or_assignment(const std::string&, Location, | |
13533 | + bool may_be_composite_lit, | |
13534 | Range_clause*, Type_switch*); | |
13535 | void function_decl(); | |
13536 | Typed_identifier* receiver(); | |
13537 | @@ -239,8 +241,9 @@ | |
13538 | void expression_stat(Expression*); | |
13539 | void send_stmt(Expression*); | |
13540 | void inc_dec_stat(Expression*); | |
13541 | - void assignment(Expression*, Range_clause*); | |
13542 | - void tuple_assignment(Expression_list*, Range_clause*); | |
13543 | + void assignment(Expression*, bool may_be_composite_lit, Range_clause*); | |
13544 | + void tuple_assignment(Expression_list*, bool may_be_composite_lit, | |
13545 | + Range_clause*); | |
13546 | void send(); | |
13547 | void go_or_defer_stat(); | |
13548 | void return_stat(); | |
13549 | Index: gcc/go/gofrontend/expressions.cc | |
13550 | =================================================================== | |
13551 | --- gcc/go/gofrontend/expressions.cc (.../tags/gcc_4_7_0_release) (wersja 187293) | |
13552 | +++ gcc/go/gofrontend/expressions.cc (.../branches/gcc-4_7-branch) (wersja 187293) | |
13553 | @@ -6,6 +6,8 @@ | |
13554 | ||
13555 | #include "go-system.h" | |
13556 | ||
13557 | +#include <algorithm> | |
13558 | + | |
13559 | #include <gmp.h> | |
13560 | ||
13561 | #ifndef ENABLE_BUILD_WITH_CXX | |
13562 | @@ -50,57 +52,6 @@ | |
13563 | { | |
13564 | } | |
13565 | ||
13566 | -// If this expression has a constant integer value, return it. | |
13567 | - | |
13568 | -bool | |
13569 | -Expression::integer_constant_value(bool iota_is_constant, mpz_t val, | |
13570 | - Type** ptype) const | |
13571 | -{ | |
13572 | - *ptype = NULL; | |
13573 | - return this->do_integer_constant_value(iota_is_constant, val, ptype); | |
13574 | -} | |
13575 | - | |
13576 | -// If this expression has a constant floating point value, return it. | |
13577 | - | |
13578 | -bool | |
13579 | -Expression::float_constant_value(mpfr_t val, Type** ptype) const | |
13580 | -{ | |
13581 | - *ptype = NULL; | |
13582 | - if (this->do_float_constant_value(val, ptype)) | |
13583 | - return true; | |
13584 | - mpz_t ival; | |
13585 | - mpz_init(ival); | |
13586 | - Type* t; | |
13587 | - bool ret; | |
13588 | - if (!this->do_integer_constant_value(false, ival, &t)) | |
13589 | - ret = false; | |
13590 | - else | |
13591 | - { | |
13592 | - mpfr_set_z(val, ival, GMP_RNDN); | |
13593 | - ret = true; | |
13594 | - } | |
13595 | - mpz_clear(ival); | |
13596 | - return ret; | |
13597 | -} | |
13598 | - | |
13599 | -// If this expression has a constant complex value, return it. | |
13600 | - | |
13601 | -bool | |
13602 | -Expression::complex_constant_value(mpfr_t real, mpfr_t imag, | |
13603 | - Type** ptype) const | |
13604 | -{ | |
13605 | - *ptype = NULL; | |
13606 | - if (this->do_complex_constant_value(real, imag, ptype)) | |
13607 | - return true; | |
13608 | - Type *t; | |
13609 | - if (this->float_constant_value(real, &t)) | |
13610 | - { | |
13611 | - mpfr_set_ui(imag, 0, GMP_RNDN); | |
13612 | - return true; | |
13613 | - } | |
13614 | - return false; | |
13615 | -} | |
13616 | - | |
13617 | // Traverse the expressions. | |
13618 | ||
13619 | int | |
13620 | @@ -824,27 +775,12 @@ | |
13621 | { return true; } | |
13622 | ||
13623 | bool | |
13624 | - do_integer_constant_value(bool, mpz_t val, Type**) const | |
13625 | + do_numeric_constant_value(Numeric_constant* nc) const | |
13626 | { | |
13627 | - mpz_set_ui(val, 0); | |
13628 | + nc->set_unsigned_long(NULL, 0); | |
13629 | return true; | |
13630 | } | |
13631 | ||
13632 | - bool | |
13633 | - do_float_constant_value(mpfr_t val, Type**) const | |
13634 | - { | |
13635 | - mpfr_set_ui(val, 0, GMP_RNDN); | |
13636 | - return true; | |
13637 | - } | |
13638 | - | |
13639 | - bool | |
13640 | - do_complex_constant_value(mpfr_t real, mpfr_t imag, Type**) const | |
13641 | - { | |
13642 | - mpfr_set_ui(real, 0, GMP_RNDN); | |
13643 | - mpfr_set_ui(imag, 0, GMP_RNDN); | |
13644 | - return true; | |
13645 | - } | |
13646 | - | |
13647 | void | |
13648 | do_discarding_value() | |
13649 | { } | |
13650 | @@ -1759,10 +1695,6 @@ | |
13651 | static Expression* | |
13652 | do_import(Import*); | |
13653 | ||
13654 | - // Return whether VAL fits in the type. | |
13655 | - static bool | |
13656 | - check_constant(mpz_t val, Type*, Location); | |
13657 | - | |
13658 | // Write VAL to string dump. | |
13659 | static void | |
13660 | export_integer(String_dump* exp, const mpz_t val); | |
13661 | @@ -1777,7 +1709,7 @@ | |
13662 | { return true; } | |
13663 | ||
13664 | bool | |
13665 | - do_integer_constant_value(bool, mpz_t val, Type** ptype) const; | |
13666 | + do_numeric_constant_value(Numeric_constant* nc) const; | |
13667 | ||
13668 | Type* | |
13669 | do_type(); | |
13670 | @@ -1817,15 +1749,16 @@ | |
13671 | bool is_character_constant_; | |
13672 | }; | |
13673 | ||
13674 | -// Return an integer constant value. | |
13675 | +// Return a numeric constant for this expression. We have to mark | |
13676 | +// this as a character when appropriate. | |
13677 | ||
13678 | bool | |
13679 | -Integer_expression::do_integer_constant_value(bool, mpz_t val, | |
13680 | - Type** ptype) const | |
13681 | +Integer_expression::do_numeric_constant_value(Numeric_constant* nc) const | |
13682 | { | |
13683 | - if (this->type_ != NULL) | |
13684 | - *ptype = this->type_; | |
13685 | - mpz_set(val, this->val_); | |
13686 | + if (this->is_character_constant_) | |
13687 | + nc->set_rune(this->type_, this->val_); | |
13688 | + else | |
13689 | + nc->set_int(this->type_, this->val_); | |
13690 | return true; | |
13691 | } | |
13692 | ||
13693 | @@ -1853,10 +1786,7 @@ | |
13694 | { | |
13695 | if (this->type_ != NULL && !this->type_->is_abstract()) | |
13696 | ; | |
13697 | - else if (context->type != NULL | |
13698 | - && (context->type->integer_type() != NULL | |
13699 | - || context->type->float_type() != NULL | |
13700 | - || context->type->complex_type() != NULL)) | |
13701 | + else if (context->type != NULL && context->type->is_numeric_type()) | |
13702 | this->type_ = context->type; | |
13703 | else if (!context->may_be_abstract) | |
13704 | { | |
13705 | @@ -1867,55 +1797,20 @@ | |
13706 | } | |
13707 | } | |
13708 | ||
13709 | -// Return true if the integer VAL fits in the range of the type TYPE. | |
13710 | -// Otherwise give an error and return false. TYPE may be NULL. | |
13711 | - | |
13712 | -bool | |
13713 | -Integer_expression::check_constant(mpz_t val, Type* type, | |
13714 | - Location location) | |
13715 | -{ | |
13716 | - if (type == NULL) | |
13717 | - return true; | |
13718 | - Integer_type* itype = type->integer_type(); | |
13719 | - if (itype == NULL || itype->is_abstract()) | |
13720 | - return true; | |
13721 | - | |
13722 | - int bits = mpz_sizeinbase(val, 2); | |
13723 | - | |
13724 | - if (itype->is_unsigned()) | |
13725 | - { | |
13726 | - // For an unsigned type we can only accept a nonnegative number, | |
13727 | - // and we must be able to represent at least BITS. | |
13728 | - if (mpz_sgn(val) >= 0 | |
13729 | - && bits <= itype->bits()) | |
13730 | - return true; | |
13731 | - } | |
13732 | - else | |
13733 | - { | |
13734 | - // For a signed type we need an extra bit to indicate the sign. | |
13735 | - // We have to handle the most negative integer specially. | |
13736 | - if (bits + 1 <= itype->bits() | |
13737 | - || (bits <= itype->bits() | |
13738 | - && mpz_sgn(val) < 0 | |
13739 | - && (mpz_scan1(val, 0) | |
13740 | - == static_cast<unsigned long>(itype->bits() - 1)) | |
13741 | - && mpz_scan0(val, itype->bits()) == ULONG_MAX)) | |
13742 | - return true; | |
13743 | - } | |
13744 | - | |
13745 | - error_at(location, "integer constant overflow"); | |
13746 | - return false; | |
13747 | -} | |
13748 | - | |
13749 | // Check the type of an integer constant. | |
13750 | ||
13751 | void | |
13752 | Integer_expression::do_check_types(Gogo*) | |
13753 | { | |
13754 | - if (this->type_ == NULL) | |
13755 | + Type* type = this->type_; | |
13756 | + if (type == NULL) | |
13757 | return; | |
13758 | - if (!Integer_expression::check_constant(this->val_, this->type_, | |
13759 | - this->location())) | |
13760 | + Numeric_constant nc; | |
13761 | + if (this->is_character_constant_) | |
13762 | + nc.set_rune(NULL, this->val_); | |
13763 | + else | |
13764 | + nc.set_int(NULL, this->val_); | |
13765 | + if (!nc.set_type(type, true, this->location())) | |
13766 | this->set_is_error(); | |
13767 | } | |
13768 | ||
13769 | @@ -2117,14 +2012,6 @@ | |
13770 | mpfr_init_set(this->val_, *val, GMP_RNDN); | |
13771 | } | |
13772 | ||
13773 | - // Constrain VAL to fit into TYPE. | |
13774 | - static void | |
13775 | - constrain_float(mpfr_t val, Type* type); | |
13776 | - | |
13777 | - // Return whether VAL fits in the type. | |
13778 | - static bool | |
13779 | - check_constant(mpfr_t val, Type*, Location); | |
13780 | - | |
13781 | // Write VAL to export data. | |
13782 | static void | |
13783 | export_float(String_dump* exp, const mpfr_t val); | |
13784 | @@ -2139,7 +2026,11 @@ | |
13785 | { return true; } | |
13786 | ||
13787 | bool | |
13788 | - do_float_constant_value(mpfr_t val, Type**) const; | |
13789 | + do_numeric_constant_value(Numeric_constant* nc) const | |
13790 | + { | |
13791 | + nc->set_float(this->type_, this->val_); | |
13792 | + return true; | |
13793 | + } | |
13794 | ||
13795 | Type* | |
13796 | do_type(); | |
13797 | @@ -2171,27 +2062,6 @@ | |
13798 | Type* type_; | |
13799 | }; | |
13800 | ||
13801 | -// Constrain VAL to fit into TYPE. | |
13802 | - | |
13803 | -void | |
13804 | -Float_expression::constrain_float(mpfr_t val, Type* type) | |
13805 | -{ | |
13806 | - Float_type* ftype = type->float_type(); | |
13807 | - if (ftype != NULL && !ftype->is_abstract()) | |
13808 | - mpfr_prec_round(val, ftype->bits(), GMP_RNDN); | |
13809 | -} | |
13810 | - | |
13811 | -// Return a floating point constant value. | |
13812 | - | |
13813 | -bool | |
13814 | -Float_expression::do_float_constant_value(mpfr_t val, Type** ptype) const | |
13815 | -{ | |
13816 | - if (this->type_ != NULL) | |
13817 | - *ptype = this->type_; | |
13818 | - mpfr_set(val, this->val_, GMP_RNDN); | |
13819 | - return true; | |
13820 | -} | |
13821 | - | |
13822 | // Return the current type. If we haven't set the type yet, we return | |
13823 | // an abstract float type. | |
13824 | ||
13825 | @@ -2220,73 +2090,18 @@ | |
13826 | this->type_ = Type::lookup_float_type("float64"); | |
13827 | } | |
13828 | ||
13829 | -// Return true if the floating point value VAL fits in the range of | |
13830 | -// the type TYPE. Otherwise give an error and return false. TYPE may | |
13831 | -// be NULL. | |
13832 | - | |
13833 | -bool | |
13834 | -Float_expression::check_constant(mpfr_t val, Type* type, | |
13835 | - Location location) | |
13836 | -{ | |
13837 | - if (type == NULL) | |
13838 | - return true; | |
13839 | - Float_type* ftype = type->float_type(); | |
13840 | - if (ftype == NULL || ftype->is_abstract()) | |
13841 | - return true; | |
13842 | - | |
13843 | - // A NaN or Infinity always fits in the range of the type. | |
13844 | - if (mpfr_nan_p(val) || mpfr_inf_p(val) || mpfr_zero_p(val)) | |
13845 | - return true; | |
13846 | - | |
13847 | - mp_exp_t exp = mpfr_get_exp(val); | |
13848 | - mp_exp_t max_exp; | |
13849 | - switch (ftype->bits()) | |
13850 | - { | |
13851 | - case 32: | |
13852 | - max_exp = 128; | |
13853 | - break; | |
13854 | - case 64: | |
13855 | - max_exp = 1024; | |
13856 | - break; | |
13857 | - default: | |
13858 | - go_unreachable(); | |
13859 | - } | |
13860 | - if (exp > max_exp) | |
13861 | - { | |
13862 | - error_at(location, "floating point constant overflow"); | |
13863 | - return false; | |
13864 | - } | |
13865 | - return true; | |
13866 | -} | |
13867 | - | |
13868 | // Check the type of a float value. | |
13869 | ||
13870 | void | |
13871 | Float_expression::do_check_types(Gogo*) | |
13872 | { | |
13873 | - if (this->type_ == NULL) | |
13874 | + Type* type = this->type_; | |
13875 | + if (type == NULL) | |
13876 | return; | |
13877 | - | |
13878 | - if (!Float_expression::check_constant(this->val_, this->type_, | |
13879 | - this->location())) | |
13880 | + Numeric_constant nc; | |
13881 | + nc.set_float(NULL, this->val_); | |
13882 | + if (!nc.set_type(this->type_, true, this->location())) | |
13883 | this->set_is_error(); | |
13884 | - | |
13885 | - Integer_type* integer_type = this->type_->integer_type(); | |
13886 | - if (integer_type != NULL) | |
13887 | - { | |
13888 | - if (!mpfr_integer_p(this->val_)) | |
13889 | - this->report_error(_("floating point constant truncated to integer")); | |
13890 | - else | |
13891 | - { | |
13892 | - go_assert(!integer_type->is_abstract()); | |
13893 | - mpz_t ival; | |
13894 | - mpz_init(ival); | |
13895 | - mpfr_get_z(ival, this->val_, GMP_RNDN); | |
13896 | - Integer_expression::check_constant(ival, integer_type, | |
13897 | - this->location()); | |
13898 | - mpz_clear(ival); | |
13899 | - } | |
13900 | - } | |
13901 | } | |
13902 | ||
13903 | // Get a tree for a float constant. | |
13904 | @@ -2371,14 +2186,6 @@ | |
13905 | mpfr_init_set(this->imag_, *imag, GMP_RNDN); | |
13906 | } | |
13907 | ||
13908 | - // Constrain REAL/IMAG to fit into TYPE. | |
13909 | - static void | |
13910 | - constrain_complex(mpfr_t real, mpfr_t imag, Type* type); | |
13911 | - | |
13912 | - // Return whether REAL/IMAG fits in the type. | |
13913 | - static bool | |
13914 | - check_constant(mpfr_t real, mpfr_t imag, Type*, Location); | |
13915 | - | |
13916 | // Write REAL/IMAG to string dump. | |
13917 | static void | |
13918 | export_complex(String_dump* exp, const mpfr_t real, const mpfr_t val); | |
13919 | @@ -2394,7 +2201,11 @@ | |
13920 | { return true; } | |
13921 | ||
13922 | bool | |
13923 | - do_complex_constant_value(mpfr_t real, mpfr_t imag, Type**) const; | |
13924 | + do_numeric_constant_value(Numeric_constant* nc) const | |
13925 | + { | |
13926 | + nc->set_complex(this->type_, this->real_, this->imag_); | |
13927 | + return true; | |
13928 | + } | |
13929 | ||
13930 | Type* | |
13931 | do_type(); | |
13932 | @@ -2430,32 +2241,6 @@ | |
13933 | Type* type_; | |
13934 | }; | |
13935 | ||
13936 | -// Constrain REAL/IMAG to fit into TYPE. | |
13937 | - | |
13938 | -void | |
13939 | -Complex_expression::constrain_complex(mpfr_t real, mpfr_t imag, Type* type) | |
13940 | -{ | |
13941 | - Complex_type* ctype = type->complex_type(); | |
13942 | - if (ctype != NULL && !ctype->is_abstract()) | |
13943 | - { | |
13944 | - mpfr_prec_round(real, ctype->bits() / 2, GMP_RNDN); | |
13945 | - mpfr_prec_round(imag, ctype->bits() / 2, GMP_RNDN); | |
13946 | - } | |
13947 | -} | |
13948 | - | |
13949 | -// Return a complex constant value. | |
13950 | - | |
13951 | -bool | |
13952 | -Complex_expression::do_complex_constant_value(mpfr_t real, mpfr_t imag, | |
13953 | - Type** ptype) const | |
13954 | -{ | |
13955 | - if (this->type_ != NULL) | |
13956 | - *ptype = this->type_; | |
13957 | - mpfr_set(real, this->real_, GMP_RNDN); | |
13958 | - mpfr_set(imag, this->imag_, GMP_RNDN); | |
13959 | - return true; | |
13960 | -} | |
13961 | - | |
13962 | // Return the current type. If we haven't set the type yet, we return | |
13963 | // an abstract complex type. | |
13964 | ||
13965 | @@ -2482,65 +2267,17 @@ | |
13966 | this->type_ = Type::lookup_complex_type("complex128"); | |
13967 | } | |
13968 | ||
13969 | -// Return true if the complex value REAL/IMAG fits in the range of the | |
13970 | -// type TYPE. Otherwise give an error and return false. TYPE may be | |
13971 | -// NULL. | |
13972 | - | |
13973 | -bool | |
13974 | -Complex_expression::check_constant(mpfr_t real, mpfr_t imag, Type* type, | |
13975 | - Location location) | |
13976 | -{ | |
13977 | - if (type == NULL) | |
13978 | - return true; | |
13979 | - Complex_type* ctype = type->complex_type(); | |
13980 | - if (ctype == NULL || ctype->is_abstract()) | |
13981 | - return true; | |
13982 | - | |
13983 | - mp_exp_t max_exp; | |
13984 | - switch (ctype->bits()) | |
13985 | - { | |
13986 | - case 64: | |
13987 | - max_exp = 128; | |
13988 | - break; | |
13989 | - case 128: | |
13990 | - max_exp = 1024; | |
13991 | - break; | |
13992 | - default: | |
13993 | - go_unreachable(); | |
13994 | - } | |
13995 | - | |
13996 | - // A NaN or Infinity always fits in the range of the type. | |
13997 | - if (!mpfr_nan_p(real) && !mpfr_inf_p(real) && !mpfr_zero_p(real)) | |
13998 | - { | |
13999 | - if (mpfr_get_exp(real) > max_exp) | |
14000 | - { | |
14001 | - error_at(location, "complex real part constant overflow"); | |
14002 | - return false; | |
14003 | - } | |
14004 | - } | |
14005 | - | |
14006 | - if (!mpfr_nan_p(imag) && !mpfr_inf_p(imag) && !mpfr_zero_p(imag)) | |
14007 | - { | |
14008 | - if (mpfr_get_exp(imag) > max_exp) | |
14009 | - { | |
14010 | - error_at(location, "complex imaginary part constant overflow"); | |
14011 | - return false; | |
14012 | - } | |
14013 | - } | |
14014 | - | |
14015 | - return true; | |
14016 | -} | |
14017 | - | |
14018 | // Check the type of a complex value. | |
14019 | ||
14020 | void | |
14021 | Complex_expression::do_check_types(Gogo*) | |
14022 | { | |
14023 | - if (this->type_ == NULL) | |
14024 | + Type* type = this->type_; | |
14025 | + if (type == NULL) | |
14026 | return; | |
14027 | - | |
14028 | - if (!Complex_expression::check_constant(this->real_, this->imag_, | |
14029 | - this->type_, this->location())) | |
14030 | + Numeric_constant nc; | |
14031 | + nc.set_complex(NULL, this->real_, this->imag_); | |
14032 | + if (!nc.set_type(this->type_, true, this->location())) | |
14033 | this->set_is_error(); | |
14034 | } | |
14035 | ||
14036 | @@ -2665,18 +2402,11 @@ | |
14037 | { return true; } | |
14038 | ||
14039 | bool | |
14040 | - do_integer_constant_value(bool, mpz_t val, Type**) const; | |
14041 | + do_numeric_constant_value(Numeric_constant* nc) const; | |
14042 | ||
14043 | bool | |
14044 | - do_float_constant_value(mpfr_t val, Type**) const; | |
14045 | + do_string_constant_value(std::string* val) const; | |
14046 | ||
14047 | - bool | |
14048 | - do_complex_constant_value(mpfr_t real, mpfr_t imag, Type**) const; | |
14049 | - | |
14050 | - bool | |
14051 | - do_string_constant_value(std::string* val) const | |
14052 | - { return this->constant_->const_value()->expr()->string_constant_value(val); } | |
14053 | - | |
14054 | Type* | |
14055 | do_type(); | |
14056 | ||
14057 | @@ -2755,110 +2485,49 @@ | |
14058 | return this; | |
14059 | } | |
14060 | ||
14061 | -// Return an integer constant value. | |
14062 | +// Return a numeric constant value. | |
14063 | ||
14064 | bool | |
14065 | -Const_expression::do_integer_constant_value(bool iota_is_constant, mpz_t val, | |
14066 | - Type** ptype) const | |
14067 | +Const_expression::do_numeric_constant_value(Numeric_constant* nc) const | |
14068 | { | |
14069 | if (this->seen_) | |
14070 | return false; | |
14071 | ||
14072 | - Type* ctype; | |
14073 | - if (this->type_ != NULL) | |
14074 | - ctype = this->type_; | |
14075 | - else | |
14076 | - ctype = this->constant_->const_value()->type(); | |
14077 | - if (ctype != NULL && ctype->integer_type() == NULL) | |
14078 | - return false; | |
14079 | - | |
14080 | Expression* e = this->constant_->const_value()->expr(); | |
14081 | - | |
14082 | + | |
14083 | this->seen_ = true; | |
14084 | ||
14085 | - Type* t; | |
14086 | - bool r = e->integer_constant_value(iota_is_constant, val, &t); | |
14087 | + bool r = e->numeric_constant_value(nc); | |
14088 | ||
14089 | this->seen_ = false; | |
14090 | ||
14091 | - if (r | |
14092 | - && ctype != NULL | |
14093 | - && !Integer_expression::check_constant(val, ctype, this->location())) | |
14094 | - return false; | |
14095 | - | |
14096 | - *ptype = ctype != NULL ? ctype : t; | |
14097 | - return r; | |
14098 | -} | |
14099 | - | |
14100 | -// Return a floating point constant value. | |
14101 | - | |
14102 | -bool | |
14103 | -Const_expression::do_float_constant_value(mpfr_t val, Type** ptype) const | |
14104 | -{ | |
14105 | - if (this->seen_) | |
14106 | - return false; | |
14107 | - | |
14108 | Type* ctype; | |
14109 | if (this->type_ != NULL) | |
14110 | ctype = this->type_; | |
14111 | else | |
14112 | ctype = this->constant_->const_value()->type(); | |
14113 | - if (ctype != NULL && ctype->float_type() == NULL) | |
14114 | - return false; | |
14115 | - | |
14116 | - this->seen_ = true; | |
14117 | - | |
14118 | - Type* t; | |
14119 | - bool r = this->constant_->const_value()->expr()->float_constant_value(val, | |
14120 | - &t); | |
14121 | - | |
14122 | - this->seen_ = false; | |
14123 | - | |
14124 | if (r && ctype != NULL) | |
14125 | { | |
14126 | - if (!Float_expression::check_constant(val, ctype, this->location())) | |
14127 | + if (!nc->set_type(ctype, false, this->location())) | |
14128 | return false; | |
14129 | - Float_expression::constrain_float(val, ctype); | |
14130 | } | |
14131 | - *ptype = ctype != NULL ? ctype : t; | |
14132 | + | |
14133 | return r; | |
14134 | } | |
14135 | ||
14136 | -// Return a complex constant value. | |
14137 | - | |
14138 | bool | |
14139 | -Const_expression::do_complex_constant_value(mpfr_t real, mpfr_t imag, | |
14140 | - Type **ptype) const | |
14141 | +Const_expression::do_string_constant_value(std::string* val) const | |
14142 | { | |
14143 | if (this->seen_) | |
14144 | return false; | |
14145 | ||
14146 | - Type* ctype; | |
14147 | - if (this->type_ != NULL) | |
14148 | - ctype = this->type_; | |
14149 | - else | |
14150 | - ctype = this->constant_->const_value()->type(); | |
14151 | - if (ctype != NULL && ctype->complex_type() == NULL) | |
14152 | - return false; | |
14153 | + Expression* e = this->constant_->const_value()->expr(); | |
14154 | ||
14155 | this->seen_ = true; | |
14156 | - | |
14157 | - Type *t; | |
14158 | - bool r = this->constant_->const_value()->expr()->complex_constant_value(real, | |
14159 | - imag, | |
14160 | - &t); | |
14161 | - | |
14162 | + bool ok = e->string_constant_value(val); | |
14163 | this->seen_ = false; | |
14164 | ||
14165 | - if (r && ctype != NULL) | |
14166 | - { | |
14167 | - if (!Complex_expression::check_constant(real, imag, ctype, | |
14168 | - this->location())) | |
14169 | - return false; | |
14170 | - Complex_expression::constrain_complex(real, imag, ctype); | |
14171 | - } | |
14172 | - *ptype = ctype != NULL ? ctype : t; | |
14173 | - return r; | |
14174 | + return ok; | |
14175 | } | |
14176 | ||
14177 | // Return the type of the const reference. | |
14178 | @@ -2909,12 +2578,8 @@ | |
14179 | if (ctype != NULL && !ctype->is_abstract()) | |
14180 | ; | |
14181 | else if (context->type != NULL | |
14182 | - && (context->type->integer_type() != NULL | |
14183 | - || context->type->float_type() != NULL | |
14184 | - || context->type->complex_type() != NULL) | |
14185 | - && (cetype->integer_type() != NULL | |
14186 | - || cetype->float_type() != NULL | |
14187 | - || cetype->complex_type() != NULL)) | |
14188 | + && context->type->is_numeric_type() | |
14189 | + && cetype->is_numeric_type()) | |
14190 | this->type_ = context->type; | |
14191 | else if (context->type != NULL | |
14192 | && context->type->is_string_type() | |
14193 | @@ -2976,35 +2641,15 @@ | |
14194 | ||
14195 | this->check_for_init_loop(); | |
14196 | ||
14197 | - if (this->type_ == NULL || this->type_->is_abstract()) | |
14198 | - return; | |
14199 | - | |
14200 | - // Check for integer overflow. | |
14201 | - if (this->type_->integer_type() != NULL) | |
14202 | + // Check that numeric constant fits in type. | |
14203 | + if (this->type_ != NULL && this->type_->is_numeric_type()) | |
14204 | { | |
14205 | - mpz_t ival; | |
14206 | - mpz_init(ival); | |
14207 | - Type* dummy; | |
14208 | - if (!this->integer_constant_value(true, ival, &dummy)) | |
14209 | + Numeric_constant nc; | |
14210 | + if (this->constant_->const_value()->expr()->numeric_constant_value(&nc)) | |
14211 | { | |
14212 | - mpfr_t fval; | |
14213 | - mpfr_init(fval); | |
14214 | - Expression* cexpr = this->constant_->const_value()->expr(); | |
14215 | - if (cexpr->float_constant_value(fval, &dummy)) | |
14216 | - { | |
14217 | - if (!mpfr_integer_p(fval)) | |
14218 | - this->report_error(_("floating point constant " | |
14219 | - "truncated to integer")); | |
14220 | - else | |
14221 | - { | |
14222 | - mpfr_get_z(ival, fval, GMP_RNDN); | |
14223 | - Integer_expression::check_constant(ival, this->type_, | |
14224 | - this->location()); | |
14225 | - } | |
14226 | - } | |
14227 | - mpfr_clear(fval); | |
14228 | + if (!nc.set_type(this->type_, true, this->location())) | |
14229 | + this->set_is_error(); | |
14230 | } | |
14231 | - mpz_clear(ival); | |
14232 | } | |
14233 | } | |
14234 | ||
14235 | @@ -3028,41 +2673,18 @@ | |
14236 | // object is an abstract int or float, we try to get the abstract | |
14237 | // value. Otherwise we may lose something in the conversion. | |
14238 | if (this->type_ != NULL | |
14239 | + && this->type_->is_numeric_type() | |
14240 | && (this->constant_->const_value()->type() == NULL | |
14241 | || this->constant_->const_value()->type()->is_abstract())) | |
14242 | { | |
14243 | Expression* expr = this->constant_->const_value()->expr(); | |
14244 | - mpz_t ival; | |
14245 | - mpz_init(ival); | |
14246 | - Type* t; | |
14247 | - if (expr->integer_constant_value(true, ival, &t)) | |
14248 | + Numeric_constant nc; | |
14249 | + if (expr->numeric_constant_value(&nc) | |
14250 | + && nc.set_type(this->type_, false, this->location())) | |
14251 | { | |
14252 | - tree ret = Expression::integer_constant_tree(ival, type_tree); | |
14253 | - mpz_clear(ival); | |
14254 | - return ret; | |
14255 | + Expression* e = nc.expression(this->location()); | |
14256 | + return e->get_tree(context); | |
14257 | } | |
14258 | - mpz_clear(ival); | |
14259 | - | |
14260 | - mpfr_t fval; | |
14261 | - mpfr_init(fval); | |
14262 | - if (expr->float_constant_value(fval, &t)) | |
14263 | - { | |
14264 | - tree ret = Expression::float_constant_tree(fval, type_tree); | |
14265 | - mpfr_clear(fval); | |
14266 | - return ret; | |
14267 | - } | |
14268 | - | |
14269 | - mpfr_t imag; | |
14270 | - mpfr_init(imag); | |
14271 | - if (expr->complex_constant_value(fval, imag, &t)) | |
14272 | - { | |
14273 | - tree ret = Expression::complex_constant_tree(fval, imag, type_tree); | |
14274 | - mpfr_clear(fval); | |
14275 | - mpfr_clear(imag); | |
14276 | - return ret; | |
14277 | - } | |
14278 | - mpfr_clear(imag); | |
14279 | - mpfr_clear(fval); | |
14280 | } | |
14281 | ||
14282 | tree const_tree = this->constant_->get_tree(gogo, context->function()); | |
14283 | @@ -3279,15 +2901,9 @@ | |
14284 | { return this->expr_->is_constant(); } | |
14285 | ||
14286 | bool | |
14287 | - do_integer_constant_value(bool, mpz_t, Type**) const; | |
14288 | + do_numeric_constant_value(Numeric_constant*) const; | |
14289 | ||
14290 | bool | |
14291 | - do_float_constant_value(mpfr_t, Type**) const; | |
14292 | - | |
14293 | - bool | |
14294 | - do_complex_constant_value(mpfr_t, mpfr_t, Type**) const; | |
14295 | - | |
14296 | - bool | |
14297 | do_string_constant_value(std::string*) const; | |
14298 | ||
14299 | Type* | |
14300 | @@ -3351,84 +2967,17 @@ | |
14301 | Expression* val = this->expr_; | |
14302 | Location location = this->location(); | |
14303 | ||
14304 | - if (type->integer_type() != NULL) | |
14305 | + if (type->is_numeric_type()) | |
14306 | { | |
14307 | - mpz_t ival; | |
14308 | - mpz_init(ival); | |
14309 | - Type* dummy; | |
14310 | - if (val->integer_constant_value(false, ival, &dummy)) | |
14311 | + Numeric_constant nc; | |
14312 | + if (val->numeric_constant_value(&nc)) | |
14313 | { | |
14314 | - if (!Integer_expression::check_constant(ival, type, location)) | |
14315 | - mpz_set_ui(ival, 0); | |
14316 | - Expression* ret = Expression::make_integer(&ival, type, location); | |
14317 | - mpz_clear(ival); | |
14318 | - return ret; | |
14319 | + if (!nc.set_type(type, true, location)) | |
14320 | + return Expression::make_error(location); | |
14321 | + return nc.expression(location); | |
14322 | } | |
14323 | - | |
14324 | - mpfr_t fval; | |
14325 | - mpfr_init(fval); | |
14326 | - if (val->float_constant_value(fval, &dummy)) | |
14327 | - { | |
14328 | - if (!mpfr_integer_p(fval)) | |
14329 | - { | |
14330 | - error_at(location, | |
14331 | - "floating point constant truncated to integer"); | |
14332 | - return Expression::make_error(location); | |
14333 | - } | |
14334 | - mpfr_get_z(ival, fval, GMP_RNDN); | |
14335 | - if (!Integer_expression::check_constant(ival, type, location)) | |
14336 | - mpz_set_ui(ival, 0); | |
14337 | - Expression* ret = Expression::make_integer(&ival, type, location); | |
14338 | - mpfr_clear(fval); | |
14339 | - mpz_clear(ival); | |
14340 | - return ret; | |
14341 | - } | |
14342 | - mpfr_clear(fval); | |
14343 | - mpz_clear(ival); | |
14344 | } | |
14345 | ||
14346 | - if (type->float_type() != NULL) | |
14347 | - { | |
14348 | - mpfr_t fval; | |
14349 | - mpfr_init(fval); | |
14350 | - Type* dummy; | |
14351 | - if (val->float_constant_value(fval, &dummy)) | |
14352 | - { | |
14353 | - if (!Float_expression::check_constant(fval, type, location)) | |
14354 | - mpfr_set_ui(fval, 0, GMP_RNDN); | |
14355 | - Float_expression::constrain_float(fval, type); | |
14356 | - Expression *ret = Expression::make_float(&fval, type, location); | |
14357 | - mpfr_clear(fval); | |
14358 | - return ret; | |
14359 | - } | |
14360 | - mpfr_clear(fval); | |
14361 | - } | |
14362 | - | |
14363 | - if (type->complex_type() != NULL) | |
14364 | - { | |
14365 | - mpfr_t real; | |
14366 | - mpfr_t imag; | |
14367 | - mpfr_init(real); | |
14368 | - mpfr_init(imag); | |
14369 | - Type* dummy; | |
14370 | - if (val->complex_constant_value(real, imag, &dummy)) | |
14371 | - { | |
14372 | - if (!Complex_expression::check_constant(real, imag, type, location)) | |
14373 | - { | |
14374 | - mpfr_set_ui(real, 0, GMP_RNDN); | |
14375 | - mpfr_set_ui(imag, 0, GMP_RNDN); | |
14376 | - } | |
14377 | - Complex_expression::constrain_complex(real, imag, type); | |
14378 | - Expression* ret = Expression::make_complex(&real, &imag, type, | |
14379 | - location); | |
14380 | - mpfr_clear(real); | |
14381 | - mpfr_clear(imag); | |
14382 | - return ret; | |
14383 | - } | |
14384 | - mpfr_clear(real); | |
14385 | - mpfr_clear(imag); | |
14386 | - } | |
14387 | - | |
14388 | if (type->is_slice_type()) | |
14389 | { | |
14390 | Type* element_type = type->array_type()->element_type()->forwarded(); | |
14391 | @@ -3491,120 +3040,19 @@ | |
14392 | return this; | |
14393 | } | |
14394 | ||
14395 | -// Return the constant integer value if there is one. | |
14396 | +// Return the constant numeric value if there is one. | |
14397 | ||
14398 | bool | |
14399 | -Type_conversion_expression::do_integer_constant_value(bool iota_is_constant, | |
14400 | - mpz_t val, | |
14401 | - Type** ptype) const | |
14402 | +Type_conversion_expression::do_numeric_constant_value( | |
14403 | + Numeric_constant* nc) const | |
14404 | { | |
14405 | - if (this->type_->integer_type() == NULL) | |
14406 | + if (!this->type_->is_numeric_type()) | |
14407 | return false; | |
14408 | - | |
14409 | - mpz_t ival; | |
14410 | - mpz_init(ival); | |
14411 | - Type* dummy; | |
14412 | - if (this->expr_->integer_constant_value(iota_is_constant, ival, &dummy)) | |
14413 | - { | |
14414 | - if (!Integer_expression::check_constant(ival, this->type_, | |
14415 | - this->location())) | |
14416 | - { | |
14417 | - mpz_clear(ival); | |
14418 | - return false; | |
14419 | - } | |
14420 | - mpz_set(val, ival); | |
14421 | - mpz_clear(ival); | |
14422 | - *ptype = this->type_; | |
14423 | - return true; | |
14424 | - } | |
14425 | - mpz_clear(ival); | |
14426 | - | |
14427 | - mpfr_t fval; | |
14428 | - mpfr_init(fval); | |
14429 | - if (this->expr_->float_constant_value(fval, &dummy)) | |
14430 | - { | |
14431 | - mpfr_get_z(val, fval, GMP_RNDN); | |
14432 | - mpfr_clear(fval); | |
14433 | - if (!Integer_expression::check_constant(val, this->type_, | |
14434 | - this->location())) | |
14435 | - return false; | |
14436 | - *ptype = this->type_; | |
14437 | - return true; | |
14438 | - } | |
14439 | - mpfr_clear(fval); | |
14440 | - | |
14441 | - return false; | |
14442 | -} | |
14443 | - | |
14444 | -// Return the constant floating point value if there is one. | |
14445 | - | |
14446 | -bool | |
14447 | -Type_conversion_expression::do_float_constant_value(mpfr_t val, | |
14448 | - Type** ptype) const | |
14449 | -{ | |
14450 | - if (this->type_->float_type() == NULL) | |
14451 | + if (!this->expr_->numeric_constant_value(nc)) | |
14452 | return false; | |
14453 | - | |
14454 | - mpfr_t fval; | |
14455 | - mpfr_init(fval); | |
14456 | - Type* dummy; | |
14457 | - if (this->expr_->float_constant_value(fval, &dummy)) | |
14458 | - { | |
14459 | - if (!Float_expression::check_constant(fval, this->type_, | |
14460 | - this->location())) | |
14461 | - { | |
14462 | - mpfr_clear(fval); | |
14463 | - return false; | |
14464 | - } | |
14465 | - mpfr_set(val, fval, GMP_RNDN); | |
14466 | - mpfr_clear(fval); | |
14467 | - Float_expression::constrain_float(val, this->type_); | |
14468 | - *ptype = this->type_; | |
14469 | - return true; | |
14470 | - } | |
14471 | - mpfr_clear(fval); | |
14472 | - | |
14473 | - return false; | |
14474 | + return nc->set_type(this->type_, false, this->location()); | |
14475 | } | |
14476 | ||
14477 | -// Return the constant complex value if there is one. | |
14478 | - | |
14479 | -bool | |
14480 | -Type_conversion_expression::do_complex_constant_value(mpfr_t real, | |
14481 | - mpfr_t imag, | |
14482 | - Type **ptype) const | |
14483 | -{ | |
14484 | - if (this->type_->complex_type() == NULL) | |
14485 | - return false; | |
14486 | - | |
14487 | - mpfr_t rval; | |
14488 | - mpfr_t ival; | |
14489 | - mpfr_init(rval); | |
14490 | - mpfr_init(ival); | |
14491 | - Type* dummy; | |
14492 | - if (this->expr_->complex_constant_value(rval, ival, &dummy)) | |
14493 | - { | |
14494 | - if (!Complex_expression::check_constant(rval, ival, this->type_, | |
14495 | - this->location())) | |
14496 | - { | |
14497 | - mpfr_clear(rval); | |
14498 | - mpfr_clear(ival); | |
14499 | - return false; | |
14500 | - } | |
14501 | - mpfr_set(real, rval, GMP_RNDN); | |
14502 | - mpfr_set(imag, ival, GMP_RNDN); | |
14503 | - mpfr_clear(rval); | |
14504 | - mpfr_clear(ival); | |
14505 | - Complex_expression::constrain_complex(real, imag, this->type_); | |
14506 | - *ptype = this->type_; | |
14507 | - return true; | |
14508 | - } | |
14509 | - mpfr_clear(rval); | |
14510 | - mpfr_clear(ival); | |
14511 | - | |
14512 | - return false; | |
14513 | -} | |
14514 | - | |
14515 | // Return the constant string value if there is one. | |
14516 | ||
14517 | bool | |
14518 | @@ -3613,20 +3061,17 @@ | |
14519 | if (this->type_->is_string_type() | |
14520 | && this->expr_->type()->integer_type() != NULL) | |
14521 | { | |
14522 | - mpz_t ival; | |
14523 | - mpz_init(ival); | |
14524 | - Type* dummy; | |
14525 | - if (this->expr_->integer_constant_value(false, ival, &dummy)) | |
14526 | + Numeric_constant nc; | |
14527 | + if (this->expr_->numeric_constant_value(&nc)) | |
14528 | { | |
14529 | - unsigned long ulval = mpz_get_ui(ival); | |
14530 | - if (mpz_cmp_ui(ival, ulval) == 0) | |
14531 | + unsigned long ival; | |
14532 | + if (nc.to_unsigned_long(&ival) == Numeric_constant::NC_UL_VALID) | |
14533 | { | |
14534 | - Lex::append_char(ulval, true, val, this->location()); | |
14535 | - mpz_clear(ival); | |
14536 | + val->clear(); | |
14537 | + Lex::append_char(ival, true, val, this->location()); | |
14538 | return true; | |
14539 | } | |
14540 | } | |
14541 | - mpz_clear(ival); | |
14542 | } | |
14543 | ||
14544 | // FIXME: Could handle conversion from const []int here. | |
14545 | @@ -4041,23 +3486,12 @@ | |
14546 | this->create_temp_ = true; | |
14547 | } | |
14548 | ||
14549 | - // Apply unary opcode OP to UVAL, setting VAL. Return true if this | |
14550 | - // could be done, false if not. | |
14551 | + // Apply unary opcode OP to UNC, setting NC. Return true if this | |
14552 | + // could be done, false if not. Issue errors for overflow. | |
14553 | static bool | |
14554 | - eval_integer(Operator op, Type* utype, mpz_t uval, mpz_t val, | |
14555 | - Location); | |
14556 | + eval_constant(Operator op, const Numeric_constant* unc, | |
14557 | + Location, Numeric_constant* nc); | |
14558 | ||
14559 | - // Apply unary opcode OP to UVAL, setting VAL. Return true if this | |
14560 | - // could be done, false if not. | |
14561 | - static bool | |
14562 | - eval_float(Operator op, mpfr_t uval, mpfr_t val); | |
14563 | - | |
14564 | - // Apply unary opcode OP to UREAL/UIMAG, setting REAL/IMAG. Return | |
14565 | - // true if this could be done, false if not. | |
14566 | - static bool | |
14567 | - eval_complex(Operator op, mpfr_t ureal, mpfr_t uimag, mpfr_t real, | |
14568 | - mpfr_t imag); | |
14569 | - | |
14570 | static Expression* | |
14571 | do_import(Import*); | |
14572 | ||
14573 | @@ -4073,14 +3507,8 @@ | |
14574 | do_is_constant() const; | |
14575 | ||
14576 | bool | |
14577 | - do_integer_constant_value(bool, mpz_t, Type**) const; | |
14578 | + do_numeric_constant_value(Numeric_constant*) const; | |
14579 | ||
14580 | - bool | |
14581 | - do_float_constant_value(mpfr_t, Type**) const; | |
14582 | - | |
14583 | - bool | |
14584 | - do_complex_constant_value(mpfr_t, mpfr_t, Type**) const; | |
14585 | - | |
14586 | Type* | |
14587 | do_type(); | |
14588 | ||
14589 | @@ -4178,63 +3606,15 @@ | |
14590 | return Expression::make_error(this->location()); | |
14591 | } | |
14592 | ||
14593 | - if (op == OPERATOR_PLUS || op == OPERATOR_MINUS | |
14594 | - || op == OPERATOR_NOT || op == OPERATOR_XOR) | |
14595 | + if (op == OPERATOR_PLUS || op == OPERATOR_MINUS || op == OPERATOR_XOR) | |
14596 | { | |
14597 | - Expression* ret = NULL; | |
14598 | - | |
14599 | - mpz_t eval; | |
14600 | - mpz_init(eval); | |
14601 | - Type* etype; | |
14602 | - if (expr->integer_constant_value(false, eval, &etype)) | |
14603 | + Numeric_constant nc; | |
14604 | + if (expr->numeric_constant_value(&nc)) | |
14605 | { | |
14606 | - mpz_t val; | |
14607 | - mpz_init(val); | |
14608 | - if (Unary_expression::eval_integer(op, etype, eval, val, loc)) | |
14609 | - ret = Expression::make_integer(&val, etype, loc); | |
14610 | - mpz_clear(val); | |
14611 | + Numeric_constant result; | |
14612 | + if (Unary_expression::eval_constant(op, &nc, loc, &result)) | |
14613 | + return result.expression(loc); | |
14614 | } | |
14615 | - mpz_clear(eval); | |
14616 | - if (ret != NULL) | |
14617 | - return ret; | |
14618 | - | |
14619 | - if (op == OPERATOR_PLUS || op == OPERATOR_MINUS) | |
14620 | - { | |
14621 | - mpfr_t fval; | |
14622 | - mpfr_init(fval); | |
14623 | - Type* ftype; | |
14624 | - if (expr->float_constant_value(fval, &ftype)) | |
14625 | - { | |
14626 | - mpfr_t val; | |
14627 | - mpfr_init(val); | |
14628 | - if (Unary_expression::eval_float(op, fval, val)) | |
14629 | - ret = Expression::make_float(&val, ftype, loc); | |
14630 | - mpfr_clear(val); | |
14631 | - } | |
14632 | - if (ret != NULL) | |
14633 | - { | |
14634 | - mpfr_clear(fval); | |
14635 | - return ret; | |
14636 | - } | |
14637 | - | |
14638 | - mpfr_t ival; | |
14639 | - mpfr_init(ival); | |
14640 | - if (expr->complex_constant_value(fval, ival, &ftype)) | |
14641 | - { | |
14642 | - mpfr_t real; | |
14643 | - mpfr_t imag; | |
14644 | - mpfr_init(real); | |
14645 | - mpfr_init(imag); | |
14646 | - if (Unary_expression::eval_complex(op, fval, ival, real, imag)) | |
14647 | - ret = Expression::make_complex(&real, &imag, ftype, loc); | |
14648 | - mpfr_clear(real); | |
14649 | - mpfr_clear(imag); | |
14650 | - } | |
14651 | - mpfr_clear(ival); | |
14652 | - mpfr_clear(fval); | |
14653 | - if (ret != NULL) | |
14654 | - return ret; | |
14655 | - } | |
14656 | } | |
14657 | ||
14658 | return this; | |
14659 | @@ -4269,199 +3649,174 @@ | |
14660 | return this->expr_->is_constant(); | |
14661 | } | |
14662 | ||
14663 | -// Apply unary opcode OP to UVAL, setting VAL. UTYPE is the type of | |
14664 | -// UVAL, if known; it may be NULL. Return true if this could be done, | |
14665 | -// false if not. | |
14666 | +// Apply unary opcode OP to UNC, setting NC. Return true if this | |
14667 | +// could be done, false if not. Issue errors for overflow. | |
14668 | ||
14669 | bool | |
14670 | -Unary_expression::eval_integer(Operator op, Type* utype, mpz_t uval, mpz_t val, | |
14671 | - Location location) | |
14672 | +Unary_expression::eval_constant(Operator op, const Numeric_constant* unc, | |
14673 | + Location location, Numeric_constant* nc) | |
14674 | { | |
14675 | switch (op) | |
14676 | { | |
14677 | case OPERATOR_PLUS: | |
14678 | - mpz_set(val, uval); | |
14679 | + *nc = *unc; | |
14680 | return true; | |
14681 | + | |
14682 | case OPERATOR_MINUS: | |
14683 | - mpz_neg(val, uval); | |
14684 | - return Integer_expression::check_constant(val, utype, location); | |
14685 | - case OPERATOR_NOT: | |
14686 | - mpz_set_ui(val, mpz_cmp_si(uval, 0) == 0 ? 1 : 0); | |
14687 | - return true; | |
14688 | - case OPERATOR_XOR: | |
14689 | - if (utype == NULL | |
14690 | - || utype->integer_type() == NULL | |
14691 | - || utype->integer_type()->is_abstract()) | |
14692 | - mpz_com(val, uval); | |
14693 | + if (unc->is_int() || unc->is_rune()) | |
14694 | + break; | |
14695 | + else if (unc->is_float()) | |
14696 | + { | |
14697 | + mpfr_t uval; | |
14698 | + unc->get_float(&uval); | |
14699 | + mpfr_t val; | |
14700 | + mpfr_init(val); | |
14701 | + mpfr_neg(val, uval, GMP_RNDN); | |
14702 | + nc->set_float(unc->type(), val); | |
14703 | + mpfr_clear(uval); | |
14704 | + mpfr_clear(val); | |
14705 | + return true; | |
14706 | + } | |
14707 | + else if (unc->is_complex()) | |
14708 | + { | |
14709 | + mpfr_t ureal, uimag; | |
14710 | + unc->get_complex(&ureal, &uimag); | |
14711 | + mpfr_t real, imag; | |
14712 | + mpfr_init(real); | |
14713 | + mpfr_init(imag); | |
14714 | + mpfr_neg(real, ureal, GMP_RNDN); | |
14715 | + mpfr_neg(imag, uimag, GMP_RNDN); | |
14716 | + nc->set_complex(unc->type(), real, imag); | |
14717 | + mpfr_clear(ureal); | |
14718 | + mpfr_clear(uimag); | |
14719 | + mpfr_clear(real); | |
14720 | + mpfr_clear(imag); | |
14721 | + return true; | |
14722 | + } | |
14723 | else | |
14724 | - { | |
14725 | - // The number of HOST_WIDE_INTs that it takes to represent | |
14726 | - // UVAL. | |
14727 | - size_t count = ((mpz_sizeinbase(uval, 2) | |
14728 | - + HOST_BITS_PER_WIDE_INT | |
14729 | - - 1) | |
14730 | - / HOST_BITS_PER_WIDE_INT); | |
14731 | + go_unreachable(); | |
14732 | ||
14733 | - unsigned HOST_WIDE_INT* phwi = new unsigned HOST_WIDE_INT[count]; | |
14734 | - memset(phwi, 0, count * sizeof(HOST_WIDE_INT)); | |
14735 | + case OPERATOR_XOR: | |
14736 | + break; | |
14737 | ||
14738 | - size_t obits = utype->integer_type()->bits(); | |
14739 | - | |
14740 | - if (!utype->integer_type()->is_unsigned() | |
14741 | - && mpz_sgn(uval) < 0) | |
14742 | - { | |
14743 | - mpz_t adj; | |
14744 | - mpz_init_set_ui(adj, 1); | |
14745 | - mpz_mul_2exp(adj, adj, obits); | |
14746 | - mpz_add(uval, uval, adj); | |
14747 | - mpz_clear(adj); | |
14748 | - } | |
14749 | - | |
14750 | - size_t ecount; | |
14751 | - mpz_export(phwi, &ecount, -1, sizeof(HOST_WIDE_INT), 0, 0, uval); | |
14752 | - go_assert(ecount <= count); | |
14753 | - | |
14754 | - // Trim down to the number of words required by the type. | |
14755 | - size_t ocount = ((obits + HOST_BITS_PER_WIDE_INT - 1) | |
14756 | - / HOST_BITS_PER_WIDE_INT); | |
14757 | - go_assert(ocount <= count); | |
14758 | - | |
14759 | - for (size_t i = 0; i < ocount; ++i) | |
14760 | - phwi[i] = ~phwi[i]; | |
14761 | - | |
14762 | - size_t clearbits = ocount * HOST_BITS_PER_WIDE_INT - obits; | |
14763 | - if (clearbits != 0) | |
14764 | - phwi[ocount - 1] &= (((unsigned HOST_WIDE_INT) (HOST_WIDE_INT) -1) | |
14765 | - >> clearbits); | |
14766 | - | |
14767 | - mpz_import(val, ocount, -1, sizeof(HOST_WIDE_INT), 0, 0, phwi); | |
14768 | - | |
14769 | - if (!utype->integer_type()->is_unsigned() | |
14770 | - && mpz_tstbit(val, obits - 1)) | |
14771 | - { | |
14772 | - mpz_t adj; | |
14773 | - mpz_init_set_ui(adj, 1); | |
14774 | - mpz_mul_2exp(adj, adj, obits); | |
14775 | - mpz_sub(val, val, adj); | |
14776 | - mpz_clear(adj); | |
14777 | - } | |
14778 | - | |
14779 | - delete[] phwi; | |
14780 | - } | |
14781 | - return Integer_expression::check_constant(val, utype, location); | |
14782 | + case OPERATOR_NOT: | |
14783 | case OPERATOR_AND: | |
14784 | case OPERATOR_MULT: | |
14785 | return false; | |
14786 | + | |
14787 | default: | |
14788 | go_unreachable(); | |
14789 | } | |
14790 | -} | |
14791 | ||
14792 | -// Apply unary opcode OP to UVAL, setting VAL. Return true if this | |
14793 | -// could be done, false if not. | |
14794 | + if (!unc->is_int() && !unc->is_rune()) | |
14795 | + return false; | |
14796 | ||
14797 | -bool | |
14798 | -Unary_expression::eval_float(Operator op, mpfr_t uval, mpfr_t val) | |
14799 | -{ | |
14800 | + mpz_t uval; | |
14801 | + if (unc->is_rune()) | |
14802 | + unc->get_rune(&uval); | |
14803 | + else | |
14804 | + unc->get_int(&uval); | |
14805 | + mpz_t val; | |
14806 | + mpz_init(val); | |
14807 | + | |
14808 | switch (op) | |
14809 | { | |
14810 | - case OPERATOR_PLUS: | |
14811 | - mpfr_set(val, uval, GMP_RNDN); | |
14812 | - return true; | |
14813 | case OPERATOR_MINUS: | |
14814 | - mpfr_neg(val, uval, GMP_RNDN); | |
14815 | - return true; | |
14816 | + mpz_neg(val, uval); | |
14817 | + break; | |
14818 | + | |
14819 | case OPERATOR_NOT: | |
14820 | + mpz_set_ui(val, mpz_cmp_si(uval, 0) == 0 ? 1 : 0); | |
14821 | + break; | |
14822 | + | |
14823 | case OPERATOR_XOR: | |
14824 | - case OPERATOR_AND: | |
14825 | - case OPERATOR_MULT: | |
14826 | - return false; | |
14827 | - default: | |
14828 | - go_unreachable(); | |
14829 | - } | |
14830 | -} | |
14831 | + { | |
14832 | + Type* utype = unc->type(); | |
14833 | + if (utype->integer_type() == NULL | |
14834 | + || utype->integer_type()->is_abstract()) | |
14835 | + mpz_com(val, uval); | |
14836 | + else | |
14837 | + { | |
14838 | + // The number of HOST_WIDE_INTs that it takes to represent | |
14839 | + // UVAL. | |
14840 | + size_t count = ((mpz_sizeinbase(uval, 2) | |
14841 | + + HOST_BITS_PER_WIDE_INT | |
14842 | + - 1) | |
14843 | + / HOST_BITS_PER_WIDE_INT); | |
14844 | ||
14845 | -// Apply unary opcode OP to RVAL/IVAL, setting REAL/IMAG. Return true | |
14846 | -// if this could be done, false if not. | |
14847 | + unsigned HOST_WIDE_INT* phwi = new unsigned HOST_WIDE_INT[count]; | |
14848 | + memset(phwi, 0, count * sizeof(HOST_WIDE_INT)); | |
14849 | ||
14850 | -bool | |
14851 | -Unary_expression::eval_complex(Operator op, mpfr_t rval, mpfr_t ival, | |
14852 | - mpfr_t real, mpfr_t imag) | |
14853 | -{ | |
14854 | - switch (op) | |
14855 | - { | |
14856 | - case OPERATOR_PLUS: | |
14857 | - mpfr_set(real, rval, GMP_RNDN); | |
14858 | - mpfr_set(imag, ival, GMP_RNDN); | |
14859 | - return true; | |
14860 | - case OPERATOR_MINUS: | |
14861 | - mpfr_neg(real, rval, GMP_RNDN); | |
14862 | - mpfr_neg(imag, ival, GMP_RNDN); | |
14863 | - return true; | |
14864 | - case OPERATOR_NOT: | |
14865 | - case OPERATOR_XOR: | |
14866 | - case OPERATOR_AND: | |
14867 | - case OPERATOR_MULT: | |
14868 | - return false; | |
14869 | + size_t obits = utype->integer_type()->bits(); | |
14870 | + | |
14871 | + if (!utype->integer_type()->is_unsigned() && mpz_sgn(uval) < 0) | |
14872 | + { | |
14873 | + mpz_t adj; | |
14874 | + mpz_init_set_ui(adj, 1); | |
14875 | + mpz_mul_2exp(adj, adj, obits); | |
14876 | + mpz_add(uval, uval, adj); | |
14877 | + mpz_clear(adj); | |
14878 | + } | |
14879 | + | |
14880 | + size_t ecount; | |
14881 | + mpz_export(phwi, &ecount, -1, sizeof(HOST_WIDE_INT), 0, 0, uval); | |
14882 | + go_assert(ecount <= count); | |
14883 | + | |
14884 | + // Trim down to the number of words required by the type. | |
14885 | + size_t ocount = ((obits + HOST_BITS_PER_WIDE_INT - 1) | |
14886 | + / HOST_BITS_PER_WIDE_INT); | |
14887 | + go_assert(ocount <= count); | |
14888 | + | |
14889 | + for (size_t i = 0; i < ocount; ++i) | |
14890 | + phwi[i] = ~phwi[i]; | |
14891 | + | |
14892 | + size_t clearbits = ocount * HOST_BITS_PER_WIDE_INT - obits; | |
14893 | + if (clearbits != 0) | |
14894 | + phwi[ocount - 1] &= (((unsigned HOST_WIDE_INT) (HOST_WIDE_INT) -1) | |
14895 | + >> clearbits); | |
14896 | + | |
14897 | + mpz_import(val, ocount, -1, sizeof(HOST_WIDE_INT), 0, 0, phwi); | |
14898 | + | |
14899 | + if (!utype->integer_type()->is_unsigned() | |
14900 | + && mpz_tstbit(val, obits - 1)) | |
14901 | + { | |
14902 | + mpz_t adj; | |
14903 | + mpz_init_set_ui(adj, 1); | |
14904 | + mpz_mul_2exp(adj, adj, obits); | |
14905 | + mpz_sub(val, val, adj); | |
14906 | + mpz_clear(adj); | |
14907 | + } | |
14908 | + | |
14909 | + delete[] phwi; | |
14910 | + } | |
14911 | + } | |
14912 | + break; | |
14913 | + | |
14914 | default: | |
14915 | go_unreachable(); | |
14916 | } | |
14917 | -} | |
14918 | ||
14919 | -// Return the integral constant value of a unary expression, if it has one. | |
14920 | + if (unc->is_rune()) | |
14921 | + nc->set_rune(NULL, val); | |
14922 | + else | |
14923 | + nc->set_int(NULL, val); | |
14924 | ||
14925 | -bool | |
14926 | -Unary_expression::do_integer_constant_value(bool iota_is_constant, mpz_t val, | |
14927 | - Type** ptype) const | |
14928 | -{ | |
14929 | - mpz_t uval; | |
14930 | - mpz_init(uval); | |
14931 | - bool ret; | |
14932 | - if (!this->expr_->integer_constant_value(iota_is_constant, uval, ptype)) | |
14933 | - ret = false; | |
14934 | - else | |
14935 | - ret = Unary_expression::eval_integer(this->op_, *ptype, uval, val, | |
14936 | - this->location()); | |
14937 | mpz_clear(uval); | |
14938 | - return ret; | |
14939 | -} | |
14940 | + mpz_clear(val); | |
14941 | ||
14942 | -// Return the floating point constant value of a unary expression, if | |
14943 | -// it has one. | |
14944 | - | |
14945 | -bool | |
14946 | -Unary_expression::do_float_constant_value(mpfr_t val, Type** ptype) const | |
14947 | -{ | |
14948 | - mpfr_t uval; | |
14949 | - mpfr_init(uval); | |
14950 | - bool ret; | |
14951 | - if (!this->expr_->float_constant_value(uval, ptype)) | |
14952 | - ret = false; | |
14953 | - else | |
14954 | - ret = Unary_expression::eval_float(this->op_, uval, val); | |
14955 | - mpfr_clear(uval); | |
14956 | - return ret; | |
14957 | + return nc->set_type(unc->type(), true, location); | |
14958 | } | |
14959 | ||
14960 | -// Return the complex constant value of a unary expression, if it has | |
14961 | -// one. | |
14962 | +// Return the integral constant value of a unary expression, if it has one. | |
14963 | ||
14964 | bool | |
14965 | -Unary_expression::do_complex_constant_value(mpfr_t real, mpfr_t imag, | |
14966 | - Type** ptype) const | |
14967 | +Unary_expression::do_numeric_constant_value(Numeric_constant* nc) const | |
14968 | { | |
14969 | - mpfr_t rval; | |
14970 | - mpfr_t ival; | |
14971 | - mpfr_init(rval); | |
14972 | - mpfr_init(ival); | |
14973 | - bool ret; | |
14974 | - if (!this->expr_->complex_constant_value(rval, ival, ptype)) | |
14975 | - ret = false; | |
14976 | - else | |
14977 | - ret = Unary_expression::eval_complex(this->op_, rval, ival, real, imag); | |
14978 | - mpfr_clear(rval); | |
14979 | - mpfr_clear(ival); | |
14980 | - return ret; | |
14981 | + Numeric_constant unc; | |
14982 | + if (!this->expr_->numeric_constant_value(&unc)) | |
14983 | + return false; | |
14984 | + return Unary_expression::eval_constant(this->op_, &unc, this->location(), | |
14985 | + nc); | |
14986 | } | |
14987 | ||
14988 | // Return the type of a unary expression. | |
14989 | @@ -4558,6 +3913,10 @@ | |
14990 | break; | |
14991 | ||
14992 | case OPERATOR_NOT: | |
14993 | + if (!type->is_boolean_type()) | |
14994 | + this->report_error(_("expected boolean type")); | |
14995 | + break; | |
14996 | + | |
14997 | case OPERATOR_XOR: | |
14998 | if (type->integer_type() == NULL | |
14999 | && !type->is_boolean_type()) | |
15000 | @@ -4854,124 +4213,239 @@ | |
15001 | return Expression::traverse(&this->right_, traverse); | |
15002 | } | |
15003 | ||
15004 | -// Compare integer constants according to OP. | |
15005 | +// Return the type to use for a binary operation on operands of | |
15006 | +// LEFT_TYPE and RIGHT_TYPE. These are the types of constants and as | |
15007 | +// such may be NULL or abstract. | |
15008 | ||
15009 | bool | |
15010 | -Binary_expression::compare_integer(Operator op, mpz_t left_val, | |
15011 | - mpz_t right_val) | |
15012 | +Binary_expression::operation_type(Operator op, Type* left_type, | |
15013 | + Type* right_type, Type** result_type) | |
15014 | { | |
15015 | - int i = mpz_cmp(left_val, right_val); | |
15016 | + if (left_type != right_type | |
15017 | + && !left_type->is_abstract() | |
15018 | + && !right_type->is_abstract() | |
15019 | + && left_type->base() != right_type->base() | |
15020 | + && op != OPERATOR_LSHIFT | |
15021 | + && op != OPERATOR_RSHIFT) | |
15022 | + { | |
15023 | + // May be a type error--let it be diagnosed elsewhere. | |
15024 | + return false; | |
15025 | + } | |
15026 | + | |
15027 | + if (op == OPERATOR_LSHIFT || op == OPERATOR_RSHIFT) | |
15028 | + { | |
15029 | + if (left_type->integer_type() != NULL) | |
15030 | + *result_type = left_type; | |
15031 | + else | |
15032 | + *result_type = Type::make_abstract_integer_type(); | |
15033 | + } | |
15034 | + else if (!left_type->is_abstract() && left_type->named_type() != NULL) | |
15035 | + *result_type = left_type; | |
15036 | + else if (!right_type->is_abstract() && right_type->named_type() != NULL) | |
15037 | + *result_type = right_type; | |
15038 | + else if (!left_type->is_abstract()) | |
15039 | + *result_type = left_type; | |
15040 | + else if (!right_type->is_abstract()) | |
15041 | + *result_type = right_type; | |
15042 | + else if (left_type->complex_type() != NULL) | |
15043 | + *result_type = left_type; | |
15044 | + else if (right_type->complex_type() != NULL) | |
15045 | + *result_type = right_type; | |
15046 | + else if (left_type->float_type() != NULL) | |
15047 | + *result_type = left_type; | |
15048 | + else if (right_type->float_type() != NULL) | |
15049 | + *result_type = right_type; | |
15050 | + else if (left_type->integer_type() != NULL | |
15051 | + && left_type->integer_type()->is_rune()) | |
15052 | + *result_type = left_type; | |
15053 | + else if (right_type->integer_type() != NULL | |
15054 | + && right_type->integer_type()->is_rune()) | |
15055 | + *result_type = right_type; | |
15056 | + else | |
15057 | + *result_type = left_type; | |
15058 | + | |
15059 | + return true; | |
15060 | +} | |
15061 | + | |
15062 | +// Convert an integer comparison code and an operator to a boolean | |
15063 | +// value. | |
15064 | + | |
15065 | +bool | |
15066 | +Binary_expression::cmp_to_bool(Operator op, int cmp) | |
15067 | +{ | |
15068 | switch (op) | |
15069 | { | |
15070 | case OPERATOR_EQEQ: | |
15071 | - return i == 0; | |
15072 | + return cmp == 0; | |
15073 | + break; | |
15074 | case OPERATOR_NOTEQ: | |
15075 | - return i != 0; | |
15076 | + return cmp != 0; | |
15077 | + break; | |
15078 | case OPERATOR_LT: | |
15079 | - return i < 0; | |
15080 | + return cmp < 0; | |
15081 | + break; | |
15082 | case OPERATOR_LE: | |
15083 | - return i <= 0; | |
15084 | + return cmp <= 0; | |
15085 | case OPERATOR_GT: | |
15086 | - return i > 0; | |
15087 | + return cmp > 0; | |
15088 | case OPERATOR_GE: | |
15089 | - return i >= 0; | |
15090 | + return cmp >= 0; | |
15091 | default: | |
15092 | go_unreachable(); | |
15093 | } | |
15094 | } | |
15095 | ||
15096 | -// Compare floating point constants according to OP. | |
15097 | +// Compare constants according to OP. | |
15098 | ||
15099 | bool | |
15100 | -Binary_expression::compare_float(Operator op, Type* type, mpfr_t left_val, | |
15101 | - mpfr_t right_val) | |
15102 | +Binary_expression::compare_constant(Operator op, Numeric_constant* left_nc, | |
15103 | + Numeric_constant* right_nc, | |
15104 | + Location location, bool* result) | |
15105 | { | |
15106 | - int i; | |
15107 | - if (type == NULL) | |
15108 | - i = mpfr_cmp(left_val, right_val); | |
15109 | + Type* left_type = left_nc->type(); | |
15110 | + Type* right_type = right_nc->type(); | |
15111 | + | |
15112 | + Type* type; | |
15113 | + if (!Binary_expression::operation_type(op, left_type, right_type, &type)) | |
15114 | + return false; | |
15115 | + | |
15116 | + // When comparing an untyped operand to a typed operand, we are | |
15117 | + // effectively coercing the untyped operand to the other operand's | |
15118 | + // type, so make sure that is valid. | |
15119 | + if (!left_nc->set_type(type, true, location) | |
15120 | + || !right_nc->set_type(type, true, location)) | |
15121 | + return false; | |
15122 | + | |
15123 | + bool ret; | |
15124 | + int cmp; | |
15125 | + if (type->complex_type() != NULL) | |
15126 | + { | |
15127 | + if (op != OPERATOR_EQEQ && op != OPERATOR_NOTEQ) | |
15128 | + return false; | |
15129 | + ret = Binary_expression::compare_complex(left_nc, right_nc, &cmp); | |
15130 | + } | |
15131 | + else if (type->float_type() != NULL) | |
15132 | + ret = Binary_expression::compare_float(left_nc, right_nc, &cmp); | |
15133 | else | |
15134 | + ret = Binary_expression::compare_integer(left_nc, right_nc, &cmp); | |
15135 | + | |
15136 | + if (ret) | |
15137 | + *result = Binary_expression::cmp_to_bool(op, cmp); | |
15138 | + | |
15139 | + return ret; | |
15140 | +} | |
15141 | + | |
15142 | +// Compare integer constants. | |
15143 | + | |
15144 | +bool | |
15145 | +Binary_expression::compare_integer(const Numeric_constant* left_nc, | |
15146 | + const Numeric_constant* right_nc, | |
15147 | + int* cmp) | |
15148 | +{ | |
15149 | + mpz_t left_val; | |
15150 | + if (!left_nc->to_int(&left_val)) | |
15151 | + return false; | |
15152 | + mpz_t right_val; | |
15153 | + if (!right_nc->to_int(&right_val)) | |
15154 | { | |
15155 | - mpfr_t lv; | |
15156 | - mpfr_init_set(lv, left_val, GMP_RNDN); | |
15157 | - mpfr_t rv; | |
15158 | - mpfr_init_set(rv, right_val, GMP_RNDN); | |
15159 | - Float_expression::constrain_float(lv, type); | |
15160 | - Float_expression::constrain_float(rv, type); | |
15161 | - i = mpfr_cmp(lv, rv); | |
15162 | - mpfr_clear(lv); | |
15163 | - mpfr_clear(rv); | |
15164 | + mpz_clear(left_val); | |
15165 | + return false; | |
15166 | } | |
15167 | - switch (op) | |
15168 | + | |
15169 | + *cmp = mpz_cmp(left_val, right_val); | |
15170 | + | |
15171 | + mpz_clear(left_val); | |
15172 | + mpz_clear(right_val); | |
15173 | + | |
15174 | + return true; | |
15175 | +} | |
15176 | + | |
15177 | +// Compare floating point constants. | |
15178 | + | |
15179 | +bool | |
15180 | +Binary_expression::compare_float(const Numeric_constant* left_nc, | |
15181 | + const Numeric_constant* right_nc, | |
15182 | + int* cmp) | |
15183 | +{ | |
15184 | + mpfr_t left_val; | |
15185 | + if (!left_nc->to_float(&left_val)) | |
15186 | + return false; | |
15187 | + mpfr_t right_val; | |
15188 | + if (!right_nc->to_float(&right_val)) | |
15189 | { | |
15190 | - case OPERATOR_EQEQ: | |
15191 | - return i == 0; | |
15192 | - case OPERATOR_NOTEQ: | |
15193 | - return i != 0; | |
15194 | - case OPERATOR_LT: | |
15195 | - return i < 0; | |
15196 | - case OPERATOR_LE: | |
15197 | - return i <= 0; | |
15198 | - case OPERATOR_GT: | |
15199 | - return i > 0; | |
15200 | - case OPERATOR_GE: | |
15201 | - return i >= 0; | |
15202 | - default: | |
15203 | - go_unreachable(); | |
15204 | + mpfr_clear(left_val); | |
15205 | + return false; | |
15206 | } | |
15207 | + | |
15208 | + // We already coerced both operands to the same type. If that type | |
15209 | + // is not an abstract type, we need to round the values accordingly. | |
15210 | + Type* type = left_nc->type(); | |
15211 | + if (!type->is_abstract() && type->float_type() != NULL) | |
15212 | + { | |
15213 | + int bits = type->float_type()->bits(); | |
15214 | + mpfr_prec_round(left_val, bits, GMP_RNDN); | |
15215 | + mpfr_prec_round(right_val, bits, GMP_RNDN); | |
15216 | + } | |
15217 | + | |
15218 | + *cmp = mpfr_cmp(left_val, right_val); | |
15219 | + | |
15220 | + mpfr_clear(left_val); | |
15221 | + mpfr_clear(right_val); | |
15222 | + | |
15223 | + return true; | |
15224 | } | |
15225 | ||
15226 | -// Compare complex constants according to OP. Complex numbers may | |
15227 | -// only be compared for equality. | |
15228 | +// Compare complex constants. Complex numbers may only be compared | |
15229 | +// for equality. | |
15230 | ||
15231 | bool | |
15232 | -Binary_expression::compare_complex(Operator op, Type* type, | |
15233 | - mpfr_t left_real, mpfr_t left_imag, | |
15234 | - mpfr_t right_real, mpfr_t right_imag) | |
15235 | +Binary_expression::compare_complex(const Numeric_constant* left_nc, | |
15236 | + const Numeric_constant* right_nc, | |
15237 | + int* cmp) | |
15238 | { | |
15239 | - bool is_equal; | |
15240 | - if (type == NULL) | |
15241 | - is_equal = (mpfr_cmp(left_real, right_real) == 0 | |
15242 | - && mpfr_cmp(left_imag, right_imag) == 0); | |
15243 | - else | |
15244 | + mpfr_t left_real, left_imag; | |
15245 | + if (!left_nc->to_complex(&left_real, &left_imag)) | |
15246 | + return false; | |
15247 | + mpfr_t right_real, right_imag; | |
15248 | + if (!right_nc->to_complex(&right_real, &right_imag)) | |
15249 | { | |
15250 | - mpfr_t lr; | |
15251 | - mpfr_t li; | |
15252 | - mpfr_init_set(lr, left_real, GMP_RNDN); | |
15253 | - mpfr_init_set(li, left_imag, GMP_RNDN); | |
15254 | - mpfr_t rr; | |
15255 | - mpfr_t ri; | |
15256 | - mpfr_init_set(rr, right_real, GMP_RNDN); | |
15257 | - mpfr_init_set(ri, right_imag, GMP_RNDN); | |
15258 | - Complex_expression::constrain_complex(lr, li, type); | |
15259 | - Complex_expression::constrain_complex(rr, ri, type); | |
15260 | - is_equal = mpfr_cmp(lr, rr) == 0 && mpfr_cmp(li, ri) == 0; | |
15261 | - mpfr_clear(lr); | |
15262 | - mpfr_clear(li); | |
15263 | - mpfr_clear(rr); | |
15264 | - mpfr_clear(ri); | |
15265 | + mpfr_clear(left_real); | |
15266 | + mpfr_clear(left_imag); | |
15267 | + return false; | |
15268 | } | |
15269 | - switch (op) | |
15270 | + | |
15271 | + // We already coerced both operands to the same type. If that type | |
15272 | + // is not an abstract type, we need to round the values accordingly. | |
15273 | + Type* type = left_nc->type(); | |
15274 | + if (!type->is_abstract() && type->complex_type() != NULL) | |
15275 | { | |
15276 | - case OPERATOR_EQEQ: | |
15277 | - return is_equal; | |
15278 | - case OPERATOR_NOTEQ: | |
15279 | - return !is_equal; | |
15280 | - default: | |
15281 | - go_unreachable(); | |
15282 | + int bits = type->complex_type()->bits(); | |
15283 | + mpfr_prec_round(left_real, bits / 2, GMP_RNDN); | |
15284 | + mpfr_prec_round(left_imag, bits / 2, GMP_RNDN); | |
15285 | + mpfr_prec_round(right_real, bits / 2, GMP_RNDN); | |
15286 | + mpfr_prec_round(right_imag, bits / 2, GMP_RNDN); | |
15287 | } | |
15288 | + | |
15289 | + *cmp = (mpfr_cmp(left_real, right_real) != 0 | |
15290 | + || mpfr_cmp(left_imag, right_imag) != 0); | |
15291 | + | |
15292 | + mpfr_clear(left_real); | |
15293 | + mpfr_clear(left_imag); | |
15294 | + mpfr_clear(right_real); | |
15295 | + mpfr_clear(right_imag); | |
15296 | + | |
15297 | + return true; | |
15298 | } | |
15299 | ||
15300 | -// Apply binary opcode OP to LEFT_VAL and RIGHT_VAL, setting VAL. | |
15301 | -// LEFT_TYPE is the type of LEFT_VAL, RIGHT_TYPE is the type of | |
15302 | -// RIGHT_VAL; LEFT_TYPE and/or RIGHT_TYPE may be NULL. Return true if | |
15303 | -// this could be done, false if not. | |
15304 | +// Apply binary opcode OP to LEFT_NC and RIGHT_NC, setting NC. Return | |
15305 | +// true if this could be done, false if not. Issue errors at LOCATION | |
15306 | +// as appropriate. | |
15307 | ||
15308 | bool | |
15309 | -Binary_expression::eval_integer(Operator op, Type* left_type, mpz_t left_val, | |
15310 | - Type* right_type, mpz_t right_val, | |
15311 | - Location location, mpz_t val) | |
15312 | +Binary_expression::eval_constant(Operator op, Numeric_constant* left_nc, | |
15313 | + Numeric_constant* right_nc, | |
15314 | + Location location, Numeric_constant* nc) | |
15315 | { | |
15316 | - bool is_shift_op = false; | |
15317 | switch (op) | |
15318 | { | |
15319 | case OPERATOR_OROR: | |
15320 | @@ -4982,9 +4456,68 @@ | |
15321 | case OPERATOR_LE: | |
15322 | case OPERATOR_GT: | |
15323 | case OPERATOR_GE: | |
15324 | - // These return boolean values. We should probably handle them | |
15325 | - // anyhow in case a type conversion is used on the result. | |
15326 | + // These return boolean values and as such must be handled | |
15327 | + // elsewhere. | |
15328 | + go_unreachable(); | |
15329 | + default: | |
15330 | + break; | |
15331 | + } | |
15332 | + | |
15333 | + Type* left_type = left_nc->type(); | |
15334 | + Type* right_type = right_nc->type(); | |
15335 | + | |
15336 | + Type* type; | |
15337 | + if (!Binary_expression::operation_type(op, left_type, right_type, &type)) | |
15338 | + return false; | |
15339 | + | |
15340 | + bool is_shift = op == OPERATOR_LSHIFT || op == OPERATOR_RSHIFT; | |
15341 | + | |
15342 | + // When combining an untyped operand with a typed operand, we are | |
15343 | + // effectively coercing the untyped operand to the other operand's | |
15344 | + // type, so make sure that is valid. | |
15345 | + if (!left_nc->set_type(type, true, location)) | |
15346 | + return false; | |
15347 | + if (!is_shift && !right_nc->set_type(type, true, location)) | |
15348 | + return false; | |
15349 | + | |
15350 | + bool r; | |
15351 | + if (type->complex_type() != NULL) | |
15352 | + r = Binary_expression::eval_complex(op, left_nc, right_nc, location, nc); | |
15353 | + else if (type->float_type() != NULL) | |
15354 | + r = Binary_expression::eval_float(op, left_nc, right_nc, location, nc); | |
15355 | + else | |
15356 | + r = Binary_expression::eval_integer(op, left_nc, right_nc, location, nc); | |
15357 | + | |
15358 | + if (r) | |
15359 | + r = nc->set_type(type, true, location); | |
15360 | + | |
15361 | + return r; | |
15362 | +} | |
15363 | + | |
15364 | +// Apply binary opcode OP to LEFT_NC and RIGHT_NC, setting NC, using | |
15365 | +// integer operations. Return true if this could be done, false if | |
15366 | +// not. | |
15367 | + | |
15368 | +bool | |
15369 | +Binary_expression::eval_integer(Operator op, const Numeric_constant* left_nc, | |
15370 | + const Numeric_constant* right_nc, | |
15371 | + Location location, Numeric_constant* nc) | |
15372 | +{ | |
15373 | + mpz_t left_val; | |
15374 | + if (!left_nc->to_int(&left_val)) | |
15375 | + return false; | |
15376 | + mpz_t right_val; | |
15377 | + if (!right_nc->to_int(&right_val)) | |
15378 | + { | |
15379 | + mpz_clear(left_val); | |
15380 | return false; | |
15381 | + } | |
15382 | + | |
15383 | + mpz_t val; | |
15384 | + mpz_init(val); | |
15385 | + | |
15386 | + switch (op) | |
15387 | + { | |
15388 | case OPERATOR_PLUS: | |
15389 | mpz_add(val, left_val, right_val); | |
15390 | break; | |
15391 | @@ -5007,7 +4540,6 @@ | |
15392 | { | |
15393 | error_at(location, "division by zero"); | |
15394 | mpz_set_ui(val, 0); | |
15395 | - return true; | |
15396 | } | |
15397 | break; | |
15398 | case OPERATOR_MOD: | |
15399 | @@ -5017,20 +4549,18 @@ | |
15400 | { | |
15401 | error_at(location, "division by zero"); | |
15402 | mpz_set_ui(val, 0); | |
15403 | - return true; | |
15404 | } | |
15405 | break; | |
15406 | case OPERATOR_LSHIFT: | |
15407 | { | |
15408 | unsigned long shift = mpz_get_ui(right_val); | |
15409 | - if (mpz_cmp_ui(right_val, shift) != 0 || shift > 0x100000) | |
15410 | + if (mpz_cmp_ui(right_val, shift) == 0 && shift <= 0x100000) | |
15411 | + mpz_mul_2exp(val, left_val, shift); | |
15412 | + else | |
15413 | { | |
15414 | error_at(location, "shift count overflow"); | |
15415 | mpz_set_ui(val, 0); | |
15416 | - return true; | |
15417 | } | |
15418 | - mpz_mul_2exp(val, left_val, shift); | |
15419 | - is_shift_op = true; | |
15420 | break; | |
15421 | } | |
15422 | break; | |
15423 | @@ -5041,13 +4571,14 @@ | |
15424 | { | |
15425 | error_at(location, "shift count overflow"); | |
15426 | mpz_set_ui(val, 0); | |
15427 | - return true; | |
15428 | } | |
15429 | - if (mpz_cmp_ui(left_val, 0) >= 0) | |
15430 | - mpz_tdiv_q_2exp(val, left_val, shift); | |
15431 | else | |
15432 | - mpz_fdiv_q_2exp(val, left_val, shift); | |
15433 | - is_shift_op = true; | |
15434 | + { | |
15435 | + if (mpz_cmp_ui(left_val, 0) >= 0) | |
15436 | + mpz_tdiv_q_2exp(val, left_val, shift); | |
15437 | + else | |
15438 | + mpz_fdiv_q_2exp(val, left_val, shift); | |
15439 | + } | |
15440 | break; | |
15441 | } | |
15442 | break; | |
15443 | @@ -5067,63 +4598,47 @@ | |
15444 | go_unreachable(); | |
15445 | } | |
15446 | ||
15447 | - Type* type = left_type; | |
15448 | - if (!is_shift_op) | |
15449 | - { | |
15450 | - if (type == NULL) | |
15451 | - type = right_type; | |
15452 | - else if (type != right_type && right_type != NULL) | |
15453 | - { | |
15454 | - if (type->is_abstract()) | |
15455 | - type = right_type; | |
15456 | - else if (!right_type->is_abstract()) | |
15457 | - { | |
15458 | - // This look like a type error which should be diagnosed | |
15459 | - // elsewhere. Don't do anything here, to avoid an | |
15460 | - // unhelpful chain of error messages. | |
15461 | - return true; | |
15462 | - } | |
15463 | - } | |
15464 | - } | |
15465 | + mpz_clear(left_val); | |
15466 | + mpz_clear(right_val); | |
15467 | ||
15468 | - if (type != NULL && !type->is_abstract()) | |
15469 | - { | |
15470 | - // We have to check the operands too, as we have implicitly | |
15471 | - // coerced them to TYPE. | |
15472 | - if ((type != left_type | |
15473 | - && !Integer_expression::check_constant(left_val, type, location)) | |
15474 | - || (!is_shift_op | |
15475 | - && type != right_type | |
15476 | - && !Integer_expression::check_constant(right_val, type, | |
15477 | - location)) | |
15478 | - || !Integer_expression::check_constant(val, type, location)) | |
15479 | - mpz_set_ui(val, 0); | |
15480 | - } | |
15481 | + if (left_nc->is_rune() | |
15482 | + || (op != OPERATOR_LSHIFT | |
15483 | + && op != OPERATOR_RSHIFT | |
15484 | + && right_nc->is_rune())) | |
15485 | + nc->set_rune(NULL, val); | |
15486 | + else | |
15487 | + nc->set_int(NULL, val); | |
15488 | ||
15489 | + mpz_clear(val); | |
15490 | + | |
15491 | return true; | |
15492 | } | |
15493 | ||
15494 | -// Apply binary opcode OP to LEFT_VAL and RIGHT_VAL, setting VAL. | |
15495 | -// Return true if this could be done, false if not. | |
15496 | +// Apply binary opcode OP to LEFT_NC and RIGHT_NC, setting NC, using | |
15497 | +// floating point operations. Return true if this could be done, | |
15498 | +// false if not. | |
15499 | ||
15500 | bool | |
15501 | -Binary_expression::eval_float(Operator op, Type* left_type, mpfr_t left_val, | |
15502 | - Type* right_type, mpfr_t right_val, | |
15503 | - mpfr_t val, Location location) | |
15504 | +Binary_expression::eval_float(Operator op, const Numeric_constant* left_nc, | |
15505 | + const Numeric_constant* right_nc, | |
15506 | + Location location, Numeric_constant* nc) | |
15507 | { | |
15508 | + mpfr_t left_val; | |
15509 | + if (!left_nc->to_float(&left_val)) | |
15510 | + return false; | |
15511 | + mpfr_t right_val; | |
15512 | + if (!right_nc->to_float(&right_val)) | |
15513 | + { | |
15514 | + mpfr_clear(left_val); | |
15515 | + return false; | |
15516 | + } | |
15517 | + | |
15518 | + mpfr_t val; | |
15519 | + mpfr_init(val); | |
15520 | + | |
15521 | + bool ret = true; | |
15522 | switch (op) | |
15523 | { | |
15524 | - case OPERATOR_OROR: | |
15525 | - case OPERATOR_ANDAND: | |
15526 | - case OPERATOR_EQEQ: | |
15527 | - case OPERATOR_NOTEQ: | |
15528 | - case OPERATOR_LT: | |
15529 | - case OPERATOR_LE: | |
15530 | - case OPERATOR_GT: | |
15531 | - case OPERATOR_GE: | |
15532 | - // These return boolean values. We should probably handle them | |
15533 | - // anyhow in case a type conversion is used on the result. | |
15534 | - return false; | |
15535 | case OPERATOR_PLUS: | |
15536 | mpfr_add(val, left_val, right_val, GMP_RNDN); | |
15537 | break; | |
15538 | @@ -5134,78 +4649,64 @@ | |
15539 | case OPERATOR_XOR: | |
15540 | case OPERATOR_AND: | |
15541 | case OPERATOR_BITCLEAR: | |
15542 | - return false; | |
15543 | + case OPERATOR_MOD: | |
15544 | + case OPERATOR_LSHIFT: | |
15545 | + case OPERATOR_RSHIFT: | |
15546 | + mpfr_set_ui(val, 0, GMP_RNDN); | |
15547 | + ret = false; | |
15548 | + break; | |
15549 | case OPERATOR_MULT: | |
15550 | mpfr_mul(val, left_val, right_val, GMP_RNDN); | |
15551 | break; | |
15552 | case OPERATOR_DIV: | |
15553 | - if (mpfr_zero_p(right_val)) | |
15554 | - error_at(location, "division by zero"); | |
15555 | - mpfr_div(val, left_val, right_val, GMP_RNDN); | |
15556 | + if (!mpfr_zero_p(right_val)) | |
15557 | + mpfr_div(val, left_val, right_val, GMP_RNDN); | |
15558 | + else | |
15559 | + { | |
15560 | + error_at(location, "division by zero"); | |
15561 | + mpfr_set_ui(val, 0, GMP_RNDN); | |
15562 | + } | |
15563 | break; | |
15564 | - case OPERATOR_MOD: | |
15565 | - return false; | |
15566 | - case OPERATOR_LSHIFT: | |
15567 | - case OPERATOR_RSHIFT: | |
15568 | - return false; | |
15569 | default: | |
15570 | go_unreachable(); | |
15571 | } | |
15572 | ||
15573 | - Type* type = left_type; | |
15574 | - if (type == NULL) | |
15575 | - type = right_type; | |
15576 | - else if (type != right_type && right_type != NULL) | |
15577 | - { | |
15578 | - if (type->is_abstract()) | |
15579 | - type = right_type; | |
15580 | - else if (!right_type->is_abstract()) | |
15581 | - { | |
15582 | - // This looks like a type error which should be diagnosed | |
15583 | - // elsewhere. Don't do anything here, to avoid an unhelpful | |
15584 | - // chain of error messages. | |
15585 | - return true; | |
15586 | - } | |
15587 | - } | |
15588 | + mpfr_clear(left_val); | |
15589 | + mpfr_clear(right_val); | |
15590 | ||
15591 | - if (type != NULL && !type->is_abstract()) | |
15592 | - { | |
15593 | - if ((type != left_type | |
15594 | - && !Float_expression::check_constant(left_val, type, location)) | |
15595 | - || (type != right_type | |
15596 | - && !Float_expression::check_constant(right_val, type, | |
15597 | - location)) | |
15598 | - || !Float_expression::check_constant(val, type, location)) | |
15599 | - mpfr_set_ui(val, 0, GMP_RNDN); | |
15600 | - } | |
15601 | + nc->set_float(NULL, val); | |
15602 | + mpfr_clear(val); | |
15603 | ||
15604 | - return true; | |
15605 | + return ret; | |
15606 | } | |
15607 | ||
15608 | -// Apply binary opcode OP to LEFT_REAL/LEFT_IMAG and | |
15609 | -// RIGHT_REAL/RIGHT_IMAG, setting REAL/IMAG. Return true if this | |
15610 | -// could be done, false if not. | |
15611 | +// Apply binary opcode OP to LEFT_NC and RIGHT_NC, setting NC, using | |
15612 | +// complex operations. Return true if this could be done, false if | |
15613 | +// not. | |
15614 | ||
15615 | bool | |
15616 | -Binary_expression::eval_complex(Operator op, Type* left_type, | |
15617 | - mpfr_t left_real, mpfr_t left_imag, | |
15618 | - Type *right_type, | |
15619 | - mpfr_t right_real, mpfr_t right_imag, | |
15620 | - mpfr_t real, mpfr_t imag, | |
15621 | - Location location) | |
15622 | +Binary_expression::eval_complex(Operator op, const Numeric_constant* left_nc, | |
15623 | + const Numeric_constant* right_nc, | |
15624 | + Location location, Numeric_constant* nc) | |
15625 | { | |
15626 | + mpfr_t left_real, left_imag; | |
15627 | + if (!left_nc->to_complex(&left_real, &left_imag)) | |
15628 | + return false; | |
15629 | + mpfr_t right_real, right_imag; | |
15630 | + if (!right_nc->to_complex(&right_real, &right_imag)) | |
15631 | + { | |
15632 | + mpfr_clear(left_real); | |
15633 | + mpfr_clear(left_imag); | |
15634 | + return false; | |
15635 | + } | |
15636 | + | |
15637 | + mpfr_t real, imag; | |
15638 | + mpfr_init(real); | |
15639 | + mpfr_init(imag); | |
15640 | + | |
15641 | + bool ret = true; | |
15642 | switch (op) | |
15643 | { | |
15644 | - case OPERATOR_OROR: | |
15645 | - case OPERATOR_ANDAND: | |
15646 | - case OPERATOR_EQEQ: | |
15647 | - case OPERATOR_NOTEQ: | |
15648 | - case OPERATOR_LT: | |
15649 | - case OPERATOR_LE: | |
15650 | - case OPERATOR_GT: | |
15651 | - case OPERATOR_GE: | |
15652 | - // These return boolean values and must be handled differently. | |
15653 | - return false; | |
15654 | case OPERATOR_PLUS: | |
15655 | mpfr_add(real, left_real, right_real, GMP_RNDN); | |
15656 | mpfr_add(imag, left_imag, right_imag, GMP_RNDN); | |
15657 | @@ -5218,7 +4719,13 @@ | |
15658 | case OPERATOR_XOR: | |
15659 | case OPERATOR_AND: | |
15660 | case OPERATOR_BITCLEAR: | |
15661 | - return false; | |
15662 | + case OPERATOR_MOD: | |
15663 | + case OPERATOR_LSHIFT: | |
15664 | + case OPERATOR_RSHIFT: | |
15665 | + mpfr_set_ui(real, 0, GMP_RNDN); | |
15666 | + mpfr_set_ui(imag, 0, GMP_RNDN); | |
15667 | + ret = false; | |
15668 | + break; | |
15669 | case OPERATOR_MULT: | |
15670 | { | |
15671 | // You might think that multiplying two complex numbers would | |
15672 | @@ -5371,7 +4878,12 @@ | |
15673 | // scale the values to try to avoid this. | |
15674 | ||
15675 | if (mpfr_zero_p(right_real) && mpfr_zero_p(right_imag)) | |
15676 | - error_at(location, "division by zero"); | |
15677 | + { | |
15678 | + error_at(location, "division by zero"); | |
15679 | + mpfr_set_ui(real, 0, GMP_RNDN); | |
15680 | + mpfr_set_ui(imag, 0, GMP_RNDN); | |
15681 | + break; | |
15682 | + } | |
15683 | ||
15684 | mpfr_t rra; | |
15685 | mpfr_t ria; | |
15686 | @@ -5502,48 +5014,20 @@ | |
15687 | mpfr_clear(ria); | |
15688 | } | |
15689 | break; | |
15690 | - case OPERATOR_MOD: | |
15691 | - return false; | |
15692 | - case OPERATOR_LSHIFT: | |
15693 | - case OPERATOR_RSHIFT: | |
15694 | - return false; | |
15695 | default: | |
15696 | go_unreachable(); | |
15697 | } | |
15698 | ||
15699 | - Type* type = left_type; | |
15700 | - if (type == NULL) | |
15701 | - type = right_type; | |
15702 | - else if (type != right_type && right_type != NULL) | |
15703 | - { | |
15704 | - if (type->is_abstract()) | |
15705 | - type = right_type; | |
15706 | - else if (!right_type->is_abstract()) | |
15707 | - { | |
15708 | - // This looks like a type error which should be diagnosed | |
15709 | - // elsewhere. Don't do anything here, to avoid an unhelpful | |
15710 | - // chain of error messages. | |
15711 | - return true; | |
15712 | - } | |
15713 | - } | |
15714 | + mpfr_clear(left_real); | |
15715 | + mpfr_clear(left_imag); | |
15716 | + mpfr_clear(right_real); | |
15717 | + mpfr_clear(right_imag); | |
15718 | ||
15719 | - if (type != NULL && !type->is_abstract()) | |
15720 | - { | |
15721 | - if ((type != left_type | |
15722 | - && !Complex_expression::check_constant(left_real, left_imag, | |
15723 | - type, location)) | |
15724 | - || (type != right_type | |
15725 | - && !Complex_expression::check_constant(right_real, right_imag, | |
15726 | - type, location)) | |
15727 | - || !Complex_expression::check_constant(real, imag, type, | |
15728 | - location)) | |
15729 | - { | |
15730 | - mpfr_set_ui(real, 0, GMP_RNDN); | |
15731 | - mpfr_set_ui(imag, 0, GMP_RNDN); | |
15732 | - } | |
15733 | - } | |
15734 | + nc->set_complex(NULL, real, imag); | |
15735 | + mpfr_clear(real); | |
15736 | + mpfr_clear(imag); | |
15737 | ||
15738 | - return true; | |
15739 | + return ret; | |
15740 | } | |
15741 | ||
15742 | // Lower a binary expression. We have to evaluate constant | |
15743 | @@ -5566,290 +5050,36 @@ | |
15744 | || op == OPERATOR_GT | |
15745 | || op == OPERATOR_GE); | |
15746 | ||
15747 | - // Integer constant expressions. | |
15748 | + // Numeric constant expressions. | |
15749 | { | |
15750 | - mpz_t left_val; | |
15751 | - mpz_init(left_val); | |
15752 | - Type* left_type; | |
15753 | - mpz_t right_val; | |
15754 | - mpz_init(right_val); | |
15755 | - Type* right_type; | |
15756 | - if (left->integer_constant_value(false, left_val, &left_type) | |
15757 | - && right->integer_constant_value(false, right_val, &right_type)) | |
15758 | + Numeric_constant left_nc; | |
15759 | + Numeric_constant right_nc; | |
15760 | + if (left->numeric_constant_value(&left_nc) | |
15761 | + && right->numeric_constant_value(&right_nc)) | |
15762 | { | |
15763 | - Expression* ret = NULL; | |
15764 | - if (left_type != right_type | |
15765 | - && left_type != NULL | |
15766 | - && !left_type->is_abstract() | |
15767 | - && right_type != NULL | |
15768 | - && !right_type->is_abstract() | |
15769 | - && left_type->base() != right_type->base() | |
15770 | - && op != OPERATOR_LSHIFT | |
15771 | - && op != OPERATOR_RSHIFT) | |
15772 | + if (is_comparison) | |
15773 | { | |
15774 | - // May be a type error--let it be diagnosed later. | |
15775 | - return this; | |
15776 | + bool result; | |
15777 | + if (!Binary_expression::compare_constant(op, &left_nc, | |
15778 | + &right_nc, location, | |
15779 | + &result)) | |
15780 | + return this; | |
15781 | + return Expression::make_cast(Type::lookup_bool_type(), | |
15782 | + Expression::make_boolean(result, | |
15783 | + location), | |
15784 | + location); | |
15785 | } | |
15786 | - else if (is_comparison) | |
15787 | - { | |
15788 | - bool b = Binary_expression::compare_integer(op, left_val, | |
15789 | - right_val); | |
15790 | - ret = Expression::make_cast(Type::lookup_bool_type(), | |
15791 | - Expression::make_boolean(b, location), | |
15792 | - location); | |
15793 | - } | |
15794 | else | |
15795 | { | |
15796 | - mpz_t val; | |
15797 | - mpz_init(val); | |
15798 | - | |
15799 | - if (Binary_expression::eval_integer(op, left_type, left_val, | |
15800 | - right_type, right_val, | |
15801 | - location, val)) | |
15802 | - { | |
15803 | - go_assert(op != OPERATOR_OROR && op != OPERATOR_ANDAND); | |
15804 | - Type* type; | |
15805 | - if (op == OPERATOR_LSHIFT || op == OPERATOR_RSHIFT) | |
15806 | - type = left_type; | |
15807 | - else if (left_type == NULL) | |
15808 | - type = right_type; | |
15809 | - else if (right_type == NULL) | |
15810 | - type = left_type; | |
15811 | - else if (!left_type->is_abstract() | |
15812 | - && left_type->named_type() != NULL) | |
15813 | - type = left_type; | |
15814 | - else if (!right_type->is_abstract() | |
15815 | - && right_type->named_type() != NULL) | |
15816 | - type = right_type; | |
15817 | - else if (!left_type->is_abstract()) | |
15818 | - type = left_type; | |
15819 | - else if (!right_type->is_abstract()) | |
15820 | - type = right_type; | |
15821 | - else if (left_type->float_type() != NULL) | |
15822 | - type = left_type; | |
15823 | - else if (right_type->float_type() != NULL) | |
15824 | - type = right_type; | |
15825 | - else if (left_type->complex_type() != NULL) | |
15826 | - type = left_type; | |
15827 | - else if (right_type->complex_type() != NULL) | |
15828 | - type = right_type; | |
15829 | - else | |
15830 | - type = left_type; | |
15831 | - | |
15832 | - bool is_character = false; | |
15833 | - if (type == NULL) | |
15834 | - { | |
15835 | - Type* t = this->left_->type(); | |
15836 | - if (t->integer_type() != NULL | |
15837 | - && t->integer_type()->is_rune()) | |
15838 | - is_character = true; | |
15839 | - else if (op != OPERATOR_LSHIFT && op != OPERATOR_RSHIFT) | |
15840 | - { | |
15841 | - t = this->right_->type(); | |
15842 | - if (t->integer_type() != NULL | |
15843 | - && t->integer_type()->is_rune()) | |
15844 | - is_character = true; | |
15845 | - } | |
15846 | - } | |
15847 | - | |
15848 | - if (is_character) | |
15849 | - ret = Expression::make_character(&val, type, location); | |
15850 | - else | |
15851 | - ret = Expression::make_integer(&val, type, location); | |
15852 | - } | |
15853 | - | |
15854 | - mpz_clear(val); | |
15855 | + Numeric_constant nc; | |
15856 | + if (!Binary_expression::eval_constant(op, &left_nc, &right_nc, | |
15857 | + location, &nc)) | |
15858 | + return this; | |
15859 | + return nc.expression(location); | |
15860 | } | |
15861 | - | |
15862 | - if (ret != NULL) | |
15863 | - { | |
15864 | - mpz_clear(right_val); | |
15865 | - mpz_clear(left_val); | |
15866 | - return ret; | |
15867 | - } | |
15868 | } | |
15869 | - mpz_clear(right_val); | |
15870 | - mpz_clear(left_val); | |
15871 | } | |
15872 | ||
15873 | - // Floating point constant expressions. | |
15874 | - { | |
15875 | - mpfr_t left_val; | |
15876 | - mpfr_init(left_val); | |
15877 | - Type* left_type; | |
15878 | - mpfr_t right_val; | |
15879 | - mpfr_init(right_val); | |
15880 | - Type* right_type; | |
15881 | - if (left->float_constant_value(left_val, &left_type) | |
15882 | - && right->float_constant_value(right_val, &right_type)) | |
15883 | - { | |
15884 | - Expression* ret = NULL; | |
15885 | - if (left_type != right_type | |
15886 | - && left_type != NULL | |
15887 | - && right_type != NULL | |
15888 | - && left_type->base() != right_type->base() | |
15889 | - && op != OPERATOR_LSHIFT | |
15890 | - && op != OPERATOR_RSHIFT) | |
15891 | - { | |
15892 | - // May be a type error--let it be diagnosed later. | |
15893 | - return this; | |
15894 | - } | |
15895 | - else if (is_comparison) | |
15896 | - { | |
15897 | - bool b = Binary_expression::compare_float(op, | |
15898 | - (left_type != NULL | |
15899 | - ? left_type | |
15900 | - : right_type), | |
15901 | - left_val, right_val); | |
15902 | - ret = Expression::make_boolean(b, location); | |
15903 | - } | |
15904 | - else | |
15905 | - { | |
15906 | - mpfr_t val; | |
15907 | - mpfr_init(val); | |
15908 | - | |
15909 | - if (Binary_expression::eval_float(op, left_type, left_val, | |
15910 | - right_type, right_val, val, | |
15911 | - location)) | |
15912 | - { | |
15913 | - go_assert(op != OPERATOR_OROR && op != OPERATOR_ANDAND | |
15914 | - && op != OPERATOR_LSHIFT && op != OPERATOR_RSHIFT); | |
15915 | - Type* type; | |
15916 | - if (left_type == NULL) | |
15917 | - type = right_type; | |
15918 | - else if (right_type == NULL) | |
15919 | - type = left_type; | |
15920 | - else if (!left_type->is_abstract() | |
15921 | - && left_type->named_type() != NULL) | |
15922 | - type = left_type; | |
15923 | - else if (!right_type->is_abstract() | |
15924 | - && right_type->named_type() != NULL) | |
15925 | - type = right_type; | |
15926 | - else if (!left_type->is_abstract()) | |
15927 | - type = left_type; | |
15928 | - else if (!right_type->is_abstract()) | |
15929 | - type = right_type; | |
15930 | - else if (left_type->float_type() != NULL) | |
15931 | - type = left_type; | |
15932 | - else if (right_type->float_type() != NULL) | |
15933 | - type = right_type; | |
15934 | - else | |
15935 | - type = left_type; | |
15936 | - ret = Expression::make_float(&val, type, location); | |
15937 | - } | |
15938 | - | |
15939 | - mpfr_clear(val); | |
15940 | - } | |
15941 | - | |
15942 | - if (ret != NULL) | |
15943 | - { | |
15944 | - mpfr_clear(right_val); | |
15945 | - mpfr_clear(left_val); | |
15946 | - return ret; | |
15947 | - } | |
15948 | - } | |
15949 | - mpfr_clear(right_val); | |
15950 | - mpfr_clear(left_val); | |
15951 | - } | |
15952 | - | |
15953 | - // Complex constant expressions. | |
15954 | - { | |
15955 | - mpfr_t left_real; | |
15956 | - mpfr_t left_imag; | |
15957 | - mpfr_init(left_real); | |
15958 | - mpfr_init(left_imag); | |
15959 | - Type* left_type; | |
15960 | - | |
15961 | - mpfr_t right_real; | |
15962 | - mpfr_t right_imag; | |
15963 | - mpfr_init(right_real); | |
15964 | - mpfr_init(right_imag); | |
15965 | - Type* right_type; | |
15966 | - | |
15967 | - if (left->complex_constant_value(left_real, left_imag, &left_type) | |
15968 | - && right->complex_constant_value(right_real, right_imag, &right_type)) | |
15969 | - { | |
15970 | - Expression* ret = NULL; | |
15971 | - if (left_type != right_type | |
15972 | - && left_type != NULL | |
15973 | - && right_type != NULL | |
15974 | - && left_type->base() != right_type->base()) | |
15975 | - { | |
15976 | - // May be a type error--let it be diagnosed later. | |
15977 | - return this; | |
15978 | - } | |
15979 | - else if (op == OPERATOR_EQEQ || op == OPERATOR_NOTEQ) | |
15980 | - { | |
15981 | - bool b = Binary_expression::compare_complex(op, | |
15982 | - (left_type != NULL | |
15983 | - ? left_type | |
15984 | - : right_type), | |
15985 | - left_real, | |
15986 | - left_imag, | |
15987 | - right_real, | |
15988 | - right_imag); | |
15989 | - ret = Expression::make_boolean(b, location); | |
15990 | - } | |
15991 | - else | |
15992 | - { | |
15993 | - mpfr_t real; | |
15994 | - mpfr_t imag; | |
15995 | - mpfr_init(real); | |
15996 | - mpfr_init(imag); | |
15997 | - | |
15998 | - if (Binary_expression::eval_complex(op, left_type, | |
15999 | - left_real, left_imag, | |
16000 | - right_type, | |
16001 | - right_real, right_imag, | |
16002 | - real, imag, | |
16003 | - location)) | |
16004 | - { | |
16005 | - go_assert(op != OPERATOR_OROR && op != OPERATOR_ANDAND | |
16006 | - && op != OPERATOR_LSHIFT && op != OPERATOR_RSHIFT); | |
16007 | - Type* type; | |
16008 | - if (left_type == NULL) | |
16009 | - type = right_type; | |
16010 | - else if (right_type == NULL) | |
16011 | - type = left_type; | |
16012 | - else if (!left_type->is_abstract() | |
16013 | - && left_type->named_type() != NULL) | |
16014 | - type = left_type; | |
16015 | - else if (!right_type->is_abstract() | |
16016 | - && right_type->named_type() != NULL) | |
16017 | - type = right_type; | |
16018 | - else if (!left_type->is_abstract()) | |
16019 | - type = left_type; | |
16020 | - else if (!right_type->is_abstract()) | |
16021 | - type = right_type; | |
16022 | - else if (left_type->complex_type() != NULL) | |
16023 | - type = left_type; | |
16024 | - else if (right_type->complex_type() != NULL) | |
16025 | - type = right_type; | |
16026 | - else | |
16027 | - type = left_type; | |
16028 | - ret = Expression::make_complex(&real, &imag, type, | |
16029 | - location); | |
16030 | - } | |
16031 | - mpfr_clear(real); | |
16032 | - mpfr_clear(imag); | |
16033 | - } | |
16034 | - | |
16035 | - if (ret != NULL) | |
16036 | - { | |
16037 | - mpfr_clear(left_real); | |
16038 | - mpfr_clear(left_imag); | |
16039 | - mpfr_clear(right_real); | |
16040 | - mpfr_clear(right_imag); | |
16041 | - return ret; | |
16042 | - } | |
16043 | - } | |
16044 | - | |
16045 | - mpfr_clear(left_real); | |
16046 | - mpfr_clear(left_imag); | |
16047 | - mpfr_clear(right_real); | |
16048 | - mpfr_clear(right_imag); | |
16049 | - } | |
16050 | - | |
16051 | // String constant expressions. | |
16052 | if (left->type()->is_string_type() && right->type()->is_string_type()) | |
16053 | { | |
16054 | @@ -5864,79 +5094,15 @@ | |
16055 | else if (is_comparison) | |
16056 | { | |
16057 | int cmp = left_string.compare(right_string); | |
16058 | - bool r; | |
16059 | - switch (op) | |
16060 | - { | |
16061 | - case OPERATOR_EQEQ: | |
16062 | - r = cmp == 0; | |
16063 | - break; | |
16064 | - case OPERATOR_NOTEQ: | |
16065 | - r = cmp != 0; | |
16066 | - break; | |
16067 | - case OPERATOR_LT: | |
16068 | - r = cmp < 0; | |
16069 | - break; | |
16070 | - case OPERATOR_LE: | |
16071 | - r = cmp <= 0; | |
16072 | - break; | |
16073 | - case OPERATOR_GT: | |
16074 | - r = cmp > 0; | |
16075 | - break; | |
16076 | - case OPERATOR_GE: | |
16077 | - r = cmp >= 0; | |
16078 | - break; | |
16079 | - default: | |
16080 | - go_unreachable(); | |
16081 | - } | |
16082 | - return Expression::make_boolean(r, location); | |
16083 | + bool r = Binary_expression::cmp_to_bool(op, cmp); | |
16084 | + return Expression::make_cast(Type::lookup_bool_type(), | |
16085 | + Expression::make_boolean(r, | |
16086 | + location), | |
16087 | + location); | |
16088 | } | |
16089 | } | |
16090 | } | |
16091 | ||
16092 | - // Special case for shift of a floating point constant. | |
16093 | - if (op == OPERATOR_LSHIFT || op == OPERATOR_RSHIFT) | |
16094 | - { | |
16095 | - mpfr_t left_val; | |
16096 | - mpfr_init(left_val); | |
16097 | - Type* left_type; | |
16098 | - mpz_t right_val; | |
16099 | - mpz_init(right_val); | |
16100 | - Type* right_type; | |
16101 | - if (left->float_constant_value(left_val, &left_type) | |
16102 | - && right->integer_constant_value(false, right_val, &right_type) | |
16103 | - && mpfr_integer_p(left_val) | |
16104 | - && (left_type == NULL | |
16105 | - || left_type->is_abstract() | |
16106 | - || left_type->integer_type() != NULL)) | |
16107 | - { | |
16108 | - mpz_t left_int; | |
16109 | - mpz_init(left_int); | |
16110 | - mpfr_get_z(left_int, left_val, GMP_RNDN); | |
16111 | - | |
16112 | - mpz_t val; | |
16113 | - mpz_init(val); | |
16114 | - | |
16115 | - Expression* ret = NULL; | |
16116 | - if (Binary_expression::eval_integer(op, left_type, left_int, | |
16117 | - right_type, right_val, | |
16118 | - location, val)) | |
16119 | - ret = Expression::make_integer(&val, left_type, location); | |
16120 | - | |
16121 | - mpz_clear(left_int); | |
16122 | - mpz_clear(val); | |
16123 | - | |
16124 | - if (ret != NULL) | |
16125 | - { | |
16126 | - mpfr_clear(left_val); | |
16127 | - mpz_clear(right_val); | |
16128 | - return ret; | |
16129 | - } | |
16130 | - } | |
16131 | - | |
16132 | - mpfr_clear(left_val); | |
16133 | - mpz_clear(right_val); | |
16134 | - } | |
16135 | - | |
16136 | // Lower struct and array comparisons. | |
16137 | if (op == OPERATOR_EQEQ || op == OPERATOR_NOTEQ) | |
16138 | { | |
16139 | @@ -6114,156 +5280,32 @@ | |
16140 | return Expression::make_cast(unsafe_pointer_type, expr, loc); | |
16141 | } | |
16142 | ||
16143 | -// Return the integer constant value, if it has one. | |
16144 | +// Return the numeric constant value, if it has one. | |
16145 | ||
16146 | bool | |
16147 | -Binary_expression::do_integer_constant_value(bool iota_is_constant, mpz_t val, | |
16148 | - Type** ptype) const | |
16149 | +Binary_expression::do_numeric_constant_value(Numeric_constant* nc) const | |
16150 | { | |
16151 | - mpz_t left_val; | |
16152 | - mpz_init(left_val); | |
16153 | - Type* left_type; | |
16154 | - if (!this->left_->integer_constant_value(iota_is_constant, left_val, | |
16155 | - &left_type)) | |
16156 | - { | |
16157 | - mpz_clear(left_val); | |
16158 | - return false; | |
16159 | - } | |
16160 | + Operator op = this->op_; | |
16161 | ||
16162 | - mpz_t right_val; | |
16163 | - mpz_init(right_val); | |
16164 | - Type* right_type; | |
16165 | - if (!this->right_->integer_constant_value(iota_is_constant, right_val, | |
16166 | - &right_type)) | |
16167 | - { | |
16168 | - mpz_clear(right_val); | |
16169 | - mpz_clear(left_val); | |
16170 | - return false; | |
16171 | - } | |
16172 | + if (op == OPERATOR_EQEQ | |
16173 | + || op == OPERATOR_NOTEQ | |
16174 | + || op == OPERATOR_LT | |
16175 | + || op == OPERATOR_LE | |
16176 | + || op == OPERATOR_GT | |
16177 | + || op == OPERATOR_GE) | |
16178 | + return false; | |
16179 | ||
16180 | - bool ret; | |
16181 | - if (left_type != right_type | |
16182 | - && left_type != NULL | |
16183 | - && right_type != NULL | |
16184 | - && left_type->base() != right_type->base() | |
16185 | - && this->op_ != OPERATOR_RSHIFT | |
16186 | - && this->op_ != OPERATOR_LSHIFT) | |
16187 | - ret = false; | |
16188 | - else | |
16189 | - ret = Binary_expression::eval_integer(this->op_, left_type, left_val, | |
16190 | - right_type, right_val, | |
16191 | - this->location(), val); | |
16192 | + Numeric_constant left_nc; | |
16193 | + if (!this->left_->numeric_constant_value(&left_nc)) | |
16194 | + return false; | |
16195 | + Numeric_constant right_nc; | |
16196 | + if (!this->right_->numeric_constant_value(&right_nc)) | |
16197 | + return false; | |
16198 | ||
16199 | - mpz_clear(right_val); | |
16200 | - mpz_clear(left_val); | |
16201 | - | |
16202 | - if (ret) | |
16203 | - *ptype = left_type; | |
16204 | - | |
16205 | - return ret; | |
16206 | + return Binary_expression::eval_constant(op, &left_nc, &right_nc, | |
16207 | + this->location(), nc); | |
16208 | } | |
16209 | ||
16210 | -// Return the floating point constant value, if it has one. | |
16211 | - | |
16212 | -bool | |
16213 | -Binary_expression::do_float_constant_value(mpfr_t val, Type** ptype) const | |
16214 | -{ | |
16215 | - mpfr_t left_val; | |
16216 | - mpfr_init(left_val); | |
16217 | - Type* left_type; | |
16218 | - if (!this->left_->float_constant_value(left_val, &left_type)) | |
16219 | - { | |
16220 | - mpfr_clear(left_val); | |
16221 | - return false; | |
16222 | - } | |
16223 | - | |
16224 | - mpfr_t right_val; | |
16225 | - mpfr_init(right_val); | |
16226 | - Type* right_type; | |
16227 | - if (!this->right_->float_constant_value(right_val, &right_type)) | |
16228 | - { | |
16229 | - mpfr_clear(right_val); | |
16230 | - mpfr_clear(left_val); | |
16231 | - return false; | |
16232 | - } | |
16233 | - | |
16234 | - bool ret; | |
16235 | - if (left_type != right_type | |
16236 | - && left_type != NULL | |
16237 | - && right_type != NULL | |
16238 | - && left_type->base() != right_type->base()) | |
16239 | - ret = false; | |
16240 | - else | |
16241 | - ret = Binary_expression::eval_float(this->op_, left_type, left_val, | |
16242 | - right_type, right_val, | |
16243 | - val, this->location()); | |
16244 | - | |
16245 | - mpfr_clear(left_val); | |
16246 | - mpfr_clear(right_val); | |
16247 | - | |
16248 | - if (ret) | |
16249 | - *ptype = left_type; | |
16250 | - | |
16251 | - return ret; | |
16252 | -} | |
16253 | - | |
16254 | -// Return the complex constant value, if it has one. | |
16255 | - | |
16256 | -bool | |
16257 | -Binary_expression::do_complex_constant_value(mpfr_t real, mpfr_t imag, | |
16258 | - Type** ptype) const | |
16259 | -{ | |
16260 | - mpfr_t left_real; | |
16261 | - mpfr_t left_imag; | |
16262 | - mpfr_init(left_real); | |
16263 | - mpfr_init(left_imag); | |
16264 | - Type* left_type; | |
16265 | - if (!this->left_->complex_constant_value(left_real, left_imag, &left_type)) | |
16266 | - { | |
16267 | - mpfr_clear(left_real); | |
16268 | - mpfr_clear(left_imag); | |
16269 | - return false; | |
16270 | - } | |
16271 | - | |
16272 | - mpfr_t right_real; | |
16273 | - mpfr_t right_imag; | |
16274 | - mpfr_init(right_real); | |
16275 | - mpfr_init(right_imag); | |
16276 | - Type* right_type; | |
16277 | - if (!this->right_->complex_constant_value(right_real, right_imag, | |
16278 | - &right_type)) | |
16279 | - { | |
16280 | - mpfr_clear(left_real); | |
16281 | - mpfr_clear(left_imag); | |
16282 | - mpfr_clear(right_real); | |
16283 | - mpfr_clear(right_imag); | |
16284 | - return false; | |
16285 | - } | |
16286 | - | |
16287 | - bool ret; | |
16288 | - if (left_type != right_type | |
16289 | - && left_type != NULL | |
16290 | - && right_type != NULL | |
16291 | - && left_type->base() != right_type->base()) | |
16292 | - ret = false; | |
16293 | - else | |
16294 | - ret = Binary_expression::eval_complex(this->op_, left_type, | |
16295 | - left_real, left_imag, | |
16296 | - right_type, | |
16297 | - right_real, right_imag, | |
16298 | - real, imag, | |
16299 | - this->location()); | |
16300 | - mpfr_clear(left_real); | |
16301 | - mpfr_clear(left_imag); | |
16302 | - mpfr_clear(right_real); | |
16303 | - mpfr_clear(right_imag); | |
16304 | - | |
16305 | - if (ret) | |
16306 | - *ptype = left_type; | |
16307 | - | |
16308 | - return ret; | |
16309 | -} | |
16310 | - | |
16311 | // Note that the value is being discarded. | |
16312 | ||
16313 | void | |
16314 | @@ -6305,41 +5347,13 @@ | |
16315 | case OPERATOR_AND: | |
16316 | case OPERATOR_BITCLEAR: | |
16317 | { | |
16318 | - Type* left_type = this->left_->type(); | |
16319 | - Type* right_type = this->right_->type(); | |
16320 | - if (left_type->is_error()) | |
16321 | - return left_type; | |
16322 | - else if (right_type->is_error()) | |
16323 | - return right_type; | |
16324 | - else if (!Type::are_compatible_for_binop(left_type, right_type)) | |
16325 | - { | |
16326 | - this->report_error(_("incompatible types in binary expression")); | |
16327 | - return Type::make_error_type(); | |
16328 | - } | |
16329 | - else if (!left_type->is_abstract() && left_type->named_type() != NULL) | |
16330 | - return left_type; | |
16331 | - else if (!right_type->is_abstract() && right_type->named_type() != NULL) | |
16332 | - return right_type; | |
16333 | - else if (!left_type->is_abstract()) | |
16334 | - return left_type; | |
16335 | - else if (!right_type->is_abstract()) | |
16336 | - return right_type; | |
16337 | - else if (left_type->complex_type() != NULL) | |
16338 | - return left_type; | |
16339 | - else if (right_type->complex_type() != NULL) | |
16340 | - return right_type; | |
16341 | - else if (left_type->float_type() != NULL) | |
16342 | - return left_type; | |
16343 | - else if (right_type->float_type() != NULL) | |
16344 | - return right_type; | |
16345 | - else if (left_type->integer_type() != NULL | |
16346 | - && left_type->integer_type()->is_rune()) | |
16347 | - return left_type; | |
16348 | - else if (right_type->integer_type() != NULL | |
16349 | - && right_type->integer_type()->is_rune()) | |
16350 | - return right_type; | |
16351 | - else | |
16352 | - return left_type; | |
16353 | + Type* type; | |
16354 | + if (!Binary_expression::operation_type(this->op_, | |
16355 | + this->left_->type(), | |
16356 | + this->right_->type(), | |
16357 | + &type)) | |
16358 | + return Type::make_error_type(); | |
16359 | + return type; | |
16360 | } | |
16361 | ||
16362 | case OPERATOR_LSHIFT: | |
16363 | @@ -6604,21 +5618,25 @@ | |
16364 | this->report_error(_("shift count not unsigned integer")); | |
16365 | else | |
16366 | { | |
16367 | - mpz_t val; | |
16368 | - mpz_init(val); | |
16369 | - Type* type; | |
16370 | - if (this->right_->integer_constant_value(true, val, &type)) | |
16371 | + Numeric_constant nc; | |
16372 | + if (this->right_->numeric_constant_value(&nc)) | |
16373 | { | |
16374 | - if (mpz_sgn(val) < 0) | |
16375 | + mpz_t val; | |
16376 | + if (!nc.to_int(&val)) | |
16377 | + this->report_error(_("shift count not unsigned integer")); | |
16378 | + else | |
16379 | { | |
16380 | - this->report_error(_("negative shift count")); | |
16381 | - mpz_set_ui(val, 0); | |
16382 | - Location rloc = this->right_->location(); | |
16383 | - this->right_ = Expression::make_integer(&val, right_type, | |
16384 | - rloc); | |
16385 | + if (mpz_sgn(val) < 0) | |
16386 | + { | |
16387 | + this->report_error(_("negative shift count")); | |
16388 | + mpz_set_ui(val, 0); | |
16389 | + Location rloc = this->right_->location(); | |
16390 | + this->right_ = Expression::make_integer(&val, right_type, | |
16391 | + rloc); | |
16392 | + } | |
16393 | + mpz_clear(val); | |
16394 | } | |
16395 | } | |
16396 | - mpz_clear(val); | |
16397 | } | |
16398 | } | |
16399 | } | |
16400 | @@ -6637,6 +5655,7 @@ | |
16401 | enum tree_code code; | |
16402 | bool use_left_type = true; | |
16403 | bool is_shift_op = false; | |
16404 | + bool is_idiv_op = false; | |
16405 | switch (this->op_) | |
16406 | { | |
16407 | case OPERATOR_EQEQ: | |
16408 | @@ -6679,11 +5698,15 @@ | |
16409 | if (t->float_type() != NULL || t->complex_type() != NULL) | |
16410 | code = RDIV_EXPR; | |
16411 | else | |
16412 | - code = TRUNC_DIV_EXPR; | |
16413 | + { | |
16414 | + code = TRUNC_DIV_EXPR; | |
16415 | + is_idiv_op = true; | |
16416 | + } | |
16417 | } | |
16418 | break; | |
16419 | case OPERATOR_MOD: | |
16420 | code = TRUNC_MOD_EXPR; | |
16421 | + is_idiv_op = true; | |
16422 | break; | |
16423 | case OPERATOR_LSHIFT: | |
16424 | code = LSHIFT_EXPR; | |
16425 | @@ -6704,6 +5727,7 @@ | |
16426 | go_unreachable(); | |
16427 | } | |
16428 | ||
16429 | + location_t gccloc = this->location().gcc_location(); | |
16430 | tree type = use_left_type ? TREE_TYPE(left) : TREE_TYPE(right); | |
16431 | ||
16432 | if (this->left_->type()->is_string_type()) | |
16433 | @@ -6731,28 +5755,27 @@ | |
16434 | } | |
16435 | ||
16436 | tree eval_saved = NULL_TREE; | |
16437 | - if (is_shift_op) | |
16438 | + if (is_shift_op | |
16439 | + || (is_idiv_op && (go_check_divide_zero || go_check_divide_overflow))) | |
16440 | { | |
16441 | // Make sure the values are evaluated. | |
16442 | - if (!DECL_P(left) && TREE_SIDE_EFFECTS(left)) | |
16443 | + if (!DECL_P(left)) | |
16444 | { | |
16445 | left = save_expr(left); | |
16446 | eval_saved = left; | |
16447 | } | |
16448 | - if (!DECL_P(right) && TREE_SIDE_EFFECTS(right)) | |
16449 | + if (!DECL_P(right)) | |
16450 | { | |
16451 | right = save_expr(right); | |
16452 | if (eval_saved == NULL_TREE) | |
16453 | eval_saved = right; | |
16454 | else | |
16455 | - eval_saved = fold_build2_loc(this->location().gcc_location(), | |
16456 | - COMPOUND_EXPR, | |
16457 | + eval_saved = fold_build2_loc(gccloc, COMPOUND_EXPR, | |
16458 | void_type_node, eval_saved, right); | |
16459 | } | |
16460 | } | |
16461 | ||
16462 | - tree ret = fold_build2_loc(this->location().gcc_location(), | |
16463 | - code, | |
16464 | + tree ret = fold_build2_loc(gccloc, code, | |
16465 | compute_type != NULL_TREE ? compute_type : type, | |
16466 | left, right); | |
16467 | ||
16468 | @@ -6770,41 +5793,118 @@ | |
16469 | tree compare = fold_build2(LT_EXPR, boolean_type_node, right, | |
16470 | build_int_cst_type(TREE_TYPE(right), bits)); | |
16471 | ||
16472 | - tree overflow_result = fold_convert_loc(this->location().gcc_location(), | |
16473 | - TREE_TYPE(left), | |
16474 | + tree overflow_result = fold_convert_loc(gccloc, TREE_TYPE(left), | |
16475 | integer_zero_node); | |
16476 | if (this->op_ == OPERATOR_RSHIFT | |
16477 | && !this->left_->type()->integer_type()->is_unsigned()) | |
16478 | { | |
16479 | tree neg = | |
16480 | - fold_build2_loc(this->location().gcc_location(), LT_EXPR, | |
16481 | - boolean_type_node, left, | |
16482 | - fold_convert_loc(this->location().gcc_location(), | |
16483 | - TREE_TYPE(left), | |
16484 | + fold_build2_loc(gccloc, LT_EXPR, boolean_type_node, | |
16485 | + left, | |
16486 | + fold_convert_loc(gccloc, TREE_TYPE(left), | |
16487 | integer_zero_node)); | |
16488 | tree neg_one = | |
16489 | - fold_build2_loc(this->location().gcc_location(), | |
16490 | - MINUS_EXPR, TREE_TYPE(left), | |
16491 | - fold_convert_loc(this->location().gcc_location(), | |
16492 | - TREE_TYPE(left), | |
16493 | + fold_build2_loc(gccloc, MINUS_EXPR, TREE_TYPE(left), | |
16494 | + fold_convert_loc(gccloc, TREE_TYPE(left), | |
16495 | integer_zero_node), | |
16496 | - fold_convert_loc(this->location().gcc_location(), | |
16497 | - TREE_TYPE(left), | |
16498 | + fold_convert_loc(gccloc, TREE_TYPE(left), | |
16499 | integer_one_node)); | |
16500 | overflow_result = | |
16501 | - fold_build3_loc(this->location().gcc_location(), COND_EXPR, | |
16502 | - TREE_TYPE(left), neg, neg_one, | |
16503 | - overflow_result); | |
16504 | + fold_build3_loc(gccloc, COND_EXPR, TREE_TYPE(left), | |
16505 | + neg, neg_one, overflow_result); | |
16506 | } | |
16507 | ||
16508 | - ret = fold_build3_loc(this->location().gcc_location(), COND_EXPR, | |
16509 | - TREE_TYPE(left), compare, ret, overflow_result); | |
16510 | + ret = fold_build3_loc(gccloc, COND_EXPR, TREE_TYPE(left), | |
16511 | + compare, ret, overflow_result); | |
16512 | ||
16513 | if (eval_saved != NULL_TREE) | |
16514 | - ret = fold_build2_loc(this->location().gcc_location(), COMPOUND_EXPR, | |
16515 | - TREE_TYPE(ret), eval_saved, ret); | |
16516 | + ret = fold_build2_loc(gccloc, COMPOUND_EXPR, TREE_TYPE(ret), | |
16517 | + eval_saved, ret); | |
16518 | } | |
16519 | ||
16520 | + // Add checks for division by zero and division overflow as needed. | |
16521 | + if (is_idiv_op) | |
16522 | + { | |
16523 | + if (go_check_divide_zero) | |
16524 | + { | |
16525 | + // right == 0 | |
16526 | + tree check = fold_build2_loc(gccloc, EQ_EXPR, boolean_type_node, | |
16527 | + right, | |
16528 | + fold_convert_loc(gccloc, | |
16529 | + TREE_TYPE(right), | |
16530 | + integer_zero_node)); | |
16531 | + | |
16532 | + // __go_runtime_error(RUNTIME_ERROR_DIVISION_BY_ZERO), 0 | |
16533 | + int errcode = RUNTIME_ERROR_DIVISION_BY_ZERO; | |
16534 | + tree panic = fold_build2_loc(gccloc, COMPOUND_EXPR, TREE_TYPE(ret), | |
16535 | + Gogo::runtime_error(errcode, | |
16536 | + this->location()), | |
16537 | + fold_convert_loc(gccloc, TREE_TYPE(ret), | |
16538 | + integer_zero_node)); | |
16539 | + | |
16540 | + // right == 0 ? (__go_runtime_error(...), 0) : ret | |
16541 | + ret = fold_build3_loc(gccloc, COND_EXPR, TREE_TYPE(ret), | |
16542 | + check, panic, ret); | |
16543 | + } | |
16544 | + | |
16545 | + if (go_check_divide_overflow) | |
16546 | + { | |
16547 | + // right == -1 | |
16548 | + // FIXME: It would be nice to say that this test is expected | |
16549 | + // to return false. | |
16550 | + tree m1 = integer_minus_one_node; | |
16551 | + tree check = fold_build2_loc(gccloc, EQ_EXPR, boolean_type_node, | |
16552 | + right, | |
16553 | + fold_convert_loc(gccloc, | |
16554 | + TREE_TYPE(right), | |
16555 | + m1)); | |
16556 | + | |
16557 | + tree overflow; | |
16558 | + if (TYPE_UNSIGNED(TREE_TYPE(ret))) | |
16559 | + { | |
16560 | + // An unsigned -1 is the largest possible number, so | |
16561 | + // dividing is always 1 or 0. | |
16562 | + tree cmp = fold_build2_loc(gccloc, EQ_EXPR, boolean_type_node, | |
16563 | + left, right); | |
16564 | + if (this->op_ == OPERATOR_DIV) | |
16565 | + overflow = fold_build3_loc(gccloc, COND_EXPR, TREE_TYPE(ret), | |
16566 | + cmp, | |
16567 | + fold_convert_loc(gccloc, | |
16568 | + TREE_TYPE(ret), | |
16569 | + integer_one_node), | |
16570 | + fold_convert_loc(gccloc, | |
16571 | + TREE_TYPE(ret), | |
16572 | + integer_zero_node)); | |
16573 | + else | |
16574 | + overflow = fold_build3_loc(gccloc, COND_EXPR, TREE_TYPE(ret), | |
16575 | + cmp, | |
16576 | + fold_convert_loc(gccloc, | |
16577 | + TREE_TYPE(ret), | |
16578 | + integer_zero_node), | |
16579 | + left); | |
16580 | + } | |
16581 | + else | |
16582 | + { | |
16583 | + // Computing left / -1 is the same as computing - left, | |
16584 | + // which does not overflow since Go sets -fwrapv. | |
16585 | + if (this->op_ == OPERATOR_DIV) | |
16586 | + overflow = fold_build1_loc(gccloc, NEGATE_EXPR, TREE_TYPE(left), | |
16587 | + left); | |
16588 | + else | |
16589 | + overflow = integer_zero_node; | |
16590 | + } | |
16591 | + overflow = fold_convert_loc(gccloc, TREE_TYPE(ret), overflow); | |
16592 | + | |
16593 | + // right == -1 ? - left : ret | |
16594 | + ret = fold_build3_loc(gccloc, COND_EXPR, TREE_TYPE(ret), | |
16595 | + check, overflow, ret); | |
16596 | + } | |
16597 | + | |
16598 | + if (eval_saved != NULL_TREE) | |
16599 | + ret = fold_build2_loc(gccloc, COMPOUND_EXPR, TREE_TYPE(ret), | |
16600 | + eval_saved, ret); | |
16601 | + } | |
16602 | + | |
16603 | return ret; | |
16604 | } | |
16605 | ||
16606 | @@ -7390,14 +6490,8 @@ | |
16607 | do_is_constant() const; | |
16608 | ||
16609 | bool | |
16610 | - do_integer_constant_value(bool, mpz_t, Type**) const; | |
16611 | + do_numeric_constant_value(Numeric_constant*) const; | |
16612 | ||
16613 | - bool | |
16614 | - do_float_constant_value(mpfr_t, Type**) const; | |
16615 | - | |
16616 | - bool | |
16617 | - do_complex_constant_value(mpfr_t, mpfr_t, Type**) const; | |
16618 | - | |
16619 | void | |
16620 | do_discarding_value(); | |
16621 | ||
16622 | @@ -7619,7 +6713,7 @@ | |
16623 | if (this->code_ == BUILTIN_LEN || this->code_ == BUILTIN_CAP) | |
16624 | { | |
16625 | Expression* arg = this->one_arg(); | |
16626 | - if (!arg->is_constant()) | |
16627 | + if (arg != NULL && !arg->is_constant()) | |
16628 | { | |
16629 | Find_call_expression find_call; | |
16630 | Expression::traverse(&arg, &find_call); | |
16631 | @@ -7628,37 +6722,9 @@ | |
16632 | } | |
16633 | } | |
16634 | ||
16635 | - mpz_t ival; | |
16636 | - mpz_init(ival); | |
16637 | - Type* type; | |
16638 | - if (this->integer_constant_value(true, ival, &type)) | |
16639 | - { | |
16640 | - Expression* ret = Expression::make_integer(&ival, type, loc); | |
16641 | - mpz_clear(ival); | |
16642 | - return ret; | |
16643 | - } | |
16644 | - mpz_clear(ival); | |
16645 | - | |
16646 | - mpfr_t rval; | |
16647 | - mpfr_init(rval); | |
16648 | - if (this->float_constant_value(rval, &type)) | |
16649 | - { | |
16650 | - Expression* ret = Expression::make_float(&rval, type, loc); | |
16651 | - mpfr_clear(rval); | |
16652 | - return ret; | |
16653 | - } | |
16654 | - | |
16655 | - mpfr_t imag; | |
16656 | - mpfr_init(imag); | |
16657 | - if (this->complex_constant_value(rval, imag, &type)) | |
16658 | - { | |
16659 | - Expression* ret = Expression::make_complex(&rval, &imag, type, loc); | |
16660 | - mpfr_clear(rval); | |
16661 | - mpfr_clear(imag); | |
16662 | - return ret; | |
16663 | - } | |
16664 | - mpfr_clear(rval); | |
16665 | - mpfr_clear(imag); | |
16666 | + Numeric_constant nc; | |
16667 | + if (this->numeric_constant_value(&nc)) | |
16668 | + return nc.expression(loc); | |
16669 | } | |
16670 | ||
16671 | switch (this->code_) | |
16672 | @@ -7906,43 +6972,14 @@ | |
16673 | return true; | |
16674 | ||
16675 | // Check for a floating point constant with integer value. | |
16676 | - mpfr_t fval; | |
16677 | - mpfr_init(fval); | |
16678 | - | |
16679 | - Type* dummy; | |
16680 | - if (e->float_constant_value(fval, &dummy) && mpfr_integer_p(fval)) | |
16681 | + Numeric_constant nc; | |
16682 | + mpz_t ival; | |
16683 | + if (e->numeric_constant_value(&nc) && nc.to_int(&ival)) | |
16684 | { | |
16685 | - mpz_t ival; | |
16686 | - mpz_init(ival); | |
16687 | - | |
16688 | - bool ok = false; | |
16689 | - | |
16690 | - mpfr_clear_overflow(); | |
16691 | - mpfr_clear_erangeflag(); | |
16692 | - mpfr_get_z(ival, fval, GMP_RNDN); | |
16693 | - if (!mpfr_overflow_p() | |
16694 | - && !mpfr_erangeflag_p() | |
16695 | - && mpz_sgn(ival) >= 0) | |
16696 | - { | |
16697 | - Named_type* ntype = Type::lookup_integer_type("int"); | |
16698 | - Integer_type* inttype = ntype->integer_type(); | |
16699 | - mpz_t max; | |
16700 | - mpz_init_set_ui(max, 1); | |
16701 | - mpz_mul_2exp(max, max, inttype->bits() - 1); | |
16702 | - ok = mpz_cmp(ival, max) < 0; | |
16703 | - mpz_clear(max); | |
16704 | - } | |
16705 | mpz_clear(ival); | |
16706 | - | |
16707 | - if (ok) | |
16708 | - { | |
16709 | - mpfr_clear(fval); | |
16710 | - return true; | |
16711 | - } | |
16712 | + return true; | |
16713 | } | |
16714 | ||
16715 | - mpfr_clear(fval); | |
16716 | - | |
16717 | return false; | |
16718 | } | |
16719 | ||
16720 | @@ -7996,7 +7033,7 @@ | |
16721 | Builtin_call_expression::one_arg() const | |
16722 | { | |
16723 | const Expression_list* args = this->args(); | |
16724 | - if (args->size() != 1) | |
16725 | + if (args == NULL || args->size() != 1) | |
16726 | return NULL; | |
16727 | return args->front(); | |
16728 | } | |
16729 | @@ -8073,12 +7110,10 @@ | |
16730 | return false; | |
16731 | } | |
16732 | ||
16733 | -// Return an integer constant value if possible. | |
16734 | +// Return a numeric constant if possible. | |
16735 | ||
16736 | bool | |
16737 | -Builtin_call_expression::do_integer_constant_value(bool iota_is_constant, | |
16738 | - mpz_t val, | |
16739 | - Type** ptype) const | |
16740 | +Builtin_call_expression::do_numeric_constant_value(Numeric_constant* nc) const | |
16741 | { | |
16742 | if (this->code_ == BUILTIN_LEN | |
16743 | || this->code_ == BUILTIN_CAP) | |
16744 | @@ -8093,8 +7128,8 @@ | |
16745 | std::string sval; | |
16746 | if (arg->string_constant_value(&sval)) | |
16747 | { | |
16748 | - mpz_set_ui(val, sval.length()); | |
16749 | - *ptype = Type::lookup_integer_type("int"); | |
16750 | + nc->set_unsigned_long(Type::lookup_integer_type("int"), | |
16751 | + sval.length()); | |
16752 | return true; | |
16753 | } | |
16754 | } | |
16755 | @@ -8111,13 +7146,15 @@ | |
16756 | return false; | |
16757 | Expression* e = arg_type->array_type()->length(); | |
16758 | this->seen_ = true; | |
16759 | - bool r = e->integer_constant_value(iota_is_constant, val, ptype); | |
16760 | + bool r = e->numeric_constant_value(nc); | |
16761 | this->seen_ = false; | |
16762 | if (r) | |
16763 | { | |
16764 | - *ptype = Type::lookup_integer_type("int"); | |
16765 | - return true; | |
16766 | + if (!nc->set_type(Type::lookup_integer_type("int"), false, | |
16767 | + this->location())) | |
16768 | + r = false; | |
16769 | } | |
16770 | + return r; | |
16771 | } | |
16772 | } | |
16773 | else if (this->code_ == BUILTIN_SIZEOF | |
16774 | @@ -8158,8 +7195,8 @@ | |
16775 | else | |
16776 | go_unreachable(); | |
16777 | ||
16778 | - mpz_set_ui(val, ret); | |
16779 | - *ptype = NULL; | |
16780 | + nc->set_unsigned_long(Type::lookup_integer_type("uintptr"), | |
16781 | + static_cast<unsigned long>(ret)); | |
16782 | return true; | |
16783 | } | |
16784 | else if (this->code_ == BUILTIN_OFFSETOF) | |
16785 | @@ -8181,88 +7218,73 @@ | |
16786 | farg->field_index(), | |
16787 | &offset)) | |
16788 | return false; | |
16789 | - mpz_set_ui(val, offset); | |
16790 | + nc->set_unsigned_long(Type::lookup_integer_type("uintptr"), | |
16791 | + static_cast<unsigned long>(offset)); | |
16792 | return true; | |
16793 | } | |
16794 | - return false; | |
16795 | -} | |
16796 | - | |
16797 | -// Return a floating point constant value if possible. | |
16798 | - | |
16799 | -bool | |
16800 | -Builtin_call_expression::do_float_constant_value(mpfr_t val, | |
16801 | - Type** ptype) const | |
16802 | -{ | |
16803 | - if (this->code_ == BUILTIN_REAL || this->code_ == BUILTIN_IMAG) | |
16804 | + else if (this->code_ == BUILTIN_REAL || this->code_ == BUILTIN_IMAG) | |
16805 | { | |
16806 | Expression* arg = this->one_arg(); | |
16807 | if (arg == NULL) | |
16808 | return false; | |
16809 | ||
16810 | + Numeric_constant argnc; | |
16811 | + if (!arg->numeric_constant_value(&argnc)) | |
16812 | + return false; | |
16813 | + | |
16814 | mpfr_t real; | |
16815 | mpfr_t imag; | |
16816 | - mpfr_init(real); | |
16817 | - mpfr_init(imag); | |
16818 | + if (!argnc.to_complex(&real, &imag)) | |
16819 | + return false; | |
16820 | ||
16821 | - bool ret = false; | |
16822 | - Type* type; | |
16823 | - if (arg->complex_constant_value(real, imag, &type)) | |
16824 | - { | |
16825 | - if (this->code_ == BUILTIN_REAL) | |
16826 | - mpfr_set(val, real, GMP_RNDN); | |
16827 | - else | |
16828 | - mpfr_set(val, imag, GMP_RNDN); | |
16829 | - *ptype = Builtin_call_expression::real_imag_type(type); | |
16830 | - ret = true; | |
16831 | - } | |
16832 | - | |
16833 | - mpfr_clear(real); | |
16834 | - mpfr_clear(imag); | |
16835 | - return ret; | |
16836 | + Type* type = Builtin_call_expression::real_imag_type(argnc.type()); | |
16837 | + if (this->code_ == BUILTIN_REAL) | |
16838 | + nc->set_float(type, real); | |
16839 | + else | |
16840 | + nc->set_float(type, imag); | |
16841 | + return true; | |
16842 | } | |
16843 | - | |
16844 | - return false; | |
16845 | -} | |
16846 | - | |
16847 | -// Return a complex constant value if possible. | |
16848 | - | |
16849 | -bool | |
16850 | -Builtin_call_expression::do_complex_constant_value(mpfr_t real, mpfr_t imag, | |
16851 | - Type** ptype) const | |
16852 | -{ | |
16853 | - if (this->code_ == BUILTIN_COMPLEX) | |
16854 | + else if (this->code_ == BUILTIN_COMPLEX) | |
16855 | { | |
16856 | const Expression_list* args = this->args(); | |
16857 | if (args == NULL || args->size() != 2) | |
16858 | return false; | |
16859 | ||
16860 | + Numeric_constant rnc; | |
16861 | + if (!args->front()->numeric_constant_value(&rnc)) | |
16862 | + return false; | |
16863 | + Numeric_constant inc; | |
16864 | + if (!args->back()->numeric_constant_value(&inc)) | |
16865 | + return false; | |
16866 | + | |
16867 | + if (rnc.type() != NULL | |
16868 | + && !rnc.type()->is_abstract() | |
16869 | + && inc.type() != NULL | |
16870 | + && !inc.type()->is_abstract() | |
16871 | + && !Type::are_identical(rnc.type(), inc.type(), false, NULL)) | |
16872 | + return false; | |
16873 | + | |
16874 | mpfr_t r; | |
16875 | - mpfr_init(r); | |
16876 | - Type* rtype; | |
16877 | - if (!args->front()->float_constant_value(r, &rtype)) | |
16878 | + if (!rnc.to_float(&r)) | |
16879 | + return false; | |
16880 | + mpfr_t i; | |
16881 | + if (!inc.to_float(&i)) | |
16882 | { | |
16883 | mpfr_clear(r); | |
16884 | return false; | |
16885 | } | |
16886 | ||
16887 | - mpfr_t i; | |
16888 | - mpfr_init(i); | |
16889 | + Type* arg_type = rnc.type(); | |
16890 | + if (arg_type == NULL || arg_type->is_abstract()) | |
16891 | + arg_type = inc.type(); | |
16892 | ||
16893 | - bool ret = false; | |
16894 | - Type* itype; | |
16895 | - if (args->back()->float_constant_value(i, &itype) | |
16896 | - && Type::are_identical(rtype, itype, false, NULL)) | |
16897 | - { | |
16898 | - mpfr_set(real, r, GMP_RNDN); | |
16899 | - mpfr_set(imag, i, GMP_RNDN); | |
16900 | - *ptype = Builtin_call_expression::complex_type(rtype); | |
16901 | - ret = true; | |
16902 | - } | |
16903 | + Type* type = Builtin_call_expression::complex_type(arg_type); | |
16904 | + nc->set_complex(type, r, i); | |
16905 | ||
16906 | mpfr_clear(r); | |
16907 | mpfr_clear(i); | |
16908 | ||
16909 | - return ret; | |
16910 | + return true; | |
16911 | } | |
16912 | ||
16913 | return false; | |
16914 | @@ -8330,10 +7352,12 @@ | |
16915 | case BUILTIN_CAP: | |
16916 | case BUILTIN_COPY: | |
16917 | case BUILTIN_LEN: | |
16918 | + return Type::lookup_integer_type("int"); | |
16919 | + | |
16920 | case BUILTIN_ALIGNOF: | |
16921 | case BUILTIN_OFFSETOF: | |
16922 | case BUILTIN_SIZEOF: | |
16923 | - return Type::lookup_integer_type("int"); | |
16924 | + return Type::lookup_integer_type("uintptr"); | |
16925 | ||
16926 | case BUILTIN_CLOSE: | |
16927 | case BUILTIN_DELETE: | |
16928 | @@ -8461,15 +7485,19 @@ | |
16929 | { | |
16930 | if (atype->integer_type() != NULL) | |
16931 | { | |
16932 | - mpz_t val; | |
16933 | - mpz_init(val); | |
16934 | - Type* dummy; | |
16935 | - if (this->integer_constant_value(true, val, &dummy) | |
16936 | - && mpz_sgn(val) >= 0) | |
16937 | - want_type = Type::lookup_integer_type("uint64"); | |
16938 | - else | |
16939 | + Numeric_constant nc; | |
16940 | + if (this->numeric_constant_value(&nc)) | |
16941 | + { | |
16942 | + mpz_t val; | |
16943 | + if (nc.to_int(&val)) | |
16944 | + { | |
16945 | + if (mpz_sgn(val) >= 0) | |
16946 | + want_type = Type::lookup_integer_type("uint64"); | |
16947 | + mpz_clear(val); | |
16948 | + } | |
16949 | + } | |
16950 | + if (want_type == NULL) | |
16951 | want_type = Type::lookup_integer_type("int64"); | |
16952 | - mpz_clear(val); | |
16953 | } | |
16954 | else if (atype->float_type() != NULL) | |
16955 | want_type = Type::lookup_float_type("float64"); | |
16956 | @@ -8521,6 +7549,8 @@ | |
16957 | void | |
16958 | Builtin_call_expression::do_check_types(Gogo*) | |
16959 | { | |
16960 | + if (this->is_error_expression()) | |
16961 | + return; | |
16962 | switch (this->code_) | |
16963 | { | |
16964 | case BUILTIN_INVALID: | |
16965 | @@ -9148,20 +8178,17 @@ | |
16966 | case BUILTIN_OFFSETOF: | |
16967 | case BUILTIN_ALIGNOF: | |
16968 | { | |
16969 | - mpz_t val; | |
16970 | - mpz_init(val); | |
16971 | - Type* dummy; | |
16972 | - bool b = this->integer_constant_value(true, val, &dummy); | |
16973 | - if (!b) | |
16974 | + Numeric_constant nc; | |
16975 | + unsigned long val; | |
16976 | + if (!this->numeric_constant_value(&nc) | |
16977 | + || nc.to_unsigned_long(&val) != Numeric_constant::NC_UL_VALID) | |
16978 | { | |
16979 | go_assert(saw_errors()); | |
16980 | return error_mark_node; | |
16981 | } | |
16982 | - Type* int_type = Type::lookup_integer_type("int"); | |
16983 | - tree type = type_to_tree(int_type->get_backend(gogo)); | |
16984 | - tree ret = Expression::integer_constant_tree(val, type); | |
16985 | - mpz_clear(val); | |
16986 | - return ret; | |
16987 | + Type* uintptr_type = Type::lookup_integer_type("uintptr"); | |
16988 | + tree type = type_to_tree(uintptr_type->get_backend(gogo)); | |
16989 | + return build_int_cst(type, val); | |
16990 | } | |
16991 | ||
16992 | case BUILTIN_COPY: | |
16993 | @@ -9376,51 +8403,38 @@ | |
16994 | void | |
16995 | Builtin_call_expression::do_export(Export* exp) const | |
16996 | { | |
16997 | - bool ok = false; | |
16998 | + Numeric_constant nc; | |
16999 | + if (!this->numeric_constant_value(&nc)) | |
17000 | + { | |
17001 | + error_at(this->location(), "value is not constant"); | |
17002 | + return; | |
17003 | + } | |
17004 | ||
17005 | - mpz_t val; | |
17006 | - mpz_init(val); | |
17007 | - Type* dummy; | |
17008 | - if (this->integer_constant_value(true, val, &dummy)) | |
17009 | + if (nc.is_int()) | |
17010 | { | |
17011 | + mpz_t val; | |
17012 | + nc.get_int(&val); | |
17013 | Integer_expression::export_integer(exp, val); | |
17014 | - ok = true; | |
17015 | + mpz_clear(val); | |
17016 | } | |
17017 | - mpz_clear(val); | |
17018 | - | |
17019 | - if (!ok) | |
17020 | + else if (nc.is_float()) | |
17021 | { | |
17022 | mpfr_t fval; | |
17023 | - mpfr_init(fval); | |
17024 | - if (this->float_constant_value(fval, &dummy)) | |
17025 | - { | |
17026 | - Float_expression::export_float(exp, fval); | |
17027 | - ok = true; | |
17028 | - } | |
17029 | + nc.get_float(&fval); | |
17030 | + Float_expression::export_float(exp, fval); | |
17031 | mpfr_clear(fval); | |
17032 | } | |
17033 | - | |
17034 | - if (!ok) | |
17035 | + else if (nc.is_complex()) | |
17036 | { | |
17037 | mpfr_t real; | |
17038 | mpfr_t imag; | |
17039 | - mpfr_init(real); | |
17040 | - mpfr_init(imag); | |
17041 | - if (this->complex_constant_value(real, imag, &dummy)) | |
17042 | - { | |
17043 | - Complex_expression::export_complex(exp, real, imag); | |
17044 | - ok = true; | |
17045 | - } | |
17046 | + Complex_expression::export_complex(exp, real, imag); | |
17047 | mpfr_clear(real); | |
17048 | mpfr_clear(imag); | |
17049 | } | |
17050 | + else | |
17051 | + go_unreachable(); | |
17052 | ||
17053 | - if (!ok) | |
17054 | - { | |
17055 | - error_at(this->location(), "value is not constant"); | |
17056 | - return; | |
17057 | - } | |
17058 | - | |
17059 | // A trailing space lets us reliably identify the end of the number. | |
17060 | exp->write_c_string(" "); | |
17061 | } | |
17062 | @@ -9635,7 +8649,14 @@ | |
17063 | new_args->push_back(*pa); | |
17064 | else if (this->is_varargs_) | |
17065 | { | |
17066 | - this->report_error(_("too many arguments")); | |
17067 | + if ((*pa)->type()->is_slice_type()) | |
17068 | + this->report_error(_("too many arguments")); | |
17069 | + else | |
17070 | + { | |
17071 | + error_at(this->location(), | |
17072 | + _("invalid use of %<...%> with non-slice")); | |
17073 | + this->set_is_error(); | |
17074 | + } | |
17075 | return; | |
17076 | } | |
17077 | else | |
17078 | @@ -9880,6 +8901,9 @@ | |
17079 | void | |
17080 | Call_expression::do_check_types(Gogo*) | |
17081 | { | |
17082 | + if (this->classification() == EXPRESSION_ERROR) | |
17083 | + return; | |
17084 | + | |
17085 | Function_type* fntype = this->get_function_type(); | |
17086 | if (fntype == NULL) | |
17087 | { | |
17088 | @@ -9915,7 +8939,17 @@ | |
17089 | } | |
17090 | ||
17091 | // Note that varargs was handled by the lower_varargs() method, so | |
17092 | - // we don't have to worry about it here. | |
17093 | + // we don't have to worry about it here unless something is wrong. | |
17094 | + if (this->is_varargs_ && !this->varargs_are_lowered_) | |
17095 | + { | |
17096 | + if (!fntype->is_varargs()) | |
17097 | + { | |
17098 | + error_at(this->location(), | |
17099 | + _("invalid use of %<...%> calling non-variadic function")); | |
17100 | + this->set_is_error(); | |
17101 | + return; | |
17102 | + } | |
17103 | + } | |
17104 | ||
17105 | const Typed_identifier_list* parameters = fntype->parameters(); | |
17106 | if (this->args_ == NULL) | |
17107 | @@ -10197,7 +9231,7 @@ | |
17108 | ref->set_is_lvalue(); | |
17109 | tree temp_tree = ref->get_tree(context); | |
17110 | if (temp_tree == error_mark_node) | |
17111 | - continue; | |
17112 | + return error_mark_node; | |
17113 | ||
17114 | tree val_tree = build3_loc(loc.gcc_location(), COMPONENT_REF, | |
17115 | TREE_TYPE(field), call_tree, field, NULL_TREE); | |
17116 | @@ -10660,16 +9694,14 @@ | |
17117 | unsigned int int_bits = | |
17118 | Type::lookup_integer_type("int")->integer_type()->bits(); | |
17119 | ||
17120 | - Type* dummy; | |
17121 | + Numeric_constant lvalnc; | |
17122 | mpz_t lval; | |
17123 | - mpz_init(lval); | |
17124 | bool lval_valid = (array_type->length() != NULL | |
17125 | - && array_type->length()->integer_constant_value(true, | |
17126 | - lval, | |
17127 | - &dummy)); | |
17128 | + && array_type->length()->numeric_constant_value(&lvalnc) | |
17129 | + && lvalnc.to_int(&lval)); | |
17130 | + Numeric_constant inc; | |
17131 | mpz_t ival; | |
17132 | - mpz_init(ival); | |
17133 | - if (this->start_->integer_constant_value(true, ival, &dummy)) | |
17134 | + if (this->start_->numeric_constant_value(&inc) && inc.to_int(&ival)) | |
17135 | { | |
17136 | if (mpz_sgn(ival) < 0 | |
17137 | || mpz_sizeinbase(ival, 2) >= int_bits | |
17138 | @@ -10681,22 +9713,26 @@ | |
17139 | error_at(this->start_->location(), "array index out of bounds"); | |
17140 | this->set_is_error(); | |
17141 | } | |
17142 | + mpz_clear(ival); | |
17143 | } | |
17144 | if (this->end_ != NULL && !this->end_->is_nil_expression()) | |
17145 | { | |
17146 | - if (this->end_->integer_constant_value(true, ival, &dummy)) | |
17147 | + Numeric_constant enc; | |
17148 | + mpz_t eval; | |
17149 | + if (this->end_->numeric_constant_value(&enc) && enc.to_int(&eval)) | |
17150 | { | |
17151 | - if (mpz_sgn(ival) < 0 | |
17152 | - || mpz_sizeinbase(ival, 2) >= int_bits | |
17153 | - || (lval_valid && mpz_cmp(ival, lval) > 0)) | |
17154 | + if (mpz_sgn(eval) < 0 | |
17155 | + || mpz_sizeinbase(eval, 2) >= int_bits | |
17156 | + || (lval_valid && mpz_cmp(eval, lval) > 0)) | |
17157 | { | |
17158 | error_at(this->end_->location(), "array index out of bounds"); | |
17159 | this->set_is_error(); | |
17160 | } | |
17161 | + mpz_clear(eval); | |
17162 | } | |
17163 | } | |
17164 | - mpz_clear(ival); | |
17165 | - mpz_clear(lval); | |
17166 | + if (lval_valid) | |
17167 | + mpz_clear(lval); | |
17168 | ||
17169 | // A slice of an array requires an addressable array. A slice of a | |
17170 | // slice is always possible. | |
17171 | @@ -11071,10 +10107,9 @@ | |
17172 | std::string sval; | |
17173 | bool sval_valid = this->string_->string_constant_value(&sval); | |
17174 | ||
17175 | + Numeric_constant inc; | |
17176 | mpz_t ival; | |
17177 | - mpz_init(ival); | |
17178 | - Type* dummy; | |
17179 | - if (this->start_->integer_constant_value(true, ival, &dummy)) | |
17180 | + if (this->start_->numeric_constant_value(&inc) && inc.to_int(&ival)) | |
17181 | { | |
17182 | if (mpz_sgn(ival) < 0 | |
17183 | || (sval_valid && mpz_cmp_ui(ival, sval.length()) >= 0)) | |
17184 | @@ -11082,20 +10117,23 @@ | |
17185 | error_at(this->start_->location(), "string index out of bounds"); | |
17186 | this->set_is_error(); | |
17187 | } | |
17188 | + mpz_clear(ival); | |
17189 | } | |
17190 | if (this->end_ != NULL && !this->end_->is_nil_expression()) | |
17191 | { | |
17192 | - if (this->end_->integer_constant_value(true, ival, &dummy)) | |
17193 | + Numeric_constant enc; | |
17194 | + mpz_t eval; | |
17195 | + if (this->end_->numeric_constant_value(&enc) && enc.to_int(&eval)) | |
17196 | { | |
17197 | - if (mpz_sgn(ival) < 0 | |
17198 | - || (sval_valid && mpz_cmp_ui(ival, sval.length()) > 0)) | |
17199 | + if (mpz_sgn(eval) < 0 | |
17200 | + || (sval_valid && mpz_cmp_ui(eval, sval.length()) > 0)) | |
17201 | { | |
17202 | error_at(this->end_->location(), "string index out of bounds"); | |
17203 | this->set_is_error(); | |
17204 | } | |
17205 | + mpz_clear(eval); | |
17206 | } | |
17207 | } | |
17208 | - mpz_clear(ival); | |
17209 | } | |
17210 | ||
17211 | // Get a tree for a string index. | |
17212 | @@ -11667,7 +10705,8 @@ | |
17213 | tree | |
17214 | Interface_field_reference_expression::do_get_tree(Translate_context*) | |
17215 | { | |
17216 | - go_unreachable(); | |
17217 | + error_at(this->location(), "reference to method other than calling it"); | |
17218 | + return error_mark_node; | |
17219 | } | |
17220 | ||
17221 | // Dump ast representation for an interface field reference. | |
17222 | @@ -12052,9 +11091,15 @@ | |
17223 | Struct_construction_expression(Type* type, Expression_list* vals, | |
17224 | Location location) | |
17225 | : Expression(EXPRESSION_STRUCT_CONSTRUCTION, location), | |
17226 | - type_(type), vals_(vals) | |
17227 | + type_(type), vals_(vals), traverse_order_(NULL) | |
17228 | { } | |
17229 | ||
17230 | + // Set the traversal order, used to ensure that we implement the | |
17231 | + // order of evaluation rules. Takes ownership of the argument. | |
17232 | + void | |
17233 | + set_traverse_order(std::vector<int>* traverse_order) | |
17234 | + { this->traverse_order_ = traverse_order; } | |
17235 | + | |
17236 | // Return whether this is a constant initializer. | |
17237 | bool | |
17238 | is_constant_struct() const; | |
17239 | @@ -12076,8 +11121,12 @@ | |
17240 | Expression* | |
17241 | do_copy() | |
17242 | { | |
17243 | - return new Struct_construction_expression(this->type_, this->vals_->copy(), | |
17244 | - this->location()); | |
17245 | + Struct_construction_expression* ret = | |
17246 | + new Struct_construction_expression(this->type_, this->vals_->copy(), | |
17247 | + this->location()); | |
17248 | + if (this->traverse_order_ != NULL) | |
17249 | + ret->set_traverse_order(this->traverse_order_); | |
17250 | + return ret; | |
17251 | } | |
17252 | ||
17253 | tree | |
17254 | @@ -12095,6 +11144,9 @@ | |
17255 | // The list of values, in order of the fields in the struct. A NULL | |
17256 | // entry means that the field should be zero-initialized. | |
17257 | Expression_list* vals_; | |
17258 | + // If not NULL, the order in which to traverse vals_. This is used | |
17259 | + // so that we implement the order of evaluation rules correctly. | |
17260 | + std::vector<int>* traverse_order_; | |
17261 | }; | |
17262 | ||
17263 | // Traversal. | |
17264 | @@ -12102,9 +11154,26 @@ | |
17265 | int | |
17266 | Struct_construction_expression::do_traverse(Traverse* traverse) | |
17267 | { | |
17268 | - if (this->vals_ != NULL | |
17269 | - && this->vals_->traverse(traverse) == TRAVERSE_EXIT) | |
17270 | - return TRAVERSE_EXIT; | |
17271 | + if (this->vals_ != NULL) | |
17272 | + { | |
17273 | + if (this->traverse_order_ == NULL) | |
17274 | + { | |
17275 | + if (this->vals_->traverse(traverse) == TRAVERSE_EXIT) | |
17276 | + return TRAVERSE_EXIT; | |
17277 | + } | |
17278 | + else | |
17279 | + { | |
17280 | + for (std::vector<int>::const_iterator p = | |
17281 | + this->traverse_order_->begin(); | |
17282 | + p != this->traverse_order_->end(); | |
17283 | + ++p) | |
17284 | + { | |
17285 | + if (Expression::traverse(&this->vals_->at(*p), traverse) | |
17286 | + == TRAVERSE_EXIT) | |
17287 | + return TRAVERSE_EXIT; | |
17288 | + } | |
17289 | + } | |
17290 | + } | |
17291 | if (Type::traverse(this->type_, traverse) == TRAVERSE_EXIT) | |
17292 | return TRAVERSE_EXIT; | |
17293 | return TRAVERSE_CONTINUE; | |
17294 | @@ -12331,11 +11400,12 @@ | |
17295 | { | |
17296 | protected: | |
17297 | Array_construction_expression(Expression_classification classification, | |
17298 | - Type* type, Expression_list* vals, | |
17299 | - Location location) | |
17300 | + Type* type, | |
17301 | + const std::vector<unsigned long>* indexes, | |
17302 | + Expression_list* vals, Location location) | |
17303 | : Expression(classification, location), | |
17304 | - type_(type), vals_(vals) | |
17305 | - { } | |
17306 | + type_(type), indexes_(indexes), vals_(vals) | |
17307 | + { go_assert(indexes == NULL || indexes->size() == vals->size()); } | |
17308 | ||
17309 | public: | |
17310 | // Return whether this is a constant initializer. | |
17311 | @@ -12364,6 +11434,11 @@ | |
17312 | void | |
17313 | do_export(Export*) const; | |
17314 | ||
17315 | + // The indexes. | |
17316 | + const std::vector<unsigned long>* | |
17317 | + indexes() | |
17318 | + { return this->indexes_; } | |
17319 | + | |
17320 | // The list of values. | |
17321 | Expression_list* | |
17322 | vals() | |
17323 | @@ -12379,7 +11454,10 @@ | |
17324 | private: | |
17325 | // The type of the array to construct. | |
17326 | Type* type_; | |
17327 | - // The list of values. | |
17328 | + // The list of indexes into the array, one for each value. This may | |
17329 | + // be NULL, in which case the indexes start at zero and increment. | |
17330 | + const std::vector<unsigned long>* indexes_; | |
17331 | + // The list of values. This may be NULL if there are no values. | |
17332 | Expression_list* vals_; | |
17333 | }; | |
17334 | ||
17335 | @@ -12462,20 +11540,6 @@ | |
17336 | this->set_is_error(); | |
17337 | } | |
17338 | } | |
17339 | - | |
17340 | - Expression* length = at->length(); | |
17341 | - if (length != NULL && !length->is_error_expression()) | |
17342 | - { | |
17343 | - mpz_t val; | |
17344 | - mpz_init(val); | |
17345 | - Type* type; | |
17346 | - if (at->length()->integer_constant_value(true, val, &type)) | |
17347 | - { | |
17348 | - if (this->vals_->size() > mpz_get_ui(val)) | |
17349 | - this->report_error(_("too many elements in composite literal")); | |
17350 | - } | |
17351 | - mpz_clear(val); | |
17352 | - } | |
17353 | } | |
17354 | ||
17355 | // Get a constructor tree for the array values. | |
17356 | @@ -12493,12 +11557,22 @@ | |
17357 | if (this->vals_ != NULL) | |
17358 | { | |
17359 | size_t i = 0; | |
17360 | + std::vector<unsigned long>::const_iterator pi; | |
17361 | + if (this->indexes_ != NULL) | |
17362 | + pi = this->indexes_->begin(); | |
17363 | for (Expression_list::const_iterator pv = this->vals_->begin(); | |
17364 | pv != this->vals_->end(); | |
17365 | ++pv, ++i) | |
17366 | { | |
17367 | + if (this->indexes_ != NULL) | |
17368 | + go_assert(pi != this->indexes_->end()); | |
17369 | constructor_elt* elt = VEC_quick_push(constructor_elt, values, NULL); | |
17370 | - elt->index = size_int(i); | |
17371 | + | |
17372 | + if (this->indexes_ == NULL) | |
17373 | + elt->index = size_int(i); | |
17374 | + else | |
17375 | + elt->index = size_int(*pi); | |
17376 | + | |
17377 | if (*pv == NULL) | |
17378 | { | |
17379 | Gogo* gogo = context->gogo(); | |
17380 | @@ -12519,7 +11593,11 @@ | |
17381 | return error_mark_node; | |
17382 | if (!TREE_CONSTANT(elt->value)) | |
17383 | is_constant = false; | |
17384 | + if (this->indexes_ != NULL) | |
17385 | + ++pi; | |
17386 | } | |
17387 | + if (this->indexes_ != NULL) | |
17388 | + go_assert(pi == this->indexes_->end()); | |
17389 | } | |
17390 | ||
17391 | tree ret = build_constructor(type_tree, values); | |
17392 | @@ -12537,13 +11615,28 @@ | |
17393 | exp->write_type(this->type_); | |
17394 | if (this->vals_ != NULL) | |
17395 | { | |
17396 | + std::vector<unsigned long>::const_iterator pi; | |
17397 | + if (this->indexes_ != NULL) | |
17398 | + pi = this->indexes_->begin(); | |
17399 | for (Expression_list::const_iterator pv = this->vals_->begin(); | |
17400 | pv != this->vals_->end(); | |
17401 | ++pv) | |
17402 | { | |
17403 | exp->write_c_string(", "); | |
17404 | + | |
17405 | + if (this->indexes_ != NULL) | |
17406 | + { | |
17407 | + char buf[100]; | |
17408 | + snprintf(buf, sizeof buf, "%lu", *pi); | |
17409 | + exp->write_c_string(buf); | |
17410 | + exp->write_c_string(":"); | |
17411 | + } | |
17412 | + | |
17413 | if (*pv != NULL) | |
17414 | (*pv)->export_expression(exp); | |
17415 | + | |
17416 | + if (this->indexes_ != NULL) | |
17417 | + ++pi; | |
17418 | } | |
17419 | } | |
17420 | exp->write_c_string(")"); | |
17421 | @@ -12555,8 +11648,7 @@ | |
17422 | Array_construction_expression::do_dump_expression( | |
17423 | Ast_dump_context* ast_dump_context) const | |
17424 | { | |
17425 | - Expression* length = this->type_->array_type() != NULL ? | |
17426 | - this->type_->array_type()->length() : NULL; | |
17427 | + Expression* length = this->type_->array_type()->length(); | |
17428 | ||
17429 | ast_dump_context->ostream() << "[" ; | |
17430 | if (length != NULL) | |
17431 | @@ -12566,7 +11658,22 @@ | |
17432 | ast_dump_context->ostream() << "]" ; | |
17433 | ast_dump_context->dump_type(this->type_); | |
17434 | ast_dump_context->ostream() << "{" ; | |
17435 | - ast_dump_context->dump_expression_list(this->vals_); | |
17436 | + if (this->indexes_ == NULL) | |
17437 | + ast_dump_context->dump_expression_list(this->vals_); | |
17438 | + else | |
17439 | + { | |
17440 | + Expression_list::const_iterator pv = this->vals_->begin(); | |
17441 | + for (std::vector<unsigned long>::const_iterator pi = | |
17442 | + this->indexes_->begin(); | |
17443 | + pi != this->indexes_->end(); | |
17444 | + ++pi, ++pv) | |
17445 | + { | |
17446 | + if (pi != this->indexes_->begin()) | |
17447 | + ast_dump_context->ostream() << ", "; | |
17448 | + ast_dump_context->ostream() << *pi << ':'; | |
17449 | + ast_dump_context->dump_expression(*pv); | |
17450 | + } | |
17451 | + } | |
17452 | ast_dump_context->ostream() << "}" ; | |
17453 | ||
17454 | } | |
17455 | @@ -12577,20 +11684,19 @@ | |
17456 | public Array_construction_expression | |
17457 | { | |
17458 | public: | |
17459 | - Fixed_array_construction_expression(Type* type, Expression_list* vals, | |
17460 | - Location location) | |
17461 | + Fixed_array_construction_expression(Type* type, | |
17462 | + const std::vector<unsigned long>* indexes, | |
17463 | + Expression_list* vals, Location location) | |
17464 | : Array_construction_expression(EXPRESSION_FIXED_ARRAY_CONSTRUCTION, | |
17465 | - type, vals, location) | |
17466 | - { | |
17467 | - go_assert(type->array_type() != NULL | |
17468 | - && type->array_type()->length() != NULL); | |
17469 | - } | |
17470 | + type, indexes, vals, location) | |
17471 | + { go_assert(type->array_type() != NULL && !type->is_slice_type()); } | |
17472 | ||
17473 | protected: | |
17474 | Expression* | |
17475 | do_copy() | |
17476 | { | |
17477 | return new Fixed_array_construction_expression(this->type(), | |
17478 | + this->indexes(), | |
17479 | (this->vals() == NULL | |
17480 | ? NULL | |
17481 | : this->vals()->copy()), | |
17482 | @@ -12599,9 +11705,6 @@ | |
17483 | ||
17484 | tree | |
17485 | do_get_tree(Translate_context*); | |
17486 | - | |
17487 | - void | |
17488 | - do_dump_expression(Ast_dump_context*); | |
17489 | }; | |
17490 | ||
17491 | // Return a tree for constructing a fixed array. | |
17492 | @@ -12614,35 +11717,17 @@ | |
17493 | return this->get_constructor_tree(context, type_to_tree(btype)); | |
17494 | } | |
17495 | ||
17496 | -// Dump ast representation of an array construction expressin. | |
17497 | - | |
17498 | -void | |
17499 | -Fixed_array_construction_expression::do_dump_expression( | |
17500 | - Ast_dump_context* ast_dump_context) | |
17501 | -{ | |
17502 | - | |
17503 | - ast_dump_context->ostream() << "["; | |
17504 | - ast_dump_context->dump_expression (this->type()->array_type()->length()); | |
17505 | - ast_dump_context->ostream() << "]"; | |
17506 | - ast_dump_context->dump_type(this->type()); | |
17507 | - ast_dump_context->ostream() << "{"; | |
17508 | - ast_dump_context->dump_expression_list(this->vals()); | |
17509 | - ast_dump_context->ostream() << "}"; | |
17510 | - | |
17511 | -} | |
17512 | // Construct an open array. | |
17513 | ||
17514 | class Open_array_construction_expression : public Array_construction_expression | |
17515 | { | |
17516 | public: | |
17517 | - Open_array_construction_expression(Type* type, Expression_list* vals, | |
17518 | - Location location) | |
17519 | + Open_array_construction_expression(Type* type, | |
17520 | + const std::vector<unsigned long>* indexes, | |
17521 | + Expression_list* vals, Location location) | |
17522 | : Array_construction_expression(EXPRESSION_OPEN_ARRAY_CONSTRUCTION, | |
17523 | - type, vals, location) | |
17524 | - { | |
17525 | - go_assert(type->array_type() != NULL | |
17526 | - && type->array_type()->length() == NULL); | |
17527 | - } | |
17528 | + type, indexes, vals, location) | |
17529 | + { go_assert(type->is_slice_type()); } | |
17530 | ||
17531 | protected: | |
17532 | // Note that taking the address of an open array literal is invalid. | |
17533 | @@ -12651,6 +11736,7 @@ | |
17534 | do_copy() | |
17535 | { | |
17536 | return new Open_array_construction_expression(this->type(), | |
17537 | + this->indexes(), | |
17538 | (this->vals() == NULL | |
17539 | ? NULL | |
17540 | : this->vals()->copy()), | |
17541 | @@ -12702,13 +11788,19 @@ | |
17542 | } | |
17543 | else | |
17544 | { | |
17545 | - tree max = size_int(this->vals()->size() - 1); | |
17546 | + unsigned long max_index; | |
17547 | + if (this->indexes() == NULL) | |
17548 | + max_index = this->vals()->size() - 1; | |
17549 | + else | |
17550 | + max_index = *std::max_element(this->indexes()->begin(), | |
17551 | + this->indexes()->end()); | |
17552 | + tree max_tree = size_int(max_index); | |
17553 | tree constructor_type = build_array_type(element_type_tree, | |
17554 | - build_index_type(max)); | |
17555 | + build_index_type(max_tree)); | |
17556 | if (constructor_type == error_mark_node) | |
17557 | return error_mark_node; | |
17558 | values = this->get_constructor_tree(context, constructor_type); | |
17559 | - length_tree = size_int(this->vals()->size()); | |
17560 | + length_tree = size_int(max_index + 1); | |
17561 | } | |
17562 | ||
17563 | if (values == error_mark_node) | |
17564 | @@ -12816,7 +11908,7 @@ | |
17565 | Location location) | |
17566 | { | |
17567 | go_assert(type->is_slice_type()); | |
17568 | - return new Open_array_construction_expression(type, vals, location); | |
17569 | + return new Open_array_construction_expression(type, NULL, vals, location); | |
17570 | } | |
17571 | ||
17572 | // Construct a map. | |
17573 | @@ -13170,7 +12262,7 @@ | |
17574 | lower_array(Type*); | |
17575 | ||
17576 | Expression* | |
17577 | - make_array(Type*, Expression_list*); | |
17578 | + make_array(Type*, const std::vector<unsigned long>*, Expression_list*); | |
17579 | ||
17580 | Expression* | |
17581 | lower_map(Gogo*, Named_object*, Statement_inserter*, Type*); | |
17582 | @@ -13285,6 +12377,7 @@ | |
17583 | ||
17584 | size_t field_count = st->field_count(); | |
17585 | std::vector<Expression*> vals(field_count); | |
17586 | + std::vector<int>* traverse_order = new(std::vector<int>); | |
17587 | Expression_list::const_iterator p = this->vals_->begin(); | |
17588 | while (p != this->vals_->end()) | |
17589 | { | |
17590 | @@ -13437,6 +12530,7 @@ | |
17591 | type->named_type()->message_name().c_str()); | |
17592 | ||
17593 | vals[index] = val; | |
17594 | + traverse_order->push_back(index); | |
17595 | } | |
17596 | ||
17597 | Expression_list* list = new Expression_list; | |
17598 | @@ -13444,7 +12538,10 @@ | |
17599 | for (size_t i = 0; i < field_count; ++i) | |
17600 | list->push_back(vals[i]); | |
17601 | ||
17602 | - return new Struct_construction_expression(type, list, location); | |
17603 | + Struct_construction_expression* ret = | |
17604 | + new Struct_construction_expression(type, list, location); | |
17605 | + ret->set_traverse_order(traverse_order); | |
17606 | + return ret; | |
17607 | } | |
17608 | ||
17609 | // Lower an array composite literal. | |
17610 | @@ -13454,10 +12551,12 @@ | |
17611 | { | |
17612 | Location location = this->location(); | |
17613 | if (this->vals_ == NULL || !this->has_keys_) | |
17614 | - return this->make_array(type, this->vals_); | |
17615 | + return this->make_array(type, NULL, this->vals_); | |
17616 | ||
17617 | - std::vector<Expression*> vals; | |
17618 | - vals.reserve(this->vals_->size()); | |
17619 | + std::vector<unsigned long>* indexes = new std::vector<unsigned long>; | |
17620 | + indexes->reserve(this->vals_->size()); | |
17621 | + Expression_list* vals = new Expression_list(); | |
17622 | + vals->reserve(this->vals_->size()); | |
17623 | unsigned long index = 0; | |
17624 | Expression_list::const_iterator p = this->vals_->begin(); | |
17625 | while (p != this->vals_->end()) | |
17626 | @@ -13470,104 +12569,113 @@ | |
17627 | ||
17628 | ++p; | |
17629 | ||
17630 | - if (index_expr != NULL) | |
17631 | + if (index_expr == NULL) | |
17632 | { | |
17633 | - mpz_t ival; | |
17634 | - mpz_init(ival); | |
17635 | + if (!indexes->empty()) | |
17636 | + indexes->push_back(index); | |
17637 | + } | |
17638 | + else | |
17639 | + { | |
17640 | + if (indexes->empty() && !vals->empty()) | |
17641 | + { | |
17642 | + for (size_t i = 0; i < vals->size(); ++i) | |
17643 | + indexes->push_back(i); | |
17644 | + } | |
17645 | ||
17646 | - Type* dummy; | |
17647 | - if (!index_expr->integer_constant_value(true, ival, &dummy)) | |
17648 | + Numeric_constant nc; | |
17649 | + if (!index_expr->numeric_constant_value(&nc)) | |
17650 | { | |
17651 | - mpz_clear(ival); | |
17652 | error_at(index_expr->location(), | |
17653 | "index expression is not integer constant"); | |
17654 | return Expression::make_error(location); | |
17655 | } | |
17656 | ||
17657 | - if (mpz_sgn(ival) < 0) | |
17658 | + switch (nc.to_unsigned_long(&index)) | |
17659 | { | |
17660 | - mpz_clear(ival); | |
17661 | + case Numeric_constant::NC_UL_VALID: | |
17662 | + break; | |
17663 | + case Numeric_constant::NC_UL_NOTINT: | |
17664 | + error_at(index_expr->location(), | |
17665 | + "index expression is not integer constant"); | |
17666 | + return Expression::make_error(location); | |
17667 | + case Numeric_constant::NC_UL_NEGATIVE: | |
17668 | error_at(index_expr->location(), "index expression is negative"); | |
17669 | return Expression::make_error(location); | |
17670 | - } | |
17671 | - | |
17672 | - index = mpz_get_ui(ival); | |
17673 | - if (mpz_cmp_ui(ival, index) != 0) | |
17674 | - { | |
17675 | - mpz_clear(ival); | |
17676 | + case Numeric_constant::NC_UL_BIG: | |
17677 | error_at(index_expr->location(), "index value overflow"); | |
17678 | return Expression::make_error(location); | |
17679 | + default: | |
17680 | + go_unreachable(); | |
17681 | } | |
17682 | ||
17683 | Named_type* ntype = Type::lookup_integer_type("int"); | |
17684 | Integer_type* inttype = ntype->integer_type(); | |
17685 | - mpz_t max; | |
17686 | - mpz_init_set_ui(max, 1); | |
17687 | - mpz_mul_2exp(max, max, inttype->bits() - 1); | |
17688 | - bool ok = mpz_cmp(ival, max) < 0; | |
17689 | - mpz_clear(max); | |
17690 | - if (!ok) | |
17691 | + if (sizeof(index) <= static_cast<size_t>(inttype->bits() * 8) | |
17692 | + && index >> (inttype->bits() - 1) != 0) | |
17693 | { | |
17694 | - mpz_clear(ival); | |
17695 | error_at(index_expr->location(), "index value overflow"); | |
17696 | return Expression::make_error(location); | |
17697 | } | |
17698 | ||
17699 | - mpz_clear(ival); | |
17700 | - | |
17701 | - // FIXME: Our representation isn't very good; this avoids | |
17702 | - // thrashing. | |
17703 | - if (index > 0x1000000) | |
17704 | + if (std::find(indexes->begin(), indexes->end(), index) | |
17705 | + != indexes->end()) | |
17706 | { | |
17707 | - error_at(index_expr->location(), "index too large for compiler"); | |
17708 | + error_at(index_expr->location(), "duplicate value for index %lu", | |
17709 | + index); | |
17710 | return Expression::make_error(location); | |
17711 | } | |
17712 | - } | |
17713 | ||
17714 | - if (index == vals.size()) | |
17715 | - vals.push_back(val); | |
17716 | - else | |
17717 | - { | |
17718 | - if (index > vals.size()) | |
17719 | - { | |
17720 | - vals.reserve(index + 32); | |
17721 | - vals.resize(index + 1, static_cast<Expression*>(NULL)); | |
17722 | - } | |
17723 | - if (vals[index] != NULL) | |
17724 | - { | |
17725 | - error_at((index_expr != NULL | |
17726 | - ? index_expr->location() | |
17727 | - : val->location()), | |
17728 | - "duplicate value for index %lu", | |
17729 | - index); | |
17730 | - return Expression::make_error(location); | |
17731 | - } | |
17732 | - vals[index] = val; | |
17733 | + indexes->push_back(index); | |
17734 | } | |
17735 | ||
17736 | + vals->push_back(val); | |
17737 | + | |
17738 | ++index; | |
17739 | } | |
17740 | ||
17741 | - size_t size = vals.size(); | |
17742 | - Expression_list* list = new Expression_list; | |
17743 | - list->reserve(size); | |
17744 | - for (size_t i = 0; i < size; ++i) | |
17745 | - list->push_back(vals[i]); | |
17746 | + if (indexes->empty()) | |
17747 | + { | |
17748 | + delete indexes; | |
17749 | + indexes = NULL; | |
17750 | + } | |
17751 | ||
17752 | - return this->make_array(type, list); | |
17753 | + return this->make_array(type, indexes, vals); | |
17754 | } | |
17755 | ||
17756 | // Actually build the array composite literal. This handles | |
17757 | // [...]{...}. | |
17758 | ||
17759 | Expression* | |
17760 | -Composite_literal_expression::make_array(Type* type, Expression_list* vals) | |
17761 | +Composite_literal_expression::make_array( | |
17762 | + Type* type, | |
17763 | + const std::vector<unsigned long>* indexes, | |
17764 | + Expression_list* vals) | |
17765 | { | |
17766 | Location location = this->location(); | |
17767 | Array_type* at = type->array_type(); | |
17768 | + | |
17769 | if (at->length() != NULL && at->length()->is_nil_expression()) | |
17770 | { | |
17771 | - size_t size = vals == NULL ? 0 : vals->size(); | |
17772 | + size_t size; | |
17773 | + if (vals == NULL) | |
17774 | + size = 0; | |
17775 | + else if (indexes == NULL) | |
17776 | + { | |
17777 | + size = vals->size(); | |
17778 | + Integer_type* it = Type::lookup_integer_type("int")->integer_type(); | |
17779 | + if (sizeof(size) <= static_cast<size_t>(it->bits() * 8) | |
17780 | + && size >> (it->bits() - 1) != 0) | |
17781 | + { | |
17782 | + error_at(location, "too many elements in composite literal"); | |
17783 | + return Expression::make_error(location); | |
17784 | + } | |
17785 | + } | |
17786 | + else | |
17787 | + { | |
17788 | + size = *std::max_element(indexes->begin(), indexes->end()); | |
17789 | + ++size; | |
17790 | + } | |
17791 | + | |
17792 | mpz_t vlen; | |
17793 | mpz_init_set_ui(vlen, size); | |
17794 | Expression* elen = Expression::make_integer(&vlen, NULL, location); | |
17795 | @@ -13575,10 +12683,44 @@ | |
17796 | at = Type::make_array_type(at->element_type(), elen); | |
17797 | type = at; | |
17798 | } | |
17799 | + else if (at->length() != NULL | |
17800 | + && !at->length()->is_error_expression() | |
17801 | + && this->vals_ != NULL) | |
17802 | + { | |
17803 | + Numeric_constant nc; | |
17804 | + unsigned long val; | |
17805 | + if (at->length()->numeric_constant_value(&nc) | |
17806 | + && nc.to_unsigned_long(&val) == Numeric_constant::NC_UL_VALID) | |
17807 | + { | |
17808 | + if (indexes == NULL) | |
17809 | + { | |
17810 | + if (this->vals_->size() > val) | |
17811 | + { | |
17812 | + error_at(location, "too many elements in composite literal"); | |
17813 | + return Expression::make_error(location); | |
17814 | + } | |
17815 | + } | |
17816 | + else | |
17817 | + { | |
17818 | + unsigned long max = *std::max_element(indexes->begin(), | |
17819 | + indexes->end()); | |
17820 | + if (max >= val) | |
17821 | + { | |
17822 | + error_at(location, | |
17823 | + ("some element keys in composite literal " | |
17824 | + "are out of range")); | |
17825 | + return Expression::make_error(location); | |
17826 | + } | |
17827 | + } | |
17828 | + } | |
17829 | + } | |
17830 | + | |
17831 | if (at->length() != NULL) | |
17832 | - return new Fixed_array_construction_expression(type, vals, location); | |
17833 | + return new Fixed_array_construction_expression(type, indexes, vals, | |
17834 | + location); | |
17835 | else | |
17836 | - return new Open_array_construction_expression(type, vals, location); | |
17837 | + return new Open_array_construction_expression(type, indexes, vals, | |
17838 | + location); | |
17839 | } | |
17840 | ||
17841 | // Lower a map composite literal. | |
17842 | @@ -14449,3 +13591,600 @@ | |
17843 | return true; | |
17844 | return false; | |
17845 | } | |
17846 | + | |
17847 | +// Class Numeric_constant. | |
17848 | + | |
17849 | +// Destructor. | |
17850 | + | |
17851 | +Numeric_constant::~Numeric_constant() | |
17852 | +{ | |
17853 | + this->clear(); | |
17854 | +} | |
17855 | + | |
17856 | +// Copy constructor. | |
17857 | + | |
17858 | +Numeric_constant::Numeric_constant(const Numeric_constant& a) | |
17859 | + : classification_(a.classification_), type_(a.type_) | |
17860 | +{ | |
17861 | + switch (a.classification_) | |
17862 | + { | |
17863 | + case NC_INVALID: | |
17864 | + break; | |
17865 | + case NC_INT: | |
17866 | + case NC_RUNE: | |
17867 | + mpz_init_set(this->u_.int_val, a.u_.int_val); | |
17868 | + break; | |
17869 | + case NC_FLOAT: | |
17870 | + mpfr_init_set(this->u_.float_val, a.u_.float_val, GMP_RNDN); | |
17871 | + break; | |
17872 | + case NC_COMPLEX: | |
17873 | + mpfr_init_set(this->u_.complex_val.real, a.u_.complex_val.real, | |
17874 | + GMP_RNDN); | |
17875 | + mpfr_init_set(this->u_.complex_val.imag, a.u_.complex_val.imag, | |
17876 | + GMP_RNDN); | |
17877 | + break; | |
17878 | + default: | |
17879 | + go_unreachable(); | |
17880 | + } | |
17881 | +} | |
17882 | + | |
17883 | +// Assignment operator. | |
17884 | + | |
17885 | +Numeric_constant& | |
17886 | +Numeric_constant::operator=(const Numeric_constant& a) | |
17887 | +{ | |
17888 | + this->clear(); | |
17889 | + this->classification_ = a.classification_; | |
17890 | + this->type_ = a.type_; | |
17891 | + switch (a.classification_) | |
17892 | + { | |
17893 | + case NC_INVALID: | |
17894 | + break; | |
17895 | + case NC_INT: | |
17896 | + case NC_RUNE: | |
17897 | + mpz_init_set(this->u_.int_val, a.u_.int_val); | |
17898 | + break; | |
17899 | + case NC_FLOAT: | |
17900 | + mpfr_init_set(this->u_.float_val, a.u_.float_val, GMP_RNDN); | |
17901 | + break; | |
17902 | + case NC_COMPLEX: | |
17903 | + mpfr_init_set(this->u_.complex_val.real, a.u_.complex_val.real, | |
17904 | + GMP_RNDN); | |
17905 | + mpfr_init_set(this->u_.complex_val.imag, a.u_.complex_val.imag, | |
17906 | + GMP_RNDN); | |
17907 | + break; | |
17908 | + default: | |
17909 | + go_unreachable(); | |
17910 | + } | |
17911 | + return *this; | |
17912 | +} | |
17913 | + | |
17914 | +// Clear the contents. | |
17915 | + | |
17916 | +void | |
17917 | +Numeric_constant::clear() | |
17918 | +{ | |
17919 | + switch (this->classification_) | |
17920 | + { | |
17921 | + case NC_INVALID: | |
17922 | + break; | |
17923 | + case NC_INT: | |
17924 | + case NC_RUNE: | |
17925 | + mpz_clear(this->u_.int_val); | |
17926 | + break; | |
17927 | + case NC_FLOAT: | |
17928 | + mpfr_clear(this->u_.float_val); | |
17929 | + break; | |
17930 | + case NC_COMPLEX: | |
17931 | + mpfr_clear(this->u_.complex_val.real); | |
17932 | + mpfr_clear(this->u_.complex_val.imag); | |
17933 | + break; | |
17934 | + default: | |
17935 | + go_unreachable(); | |
17936 | + } | |
17937 | + this->classification_ = NC_INVALID; | |
17938 | +} | |
17939 | + | |
17940 | +// Set to an unsigned long value. | |
17941 | + | |
17942 | +void | |
17943 | +Numeric_constant::set_unsigned_long(Type* type, unsigned long val) | |
17944 | +{ | |
17945 | + this->clear(); | |
17946 | + this->classification_ = NC_INT; | |
17947 | + this->type_ = type; | |
17948 | + mpz_init_set_ui(this->u_.int_val, val); | |
17949 | +} | |
17950 | + | |
17951 | +// Set to an integer value. | |
17952 | + | |
17953 | +void | |
17954 | +Numeric_constant::set_int(Type* type, const mpz_t val) | |
17955 | +{ | |
17956 | + this->clear(); | |
17957 | + this->classification_ = NC_INT; | |
17958 | + this->type_ = type; | |
17959 | + mpz_init_set(this->u_.int_val, val); | |
17960 | +} | |
17961 | + | |
17962 | +// Set to a rune value. | |
17963 | + | |
17964 | +void | |
17965 | +Numeric_constant::set_rune(Type* type, const mpz_t val) | |
17966 | +{ | |
17967 | + this->clear(); | |
17968 | + this->classification_ = NC_RUNE; | |
17969 | + this->type_ = type; | |
17970 | + mpz_init_set(this->u_.int_val, val); | |
17971 | +} | |
17972 | + | |
17973 | +// Set to a floating point value. | |
17974 | + | |
17975 | +void | |
17976 | +Numeric_constant::set_float(Type* type, const mpfr_t val) | |
17977 | +{ | |
17978 | + this->clear(); | |
17979 | + this->classification_ = NC_FLOAT; | |
17980 | + this->type_ = type; | |
17981 | + // Numeric constants do not have negative zero values, so remove | |
17982 | + // them here. They also don't have infinity or NaN values, but we | |
17983 | + // should never see them here. | |
17984 | + if (mpfr_zero_p(val)) | |
17985 | + mpfr_init_set_ui(this->u_.float_val, 0, GMP_RNDN); | |
17986 | + else | |
17987 | + mpfr_init_set(this->u_.float_val, val, GMP_RNDN); | |
17988 | +} | |
17989 | + | |
17990 | +// Set to a complex value. | |
17991 | + | |
17992 | +void | |
17993 | +Numeric_constant::set_complex(Type* type, const mpfr_t real, const mpfr_t imag) | |
17994 | +{ | |
17995 | + this->clear(); | |
17996 | + this->classification_ = NC_COMPLEX; | |
17997 | + this->type_ = type; | |
17998 | + mpfr_init_set(this->u_.complex_val.real, real, GMP_RNDN); | |
17999 | + mpfr_init_set(this->u_.complex_val.imag, imag, GMP_RNDN); | |
18000 | +} | |
18001 | + | |
18002 | +// Get an int value. | |
18003 | + | |
18004 | +void | |
18005 | +Numeric_constant::get_int(mpz_t* val) const | |
18006 | +{ | |
18007 | + go_assert(this->is_int()); | |
18008 | + mpz_init_set(*val, this->u_.int_val); | |
18009 | +} | |
18010 | + | |
18011 | +// Get a rune value. | |
18012 | + | |
18013 | +void | |
18014 | +Numeric_constant::get_rune(mpz_t* val) const | |
18015 | +{ | |
18016 | + go_assert(this->is_rune()); | |
18017 | + mpz_init_set(*val, this->u_.int_val); | |
18018 | +} | |
18019 | + | |
18020 | +// Get a floating point value. | |
18021 | + | |
18022 | +void | |
18023 | +Numeric_constant::get_float(mpfr_t* val) const | |
18024 | +{ | |
18025 | + go_assert(this->is_float()); | |
18026 | + mpfr_init_set(*val, this->u_.float_val, GMP_RNDN); | |
18027 | +} | |
18028 | + | |
18029 | +// Get a complex value. | |
18030 | + | |
18031 | +void | |
18032 | +Numeric_constant::get_complex(mpfr_t* real, mpfr_t* imag) const | |
18033 | +{ | |
18034 | + go_assert(this->is_complex()); | |
18035 | + mpfr_init_set(*real, this->u_.complex_val.real, GMP_RNDN); | |
18036 | + mpfr_init_set(*imag, this->u_.complex_val.imag, GMP_RNDN); | |
18037 | +} | |
18038 | + | |
18039 | +// Express value as unsigned long if possible. | |
18040 | + | |
18041 | +Numeric_constant::To_unsigned_long | |
18042 | +Numeric_constant::to_unsigned_long(unsigned long* val) const | |
18043 | +{ | |
18044 | + switch (this->classification_) | |
18045 | + { | |
18046 | + case NC_INT: | |
18047 | + case NC_RUNE: | |
18048 | + return this->mpz_to_unsigned_long(this->u_.int_val, val); | |
18049 | + case NC_FLOAT: | |
18050 | + return this->mpfr_to_unsigned_long(this->u_.float_val, val); | |
18051 | + case NC_COMPLEX: | |
18052 | + if (!mpfr_zero_p(this->u_.complex_val.imag)) | |
18053 | + return NC_UL_NOTINT; | |
18054 | + return this->mpfr_to_unsigned_long(this->u_.complex_val.real, val); | |
18055 | + default: | |
18056 | + go_unreachable(); | |
18057 | + } | |
18058 | +} | |
18059 | + | |
18060 | +// Express integer value as unsigned long if possible. | |
18061 | + | |
18062 | +Numeric_constant::To_unsigned_long | |
18063 | +Numeric_constant::mpz_to_unsigned_long(const mpz_t ival, | |
18064 | + unsigned long *val) const | |
18065 | +{ | |
18066 | + if (mpz_sgn(ival) < 0) | |
18067 | + return NC_UL_NEGATIVE; | |
18068 | + unsigned long ui = mpz_get_ui(ival); | |
18069 | + if (mpz_cmp_ui(ival, ui) != 0) | |
18070 | + return NC_UL_BIG; | |
18071 | + *val = ui; | |
18072 | + return NC_UL_VALID; | |
18073 | +} | |
18074 | + | |
18075 | +// Express floating point value as unsigned long if possible. | |
18076 | + | |
18077 | +Numeric_constant::To_unsigned_long | |
18078 | +Numeric_constant::mpfr_to_unsigned_long(const mpfr_t fval, | |
18079 | + unsigned long *val) const | |
18080 | +{ | |
18081 | + if (!mpfr_integer_p(fval)) | |
18082 | + return NC_UL_NOTINT; | |
18083 | + mpz_t ival; | |
18084 | + mpz_init(ival); | |
18085 | + mpfr_get_z(ival, fval, GMP_RNDN); | |
18086 | + To_unsigned_long ret = this->mpz_to_unsigned_long(ival, val); | |
18087 | + mpz_clear(ival); | |
18088 | + return ret; | |
18089 | +} | |
18090 | + | |
18091 | +// Convert value to integer if possible. | |
18092 | + | |
18093 | +bool | |
18094 | +Numeric_constant::to_int(mpz_t* val) const | |
18095 | +{ | |
18096 | + switch (this->classification_) | |
18097 | + { | |
18098 | + case NC_INT: | |
18099 | + case NC_RUNE: | |
18100 | + mpz_init_set(*val, this->u_.int_val); | |
18101 | + return true; | |
18102 | + case NC_FLOAT: | |
18103 | + if (!mpfr_integer_p(this->u_.float_val)) | |
18104 | + return false; | |
18105 | + mpz_init(*val); | |
18106 | + mpfr_get_z(*val, this->u_.float_val, GMP_RNDN); | |
18107 | + return true; | |
18108 | + case NC_COMPLEX: | |
18109 | + if (!mpfr_zero_p(this->u_.complex_val.imag) | |
18110 | + || !mpfr_integer_p(this->u_.complex_val.real)) | |
18111 | + return false; | |
18112 | + mpz_init(*val); | |
18113 | + mpfr_get_z(*val, this->u_.complex_val.real, GMP_RNDN); | |
18114 | + return true; | |
18115 | + default: | |
18116 | + go_unreachable(); | |
18117 | + } | |
18118 | +} | |
18119 | + | |
18120 | +// Convert value to floating point if possible. | |
18121 | + | |
18122 | +bool | |
18123 | +Numeric_constant::to_float(mpfr_t* val) const | |
18124 | +{ | |
18125 | + switch (this->classification_) | |
18126 | + { | |
18127 | + case NC_INT: | |
18128 | + case NC_RUNE: | |
18129 | + mpfr_init_set_z(*val, this->u_.int_val, GMP_RNDN); | |
18130 | + return true; | |
18131 | + case NC_FLOAT: | |
18132 | + mpfr_init_set(*val, this->u_.float_val, GMP_RNDN); | |
18133 | + return true; | |
18134 | + case NC_COMPLEX: | |
18135 | + if (!mpfr_zero_p(this->u_.complex_val.imag)) | |
18136 | + return false; | |
18137 | + mpfr_init_set(*val, this->u_.complex_val.real, GMP_RNDN); | |
18138 | + return true; | |
18139 | + default: | |
18140 | + go_unreachable(); | |
18141 | + } | |
18142 | +} | |
18143 | + | |
18144 | +// Convert value to complex. | |
18145 | + | |
18146 | +bool | |
18147 | +Numeric_constant::to_complex(mpfr_t* vr, mpfr_t* vi) const | |
18148 | +{ | |
18149 | + switch (this->classification_) | |
18150 | + { | |
18151 | + case NC_INT: | |
18152 | + case NC_RUNE: | |
18153 | + mpfr_init_set_z(*vr, this->u_.int_val, GMP_RNDN); | |
18154 | + mpfr_init_set_ui(*vi, 0, GMP_RNDN); | |
18155 | + return true; | |
18156 | + case NC_FLOAT: | |
18157 | + mpfr_init_set(*vr, this->u_.float_val, GMP_RNDN); | |
18158 | + mpfr_init_set_ui(*vi, 0, GMP_RNDN); | |
18159 | + return true; | |
18160 | + case NC_COMPLEX: | |
18161 | + mpfr_init_set(*vr, this->u_.complex_val.real, GMP_RNDN); | |
18162 | + mpfr_init_set(*vi, this->u_.complex_val.imag, GMP_RNDN); | |
18163 | + return true; | |
18164 | + default: | |
18165 | + go_unreachable(); | |
18166 | + } | |
18167 | +} | |
18168 | + | |
18169 | +// Get the type. | |
18170 | + | |
18171 | +Type* | |
18172 | +Numeric_constant::type() const | |
18173 | +{ | |
18174 | + if (this->type_ != NULL) | |
18175 | + return this->type_; | |
18176 | + switch (this->classification_) | |
18177 | + { | |
18178 | + case NC_INT: | |
18179 | + return Type::make_abstract_integer_type(); | |
18180 | + case NC_RUNE: | |
18181 | + return Type::make_abstract_character_type(); | |
18182 | + case NC_FLOAT: | |
18183 | + return Type::make_abstract_float_type(); | |
18184 | + case NC_COMPLEX: | |
18185 | + return Type::make_abstract_complex_type(); | |
18186 | + default: | |
18187 | + go_unreachable(); | |
18188 | + } | |
18189 | +} | |
18190 | + | |
18191 | +// If the constant can be expressed in TYPE, then set the type of the | |
18192 | +// constant to TYPE and return true. Otherwise return false, and, if | |
18193 | +// ISSUE_ERROR is true, report an appropriate error message. | |
18194 | + | |
18195 | +bool | |
18196 | +Numeric_constant::set_type(Type* type, bool issue_error, Location loc) | |
18197 | +{ | |
18198 | + bool ret; | |
18199 | + if (type == NULL) | |
18200 | + ret = true; | |
18201 | + else if (type->integer_type() != NULL) | |
18202 | + ret = this->check_int_type(type->integer_type(), issue_error, loc); | |
18203 | + else if (type->float_type() != NULL) | |
18204 | + ret = this->check_float_type(type->float_type(), issue_error, loc); | |
18205 | + else if (type->complex_type() != NULL) | |
18206 | + ret = this->check_complex_type(type->complex_type(), issue_error, loc); | |
18207 | + else | |
18208 | + go_unreachable(); | |
18209 | + if (ret) | |
18210 | + this->type_ = type; | |
18211 | + return ret; | |
18212 | +} | |
18213 | + | |
18214 | +// Check whether the constant can be expressed in an integer type. | |
18215 | + | |
18216 | +bool | |
18217 | +Numeric_constant::check_int_type(Integer_type* type, bool issue_error, | |
18218 | + Location location) const | |
18219 | +{ | |
18220 | + mpz_t val; | |
18221 | + switch (this->classification_) | |
18222 | + { | |
18223 | + case NC_INT: | |
18224 | + case NC_RUNE: | |
18225 | + mpz_init_set(val, this->u_.int_val); | |
18226 | + break; | |
18227 | + | |
18228 | + case NC_FLOAT: | |
18229 | + if (!mpfr_integer_p(this->u_.float_val)) | |
18230 | + { | |
18231 | + if (issue_error) | |
18232 | + error_at(location, "floating point constant truncated to integer"); | |
18233 | + return false; | |
18234 | + } | |
18235 | + mpz_init(val); | |
18236 | + mpfr_get_z(val, this->u_.float_val, GMP_RNDN); | |
18237 | + break; | |
18238 | + | |
18239 | + case NC_COMPLEX: | |
18240 | + if (!mpfr_integer_p(this->u_.complex_val.real) | |
18241 | + || !mpfr_zero_p(this->u_.complex_val.imag)) | |
18242 | + { | |
18243 | + if (issue_error) | |
18244 | + error_at(location, "complex constant truncated to integer"); | |
18245 | + return false; | |
18246 | + } | |
18247 | + mpz_init(val); | |
18248 | + mpfr_get_z(val, this->u_.complex_val.real, GMP_RNDN); | |
18249 | + break; | |
18250 | + | |
18251 | + default: | |
18252 | + go_unreachable(); | |
18253 | + } | |
18254 | + | |
18255 | + bool ret; | |
18256 | + if (type->is_abstract()) | |
18257 | + ret = true; | |
18258 | + else | |
18259 | + { | |
18260 | + int bits = mpz_sizeinbase(val, 2); | |
18261 | + if (type->is_unsigned()) | |
18262 | + { | |
18263 | + // For an unsigned type we can only accept a nonnegative | |
18264 | + // number, and we must be able to represents at least BITS. | |
18265 | + ret = mpz_sgn(val) >= 0 && bits <= type->bits(); | |
18266 | + } | |
18267 | + else | |
18268 | + { | |
18269 | + // For a signed type we need an extra bit to indicate the | |
18270 | + // sign. We have to handle the most negative integer | |
18271 | + // specially. | |
18272 | + ret = (bits + 1 <= type->bits() | |
18273 | + || (bits <= type->bits() | |
18274 | + && mpz_sgn(val) < 0 | |
18275 | + && (mpz_scan1(val, 0) | |
18276 | + == static_cast<unsigned long>(type->bits() - 1)) | |
18277 | + && mpz_scan0(val, type->bits()) == ULONG_MAX)); | |
18278 | + } | |
18279 | + } | |
18280 | + | |
18281 | + if (!ret && issue_error) | |
18282 | + error_at(location, "integer constant overflow"); | |
18283 | + | |
18284 | + return ret; | |
18285 | +} | |
18286 | + | |
18287 | +// Check whether the constant can be expressed in a floating point | |
18288 | +// type. | |
18289 | + | |
18290 | +bool | |
18291 | +Numeric_constant::check_float_type(Float_type* type, bool issue_error, | |
18292 | + Location location) const | |
18293 | +{ | |
18294 | + mpfr_t val; | |
18295 | + switch (this->classification_) | |
18296 | + { | |
18297 | + case NC_INT: | |
18298 | + case NC_RUNE: | |
18299 | + mpfr_init_set_z(val, this->u_.int_val, GMP_RNDN); | |
18300 | + break; | |
18301 | + | |
18302 | + case NC_FLOAT: | |
18303 | + mpfr_init_set(val, this->u_.float_val, GMP_RNDN); | |
18304 | + break; | |
18305 | + | |
18306 | + case NC_COMPLEX: | |
18307 | + if (!mpfr_zero_p(this->u_.complex_val.imag)) | |
18308 | + { | |
18309 | + if (issue_error) | |
18310 | + error_at(location, "complex constant truncated to float"); | |
18311 | + return false; | |
18312 | + } | |
18313 | + mpfr_init_set(val, this->u_.complex_val.real, GMP_RNDN); | |
18314 | + break; | |
18315 | + | |
18316 | + default: | |
18317 | + go_unreachable(); | |
18318 | + } | |
18319 | + | |
18320 | + bool ret; | |
18321 | + if (type->is_abstract()) | |
18322 | + ret = true; | |
18323 | + else if (mpfr_nan_p(val) || mpfr_inf_p(val) || mpfr_zero_p(val)) | |
18324 | + { | |
18325 | + // A NaN or Infinity always fits in the range of the type. | |
18326 | + ret = true; | |
18327 | + } | |
18328 | + else | |
18329 | + { | |
18330 | + mp_exp_t exp = mpfr_get_exp(val); | |
18331 | + mp_exp_t max_exp; | |
18332 | + switch (type->bits()) | |
18333 | + { | |
18334 | + case 32: | |
18335 | + max_exp = 128; | |
18336 | + break; | |
18337 | + case 64: | |
18338 | + max_exp = 1024; | |
18339 | + break; | |
18340 | + default: | |
18341 | + go_unreachable(); | |
18342 | + } | |
18343 | + | |
18344 | + ret = exp <= max_exp; | |
18345 | + } | |
18346 | + | |
18347 | + mpfr_clear(val); | |
18348 | + | |
18349 | + if (!ret && issue_error) | |
18350 | + error_at(location, "floating point constant overflow"); | |
18351 | + | |
18352 | + return ret; | |
18353 | +} | |
18354 | + | |
18355 | +// Check whether the constant can be expressed in a complex type. | |
18356 | + | |
18357 | +bool | |
18358 | +Numeric_constant::check_complex_type(Complex_type* type, bool issue_error, | |
18359 | + Location location) const | |
18360 | +{ | |
18361 | + if (type->is_abstract()) | |
18362 | + return true; | |
18363 | + | |
18364 | + mp_exp_t max_exp; | |
18365 | + switch (type->bits()) | |
18366 | + { | |
18367 | + case 64: | |
18368 | + max_exp = 128; | |
18369 | + break; | |
18370 | + case 128: | |
18371 | + max_exp = 1024; | |
18372 | + break; | |
18373 | + default: | |
18374 | + go_unreachable(); | |
18375 | + } | |
18376 | + | |
18377 | + mpfr_t real; | |
18378 | + switch (this->classification_) | |
18379 | + { | |
18380 | + case NC_INT: | |
18381 | + case NC_RUNE: | |
18382 | + mpfr_init_set_z(real, this->u_.int_val, GMP_RNDN); | |
18383 | + break; | |
18384 | + | |
18385 | + case NC_FLOAT: | |
18386 | + mpfr_init_set(real, this->u_.float_val, GMP_RNDN); | |
18387 | + break; | |
18388 | + | |
18389 | + case NC_COMPLEX: | |
18390 | + if (!mpfr_nan_p(this->u_.complex_val.imag) | |
18391 | + && !mpfr_inf_p(this->u_.complex_val.imag) | |
18392 | + && !mpfr_zero_p(this->u_.complex_val.imag)) | |
18393 | + { | |
18394 | + if (mpfr_get_exp(this->u_.complex_val.imag) > max_exp) | |
18395 | + { | |
18396 | + if (issue_error) | |
18397 | + error_at(location, "complex imaginary part overflow"); | |
18398 | + return false; | |
18399 | + } | |
18400 | + } | |
18401 | + mpfr_init_set(real, this->u_.complex_val.real, GMP_RNDN); | |
18402 | + break; | |
18403 | + | |
18404 | + default: | |
18405 | + go_unreachable(); | |
18406 | + } | |
18407 | + | |
18408 | + bool ret; | |
18409 | + if (mpfr_nan_p(real) || mpfr_inf_p(real) || mpfr_zero_p(real)) | |
18410 | + ret = true; | |
18411 | + else | |
18412 | + ret = mpfr_get_exp(real) <= max_exp; | |
18413 | + | |
18414 | + mpfr_clear(real); | |
18415 | + | |
18416 | + if (!ret && issue_error) | |
18417 | + error_at(location, "complex real part overflow"); | |
18418 | + | |
18419 | + return ret; | |
18420 | +} | |
18421 | + | |
18422 | +// Return an Expression for this value. | |
18423 | + | |
18424 | +Expression* | |
18425 | +Numeric_constant::expression(Location loc) const | |
18426 | +{ | |
18427 | + switch (this->classification_) | |
18428 | + { | |
18429 | + case NC_INT: | |
18430 | + return Expression::make_integer(&this->u_.int_val, this->type_, loc); | |
18431 | + case NC_RUNE: | |
18432 | + return Expression::make_character(&this->u_.int_val, this->type_, loc); | |
18433 | + case NC_FLOAT: | |
18434 | + return Expression::make_float(&this->u_.float_val, this->type_, loc); | |
18435 | + case NC_COMPLEX: | |
18436 | + return Expression::make_complex(&this->u_.complex_val.real, | |
18437 | + &this->u_.complex_val.imag, | |
18438 | + this->type_, loc); | |
18439 | + default: | |
18440 | + go_unreachable(); | |
18441 | + } | |
18442 | +} | |
18443 | Index: gcc/recog.c | |
18444 | =================================================================== | |
18445 | --- gcc/recog.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
18446 | +++ gcc/recog.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
18447 | @@ -2673,6 +2673,16 @@ | |
18448 | /* Every address operand can be reloaded to fit. */ | |
18449 | && strict < 0) | |
18450 | win = 1; | |
18451 | + /* Cater to architectures like IA-64 that define extra memory | |
18452 | + constraints without using define_memory_constraint. */ | |
18453 | + else if (reload_in_progress | |
18454 | + && REG_P (op) | |
18455 | + && REGNO (op) >= FIRST_PSEUDO_REGISTER | |
18456 | + && reg_renumber[REGNO (op)] < 0 | |
18457 | + && reg_equiv_mem (REGNO (op)) != 0 | |
18458 | + && EXTRA_CONSTRAINT_STR | |
18459 | + (reg_equiv_mem (REGNO (op)), c, p)) | |
18460 | + win = 1; | |
18461 | #endif | |
18462 | break; | |
18463 | } | |
18464 | Index: gcc/ada/a-zchuni.adb | |
18465 | =================================================================== | |
18466 | --- gcc/ada/a-zchuni.adb (.../tags/gcc_4_7_0_release) (wersja 187293) | |
18467 | +++ gcc/ada/a-zchuni.adb (.../branches/gcc-4_7-branch) (wersja 187293) | |
18468 | ||
18469 | Zmiany atrybutów dla: gcc/ada/a-zchuni.adb | |
18470 | ___________________________________________________________________ | |
18471 | Deleted: svn:executable | |
18472 | ## -1 +0,0 ## | |
18473 | -* | |
18474 | \ No newline at end of property | |
18475 | Index: gcc/ada/a-zchuni.ads | |
18476 | =================================================================== | |
18477 | --- gcc/ada/a-zchuni.ads (.../tags/gcc_4_7_0_release) (wersja 187293) | |
18478 | +++ gcc/ada/a-zchuni.ads (.../branches/gcc-4_7-branch) (wersja 187293) | |
18479 | ||
18480 | Zmiany atrybutów dla: gcc/ada/a-zchuni.ads | |
18481 | ___________________________________________________________________ | |
18482 | Deleted: svn:executable | |
18483 | ## -1 +0,0 ## | |
18484 | -* | |
18485 | \ No newline at end of property | |
18486 | Index: gcc/ada/s-tasloc.adb | |
18487 | =================================================================== | |
18488 | --- gcc/ada/s-tasloc.adb (.../tags/gcc_4_7_0_release) (wersja 187293) | |
18489 | +++ gcc/ada/s-tasloc.adb (.../branches/gcc-4_7-branch) (wersja 187293) | |
18490 | ||
18491 | Zmiany atrybutów dla: gcc/ada/s-tasloc.adb | |
18492 | ___________________________________________________________________ | |
18493 | Deleted: svn:executable | |
18494 | ## -1 +0,0 ## | |
18495 | -* | |
18496 | \ No newline at end of property | |
18497 | Index: gcc/ada/s-tasloc.ads | |
18498 | =================================================================== | |
18499 | --- gcc/ada/s-tasloc.ads (.../tags/gcc_4_7_0_release) (wersja 187293) | |
18500 | +++ gcc/ada/s-tasloc.ads (.../branches/gcc-4_7-branch) (wersja 187293) | |
18501 | ||
18502 | Zmiany atrybutów dla: gcc/ada/s-tasloc.ads | |
18503 | ___________________________________________________________________ | |
18504 | Deleted: svn:executable | |
18505 | ## -1 +0,0 ## | |
18506 | -* | |
18507 | \ No newline at end of property | |
18508 | Index: gcc/ada/s-string.adb | |
18509 | =================================================================== | |
18510 | --- gcc/ada/s-string.adb (.../tags/gcc_4_7_0_release) (wersja 187293) | |
18511 | +++ gcc/ada/s-string.adb (.../branches/gcc-4_7-branch) (wersja 187293) | |
18512 | ||
18513 | Zmiany atrybutów dla: gcc/ada/s-string.adb | |
18514 | ___________________________________________________________________ | |
18515 | Deleted: svn:executable | |
18516 | ## -1 +0,0 ## | |
18517 | -* | |
18518 | \ No newline at end of property | |
18519 | Index: gcc/ada/a-envvar.adb | |
18520 | =================================================================== | |
18521 | --- gcc/ada/a-envvar.adb (.../tags/gcc_4_7_0_release) (wersja 187293) | |
18522 | +++ gcc/ada/a-envvar.adb (.../branches/gcc-4_7-branch) (wersja 187293) | |
18523 | ||
18524 | Zmiany atrybutów dla: gcc/ada/a-envvar.adb | |
18525 | ___________________________________________________________________ | |
18526 | Deleted: svn:executable | |
18527 | ## -1 +0,0 ## | |
18528 | -* | |
18529 | \ No newline at end of property | |
18530 | Index: gcc/ada/s-string.ads | |
18531 | =================================================================== | |
18532 | --- gcc/ada/s-string.ads (.../tags/gcc_4_7_0_release) (wersja 187293) | |
18533 | +++ gcc/ada/s-string.ads (.../branches/gcc-4_7-branch) (wersja 187293) | |
18534 | ||
18535 | Zmiany atrybutów dla: gcc/ada/s-string.ads | |
18536 | ___________________________________________________________________ | |
18537 | Deleted: svn:executable | |
18538 | ## -1 +0,0 ## | |
18539 | -* | |
18540 | \ No newline at end of property | |
18541 | Index: gcc/ada/a-envvar.ads | |
18542 | =================================================================== | |
18543 | --- gcc/ada/a-envvar.ads (.../tags/gcc_4_7_0_release) (wersja 187293) | |
18544 | +++ gcc/ada/a-envvar.ads (.../branches/gcc-4_7-branch) (wersja 187293) | |
18545 | ||
18546 | Zmiany atrybutów dla: gcc/ada/a-envvar.ads | |
18547 | ___________________________________________________________________ | |
18548 | Deleted: svn:executable | |
18549 | ## -1 +0,0 ## | |
18550 | -* | |
18551 | \ No newline at end of property | |
18552 | Index: gcc/ada/sem_aux.adb | |
18553 | =================================================================== | |
18554 | --- gcc/ada/sem_aux.adb (.../tags/gcc_4_7_0_release) (wersja 187293) | |
18555 | +++ gcc/ada/sem_aux.adb (.../branches/gcc-4_7-branch) (wersja 187293) | |
18556 | ||
18557 | Zmiany atrybutów dla: gcc/ada/sem_aux.adb | |
18558 | ___________________________________________________________________ | |
18559 | Deleted: svn:executable | |
18560 | ## -1 +0,0 ## | |
18561 | -* | |
18562 | \ No newline at end of property | |
18563 | Index: gcc/ada/g-wispch.adb | |
18564 | =================================================================== | |
18565 | --- gcc/ada/g-wispch.adb (.../tags/gcc_4_7_0_release) (wersja 187293) | |
18566 | +++ gcc/ada/g-wispch.adb (.../branches/gcc-4_7-branch) (wersja 187293) | |
18567 | ||
18568 | Zmiany atrybutów dla: gcc/ada/g-wispch.adb | |
18569 | ___________________________________________________________________ | |
18570 | Deleted: svn:executable | |
18571 | ## -1 +0,0 ## | |
18572 | -* | |
18573 | \ No newline at end of property | |
18574 | Index: gcc/ada/sem_aux.ads | |
18575 | =================================================================== | |
18576 | --- gcc/ada/sem_aux.ads (.../tags/gcc_4_7_0_release) (wersja 187293) | |
18577 | +++ gcc/ada/sem_aux.ads (.../branches/gcc-4_7-branch) (wersja 187293) | |
18578 | ||
18579 | Zmiany atrybutów dla: gcc/ada/sem_aux.ads | |
18580 | ___________________________________________________________________ | |
18581 | Deleted: svn:executable | |
18582 | ## -1 +0,0 ## | |
18583 | -* | |
18584 | \ No newline at end of property | |
18585 | Index: gcc/ada/g-wispch.ads | |
18586 | =================================================================== | |
18587 | --- gcc/ada/g-wispch.ads (.../tags/gcc_4_7_0_release) (wersja 187293) | |
18588 | +++ gcc/ada/g-wispch.ads (.../branches/gcc-4_7-branch) (wersja 187293) | |
18589 | ||
18590 | Zmiany atrybutów dla: gcc/ada/g-wispch.ads | |
18591 | ___________________________________________________________________ | |
18592 | Deleted: svn:executable | |
18593 | ## -1 +0,0 ## | |
18594 | -* | |
18595 | \ No newline at end of property | |
18596 | Index: gcc/ada/a-tirsfi.adb | |
18597 | =================================================================== | |
18598 | --- gcc/ada/a-tirsfi.adb (.../tags/gcc_4_7_0_release) (wersja 187293) | |
18599 | +++ gcc/ada/a-tirsfi.adb (.../branches/gcc-4_7-branch) (wersja 187293) | |
18600 | ||
18601 | Zmiany atrybutów dla: gcc/ada/a-tirsfi.adb | |
18602 | ___________________________________________________________________ | |
18603 | Deleted: svn:executable | |
18604 | ## -1 +0,0 ## | |
18605 | -* | |
18606 | \ No newline at end of property | |
18607 | Index: gcc/ada/a-tirsfi.ads | |
18608 | =================================================================== | |
18609 | --- gcc/ada/a-tirsfi.ads (.../tags/gcc_4_7_0_release) (wersja 187293) | |
18610 | +++ gcc/ada/a-tirsfi.ads (.../branches/gcc-4_7-branch) (wersja 187293) | |
18611 | ||
18612 | Zmiany atrybutów dla: gcc/ada/a-tirsfi.ads | |
18613 | ___________________________________________________________________ | |
18614 | Deleted: svn:executable | |
18615 | ## -1 +0,0 ## | |
18616 | -* | |
18617 | \ No newline at end of property | |
18618 | Index: gcc/ada/g-encstr.adb | |
18619 | =================================================================== | |
18620 | --- gcc/ada/g-encstr.adb (.../tags/gcc_4_7_0_release) (wersja 187293) | |
18621 | +++ gcc/ada/g-encstr.adb (.../branches/gcc-4_7-branch) (wersja 187293) | |
18622 | ||
18623 | Zmiany atrybutów dla: gcc/ada/g-encstr.adb | |
18624 | ___________________________________________________________________ | |
18625 | Deleted: svn:executable | |
18626 | ## -1 +0,0 ## | |
18627 | -* | |
18628 | \ No newline at end of property | |
18629 | Index: gcc/ada/g-encstr.ads | |
18630 | =================================================================== | |
18631 | --- gcc/ada/g-encstr.ads (.../tags/gcc_4_7_0_release) (wersja 187293) | |
18632 | +++ gcc/ada/g-encstr.ads (.../branches/gcc-4_7-branch) (wersja 187293) | |
18633 | ||
18634 | Zmiany atrybutów dla: gcc/ada/g-encstr.ads | |
18635 | ___________________________________________________________________ | |
18636 | Deleted: svn:executable | |
18637 | ## -1 +0,0 ## | |
18638 | -* | |
18639 | \ No newline at end of property | |
18640 | Index: gcc/ada/s-regpat.adb | |
18641 | =================================================================== | |
18642 | --- gcc/ada/s-regpat.adb (.../tags/gcc_4_7_0_release) (wersja 187293) | |
18643 | +++ gcc/ada/s-regpat.adb (.../branches/gcc-4_7-branch) (wersja 187293) | |
18644 | ||
18645 | Zmiany atrybutów dla: gcc/ada/s-regpat.adb | |
18646 | ___________________________________________________________________ | |
18647 | Deleted: svn:executable | |
18648 | ## -1 +0,0 ## | |
18649 | -* | |
18650 | \ No newline at end of property | |
18651 | Index: gcc/ada/s-regpat.ads | |
18652 | =================================================================== | |
18653 | --- gcc/ada/s-regpat.ads (.../tags/gcc_4_7_0_release) (wersja 187293) | |
18654 | +++ gcc/ada/s-regpat.ads (.../branches/gcc-4_7-branch) (wersja 187293) | |
18655 | ||
18656 | Zmiany atrybutów dla: gcc/ada/s-regpat.ads | |
18657 | ___________________________________________________________________ | |
18658 | Deleted: svn:executable | |
18659 | ## -1 +0,0 ## | |
18660 | -* | |
18661 | \ No newline at end of property | |
18662 | Index: gcc/ada/a-zrstfi.adb | |
18663 | =================================================================== | |
18664 | --- gcc/ada/a-zrstfi.adb (.../tags/gcc_4_7_0_release) (wersja 187293) | |
18665 | +++ gcc/ada/a-zrstfi.adb (.../branches/gcc-4_7-branch) (wersja 187293) | |
18666 | ||
18667 | Zmiany atrybutów dla: gcc/ada/a-zrstfi.adb | |
18668 | ___________________________________________________________________ | |
18669 | Deleted: svn:executable | |
18670 | ## -1 +0,0 ## | |
18671 | -* | |
18672 | \ No newline at end of property | |
18673 | Index: gcc/ada/a-zrstfi.ads | |
18674 | =================================================================== | |
18675 | --- gcc/ada/a-zrstfi.ads (.../tags/gcc_4_7_0_release) (wersja 187293) | |
18676 | +++ gcc/ada/a-zrstfi.ads (.../branches/gcc-4_7-branch) (wersja 187293) | |
18677 | ||
18678 | Zmiany atrybutów dla: gcc/ada/a-zrstfi.ads | |
18679 | ___________________________________________________________________ | |
18680 | Deleted: svn:executable | |
18681 | ## -1 +0,0 ## | |
18682 | -* | |
18683 | \ No newline at end of property | |
18684 | Index: gcc/ada/a-suezst.adb | |
18685 | =================================================================== | |
18686 | --- gcc/ada/a-suezst.adb (.../tags/gcc_4_7_0_release) (wersja 187293) | |
18687 | +++ gcc/ada/a-suezst.adb (.../branches/gcc-4_7-branch) (wersja 187293) | |
18688 | ||
18689 | Zmiany atrybutów dla: gcc/ada/a-suezst.adb | |
18690 | ___________________________________________________________________ | |
18691 | Deleted: svn:executable | |
18692 | ## -1 +0,0 ## | |
18693 | -* | |
18694 | \ No newline at end of property | |
18695 | Index: gcc/ada/a-suezst.ads | |
18696 | =================================================================== | |
18697 | --- gcc/ada/a-suezst.ads (.../tags/gcc_4_7_0_release) (wersja 187293) | |
18698 | +++ gcc/ada/a-suezst.ads (.../branches/gcc-4_7-branch) (wersja 187293) | |
18699 | ||
18700 | Zmiany atrybutów dla: gcc/ada/a-suezst.ads | |
18701 | ___________________________________________________________________ | |
18702 | Deleted: svn:executable | |
18703 | ## -1 +0,0 ## | |
18704 | -* | |
18705 | \ No newline at end of property | |
18706 | Index: gcc/ada/a-zchhan.adb | |
18707 | =================================================================== | |
18708 | --- gcc/ada/a-zchhan.adb (.../tags/gcc_4_7_0_release) (wersja 187293) | |
18709 | +++ gcc/ada/a-zchhan.adb (.../branches/gcc-4_7-branch) (wersja 187293) | |
18710 | ||
18711 | Zmiany atrybutów dla: gcc/ada/a-zchhan.adb | |
18712 | ___________________________________________________________________ | |
18713 | Deleted: svn:executable | |
18714 | ## -1 +0,0 ## | |
18715 | -* | |
18716 | \ No newline at end of property | |
18717 | Index: gcc/ada/a-zchhan.ads | |
18718 | =================================================================== | |
18719 | --- gcc/ada/a-zchhan.ads (.../tags/gcc_4_7_0_release) (wersja 187293) | |
18720 | +++ gcc/ada/a-zchhan.ads (.../branches/gcc-4_7-branch) (wersja 187293) | |
18721 | ||
18722 | Zmiany atrybutów dla: gcc/ada/a-zchhan.ads | |
18723 | ___________________________________________________________________ | |
18724 | Deleted: svn:executable | |
18725 | ## -1 +0,0 ## | |
18726 | -* | |
18727 | \ No newline at end of property | |
18728 | Index: gcc/ada/a-suenco.adb | |
18729 | =================================================================== | |
18730 | --- gcc/ada/a-suenco.adb (.../tags/gcc_4_7_0_release) (wersja 187293) | |
18731 | +++ gcc/ada/a-suenco.adb (.../branches/gcc-4_7-branch) (wersja 187293) | |
18732 | ||
18733 | Zmiany atrybutów dla: gcc/ada/a-suenco.adb | |
18734 | ___________________________________________________________________ | |
18735 | Deleted: svn:executable | |
18736 | ## -1 +0,0 ## | |
18737 | -* | |
18738 | \ No newline at end of property | |
18739 | Index: gcc/ada/a-suenco.ads | |
18740 | =================================================================== | |
18741 | --- gcc/ada/a-suenco.ads (.../tags/gcc_4_7_0_release) (wersja 187293) | |
18742 | +++ gcc/ada/a-suenco.ads (.../branches/gcc-4_7-branch) (wersja 187293) | |
18743 | ||
18744 | Zmiany atrybutów dla: gcc/ada/a-suenco.ads | |
18745 | ___________________________________________________________________ | |
18746 | Deleted: svn:executable | |
18747 | ## -1 +0,0 ## | |
18748 | -* | |
18749 | \ No newline at end of property | |
18750 | Index: gcc/ada/a-chacon.adb | |
18751 | =================================================================== | |
18752 | --- gcc/ada/a-chacon.adb (.../tags/gcc_4_7_0_release) (wersja 187293) | |
18753 | +++ gcc/ada/a-chacon.adb (.../branches/gcc-4_7-branch) (wersja 187293) | |
18754 | ||
18755 | Zmiany atrybutów dla: gcc/ada/a-chacon.adb | |
18756 | ___________________________________________________________________ | |
18757 | Deleted: svn:executable | |
18758 | ## -1 +0,0 ## | |
18759 | -* | |
18760 | \ No newline at end of property | |
18761 | Index: gcc/ada/a-chacon.ads | |
18762 | =================================================================== | |
18763 | --- gcc/ada/a-chacon.ads (.../tags/gcc_4_7_0_release) (wersja 187293) | |
18764 | +++ gcc/ada/a-chacon.ads (.../branches/gcc-4_7-branch) (wersja 187293) | |
18765 | ||
18766 | Zmiany atrybutów dla: gcc/ada/a-chacon.ads | |
18767 | ___________________________________________________________________ | |
18768 | Deleted: svn:executable | |
18769 | ## -1 +0,0 ## | |
18770 | -* | |
18771 | \ No newline at end of property | |
18772 | Index: gcc/ada/a-lcteio.ads | |
18773 | =================================================================== | |
18774 | --- gcc/ada/a-lcteio.ads (.../tags/gcc_4_7_0_release) (wersja 187293) | |
18775 | +++ gcc/ada/a-lcteio.ads (.../branches/gcc-4_7-branch) (wersja 187293) | |
18776 | ||
18777 | Zmiany atrybutów dla: gcc/ada/a-lcteio.ads | |
18778 | ___________________________________________________________________ | |
18779 | Deleted: svn:executable | |
18780 | ## -1 +0,0 ## | |
18781 | -* | |
18782 | \ No newline at end of property | |
18783 | Index: gcc/ada/a-fzteio.ads | |
18784 | =================================================================== | |
18785 | --- gcc/ada/a-fzteio.ads (.../tags/gcc_4_7_0_release) (wersja 187293) | |
18786 | +++ gcc/ada/a-fzteio.ads (.../branches/gcc-4_7-branch) (wersja 187293) | |
18787 | ||
18788 | Zmiany atrybutów dla: gcc/ada/a-fzteio.ads | |
18789 | ___________________________________________________________________ | |
18790 | Deleted: svn:executable | |
18791 | ## -1 +0,0 ## | |
18792 | -* | |
18793 | \ No newline at end of property | |
18794 | Index: gcc/ada/s-inmaop-vxworks.adb | |
18795 | =================================================================== | |
18796 | --- gcc/ada/s-inmaop-vxworks.adb (.../tags/gcc_4_7_0_release) (wersja 187293) | |
18797 | +++ gcc/ada/s-inmaop-vxworks.adb (.../branches/gcc-4_7-branch) (wersja 187293) | |
18798 | ||
18799 | Zmiany atrybutów dla: gcc/ada/s-inmaop-vxworks.adb | |
18800 | ___________________________________________________________________ | |
18801 | Deleted: svn:executable | |
18802 | ## -1 +0,0 ## | |
18803 | -* | |
18804 | \ No newline at end of property | |
18805 | Index: gcc/ada/g-decstr.adb | |
18806 | =================================================================== | |
18807 | --- gcc/ada/g-decstr.adb (.../tags/gcc_4_7_0_release) (wersja 187293) | |
18808 | +++ gcc/ada/g-decstr.adb (.../branches/gcc-4_7-branch) (wersja 187293) | |
18809 | ||
18810 | Zmiany atrybutów dla: gcc/ada/g-decstr.adb | |
18811 | ___________________________________________________________________ | |
18812 | Deleted: svn:executable | |
18813 | ## -1 +0,0 ## | |
18814 | -* | |
18815 | \ No newline at end of property | |
18816 | Index: gcc/ada/g-decstr.ads | |
18817 | =================================================================== | |
18818 | --- gcc/ada/g-decstr.ads (.../tags/gcc_4_7_0_release) (wersja 187293) | |
18819 | +++ gcc/ada/g-decstr.ads (.../branches/gcc-4_7-branch) (wersja 187293) | |
18820 | ||
18821 | Zmiany atrybutów dla: gcc/ada/g-decstr.ads | |
18822 | ___________________________________________________________________ | |
18823 | Deleted: svn:executable | |
18824 | ## -1 +0,0 ## | |
18825 | -* | |
18826 | \ No newline at end of property | |
18827 | Index: gcc/ada/a-coteio.ads | |
18828 | =================================================================== | |
18829 | --- gcc/ada/a-coteio.ads (.../tags/gcc_4_7_0_release) (wersja 187293) | |
18830 | +++ gcc/ada/a-coteio.ads (.../branches/gcc-4_7-branch) (wersja 187293) | |
18831 | ||
18832 | Zmiany atrybutów dla: gcc/ada/a-coteio.ads | |
18833 | ___________________________________________________________________ | |
18834 | Deleted: svn:executable | |
18835 | ## -1 +0,0 ## | |
18836 | -* | |
18837 | \ No newline at end of property | |
18838 | Index: gcc/ada/s-except.adb | |
18839 | =================================================================== | |
18840 | --- gcc/ada/s-except.adb (.../tags/gcc_4_7_0_release) (wersja 187293) | |
18841 | +++ gcc/ada/s-except.adb (.../branches/gcc-4_7-branch) (wersja 187293) | |
18842 | ||
18843 | Zmiany atrybutów dla: gcc/ada/s-except.adb | |
18844 | ___________________________________________________________________ | |
18845 | Deleted: svn:executable | |
18846 | ## -1 +0,0 ## | |
18847 | -* | |
18848 | \ No newline at end of property | |
18849 | Index: gcc/ada/g-spchge.adb | |
18850 | =================================================================== | |
18851 | --- gcc/ada/g-spchge.adb (.../tags/gcc_4_7_0_release) (wersja 187293) | |
18852 | +++ gcc/ada/g-spchge.adb (.../branches/gcc-4_7-branch) (wersja 187293) | |
18853 | ||
18854 | Zmiany atrybutów dla: gcc/ada/g-spchge.adb | |
18855 | ___________________________________________________________________ | |
18856 | Deleted: svn:executable | |
18857 | ## -1 +0,0 ## | |
18858 | -* | |
18859 | \ No newline at end of property | |
18860 | Index: gcc/ada/ChangeLog | |
18861 | =================================================================== | |
18862 | --- gcc/ada/ChangeLog (.../tags/gcc_4_7_0_release) (wersja 187293) | |
18863 | +++ gcc/ada/ChangeLog (.../branches/gcc-4_7-branch) (wersja 187293) | |
18864 | @@ -1,3 +1,93 @@ | |
18865 | +2012-05-06 Pascal Obry <obry@adacore.com> | |
18866 | + | |
18867 | + Revert | |
18868 | + 2012-02-24 Dave Korn <dave.korn.cygwin@gmail.com> | |
18869 | + | |
18870 | + * gcc-interface/Makefile.in (WIN_SO_PREFIX [windows targets]): New | |
18871 | + Windows-specific make variable. | |
18872 | + (WIN_SO_INSTALL_DIR [windows targets]): Likewise. | |
18873 | + (install-gnatlib): Respect the above during installation when set, | |
18874 | + and also install any windows import library that has been built. | |
18875 | + (gnatlib-shared-win32): Use WIN_SO_PREFIX to name output DLL and also | |
18876 | + build a corresponding import library. | |
18877 | + | |
18878 | +2012-04-30 Eric Botcazou <ebotcazou@adacore.com> | |
18879 | + | |
18880 | + * gcc-interface/utils.c (finish_record_type): Force the traditional GCC | |
18881 | + layout for bitfields on the type if it is packed or has a representation | |
18882 | + clause and an alternate layout is available. | |
18883 | + | |
18884 | +2012-04-09 Mike Stump <mikestump@comcast.net> | |
18885 | + | |
18886 | + * a-assert.ads: Remove execute permission. | |
18887 | + * a-chacon.ads: Likewise. | |
18888 | + * a-coteio.ads: Likewise. | |
18889 | + * a-envvar.ads: Likewise. | |
18890 | + * a-exetim-mingw.ads: Likewise. | |
18891 | + * a-fzteio.ads: Likewise. | |
18892 | + * a-izteio.ads: Likewise. | |
18893 | + * a-lcteio.ads: Likewise. | |
18894 | + * a-llctio.ads: Likewise. | |
18895 | + * a-scteio.ads: Likewise. | |
18896 | + * a-suenco.ads: Likewise. | |
18897 | + * a-suenst.ads: Likewise. | |
18898 | + * a-suewst.ads: Likewise. | |
18899 | + * a-suezst.ads: Likewise. | |
18900 | + * a-tirsfi.ads: Likewise. | |
18901 | + * a-wichha.ads: Likewise. | |
18902 | + * a-zchara.ads: Likewise. | |
18903 | + * a-zchhan.ads: Likewise. | |
18904 | + * a-zchuni.ads: Likewise. | |
18905 | + * a-zrstfi.ads: Likewise. | |
18906 | + * aspects.ads: Likewise. | |
18907 | + * g-byorma.ads: Likewise. | |
18908 | + * g-decstr.ads: Likewise. | |
18909 | + * g-encstr.ads: Likewise. | |
18910 | + * g-spchge.ads: Likewise. | |
18911 | + * g-u3spch.ads: Likewise. | |
18912 | + * g-wispch.ads: Likewise. | |
18913 | + * g-zspche.ads: Likewise. | |
18914 | + * namet-sp.ads: Likewise. | |
18915 | + * s-os_lib.ads: Likewise. | |
18916 | + * s-regexp.ads: Likewise. | |
18917 | + * s-regpat.ads: Likewise. | |
18918 | + * s-string.ads: Likewise. | |
18919 | + * s-tasloc.ads: Likewise. | |
18920 | + * s-utf_32.ads: Likewise. | |
18921 | + * sem_aux.ads: Likewise. | |
18922 | + * a-assert.adb: Likewise. | |
18923 | + * a-chacon.adb: Likewise. | |
18924 | + * a-envvar.adb: Likewise. | |
18925 | + * a-exetim-mingw.adb: Likewise. | |
18926 | + * a-suenco.adb: Likewise. | |
18927 | + * a-suenst.adb: Likewise. | |
18928 | + * a-suewst.adb: Likewise. | |
18929 | + * a-suezst.adb: Likewise. | |
18930 | + * a-tirsfi.adb: Likewise. | |
18931 | + * a-wichha.adb: Likewise. | |
18932 | + * a-zchhan.adb: Likewise. | |
18933 | + * a-zchuni.adb: Likewise. | |
18934 | + * a-zrstfi.adb: Likewise. | |
18935 | + * aspects.adb: Likewise. | |
18936 | + * g-byorma.adb: Likewise. | |
18937 | + * g-decstr.adb: Likewise. | |
18938 | + * g-encstr.adb: Likewise. | |
18939 | + * g-spchge.adb: Likewise. | |
18940 | + * g-u3spch.adb: Likewise. | |
18941 | + * g-wispch.adb: Likewise. | |
18942 | + * g-zspche.adb: Likewise. | |
18943 | + * namet-sp.adb: Likewise. | |
18944 | + * s-except.adb: Likewise. | |
18945 | + * s-inmaop-vxworks.adb: Likewise. | |
18946 | + * s-os_lib.adb: Likewise. | |
18947 | + * s-regexp.adb: Likewise. | |
18948 | + * s-regpat.adb: Likewise. | |
18949 | + * s-string.adb: Likewise. | |
18950 | + * s-tasloc.adb: Likewise. | |
18951 | + * s-utf_32.adb: Likewise. | |
18952 | + * s-wchcon.adb: Likewise. | |
18953 | + * sem_aux.adb: Likewise. | |
18954 | + | |
18955 | 2012-03-22 Release Manager | |
18956 | ||
18957 | * GCC 4.7.0 released. | |
18958 | Index: gcc/ada/g-spchge.ads | |
18959 | =================================================================== | |
18960 | --- gcc/ada/g-spchge.ads (.../tags/gcc_4_7_0_release) (wersja 187293) | |
18961 | +++ gcc/ada/g-spchge.ads (.../branches/gcc-4_7-branch) (wersja 187293) | |
18962 | ||
18963 | Zmiany atrybutów dla: gcc/ada/g-spchge.ads | |
18964 | ___________________________________________________________________ | |
18965 | Deleted: svn:executable | |
18966 | ## -1 +0,0 ## | |
18967 | -* | |
18968 | \ No newline at end of property | |
18969 | Index: gcc/ada/g-u3spch.adb | |
18970 | =================================================================== | |
18971 | --- gcc/ada/g-u3spch.adb (.../tags/gcc_4_7_0_release) (wersja 187293) | |
18972 | +++ gcc/ada/g-u3spch.adb (.../branches/gcc-4_7-branch) (wersja 187293) | |
18973 | ||
18974 | Zmiany atrybutów dla: gcc/ada/g-u3spch.adb | |
18975 | ___________________________________________________________________ | |
18976 | Deleted: svn:executable | |
18977 | ## -1 +0,0 ## | |
18978 | -* | |
18979 | \ No newline at end of property | |
18980 | Index: gcc/ada/g-u3spch.ads | |
18981 | =================================================================== | |
18982 | --- gcc/ada/g-u3spch.ads (.../tags/gcc_4_7_0_release) (wersja 187293) | |
18983 | +++ gcc/ada/g-u3spch.ads (.../branches/gcc-4_7-branch) (wersja 187293) | |
18984 | ||
18985 | Zmiany atrybutów dla: gcc/ada/g-u3spch.ads | |
18986 | ___________________________________________________________________ | |
18987 | Deleted: svn:executable | |
18988 | ## -1 +0,0 ## | |
18989 | -* | |
18990 | \ No newline at end of property | |
18991 | Index: gcc/ada/s-utf_32.adb | |
18992 | =================================================================== | |
18993 | --- gcc/ada/s-utf_32.adb (.../tags/gcc_4_7_0_release) (wersja 187293) | |
18994 | +++ gcc/ada/s-utf_32.adb (.../branches/gcc-4_7-branch) (wersja 187293) | |
18995 | ||
18996 | Zmiany atrybutów dla: gcc/ada/s-utf_32.adb | |
18997 | ___________________________________________________________________ | |
18998 | Deleted: svn:executable | |
18999 | ## -1 +0,0 ## | |
19000 | -* | |
19001 | \ No newline at end of property | |
19002 | Index: gcc/ada/s-utf_32.ads | |
19003 | =================================================================== | |
19004 | --- gcc/ada/s-utf_32.ads (.../tags/gcc_4_7_0_release) (wersja 187293) | |
19005 | +++ gcc/ada/s-utf_32.ads (.../branches/gcc-4_7-branch) (wersja 187293) | |
19006 | ||
19007 | Zmiany atrybutów dla: gcc/ada/s-utf_32.ads | |
19008 | ___________________________________________________________________ | |
19009 | Deleted: svn:executable | |
19010 | ## -1 +0,0 ## | |
19011 | -* | |
19012 | \ No newline at end of property | |
19013 | Index: gcc/ada/aspects.adb | |
19014 | =================================================================== | |
19015 | --- gcc/ada/aspects.adb (.../tags/gcc_4_7_0_release) (wersja 187293) | |
19016 | +++ gcc/ada/aspects.adb (.../branches/gcc-4_7-branch) (wersja 187293) | |
19017 | ||
19018 | Zmiany atrybutów dla: gcc/ada/aspects.adb | |
19019 | ___________________________________________________________________ | |
19020 | Deleted: svn:executable | |
19021 | ## -1 +0,0 ## | |
19022 | -* | |
19023 | \ No newline at end of property | |
19024 | Index: gcc/ada/aspects.ads | |
19025 | =================================================================== | |
19026 | --- gcc/ada/aspects.ads (.../tags/gcc_4_7_0_release) (wersja 187293) | |
19027 | +++ gcc/ada/aspects.ads (.../branches/gcc-4_7-branch) (wersja 187293) | |
19028 | ||
19029 | Zmiany atrybutów dla: gcc/ada/aspects.ads | |
19030 | ___________________________________________________________________ | |
19031 | Deleted: svn:executable | |
19032 | ## -1 +0,0 ## | |
19033 | -* | |
19034 | \ No newline at end of property | |
19035 | Index: gcc/ada/a-izteio.ads | |
19036 | =================================================================== | |
19037 | --- gcc/ada/a-izteio.ads (.../tags/gcc_4_7_0_release) (wersja 187293) | |
19038 | +++ gcc/ada/a-izteio.ads (.../branches/gcc-4_7-branch) (wersja 187293) | |
19039 | ||
19040 | Zmiany atrybutów dla: gcc/ada/a-izteio.ads | |
19041 | ___________________________________________________________________ | |
19042 | Deleted: svn:executable | |
19043 | ## -1 +0,0 ## | |
19044 | -* | |
19045 | \ No newline at end of property | |
19046 | Index: gcc/ada/g-byorma.adb | |
19047 | =================================================================== | |
19048 | --- gcc/ada/g-byorma.adb (.../tags/gcc_4_7_0_release) (wersja 187293) | |
19049 | +++ gcc/ada/g-byorma.adb (.../branches/gcc-4_7-branch) (wersja 187293) | |
19050 | ||
19051 | Zmiany atrybutów dla: gcc/ada/g-byorma.adb | |
19052 | ___________________________________________________________________ | |
19053 | Deleted: svn:executable | |
19054 | ## -1 +0,0 ## | |
19055 | -* | |
19056 | \ No newline at end of property | |
19057 | Index: gcc/ada/g-byorma.ads | |
19058 | =================================================================== | |
19059 | --- gcc/ada/g-byorma.ads (.../tags/gcc_4_7_0_release) (wersja 187293) | |
19060 | +++ gcc/ada/g-byorma.ads (.../branches/gcc-4_7-branch) (wersja 187293) | |
19061 | ||
19062 | Zmiany atrybutów dla: gcc/ada/g-byorma.ads | |
19063 | ___________________________________________________________________ | |
19064 | Deleted: svn:executable | |
19065 | ## -1 +0,0 ## | |
19066 | -* | |
19067 | \ No newline at end of property | |
19068 | Index: gcc/ada/s-regexp.adb | |
19069 | =================================================================== | |
19070 | --- gcc/ada/s-regexp.adb (.../tags/gcc_4_7_0_release) (wersja 187293) | |
19071 | +++ gcc/ada/s-regexp.adb (.../branches/gcc-4_7-branch) (wersja 187293) | |
19072 | ||
19073 | Zmiany atrybutów dla: gcc/ada/s-regexp.adb | |
19074 | ___________________________________________________________________ | |
19075 | Deleted: svn:executable | |
19076 | ## -1 +0,0 ## | |
19077 | -* | |
19078 | \ No newline at end of property | |
19079 | Index: gcc/ada/s-regexp.ads | |
19080 | =================================================================== | |
19081 | --- gcc/ada/s-regexp.ads (.../tags/gcc_4_7_0_release) (wersja 187293) | |
19082 | +++ gcc/ada/s-regexp.ads (.../branches/gcc-4_7-branch) (wersja 187293) | |
19083 | ||
19084 | Zmiany atrybutów dla: gcc/ada/s-regexp.ads | |
19085 | ___________________________________________________________________ | |
19086 | Deleted: svn:executable | |
19087 | ## -1 +0,0 ## | |
19088 | -* | |
19089 | \ No newline at end of property | |
19090 | Index: gcc/ada/a-suenst.adb | |
19091 | =================================================================== | |
19092 | --- gcc/ada/a-suenst.adb (.../tags/gcc_4_7_0_release) (wersja 187293) | |
19093 | +++ gcc/ada/a-suenst.adb (.../branches/gcc-4_7-branch) (wersja 187293) | |
19094 | ||
19095 | Zmiany atrybutów dla: gcc/ada/a-suenst.adb | |
19096 | ___________________________________________________________________ | |
19097 | Deleted: svn:executable | |
19098 | ## -1 +0,0 ## | |
19099 | -* | |
19100 | \ No newline at end of property | |
19101 | Index: gcc/ada/a-suenst.ads | |
19102 | =================================================================== | |
19103 | --- gcc/ada/a-suenst.ads (.../tags/gcc_4_7_0_release) (wersja 187293) | |
19104 | +++ gcc/ada/a-suenst.ads (.../branches/gcc-4_7-branch) (wersja 187293) | |
19105 | ||
19106 | Zmiany atrybutów dla: gcc/ada/a-suenst.ads | |
19107 | ___________________________________________________________________ | |
19108 | Deleted: svn:executable | |
19109 | ## -1 +0,0 ## | |
19110 | -* | |
19111 | \ No newline at end of property | |
19112 | Index: gcc/ada/s-wchcon.adb | |
19113 | =================================================================== | |
19114 | --- gcc/ada/s-wchcon.adb (.../tags/gcc_4_7_0_release) (wersja 187293) | |
19115 | +++ gcc/ada/s-wchcon.adb (.../branches/gcc-4_7-branch) (wersja 187293) | |
19116 | ||
19117 | Zmiany atrybutów dla: gcc/ada/s-wchcon.adb | |
19118 | ___________________________________________________________________ | |
19119 | Deleted: svn:executable | |
19120 | ## -1 +0,0 ## | |
19121 | -* | |
19122 | \ No newline at end of property | |
19123 | Index: gcc/ada/g-zspche.adb | |
19124 | =================================================================== | |
19125 | --- gcc/ada/g-zspche.adb (.../tags/gcc_4_7_0_release) (wersja 187293) | |
19126 | +++ gcc/ada/g-zspche.adb (.../branches/gcc-4_7-branch) (wersja 187293) | |
19127 | ||
19128 | Zmiany atrybutów dla: gcc/ada/g-zspche.adb | |
19129 | ___________________________________________________________________ | |
19130 | Deleted: svn:executable | |
19131 | ## -1 +0,0 ## | |
19132 | -* | |
19133 | \ No newline at end of property | |
19134 | Index: gcc/ada/a-llctio.ads | |
19135 | =================================================================== | |
19136 | --- gcc/ada/a-llctio.ads (.../tags/gcc_4_7_0_release) (wersja 187293) | |
19137 | +++ gcc/ada/a-llctio.ads (.../branches/gcc-4_7-branch) (wersja 187293) | |
19138 | ||
19139 | Zmiany atrybutów dla: gcc/ada/a-llctio.ads | |
19140 | ___________________________________________________________________ | |
19141 | Deleted: svn:executable | |
19142 | ## -1 +0,0 ## | |
19143 | -* | |
19144 | \ No newline at end of property | |
19145 | Index: gcc/ada/g-zspche.ads | |
19146 | =================================================================== | |
19147 | --- gcc/ada/g-zspche.ads (.../tags/gcc_4_7_0_release) (wersja 187293) | |
19148 | +++ gcc/ada/g-zspche.ads (.../branches/gcc-4_7-branch) (wersja 187293) | |
19149 | ||
19150 | Zmiany atrybutów dla: gcc/ada/g-zspche.ads | |
19151 | ___________________________________________________________________ | |
19152 | Deleted: svn:executable | |
19153 | ## -1 +0,0 ## | |
19154 | -* | |
19155 | \ No newline at end of property | |
19156 | Index: gcc/ada/a-exetim-mingw.adb | |
19157 | =================================================================== | |
19158 | --- gcc/ada/a-exetim-mingw.adb (.../tags/gcc_4_7_0_release) (wersja 187293) | |
19159 | +++ gcc/ada/a-exetim-mingw.adb (.../branches/gcc-4_7-branch) (wersja 187293) | |
19160 | ||
19161 | Zmiany atrybutów dla: gcc/ada/a-exetim-mingw.adb | |
19162 | ___________________________________________________________________ | |
19163 | Deleted: svn:executable | |
19164 | ## -1 +0,0 ## | |
19165 | -* | |
19166 | \ No newline at end of property | |
19167 | Index: gcc/ada/a-exetim-mingw.ads | |
19168 | =================================================================== | |
19169 | --- gcc/ada/a-exetim-mingw.ads (.../tags/gcc_4_7_0_release) (wersja 187293) | |
19170 | +++ gcc/ada/a-exetim-mingw.ads (.../branches/gcc-4_7-branch) (wersja 187293) | |
19171 | ||
19172 | Zmiany atrybutów dla: gcc/ada/a-exetim-mingw.ads | |
19173 | ___________________________________________________________________ | |
19174 | Deleted: svn:executable | |
19175 | ## -1 +0,0 ## | |
19176 | -* | |
19177 | \ No newline at end of property | |
19178 | Index: gcc/ada/a-wichha.adb | |
19179 | =================================================================== | |
19180 | --- gcc/ada/a-wichha.adb (.../tags/gcc_4_7_0_release) (wersja 187293) | |
19181 | +++ gcc/ada/a-wichha.adb (.../branches/gcc-4_7-branch) (wersja 187293) | |
19182 | ||
19183 | Zmiany atrybutów dla: gcc/ada/a-wichha.adb | |
19184 | ___________________________________________________________________ | |
19185 | Deleted: svn:executable | |
19186 | ## -1 +0,0 ## | |
19187 | -* | |
19188 | \ No newline at end of property | |
19189 | Index: gcc/ada/a-wichha.ads | |
19190 | =================================================================== | |
19191 | --- gcc/ada/a-wichha.ads (.../tags/gcc_4_7_0_release) (wersja 187293) | |
19192 | +++ gcc/ada/a-wichha.ads (.../branches/gcc-4_7-branch) (wersja 187293) | |
19193 | ||
19194 | Zmiany atrybutów dla: gcc/ada/a-wichha.ads | |
19195 | ___________________________________________________________________ | |
19196 | Deleted: svn:executable | |
19197 | ## -1 +0,0 ## | |
19198 | -* | |
19199 | \ No newline at end of property | |
19200 | Index: gcc/ada/gcc-interface/utils.c | |
19201 | =================================================================== | |
19202 | --- gcc/ada/gcc-interface/utils.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
19203 | +++ gcc/ada/gcc-interface/utils.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
19204 | @@ -704,6 +704,19 @@ | |
19205 | case where there is a rep clause but all fields have errors and | |
19206 | no longer have a position. */ | |
19207 | TYPE_SIZE (record_type) = 0; | |
19208 | + | |
19209 | + /* Ensure we use the traditional GCC layout for bitfields when we need | |
19210 | + to pack the record type or have a representation clause. The other | |
19211 | + possible layout (Microsoft C compiler), if available, would prevent | |
19212 | + efficient packing in almost all cases. */ | |
19213 | +#ifdef TARGET_MS_BITFIELD_LAYOUT | |
19214 | + if (TARGET_MS_BITFIELD_LAYOUT && TYPE_PACKED (record_type)) | |
19215 | + decl_attributes (&record_type, | |
19216 | + tree_cons (get_identifier ("gcc_struct"), | |
19217 | + NULL_TREE, NULL_TREE), | |
19218 | + ATTR_FLAG_TYPE_IN_PLACE); | |
19219 | +#endif | |
19220 | + | |
19221 | layout_type (record_type); | |
19222 | } | |
19223 | ||
19224 | Index: gcc/ada/gcc-interface/Makefile.in | |
19225 | =================================================================== | |
19226 | --- gcc/ada/gcc-interface/Makefile.in (.../tags/gcc_4_7_0_release) (wersja 187293) | |
19227 | +++ gcc/ada/gcc-interface/Makefile.in (.../branches/gcc-4_7-branch) (wersja 187293) | |
19228 | @@ -1589,19 +1589,16 @@ | |
19229 | # the Cygwin port has always been a CygMing frankenhybrid and it is | |
19230 | # a long-term project to disentangle them. | |
19231 | ifeq ($(strip $(filter-out cygwin%,$(osys))),) | |
19232 | - WIN_SO_PREFIX=cyg | |
19233 | LIBGNAT_TARGET_PAIRS = \ | |
19234 | s-memory.adb<s-memory.adb \ | |
19235 | g-socthi.ads<g-socthi.ads \ | |
19236 | g-socthi.adb<g-socthi.adb | |
19237 | else | |
19238 | - WIN_SO_PREFIX=lib | |
19239 | LIBGNAT_TARGET_PAIRS = \ | |
19240 | s-memory.adb<s-memory-mingw.adb \ | |
19241 | g-socthi.ads<g-socthi-mingw.ads \ | |
19242 | g-socthi.adb<g-socthi-mingw.adb | |
19243 | endif | |
19244 | - WIN_SO_INSTALL_DIR = $(bindir) | |
19245 | LIBGNAT_TARGET_PAIRS += \ | |
19246 | a-dirval.adb<a-dirval-mingw.adb \ | |
19247 | a-excpol.adb<a-excpol-abort.adb \ | |
19248 | @@ -2452,14 +2449,11 @@ | |
19249 | # for shared libraries on some targets, e.g. on HP-UX where the x | |
19250 | # permission is required. | |
19251 | # Also install the .dSYM directories if they exist (these directories | |
19252 | -# contain the debug information for the shared libraries on darwin), | |
19253 | -# and the windows import libraries if they exist. | |
19254 | - libpfx=$(if $(WIN_SO_PREFIX),$(WIN_SO_PREFIX),lib); \ | |
19255 | - librtlobjdir=$(if $(WIN_SO_INSTALL_DIR),$(WIN_SO_INSTALL_DIR),$(ADA_RTL_OBJ_DIR)); \ | |
19256 | +# contain the debug information for the shared libraries on darwin) | |
19257 | for file in gnat gnarl; do \ | |
19258 | - if [ -f $(RTSDIR)/$${libpfx}$${file}$(hyphen)$(LIBRARY_VERSION)$(soext) ]; then \ | |
19259 | - $(INSTALL) $(RTSDIR)/$${libpfx}$${file}$(hyphen)$(LIBRARY_VERSION)$(soext) \ | |
19260 | - $(DESTDIR)$${librtlobjdir}; \ | |
19261 | + if [ -f $(RTSDIR)/lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext) ]; then \ | |
19262 | + $(INSTALL) $(RTSDIR)/lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext) \ | |
19263 | + $(DESTDIR)$(ADA_RTL_OBJ_DIR); \ | |
19264 | fi; \ | |
19265 | if [ -f $(RTSDIR)/lib$${file}$(soext) ]; then \ | |
19266 | $(LN_S) lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext) \ | |
19267 | @@ -2469,10 +2463,6 @@ | |
19268 | $(CP) -r $(RTSDIR)/lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext).dSYM \ | |
19269 | $(DESTDIR)$(ADA_RTL_OBJ_DIR); \ | |
19270 | fi; \ | |
19271 | - if [ -f $(RTSDIR)/lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext)$(arext) ]; then \ | |
19272 | - $(INSTALL_DATA) $(RTSDIR)/lib$${file}$(hyphen)$(LIBRARY_VERSION)$(soext)$(arext) \ | |
19273 | - $(DESTDIR)$(ADA_RTL_OBJ_DIR); \ | |
19274 | - fi; \ | |
19275 | done | |
19276 | # This copy must be done preserving the date on the original file. | |
19277 | for file in $(RTSDIR)/*.ad?; do \ | |
19278 | @@ -2684,18 +2674,16 @@ | |
19279 | cd $(RTSDIR); `echo "$(GCC_FOR_TARGET)" \ | |
19280 | | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` -shared -shared-libgcc \ | |
19281 | $(PICFLAG_FOR_TARGET) \ | |
19282 | - -o $(WIN_SO_PREFIX)gnat$(hyphen)$(LIBRARY_VERSION)$(soext) \ | |
19283 | - -Wl,-out-implib,libgnat$(hyphen)$(LIBRARY_VERSION)$(soext)$(arext) \ | |
19284 | + -o libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) \ | |
19285 | $(GNATRTL_NONTASKING_OBJS) $(LIBGNAT_OBJS) \ | |
19286 | - $(SO_OPTS)$(WIN_SO_PREFIX)gnat$(hyphen)$(LIBRARY_VERSION)$(soext) $(MISCLIB) | |
19287 | + $(SO_OPTS)libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) $(MISCLIB) | |
19288 | cd $(RTSDIR); `echo "$(GCC_FOR_TARGET)" \ | |
19289 | | sed -e 's,\./xgcc,../../xgcc,' -e 's,-B\./,-B../../,'` -shared -shared-libgcc \ | |
19290 | $(PICFLAG_FOR_TARGET) \ | |
19291 | - -o $(WIN_SO_PREFIX)gnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \ | |
19292 | - -Wl,-out-implib,libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext)$(arext) \ | |
19293 | + -o libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \ | |
19294 | $(GNATRTL_TASKING_OBJS) \ | |
19295 | - $(SO_OPTS)$(WIN_SO_PREFIX)gnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \ | |
19296 | - $(THREADSLIB) -L. -lgnat$(hyphen)$(LIBRARY_VERSION) | |
19297 | + $(SO_OPTS)libgnarl$(hyphen)$(LIBRARY_VERSION)$(soext) \ | |
19298 | + $(THREADSLIB) -Wl,libgnat$(hyphen)$(LIBRARY_VERSION)$(soext) | |
19299 | ||
19300 | gnatlib-shared-darwin: | |
19301 | $(MAKE) $(FLAGS_TO_PASS) \ | |
19302 | Index: gcc/ada/namet-sp.adb | |
19303 | =================================================================== | |
19304 | --- gcc/ada/namet-sp.adb (.../tags/gcc_4_7_0_release) (wersja 187293) | |
19305 | +++ gcc/ada/namet-sp.adb (.../branches/gcc-4_7-branch) (wersja 187293) | |
19306 | ||
19307 | Zmiany atrybutów dla: gcc/ada/namet-sp.adb | |
19308 | ___________________________________________________________________ | |
19309 | Deleted: svn:executable | |
19310 | ## -1 +0,0 ## | |
19311 | -* | |
19312 | \ No newline at end of property | |
19313 | Index: gcc/ada/namet-sp.ads | |
19314 | =================================================================== | |
19315 | --- gcc/ada/namet-sp.ads (.../tags/gcc_4_7_0_release) (wersja 187293) | |
19316 | +++ gcc/ada/namet-sp.ads (.../branches/gcc-4_7-branch) (wersja 187293) | |
19317 | ||
19318 | Zmiany atrybutów dla: gcc/ada/namet-sp.ads | |
19319 | ___________________________________________________________________ | |
19320 | Deleted: svn:executable | |
19321 | ## -1 +0,0 ## | |
19322 | -* | |
19323 | \ No newline at end of property | |
19324 | Index: gcc/ada/a-assert.adb | |
19325 | =================================================================== | |
19326 | --- gcc/ada/a-assert.adb (.../tags/gcc_4_7_0_release) (wersja 187293) | |
19327 | +++ gcc/ada/a-assert.adb (.../branches/gcc-4_7-branch) (wersja 187293) | |
19328 | ||
19329 | Zmiany atrybutów dla: gcc/ada/a-assert.adb | |
19330 | ___________________________________________________________________ | |
19331 | Deleted: svn:executable | |
19332 | ## -1 +0,0 ## | |
19333 | -* | |
19334 | \ No newline at end of property | |
19335 | Index: gcc/ada/a-assert.ads | |
19336 | =================================================================== | |
19337 | --- gcc/ada/a-assert.ads (.../tags/gcc_4_7_0_release) (wersja 187293) | |
19338 | +++ gcc/ada/a-assert.ads (.../branches/gcc-4_7-branch) (wersja 187293) | |
19339 | ||
19340 | Zmiany atrybutów dla: gcc/ada/a-assert.ads | |
19341 | ___________________________________________________________________ | |
19342 | Deleted: svn:executable | |
19343 | ## -1 +0,0 ## | |
19344 | -* | |
19345 | \ No newline at end of property | |
19346 | Index: gcc/ada/a-suewst.adb | |
19347 | =================================================================== | |
19348 | --- gcc/ada/a-suewst.adb (.../tags/gcc_4_7_0_release) (wersja 187293) | |
19349 | +++ gcc/ada/a-suewst.adb (.../branches/gcc-4_7-branch) (wersja 187293) | |
19350 | ||
19351 | Zmiany atrybutów dla: gcc/ada/a-suewst.adb | |
19352 | ___________________________________________________________________ | |
19353 | Deleted: svn:executable | |
19354 | ## -1 +0,0 ## | |
19355 | -* | |
19356 | \ No newline at end of property | |
19357 | Index: gcc/ada/a-suewst.ads | |
19358 | =================================================================== | |
19359 | --- gcc/ada/a-suewst.ads (.../tags/gcc_4_7_0_release) (wersja 187293) | |
19360 | +++ gcc/ada/a-suewst.ads (.../branches/gcc-4_7-branch) (wersja 187293) | |
19361 | ||
19362 | Zmiany atrybutów dla: gcc/ada/a-suewst.ads | |
19363 | ___________________________________________________________________ | |
19364 | Deleted: svn:executable | |
19365 | ## -1 +0,0 ## | |
19366 | -* | |
19367 | \ No newline at end of property | |
19368 | Index: gcc/ada/a-scteio.ads | |
19369 | =================================================================== | |
19370 | --- gcc/ada/a-scteio.ads (.../tags/gcc_4_7_0_release) (wersja 187293) | |
19371 | +++ gcc/ada/a-scteio.ads (.../branches/gcc-4_7-branch) (wersja 187293) | |
19372 | ||
19373 | Zmiany atrybutów dla: gcc/ada/a-scteio.ads | |
19374 | ___________________________________________________________________ | |
19375 | Deleted: svn:executable | |
19376 | ## -1 +0,0 ## | |
19377 | -* | |
19378 | \ No newline at end of property | |
19379 | Index: gcc/ada/s-os_lib.adb | |
19380 | =================================================================== | |
19381 | --- gcc/ada/s-os_lib.adb (.../tags/gcc_4_7_0_release) (wersja 187293) | |
19382 | +++ gcc/ada/s-os_lib.adb (.../branches/gcc-4_7-branch) (wersja 187293) | |
19383 | ||
19384 | Zmiany atrybutów dla: gcc/ada/s-os_lib.adb | |
19385 | ___________________________________________________________________ | |
19386 | Deleted: svn:executable | |
19387 | ## -1 +0,0 ## | |
19388 | -* | |
19389 | \ No newline at end of property | |
19390 | Index: gcc/ada/s-os_lib.ads | |
19391 | =================================================================== | |
19392 | --- gcc/ada/s-os_lib.ads (.../tags/gcc_4_7_0_release) (wersja 187293) | |
19393 | +++ gcc/ada/s-os_lib.ads (.../branches/gcc-4_7-branch) (wersja 187293) | |
19394 | ||
19395 | Zmiany atrybutów dla: gcc/ada/s-os_lib.ads | |
19396 | ___________________________________________________________________ | |
19397 | Deleted: svn:executable | |
19398 | ## -1 +0,0 ## | |
19399 | -* | |
19400 | \ No newline at end of property | |
19401 | Index: gcc/ada/a-zchara.ads | |
19402 | =================================================================== | |
19403 | --- gcc/ada/a-zchara.ads (.../tags/gcc_4_7_0_release) (wersja 187293) | |
19404 | +++ gcc/ada/a-zchara.ads (.../branches/gcc-4_7-branch) (wersja 187293) | |
19405 | ||
19406 | Zmiany atrybutów dla: gcc/ada/a-zchara.ads | |
19407 | ___________________________________________________________________ | |
19408 | Deleted: svn:executable | |
19409 | ## -1 +0,0 ## | |
19410 | -* | |
19411 | \ No newline at end of property | |
19412 | Index: gcc/fortran/ChangeLog | |
19413 | =================================================================== | |
19414 | --- gcc/fortran/ChangeLog (.../tags/gcc_4_7_0_release) (wersja 187293) | |
19415 | +++ gcc/fortran/ChangeLog (.../branches/gcc-4_7-branch) (wersja 187293) | |
19416 | @@ -1,3 +1,57 @@ | |
19417 | +2012-05-07 Tobias Burnus <burnus@net-b.de> | |
19418 | + | |
19419 | + Backport from mainline: | |
19420 | + 2012-05-07 Tobias Burnus <burnus@net-b.de> | |
19421 | + | |
19422 | + PR fortran/53255 | |
19423 | + * resolve.c (resolve_typebound_static): Fix handling | |
19424 | + of overridden specific to generic operator. | |
19425 | + | |
19426 | +2012-05-05 Tobias Burnus <burnus@net-b.de> | |
19427 | + | |
19428 | + Backport from mainline: | |
19429 | + 2012-05-04 Tobias Burnus <burnus@net-b.de> | |
19430 | + | |
19431 | + PR fortran/53111 | |
19432 | + * resolve.c (resolve_fl_derived): Fix -std=f95 | |
19433 | + diagnostic for generic vs. DT names. | |
19434 | + | |
19435 | +2012-05-02 Tobias Burnus <burnus@net-b.de> | |
19436 | + | |
19437 | + Backport from mainline | |
19438 | + 2012-04-12 Tobias Burnus <burnus@net-b.de> | |
19439 | + | |
19440 | + PR fortran/52864 | |
19441 | + * expr.c (gfc_check_vardef_context): Fix assignment check for | |
19442 | + pointer components. | |
19443 | + | |
19444 | +2012-04-30 Thomas Koenig <tkoenig@gcc.gnu.org> | |
19445 | + | |
19446 | + PR fortran/53148 | |
19447 | + Backport from trunk | |
19448 | + * frontend-passes.c (create_var): If the statement has a label, | |
19449 | + put the label around the block. | |
19450 | + | |
19451 | +2012-04-07 Thomas Koenig <tkoenig@gcc.gnu.org> | |
19452 | + | |
19453 | + PR fortran/52893 | |
19454 | + Backport from trunk | |
19455 | + * frontend-passes.c: Keep track of wether we are in an implicit | |
19456 | + DO loop; do not do function elimination if we are. | |
19457 | + | |
19458 | +2012-04-07 Thomas Koenig <tkoenig@gcc.gnu.org> | |
19459 | + | |
19460 | + PR fortran/52668 | |
19461 | + Backport from trunk | |
19462 | + * module.c: Only mark symbols as use_only if they have been | |
19463 | + imported via an only list. | |
19464 | + | |
19465 | +2012-03-22 Tobias Burnus <burnus@net-b.de> | |
19466 | + | |
19467 | + PR fortran/52452 | |
19468 | + * resolve.c (resolve_intrinsic): Don't search for a | |
19469 | + function if we know that it is a subroutine. | |
19470 | + | |
19471 | 2012-03-22 Release Manager | |
19472 | ||
19473 | * GCC 4.7.0 released. | |
19474 | Index: gcc/fortran/expr.c | |
19475 | =================================================================== | |
19476 | --- gcc/fortran/expr.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
19477 | +++ gcc/fortran/expr.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
19478 | @@ -4654,7 +4654,11 @@ | |
19479 | if (ptr_component && ref->type == REF_COMPONENT) | |
19480 | check_intentin = false; | |
19481 | if (ref->type == REF_COMPONENT && ref->u.c.component->attr.pointer) | |
19482 | - ptr_component = true; | |
19483 | + { | |
19484 | + ptr_component = true; | |
19485 | + if (!pointer) | |
19486 | + check_intentin = false; | |
19487 | + } | |
19488 | } | |
19489 | if (check_intentin && sym->attr.intent == INTENT_IN) | |
19490 | { | |
19491 | Index: gcc/fortran/module.c | |
19492 | =================================================================== | |
19493 | --- gcc/fortran/module.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
19494 | +++ gcc/fortran/module.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
19495 | @@ -4388,9 +4388,24 @@ | |
19496 | ||
19497 | /* Mark as only or rename for later diagnosis for explicitly imported | |
19498 | but not used warnings; don't mark internal symbols such as __vtab, | |
19499 | - __def_init etc. */ | |
19500 | + __def_init etc. Only mark them if they have been explicitly loaded. */ | |
19501 | + | |
19502 | if (only_flag && sym->name[0] != '_' && sym->name[1] != '_') | |
19503 | - sym->attr.use_only = 1; | |
19504 | + { | |
19505 | + gfc_use_rename *u; | |
19506 | + | |
19507 | + /* Search the use/rename list for the variable; if the variable is | |
19508 | + found, mark it. */ | |
19509 | + for (u = gfc_rename_list; u; u = u->next) | |
19510 | + { | |
19511 | + if (strcmp (u->use_name, sym->name) == 0) | |
19512 | + { | |
19513 | + sym->attr.use_only = 1; | |
19514 | + break; | |
19515 | + } | |
19516 | + } | |
19517 | + } | |
19518 | + | |
19519 | if (p->u.rsym.renamed) | |
19520 | sym->attr.use_rename = 1; | |
19521 | ||
19522 | Index: gcc/fortran/frontend-passes.c | |
19523 | =================================================================== | |
19524 | --- gcc/fortran/frontend-passes.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
19525 | +++ gcc/fortran/frontend-passes.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
19526 | @@ -70,6 +70,10 @@ | |
19527 | ||
19528 | static bool in_omp_workshare; | |
19529 | ||
19530 | +/* Keep track of iterators for array constructors. */ | |
19531 | + | |
19532 | +static int iterator_level; | |
19533 | + | |
19534 | /* Entry point - run all passes for a namespace. So far, only an | |
19535 | optimization pass is run. */ | |
19536 | ||
19537 | @@ -179,6 +183,12 @@ | |
19538 | if (forall_level > 0) | |
19539 | return 0; | |
19540 | ||
19541 | + /* Function elimination inside an iterator could lead to functions | |
19542 | + which depend on iterator variables being moved outside. */ | |
19543 | + | |
19544 | + if (iterator_level > 0) | |
19545 | + return 0; | |
19546 | + | |
19547 | /* If we don't know the shape at compile time, we create an allocatable | |
19548 | temporary variable to hold the intermediate result, but only if | |
19549 | allocation on assignment is active. */ | |
19550 | @@ -260,6 +270,16 @@ | |
19551 | inserted_block->ext.block.assoc = NULL; | |
19552 | ||
19553 | ns->code = *current_code; | |
19554 | + | |
19555 | + /* If the statement has a label, make sure it is transferred to | |
19556 | + the newly created block. */ | |
19557 | + | |
19558 | + if ((*current_code)->here) | |
19559 | + { | |
19560 | + inserted_block->here = (*current_code)->here; | |
19561 | + (*current_code)->here = NULL; | |
19562 | + } | |
19563 | + | |
19564 | inserted_block->next = (*current_code)->next; | |
19565 | changed_statement = &(inserted_block->ext.block.ns->code); | |
19566 | (*current_code)->next = NULL; | |
19567 | @@ -581,6 +601,7 @@ | |
19568 | ||
19569 | current_ns = ns; | |
19570 | forall_level = 0; | |
19571 | + iterator_level = 0; | |
19572 | in_omp_workshare = false; | |
19573 | ||
19574 | gfc_code_walker (&ns->code, convert_do_while, dummy_expr_callback, NULL); | |
19575 | @@ -1140,9 +1161,13 @@ | |
19576 | for (c = gfc_constructor_first ((*e)->value.constructor); c; | |
19577 | c = gfc_constructor_next (c)) | |
19578 | { | |
19579 | - WALK_SUBEXPR (c->expr); | |
19580 | - if (c->iterator != NULL) | |
19581 | + if (c->iterator == NULL) | |
19582 | + WALK_SUBEXPR (c->expr); | |
19583 | + else | |
19584 | { | |
19585 | + iterator_level ++; | |
19586 | + WALK_SUBEXPR (c->expr); | |
19587 | + iterator_level --; | |
19588 | WALK_SUBEXPR (c->iterator->var); | |
19589 | WALK_SUBEXPR (c->iterator->start); | |
19590 | WALK_SUBEXPR (c->iterator->end); | |
19591 | Index: gcc/fortran/resolve.c | |
19592 | =================================================================== | |
19593 | --- gcc/fortran/resolve.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
19594 | +++ gcc/fortran/resolve.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
19595 | @@ -1496,7 +1496,7 @@ | |
19596 | ||
19597 | if (sym->intmod_sym_id) | |
19598 | isym = gfc_intrinsic_function_by_id ((gfc_isym_id) sym->intmod_sym_id); | |
19599 | - else | |
19600 | + else if (!sym->attr.subroutine) | |
19601 | isym = gfc_find_function (sym->name); | |
19602 | ||
19603 | if (isym) | |
19604 | @@ -5624,12 +5624,11 @@ | |
19605 | e->value.compcall.actual = NULL; | |
19606 | ||
19607 | /* If we find a deferred typebound procedure, check for derived types | |
19608 | - that an over-riding typebound procedure has not been missed. */ | |
19609 | - if (e->value.compcall.tbp->deferred | |
19610 | - && e->value.compcall.name | |
19611 | - && !e->value.compcall.tbp->non_overridable | |
19612 | - && e->value.compcall.base_object | |
19613 | - && e->value.compcall.base_object->ts.type == BT_DERIVED) | |
19614 | + that an overriding typebound procedure has not been missed. */ | |
19615 | + if (e->value.compcall.name | |
19616 | + && !e->value.compcall.tbp->non_overridable | |
19617 | + && e->value.compcall.base_object | |
19618 | + && e->value.compcall.base_object->ts.type == BT_DERIVED) | |
19619 | { | |
19620 | gfc_symtree *st; | |
19621 | gfc_symbol *derived; | |
19622 | @@ -11991,6 +11990,8 @@ | |
19623 | if (!sym->attr.is_class) | |
19624 | gfc_find_symbol (sym->name, sym->ns, 0, &gen_dt); | |
19625 | if (gen_dt && gen_dt->generic && gen_dt->generic->next | |
19626 | + && (!gen_dt->generic->sym->attr.use_assoc | |
19627 | + || gen_dt->generic->sym->module != gen_dt->generic->next->sym->module) | |
19628 | && gfc_notify_std (GFC_STD_F2003, "Fortran 2003: Generic name '%s' of " | |
19629 | "function '%s' at %L being the same name as derived " | |
19630 | "type at %L", sym->name, | |
19631 | Index: gcc/configure.ac | |
19632 | =================================================================== | |
19633 | --- gcc/configure.ac (.../tags/gcc_4_7_0_release) (wersja 187293) | |
19634 | +++ gcc/configure.ac (.../branches/gcc-4_7-branch) (wersja 187293) | |
19635 | @@ -4430,7 +4430,15 @@ | |
19636 | fi | |
19637 | ||
19638 | case "$target:$tm_file" in | |
19639 | - powerpc64*-*-linux* | powerpc*-*-linux*rs6000/biarch64.h*) | |
19640 | + powerpc64-*-freebsd* | powerpc64*-*-linux* | powerpc*-*-linux*rs6000/biarch64.h*) | |
19641 | + case "$target" in | |
19642 | + *-*-linux*) | |
19643 | + emul_name="-melf64ppc" | |
19644 | + ;; | |
19645 | + *-*-freebsd*) | |
19646 | + emul_name="-melf64ppc_fbsd" | |
19647 | + ;; | |
19648 | + esac | |
19649 | AC_CACHE_CHECK(linker support for omitting dot symbols, | |
19650 | gcc_cv_ld_no_dot_syms, | |
19651 | [gcc_cv_ld_no_dot_syms=no | |
19652 | @@ -4457,7 +4465,7 @@ | |
19653 | EOF | |
19654 | if $gcc_cv_as -a64 -o conftest1.o conftest1.s > /dev/null 2>&1 \ | |
19655 | && $gcc_cv_as -a64 -o conftest2.o conftest2.s > /dev/null 2>&1 \ | |
19656 | - && $gcc_cv_ld -melf64ppc -o conftest conftest1.o conftest2.o > /dev/null 2>&1; then | |
19657 | + && $gcc_cv_ld $emul_name -o conftest conftest1.o conftest2.o > /dev/null 2>&1; then | |
19658 | gcc_cv_ld_no_dot_syms=yes | |
19659 | fi | |
19660 | rm -f conftest conftest1.o conftest2.o conftest1.s conftest2.s | |
19661 | @@ -4487,7 +4495,7 @@ | |
19662 | ld 9,ie0@got@tprel@l(9) | |
19663 | EOF | |
19664 | if $gcc_cv_as -a64 -o conftest.o conftest.s > /dev/null 2>&1 \ | |
19665 | - && $gcc_cv_ld -melf64ppc --no-toc-sort -o conftest conftest.o > /dev/null 2>&1; then | |
19666 | + && $gcc_cv_ld $emul_name --no-toc-sort -o conftest conftest.o > /dev/null 2>&1; then | |
19667 | gcc_cv_ld_large_toc=yes | |
19668 | fi | |
19669 | rm -f conftest conftest.o conftest.s | |
19670 | Index: gcc/BASE-VER | |
19671 | =================================================================== | |
19672 | --- gcc/BASE-VER (.../tags/gcc_4_7_0_release) (wersja 187293) | |
19673 | +++ gcc/BASE-VER (.../branches/gcc-4_7-branch) (wersja 187293) | |
19674 | @@ -1 +1 @@ | |
19675 | -4.7.0 | |
19676 | +4.7.1 | |
19677 | Index: gcc/gcc-ar.c | |
19678 | =================================================================== | |
19679 | --- gcc/gcc-ar.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
19680 | +++ gcc/gcc-ar.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
19681 | @@ -1,5 +1,5 @@ | |
19682 | /* Wrapper for ar/ranlib/nm to pass the LTO plugin. | |
19683 | - Copyright (C) 2011 Free Software Foundation, Inc. | |
19684 | + Copyright (C) 2011, 2012 Free Software Foundation, Inc. | |
19685 | Contributed by Andi Kleen. | |
19686 | ||
19687 | This file is part of GCC. | |
19688 | @@ -52,11 +52,16 @@ | |
19689 | /* XXX implement more magic from gcc.c? */ | |
19690 | nprefix = getenv ("GCC_EXEC_PREFIX"); | |
19691 | if (!nprefix) | |
19692 | + nprefix = av[0]; | |
19693 | + else | |
19694 | + nprefix = concat (nprefix, "gcc-" PERSONALITY, NULL); | |
19695 | + | |
19696 | + nprefix = make_relative_prefix (nprefix, | |
19697 | + standard_bin_prefix, | |
19698 | + standard_libexec_prefix); | |
19699 | + if (nprefix == NULL) | |
19700 | nprefix = standard_libexec_prefix; | |
19701 | ||
19702 | - nprefix = make_relative_prefix (av[0], | |
19703 | - standard_bin_prefix, | |
19704 | - nprefix); | |
19705 | plugin = concat (nprefix, | |
19706 | dir_separator, | |
19707 | DEFAULT_TARGET_MACHINE, | |
19708 | Index: gcc/tree-vectorizer.h | |
19709 | =================================================================== | |
19710 | --- gcc/tree-vectorizer.h (.../tags/gcc_4_7_0_release) (wersja 187293) | |
19711 | +++ gcc/tree-vectorizer.h (.../branches/gcc-4_7-branch) (wersja 187293) | |
19712 | @@ -476,6 +476,13 @@ | |
19713 | tree dr_step; | |
19714 | tree dr_aligned_to; | |
19715 | ||
19716 | + /* For loop PHI nodes, the evolution part of it. This makes sure | |
19717 | + this information is still available in vect_update_ivs_after_vectorizer | |
19718 | + where we may not be able to re-analyze the PHI nodes evolution as | |
19719 | + peeling for the prologue loop can make it unanalyzable. The evolution | |
19720 | + part is still correct though. */ | |
19721 | + tree loop_phi_evolution_part; | |
19722 | + | |
19723 | /* Used for various bookkeeping purposes, generally holding a pointer to | |
19724 | some other stmt S that is in some way "related" to this stmt. | |
19725 | Current use of this field is: | |
19726 | @@ -572,6 +579,7 @@ | |
19727 | #define STMT_VINFO_GROUP_SAME_DR_STMT(S) (S)->same_dr_stmt | |
19728 | #define STMT_VINFO_GROUP_READ_WRITE_DEPENDENCE(S) (S)->read_write_dep | |
19729 | #define STMT_VINFO_STRIDED_ACCESS(S) ((S)->first_element != NULL && (S)->data_ref_info) | |
19730 | +#define STMT_VINFO_LOOP_PHI_EVOLUTION_PART(S) (S)->loop_phi_evolution_part | |
19731 | ||
19732 | #define GROUP_FIRST_ELEMENT(S) (S)->first_element | |
19733 | #define GROUP_NEXT_ELEMENT(S) (S)->next_element | |
19734 | Index: gcc/tree-if-conv.c | |
19735 | =================================================================== | |
19736 | --- gcc/tree-if-conv.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
19737 | +++ gcc/tree-if-conv.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
19738 | @@ -1543,11 +1543,19 @@ | |
19739 | gimple_stmt_iterator gsi; | |
19740 | basic_block bb = ifc_bbs[i]; | |
19741 | tree cond = bb_predicate (bb); | |
19742 | + bool swap; | |
19743 | gimple stmt; | |
19744 | ||
19745 | if (is_true_predicate (cond)) | |
19746 | continue; | |
19747 | ||
19748 | + swap = false; | |
19749 | + if (TREE_CODE (cond) == TRUTH_NOT_EXPR) | |
19750 | + { | |
19751 | + swap = true; | |
19752 | + cond = TREE_OPERAND (cond, 0); | |
19753 | + } | |
19754 | + | |
19755 | for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi)) | |
19756 | if ((stmt = gsi_stmt (gsi)) | |
19757 | && gimple_assign_single_p (stmt) | |
19758 | @@ -1559,6 +1567,15 @@ | |
19759 | ||
19760 | lhs = ifc_temp_var (type, unshare_expr (lhs), &gsi); | |
19761 | rhs = ifc_temp_var (type, unshare_expr (rhs), &gsi); | |
19762 | + if (swap) | |
19763 | + { | |
19764 | + tree tem = lhs; | |
19765 | + lhs = rhs; | |
19766 | + rhs = tem; | |
19767 | + } | |
19768 | + cond = force_gimple_operand_gsi_1 (&gsi, unshare_expr (cond), | |
19769 | + is_gimple_condexpr, NULL_TREE, | |
19770 | + true, GSI_SAME_STMT); | |
19771 | rhs = build3 (COND_EXPR, type, unshare_expr (cond), rhs, lhs); | |
19772 | gimple_assign_set_rhs1 (stmt, ifc_temp_var (type, rhs, &gsi)); | |
19773 | update_stmt (stmt); | |
19774 | Index: gcc/tree-vect-loop.c | |
19775 | =================================================================== | |
19776 | --- gcc/tree-vect-loop.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
19777 | +++ gcc/tree-vect-loop.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
19778 | @@ -565,11 +565,15 @@ | |
19779 | /* Analyze the evolution function. */ | |
19780 | access_fn = analyze_scalar_evolution (loop, def); | |
19781 | if (access_fn) | |
19782 | - STRIP_NOPS (access_fn); | |
19783 | - if (access_fn && vect_print_dump_info (REPORT_DETAILS)) | |
19784 | { | |
19785 | - fprintf (vect_dump, "Access function of PHI: "); | |
19786 | - print_generic_expr (vect_dump, access_fn, TDF_SLIM); | |
19787 | + STRIP_NOPS (access_fn); | |
19788 | + if (vect_print_dump_info (REPORT_DETAILS)) | |
19789 | + { | |
19790 | + fprintf (vect_dump, "Access function of PHI: "); | |
19791 | + print_generic_expr (vect_dump, access_fn, TDF_SLIM); | |
19792 | + } | |
19793 | + STMT_VINFO_LOOP_PHI_EVOLUTION_PART (stmt_vinfo) | |
19794 | + = evolution_part_in_loop_num (access_fn, loop->num); | |
19795 | } | |
19796 | ||
19797 | if (!access_fn | |
19798 | @@ -579,6 +583,8 @@ | |
19799 | continue; | |
19800 | } | |
19801 | ||
19802 | + gcc_assert (STMT_VINFO_LOOP_PHI_EVOLUTION_PART (stmt_vinfo) != NULL_TREE); | |
19803 | + | |
19804 | if (vect_print_dump_info (REPORT_DETAILS)) | |
19805 | fprintf (vect_dump, "Detected induction."); | |
19806 | STMT_VINFO_DEF_TYPE (stmt_vinfo) = vect_induction_def; | |
19807 | Index: gcc/tree-data-ref.c | |
19808 | =================================================================== | |
19809 | --- gcc/tree-data-ref.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
19810 | +++ gcc/tree-data-ref.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
19811 | @@ -856,7 +856,7 @@ | |
19812 | dr_analyze_indices (struct data_reference *dr, loop_p nest, loop_p loop) | |
19813 | { | |
19814 | VEC (tree, heap) *access_fns = NULL; | |
19815 | - tree ref, *aref, op; | |
19816 | + tree ref, op; | |
19817 | tree base, off, access_fn; | |
19818 | basic_block before_loop; | |
19819 | ||
19820 | @@ -869,7 +869,7 @@ | |
19821 | return; | |
19822 | } | |
19823 | ||
19824 | - ref = unshare_expr (DR_REF (dr)); | |
19825 | + ref = DR_REF (dr); | |
19826 | before_loop = block_before_loop (nest); | |
19827 | ||
19828 | /* REALPART_EXPR and IMAGPART_EXPR can be handled like accesses | |
19829 | @@ -887,61 +887,84 @@ | |
19830 | } | |
19831 | ||
19832 | /* Analyze access functions of dimensions we know to be independent. */ | |
19833 | - aref = &ref; | |
19834 | - while (handled_component_p (*aref)) | |
19835 | + while (handled_component_p (ref)) | |
19836 | { | |
19837 | - if (TREE_CODE (*aref) == ARRAY_REF) | |
19838 | + if (TREE_CODE (ref) == ARRAY_REF) | |
19839 | { | |
19840 | - op = TREE_OPERAND (*aref, 1); | |
19841 | + op = TREE_OPERAND (ref, 1); | |
19842 | access_fn = analyze_scalar_evolution (loop, op); | |
19843 | access_fn = instantiate_scev (before_loop, loop, access_fn); | |
19844 | VEC_safe_push (tree, heap, access_fns, access_fn); | |
19845 | - /* For ARRAY_REFs the base is the reference with the index replaced | |
19846 | - by zero if we can not strip it as the outermost component. */ | |
19847 | - if (*aref == ref) | |
19848 | - { | |
19849 | - *aref = TREE_OPERAND (*aref, 0); | |
19850 | - continue; | |
19851 | - } | |
19852 | - else | |
19853 | - TREE_OPERAND (*aref, 1) = build_int_cst (TREE_TYPE (op), 0); | |
19854 | } | |
19855 | + else if (TREE_CODE (ref) == COMPONENT_REF | |
19856 | + && TREE_CODE (TREE_TYPE (TREE_OPERAND (ref, 0))) == RECORD_TYPE) | |
19857 | + { | |
19858 | + /* For COMPONENT_REFs of records (but not unions!) use the | |
19859 | + FIELD_DECL offset as constant access function so we can | |
19860 | + disambiguate a[i].f1 and a[i].f2. */ | |
19861 | + tree off = component_ref_field_offset (ref); | |
19862 | + off = size_binop (PLUS_EXPR, | |
19863 | + size_binop (MULT_EXPR, | |
19864 | + fold_convert (bitsizetype, off), | |
19865 | + bitsize_int (BITS_PER_UNIT)), | |
19866 | + DECL_FIELD_BIT_OFFSET (TREE_OPERAND (ref, 1))); | |
19867 | + VEC_safe_push (tree, heap, access_fns, off); | |
19868 | + } | |
19869 | + else | |
19870 | + /* If we have an unhandled component we could not translate | |
19871 | + to an access function stop analyzing. We have determined | |
19872 | + our base object in this case. */ | |
19873 | + break; | |
19874 | ||
19875 | - aref = &TREE_OPERAND (*aref, 0); | |
19876 | + ref = TREE_OPERAND (ref, 0); | |
19877 | } | |
19878 | ||
19879 | /* If the address operand of a MEM_REF base has an evolution in the | |
19880 | analyzed nest, add it as an additional independent access-function. */ | |
19881 | - if (TREE_CODE (*aref) == MEM_REF) | |
19882 | + if (TREE_CODE (ref) == MEM_REF) | |
19883 | { | |
19884 | - op = TREE_OPERAND (*aref, 0); | |
19885 | + op = TREE_OPERAND (ref, 0); | |
19886 | access_fn = analyze_scalar_evolution (loop, op); | |
19887 | access_fn = instantiate_scev (before_loop, loop, access_fn); | |
19888 | if (TREE_CODE (access_fn) == POLYNOMIAL_CHREC) | |
19889 | { | |
19890 | tree orig_type; | |
19891 | + tree memoff = TREE_OPERAND (ref, 1); | |
19892 | base = initial_condition (access_fn); | |
19893 | orig_type = TREE_TYPE (base); | |
19894 | STRIP_USELESS_TYPE_CONVERSION (base); | |
19895 | split_constant_offset (base, &base, &off); | |
19896 | /* Fold the MEM_REF offset into the evolutions initial | |
19897 | value to make more bases comparable. */ | |
19898 | - if (!integer_zerop (TREE_OPERAND (*aref, 1))) | |
19899 | + if (!integer_zerop (memoff)) | |
19900 | { | |
19901 | off = size_binop (PLUS_EXPR, off, | |
19902 | - fold_convert (ssizetype, | |
19903 | - TREE_OPERAND (*aref, 1))); | |
19904 | - TREE_OPERAND (*aref, 1) | |
19905 | - = build_int_cst (TREE_TYPE (TREE_OPERAND (*aref, 1)), 0); | |
19906 | + fold_convert (ssizetype, memoff)); | |
19907 | + memoff = build_int_cst (TREE_TYPE (memoff), 0); | |
19908 | } | |
19909 | access_fn = chrec_replace_initial_condition | |
19910 | (access_fn, fold_convert (orig_type, off)); | |
19911 | - *aref = fold_build2_loc (EXPR_LOCATION (*aref), | |
19912 | - MEM_REF, TREE_TYPE (*aref), | |
19913 | - base, TREE_OPERAND (*aref, 1)); | |
19914 | + /* ??? This is still not a suitable base object for | |
19915 | + dr_may_alias_p - the base object needs to be an | |
19916 | + access that covers the object as whole. With | |
19917 | + an evolution in the pointer this cannot be | |
19918 | + guaranteed. | |
19919 | + As a band-aid, mark the access so we can special-case | |
19920 | + it in dr_may_alias_p. */ | |
19921 | + ref = fold_build2_loc (EXPR_LOCATION (ref), | |
19922 | + MEM_REF, TREE_TYPE (ref), | |
19923 | + base, memoff); | |
19924 | + DR_UNCONSTRAINED_BASE (dr) = true; | |
19925 | VEC_safe_push (tree, heap, access_fns, access_fn); | |
19926 | } | |
19927 | } | |
19928 | + else if (DECL_P (ref)) | |
19929 | + { | |
19930 | + /* Canonicalize DR_BASE_OBJECT to MEM_REF form. */ | |
19931 | + ref = build2 (MEM_REF, TREE_TYPE (ref), | |
19932 | + build_fold_addr_expr (ref), | |
19933 | + build_int_cst (reference_alias_ptr_type (ref), 0)); | |
19934 | + } | |
19935 | ||
19936 | DR_BASE_OBJECT (dr) = ref; | |
19937 | DR_ACCESS_FNS (dr) = access_fns; | |
19938 | @@ -1345,6 +1368,27 @@ | |
19939 | return false; | |
19940 | } | |
19941 | ||
19942 | + /* If we had an evolution in a MEM_REF BASE_OBJECT we do not know | |
19943 | + the size of the base-object. So we cannot do any offset/overlap | |
19944 | + based analysis but have to rely on points-to information only. */ | |
19945 | + if (TREE_CODE (addr_a) == MEM_REF | |
19946 | + && DR_UNCONSTRAINED_BASE (a)) | |
19947 | + { | |
19948 | + if (TREE_CODE (addr_b) == MEM_REF | |
19949 | + && DR_UNCONSTRAINED_BASE (b)) | |
19950 | + return ptr_derefs_may_alias_p (TREE_OPERAND (addr_a, 0), | |
19951 | + TREE_OPERAND (addr_b, 0)); | |
19952 | + else | |
19953 | + return ptr_derefs_may_alias_p (TREE_OPERAND (addr_a, 0), | |
19954 | + build_fold_addr_expr (addr_b)); | |
19955 | + } | |
19956 | + else if (TREE_CODE (addr_b) == MEM_REF | |
19957 | + && DR_UNCONSTRAINED_BASE (b)) | |
19958 | + return ptr_derefs_may_alias_p (build_fold_addr_expr (addr_a), | |
19959 | + TREE_OPERAND (addr_b, 0)); | |
19960 | + | |
19961 | + /* Otherwise DR_BASE_OBJECT is an access that covers the whole object | |
19962 | + that is being subsetted in the loop nest. */ | |
19963 | if (DR_IS_WRITE (a) && DR_IS_WRITE (b)) | |
19964 | return refs_output_dependent_p (addr_a, addr_b); | |
19965 | else if (DR_IS_READ (a) && DR_IS_WRITE (b)) | |
19966 | @@ -1709,6 +1753,76 @@ | |
19967 | return double_int_to_tree (unsigned_type_node, nit); | |
19968 | } | |
19969 | ||
19970 | +/* Determine whether the CHREC is always positive/negative. If the expression | |
19971 | + cannot be statically analyzed, return false, otherwise set the answer into | |
19972 | + VALUE. */ | |
19973 | + | |
19974 | +static bool | |
19975 | +chrec_is_positive (tree chrec, bool *value) | |
19976 | +{ | |
19977 | + bool value0, value1, value2; | |
19978 | + tree end_value, nb_iter; | |
19979 | + | |
19980 | + switch (TREE_CODE (chrec)) | |
19981 | + { | |
19982 | + case POLYNOMIAL_CHREC: | |
19983 | + if (!chrec_is_positive (CHREC_LEFT (chrec), &value0) | |
19984 | + || !chrec_is_positive (CHREC_RIGHT (chrec), &value1)) | |
19985 | + return false; | |
19986 | + | |
19987 | + /* FIXME -- overflows. */ | |
19988 | + if (value0 == value1) | |
19989 | + { | |
19990 | + *value = value0; | |
19991 | + return true; | |
19992 | + } | |
19993 | + | |
19994 | + /* Otherwise the chrec is under the form: "{-197, +, 2}_1", | |
19995 | + and the proof consists in showing that the sign never | |
19996 | + changes during the execution of the loop, from 0 to | |
19997 | + loop->nb_iterations. */ | |
19998 | + if (!evolution_function_is_affine_p (chrec)) | |
19999 | + return false; | |
20000 | + | |
20001 | + nb_iter = number_of_latch_executions (get_chrec_loop (chrec)); | |
20002 | + if (chrec_contains_undetermined (nb_iter)) | |
20003 | + return false; | |
20004 | + | |
20005 | +#if 0 | |
20006 | + /* TODO -- If the test is after the exit, we may decrease the number of | |
20007 | + iterations by one. */ | |
20008 | + if (after_exit) | |
20009 | + nb_iter = chrec_fold_minus (type, nb_iter, build_int_cst (type, 1)); | |
20010 | +#endif | |
20011 | + | |
20012 | + end_value = chrec_apply (CHREC_VARIABLE (chrec), chrec, nb_iter); | |
20013 | + | |
20014 | + if (!chrec_is_positive (end_value, &value2)) | |
20015 | + return false; | |
20016 | + | |
20017 | + *value = value0; | |
20018 | + return value0 == value1; | |
20019 | + | |
20020 | + case INTEGER_CST: | |
20021 | + switch (tree_int_cst_sgn (chrec)) | |
20022 | + { | |
20023 | + case -1: | |
20024 | + *value = false; | |
20025 | + break; | |
20026 | + case 1: | |
20027 | + *value = true; | |
20028 | + break; | |
20029 | + default: | |
20030 | + return false; | |
20031 | + } | |
20032 | + return true; | |
20033 | + | |
20034 | + default: | |
20035 | + return false; | |
20036 | + } | |
20037 | +} | |
20038 | + | |
20039 | + | |
20040 | /* Analyze a SIV (Single Index Variable) subscript where CHREC_A is a | |
20041 | constant, and CHREC_B is an affine function. *OVERLAPS_A and | |
20042 | *OVERLAPS_B are initialized to the functions that describe the | |
20043 | @@ -1732,6 +1846,15 @@ | |
20044 | chrec_b = chrec_convert (type, chrec_b, NULL); | |
20045 | difference = chrec_fold_minus (type, initial_condition (chrec_b), chrec_a); | |
20046 | ||
20047 | + /* Special case overlap in the first iteration. */ | |
20048 | + if (integer_zerop (difference)) | |
20049 | + { | |
20050 | + *overlaps_a = conflict_fn (1, affine_fn_cst (integer_zero_node)); | |
20051 | + *overlaps_b = conflict_fn (1, affine_fn_cst (integer_zero_node)); | |
20052 | + *last_conflicts = integer_one_node; | |
20053 | + return; | |
20054 | + } | |
20055 | + | |
20056 | if (!chrec_is_positive (initial_condition (difference), &value0)) | |
20057 | { | |
20058 | if (dump_file && (dump_flags & TDF_DETAILS)) | |
20059 | @@ -3416,6 +3539,7 @@ | |
20060 | unsigned int i; | |
20061 | tree last_conflicts; | |
20062 | struct subscript *subscript; | |
20063 | + tree res = NULL_TREE; | |
20064 | ||
20065 | for (i = 0; VEC_iterate (subscript_p, DDR_SUBSCRIPTS (ddr), i, subscript); | |
20066 | i++) | |
20067 | @@ -3427,40 +3551,43 @@ | |
20068 | &overlaps_a, &overlaps_b, | |
20069 | &last_conflicts, loop_nest); | |
20070 | ||
20071 | + if (SUB_CONFLICTS_IN_A (subscript)) | |
20072 | + free_conflict_function (SUB_CONFLICTS_IN_A (subscript)); | |
20073 | + if (SUB_CONFLICTS_IN_B (subscript)) | |
20074 | + free_conflict_function (SUB_CONFLICTS_IN_B (subscript)); | |
20075 | + | |
20076 | + SUB_CONFLICTS_IN_A (subscript) = overlaps_a; | |
20077 | + SUB_CONFLICTS_IN_B (subscript) = overlaps_b; | |
20078 | + SUB_LAST_CONFLICT (subscript) = last_conflicts; | |
20079 | + | |
20080 | + /* If there is any undetermined conflict function we have to | |
20081 | + give a conservative answer in case we cannot prove that | |
20082 | + no dependence exists when analyzing another subscript. */ | |
20083 | if (CF_NOT_KNOWN_P (overlaps_a) | |
20084 | || CF_NOT_KNOWN_P (overlaps_b)) | |
20085 | { | |
20086 | - finalize_ddr_dependent (ddr, chrec_dont_know); | |
20087 | - dependence_stats.num_dependence_undetermined++; | |
20088 | - free_conflict_function (overlaps_a); | |
20089 | - free_conflict_function (overlaps_b); | |
20090 | - return false; | |
20091 | + res = chrec_dont_know; | |
20092 | + continue; | |
20093 | } | |
20094 | ||
20095 | + /* When there is a subscript with no dependence we can stop. */ | |
20096 | else if (CF_NO_DEPENDENCE_P (overlaps_a) | |
20097 | || CF_NO_DEPENDENCE_P (overlaps_b)) | |
20098 | { | |
20099 | - finalize_ddr_dependent (ddr, chrec_known); | |
20100 | - dependence_stats.num_dependence_independent++; | |
20101 | - free_conflict_function (overlaps_a); | |
20102 | - free_conflict_function (overlaps_b); | |
20103 | - return false; | |
20104 | + res = chrec_known; | |
20105 | + break; | |
20106 | } | |
20107 | + } | |
20108 | ||
20109 | - else | |
20110 | - { | |
20111 | - if (SUB_CONFLICTS_IN_A (subscript)) | |
20112 | - free_conflict_function (SUB_CONFLICTS_IN_A (subscript)); | |
20113 | - if (SUB_CONFLICTS_IN_B (subscript)) | |
20114 | - free_conflict_function (SUB_CONFLICTS_IN_B (subscript)); | |
20115 | + if (res == NULL_TREE) | |
20116 | + return true; | |
20117 | ||
20118 | - SUB_CONFLICTS_IN_A (subscript) = overlaps_a; | |
20119 | - SUB_CONFLICTS_IN_B (subscript) = overlaps_b; | |
20120 | - SUB_LAST_CONFLICT (subscript) = last_conflicts; | |
20121 | - } | |
20122 | - } | |
20123 | - | |
20124 | - return true; | |
20125 | + if (res == chrec_known) | |
20126 | + dependence_stats.num_dependence_independent++; | |
20127 | + else | |
20128 | + dependence_stats.num_dependence_undetermined++; | |
20129 | + finalize_ddr_dependent (ddr, res); | |
20130 | + return false; | |
20131 | } | |
20132 | ||
20133 | /* Computes the conflicting iterations in LOOP_NEST, and initialize DDR. */ | |
20134 | @@ -4049,11 +4176,10 @@ | |
20135 | if (dump_file && (dump_flags & TDF_DETAILS)) | |
20136 | { | |
20137 | fprintf (dump_file, "(compute_affine_dependence\n"); | |
20138 | - fprintf (dump_file, " (stmt_a = \n"); | |
20139 | - print_gimple_stmt (dump_file, DR_STMT (dra), 0, 0); | |
20140 | - fprintf (dump_file, ")\n (stmt_b = \n"); | |
20141 | - print_gimple_stmt (dump_file, DR_STMT (drb), 0, 0); | |
20142 | - fprintf (dump_file, ")\n"); | |
20143 | + fprintf (dump_file, " stmt_a: "); | |
20144 | + print_gimple_stmt (dump_file, DR_STMT (dra), 0, TDF_SLIM); | |
20145 | + fprintf (dump_file, " stmt_b: "); | |
20146 | + print_gimple_stmt (dump_file, DR_STMT (drb), 0, TDF_SLIM); | |
20147 | } | |
20148 | ||
20149 | /* Analyze only when the dependence relation is not yet known. */ | |
20150 | @@ -4129,7 +4255,14 @@ | |
20151 | } | |
20152 | ||
20153 | if (dump_file && (dump_flags & TDF_DETAILS)) | |
20154 | - fprintf (dump_file, ")\n"); | |
20155 | + { | |
20156 | + if (DDR_ARE_DEPENDENT (ddr) == chrec_known) | |
20157 | + fprintf (dump_file, ") -> no dependence\n"); | |
20158 | + else if (DDR_ARE_DEPENDENT (ddr) == chrec_dont_know) | |
20159 | + fprintf (dump_file, ") -> dependence analysis failed\n"); | |
20160 | + else | |
20161 | + fprintf (dump_file, ")\n"); | |
20162 | + } | |
20163 | } | |
20164 | ||
20165 | /* Compute in DEPENDENCE_RELATIONS the data dependence graph for all | |
20166 | @@ -5075,20 +5208,19 @@ | |
20167 | VEC (data_reference_p, heap) **datarefs) | |
20168 | { | |
20169 | struct graph *rdg = NULL; | |
20170 | - VEC (gimple, heap) *stmts = VEC_alloc (gimple, heap, 10); | |
20171 | ||
20172 | - compute_data_dependences_for_loop (loop, false, loop_nest, datarefs, | |
20173 | - dependence_relations); | |
20174 | - | |
20175 | - if (known_dependences_p (*dependence_relations)) | |
20176 | + if (compute_data_dependences_for_loop (loop, false, loop_nest, datarefs, | |
20177 | + dependence_relations) | |
20178 | + && known_dependences_p (*dependence_relations)) | |
20179 | { | |
20180 | + VEC (gimple, heap) *stmts = VEC_alloc (gimple, heap, 10); | |
20181 | stmts_from_loop (loop, &stmts); | |
20182 | rdg = build_empty_rdg (VEC_length (gimple, stmts)); | |
20183 | create_rdg_vertices (rdg, stmts); | |
20184 | create_rdg_edges (rdg, *dependence_relations); | |
20185 | + VEC_free (gimple, heap, stmts); | |
20186 | } | |
20187 | ||
20188 | - VEC_free (gimple, heap, stmts); | |
20189 | return rdg; | |
20190 | } | |
20191 | ||
20192 | Index: gcc/tree-data-ref.h | |
20193 | =================================================================== | |
20194 | --- gcc/tree-data-ref.h (.../tags/gcc_4_7_0_release) (wersja 187293) | |
20195 | +++ gcc/tree-data-ref.h (.../branches/gcc-4_7-branch) (wersja 187293) | |
20196 | @@ -60,16 +60,17 @@ | |
20197 | }; | |
20198 | ||
20199 | /* Describes the evolutions of indices of the memory reference. The indices | |
20200 | - are indices of the ARRAY_REFs and the operands of INDIRECT_REFs. | |
20201 | - For ARRAY_REFs, BASE_OBJECT is the reference with zeroed indices | |
20202 | - (note that this reference does not have to be valid, if zero does not | |
20203 | - belong to the range of the array; hence it is not recommended to use | |
20204 | - BASE_OBJECT in any code generation). For INDIRECT_REFs, the address is | |
20205 | - set to the loop-invariant part of the address of the object, except for | |
20206 | - the constant offset. For the examples above, | |
20207 | + are indices of the ARRAY_REFs, indexes in artificial dimensions | |
20208 | + added for member selection of records and the operands of MEM_REFs. | |
20209 | + BASE_OBJECT is the part of the reference that is loop-invariant | |
20210 | + (note that this reference does not have to cover the whole object | |
20211 | + being accessed, in which case UNCONSTRAINED_BASE is set; hence it is | |
20212 | + not recommended to use BASE_OBJECT in any code generation). | |
20213 | + For the examples above, | |
20214 | ||
20215 | - base_object: a[0].b[0][0] *(p + x + 4B * j_0) | |
20216 | + base_object: a *(p + x + 4B * j_0) | |
20217 | indices: {j_0, +, 1}_2 {16, +, 4}_2 | |
20218 | + 4 | |
20219 | {i_0, +, 1}_1 | |
20220 | {j_0, +, 1}_2 | |
20221 | */ | |
20222 | @@ -81,18 +82,17 @@ | |
20223 | ||
20224 | /* A list of chrecs. Access functions of the indices. */ | |
20225 | VEC(tree,heap) *access_fns; | |
20226 | + | |
20227 | + /* Whether BASE_OBJECT is an access representing the whole object | |
20228 | + or whether the access could not be constrained. */ | |
20229 | + bool unconstrained_base; | |
20230 | }; | |
20231 | ||
20232 | struct dr_alias | |
20233 | { | |
20234 | /* The alias information that should be used for new pointers to this | |
20235 | - location. SYMBOL_TAG is either a DECL or a SYMBOL_MEMORY_TAG. */ | |
20236 | + location. */ | |
20237 | struct ptr_info_def *ptr_info; | |
20238 | - | |
20239 | - /* The set of virtual operands corresponding to this memory reference, | |
20240 | - serving as a description of the alias information for the memory | |
20241 | - reference. This could be eliminated if we had alias oracle. */ | |
20242 | - bitmap vops; | |
20243 | }; | |
20244 | ||
20245 | /* An integer vector. A vector formally consists of an element of a vector | |
20246 | @@ -201,6 +201,7 @@ | |
20247 | #define DR_STMT(DR) (DR)->stmt | |
20248 | #define DR_REF(DR) (DR)->ref | |
20249 | #define DR_BASE_OBJECT(DR) (DR)->indices.base_object | |
20250 | +#define DR_UNCONSTRAINED_BASE(DR) (DR)->indices.unconstrained_base | |
20251 | #define DR_ACCESS_FNS(DR) (DR)->indices.access_fns | |
20252 | #define DR_ACCESS_FN(DR, I) VEC_index (tree, DR_ACCESS_FNS (DR), I) | |
20253 | #define DR_NUM_DIMENSIONS(DR) VEC_length (tree, DR_ACCESS_FNS (DR)) | |
20254 | Index: gcc/tree-vect-data-refs.c | |
20255 | =================================================================== | |
20256 | --- gcc/tree-vect-data-refs.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
20257 | +++ gcc/tree-vect-data-refs.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
20258 | @@ -1141,12 +1141,8 @@ | |
20259 | if (!known_alignment_for_access_p (dr)) | |
20260 | { | |
20261 | tree type = (TREE_TYPE (DR_REF (dr))); | |
20262 | - tree ba = DR_BASE_OBJECT (dr); | |
20263 | - bool is_packed = false; | |
20264 | + bool is_packed = contains_packed_reference (DR_REF (dr)); | |
20265 | ||
20266 | - if (ba) | |
20267 | - is_packed = contains_packed_reference (ba); | |
20268 | - | |
20269 | if (compare_tree_int (TYPE_SIZE (type), TYPE_ALIGN (type)) > 0) | |
20270 | is_packed = true; | |
20271 | ||
20272 | @@ -4672,13 +4668,8 @@ | |
20273 | return dr_explicit_realign_optimized; | |
20274 | } | |
20275 | if (!known_alignment_for_access_p (dr)) | |
20276 | - { | |
20277 | - tree ba = DR_BASE_OBJECT (dr); | |
20278 | + is_packed = contains_packed_reference (DR_REF (dr)); | |
20279 | ||
20280 | - if (ba) | |
20281 | - is_packed = contains_packed_reference (ba); | |
20282 | - } | |
20283 | - | |
20284 | if (targetm.vectorize. | |
20285 | support_vector_misalignment (mode, type, | |
20286 | DR_MISALIGNMENT (dr), is_packed)) | |
20287 | @@ -4691,13 +4682,8 @@ | |
20288 | tree type = (TREE_TYPE (DR_REF (dr))); | |
20289 | ||
20290 | if (!known_alignment_for_access_p (dr)) | |
20291 | - { | |
20292 | - tree ba = DR_BASE_OBJECT (dr); | |
20293 | + is_packed = contains_packed_reference (DR_REF (dr)); | |
20294 | ||
20295 | - if (ba) | |
20296 | - is_packed = contains_packed_reference (ba); | |
20297 | - } | |
20298 | - | |
20299 | if (targetm.vectorize. | |
20300 | support_vector_misalignment (mode, type, | |
20301 | DR_MISALIGNMENT (dr), is_packed)) | |
20302 | Index: gcc/c-typeck.c | |
20303 | =================================================================== | |
20304 | --- gcc/c-typeck.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
20305 | +++ gcc/c-typeck.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
20306 | @@ -7598,7 +7598,7 @@ | |
20307 | ||
20308 | FOR_EACH_CONSTRUCTOR_ELT (constructor_elements, ix, index, value) | |
20309 | { | |
20310 | - add_pending_init (index, value, NULL_TREE, false, | |
20311 | + add_pending_init (index, value, NULL_TREE, true, | |
20312 | braced_init_obstack); | |
20313 | } | |
20314 | constructor_elements = 0; | |
20315 | @@ -7691,7 +7691,7 @@ | |
20316 | } | |
20317 | ||
20318 | value = build_int_cst_wide (type, val[1], val[0]); | |
20319 | - add_pending_init (purpose, value, NULL_TREE, false, | |
20320 | + add_pending_init (purpose, value, NULL_TREE, true, | |
20321 | braced_init_obstack); | |
20322 | } | |
20323 | ||
20324 | @@ -9734,7 +9734,7 @@ | |
20325 | sc = convert (TREE_TYPE (type0), sc); | |
20326 | op1 = build_vector_from_val (type0, sc); | |
20327 | if (!maybe_const) | |
20328 | - op0 = c_wrap_maybe_const (op1, true); | |
20329 | + op1 = c_wrap_maybe_const (op1, true); | |
20330 | orig_type1 = type1 = TREE_TYPE (op1); | |
20331 | code1 = TREE_CODE (type1); | |
20332 | converted = 1; | |
20333 | Index: gcc/tree-ssa-phiopt.c | |
20334 | =================================================================== | |
20335 | --- gcc/tree-ssa-phiopt.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
20336 | +++ gcc/tree-ssa-phiopt.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
20337 | @@ -1556,8 +1556,17 @@ | |
20338 | /* Compute and check data dependencies in both basic blocks. */ | |
20339 | then_ddrs = VEC_alloc (ddr_p, heap, 1); | |
20340 | else_ddrs = VEC_alloc (ddr_p, heap, 1); | |
20341 | - compute_all_dependences (then_datarefs, &then_ddrs, NULL, false); | |
20342 | - compute_all_dependences (else_datarefs, &else_ddrs, NULL, false); | |
20343 | + if (!compute_all_dependences (then_datarefs, &then_ddrs, NULL, false) | |
20344 | + || !compute_all_dependences (else_datarefs, &else_ddrs, NULL, false)) | |
20345 | + { | |
20346 | + free_dependence_relations (then_ddrs); | |
20347 | + free_dependence_relations (else_ddrs); | |
20348 | + free_data_refs (then_datarefs); | |
20349 | + free_data_refs (else_datarefs); | |
20350 | + VEC_free (gimple, heap, then_stores); | |
20351 | + VEC_free (gimple, heap, else_stores); | |
20352 | + return false; | |
20353 | + } | |
20354 | blocks[0] = then_bb; | |
20355 | blocks[1] = else_bb; | |
20356 | blocks[2] = join_bb; | |
20357 | Index: gcc/expmed.c | |
20358 | =================================================================== | |
20359 | --- gcc/expmed.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
20360 | +++ gcc/expmed.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
20361 | @@ -550,7 +550,10 @@ | |
20362 | { | |
20363 | /* If I is 0, use the low-order word in both field and target; | |
20364 | if I is 1, use the next to lowest word; and so on. */ | |
20365 | - unsigned int wordnum = (backwards ? nwords - i - 1 : i); | |
20366 | + unsigned int wordnum = (backwards | |
20367 | + ? GET_MODE_SIZE (fieldmode) / UNITS_PER_WORD | |
20368 | + - i - 1 | |
20369 | + : i); | |
20370 | unsigned int bit_offset = (backwards | |
20371 | ? MAX ((int) bitsize - ((int) i + 1) | |
20372 | * BITS_PER_WORD, | |
20373 | @@ -828,8 +831,7 @@ | |
20374 | /* Under the C++0x memory model, we must not touch bits outside the | |
20375 | bit region. Adjust the address to start at the beginning of the | |
20376 | bit region. */ | |
20377 | - if (MEM_P (str_rtx) | |
20378 | - && bitregion_start > 0) | |
20379 | + if (MEM_P (str_rtx) && bitregion_start > 0) | |
20380 | { | |
20381 | enum machine_mode bestmode; | |
20382 | enum machine_mode op_mode; | |
20383 | @@ -839,6 +841,8 @@ | |
20384 | if (op_mode == MAX_MACHINE_MODE) | |
20385 | op_mode = VOIDmode; | |
20386 | ||
20387 | + gcc_assert ((bitregion_start % BITS_PER_UNIT) == 0); | |
20388 | + | |
20389 | offset = bitregion_start / BITS_PER_UNIT; | |
20390 | bitnum -= bitregion_start; | |
20391 | bitregion_end -= bitregion_start; | |
20392 | Index: gcc/gimple-fold.c | |
20393 | =================================================================== | |
20394 | --- gcc/gimple-fold.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
20395 | +++ gcc/gimple-fold.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
20396 | @@ -3101,7 +3101,7 @@ | |
20397 | offset += token * size; | |
20398 | fn = fold_ctor_reference (TREE_TYPE (TREE_TYPE (v)), DECL_INITIAL (v), | |
20399 | offset, size); | |
20400 | - if (!fn) | |
20401 | + if (!fn || integer_zerop (fn)) | |
20402 | return NULL_TREE; | |
20403 | gcc_assert (TREE_CODE (fn) == ADDR_EXPR | |
20404 | || TREE_CODE (fn) == FDESC_EXPR); | |
20405 | Index: gcc/tree-ssa-pre.c | |
20406 | =================================================================== | |
20407 | --- gcc/tree-ssa-pre.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
20408 | +++ gcc/tree-ssa-pre.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
20409 | @@ -4337,6 +4337,7 @@ | |
20410 | has the same value number as its rhs. If so, the store is | |
20411 | dead. */ | |
20412 | else if (gimple_assign_single_p (stmt) | |
20413 | + && !gimple_has_volatile_ops (stmt) | |
20414 | && !is_gimple_reg (gimple_assign_lhs (stmt)) | |
20415 | && (TREE_CODE (rhs) == SSA_NAME | |
20416 | || is_gimple_min_invariant (rhs))) | |
20417 | Index: gcc/tree-sra.c | |
20418 | =================================================================== | |
20419 | --- gcc/tree-sra.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
20420 | +++ gcc/tree-sra.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
20421 | @@ -3120,7 +3120,13 @@ | |
20422 | } | |
20423 | else | |
20424 | { | |
20425 | - if (access_has_children_p (lacc) && access_has_children_p (racc)) | |
20426 | + if (access_has_children_p (lacc) | |
20427 | + && access_has_children_p (racc) | |
20428 | + /* When an access represents an unscalarizable region, it usually | |
20429 | + represents accesses with variable offset and thus must not be used | |
20430 | + to generate new memory accesses. */ | |
20431 | + && !lacc->grp_unscalarizable_region | |
20432 | + && !racc->grp_unscalarizable_region) | |
20433 | { | |
20434 | gimple_stmt_iterator orig_gsi = *gsi; | |
20435 | enum unscalarized_data_handling refreshed; | |
20436 | @@ -4693,8 +4699,8 @@ | |
20437 | if (dump_file) | |
20438 | fprintf (dump_file, "Adjusting call (%i -> %i) %s -> %s\n", | |
20439 | cs->caller->uid, cs->callee->uid, | |
20440 | - cgraph_node_name (cs->caller), | |
20441 | - cgraph_node_name (cs->callee)); | |
20442 | + xstrdup (cgraph_node_name (cs->caller)), | |
20443 | + xstrdup (cgraph_node_name (cs->callee))); | |
20444 | ||
20445 | ipa_modify_call_arguments (cs, cs->call_stmt, adjustments); | |
20446 | ||
20447 | Index: gcc/tree-predcom.c | |
20448 | =================================================================== | |
20449 | --- gcc/tree-predcom.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
20450 | +++ gcc/tree-predcom.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
20451 | @@ -1707,6 +1707,7 @@ | |
20452 | { | |
20453 | name = PHI_RESULT (stmt); | |
20454 | next = single_nonlooparound_use (name); | |
20455 | + reset_debug_uses (stmt); | |
20456 | psi = gsi_for_stmt (stmt); | |
20457 | remove_phi_node (&psi, true); | |
20458 | ||
20459 | @@ -1728,6 +1729,7 @@ | |
20460 | gcc_assert (TREE_CODE (name) == SSA_NAME); | |
20461 | ||
20462 | next = single_nonlooparound_use (name); | |
20463 | + reset_debug_uses (stmt); | |
20464 | ||
20465 | mark_virtual_ops_for_renaming (stmt); | |
20466 | gsi_remove (&bsi, true); | |
20467 | Index: gcc/lto/lang.opt | |
20468 | =================================================================== | |
20469 | --- gcc/lto/lang.opt (.../tags/gcc_4_7_0_release) (wersja 187293) | |
20470 | +++ gcc/lto/lang.opt (.../branches/gcc-4_7-branch) (wersja 187293) | |
20471 | @@ -25,7 +25,7 @@ | |
20472 | LTO | |
20473 | ||
20474 | fltrans | |
20475 | -LTO Report Var(flag_ltrans) Optimization | |
20476 | +LTO Report Var(flag_ltrans) | |
20477 | Run the link-time optimizer in local transformation (LTRANS) mode. | |
20478 | ||
20479 | fltrans-output-list= | |
20480 | @@ -33,7 +33,7 @@ | |
20481 | Specify a file to which a list of files output by LTRANS is written. | |
20482 | ||
20483 | fwpa | |
20484 | -LTO Driver Report Var(flag_wpa) Optimization | |
20485 | +LTO Driver Report Var(flag_wpa) | |
20486 | Run the link-time optimizer in whole program analysis (WPA) mode. | |
20487 | ||
20488 | fresolution= | |
20489 | Index: gcc/lto/ChangeLog | |
20490 | =================================================================== | |
20491 | --- gcc/lto/ChangeLog (.../tags/gcc_4_7_0_release) (wersja 187293) | |
20492 | +++ gcc/lto/ChangeLog (.../branches/gcc-4_7-branch) (wersja 187293) | |
20493 | @@ -1,3 +1,8 @@ | |
20494 | +2012-05-04 Richard Guenther <rguenther@suse.de> | |
20495 | + | |
20496 | + * lang.opt (fwpa): Do not mark as Optimization. | |
20497 | + (fltrans): Likewise. | |
20498 | + | |
20499 | 2012-03-22 Release Manager | |
20500 | ||
20501 | * GCC 4.7.0 released. | |
20502 | Index: gcc/ipa-prop.c | |
20503 | =================================================================== | |
20504 | --- gcc/ipa-prop.c (.../tags/gcc_4_7_0_release) (wersja 187293) | |
20505 | +++ gcc/ipa-prop.c (.../branches/gcc-4_7-branch) (wersja 187293) | |
20506 | @@ -230,8 +230,8 @@ | |
20507 | continue; | |
20508 | ||
20509 | fprintf (f, " callsite %s/%i -> %s/%i : \n", | |
20510 | - cgraph_node_name (node), node->uid, | |
20511 | - cgraph_node_name (cs->callee), cs->callee->uid); | |
20512 | + xstrdup (cgraph_node_name (node)), node->uid, | |
20513 | + xstrdup (cgraph_node_name (cs->callee)), cs->callee->uid); | |
20514 | ipa_print_node_jump_functions_for_edge (f, cs); | |
20515 | } | |
20516 | ||
20517 | @@ -1780,8 +1780,8 @@ | |
20518 | fprintf (dump_file, "ipa-prop: Discovered %s call to a known target " | |
20519 | "(%s/%i -> %s/%i), for stmt ", | |
20520 | ie->indirect_info->polymorphic ? "a virtual" : "an indirect", | |
20521 | - cgraph_node_name (ie->caller), ie->caller->uid, | |
20522 | - cgraph_node_name (ie->callee), ie->callee->uid); | |
20523 | + xstrdup (cgraph_node_name (ie->caller)), ie->caller->uid, | |
20524 | + xstrdup (cgraph_node_name (ie->callee)), ie->callee->uid); | |
20525 | if (ie->call_stmt) | |
20526 | print_gimple_stmt (dump_file, ie->call_stmt, 2, TDF_SLIM); | |
20527 | else | |
20528 | Index: gcc/po/es.po | |
20529 | =================================================================== | |
20530 | --- gcc/po/es.po (.../tags/gcc_4_7_0_release) (wersja 187293) | |
20531 | +++ gcc/po/es.po (.../branches/gcc-4_7-branch) (wersja 187293) | |
20532 | @@ -1,4 +1,4 @@ | |
20533 | -# Mensajes en español para gcc-4.7-b20120128. | |
20534 | +# Mensajes en español para gcc-4.7.0. | |
20535 | # Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc. | |
20536 | # This file is distributed under the same license as the gcc package. | |
20537 | # Cristian Othón Martínez Vera <cfuga@cfuga.mx>, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 | |
20538 | @@ -7,10 +7,10 @@ | |
20539 | # | |
20540 | msgid "" | |
20541 | msgstr "" | |
20542 | -"Project-Id-Version: gcc 4.7-b20120128\n" | |
20543 | +"Project-Id-Version: gcc 4.7.0\n" | |
20544 | "Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n" | |
20545 | -"POT-Creation-Date: 2012-01-27 16:13+0000\n" | |
20546 | -"PO-Revision-Date: 2012-01-31 08:34-0600\n" | |
20547 | +"POT-Creation-Date: 2012-03-18 14:00+0000\n" | |
20548 | +"PO-Revision-Date: 2012-03-26 10:36-0600\n" | |
20549 | "Last-Translator: Cristian Othón Martínez Vera <cfuga@cfuga.mx>\n" | |
20550 | "Language-Team: Spanish <es@li.org>\n" | |
20551 | "Language: es\n" | |
20552 | @@ -19,7 +19,7 @@ | |
20553 | "Content-Transfer-Encoding: 8bit\n" | |
20554 | "Plural-Forms: nplurals=2; plural=(n != 1);\n" | |
20555 | ||
20556 | -#: c-decl.c:4712 c-typeck.c:5944 toplev.c:1013 c-family/c-pretty-print.c:424 | |
20557 | +#: c-decl.c:4713 c-typeck.c:5944 toplev.c:1013 c-family/c-pretty-print.c:424 | |
20558 | #: cp/error.c:656 cp/error.c:938 | |
20559 | msgid "<anonymous>" | |
20560 | msgstr "<anónimo>" | |
20561 | @@ -229,13 +229,13 @@ | |
20562 | ||
20563 | #: diagnostic.c:136 | |
20564 | #, c-format | |
20565 | -msgid "%s: all warnings being treated as errors\n" | |
20566 | -msgstr "%s: todos los avisos se tratan como errores\n" | |
20567 | +msgid "%s: all warnings being treated as errors" | |
20568 | +msgstr "%s: todos los avisos se tratan como errores" | |
20569 | ||
20570 | #: diagnostic.c:141 | |
20571 | #, c-format | |
20572 | -msgid "%s: some warnings being treated as errors\n" | |
20573 | -msgstr "%s: algunos avisos se tratan como errores\n" | |
20574 | +msgid "%s: some warnings being treated as errors" | |
20575 | +msgstr "%s: algunos avisos se tratan como errores" | |
20576 | ||
20577 | #: diagnostic.c:219 | |
20578 | #, c-format | |
20579 | @@ -321,22 +321,22 @@ | |
20580 | #. TARGET_PRINT_OPERAND must handle them. | |
20581 | #. We can't handle floating point constants; | |
20582 | #. PRINT_OPERAND must handle them. | |
20583 | -#: final.c:3615 config/i386/i386.c:13019 config/pdp11/pdp11.c:1689 | |
20584 | +#: final.c:3615 config/i386/i386.c:13033 config/pdp11/pdp11.c:1689 | |
20585 | #, c-format | |
20586 | msgid "floating constant misused" | |
20587 | msgstr "constante de coma flotante mal usada" | |
20588 | ||
20589 | -#: final.c:3673 config/i386/i386.c:13117 config/pdp11/pdp11.c:1730 | |
20590 | +#: final.c:3673 config/i386/i386.c:13131 config/pdp11/pdp11.c:1730 | |
20591 | #, c-format | |
20592 | msgid "invalid expression as operand" | |
20593 | msgstr "expresión inválida como operando" | |
20594 | ||
20595 | -#: gcc.c:1323 | |
20596 | +#: gcc.c:1329 | |
20597 | #, c-format | |
20598 | msgid "Using built-in specs.\n" | |
20599 | msgstr "Usando especificaciones internas.\n" | |
20600 | ||
20601 | -#: gcc.c:1520 | |
20602 | +#: gcc.c:1526 | |
20603 | #, c-format | |
20604 | msgid "" | |
20605 | "Setting spec %s to '%s'\n" | |
20606 | @@ -345,22 +345,22 @@ | |
20607 | "Cambiando la especificación %s a '%s'\n" | |
20608 | "\n" | |
20609 | ||
20610 | -#: gcc.c:1630 | |
20611 | +#: gcc.c:1636 | |
20612 | #, c-format | |
20613 | msgid "Reading specs from %s\n" | |
20614 | msgstr "Leyendo especificaciones de %s\n" | |
20615 | ||
20616 | -#: gcc.c:1755 | |
20617 | +#: gcc.c:1761 | |
20618 | #, c-format | |
20619 | msgid "could not find specs file %s\n" | |
20620 | msgstr "no se puede encontrar el fichero de especificaciones %s\n" | |
20621 | ||
20622 | -#: gcc.c:1824 | |
20623 | +#: gcc.c:1830 | |
20624 | #, c-format | |
20625 | msgid "rename spec %s to %s\n" | |
20626 | msgstr "renombrando la especificación %s a %s\n" | |
20627 | ||
20628 | -#: gcc.c:1826 | |
20629 | +#: gcc.c:1832 | |
20630 | #, c-format | |
20631 | msgid "" | |
20632 | "spec is '%s'\n" | |
20633 | @@ -369,13 +369,13 @@ | |
20634 | "la especificacion es '%s'\n" | |
20635 | "\n" | |
20636 | ||
20637 | -#: gcc.c:2243 | |
20638 | +#: gcc.c:2249 | |
20639 | #, c-format | |
20640 | msgid "%s\n" | |
20641 | msgstr "%s\n" | |
20642 | ||
20643 | # El código require 'y' o 'Y' como respuesta afirmativa. cfuga | |
20644 | -#: gcc.c:2607 | |
20645 | +#: gcc.c:2613 | |
20646 | #, c-format | |
20647 | msgid "" | |
20648 | "\n" | |
20649 | @@ -384,81 +384,81 @@ | |
20650 | "\n" | |
20651 | "¿Continuar? (y ó n) " | |
20652 | ||
20653 | -#: gcc.c:2747 | |
20654 | +#: gcc.c:2753 | |
20655 | #, c-format | |
20656 | msgid "# %s %.2f %.2f\n" | |
20657 | msgstr "# %s %.2f %.2f\n" | |
20658 | ||
20659 | -#: gcc.c:2949 | |
20660 | +#: gcc.c:2955 | |
20661 | #, c-format | |
20662 | msgid "Usage: %s [options] file...\n" | |
20663 | msgstr "Modo de empleo: %s [opciones] fichero...\n" | |
20664 | ||
20665 | -#: gcc.c:2950 | |
20666 | +#: gcc.c:2956 | |
20667 | msgid "Options:\n" | |
20668 | msgstr "Opciones:\n" | |
20669 | ||
20670 | -#: gcc.c:2952 | |
20671 | +#: gcc.c:2958 | |
20672 | msgid " -pass-exit-codes Exit with highest error code from a phase\n" | |
20673 | msgstr " -pass-exit-codes Sale con el código de error más alto de una fase\n" | |
20674 | ||
20675 | -#: gcc.c:2953 | |
20676 | +#: gcc.c:2959 | |
20677 | msgid " --help Display this information\n" | |
20678 | msgstr " --help Muestra esta información\n" | |
20679 | ||
20680 | -#: gcc.c:2954 | |
20681 | +#: gcc.c:2960 | |
20682 | msgid " --target-help Display target specific command line options\n" | |
20683 | msgstr " --target-help Muestra opciones de línea de órdenes específicas del objetivo\n" | |
20684 | ||
20685 | -#: gcc.c:2955 | |
20686 | -msgid " --help={target|optimizers|warnings|params|[^]{joined|separate|undocumented}}[,...]\n" | |
20687 | -msgstr " --help={target|optimizers|warnings|params|[^]{joined|separate|undocumented}}[,...]\n" | |
20688 | +#: gcc.c:2961 | |
20689 | +msgid " --help={common|optimizers|params|target|warnings|[^]{joined|separate|undocumented}}[,...]\n" | |
20690 | +msgstr " --help={common|optimizers|params|target|warnings|[^]{joined|separate|undocumented}}[,...]\n" | |
20691 | ||
20692 | -#: gcc.c:2956 | |
20693 | +#: gcc.c:2962 | |
20694 | msgid " Display specific types of command line options\n" | |
20695 | msgstr " Muestra tipos específicos de opciones de línea de órdenes\n" | |
20696 | ||
20697 | -#: gcc.c:2958 | |
20698 | +#: gcc.c:2964 | |
20699 | msgid " (Use '-v --help' to display command line options of sub-processes)\n" | |
20700 | msgstr " (Use '-v --help' para mostrar las opciones de línea de órdenes de los subprocesos)\n" | |
20701 | ||
20702 | -#: gcc.c:2959 | |
20703 | +#: gcc.c:2965 | |
20704 | msgid " --version Display compiler version information\n" | |
20705 | msgstr " --version Muestra la información de versión del compilador\n" | |
20706 | ||
20707 | -#: gcc.c:2960 | |
20708 | +#: gcc.c:2966 | |
20709 | msgid " -dumpspecs Display all of the built in spec strings\n" | |
20710 | msgstr " -dumpspecs Muestra todas las cadenas internas de especificación\n" | |
20711 | ||
20712 | -#: gcc.c:2961 | |
20713 | +#: gcc.c:2967 | |
20714 | msgid " -dumpversion Display the version of the compiler\n" | |
20715 | msgstr " -dumpversion Muestra la versión del compilador\n" | |
20716 | ||
20717 | -#: gcc.c:2962 | |
20718 | +#: gcc.c:2968 | |
20719 | msgid " -dumpmachine Display the compiler's target processor\n" | |
20720 | msgstr " -dumpmachine Muestra el procesador objetivo del compilador\n" | |
20721 | ||
20722 | -#: gcc.c:2963 | |
20723 | +#: gcc.c:2969 | |
20724 | msgid " -print-search-dirs Display the directories in the compiler's search path\n" | |
20725 | msgstr " -print-search-dirs Muestra los directorios en la ruta de búsqueda del compilador\n" | |
20726 | ||
20727 | -#: gcc.c:2964 | |
20728 | +#: gcc.c:2970 | |
20729 | msgid " -print-libgcc-file-name Display the name of the compiler's companion library\n" | |
20730 | msgstr " -print-libgcc-file-name Muestra el nombre de la biblioteca que acompaña al compilador\n" | |
20731 | ||
20732 | -#: gcc.c:2965 | |
20733 | +#: gcc.c:2971 | |
20734 | msgid " -print-file-name=<lib> Display the full path to library <lib>\n" | |
20735 | msgstr " -print-file-name=<bib> Muestra la ruta completa a la biblioteca <bib>\n" | |
20736 | ||
20737 | -#: gcc.c:2966 | |
20738 | +#: gcc.c:2972 | |
20739 | msgid " -print-prog-name=<prog> Display the full path to compiler component <prog>\n" | |
20740 | msgstr " -print-prog-name=<prog> Muestra la ruta completa del programa componente del compilador <prog>\n" | |
20741 | ||
20742 | -#: gcc.c:2967 | |
20743 | +#: gcc.c:2973 | |
20744 | msgid " -print-multi-directory Display the root directory for versions of libgcc\n" | |
20745 | msgstr " -print-multi-directory Muestra el directorio raíz para las versiones de libgcc\n" | |
20746 | ||
20747 | -#: gcc.c:2968 | |
20748 | +#: gcc.c:2974 | |
20749 | msgid "" | |
20750 | " -print-multi-lib Display the mapping between command line options and\n" | |
20751 | " multiple library search directories\n" | |
20752 | @@ -466,51 +466,51 @@ | |
20753 | " -print-multi-lib Muestra el mapeo entre las opciones de línea de órdenes\n" | |
20754 | " y los múltiples directorios de búsqueda de bibliotecas\n" | |
20755 | ||
20756 | -#: gcc.c:2971 | |
20757 | +#: gcc.c:2977 | |
20758 | msgid " -print-multi-os-directory Display the relative path to OS libraries\n" | |
20759 | msgstr " -print-multi-os-directory Muestra la ruta relativa para las bibliotecas del SO\n" | |
20760 | ||
20761 | -#: gcc.c:2972 | |
20762 | +#: gcc.c:2978 | |
20763 | msgid " -print-sysroot Display the target libraries directory\n" | |
20764 | msgstr " -print-sysroot Muestra el directorio de las bibliotecas objetivo\n" | |
20765 | ||
20766 | -#: gcc.c:2973 | |
20767 | +#: gcc.c:2979 | |
20768 | msgid " -print-sysroot-headers-suffix Display the sysroot suffix used to find headers\n" | |
20769 | msgstr " -print-sysroot-headers-suffix Muestra el sufijo sysroot que se usa para buscar encabezados\n" | |
20770 | ||
20771 | -#: gcc.c:2974 | |
20772 | +#: gcc.c:2980 | |
20773 | msgid " -Wa,<options> Pass comma-separated <options> on to the assembler\n" | |
20774 | msgstr " -Wa,<opciones> Pasa <opciones> separadas por coma al ensamblador\n" | |
20775 | ||
20776 | -#: gcc.c:2975 | |
20777 | +#: gcc.c:2981 | |
20778 | msgid " -Wp,<options> Pass comma-separated <options> on to the preprocessor\n" | |
20779 | msgstr " -Wp,<opciones> Pasa <opciones> separadas por coma al preprocesador\n" | |
20780 | ||
20781 | -#: gcc.c:2976 | |
20782 | +#: gcc.c:2982 | |
20783 | msgid " -Wl,<options> Pass comma-separated <options> on to the linker\n" | |
20784 | msgstr " -Wl,<opciones> Pasa <opciones> separadas por coma al enlazador\n" | |
20785 | ||
20786 | -#: gcc.c:2977 | |
20787 | +#: gcc.c:2983 | |
20788 | msgid " -Xassembler <arg> Pass <arg> on to the assembler\n" | |
20789 | msgstr " -Xassembler <argumento> Pasa el <argumento> al ensamblador\n" | |
20790 | ||
20791 | -#: gcc.c:2978 | |
20792 | +#: gcc.c:2984 | |
20793 | msgid " -Xpreprocessor <arg> Pass <arg> on to the preprocessor\n" | |
20794 | msgstr " -Xpreprocessor <argumento> Pasa el <argumento> al preprocesador\n" | |
20795 | ||
20796 | -#: gcc.c:2979 | |
20797 | +#: gcc.c:2985 | |
20798 | msgid " -Xlinker <arg> Pass <arg> on to the linker\n" | |
20799 | msgstr " -Xlinker <argumento> Pasa el <argumento> al enlazador\n" | |
20800 | ||
20801 | -#: gcc.c:2980 | |
20802 | +#: gcc.c:2986 | |
20803 | msgid " -save-temps Do not delete intermediate files\n" | |
20804 | msgstr " -save-temps No borra los ficheros intermedios\n" | |
20805 | ||
20806 | -#: gcc.c:2981 | |
20807 | +#: gcc.c:2987 | |
20808 | msgid " -save-temps=<arg> Do not delete intermediate files\n" | |
20809 | msgstr " -save-temps=<arg> No borra los ficheros intermedios\n" | |
20810 | ||
20811 | -#: gcc.c:2982 | |
20812 | +#: gcc.c:2988 | |
20813 | msgid "" | |
20814 | " -no-canonical-prefixes Do not canonicalize paths when building relative\n" | |
20815 | " prefixes to other gcc components\n" | |
20816 | @@ -518,23 +518,23 @@ | |
20817 | " -no-canonical-prefixes No crea rutas completas al construir prefijos\n" | |
20818 | " relativos a otros componentes de gcc\n" | |
20819 | ||
20820 | -#: gcc.c:2985 | |
20821 | +#: gcc.c:2991 | |
20822 | msgid " -pipe Use pipes rather than intermediate files\n" | |
20823 | msgstr " -pipe Usa tuberías en lugar de ficheros intermedios\n" | |
20824 | ||
20825 | -#: gcc.c:2986 | |
20826 | +#: gcc.c:2992 | |
20827 | msgid " -time Time the execution of each subprocess\n" | |
20828 | msgstr " -time Obtiene el tiempo de ejecución de cada subproceso\n" | |
20829 | ||
20830 | -#: gcc.c:2987 | |
20831 | +#: gcc.c:2993 | |
20832 | msgid " -specs=<file> Override built-in specs with the contents of <file>\n" | |
20833 | msgstr " -specs=<fichero> Sobrepone las especificaciones internas con el contenido del <fichero>\n" | |
20834 | ||
20835 | -#: gcc.c:2988 | |
20836 | +#: gcc.c:2994 | |
20837 | msgid " -std=<standard> Assume that the input sources are for <standard>\n" | |
20838 | msgstr " -std=<estándar> Asume que los ficheros de entrada son para el <estándar>\n" | |
20839 | ||
20840 | -#: gcc.c:2989 | |
20841 | +#: gcc.c:2995 | |
20842 | msgid "" | |
20843 | " --sysroot=<directory> Use <directory> as the root directory for headers\n" | |
20844 | " and libraries\n" | |
20845 | @@ -542,43 +542,43 @@ | |
20846 | " --sysroot=<directorio> Usa el <directorio> como directorio raíz para\n" | |
20847 | " los encabezados y bibliotecas\n" | |
20848 | ||
20849 | -#: gcc.c:2992 | |
20850 | +#: gcc.c:2998 | |
20851 | msgid " -B <directory> Add <directory> to the compiler's search paths\n" | |
20852 | msgstr " -B <directorio> Agrega el <directorio> a las rutas de búsqueda del compilador\n" | |
20853 | ||
20854 | -#: gcc.c:2993 | |
20855 | +#: gcc.c:2999 | |
20856 | msgid " -v Display the programs invoked by the compiler\n" | |
20857 | msgstr " -v Muestra los programas invocados por el compilador\n" | |
20858 | ||
20859 | -#: gcc.c:2994 | |
20860 | +#: gcc.c:3000 | |
20861 | msgid " -### Like -v but options quoted and commands not executed\n" | |
20862 | msgstr " -### Como -v pero no se ejecutan las opciones entre comillas y las órdenes\n" | |
20863 | ||
20864 | -#: gcc.c:2995 | |
20865 | +#: gcc.c:3001 | |
20866 | msgid " -E Preprocess only; do not compile, assemble or link\n" | |
20867 | msgstr " -E Solamente preprocesa; no compila, ensambla o enlaza\n" | |
20868 | ||
20869 | -#: gcc.c:2996 | |
20870 | +#: gcc.c:3002 | |
20871 | msgid " -S Compile only; do not assemble or link\n" | |
20872 | msgstr " -S Solamente compila; no ensambla o enlaza\n" | |
20873 | ||
20874 | -#: gcc.c:2997 | |
20875 | +#: gcc.c:3003 | |
20876 | msgid " -c Compile and assemble, but do not link\n" | |
20877 | msgstr " -c Compila y ensambla, pero no enlaza\n" | |
20878 | ||
20879 | -#: gcc.c:2998 | |
20880 | +#: gcc.c:3004 | |
20881 | msgid " -o <file> Place the output into <file>\n" | |
20882 | msgstr " -o <fichero> Coloca la salida en el <fichero>\n" | |
20883 | ||
20884 | -#: gcc.c:2999 | |
20885 | +#: gcc.c:3005 | |
20886 | msgid " -pie Create a position independent executable\n" | |
20887 | msgstr " -pie Genera un ejecutable independiente de posición\n" | |
20888 | ||
20889 | -#: gcc.c:3000 | |
20890 | +#: gcc.c:3006 | |
20891 | msgid " -shared Create a shared library\n" | |
20892 | msgstr " -shared Crea una biblioteca compartida\n" | |
20893 | ||
20894 | -#: gcc.c:3001 | |
20895 | +#: gcc.c:3007 | |
20896 | msgid "" | |
20897 | " -x <language> Specify the language of the following input files\n" | |
20898 | " Permissible languages include: c c++ assembler none\n" | |
20899 | @@ -590,7 +590,7 @@ | |
20900 | " 'none' significa revertir a la conducta habitual de\n" | |
20901 | " adivinar el lenguaje basado en la extensión del fichero\n" | |
20902 | ||
20903 | -#: gcc.c:3008 | |
20904 | +#: gcc.c:3014 | |
20905 | #, c-format | |
20906 | msgid "" | |
20907 | "\n" | |
20908 | @@ -603,27 +603,27 @@ | |
20909 | " automáticamente a los varios subprocesos invocados por %s. Para pasar\n" | |
20910 | " otras opciones a estos procesos se deben usar las opciones -W<letra>.\n" | |
20911 | ||
20912 | -#: gcc.c:5233 | |
20913 | +#: gcc.c:5239 | |
20914 | #, c-format | |
20915 | msgid "Processing spec (%s), which is '%s'\n" | |
20916 | msgstr "Se procesa la especificación (%s), la cual es '%s'\n" | |
20917 | ||
20918 | -#: gcc.c:6472 | |
20919 | +#: gcc.c:6497 | |
20920 | #, c-format | |
20921 | msgid "install: %s%s\n" | |
20922 | msgstr "instalar: %s%s\n" | |
20923 | ||
20924 | -#: gcc.c:6475 | |
20925 | +#: gcc.c:6500 | |
20926 | #, c-format | |
20927 | msgid "programs: %s\n" | |
20928 | msgstr "programas: %s\n" | |
20929 | ||
20930 | -#: gcc.c:6477 | |
20931 | +#: gcc.c:6502 | |
20932 | #, c-format | |
20933 | msgid "libraries: %s\n" | |
20934 | msgstr "bibliotecas: %s\n" | |
20935 | ||
20936 | -#: gcc.c:6552 | |
20937 | +#: gcc.c:6577 | |
20938 | #, c-format | |
20939 | msgid "" | |
20940 | "\n" | |
20941 | @@ -632,16 +632,16 @@ | |
20942 | "\n" | |
20943 | "Para instrucciones de reporte de bichos, por favor vea:\n" | |
20944 | ||
20945 | -#: gcc.c:6568 | |
20946 | +#: gcc.c:6593 | |
20947 | #, c-format | |
20948 | msgid "%s %s%s\n" | |
20949 | msgstr "%s %s%s\n" | |
20950 | ||
20951 | -#: gcc.c:6571 gcov.c:488 fortran/gfortranspec.c:305 java/jcf-dump.c:1165 | |
20952 | +#: gcc.c:6596 gcov.c:488 fortran/gfortranspec.c:305 java/jcf-dump.c:1165 | |
20953 | msgid "(C)" | |
20954 | msgstr "(C)" | |
20955 | ||
20956 | -#: gcc.c:6572 java/jcf-dump.c:1166 | |
20957 | +#: gcc.c:6597 java/jcf-dump.c:1166 | |
20958 | #, c-format | |
20959 | msgid "" | |
20960 | "This is free software; see the source for copying conditions. There is NO\n" | |
20961 | @@ -653,32 +653,32 @@ | |
20962 | "PARTICULAR\n" | |
20963 | "\n" | |
20964 | ||
20965 | -#: gcc.c:6589 | |
20966 | +#: gcc.c:6614 | |
20967 | #, c-format | |
20968 | msgid "Target: %s\n" | |
20969 | msgstr "Objetivo: %s\n" | |
20970 | ||
20971 | -#: gcc.c:6590 | |
20972 | +#: gcc.c:6615 | |
20973 | #, c-format | |
20974 | msgid "Configured with: %s\n" | |
20975 | msgstr "Configurado con: %s\n" | |
20976 | ||
20977 | -#: gcc.c:6604 | |
20978 | +#: gcc.c:6629 | |
20979 | #, c-format | |
20980 | msgid "Thread model: %s\n" | |
20981 | msgstr "Modelo de hilos: %s\n" | |
20982 | ||
20983 | -#: gcc.c:6615 | |
20984 | +#: gcc.c:6640 | |
20985 | #, c-format | |
20986 | msgid "gcc version %s %s\n" | |
20987 | msgstr "gcc versión %s %s\n" | |
20988 | ||
20989 | -#: gcc.c:6618 | |
20990 | +#: gcc.c:6643 | |
20991 | #, c-format | |
20992 | msgid "gcc driver version %s %sexecuting gcc version %s\n" | |
20993 | msgstr "controlador gcc versión %s %sejecutando gcc versión %s\n" | |
20994 | ||
20995 | -#: gcc.c:6865 | |
20996 | +#: gcc.c:6897 | |
20997 | #, c-format | |
20998 | msgid "" | |
20999 | "\n" | |
21000 | @@ -691,14 +691,14 @@ | |
21001 | "======================\n" | |
21002 | "\n" | |
21003 | ||
21004 | -#: gcc.c:6866 | |
21005 | +#: gcc.c:6898 | |
21006 | #, c-format | |
21007 | msgid "" | |
21008 | "Use \"-Wl,OPTION\" to pass \"OPTION\" to the linker.\n" | |
21009 | "\n" | |
21010 | msgstr "Utilice \"-Wl,OPCIÓN\" para pasar la \"OPCIÓN\" al enlazador.\n" | |
21011 | ||
21012 | -#: gcc.c:8058 | |
21013 | +#: gcc.c:8090 | |
21014 | #, c-format | |
21015 | msgid "" | |
21016 | "Assembler options\n" | |
21017 | @@ -709,7 +709,7 @@ | |
21018 | "=======================\n" | |
21019 | "\n" | |
21020 | ||
21021 | -#: gcc.c:8059 | |
21022 | +#: gcc.c:8091 | |
21023 | #, c-format | |
21024 | msgid "" | |
21025 | "Use \"-Wa,OPTION\" to pass \"OPTION\" to the assembler.\n" | |
21026 | @@ -1185,27 +1185,27 @@ | |
21027 | msgid "At top level:" | |
21028 | msgstr "En el nivel principal:" | |
21029 | ||
21030 | -#: langhooks.c:394 cp/error.c:2985 | |
21031 | +#: langhooks.c:394 cp/error.c:2987 | |
21032 | #, c-format | |
21033 | msgid "In member function %qs" | |
21034 | msgstr "En la función miembro %qs" | |
21035 | ||
21036 | -#: langhooks.c:398 cp/error.c:2988 | |
21037 | +#: langhooks.c:398 cp/error.c:2990 | |
21038 | #, c-format | |
21039 | msgid "In function %qs" | |
21040 | msgstr "En la función %qs" | |
21041 | ||
21042 | -#: langhooks.c:449 cp/error.c:2938 | |
21043 | +#: langhooks.c:449 cp/error.c:2940 | |
21044 | #, c-format | |
21045 | msgid " inlined from %qs at %s:%d:%d" | |
21046 | msgstr " incluído en línea de %qs en %s:%d:%d" | |
21047 | ||
21048 | -#: langhooks.c:454 cp/error.c:2943 | |
21049 | +#: langhooks.c:454 cp/error.c:2945 | |
21050 | #, c-format | |
21051 | msgid " inlined from %qs at %s:%d" | |
21052 | msgstr " incluído en línea de %qs en %s:%d" | |
21053 | ||
21054 | -#: langhooks.c:460 cp/error.c:2949 | |
21055 | +#: langhooks.c:460 cp/error.c:2951 | |
21056 | #, c-format | |
21057 | msgid " inlined from %qs" | |
21058 | msgstr " incluído en línea de %qs" | |
21059 | @@ -1397,7 +1397,7 @@ | |
21060 | msgid "VOIDmode on an output" | |
21061 | msgstr "modoVOID en una salida" | |
21062 | ||
21063 | -#: reload1.c:8653 | |
21064 | +#: reload1.c:8658 | |
21065 | msgid "failure trying to reload:" | |
21066 | msgstr "falla al tratar de recargar:" | |
21067 | ||
21068 | @@ -1409,39 +1409,39 @@ | |
21069 | msgid "insn does not satisfy its constraints:" | |
21070 | msgstr "la insn no satisface sus restricciones:" | |
21071 | ||
21072 | -#: targhooks.c:1403 | |
21073 | +#: targhooks.c:1404 | |
21074 | #, c-format | |
21075 | msgid "created and used with differing settings of '%s'" | |
21076 | msgstr "creado y usado con diferentes opciones de '%s'" | |
21077 | ||
21078 | -#: targhooks.c:1405 | |
21079 | +#: targhooks.c:1406 | |
21080 | msgid "out of memory" | |
21081 | msgstr "memoria agotada" | |
21082 | ||
21083 | -#: targhooks.c:1420 | |
21084 | +#: targhooks.c:1421 | |
21085 | msgid "created and used with different settings of -fpic" | |
21086 | msgstr "creado y usado con diferentes opciones de -fpic" | |
21087 | ||
21088 | -#: targhooks.c:1422 | |
21089 | +#: targhooks.c:1423 | |
21090 | msgid "created and used with different settings of -fpie" | |
21091 | msgstr "creado y usado con diferentes opciones de -fpie" | |
21092 | ||
21093 | -#: tlink.c:387 | |
21094 | +#: tlink.c:392 | |
21095 | #, c-format | |
21096 | msgid "collect: reading %s\n" | |
21097 | msgstr "collect: leyendo %s\n" | |
21098 | ||
21099 | -#: tlink.c:537 | |
21100 | +#: tlink.c:548 | |
21101 | #, c-format | |
21102 | msgid "collect: recompiling %s\n" | |
21103 | msgstr "collect: recompilando %s\n" | |
21104 | ||
21105 | -#: tlink.c:744 | |
21106 | +#: tlink.c:632 | |
21107 | #, c-format | |
21108 | msgid "collect: tweaking %s in %s\n" | |
21109 | msgstr "collect: alterando %s en %s\n" | |
21110 | ||
21111 | -#: tlink.c:794 | |
21112 | +#: tlink.c:848 | |
21113 | #, c-format | |
21114 | msgid "collect: relinking\n" | |
21115 | msgstr "collect: reenlazando\n" | |
21116 | @@ -2523,121 +2523,121 @@ | |
21117 | msgid "<return-value>" | |
21118 | msgstr "<valor-devolución>" | |
21119 | ||
21120 | -#: c-family/c-pretty-print.c:2138 cp/error.c:1802 cp/error.c:2711 | |
21121 | +#: c-family/c-pretty-print.c:2138 cp/error.c:1802 cp/error.c:2713 | |
21122 | msgid "<unknown>" | |
21123 | msgstr "<desconocido>" | |
21124 | ||
21125 | -#: config/alpha/alpha.c:5017 | |
21126 | +#: config/alpha/alpha.c:5022 | |
21127 | #, c-format | |
21128 | msgid "invalid %%H value" | |
21129 | msgstr "valor %%H inválido" | |
21130 | ||
21131 | -#: config/alpha/alpha.c:5038 config/bfin/bfin.c:1423 | |
21132 | +#: config/alpha/alpha.c:5043 config/bfin/bfin.c:1423 | |
21133 | #, c-format | |
21134 | msgid "invalid %%J value" | |
21135 | msgstr "valor %%J inválido" | |
21136 | ||
21137 | -#: config/alpha/alpha.c:5068 config/ia64/ia64.c:5291 | |
21138 | +#: config/alpha/alpha.c:5073 config/ia64/ia64.c:5291 | |
21139 | #, c-format | |
21140 | msgid "invalid %%r value" | |
21141 | msgstr "valor %%r inválido" | |
21142 | ||
21143 | -#: config/alpha/alpha.c:5078 config/ia64/ia64.c:5245 | |
21144 | -#: config/rs6000/rs6000.c:15003 config/xtensa/xtensa.c:2350 | |
21145 | +#: config/alpha/alpha.c:5083 config/ia64/ia64.c:5245 | |
21146 | +#: config/rs6000/rs6000.c:15019 config/xtensa/xtensa.c:2350 | |
21147 | #, c-format | |
21148 | msgid "invalid %%R value" | |
21149 | msgstr "valor %%R inválido" | |
21150 | ||
21151 | -#: config/alpha/alpha.c:5084 config/rs6000/rs6000.c:14922 | |
21152 | +#: config/alpha/alpha.c:5089 config/rs6000/rs6000.c:14938 | |
21153 | #: config/xtensa/xtensa.c:2317 | |
21154 | #, c-format | |
21155 | msgid "invalid %%N value" | |
21156 | msgstr "valor %%N inválido" | |
21157 | ||
21158 | -#: config/alpha/alpha.c:5092 config/rs6000/rs6000.c:14950 | |
21159 | +#: config/alpha/alpha.c:5097 config/rs6000/rs6000.c:14966 | |
21160 | #, c-format | |
21161 | msgid "invalid %%P value" | |
21162 | msgstr "valor %%P inválido" | |
21163 | ||
21164 | -#: config/alpha/alpha.c:5100 | |
21165 | +#: config/alpha/alpha.c:5105 | |
21166 | #, c-format | |
21167 | msgid "invalid %%h value" | |
21168 | msgstr "valor %%h inválido" | |
21169 | ||
21170 | -#: config/alpha/alpha.c:5108 config/xtensa/xtensa.c:2343 | |
21171 | +#: config/alpha/alpha.c:5113 config/xtensa/xtensa.c:2343 | |
21172 | #, c-format | |
21173 | msgid "invalid %%L value" | |
21174 | msgstr "valor %%L inválido" | |
21175 | ||
21176 | -#: config/alpha/alpha.c:5147 config/rs6000/rs6000.c:14904 | |
21177 | +#: config/alpha/alpha.c:5152 config/rs6000/rs6000.c:14920 | |
21178 | #, c-format | |
21179 | msgid "invalid %%m value" | |
21180 | msgstr "valor %%m inválido" | |
21181 | ||
21182 | -#: config/alpha/alpha.c:5155 config/rs6000/rs6000.c:14912 | |
21183 | +#: config/alpha/alpha.c:5160 config/rs6000/rs6000.c:14928 | |
21184 | #, c-format | |
21185 | msgid "invalid %%M value" | |
21186 | msgstr "valor %%M inválido" | |
21187 | ||
21188 | -#: config/alpha/alpha.c:5199 | |
21189 | +#: config/alpha/alpha.c:5204 | |
21190 | #, c-format | |
21191 | msgid "invalid %%U value" | |
21192 | msgstr "valor %%U inválido" | |
21193 | ||
21194 | -#: config/alpha/alpha.c:5207 config/alpha/alpha.c:5218 | |
21195 | -#: config/rs6000/rs6000.c:15011 | |
21196 | +#: config/alpha/alpha.c:5212 config/alpha/alpha.c:5223 | |
21197 | +#: config/rs6000/rs6000.c:15027 | |
21198 | #, c-format | |
21199 | msgid "invalid %%s value" | |
21200 | msgstr "valor %%s inválido" | |
21201 | ||
21202 | -#: config/alpha/alpha.c:5229 | |
21203 | +#: config/alpha/alpha.c:5234 | |
21204 | #, c-format | |
21205 | msgid "invalid %%C value" | |
21206 | msgstr "valor %%C inválido" | |
21207 | ||
21208 | -#: config/alpha/alpha.c:5266 config/rs6000/rs6000.c:14769 | |
21209 | +#: config/alpha/alpha.c:5271 config/rs6000/rs6000.c:14785 | |
21210 | #, c-format | |
21211 | msgid "invalid %%E value" | |
21212 | msgstr "valor %%E inválido" | |
21213 | ||
21214 | -#: config/alpha/alpha.c:5291 config/alpha/alpha.c:5339 | |
21215 | +#: config/alpha/alpha.c:5296 config/alpha/alpha.c:5344 | |
21216 | #, c-format | |
21217 | msgid "unknown relocation unspec" | |
21218 | msgstr "reubicación unspec desconocida" | |
21219 | ||
21220 | -#: config/alpha/alpha.c:5300 config/rs6000/rs6000.c:15377 | |
21221 | -#: config/spu/spu.c:1744 | |
21222 | +#: config/alpha/alpha.c:5305 config/cr16/cr16.c:1537 | |
21223 | +#: config/rs6000/rs6000.c:15393 config/spu/spu.c:1744 | |
21224 | #, c-format | |
21225 | msgid "invalid %%xn code" | |
21226 | msgstr "código %%xn inválido" | |
21227 | ||
21228 | -#: config/arm/arm.c:17110 config/arm/arm.c:17128 | |
21229 | +#: config/arm/arm.c:17113 config/arm/arm.c:17131 | |
21230 | #, c-format | |
21231 | msgid "predicated Thumb instruction" | |
21232 | msgstr "instrucción de predicado Thumb" | |
21233 | ||
21234 | -#: config/arm/arm.c:17116 | |
21235 | +#: config/arm/arm.c:17119 | |
21236 | #, c-format | |
21237 | msgid "predicated instruction in conditional sequence" | |
21238 | msgstr "instrucción de predicado en una secuencia condicional" | |
21239 | ||
21240 | -#: config/arm/arm.c:17247 | |
21241 | +#: config/arm/arm.c:17250 | |
21242 | #, c-format | |
21243 | msgid "Unsupported operand for code '%c'" | |
21244 | msgstr "No se admite el operando para el código '%c'" | |
21245 | ||
21246 | -#: config/arm/arm.c:17295 | |
21247 | +#: config/arm/arm.c:17298 | |
21248 | #, c-format | |
21249 | msgid "invalid shift operand" | |
21250 | msgstr "operando de desplazamiento inválido" | |
21251 | ||
21252 | -#: config/arm/arm.c:17352 config/arm/arm.c:17374 config/arm/arm.c:17384 | |
21253 | -#: config/arm/arm.c:17394 config/arm/arm.c:17404 config/arm/arm.c:17443 | |
21254 | -#: config/arm/arm.c:17461 config/arm/arm.c:17496 config/arm/arm.c:17515 | |
21255 | -#: config/arm/arm.c:17530 config/arm/arm.c:17557 config/arm/arm.c:17564 | |
21256 | -#: config/arm/arm.c:17582 config/arm/arm.c:17589 config/arm/arm.c:17597 | |
21257 | -#: config/arm/arm.c:17618 config/arm/arm.c:17625 config/arm/arm.c:17750 | |
21258 | -#: config/arm/arm.c:17757 config/arm/arm.c:17780 config/arm/arm.c:17787 | |
21259 | +#: config/arm/arm.c:17355 config/arm/arm.c:17377 config/arm/arm.c:17387 | |
21260 | +#: config/arm/arm.c:17397 config/arm/arm.c:17407 config/arm/arm.c:17446 | |
21261 | +#: config/arm/arm.c:17464 config/arm/arm.c:17499 config/arm/arm.c:17518 | |
21262 | +#: config/arm/arm.c:17533 config/arm/arm.c:17560 config/arm/arm.c:17567 | |
21263 | +#: config/arm/arm.c:17585 config/arm/arm.c:17592 config/arm/arm.c:17600 | |
21264 | +#: config/arm/arm.c:17621 config/arm/arm.c:17628 config/arm/arm.c:17753 | |
21265 | +#: config/arm/arm.c:17760 config/arm/arm.c:17783 config/arm/arm.c:17790 | |
21266 | #: config/bfin/bfin.c:1436 config/bfin/bfin.c:1443 config/bfin/bfin.c:1450 | |
21267 | #: config/bfin/bfin.c:1457 config/bfin/bfin.c:1466 config/bfin/bfin.c:1473 | |
21268 | #: config/bfin/bfin.c:1480 config/bfin/bfin.c:1487 | |
21269 | @@ -2645,78 +2645,79 @@ | |
21270 | msgid "invalid operand for code '%c'" | |
21271 | msgstr "operando inválido para el código '%c'" | |
21272 | ||
21273 | -#: config/arm/arm.c:17456 | |
21274 | +#: config/arm/arm.c:17459 | |
21275 | #, c-format | |
21276 | msgid "instruction never executed" | |
21277 | msgstr "la instrucción nunca se ejecuta" | |
21278 | ||
21279 | -#: config/arm/arm.c:17799 | |
21280 | +#: config/arm/arm.c:17802 | |
21281 | #, c-format | |
21282 | msgid "missing operand" | |
21283 | msgstr "falta un operando" | |
21284 | ||
21285 | -#: config/arm/arm.c:20399 | |
21286 | +#: config/arm/arm.c:20404 | |
21287 | msgid "function parameters cannot have __fp16 type" | |
21288 | msgstr "los parámetros de la función no pueden tener el tipo __fp16" | |
21289 | ||
21290 | -#: config/arm/arm.c:20409 | |
21291 | +#: config/arm/arm.c:20414 | |
21292 | msgid "functions cannot return __fp16 type" | |
21293 | msgstr "la función no puede devolver el tipo __fp16" | |
21294 | ||
21295 | -#: config/avr/avr.c:1698 | |
21296 | +#: config/avr/avr.c:1695 | |
21297 | #, c-format | |
21298 | msgid "address operand requires constraint for X, Y, or Z register" | |
21299 | msgstr "el operando de dirección requiere una restricción para los registros X, Y, o Z" | |
21300 | ||
21301 | -#: config/avr/avr.c:1851 | |
21302 | +#: config/avr/avr.c:1848 | |
21303 | msgid "operands to %T/%t must be reg + const_int:" | |
21304 | msgstr "los operandos para %T/%t deben ser reg + const_int:" | |
21305 | ||
21306 | -#: config/avr/avr.c:1883 config/avr/avr.c:1938 | |
21307 | +#: config/avr/avr.c:1886 config/avr/avr.c:1941 | |
21308 | msgid "bad address, not an I/O address:" | |
21309 | msgstr "dirección errónea, no es una dirección de E/S:" | |
21310 | ||
21311 | -#: config/avr/avr.c:1892 | |
21312 | +#: config/avr/avr.c:1895 | |
21313 | msgid "bad address, not a constant:" | |
21314 | msgstr "dirección errónea, no es una constante:" | |
21315 | ||
21316 | -#: config/avr/avr.c:1910 | |
21317 | +#: config/avr/avr.c:1913 | |
21318 | msgid "bad address, not (reg+disp):" | |
21319 | msgstr "dirección errónea, no (reg+disp):" | |
21320 | ||
21321 | -#: config/avr/avr.c:1917 | |
21322 | +#: config/avr/avr.c:1920 | |
21323 | msgid "bad address, not post_inc or pre_dec:" | |
21324 | msgstr "dirección errónea, no hay post_inc o pre_dec:" | |
21325 | ||
21326 | -#: config/avr/avr.c:1928 | |
21327 | +#: config/avr/avr.c:1931 | |
21328 | msgid "internal compiler error. Bad address:" | |
21329 | msgstr "error interno del compilador. Dirección errónea:" | |
21330 | ||
21331 | -#: config/avr/avr.c:1958 | |
21332 | +#: config/avr/avr.c:1961 | |
21333 | msgid "internal compiler error. Unknown mode:" | |
21334 | msgstr "error interno del compilador. Modo desconocido:" | |
21335 | ||
21336 | -#: config/avr/avr.c:2918 config/avr/avr.c:3491 config/avr/avr.c:3776 | |
21337 | +#: config/avr/avr.c:2922 config/avr/avr.c:3495 config/avr/avr.c:3780 | |
21338 | msgid "invalid insn:" | |
21339 | msgstr "insn inválida:" | |
21340 | ||
21341 | -#: config/avr/avr.c:2947 config/avr/avr.c:3022 config/avr/avr.c:3065 | |
21342 | -#: config/avr/avr.c:3084 config/avr/avr.c:3175 config/avr/avr.c:3344 | |
21343 | -#: config/avr/avr.c:3554 config/avr/avr.c:3669 config/avr/avr.c:3805 | |
21344 | -#: config/avr/avr.c:3898 | |
21345 | +#: config/avr/avr.c:2951 config/avr/avr.c:3026 config/avr/avr.c:3069 | |
21346 | +#: config/avr/avr.c:3088 config/avr/avr.c:3179 config/avr/avr.c:3348 | |
21347 | +#: config/avr/avr.c:3558 config/avr/avr.c:3673 config/avr/avr.c:3809 | |
21348 | +#: config/avr/avr.c:3900 config/avr/avr.c:4022 | |
21349 | msgid "incorrect insn:" | |
21350 | msgstr "insn incorrecta:" | |
21351 | ||
21352 | -#: config/avr/avr.c:3099 config/avr/avr.c:3260 config/avr/avr.c:3415 | |
21353 | -#: config/avr/avr.c:3622 config/avr/avr.c:3715 config/avr/avr.c:3953 | |
21354 | +#: config/avr/avr.c:3103 config/avr/avr.c:3264 config/avr/avr.c:3419 | |
21355 | +#: config/avr/avr.c:3626 config/avr/avr.c:3719 config/avr/avr.c:3956 | |
21356 | +#: config/avr/avr.c:4077 | |
21357 | msgid "unknown move insn:" | |
21358 | msgstr "insn move desconocida:" | |
21359 | ||
21360 | -#: config/avr/avr.c:4367 | |
21361 | +#: config/avr/avr.c:4491 | |
21362 | msgid "bad shift insn:" | |
21363 | msgstr "insn shift errónea:" | |
21364 | ||
21365 | -#: config/avr/avr.c:4475 config/avr/avr.c:4958 config/avr/avr.c:5375 | |
21366 | +#: config/avr/avr.c:4599 config/avr/avr.c:5080 config/avr/avr.c:5495 | |
21367 | msgid "internal compiler error. Incorrect shift:" | |
21368 | msgstr "error interno del compilador. Desplazamiento incorrecto:" | |
21369 | ||
21370 | @@ -2731,7 +2732,7 @@ | |
21371 | msgstr "operando const_double inválido" | |
21372 | ||
21373 | #: config/cris/cris.c:579 config/moxie/moxie.c:111 final.c:3129 final.c:3131 | |
21374 | -#: fold-const.c:287 gcc.c:4603 gcc.c:4617 loop-iv.c:2968 loop-iv.c:2977 | |
21375 | +#: fold-const.c:287 gcc.c:4609 gcc.c:4623 loop-iv.c:2968 loop-iv.c:2977 | |
21376 | #: rtl-error.c:103 toplev.c:346 tree-ssa-loop-niter.c:1916 tree-vrp.c:6041 | |
21377 | #: cp/typeck.c:5334 java/expr.c:390 lto/lto-object.c:184 lto/lto-object.c:282 | |
21378 | #: lto/lto-object.c:339 lto/lto-object.c:363 | |
21379 | @@ -2832,7 +2833,7 @@ | |
21380 | ||
21381 | #. Unknown flag. | |
21382 | #. Undocumented flag. | |
21383 | -#: config/epiphany/epiphany.c:1193 config/m32r/m32r.c:2217 | |
21384 | +#: config/epiphany/epiphany.c:1196 config/m32r/m32r.c:2217 | |
21385 | #: config/sparc/sparc.c:8293 | |
21386 | #, c-format | |
21387 | msgid "invalid operand output code" | |
21388 | @@ -2962,67 +2963,72 @@ | |
21389 | msgid "bad output_condmove_single operand" | |
21390 | msgstr "operando output_condmove_single erróneo" | |
21391 | ||
21392 | -#: config/i386/i386.c:13111 | |
21393 | +#: config/i386/i386.c:13125 | |
21394 | #, c-format | |
21395 | msgid "invalid UNSPEC as operand" | |
21396 | msgstr "UNSPEC inválido como operando" | |
21397 | ||
21398 | -#: config/i386/i386.c:13721 | |
21399 | +#: config/i386/i386.c:13748 | |
21400 | #, c-format | |
21401 | msgid "'%%&' used without any local dynamic TLS references" | |
21402 | msgstr "se usó '%%&' sin ninguna referencia TLS dinámica local" | |
21403 | ||
21404 | -#: config/i386/i386.c:13812 config/i386/i386.c:13887 | |
21405 | +#: config/i386/i386.c:13839 config/i386/i386.c:13914 | |
21406 | #, c-format | |
21407 | msgid "invalid operand size for operand code '%c'" | |
21408 | msgstr "tamaño de operando inválido para el código de operando '%c'" | |
21409 | ||
21410 | -#: config/i386/i386.c:13882 | |
21411 | +#: config/i386/i386.c:13909 | |
21412 | #, c-format | |
21413 | msgid "invalid operand type used with operand code '%c'" | |
21414 | msgstr "se usó un tipo de operando inválido con el código de operando '%c'" | |
21415 | ||
21416 | -#: config/i386/i386.c:13963 config/i386/i386.c:14003 | |
21417 | +#: config/i386/i386.c:13990 config/i386/i386.c:14030 | |
21418 | #, c-format | |
21419 | msgid "operand is not a condition code, invalid operand code 'D'" | |
21420 | msgstr "el operando no es un código de condición, código de operando 'D' inválido" | |
21421 | ||
21422 | -#: config/i386/i386.c:14029 | |
21423 | +#: config/i386/i386.c:14056 | |
21424 | #, c-format | |
21425 | msgid "operand is neither a constant nor a condition code, invalid operand code 'C'" | |
21426 | msgstr "el operando no es una constante ni un código de condición, código de operando 'C' inválido" | |
21427 | ||
21428 | -#: config/i386/i386.c:14039 | |
21429 | +#: config/i386/i386.c:14066 | |
21430 | #, c-format | |
21431 | msgid "operand is neither a constant nor a condition code, invalid operand code 'F'" | |
21432 | msgstr "el operando no es una constante ni un código de condición, código de operando 'F' inválido" | |
21433 | ||
21434 | -#: config/i386/i386.c:14057 | |
21435 | +#: config/i386/i386.c:14084 | |
21436 | #, c-format | |
21437 | msgid "operand is neither a constant nor a condition code, invalid operand code 'c'" | |
21438 | msgstr "el operando no es una constante ni un código de condición, código de operando 'c' inválido" | |
21439 | ||
21440 | -#: config/i386/i386.c:14067 | |
21441 | +#: config/i386/i386.c:14094 | |
21442 | #, c-format | |
21443 | msgid "operand is neither a constant nor a condition code, invalid operand code 'f'" | |
21444 | msgstr "el operando no es una constante ni un código de condición, código de operando 'f' inválido" | |
21445 | ||
21446 | -#: config/i386/i386.c:14170 | |
21447 | +#: config/i386/i386.c:14109 | |
21448 | #, c-format | |
21449 | +msgid "operand is not an offsettable memory reference, invalid operand code 'H'" | |
21450 | +msgstr "el operando no es una referencia de memoria desplazable, código de operando 'H' inválido" | |
21451 | + | |
21452 | +#: config/i386/i386.c:14204 | |
21453 | +#, c-format | |
21454 | msgid "operand is not a condition code, invalid operand code 'Y'" | |
21455 | msgstr "el operando no es un código de condición, código de operando 'Y' inválido" | |
21456 | ||
21457 | -#: config/i386/i386.c:14200 | |
21458 | +#: config/i386/i386.c:14234 | |
21459 | #, c-format | |
21460 | msgid "invalid operand code '%c'" | |
21461 | msgstr "código de operando '%c' inválido" | |
21462 | ||
21463 | -#: config/i386/i386.c:14255 | |
21464 | +#: config/i386/i386.c:14289 | |
21465 | #, c-format | |
21466 | msgid "invalid constraints for operand" | |
21467 | msgstr "restricciones inválidas para el operando" | |
21468 | ||
21469 | -#: config/i386/i386.c:23269 | |
21470 | +#: config/i386/i386.c:23303 | |
21471 | msgid "unknown insn mode" | |
21472 | msgstr "modo insn desconocido" | |
21473 | ||
21474 | @@ -3073,12 +3079,13 @@ | |
21475 | msgid "invalid operation on %<__fpreg%>" | |
21476 | msgstr "operación inválida en %<__fpreg%>" | |
21477 | ||
21478 | -#: config/iq2000/iq2000.c:3130 | |
21479 | +#: config/iq2000/iq2000.c:3130 config/tilegx/tilegx.c:5131 | |
21480 | +#: config/tilepro/tilepro.c:4702 | |
21481 | #, c-format | |
21482 | msgid "invalid %%P operand" | |
21483 | msgstr "operando %%P inválido" | |
21484 | ||
21485 | -#: config/iq2000/iq2000.c:3138 config/rs6000/rs6000.c:14940 | |
21486 | +#: config/iq2000/iq2000.c:3138 config/rs6000/rs6000.c:14956 | |
21487 | #, c-format | |
21488 | msgid "invalid %%p value" | |
21489 | msgstr "valor %%p inválido" | |
21490 | @@ -3157,7 +3164,7 @@ | |
21491 | msgstr "la dirección de post-incremento no es un registro" | |
21492 | ||
21493 | #: config/m32r/m32r.c:2321 config/m32r/m32r.c:2335 | |
21494 | -#: config/rs6000/rs6000.c:24531 | |
21495 | +#: config/rs6000/rs6000.c:24548 | |
21496 | msgid "bad address" | |
21497 | msgstr "dirección errónea" | |
21498 | ||
21499 | @@ -3204,19 +3211,19 @@ | |
21500 | msgid "letter %c was found & insn was not CONST_INT" | |
21501 | msgstr "se encontró la letra %c y la insn no era CONS_INT" | |
21502 | ||
21503 | -#: config/mips/mips.c:7547 config/mips/mips.c:7568 config/mips/mips.c:7688 | |
21504 | +#: config/mips/mips.c:7709 config/mips/mips.c:7730 config/mips/mips.c:7850 | |
21505 | #, c-format | |
21506 | msgid "'%%%c' is not a valid operand prefix" | |
21507 | msgstr "'%%%c' no es un prefijo de operando válido" | |
21508 | ||
21509 | -#: config/mips/mips.c:7625 config/mips/mips.c:7632 config/mips/mips.c:7639 | |
21510 | -#: config/mips/mips.c:7646 config/mips/mips.c:7706 config/mips/mips.c:7720 | |
21511 | -#: config/mips/mips.c:7733 config/mips/mips.c:7742 | |
21512 | +#: config/mips/mips.c:7787 config/mips/mips.c:7794 config/mips/mips.c:7801 | |
21513 | +#: config/mips/mips.c:7808 config/mips/mips.c:7868 config/mips/mips.c:7882 | |
21514 | +#: config/mips/mips.c:7895 config/mips/mips.c:7904 | |
21515 | #, c-format | |
21516 | msgid "invalid use of '%%%c'" | |
21517 | msgstr "uso inválido de '%%%c'" | |
21518 | ||
21519 | -#: config/mips/mips.c:7964 | |
21520 | +#: config/mips/mips.c:8126 | |
21521 | msgid "mips_debugger_offset called with non stack/frame/arg pointer" | |
21522 | msgstr "se llamó a mips_debuger_offset con un puntero que no es stack/frame/arg" | |
21523 | ||
21524 | @@ -3292,194 +3299,194 @@ | |
21525 | msgid "Try running '%s' in the shell to raise its limit.\n" | |
21526 | msgstr "Pruebe ejecutar '%s' en el intérprete de órdenes para elevar su límite.\n" | |
21527 | ||
21528 | -#: config/rs6000/rs6000.c:2745 | |
21529 | +#: config/rs6000/rs6000.c:2758 | |
21530 | msgid "-mvsx requires hardware floating point" | |
21531 | msgstr "-mvsx requiere coma flotante de hardware" | |
21532 | ||
21533 | -#: config/rs6000/rs6000.c:2750 | |
21534 | +#: config/rs6000/rs6000.c:2763 | |
21535 | msgid "-mvsx and -mpaired are incompatible" | |
21536 | msgstr "-mvsx y -mpaired son incompatibles" | |
21537 | ||
21538 | -#: config/rs6000/rs6000.c:2755 | |
21539 | +#: config/rs6000/rs6000.c:2768 | |
21540 | msgid "-mvsx used with little endian code" | |
21541 | msgstr "se usó -mvsx con código little endian" | |
21542 | ||
21543 | -#: config/rs6000/rs6000.c:2757 | |
21544 | +#: config/rs6000/rs6000.c:2770 | |
21545 | msgid "-mvsx needs indexed addressing" | |
21546 | msgstr "-mvsx necesita direccionamiento indizado" | |
21547 | ||
21548 | -#: config/rs6000/rs6000.c:2761 | |
21549 | +#: config/rs6000/rs6000.c:2774 | |
21550 | msgid "-mvsx and -mno-altivec are incompatible" | |
21551 | msgstr "-mvsx y -mno-altivec son incompatibles" | |
21552 | ||
21553 | -#: config/rs6000/rs6000.c:2763 | |
21554 | +#: config/rs6000/rs6000.c:2776 | |
21555 | msgid "-mno-altivec disables vsx" | |
21556 | msgstr "-mno-altivec desactiva vsx" | |
21557 | ||
21558 | -#: config/rs6000/rs6000.c:7311 | |
21559 | +#: config/rs6000/rs6000.c:7324 | |
21560 | msgid "bad move" | |
21561 | msgstr "move erróneo" | |
21562 | ||
21563 | -#: config/rs6000/rs6000.c:14750 | |
21564 | +#: config/rs6000/rs6000.c:14766 | |
21565 | #, c-format | |
21566 | msgid "invalid %%c value" | |
21567 | msgstr "valor %%c inválido" | |
21568 | ||
21569 | -#: config/rs6000/rs6000.c:14778 | |
21570 | +#: config/rs6000/rs6000.c:14794 | |
21571 | #, c-format | |
21572 | msgid "invalid %%f value" | |
21573 | msgstr "valor %%f inválido" | |
21574 | ||
21575 | -#: config/rs6000/rs6000.c:14787 | |
21576 | +#: config/rs6000/rs6000.c:14803 | |
21577 | #, c-format | |
21578 | msgid "invalid %%F value" | |
21579 | msgstr "valor %%F inválido" | |
21580 | ||
21581 | -#: config/rs6000/rs6000.c:14796 | |
21582 | +#: config/rs6000/rs6000.c:14812 | |
21583 | #, c-format | |
21584 | msgid "invalid %%G value" | |
21585 | msgstr "valor %%G inválido" | |
21586 | ||
21587 | -#: config/rs6000/rs6000.c:14831 | |
21588 | +#: config/rs6000/rs6000.c:14847 | |
21589 | #, c-format | |
21590 | msgid "invalid %%j code" | |
21591 | msgstr "código %%j inválido" | |
21592 | ||
21593 | -#: config/rs6000/rs6000.c:14841 | |
21594 | +#: config/rs6000/rs6000.c:14857 | |
21595 | #, c-format | |
21596 | msgid "invalid %%J code" | |
21597 | msgstr "código %%J inválido" | |
21598 | ||
21599 | -#: config/rs6000/rs6000.c:14851 | |
21600 | +#: config/rs6000/rs6000.c:14867 | |
21601 | #, c-format | |
21602 | msgid "invalid %%k value" | |
21603 | msgstr "valor %%k inválido" | |
21604 | ||
21605 | -#: config/rs6000/rs6000.c:14866 config/xtensa/xtensa.c:2336 | |
21606 | +#: config/rs6000/rs6000.c:14882 config/xtensa/xtensa.c:2336 | |
21607 | #, c-format | |
21608 | msgid "invalid %%K value" | |
21609 | msgstr "valor %%K inválido" | |
21610 | ||
21611 | -#: config/rs6000/rs6000.c:14930 | |
21612 | +#: config/rs6000/rs6000.c:14946 | |
21613 | #, c-format | |
21614 | msgid "invalid %%O value" | |
21615 | msgstr "valor %%O inválido" | |
21616 | ||
21617 | -#: config/rs6000/rs6000.c:14977 | |
21618 | +#: config/rs6000/rs6000.c:14993 | |
21619 | #, c-format | |
21620 | msgid "invalid %%q value" | |
21621 | msgstr "valor %%q inválido" | |
21622 | ||
21623 | -#: config/rs6000/rs6000.c:15021 | |
21624 | +#: config/rs6000/rs6000.c:15037 | |
21625 | #, c-format | |
21626 | msgid "invalid %%S value" | |
21627 | msgstr "valor %%S inválido" | |
21628 | ||
21629 | -#: config/rs6000/rs6000.c:15061 | |
21630 | +#: config/rs6000/rs6000.c:15077 | |
21631 | #, c-format | |
21632 | msgid "invalid %%T value" | |
21633 | msgstr "valor %%T inválido" | |
21634 | ||
21635 | -#: config/rs6000/rs6000.c:15071 | |
21636 | +#: config/rs6000/rs6000.c:15087 | |
21637 | #, c-format | |
21638 | msgid "invalid %%u value" | |
21639 | msgstr "valor %%u inválido" | |
21640 | ||
21641 | -#: config/rs6000/rs6000.c:15080 config/xtensa/xtensa.c:2306 | |
21642 | +#: config/rs6000/rs6000.c:15096 config/xtensa/xtensa.c:2306 | |
21643 | #, c-format | |
21644 | msgid "invalid %%v value" | |
21645 | msgstr "valor %%v inválido" | |
21646 | ||
21647 | -#: config/rs6000/rs6000.c:15179 config/xtensa/xtensa.c:2357 | |
21648 | +#: config/rs6000/rs6000.c:15195 config/xtensa/xtensa.c:2357 | |
21649 | #, c-format | |
21650 | msgid "invalid %%x value" | |
21651 | msgstr "valor %%x inválido" | |
21652 | ||
21653 | -#: config/rs6000/rs6000.c:15325 | |
21654 | +#: config/rs6000/rs6000.c:15341 | |
21655 | #, c-format | |
21656 | msgid "invalid %%y value, try using the 'Z' constraint" | |
21657 | msgstr "valor %%y inválido, pruebe usando la restricción 'Z'" | |
21658 | ||
21659 | -#: config/rs6000/rs6000.c:26941 | |
21660 | +#: config/rs6000/rs6000.c:26958 | |
21661 | msgid "AltiVec argument passed to unprototyped function" | |
21662 | msgstr "Se pasó un argumento Altivec a una función sin prototipo" | |
21663 | ||
21664 | -#: config/s390/s390.c:5135 | |
21665 | +#: config/s390/s390.c:5140 | |
21666 | #, c-format | |
21667 | msgid "symbolic memory references are only supported on z10 or later" | |
21668 | msgstr "las referencias a memoria simbólica sólo se admiten en z10 o posterior" | |
21669 | ||
21670 | -#: config/s390/s390.c:5146 | |
21671 | +#: config/s390/s390.c:5151 | |
21672 | #, c-format | |
21673 | msgid "cannot decompose address" | |
21674 | msgstr "no se puede descomponer la dirección" | |
21675 | ||
21676 | -#: config/s390/s390.c:5205 | |
21677 | +#: config/s390/s390.c:5210 | |
21678 | #, c-format | |
21679 | msgid "invalid comparison operator for 'E' output modifier" | |
21680 | msgstr "operador de comparación inválido para el modificador de salida 'E'" | |
21681 | ||
21682 | -#: config/s390/s390.c:5226 | |
21683 | +#: config/s390/s390.c:5231 | |
21684 | #, c-format | |
21685 | msgid "invalid reference for 'J' output modifier" | |
21686 | msgstr "referencia inválida para el modificador de salida 'J'" | |
21687 | ||
21688 | -#: config/s390/s390.c:5240 | |
21689 | +#: config/s390/s390.c:5245 | |
21690 | #, c-format | |
21691 | msgid "memory reference expected for 'O' output modifier" | |
21692 | msgstr "se esperaba una referencia de memoria para el modificador de salida 'O'" | |
21693 | ||
21694 | -#: config/s390/s390.c:5251 | |
21695 | +#: config/s390/s390.c:5256 | |
21696 | #, c-format | |
21697 | msgid "invalid address for 'O' output modifier" | |
21698 | msgstr "dirección inválida para el modificador de salida 'O'" | |
21699 | ||
21700 | -#: config/s390/s390.c:5269 | |
21701 | +#: config/s390/s390.c:5274 | |
21702 | #, c-format | |
21703 | msgid "memory reference expected for 'R' output modifier" | |
21704 | msgstr "se esperaba una referencia de memoria para el modificador de salida 'R'" | |
21705 | ||
21706 | -#: config/s390/s390.c:5280 | |
21707 | +#: config/s390/s390.c:5285 | |
21708 | #, c-format | |
21709 | msgid "invalid address for 'R' output modifier" | |
21710 | msgstr "dirección inválida para el modificador de salida 'R'" | |
21711 | ||
21712 | -#: config/s390/s390.c:5298 | |
21713 | +#: config/s390/s390.c:5303 | |
21714 | #, c-format | |
21715 | msgid "memory reference expected for 'S' output modifier" | |
21716 | msgstr "se esperaba una referencia de memoria para el modificador de salida 'S'" | |
21717 | ||
21718 | -#: config/s390/s390.c:5308 | |
21719 | +#: config/s390/s390.c:5313 | |
21720 | #, c-format | |
21721 | msgid "invalid address for 'S' output modifier" | |
21722 | msgstr "dirección inválida para el modificador de saida 'S'" | |
21723 | ||
21724 | -#: config/s390/s390.c:5328 | |
21725 | +#: config/s390/s390.c:5333 | |
21726 | #, c-format | |
21727 | msgid "register or memory expression expected for 'N' output modifier" | |
21728 | msgstr "se esperaba un registro o expresión de memoria para el modificador de salida 'N'" | |
21729 | ||
21730 | -#: config/s390/s390.c:5338 | |
21731 | +#: config/s390/s390.c:5343 | |
21732 | #, c-format | |
21733 | msgid "register or memory expression expected for 'M' output modifier" | |
21734 | msgstr "se esperaba un registro o expresión de memoria para el modificador de salida 'M'" | |
21735 | ||
21736 | -#: config/s390/s390.c:5403 | |
21737 | +#: config/s390/s390.c:5408 | |
21738 | #, c-format | |
21739 | msgid "invalid constant - try using an output modifier" | |
21740 | msgstr "constante inválida - pruebe usar un modificador de salida" | |
21741 | ||
21742 | -#: config/s390/s390.c:5406 | |
21743 | +#: config/s390/s390.c:5411 | |
21744 | #, c-format | |
21745 | msgid "invalid constant for output modifier '%c'" | |
21746 | msgstr "constante inválida para el modificador de salida '%c'" | |
21747 | ||
21748 | -#: config/s390/s390.c:5413 | |
21749 | +#: config/s390/s390.c:5418 | |
21750 | #, c-format | |
21751 | msgid "invalid expression - try using an output modifier" | |
21752 | msgstr "expresión inválida - pruebe usar un modificador de salida" | |
21753 | ||
21754 | -#: config/s390/s390.c:5416 | |
21755 | +#: config/s390/s390.c:5421 | |
21756 | #, c-format | |
21757 | msgid "invalid expression for output modifier '%c'" | |
21758 | msgstr "expresión inválida para el modificador de salida '%c'" | |
21759 | @@ -3489,25 +3496,25 @@ | |
21760 | msgid "invalid operand for code: '%c'" | |
21761 | msgstr "operando inválido para code: '%c'" | |
21762 | ||
21763 | -#: config/sh/sh.c:1026 | |
21764 | +#: config/sh/sh.c:1031 | |
21765 | #, c-format | |
21766 | msgid "invalid operand to %%R" | |
21767 | msgstr "operando inválido para %%R" | |
21768 | ||
21769 | -#: config/sh/sh.c:1053 | |
21770 | +#: config/sh/sh.c:1058 | |
21771 | #, c-format | |
21772 | msgid "invalid operand to %%S" | |
21773 | msgstr "operando inválido para %%S" | |
21774 | ||
21775 | -#: config/sh/sh.c:9137 | |
21776 | +#: config/sh/sh.c:9142 | |
21777 | msgid "created and used with different architectures / ABIs" | |
21778 | msgstr "creado y usado con diferentes arquitecturas / ABIs" | |
21779 | ||
21780 | -#: config/sh/sh.c:9139 | |
21781 | +#: config/sh/sh.c:9144 | |
21782 | msgid "created and used with different ABIs" | |
21783 | msgstr "creado y usado con diferentes ABIs" | |
21784 | ||
21785 | -#: config/sh/sh.c:9141 | |
21786 | +#: config/sh/sh.c:9146 | |
21787 | msgid "created and used with different endianness" | |
21788 | msgstr "creado y usado con diferente orden de bits" | |
21789 | ||
21790 | @@ -3526,12 +3533,13 @@ | |
21791 | msgid "invalid %%B operand" | |
21792 | msgstr "operando %%B inválido" | |
21793 | ||
21794 | -#: config/sparc/sparc.c:8232 | |
21795 | +#: config/sparc/sparc.c:8232 config/tilegx/tilegx.c:4934 | |
21796 | +#: config/tilepro/tilepro.c:4505 | |
21797 | #, c-format | |
21798 | msgid "invalid %%C operand" | |
21799 | msgstr "operando %%C inválido" | |
21800 | ||
21801 | -#: config/sparc/sparc.c:8249 | |
21802 | +#: config/sparc/sparc.c:8249 config/tilegx/tilegx.c:4967 | |
21803 | #, c-format | |
21804 | msgid "invalid %%D operand" | |
21805 | msgstr "operando %%D inválido" | |
21806 | @@ -3576,6 +3584,91 @@ | |
21807 | msgid "xstormy16_print_operand: unknown code" | |
21808 | msgstr "xstormy16_print_operand: código desconocido" | |
21809 | ||
21810 | +#: config/tilegx/tilegx.c:4919 config/tilepro/tilepro.c:4490 | |
21811 | +#, c-format | |
21812 | +msgid "invalid %%c operand" | |
21813 | +msgstr "operando %%c inválido" | |
21814 | + | |
21815 | +#: config/tilegx/tilegx.c:4950 | |
21816 | +#, c-format | |
21817 | +msgid "invalid %%d operand" | |
21818 | +msgstr "operando %%d inválido" | |
21819 | + | |
21820 | +#: config/tilegx/tilegx.c:5033 | |
21821 | +#, c-format | |
21822 | +msgid "invalid %%H specifier" | |
21823 | +msgstr "especificador %%H inválido" | |
21824 | + | |
21825 | +#: config/tilegx/tilegx.c:5069 config/tilepro/tilepro.c:4519 | |
21826 | +#, c-format | |
21827 | +msgid "invalid %%h operand" | |
21828 | +msgstr "operando %%h inválido" | |
21829 | + | |
21830 | +#: config/tilegx/tilegx.c:5081 config/tilepro/tilepro.c:4583 | |
21831 | +#, c-format | |
21832 | +msgid "invalid %%I operand" | |
21833 | +msgstr "operando %%I inválido" | |
21834 | + | |
21835 | +#: config/tilegx/tilegx.c:5095 config/tilepro/tilepro.c:4597 | |
21836 | +#, c-format | |
21837 | +msgid "invalid %%i operand" | |
21838 | +msgstr "operando %%i inválido" | |
21839 | + | |
21840 | +#: config/tilegx/tilegx.c:5118 config/tilepro/tilepro.c:4620 | |
21841 | +#, c-format | |
21842 | +msgid "invalid %%j operand" | |
21843 | +msgstr "operando %%j inválido" | |
21844 | + | |
21845 | +#: config/tilegx/tilegx.c:5149 | |
21846 | +#, c-format | |
21847 | +msgid "invalid %%%c operand" | |
21848 | +msgstr "operando %%%c inválido" | |
21849 | + | |
21850 | +#: config/tilegx/tilegx.c:5164 config/tilepro/tilepro.c:4734 | |
21851 | +#, c-format | |
21852 | +msgid "invalid %%N operand" | |
21853 | +msgstr "operando %%N inválido" | |
21854 | + | |
21855 | +#: config/tilegx/tilegx.c:5208 | |
21856 | +#, c-format | |
21857 | +msgid "invalid operand for 'r' specifier" | |
21858 | +msgstr "operando inválido para el especificador 'r'" | |
21859 | + | |
21860 | +#: config/tilegx/tilegx.c:5233 config/tilepro/tilepro.c:4816 | |
21861 | +#, c-format | |
21862 | +msgid "unable to print out operand yet; code == %d (%c)" | |
21863 | +msgstr "aún no se puede mostrar el operando; code == %d (%c)" | |
21864 | + | |
21865 | +#: config/tilepro/tilepro.c:4555 | |
21866 | +#, c-format | |
21867 | +msgid "invalid %%H operand" | |
21868 | +msgstr "operando %%H inválido" | |
21869 | + | |
21870 | +#: config/tilepro/tilepro.c:4659 | |
21871 | +#, c-format | |
21872 | +msgid "invalid %%L operand" | |
21873 | +msgstr "operando %%L inválido" | |
21874 | + | |
21875 | +#: config/tilepro/tilepro.c:4719 | |
21876 | +#, c-format | |
21877 | +msgid "invalid %%M operand" | |
21878 | +msgstr "operando %%M inválido" | |
21879 | + | |
21880 | +#: config/tilepro/tilepro.c:4762 | |
21881 | +#, c-format | |
21882 | +msgid "invalid %%t operand" | |
21883 | +msgstr "operando %%t inválido" | |
21884 | + | |
21885 | +#: config/tilepro/tilepro.c:4769 | |
21886 | +#, c-format | |
21887 | +msgid "invalid %%t operand '" | |
21888 | +msgstr "operando %%t inválido '" | |
21889 | + | |
21890 | +#: config/tilepro/tilepro.c:4790 | |
21891 | +#, c-format | |
21892 | +msgid "invalid %%r operand" | |
21893 | +msgstr "operando %%r inválido" | |
21894 | + | |
21895 | #: config/v850/v850.c:260 | |
21896 | msgid "const_double_split got a bad insn:" | |
21897 | msgstr "const_double_split recibió una insn errónea:" | |
21898 | @@ -3724,7 +3817,7 @@ | |
21899 | msgid "<declaration error>" | |
21900 | msgstr "<error de declaración>" | |
21901 | ||
21902 | -#: cp/error.c:1432 cp/error.c:2802 | |
21903 | +#: cp/error.c:1432 cp/error.c:2804 | |
21904 | msgid "with" | |
21905 | msgstr "con" | |
21906 | ||
21907 | @@ -3742,111 +3835,111 @@ | |
21908 | msgid "<throw-expression>" | |
21909 | msgstr "<expresión-throw>" | |
21910 | ||
21911 | -#: cp/error.c:2334 | |
21912 | +#: cp/error.c:2336 | |
21913 | msgid "<unparsed>" | |
21914 | msgstr "<sidecodificar>" | |
21915 | ||
21916 | -#: cp/error.c:2484 | |
21917 | +#: cp/error.c:2486 | |
21918 | msgid "<expression error>" | |
21919 | msgstr "<error de expresión>" | |
21920 | ||
21921 | -#: cp/error.c:2498 | |
21922 | +#: cp/error.c:2500 | |
21923 | msgid "<unknown operator>" | |
21924 | msgstr "<operador desconocido>" | |
21925 | ||
21926 | -#: cp/error.c:2754 | |
21927 | +#: cp/error.c:2756 | |
21928 | msgid "{unknown}" | |
21929 | msgstr "{desconocida}" | |
21930 | ||
21931 | -#: cp/error.c:2869 | |
21932 | +#: cp/error.c:2871 | |
21933 | msgid "At global scope:" | |
21934 | msgstr "En el ámbito global:" | |
21935 | ||
21936 | -#: cp/error.c:2975 | |
21937 | +#: cp/error.c:2977 | |
21938 | #, c-format | |
21939 | msgid "In static member function %qs" | |
21940 | msgstr "En la función miembro static %qs" | |
21941 | ||
21942 | -#: cp/error.c:2977 | |
21943 | +#: cp/error.c:2979 | |
21944 | #, c-format | |
21945 | msgid "In copy constructor %qs" | |
21946 | msgstr "En el constructor copia %qs" | |
21947 | ||
21948 | -#: cp/error.c:2979 | |
21949 | +#: cp/error.c:2981 | |
21950 | #, c-format | |
21951 | msgid "In constructor %qs" | |
21952 | msgstr "En el constructor %qs" | |
21953 | ||
21954 | -#: cp/error.c:2981 | |
21955 | +#: cp/error.c:2983 | |
21956 | #, c-format | |
21957 | msgid "In destructor %qs" | |
21958 | msgstr "En el destructor %qs" | |
21959 | ||
21960 | -#: cp/error.c:2983 | |
21961 | +#: cp/error.c:2985 | |
21962 | msgid "In lambda function" | |
21963 | msgstr "En la función lambda" | |
21964 | ||
21965 | -#: cp/error.c:3003 | |
21966 | +#: cp/error.c:3005 | |
21967 | #, c-format | |
21968 | msgid "%s: In substitution of %qS:\n" | |
21969 | msgstr "%s: En la sustitución de %qS:\n" | |
21970 | ||
21971 | -#: cp/error.c:3004 | |
21972 | +#: cp/error.c:3006 | |
21973 | msgid "%s: In instantiation of %q#D:\n" | |
21974 | msgstr "%s: En la instanciación de %q#D:\n" | |
21975 | ||
21976 | -#: cp/error.c:3027 | |
21977 | +#: cp/error.c:3029 | |
21978 | #, c-format | |
21979 | msgid "%s:%d:%d: " | |
21980 | msgstr "%s:%d:%d: " | |
21981 | ||
21982 | -#: cp/error.c:3030 | |
21983 | +#: cp/error.c:3032 | |
21984 | #, c-format | |
21985 | msgid "%s:%d: " | |
21986 | msgstr "%s:%d: " | |
21987 | ||
21988 | -#: cp/error.c:3038 | |
21989 | +#: cp/error.c:3040 | |
21990 | #, c-format | |
21991 | msgid "recursively required by substitution of %qS\n" | |
21992 | msgstr "se requiere recursivamente para la sustitución de %qS\n" | |
21993 | ||
21994 | -#: cp/error.c:3039 | |
21995 | +#: cp/error.c:3041 | |
21996 | #, c-format | |
21997 | msgid "required by substitution of %qS\n" | |
21998 | msgstr "se requiere para la sustitución de %qS\n" | |
21999 | ||
22000 | -#: cp/error.c:3044 | |
22001 | +#: cp/error.c:3046 | |
22002 | msgid "recursively required from %q#D\n" | |
22003 | msgstr "se requiere recursivamente desde %q#D\n" | |
22004 | ||
22005 | -#: cp/error.c:3045 | |
22006 | +#: cp/error.c:3047 | |
22007 | msgid "required from %q#D\n" | |
22008 | msgstr "se requiere desde %q#D\n" | |
22009 | ||
22010 | -#: cp/error.c:3052 | |
22011 | +#: cp/error.c:3054 | |
22012 | msgid "recursively required from here" | |
22013 | msgstr "se requiere recursivamente desde aquí" | |
22014 | ||
22015 | -#: cp/error.c:3053 | |
22016 | +#: cp/error.c:3055 | |
22017 | msgid "required from here" | |
22018 | msgstr "se requiere desde aquí" | |
22019 | ||
22020 | -#: cp/error.c:3095 | |
22021 | +#: cp/error.c:3097 | |
22022 | #, c-format | |
22023 | msgid "%s:%d:%d: [ skipping %d instantiation contexts ]\n" | |
22024 | msgstr "%s:%d:%d: [ se saltan %d contextos de instanciación ]\n" | |
22025 | ||
22026 | -#: cp/error.c:3099 | |
22027 | +#: cp/error.c:3101 | |
22028 | #, c-format | |
22029 | msgid "%s:%d: [ skipping %d instantiation contexts ]\n" | |
22030 | msgstr "%s:%d: [ se saltan %d contextos de instanciación ]\n" | |
22031 | ||
22032 | -#: cp/error.c:3161 | |
22033 | +#: cp/error.c:3163 | |
22034 | #, c-format | |
22035 | msgid "%s:%d:%d: in constexpr expansion of %qs" | |
22036 | msgstr "%s:%d:%d: en la expansión de la expresión constante de %qs" | |
22037 | ||
22038 | -#: cp/error.c:3165 | |
22039 | +#: cp/error.c:3167 | |
22040 | #, c-format | |
22041 | msgid "%s:%d: in constexpr expansion of %qs" | |
22042 | msgstr "%s:%d: en la expansión de la expresión constante de %qs" | |
22043 | @@ -3855,7 +3948,7 @@ | |
22044 | msgid "candidates are:" | |
22045 | msgstr "los candidatos son:" | |
22046 | ||
22047 | -#: cp/pt.c:17792 cp/call.c:3289 | |
22048 | +#: cp/pt.c:17805 cp/call.c:3289 | |
22049 | #, gcc-internal-format | |
22050 | msgid "candidate is:" | |
22051 | msgid_plural "candidates are:" | |
22052 | @@ -4046,7 +4139,7 @@ | |
22053 | msgid "Driving:" | |
22054 | msgstr "Conduciendo:" | |
22055 | ||
22056 | -#: fortran/interface.c:2477 fortran/intrinsic.c:3641 | |
22057 | +#: fortran/interface.c:2478 fortran/intrinsic.c:3641 | |
22058 | msgid "actual argument to INTENT = OUT/INOUT" | |
22059 | msgstr "argumento actual de INTENT = OUT/INOUT" | |
22060 | ||
22061 | @@ -4112,13 +4205,13 @@ | |
22062 | msgid "%s tag" | |
22063 | msgstr "etiqueta %s" | |
22064 | ||
22065 | -#: fortran/io.c:2872 | |
22066 | +#: fortran/io.c:2868 | |
22067 | msgid "internal unit in WRITE" | |
22068 | msgstr "unidad interna en WRITE" | |
22069 | ||
22070 | #. For INQUIRE, all tags except FILE, ID and UNIT are variable definition | |
22071 | #. contexts. Thus, use an extended RESOLVE_TAG macro for that. | |
22072 | -#: fortran/io.c:4066 | |
22073 | +#: fortran/io.c:4062 | |
22074 | #, c-format | |
22075 | msgid "%s tag with INQUIRE" | |
22076 | msgstr "etiqueta %s con INQUIRE" | |
22077 | @@ -4128,75 +4221,75 @@ | |
22078 | msgid "Syntax error in expression at %C" | |
22079 | msgstr "Error sintáctico en la expresión en %C" | |
22080 | ||
22081 | -#: fortran/module.c:1054 | |
22082 | +#: fortran/module.c:1061 | |
22083 | msgid "Unexpected EOF" | |
22084 | msgstr "Fin de fichero inesperado" | |
22085 | ||
22086 | -#: fortran/module.c:1139 | |
22087 | +#: fortran/module.c:1146 | |
22088 | msgid "Integer overflow" | |
22089 | msgstr "Desbordamiento entero" | |
22090 | ||
22091 | -#: fortran/module.c:1169 | |
22092 | +#: fortran/module.c:1176 | |
22093 | msgid "Name too long" | |
22094 | msgstr "Nombre demasiado largo" | |
22095 | ||
22096 | -#: fortran/module.c:1271 fortran/module.c:1374 | |
22097 | +#: fortran/module.c:1278 fortran/module.c:1381 | |
22098 | msgid "Bad name" | |
22099 | msgstr "Nombre erróneo" | |
22100 | ||
22101 | -#: fortran/module.c:1398 | |
22102 | +#: fortran/module.c:1405 | |
22103 | msgid "Expected name" | |
22104 | msgstr "Se esperaba un nombre" | |
22105 | ||
22106 | -#: fortran/module.c:1401 | |
22107 | +#: fortran/module.c:1408 | |
22108 | msgid "Expected left parenthesis" | |
22109 | msgstr "Se esperaba un paréntesis izquierdo" | |
22110 | ||
22111 | -#: fortran/module.c:1404 | |
22112 | +#: fortran/module.c:1411 | |
22113 | msgid "Expected right parenthesis" | |
22114 | msgstr "Se esperaba un paréntesis derecho" | |
22115 | ||
22116 | -#: fortran/module.c:1407 | |
22117 | +#: fortran/module.c:1414 | |
22118 | msgid "Expected integer" | |
22119 | msgstr "Se esperaba un entero" | |
22120 | ||
22121 | -#: fortran/module.c:1410 fortran/module.c:2312 | |
22122 | +#: fortran/module.c:1417 fortran/module.c:2332 | |
22123 | msgid "Expected string" | |
22124 | msgstr "Se esperaba una cadena" | |
22125 | ||
22126 | -#: fortran/module.c:1435 | |
22127 | +#: fortran/module.c:1442 | |
22128 | msgid "find_enum(): Enum not found" | |
22129 | msgstr "find_enum(): No se encontró el enumerador" | |
22130 | ||
22131 | -#: fortran/module.c:2065 | |
22132 | +#: fortran/module.c:2085 | |
22133 | msgid "Expected attribute bit name" | |
22134 | msgstr "Se esperaba un nombre de atributo de bit" | |
22135 | ||
22136 | -#: fortran/module.c:2963 | |
22137 | +#: fortran/module.c:2983 | |
22138 | msgid "Expected integer string" | |
22139 | msgstr "Se esperaba una cadena entera" | |
22140 | ||
22141 | -#: fortran/module.c:2967 | |
22142 | +#: fortran/module.c:2987 | |
22143 | msgid "Error converting integer" | |
22144 | msgstr "Error al convertir el entero" | |
22145 | ||
22146 | -#: fortran/module.c:2989 | |
22147 | +#: fortran/module.c:3009 | |
22148 | msgid "Expected real string" | |
22149 | msgstr "Se esperaba una cadena real" | |
22150 | ||
22151 | -#: fortran/module.c:3211 | |
22152 | +#: fortran/module.c:3231 | |
22153 | msgid "Expected expression type" | |
22154 | msgstr "Se esperaba un tipo de expresión" | |
22155 | ||
22156 | -#: fortran/module.c:3265 | |
22157 | +#: fortran/module.c:3285 | |
22158 | msgid "Bad operator" | |
22159 | msgstr "Operador erróneo" | |
22160 | ||
22161 | -#: fortran/module.c:3354 | |
22162 | +#: fortran/module.c:3374 | |
22163 | msgid "Bad type in constant expression" | |
22164 | msgstr "Tipo erróneo en la expresión constante" | |
22165 | ||
22166 | -#: fortran/module.c:6050 | |
22167 | +#: fortran/module.c:6087 | |
22168 | msgid "Unexpected end of module" | |
22169 | msgstr "Fin de módulo inesperado" | |
22170 | ||
22171 | @@ -4224,11 +4317,11 @@ | |
22172 | msgid "implied END DO" | |
22173 | msgstr "END DO implícito" | |
22174 | ||
22175 | -#: fortran/parse.c:1475 fortran/resolve.c:9409 | |
22176 | +#: fortran/parse.c:1475 fortran/resolve.c:9396 | |
22177 | msgid "assignment" | |
22178 | msgstr "asignación" | |
22179 | ||
22180 | -#: fortran/parse.c:1478 fortran/resolve.c:9448 fortran/resolve.c:9451 | |
22181 | +#: fortran/parse.c:1478 fortran/resolve.c:9435 fortran/resolve.c:9438 | |
22182 | msgid "pointer assignment" | |
22183 | msgstr "asignación de puntero" | |
22184 | ||
22185 | @@ -4244,115 +4337,115 @@ | |
22186 | msgid "internal function" | |
22187 | msgstr "función interna" | |
22188 | ||
22189 | -#: fortran/resolve.c:1983 | |
22190 | +#: fortran/resolve.c:1973 | |
22191 | msgid "elemental procedure" | |
22192 | msgstr "procedimiento elemental" | |
22193 | ||
22194 | -#: fortran/resolve.c:3811 | |
22195 | +#: fortran/resolve.c:3798 | |
22196 | #, c-format | |
22197 | msgid "Invalid context for NULL() pointer at %%L" | |
22198 | msgstr "Contexto inválido para el puntero NULL() en %%L" | |
22199 | ||
22200 | -#: fortran/resolve.c:3827 | |
22201 | +#: fortran/resolve.c:3814 | |
22202 | #, c-format | |
22203 | msgid "Operand of unary numeric operator '%s' at %%L is %s" | |
22204 | msgstr "El operando del operador numérico unario '%s' en %%L es %s" | |
22205 | ||
22206 | -#: fortran/resolve.c:3843 | |
22207 | +#: fortran/resolve.c:3830 | |
22208 | #, c-format | |
22209 | msgid "Operands of binary numeric operator '%s' at %%L are %s/%s" | |
22210 | msgstr "Los operandos del operador binario numérico '%s' en %%L son %s/%s" | |
22211 | ||
22212 | -#: fortran/resolve.c:3858 | |
22213 | +#: fortran/resolve.c:3845 | |
22214 | #, c-format | |
22215 | msgid "Operands of string concatenation operator at %%L are %s/%s" | |
22216 | msgstr "Los operandos del operador de concatenación de cadenas en %%L son %s/%s" | |
22217 | ||
22218 | -#: fortran/resolve.c:3877 | |
22219 | +#: fortran/resolve.c:3864 | |
22220 | #, c-format | |
22221 | msgid "Operands of logical operator '%s' at %%L are %s/%s" | |
22222 | msgstr "Los operandos del operador lógico '%s' en %%L son %s/%s" | |
22223 | ||
22224 | -#: fortran/resolve.c:3891 | |
22225 | +#: fortran/resolve.c:3878 | |
22226 | #, c-format | |
22227 | msgid "Operand of .not. operator at %%L is %s" | |
22228 | msgstr "El operando del operador .not. en %%L es %s" | |
22229 | ||
22230 | -#: fortran/resolve.c:3905 | |
22231 | +#: fortran/resolve.c:3892 | |
22232 | msgid "COMPLEX quantities cannot be compared at %L" | |
22233 | msgstr "Las cantidades COMPLEX no se pueden comparar en %L" | |
22234 | ||
22235 | -#: fortran/resolve.c:3934 | |
22236 | +#: fortran/resolve.c:3921 | |
22237 | #, c-format | |
22238 | msgid "Logicals at %%L must be compared with %s instead of %s" | |
22239 | msgstr "Los lógicos en %%L se deben comparar con %s en lugar de %s" | |
22240 | ||
22241 | -#: fortran/resolve.c:3940 | |
22242 | +#: fortran/resolve.c:3927 | |
22243 | #, c-format | |
22244 | msgid "Operands of comparison operator '%s' at %%L are %s/%s" | |
22245 | msgstr "Los operandos del operador de comparación '%s' en %%L son %s/%s" | |
22246 | ||
22247 | -#: fortran/resolve.c:3948 | |
22248 | +#: fortran/resolve.c:3935 | |
22249 | #, c-format | |
22250 | msgid "Unknown operator '%s' at %%L" | |
22251 | msgstr "Operador '%s' desconocido en %%L" | |
22252 | ||
22253 | -#: fortran/resolve.c:3950 | |
22254 | +#: fortran/resolve.c:3937 | |
22255 | #, c-format | |
22256 | msgid "Operand of user operator '%s' at %%L is %s" | |
22257 | msgstr "El operando del operador de usuario '%s' en %%L es %s" | |
22258 | ||
22259 | -#: fortran/resolve.c:3954 | |
22260 | +#: fortran/resolve.c:3941 | |
22261 | #, c-format | |
22262 | msgid "Operands of user operator '%s' at %%L are %s/%s" | |
22263 | msgstr "Los operandos del operador de usuario '%s' en %%L son %s/%s" | |
22264 | ||
22265 | -#: fortran/resolve.c:4042 | |
22266 | +#: fortran/resolve.c:4029 | |
22267 | #, c-format | |
22268 | msgid "Inconsistent ranks for operator at %%L and %%L" | |
22269 | msgstr "Rangos inconsistentes para el operador en %%L y %%L" | |
22270 | ||
22271 | -#: fortran/resolve.c:6415 | |
22272 | +#: fortran/resolve.c:6402 | |
22273 | msgid "Loop variable" | |
22274 | msgstr "Variable de ciclo" | |
22275 | ||
22276 | -#: fortran/resolve.c:6419 | |
22277 | +#: fortran/resolve.c:6406 | |
22278 | msgid "iterator variable" | |
22279 | msgstr "variable de iterador" | |
22280 | ||
22281 | -#: fortran/resolve.c:6424 | |
22282 | +#: fortran/resolve.c:6411 | |
22283 | msgid "Start expression in DO loop" | |
22284 | msgstr "Expresión de inicio en el bucle DO" | |
22285 | ||
22286 | -#: fortran/resolve.c:6428 | |
22287 | +#: fortran/resolve.c:6415 | |
22288 | msgid "End expression in DO loop" | |
22289 | msgstr "Expresión de fin en el bucle DO" | |
22290 | ||
22291 | -#: fortran/resolve.c:6432 | |
22292 | +#: fortran/resolve.c:6419 | |
22293 | msgid "Step expression in DO loop" | |
22294 | msgstr "Expresión de paso en el bucle DO" | |
22295 | ||
22296 | -#: fortran/resolve.c:6688 fortran/resolve.c:6691 | |
22297 | +#: fortran/resolve.c:6675 fortran/resolve.c:6678 | |
22298 | msgid "DEALLOCATE object" | |
22299 | msgstr "objeto DEALLOCATE" | |
22300 | ||
22301 | -#: fortran/resolve.c:7033 fortran/resolve.c:7035 | |
22302 | +#: fortran/resolve.c:7020 fortran/resolve.c:7022 | |
22303 | msgid "ALLOCATE object" | |
22304 | msgstr "objeto ALLOCATE" | |
22305 | ||
22306 | -#: fortran/resolve.c:7215 fortran/resolve.c:8448 | |
22307 | +#: fortran/resolve.c:7202 fortran/resolve.c:8435 | |
22308 | msgid "STAT variable" | |
22309 | msgstr "variable STAT" | |
22310 | ||
22311 | -#: fortran/resolve.c:7258 fortran/resolve.c:8460 | |
22312 | +#: fortran/resolve.c:7245 fortran/resolve.c:8447 | |
22313 | msgid "ERRMSG variable" | |
22314 | msgstr "variable ERRMSG" | |
22315 | ||
22316 | -#: fortran/resolve.c:8326 | |
22317 | +#: fortran/resolve.c:8313 | |
22318 | msgid "item in READ" | |
22319 | msgstr "elemento en READ" | |
22320 | ||
22321 | -#: fortran/resolve.c:8472 | |
22322 | +#: fortran/resolve.c:8459 | |
22323 | msgid "ACQUIRED_LOCK variable" | |
22324 | msgstr "variable ACQUIRED_LOCK" | |
22325 | ||
22326 | @@ -4365,17 +4458,17 @@ | |
22327 | msgid "Integer overflow when calculating the amount of memory to allocate" | |
22328 | msgstr "Desborde entero al calcular la cantidad de memoria a reservar" | |
22329 | ||
22330 | -#: fortran/trans-decl.c:4776 | |
22331 | +#: fortran/trans-decl.c:4791 | |
22332 | #, c-format | |
22333 | msgid "Actual string length does not match the declared one for dummy argument '%s' (%ld/%ld)" | |
22334 | msgstr "La longitud de la cadena actual no coincide con la declarada para el argumento dummy '%s' (%ld/%ld)" | |
22335 | ||
22336 | -#: fortran/trans-decl.c:4784 | |
22337 | +#: fortran/trans-decl.c:4799 | |
22338 | #, c-format | |
22339 | msgid "Actual string length is shorter than the declared one for dummy argument '%s' (%ld/%ld)" | |
22340 | msgstr "La longitud de la cadena actual es más corta que la declarada para el argumento dummy '%s' (%ld/%ld)" | |
22341 | ||
22342 | -#: fortran/trans-expr.c:5960 | |
22343 | +#: fortran/trans-expr.c:5964 | |
22344 | #, c-format | |
22345 | msgid "Target of rank remapping is too small (%ld < %ld)" | |
22346 | msgstr "El objetivo del remapeo de rango es demasiado pequeño (%ld < %ld)" | |
22347 | @@ -4406,16 +4499,16 @@ | |
22348 | msgid "Assigned label is not a target label" | |
22349 | msgstr "La etiqueta asignada no es una etiqueta objetivo" | |
22350 | ||
22351 | -#: fortran/trans-stmt.c:771 | |
22352 | +#: fortran/trans-stmt.c:793 | |
22353 | #, c-format | |
22354 | msgid "Invalid image number %d in SYNC IMAGES" | |
22355 | msgstr "Número de imagen %d inválido en SYNC IMAGES" | |
22356 | ||
22357 | -#: fortran/trans-stmt.c:1347 fortran/trans-stmt.c:1628 | |
22358 | +#: fortran/trans-stmt.c:1369 fortran/trans-stmt.c:1650 | |
22359 | msgid "Loop variable has been modified" | |
22360 | msgstr "Se modificó la variable de ciclo" | |
22361 | ||
22362 | -#: fortran/trans-stmt.c:1487 | |
22363 | +#: fortran/trans-stmt.c:1509 | |
22364 | msgid "DO step value is zero" | |
22365 | msgstr "El valor de paso de DO es cero" | |
22366 | ||
22367 | @@ -4616,47 +4709,77 @@ | |
22368 | msgid "-fuse-linker-plugin is not supported in this configuration" | |
22369 | msgstr "-fuse-linker-plugin no se admite en esta configuración" | |
22370 | ||
22371 | -#: gcc.c:777 ada/gcc-interface/lang-specs.h:33 java/jvspec.c:80 | |
22372 | +#: gcc.c:778 ada/gcc-interface/lang-specs.h:33 java/jvspec.c:80 | |
22373 | msgid "-pg and -fomit-frame-pointer are incompatible" | |
22374 | msgstr "-pg y -fomit-frame-pointer son incompatibles" | |
22375 | ||
22376 | -#: gcc.c:939 | |
22377 | +#: gcc.c:945 | |
22378 | msgid "GNU C no longer supports -traditional without -E" | |
22379 | msgstr "C de GNU ya no admite -traditional sin usar -E" | |
22380 | ||
22381 | -#: gcc.c:948 | |
22382 | +#: gcc.c:954 | |
22383 | msgid "-E or -x required when input is from standard input" | |
22384 | msgstr "se requiere -E ó -x cuando la entrada es de entrada estándar" | |
22385 | ||
22386 | -#: config/alpha/freebsd.h:34 config/ia64/freebsd.h:26 config/i386/freebsd.h:96 | |
22387 | -#: config/i386/freebsd64.h:35 config/arm/freebsd.h:31 | |
22388 | -#: config/rs6000/sysv4.h:772 config/sparc/freebsd.h:46 | |
22389 | +#: config/cris/cris.h:192 | |
22390 | +msgid "do not specify both -march=... and -mcpu=..." | |
22391 | +msgstr "no especifique -march=... y -mcpu=... al mismo tiempo" | |
22392 | + | |
22393 | +#: config/alpha/freebsd.h:34 config/sparc/freebsd.h:46 | |
22394 | +#: config/ia64/freebsd.h:26 config/arm/freebsd.h:31 config/i386/freebsd.h:96 | |
22395 | +#: config/i386/freebsd64.h:35 config/rs6000/sysv4.h:772 | |
22396 | msgid "consider using '-pg' instead of '-p' with gprof(1)" | |
22397 | msgstr "considere usar '-pg' en lugar de '-p' con gprof(1)" | |
22398 | ||
22399 | -#: fortran/lang-specs.h:55 fortran/lang-specs.h:69 | |
22400 | -msgid "gfortran does not support -E without -cpp" | |
22401 | -msgstr "gfortran no admite -E sin usar -cpp" | |
22402 | +#: ada/gcc-interface/lang-specs.h:34 | |
22403 | +msgid "-c or -S required for Ada" | |
22404 | +msgstr "se requiere -c o -S para Ada" | |
22405 | ||
22406 | -#: config/i386/mingw-w64.h:83 config/i386/mingw32.h:116 | |
22407 | -#: config/i386/cygwin.h:114 | |
22408 | -msgid "shared and mdll are not compatible" | |
22409 | -msgstr "shared y mdll no son compatibles" | |
22410 | +#: ada/gcc-interface/lang-specs.h:52 | |
22411 | +msgid "-c required for gnat2why" | |
22412 | +msgstr "se requiere -c para gnat2why" | |
22413 | ||
22414 | -#: config/vax/netbsd-elf.h:51 | |
22415 | -msgid "the -shared option is not currently supported for VAX ELF" | |
22416 | -msgstr "la opción -shared no se admite actualmente en ELF de VAX" | |
22417 | +#: config/rx/rx.h:57 | |
22418 | +msgid "-mas100-syntax is incompatible with -gdwarf" | |
22419 | +msgstr "-mas100-syntax es incompatible con -gdwarf" | |
22420 | ||
22421 | +#: config/rx/rx.h:58 | |
22422 | +msgid "rx200 cpu does not have FPU hardware" | |
22423 | +msgstr "el cpu rx200 no tiene FPU de hardware" | |
22424 | + | |
22425 | +#: config/sparc/linux64.h:158 config/sparc/linux64.h:165 | |
22426 | #: config/sparc/netbsd-elf.h:109 config/sparc/netbsd-elf.h:118 | |
22427 | -#: config/sparc/sol2.h:201 config/sparc/sol2.h:207 config/sparc/linux64.h:158 | |
22428 | -#: config/sparc/linux64.h:165 | |
22429 | +#: config/sparc/sol2.h:201 config/sparc/sol2.h:207 | |
22430 | msgid "may not use both -m32 and -m64" | |
22431 | msgstr "no se pueden usar -m32 y -m64 al mismo tiempo" | |
22432 | ||
22433 | -#: config/vax/vax.h:50 config/vax/vax.h:51 | |
22434 | -msgid "profiling not supported with -mg" | |
22435 | -msgstr "el análisis de perfil no se admite con -mg" | |
22436 | +#: config/pa/pa64-hpux.h:30 config/pa/pa64-hpux.h:33 config/pa/pa64-hpux.h:42 | |
22437 | +#: config/pa/pa64-hpux.h:45 config/pa/pa-hpux10.h:89 config/pa/pa-hpux10.h:92 | |
22438 | +#: config/pa/pa-hpux10.h:100 config/pa/pa-hpux10.h:103 | |
22439 | +#: config/pa/pa-hpux11.h:108 config/pa/pa-hpux11.h:111 | |
22440 | +msgid "warning: consider linking with '-static' as system libraries with" | |
22441 | +msgstr "aviso: considere enlazar con '-static' como bibliotecas de sistema con" | |
22442 | ||
22443 | +#: config/pa/pa64-hpux.h:31 config/pa/pa64-hpux.h:34 config/pa/pa64-hpux.h:43 | |
22444 | +#: config/pa/pa64-hpux.h:46 config/pa/pa-hpux10.h:90 config/pa/pa-hpux10.h:93 | |
22445 | +#: config/pa/pa-hpux10.h:101 config/pa/pa-hpux10.h:104 | |
22446 | +#: config/pa/pa-hpux11.h:109 config/pa/pa-hpux11.h:112 | |
22447 | +msgid " profiling support are only provided in archive format" | |
22448 | +msgstr " soporte a análisis de perfil sólo se proveen en formato de archivo" | |
22449 | + | |
22450 | +#: config/lynx.h:70 | |
22451 | +msgid "cannot use mthreads and mlegacy-threads together" | |
22452 | +msgstr "no se pueden usar mthreads y mlegacy-threads juntos" | |
22453 | + | |
22454 | +#: config/lynx.h:95 | |
22455 | +msgid "cannot use mshared and static together" | |
22456 | +msgstr "no se pueden usar mshared y static juntos" | |
22457 | + | |
22458 | +#: config/i386/mingw-w64.h:83 config/i386/mingw32.h:116 | |
22459 | +#: config/i386/cygwin.h:114 | |
22460 | +msgid "shared and mdll are not compatible" | |
22461 | +msgstr "shared y mdll no son compatibles" | |
22462 | + | |
22463 | #: config/s390/tpf.h:116 | |
22464 | msgid "static is not supported on TPF-OS" | |
22465 | msgstr "static no se admite en TPF-OS" | |
22466 | @@ -4673,42 +4796,6 @@ | |
22467 | msgid "-msingle-float and -msoft-float cannot both be specified" | |
22468 | msgstr "no se pueden especificar -msingle-float y -msoft-float al mismo tiempo" | |
22469 | ||
22470 | -#: config/lynx.h:70 | |
22471 | -msgid "cannot use mthreads and mlegacy-threads together" | |
22472 | -msgstr "no se pueden usar mthreads y mlegacy-threads juntos" | |
22473 | - | |
22474 | -#: config/lynx.h:95 | |
22475 | -msgid "cannot use mshared and static together" | |
22476 | -msgstr "no se pueden usar mshared y static juntos" | |
22477 | - | |
22478 | -#: objcp/lang-specs.h:58 | |
22479 | -msgid "objc++-cpp-output is deprecated; please use objective-c++-cpp-output instead" | |
22480 | -msgstr "objc++-cpp-output es obsoleto; pr favor use en su lugar objective-c++-cpp-output" | |
22481 | - | |
22482 | -#: ada/gcc-interface/lang-specs.h:34 | |
22483 | -msgid "-c or -S required for Ada" | |
22484 | -msgstr "se requiere -c o -S para Ada" | |
22485 | - | |
22486 | -#: ada/gcc-interface/lang-specs.h:52 | |
22487 | -msgid "-c required for gnat2why" | |
22488 | -msgstr "se requiere -c para gnat2why" | |
22489 | - | |
22490 | -#: java/lang-specs.h:33 | |
22491 | -msgid "-fjni and -femit-class-files are incompatible" | |
22492 | -msgstr "-fjni y -femit-class-files son incompatibles" | |
22493 | - | |
22494 | -#: java/lang-specs.h:34 | |
22495 | -msgid "-fjni and -femit-class-file are incompatible" | |
22496 | -msgstr "-fjni y -femit-class-file son incompatibles" | |
22497 | - | |
22498 | -#: java/lang-specs.h:35 java/lang-specs.h:36 | |
22499 | -msgid "-femit-class-file should used along with -fsyntax-only" | |
22500 | -msgstr "-femit-class-file se debe usar junto con -fsyntax-only" | |
22501 | - | |
22502 | -#: config/mcore/mcore.h:54 | |
22503 | -msgid "the m210 does not have little endian support" | |
22504 | -msgstr "el m210 no admite little endian" | |
22505 | - | |
22506 | #: config/sol2-bi.h:108 config/sol2-bi.h:113 | |
22507 | msgid "does not support multilib" | |
22508 | msgstr "no se admite multilib" | |
22509 | @@ -4725,64 +4812,50 @@ | |
22510 | msgid "no processor type specified for linking" | |
22511 | msgstr "no existe el tipo de procesador especificado para enlazar" | |
22512 | ||
22513 | -#: config/sh/sh.h:430 config/sh/sh.h:433 | |
22514 | -msgid "SH2a does not support little-endian" | |
22515 | -msgstr "SH2a no se admite para little-endian" | |
22516 | +#: fortran/lang-specs.h:55 fortran/lang-specs.h:69 | |
22517 | +msgid "gfortran does not support -E without -cpp" | |
22518 | +msgstr "gfortran no admite -E sin usar -cpp" | |
22519 | ||
22520 | -#: config/pa/pa-hpux10.h:89 config/pa/pa-hpux10.h:92 config/pa/pa-hpux10.h:100 | |
22521 | -#: config/pa/pa-hpux10.h:103 config/pa/pa-hpux11.h:108 | |
22522 | -#: config/pa/pa-hpux11.h:111 config/pa/pa64-hpux.h:30 config/pa/pa64-hpux.h:33 | |
22523 | -#: config/pa/pa64-hpux.h:42 config/pa/pa64-hpux.h:45 | |
22524 | -msgid "warning: consider linking with '-static' as system libraries with" | |
22525 | -msgstr "aviso: considere enlazar con '-static' como bibliotecas de sistema con" | |
22526 | +#: config/mcore/mcore.h:54 | |
22527 | +msgid "the m210 does not have little endian support" | |
22528 | +msgstr "el m210 no admite little endian" | |
22529 | ||
22530 | -#: config/pa/pa-hpux10.h:90 config/pa/pa-hpux10.h:93 config/pa/pa-hpux10.h:101 | |
22531 | -#: config/pa/pa-hpux10.h:104 config/pa/pa-hpux11.h:109 | |
22532 | -#: config/pa/pa-hpux11.h:112 config/pa/pa64-hpux.h:31 config/pa/pa64-hpux.h:34 | |
22533 | -#: config/pa/pa64-hpux.h:43 config/pa/pa64-hpux.h:46 | |
22534 | -msgid " profiling support are only provided in archive format" | |
22535 | -msgstr " soporte a análisis de perfil sólo se proveen en formato de archivo" | |
22536 | - | |
22537 | #: config/vxworks.h:71 | |
22538 | msgid "-Xbind-now and -Xbind-lazy are incompatible" | |
22539 | msgstr "-Xbind-now y -Xbind-lazy son incompatibles" | |
22540 | ||
22541 | -#: config/darwin.h:242 | |
22542 | +#: config/darwin.h:244 | |
22543 | msgid "-current_version only allowed with -dynamiclib" | |
22544 | msgstr "sólo se permite -current_version con -dynamiclib" | |
22545 | ||
22546 | -#: config/darwin.h:244 | |
22547 | +#: config/darwin.h:246 | |
22548 | msgid "-install_name only allowed with -dynamiclib" | |
22549 | msgstr "sólo se permite -install_name con -dynamiclib" | |
22550 | ||
22551 | -#: config/darwin.h:249 | |
22552 | +#: config/darwin.h:251 | |
22553 | msgid "-bundle not allowed with -dynamiclib" | |
22554 | msgstr "no se permite -bundle con -dynamiclib" | |
22555 | ||
22556 | -#: config/darwin.h:250 | |
22557 | +#: config/darwin.h:252 | |
22558 | msgid "-bundle_loader not allowed with -dynamiclib" | |
22559 | msgstr "no se permite -bundle_loader con -dynamiclib" | |
22560 | ||
22561 | -#: config/darwin.h:251 | |
22562 | +#: config/darwin.h:253 | |
22563 | msgid "-client_name not allowed with -dynamiclib" | |
22564 | msgstr "no se permite -client_name con -dynamiclib" | |
22565 | ||
22566 | -#: config/darwin.h:256 | |
22567 | +#: config/darwin.h:258 | |
22568 | msgid "-force_flat_namespace not allowed with -dynamiclib" | |
22569 | msgstr "no se permite -force_flat_namespace con -dynamiclib" | |
22570 | ||
22571 | -#: config/darwin.h:258 | |
22572 | +#: config/darwin.h:260 | |
22573 | msgid "-keep_private_externs not allowed with -dynamiclib" | |
22574 | msgstr "no se permite keep_private_externs con -dynamiclib" | |
22575 | ||
22576 | -#: config/darwin.h:259 | |
22577 | +#: config/darwin.h:261 | |
22578 | msgid "-private_bundle not allowed with -dynamiclib" | |
22579 | msgstr "no se permite -private_bundle con -dynamiclib" | |
22580 | ||
22581 | -#: config/cris/cris.h:192 | |
22582 | -msgid "do not specify both -march=... and -mcpu=..." | |
22583 | -msgstr "no especifique -march=... y -mcpu=... al mismo tiempo" | |
22584 | - | |
22585 | #: objc/lang-specs.h:31 objc/lang-specs.h:42 | |
22586 | msgid "GNU Objective C no longer supports traditional compilation" | |
22587 | msgstr "Objective C de GNU ya no admite compilación tradicional" | |
22588 | @@ -4791,18 +4864,38 @@ | |
22589 | msgid "objc-cpp-output is deprecated; please use objective-c-cpp-output instead" | |
22590 | msgstr "objc-cpp-output es obsoleto; por favor use en su lugar objective-c-cpp-output" | |
22591 | ||
22592 | -#: config/rx/rx.h:57 | |
22593 | -msgid "-mas100-syntax is incompatible with -gdwarf" | |
22594 | -msgstr "-mas100-syntax es incompatible con -gdwarf" | |
22595 | +#: config/vax/netbsd-elf.h:51 | |
22596 | +msgid "the -shared option is not currently supported for VAX ELF" | |
22597 | +msgstr "la opción -shared no se admite actualmente en ELF de VAX" | |
22598 | ||
22599 | -#: config/rx/rx.h:58 | |
22600 | -msgid "rx200 cpu does not have FPU hardware" | |
22601 | -msgstr "el cpu rx200 no tiene FPU de hardware" | |
22602 | +#: java/lang-specs.h:33 | |
22603 | +msgid "-fjni and -femit-class-files are incompatible" | |
22604 | +msgstr "-fjni y -femit-class-files son incompatibles" | |
22605 | ||
22606 | +#: java/lang-specs.h:34 | |
22607 | +msgid "-fjni and -femit-class-file are incompatible" | |
22608 | +msgstr "-fjni y -femit-class-file son incompatibles" | |
22609 | + | |
22610 | +#: java/lang-specs.h:35 java/lang-specs.h:36 | |
22611 | +msgid "-femit-class-file should used along with -fsyntax-only" | |
22612 | +msgstr "-femit-class-file se debe usar junto con -fsyntax-only" | |
22613 | + | |
22614 | +#: config/sh/sh.h:430 config/sh/sh.h:433 | |
22615 | +msgid "SH2a does not support little-endian" | |
22616 | +msgstr "SH2a no se admite para little-endian" | |
22617 | + | |
22618 | #: config/rs6000/darwin.h:96 | |
22619 | msgid " conflicting code gen style switches are used" | |
22620 | msgstr " se usan interruptores de estilo de generación de código en conflicto" | |
22621 | ||
22622 | +#: objcp/lang-specs.h:58 | |
22623 | +msgid "objc++-cpp-output is deprecated; please use objective-c++-cpp-output instead" | |
22624 | +msgstr "objc++-cpp-output es obsoleto; pr favor use en su lugar objective-c++-cpp-output" | |
22625 | + | |
22626 | +#: config/vax/vax.h:50 config/vax/vax.h:51 | |
22627 | +msgid "profiling not supported with -mg" | |
22628 | +msgstr "el análisis de perfil no se admite con -mg" | |
22629 | + | |
22630 | #: java/lang.opt:122 | |
22631 | msgid "Warn if deprecated empty statements are found" | |
22632 | msgstr "Avisa si se encuentran declaraciones vacías obsoletas" | |
22633 | @@ -5104,7 +5197,7 @@ | |
22634 | msgstr "Permite signos de dólar en nombres de entidades" | |
22635 | ||
22636 | #: fortran/lang.opt:371 common.opt:659 common.opt:826 common.opt:830 | |
22637 | -#: common.opt:834 common.opt:838 common.opt:1323 | |
22638 | +#: common.opt:834 common.opt:838 common.opt:1320 | |
22639 | msgid "Does nothing. Preserved for backward compatibility." | |
22640 | msgstr "No hace nada. Preservado por compatibilidad hacia atrás." | |
22641 | ||
22642 | @@ -5229,7 +5322,7 @@ | |
22643 | msgstr "Permite la revisión de rango durante la compilación" | |
22644 | ||
22645 | #: fortran/lang.opt:503 | |
22646 | -msgid "Interpret any REAl(4) as a REAL(8)" | |
22647 | +msgid "Interpret any REAL(4) as a REAL(8)" | |
22648 | msgstr "Interpreta cualquier REAL(4) como un REAL(8)" | |
22649 | ||
22650 | #: fortran/lang.opt:507 | |
22651 | @@ -5237,7 +5330,7 @@ | |
22652 | msgstr "Interpreta cualquier REAL(4) como un REAL(10)" | |
22653 | ||
22654 | #: fortran/lang.opt:511 | |
22655 | -msgid "Interpret any REAL(4) as a REAl(16)" | |
22656 | +msgid "Interpret any REAL(4) as a REAL(16)" | |
22657 | msgstr "Interpreta cualquier REAL(4) como un REAL(16)" | |
22658 | ||
22659 | #: fortran/lang.opt:515 | |
22660 | @@ -5249,7 +5342,7 @@ | |
22661 | msgstr "Interpreta cualquier REAL(8) como un REAL(10)" | |
22662 | ||
22663 | #: fortran/lang.opt:523 | |
22664 | -msgid "Interpret any REAL(8) as a REAl(16)" | |
22665 | +msgid "Interpret any REAL(8) as a REAL(16)" | |
22666 | msgstr "Interpreta cualquier REAL(8) como un REAL(16)" | |
22667 | ||
22668 | #: fortran/lang.opt:527 | |
22669 | @@ -8679,6 +8772,58 @@ | |
22670 | msgid "Set register to hold -1." | |
22671 | msgstr "Establece el registro para conservar -1." | |
22672 | ||
22673 | +#: config/cr16/cr16.opt:23 | |
22674 | +msgid "-msim Use simulator runtime" | |
22675 | +msgstr "-msim Usa el simulador de tiempo de ejecución" | |
22676 | + | |
22677 | +#: config/cr16/cr16.opt:27 | |
22678 | +msgid "Generate SBIT, CBIT instructions" | |
22679 | +msgstr "Genera instrucciones SBIT, CBIT" | |
22680 | + | |
22681 | +#: config/cr16/cr16.opt:31 | |
22682 | +msgid "Support multiply accumulate instructions" | |
22683 | +msgstr "Da soporte a múltiples instrucciones de acumulador" | |
22684 | + | |
22685 | +#: config/cr16/cr16.opt:38 | |
22686 | +msgid "Treat data references as near, far or medium. medium is default" | |
22687 | +msgstr "Trata las referencias a datos como near, far o medium. Por defecto es medium" | |
22688 | + | |
22689 | +#: config/cr16/cr16.opt:42 | |
22690 | +msgid "Generate code for CR16C architecture" | |
22691 | +msgstr "Genera código para la arquitectura CR16C" | |
22692 | + | |
22693 | +#: config/cr16/cr16.opt:46 | |
22694 | +msgid "Generate code for CR16C+ architecture (Default)" | |
22695 | +msgstr "Genera código para la arquitectura CR16C+ (Por defecto)" | |
22696 | + | |
22697 | +#: config/cr16/cr16.opt:50 | |
22698 | +msgid "Treat integers as 32-bit." | |
22699 | +msgstr "Trata los enteros como 32-bit." | |
22700 | + | |
22701 | +#: config/tilegx/tilegx.opt:24 config/tilepro/tilepro.opt:29 | |
22702 | +msgid "-mcpu=CPU\tUse features of and schedule code for given CPU" | |
22703 | +msgstr "-mcpu=CPU\tUsa las características y el código de calendarizador para el CPU dado" | |
22704 | + | |
22705 | +#: config/tilegx/tilegx.opt:28 | |
22706 | +msgid "Known TILE-Gx CPUs (for use with the -mcpu= option):" | |
22707 | +msgstr "CPUs TILE-Gx conocidos (para usar con la opción -mcpu=):" | |
22708 | + | |
22709 | +#: config/tilegx/tilegx.opt:35 | |
22710 | +msgid "Compile with 32 bit longs and pointers." | |
22711 | +msgstr "Compila con longs y punteros de 32 bit." | |
22712 | + | |
22713 | +#: config/tilegx/tilegx.opt:39 | |
22714 | +msgid "Compile with 64 bit longs and pointers." | |
22715 | +msgstr "Compila con longs y punteros de 64 bit." | |
22716 | + | |
22717 | +#: config/tilepro/tilepro.opt:24 | |
22718 | +msgid "Compile with 32 bit longs and pointers, which is the only supported" | |
22719 | +msgstr "Compila con longs y punteros de 32 bit, el cual es el único admitido" | |
22720 | + | |
22721 | +#: config/tilepro/tilepro.opt:33 | |
22722 | +msgid "Known TILEPro CPUs (for use with the -mcpu= option):" | |
22723 | +msgstr "CPUs TILEPro conocidos (para uso con la opción -mcpu=):" | |
22724 | + | |
22725 | #: config/picochip/picochip.opt:23 | |
22726 | msgid "Specify which type of AE to target. This option sets the mul-type and byte-access." | |
22727 | msgstr "Especifica a qué tipo de AE se apunta. Esta opción establece el tipo muly el acceso a byte." | |
22728 | @@ -8714,7 +8859,7 @@ | |
22729 | #: config/darwin.opt:53 c-family/c.opt:71 c-family/c.opt:74 c-family/c.opt:77 | |
22730 | #: c-family/c.opt:80 c-family/c.opt:179 c-family/c.opt:182 c-family/c.opt:220 | |
22731 | #: c-family/c.opt:224 c-family/c.opt:236 c-family/c.opt:1125 | |
22732 | -#: c-family/c.opt:1133 common.opt:301 common.opt:304 common.opt:2281 | |
22733 | +#: c-family/c.opt:1133 common.opt:301 common.opt:304 common.opt:2278 | |
22734 | #, c-format | |
22735 | msgid "missing filename after %qs" | |
22736 | msgstr "falta un nombre de fichero después de %qs" | |
22737 | @@ -9577,8 +9722,8 @@ | |
22738 | msgstr "Avisa sobre constantes de coma flotante sin sufijo" | |
22739 | ||
22740 | #: c-family/c.opt:666 | |
22741 | -msgid "Warn about" | |
22742 | -msgstr "Avisa sobre" | |
22743 | +msgid "Warn when typedefs locally defined in a function are not used" | |
22744 | +msgstr "Avisa cuando se definen typedefs localmente en una función pero no se usan" | |
22745 | ||
22746 | #: c-family/c.opt:670 | |
22747 | msgid "Warn about macros defined in the main file that are not used" | |
22748 | @@ -9681,9 +9826,9 @@ | |
22749 | msgstr "-fdeduce-init-list\tactiva la deducción de std::initializer_list para un parámetro de tipo de plantilla desde una lista de inicializador dentro de llaves" | |
22750 | ||
22751 | #: c-family/c.opt:768 c-family/c.opt:955 common.opt:937 common.opt:1115 | |
22752 | -#: common.opt:1393 common.opt:1647 common.opt:1683 common.opt:1768 | |
22753 | -#: common.opt:1772 common.opt:1848 common.opt:1926 common.opt:1942 | |
22754 | -#: common.opt:2026 | |
22755 | +#: common.opt:1390 common.opt:1644 common.opt:1680 common.opt:1765 | |
22756 | +#: common.opt:1769 common.opt:1845 common.opt:1923 common.opt:1939 | |
22757 | +#: common.opt:2023 | |
22758 | msgid "Does nothing. Preserved for backward compatibility." | |
22759 | msgstr "No hace nada. Se preserva por compatibilidad hacia atrás." | |
22760 | ||
22761 | @@ -10721,1126 +10866,1126 @@ | |
22762 | msgid "Perform indirect inlining" | |
22763 | msgstr "Realiza la inclusión en línea indirecta" | |
22764 | ||
22765 | -#: common.opt:1255 | |
22766 | -msgid "Pay attention to the \"inline\" keyword" | |
22767 | -msgstr "Pone atención a la palabra clave \"inline\"" | |
22768 | +#: common.opt:1252 | |
22769 | +msgid "Enable inlining of function declared \"inline\", disabling disables all inlining" | |
22770 | +msgstr "Activa la inclusión en línea de la la función declarada \"inline\", y desactiva todas las demás inclusiones en línea" | |
22771 | ||
22772 | -#: common.opt:1259 | |
22773 | -msgid "Integrate simple functions into their callers when code size is known to not growth" | |
22774 | -msgstr "Integra las funciones simples en sus invocadores" | |
22775 | +#: common.opt:1256 | |
22776 | +msgid "Integrate functions into their callers when code size is known not to grow" | |
22777 | +msgstr "Integra las funciones en sus invocadores cuando se sabe que el tamaño del código no crece" | |
22778 | ||
22779 | -#: common.opt:1263 | |
22780 | -msgid "Integrate simple functions into their callers" | |
22781 | -msgstr "Integra las funciones simples en sus invocadores" | |
22782 | +#: common.opt:1260 | |
22783 | +msgid "Integrate functions not declared \"inline\" into their callers when profitable" | |
22784 | +msgstr "Integra las funciones que no se declaran \"inline\" en sus invocadores cuando es rentable" | |
22785 | ||
22786 | -#: common.opt:1267 | |
22787 | -msgid "Integrate functions called once into their callers" | |
22788 | -msgstr "Integra las funciones llamadas una vez en sus invocadores" | |
22789 | +#: common.opt:1264 | |
22790 | +msgid "Integrate functions only required by their single caller" | |
22791 | +msgstr "Integra las funciones sólo requeridas por su invocador único" | |
22792 | ||
22793 | -#: common.opt:1274 | |
22794 | +#: common.opt:1271 | |
22795 | msgid "-finline-limit=<number>\tLimit the size of inlined functions to <number>" | |
22796 | msgstr "-finline-limit=<número>\tLimita el tamaño de las funciones incluídas en línea a <número>" | |
22797 | ||
22798 | -#: common.opt:1278 | |
22799 | +#: common.opt:1275 | |
22800 | msgid "Inline __atomic operations when a lock free instruction sequence is available." | |
22801 | msgstr "Coloca en línea las operaciones __atomic cuando una secuencia de instrucciones lock free está disponible" | |
22802 | ||
22803 | -#: common.opt:1282 | |
22804 | +#: common.opt:1279 | |
22805 | msgid "Instrument function entry and exit with profiling calls" | |
22806 | msgstr "Instrumenta funciones de entrada y salida con llamadas de análisis de perfil" | |
22807 | ||
22808 | -#: common.opt:1286 | |
22809 | +#: common.opt:1283 | |
22810 | msgid "-finstrument-functions-exclude-function-list=name,... Do not instrument listed functions" | |
22811 | msgstr "-finstrument-functions-exclude-functions-list=nombre,... No instrumenta las funciones enlistadas" | |
22812 | ||
22813 | -#: common.opt:1290 | |
22814 | +#: common.opt:1287 | |
22815 | msgid "-finstrument-functions-exclude-file-list=filename,... Do not instrument functions listed in files" | |
22816 | msgstr "-finstrument-functions-exclude-file-list=fichero,... No instrumenta las funciones enlistadas en ficheros" | |
22817 | ||
22818 | -#: common.opt:1294 | |
22819 | +#: common.opt:1291 | |
22820 | msgid "Perform Interprocedural constant propagation" | |
22821 | msgstr "Realiza la propagación interprocedural de las constantes" | |
22822 | ||
22823 | -#: common.opt:1298 | |
22824 | +#: common.opt:1295 | |
22825 | msgid "Perform cloning to make Interprocedural constant propagation stronger" | |
22826 | msgstr "Realiza la clonación para hacer la propagación constante Interprocedural más fuerte" | |
22827 | ||
22828 | -#: common.opt:1302 | |
22829 | +#: common.opt:1299 | |
22830 | msgid "Perform interprocedural profile propagation" | |
22831 | msgstr "Realiza la propagación de perfil interprocedural" | |
22832 | ||
22833 | -#: common.opt:1306 | |
22834 | +#: common.opt:1303 | |
22835 | msgid "Perform interprocedural points-to analysis" | |
22836 | msgstr "Realiza el análisis interprocedural de puntero-a" | |
22837 | ||
22838 | -#: common.opt:1310 | |
22839 | +#: common.opt:1307 | |
22840 | msgid "Discover pure and const functions" | |
22841 | msgstr "Descubre funciones pure y const" | |
22842 | ||
22843 | -#: common.opt:1314 | |
22844 | +#: common.opt:1311 | |
22845 | msgid "Discover readonly and non addressable static variables" | |
22846 | msgstr "Descubre variables estáticas de sólo lectura y no direccionables" | |
22847 | ||
22848 | -#: common.opt:1318 | |
22849 | +#: common.opt:1315 | |
22850 | msgid "Perform matrix layout flattening and transposing based" | |
22851 | msgstr "Realiza la ubicación de matriz basado en aplanado y transposición" | |
22852 | ||
22853 | -#: common.opt:1327 | |
22854 | +#: common.opt:1324 | |
22855 | msgid "-fira-algorithm=[CB|priority] Set the used IRA algorithm" | |
22856 | msgstr "-fira-algorithm=[CB|priority] Establece el algoritmo IRA a usar" | |
22857 | ||
22858 | -#: common.opt:1330 | |
22859 | +#: common.opt:1327 | |
22860 | #, c-format | |
22861 | msgid "unknown IRA algorithm %qs" | |
22862 | msgstr "algoritmo IRA %qs desconocido" | |
22863 | ||
22864 | -#: common.opt:1340 | |
22865 | +#: common.opt:1337 | |
22866 | msgid "-fira-region=[one|all|mixed] Set regions for IRA" | |
22867 | msgstr "-fira-region=[one|all|mixed] Establece las regiones para IRA" | |
22868 | ||
22869 | -#: common.opt:1343 | |
22870 | +#: common.opt:1340 | |
22871 | #, c-format | |
22872 | msgid "unknown IRA region %qs" | |
22873 | msgstr "región IRA %qs desconocida" | |
22874 | ||
22875 | -#: common.opt:1356 | |
22876 | +#: common.opt:1353 | |
22877 | msgid "Use IRA based register pressure calculation" | |
22878 | msgstr "Usa el cálculo de presión de registros basado en IRA" | |
22879 | ||
22880 | -#: common.opt:1361 | |
22881 | +#: common.opt:1358 | |
22882 | msgid "Share slots for saving different hard registers." | |
22883 | msgstr "Comparte ranuras para ahorrar registros hard diferentes." | |
22884 | ||
22885 | -#: common.opt:1365 | |
22886 | +#: common.opt:1362 | |
22887 | msgid "Share stack slots for spilled pseudo-registers." | |
22888 | msgstr "Comparte ranuras de pila para pseudo-registros derramados." | |
22889 | ||
22890 | -#: common.opt:1369 | |
22891 | +#: common.opt:1366 | |
22892 | msgid "-fira-verbose=<number>\tControl IRA's level of diagnostic messages." | |
22893 | msgstr "-fira-verbose=<número>\tControla el nivel de mensajes de diagnóstico de IRA." | |
22894 | ||
22895 | -#: common.opt:1373 | |
22896 | +#: common.opt:1370 | |
22897 | msgid "Optimize induction variables on trees" | |
22898 | msgstr "Optimiza la inducción de variables en los árboles" | |
22899 | ||
22900 | -#: common.opt:1377 | |
22901 | +#: common.opt:1374 | |
22902 | msgid "Use jump tables for sufficiently large switch statements" | |
22903 | msgstr "Usa tablas de salto para las declaraciones switch suficientemente grandes" | |
22904 | ||
22905 | -#: common.opt:1381 | |
22906 | +#: common.opt:1378 | |
22907 | msgid "Generate code for functions even if they are fully inlined" | |
22908 | msgstr "Genera código para las funciones aún si están completamente incluídas en línea" | |
22909 | ||
22910 | -#: common.opt:1385 | |
22911 | +#: common.opt:1382 | |
22912 | msgid "Emit static const variables even if they are not used" | |
22913 | msgstr "Emite variables static const aún si no se usan" | |
22914 | ||
22915 | -#: common.opt:1389 | |
22916 | +#: common.opt:1386 | |
22917 | msgid "Give external symbols a leading underscore" | |
22918 | msgstr "Da a los símbolos externos un subrayado inicial" | |
22919 | ||
22920 | -#: common.opt:1397 | |
22921 | +#: common.opt:1394 | |
22922 | msgid "Enable link-time optimization." | |
22923 | msgstr "Activa las optimizaciones de tiempo de enlace." | |
22924 | ||
22925 | -#: common.opt:1401 | |
22926 | +#: common.opt:1398 | |
22927 | msgid "Link-time optimization with number of parallel jobs or jobserver." | |
22928 | msgstr "Optimización en tiempo de enlace con el número de trabajos paralelos o el servidor de trabajos." | |
22929 | ||
22930 | -#: common.opt:1405 | |
22931 | +#: common.opt:1402 | |
22932 | msgid "Partition functions and vars at linktime based on object files they originate from" | |
22933 | msgstr "Particiona funciones y variables en tiempo de enlace basado en los ficheros objetos de los que se originaron" | |
22934 | ||
22935 | -#: common.opt:1409 | |
22936 | +#: common.opt:1406 | |
22937 | msgid "Partition functions and vars at linktime into approximately same sized buckets" | |
22938 | msgstr "Particiona funciones y variables en tiempo de enlace en cubos de aproximadamente el mismo tamaño" | |
22939 | ||
22940 | -#: common.opt:1413 | |
22941 | +#: common.opt:1410 | |
22942 | msgid "Disable partioning and streaming" | |
22943 | msgstr "Desactiva el particionamiento y flujo" | |
22944 | ||
22945 | -#: common.opt:1418 | |
22946 | +#: common.opt:1415 | |
22947 | msgid "-flto-compression-level=<number>\tUse zlib compression level <number> for IL" | |
22948 | msgstr "-flto-compression-level=<número>\tUsa el nivel de compresión de zlib <número> para IL" | |
22949 | ||
22950 | -#: common.opt:1422 | |
22951 | +#: common.opt:1419 | |
22952 | msgid "Report various link-time optimization statistics" | |
22953 | msgstr "Reporta varias estadísticas de optimización de tiempo de enlace" | |
22954 | ||
22955 | -#: common.opt:1426 | |
22956 | +#: common.opt:1423 | |
22957 | msgid "Set errno after built-in math functions" | |
22958 | msgstr "Establece errno después de las funciones matemáticas internas" | |
22959 | ||
22960 | -#: common.opt:1430 | |
22961 | +#: common.opt:1427 | |
22962 | msgid "-fmax-errors=<number>\tMaximum number of errors to report" | |
22963 | msgstr "-fmax-errors=<número>\tNúmero máximo de errores a reportar" | |
22964 | ||
22965 | -#: common.opt:1434 | |
22966 | +#: common.opt:1431 | |
22967 | msgid "Report on permanent memory allocation" | |
22968 | msgstr "Reporta el alojamiento en memoria permanente" | |
22969 | ||
22970 | -#: common.opt:1441 | |
22971 | +#: common.opt:1438 | |
22972 | msgid "Attempt to merge identical constants and constant variables" | |
22973 | msgstr "Intenta mezclar constantes idénticas y variables constantes" | |
22974 | ||
22975 | -#: common.opt:1445 | |
22976 | +#: common.opt:1442 | |
22977 | msgid "Attempt to merge identical constants across compilation units" | |
22978 | msgstr "Intenta mezclar constantes idénticas a través de las unidades de compilación" | |
22979 | ||
22980 | -#: common.opt:1449 | |
22981 | +#: common.opt:1446 | |
22982 | msgid "Attempt to merge identical debug strings across compilation units" | |
22983 | msgstr "Intenta mezclar cadenas de depuración idénticas a través de las unidades de compilación" | |
22984 | ||
22985 | -#: common.opt:1453 | |
22986 | +#: common.opt:1450 | |
22987 | msgid "-fmessage-length=<number>\tLimit diagnostics to <number> characters per line. 0 suppresses line-wrapping" | |
22988 | msgstr "-fmessage-length=<número>\tLimita los diagnósticos a <número> caracteres por línea. 0 suprime el corte de línea" | |
22989 | ||
22990 | -#: common.opt:1457 | |
22991 | +#: common.opt:1454 | |
22992 | msgid "Perform SMS based modulo scheduling before the first scheduling pass" | |
22993 | msgstr "Realiza la calendarización SMS basada en módulo antes del primer paso de calendarización" | |
22994 | ||
22995 | -#: common.opt:1461 | |
22996 | +#: common.opt:1458 | |
22997 | msgid "Perform SMS based modulo scheduling with register moves allowed" | |
22998 | msgstr "Realiza la calendarización módulo basada en SMS con movimientos permitidos de registros" | |
22999 | ||
23000 | -#: common.opt:1465 | |
23001 | +#: common.opt:1462 | |
23002 | msgid "Move loop invariant computations out of loops" | |
23003 | msgstr "Mueve las computaciones invariantes de bucles fuera de los bucles" | |
23004 | ||
23005 | -#: common.opt:1469 | |
23006 | +#: common.opt:1466 | |
23007 | msgid "Use the RTL dead code elimination pass" | |
23008 | msgstr "Usa el paso de eliminación de código muerto de RTL" | |
23009 | ||
23010 | -#: common.opt:1473 | |
23011 | +#: common.opt:1470 | |
23012 | msgid "Use the RTL dead store elimination pass" | |
23013 | msgstr "Usa la eliminación de almacenamiento muerto de RTL" | |
23014 | ||
23015 | -#: common.opt:1477 | |
23016 | +#: common.opt:1474 | |
23017 | msgid "Enable/Disable the traditional scheduling in loops that already passed modulo scheduling" | |
23018 | msgstr "Activa/Desactiva la calendarización tradicional en bucles que ya pasaron la calendarización módulo" | |
23019 | ||
23020 | -#: common.opt:1481 | |
23021 | +#: common.opt:1478 | |
23022 | msgid "Support synchronous non-call exceptions" | |
23023 | msgstr "Permite las excepciones síncronas que no son llamadas" | |
23024 | ||
23025 | -#: common.opt:1485 | |
23026 | +#: common.opt:1482 | |
23027 | msgid "When possible do not generate stack frames" | |
23028 | msgstr "Cuando sea posible no genera marcos de pila" | |
23029 | ||
23030 | -#: common.opt:1489 | |
23031 | +#: common.opt:1486 | |
23032 | msgid "Do the full register move optimization pass" | |
23033 | msgstr "Hace el paso completo de optimización de movimiento de registros" | |
23034 | ||
23035 | -#: common.opt:1493 | |
23036 | +#: common.opt:1490 | |
23037 | msgid "Optimize sibling and tail recursive calls" | |
23038 | msgstr "Optimiza las llamadas recursivas hermanadas y de extremo" | |
23039 | ||
23040 | -#: common.opt:1497 | |
23041 | +#: common.opt:1494 | |
23042 | msgid "Perform partial inlining" | |
23043 | msgstr "Realiza la inclusión en línea parcial" | |
23044 | ||
23045 | -#: common.opt:1501 common.opt:1505 | |
23046 | +#: common.opt:1498 common.opt:1502 | |
23047 | msgid "Report on memory allocation before interprocedural optimization" | |
23048 | msgstr "Reporta la ubicación de memoria antes de la optimización interprocedural" | |
23049 | ||
23050 | -#: common.opt:1509 | |
23051 | +#: common.opt:1506 | |
23052 | msgid "Pack structure members together without holes" | |
23053 | msgstr "Empaqueta juntos a los miembros de la estructura sin agujeros" | |
23054 | ||
23055 | -#: common.opt:1513 | |
23056 | +#: common.opt:1510 | |
23057 | msgid "-fpack-struct=<number>\tSet initial maximum structure member alignment" | |
23058 | msgstr "-fpack-struct=<número>\tEstablece la alineación inicial máxima de estructuras miembro" | |
23059 | ||
23060 | -#: common.opt:1517 | |
23061 | +#: common.opt:1514 | |
23062 | msgid "Return small aggregates in memory, not registers" | |
23063 | msgstr "Devuelve los agregados small en memoria, no en registros" | |
23064 | ||
23065 | -#: common.opt:1521 | |
23066 | +#: common.opt:1518 | |
23067 | msgid "Perform loop peeling" | |
23068 | msgstr "Realiza el pelado de bucles" | |
23069 | ||
23070 | -#: common.opt:1525 | |
23071 | +#: common.opt:1522 | |
23072 | msgid "Enable machine specific peephole optimizations" | |
23073 | msgstr "Activa las optimizaciones de mirilla específicas de la máquina" | |
23074 | ||
23075 | -#: common.opt:1529 | |
23076 | +#: common.opt:1526 | |
23077 | msgid "Enable an RTL peephole pass before sched2" | |
23078 | msgstr "Activa un paso de mirilla RTL antes de sched2" | |
23079 | ||
23080 | -#: common.opt:1533 | |
23081 | +#: common.opt:1530 | |
23082 | msgid "Generate position-independent code if possible (large mode)" | |
23083 | msgstr "Genera código independiente de posición si es posible (modo large)" | |
23084 | ||
23085 | -#: common.opt:1537 | |
23086 | +#: common.opt:1534 | |
23087 | msgid "Generate position-independent code for executables if possible (large mode)" | |
23088 | msgstr "Genera código independiente de posición para ejecutables si es posible (modo large)" | |
23089 | ||
23090 | -#: common.opt:1541 | |
23091 | +#: common.opt:1538 | |
23092 | msgid "Generate position-independent code if possible (small mode)" | |
23093 | msgstr "Genera código independiente de posición si es posible (modo small)" | |
23094 | ||
23095 | -#: common.opt:1545 | |
23096 | +#: common.opt:1542 | |
23097 | msgid "Generate position-independent code for executables if possible (small mode)" | |
23098 | msgstr "Genera código independiente de posición para ejecutables si es posible (modo small)" | |
23099 | ||
23100 | -#: common.opt:1549 | |
23101 | +#: common.opt:1546 | |
23102 | msgid "Specify a plugin to load" | |
23103 | msgstr "Especifica un plugin a cargar" | |
23104 | ||
23105 | -#: common.opt:1553 | |
23106 | +#: common.opt:1550 | |
23107 | msgid "-fplugin-arg-<name>-<key>[=<value>]\tSpecify argument <key>=<value> for plugin <name>" | |
23108 | msgstr "-fplugin-arg-<nom>-<clave>[=<valor>]\tEspecifica el argumento <clave>=<valor> para el plugin <nom>bre" | |
23109 | ||
23110 | -#: common.opt:1557 | |
23111 | +#: common.opt:1554 | |
23112 | msgid "Run predictive commoning optimization." | |
23113 | msgstr "Ejecuta la optimización comunizadora predictiva." | |
23114 | ||
23115 | -#: common.opt:1561 | |
23116 | +#: common.opt:1558 | |
23117 | msgid "Generate prefetch instructions, if available, for arrays in loops" | |
23118 | msgstr "Genera instrucciones de precargado, si están disponibles, para matrices en bucles" | |
23119 | ||
23120 | -#: common.opt:1565 | |
23121 | +#: common.opt:1562 | |
23122 | msgid "Enable basic program profiling code" | |
23123 | msgstr "Activa el código básico de análisis de perfil del programa" | |
23124 | ||
23125 | -#: common.opt:1569 | |
23126 | +#: common.opt:1566 | |
23127 | msgid "Insert arc-based program profiling code" | |
23128 | msgstr "Inserta el código de análisis de perfil de programa basado en arc" | |
23129 | ||
23130 | -#: common.opt:1573 | |
23131 | +#: common.opt:1570 | |
23132 | msgid "Set the top-level directory for storing the profile data." | |
23133 | msgstr "Establece el directorio de nivel principal para almacenar los datos de perfilado." | |
23134 | ||
23135 | -#: common.opt:1578 | |
23136 | +#: common.opt:1575 | |
23137 | msgid "Enable correction of flow inconsistent profile data input" | |
23138 | msgstr "Activa la corrección de datos de entrada de perfilado inconsistente de flujo" | |
23139 | ||
23140 | -#: common.opt:1582 | |
23141 | +#: common.opt:1579 | |
23142 | msgid "Enable common options for generating profile info for profile feedback directed optimizations" | |
23143 | msgstr "Activa las opciones comunes para generar información de análisis de perfil para optimizaciones dirigidas por retroalimentación de perfil" | |
23144 | ||
23145 | -#: common.opt:1586 | |
23146 | +#: common.opt:1583 | |
23147 | msgid "Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=" | |
23148 | msgstr "Activa las opciones comunes para generar información de análisis de perfil para optimizaciones dirigidas por retroalimentación de perfili, y establece -fprofile-dir=" | |
23149 | ||
23150 | -#: common.opt:1590 | |
23151 | +#: common.opt:1587 | |
23152 | msgid "Enable common options for performing profile feedback directed optimizations" | |
23153 | msgstr "Activa las opciones comunes para realizar optimizaciones dirigidas por retroalimentación de perfil" | |
23154 | ||
23155 | -#: common.opt:1594 | |
23156 | +#: common.opt:1591 | |
23157 | msgid "Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir=" | |
23158 | msgstr "Activa las opciones comunes para realizar optimizaciones dirigidas por retroalimentación de perfil, y establece -fprofile-dir=" | |
23159 | ||
23160 | -#: common.opt:1598 | |
23161 | +#: common.opt:1595 | |
23162 | msgid "Insert code to profile values of expressions" | |
23163 | msgstr "Inserta el código para perfilar valores de expresiones" | |
23164 | ||
23165 | -#: common.opt:1605 | |
23166 | +#: common.opt:1602 | |
23167 | msgid "-frandom-seed=<string>\tMake compile reproducible using <string>" | |
23168 | msgstr "-frandom-seed=<cadena>\tHace que se pueda reproducir la compilación utilizando la <cadena>" | |
23169 | ||
23170 | -#: common.opt:1615 | |
23171 | +#: common.opt:1612 | |
23172 | msgid "Record gcc command line switches in the object file." | |
23173 | msgstr "Guarda las opciones de la línea de órdenes de gcc en el fichero objeto." | |
23174 | ||
23175 | -#: common.opt:1619 | |
23176 | +#: common.opt:1616 | |
23177 | msgid "Return small aggregates in registers" | |
23178 | msgstr "Devuelve agregados small en registros" | |
23179 | ||
23180 | -#: common.opt:1623 | |
23181 | +#: common.opt:1620 | |
23182 | msgid "Enables a register move optimization" | |
23183 | msgstr "Permite una optimización de movimiento de registros" | |
23184 | ||
23185 | -#: common.opt:1627 | |
23186 | +#: common.opt:1624 | |
23187 | msgid "Perform a register renaming optimization pass" | |
23188 | msgstr "Realiza el paso de optimización de renombrado de registros" | |
23189 | ||
23190 | -#: common.opt:1631 | |
23191 | +#: common.opt:1628 | |
23192 | msgid "Reorder basic blocks to improve code placement" | |
23193 | msgstr "Reordena los bloques básicos para mejorar la ubicación del código" | |
23194 | ||
23195 | -#: common.opt:1635 | |
23196 | +#: common.opt:1632 | |
23197 | msgid "Reorder basic blocks and partition into hot and cold sections" | |
23198 | msgstr "Reordena los bloques básicos y particionar en secciones caliente y fría" | |
23199 | ||
23200 | -#: common.opt:1639 | |
23201 | +#: common.opt:1636 | |
23202 | msgid "Reorder functions to improve code placement" | |
23203 | msgstr "Reordena las funciones para mejorar la ubicación del código" | |
23204 | ||
23205 | -#: common.opt:1643 | |
23206 | +#: common.opt:1640 | |
23207 | msgid "Add a common subexpression elimination pass after loop optimizations" | |
23208 | msgstr "Ejecuta un paso de eliminación de subexpresión común después de las optimizaciones de bucles" | |
23209 | ||
23210 | -#: common.opt:1651 | |
23211 | +#: common.opt:1648 | |
23212 | msgid "Disable optimizations that assume default FP rounding behavior" | |
23213 | msgstr "Desactiva las optimizaciones que asumen la conducta de un FP que redondea por defecto" | |
23214 | ||
23215 | -#: common.opt:1655 | |
23216 | +#: common.opt:1652 | |
23217 | msgid "Enable scheduling across basic blocks" | |
23218 | msgstr "Activa la calendarización entre bloques básicos" | |
23219 | ||
23220 | -#: common.opt:1659 | |
23221 | +#: common.opt:1656 | |
23222 | msgid "Enable register pressure sensitive insn scheduling" | |
23223 | msgstr "Activa la calendarización de insn sensible a la presión de registros" | |
23224 | ||
23225 | -#: common.opt:1663 | |
23226 | +#: common.opt:1660 | |
23227 | msgid "Allow speculative motion of non-loads" | |
23228 | msgstr "Permite el movimiento especulativo de insn que no son load" | |
23229 | ||
23230 | -#: common.opt:1667 | |
23231 | +#: common.opt:1664 | |
23232 | msgid "Allow speculative motion of some loads" | |
23233 | msgstr "Permite el movimiento especulativo de algunas loads" | |
23234 | ||
23235 | -#: common.opt:1671 | |
23236 | +#: common.opt:1668 | |
23237 | msgid "Allow speculative motion of more loads" | |
23238 | msgstr "Permite el movimiento especulativo de más loads" | |
23239 | ||
23240 | -#: common.opt:1675 | |
23241 | +#: common.opt:1672 | |
23242 | msgid "-fsched-verbose=<number>\tSet the verbosity level of the scheduler" | |
23243 | msgstr "-fsched-verbose=<número>\tEstablece el nivel de detalle del calendarizador" | |
23244 | ||
23245 | -#: common.opt:1679 | |
23246 | +#: common.opt:1676 | |
23247 | msgid "If scheduling post reload, do superblock scheduling" | |
23248 | msgstr "Si se calendariza después de la recarga, hace la calendarización de superbloque" | |
23249 | ||
23250 | -#: common.opt:1687 | |
23251 | +#: common.opt:1684 | |
23252 | msgid "Reschedule instructions before register allocation" | |
23253 | msgstr "Recalendariza las instrucciones antes del alojamiento de registros" | |
23254 | ||
23255 | -#: common.opt:1691 | |
23256 | +#: common.opt:1688 | |
23257 | msgid "Reschedule instructions after register allocation" | |
23258 | msgstr "Recalendariza las instrucciones después del alojamiento de registros" | |
23259 | ||
23260 | -#: common.opt:1698 | |
23261 | +#: common.opt:1695 | |
23262 | msgid "Schedule instructions using selective scheduling algorithm" | |
23263 | msgstr "Calendariza instrucciones usando el algoritmo de calendarización selectivo" | |
23264 | ||
23265 | -#: common.opt:1702 | |
23266 | +#: common.opt:1699 | |
23267 | msgid "Run selective scheduling after reload" | |
23268 | msgstr "Ejecuta la calendarización selectiva después de recargar" | |
23269 | ||
23270 | -#: common.opt:1706 | |
23271 | +#: common.opt:1703 | |
23272 | msgid "Perform software pipelining of inner loops during selective scheduling" | |
23273 | msgstr "Realiza el `pipelining' de software de los bucles internos durante la calendarización selectiva" | |
23274 | ||
23275 | -#: common.opt:1710 | |
23276 | +#: common.opt:1707 | |
23277 | msgid "Perform software pipelining of outer loops during selective scheduling" | |
23278 | msgstr "Realiza el `pipelining' de software de los bucles externos durante la calendarización selectiva" | |
23279 | ||
23280 | -#: common.opt:1714 | |
23281 | +#: common.opt:1711 | |
23282 | msgid "Reschedule pipelined regions without pipelining" | |
23283 | msgstr "Recalendariza las regiones `pipelined' sin `pipelining'" | |
23284 | ||
23285 | -#: common.opt:1720 | |
23286 | +#: common.opt:1717 | |
23287 | msgid "Allow premature scheduling of queued insns" | |
23288 | msgstr "Permite la calendarización prematura de insns encoladas" | |
23289 | ||
23290 | -#: common.opt:1724 | |
23291 | +#: common.opt:1721 | |
23292 | msgid "-fsched-stalled-insns=<number>\tSet number of queued insns that can be prematurely scheduled" | |
23293 | msgstr "-fsched-stalled-insns=<número>\tEstablece el número de insns encoladas que se pueden calendarizar prematuramente" | |
23294 | ||
23295 | -#: common.opt:1732 | |
23296 | +#: common.opt:1729 | |
23297 | msgid "Set dependence distance checking in premature scheduling of queued insns" | |
23298 | msgstr "Establece la revisión de distancia de dependencias en la calendarización prematura de insns encoladas" | |
23299 | ||
23300 | -#: common.opt:1736 | |
23301 | +#: common.opt:1733 | |
23302 | msgid "-fsched-stalled-insns-dep=<number>\tSet dependence distance checking in premature scheduling of queued insns" | |
23303 | msgstr "-fsched-stalled-insns-dep=<número>\tEstablece la revisión de distancia de dependencias en la calendarización prematura de insns encoladas" | |
23304 | ||
23305 | -#: common.opt:1740 | |
23306 | +#: common.opt:1737 | |
23307 | msgid "Enable the group heuristic in the scheduler" | |
23308 | msgstr "Activa la heurística de grupo en el calendarizador" | |
23309 | ||
23310 | -#: common.opt:1744 | |
23311 | +#: common.opt:1741 | |
23312 | msgid "Enable the critical path heuristic in the scheduler" | |
23313 | msgstr "Activa la heurística de ruta crítica en el calendarizador" | |
23314 | ||
23315 | -#: common.opt:1748 | |
23316 | +#: common.opt:1745 | |
23317 | msgid "Enable the speculative instruction heuristic in the scheduler" | |
23318 | msgstr "Activa la heurística de instrucción especulativa en el calendarizador" | |
23319 | ||
23320 | -#: common.opt:1752 | |
23321 | +#: common.opt:1749 | |
23322 | msgid "Enable the rank heuristic in the scheduler" | |
23323 | msgstr "Activa la heurística de rango en el calendarizador" | |
23324 | ||
23325 | -#: common.opt:1756 | |
23326 | +#: common.opt:1753 | |
23327 | msgid "Enable the last instruction heuristic in the scheduler" | |
23328 | msgstr "Activa la heurística de última instrucción en el calendarizador" | |
23329 | ||
23330 | -#: common.opt:1760 | |
23331 | +#: common.opt:1757 | |
23332 | msgid "Enable the dependent count heuristic in the scheduler" | |
23333 | msgstr "Activa la heurística de cuenta dependiente en el calendarizador" | |
23334 | ||
23335 | -#: common.opt:1764 | |
23336 | +#: common.opt:1761 | |
23337 | msgid "Access data in the same section from shared anchor points" | |
23338 | msgstr "Accede datos en la misma sección que los puntos de anclaje compartidos" | |
23339 | ||
23340 | -#: common.opt:1776 | |
23341 | +#: common.opt:1773 | |
23342 | msgid "Turn on Redundant Extensions Elimination pass." | |
23343 | msgstr "Activa el paso de Eliminación de Extensiones Redundantes." | |
23344 | ||
23345 | -#: common.opt:1780 | |
23346 | +#: common.opt:1777 | |
23347 | msgid "Show column numbers in diagnostics, when available. Default on" | |
23348 | msgstr "Muestra los números de columna en los diagnósticos, cuando estén disponible. Activado por defecto" | |
23349 | ||
23350 | -#: common.opt:1784 | |
23351 | +#: common.opt:1781 | |
23352 | msgid "Emit function prologues only before parts of the function that need it," | |
23353 | msgstr "Emite prólogos de función sólo después de que las partes de la función que los necesitan," | |
23354 | ||
23355 | -#: common.opt:1789 | |
23356 | +#: common.opt:1786 | |
23357 | msgid "Disable optimizations observable by IEEE signaling NaNs" | |
23358 | msgstr "Desactiva las optimizaciones observables con IEEE señalando NaNs" | |
23359 | ||
23360 | -#: common.opt:1793 | |
23361 | +#: common.opt:1790 | |
23362 | msgid "Disable floating point optimizations that ignore the IEEE signedness of zero" | |
23363 | msgstr "Desactiva las optimizaciones de coma flotante que ignoran el signo de IEEE para cero" | |
23364 | ||
23365 | -#: common.opt:1797 | |
23366 | +#: common.opt:1794 | |
23367 | msgid "Convert floating point constants to single precision constants" | |
23368 | msgstr "Convierte las constantes de coma flotante a constantes de precisión simple" | |
23369 | ||
23370 | -#: common.opt:1801 | |
23371 | +#: common.opt:1798 | |
23372 | msgid "Split lifetimes of induction variables when loops are unrolled" | |
23373 | msgstr "Divide los tiempos de vida de las variables de inducción cuando se desenrollen los bucles" | |
23374 | ||
23375 | -#: common.opt:1805 | |
23376 | +#: common.opt:1802 | |
23377 | msgid "Generate discontiguous stack frames" | |
23378 | msgstr "Genera marcos de pila discontiguos" | |
23379 | ||
23380 | -#: common.opt:1809 | |
23381 | +#: common.opt:1806 | |
23382 | msgid "Split wide types into independent registers" | |
23383 | msgstr "Divide los tipos anchos en registros independientes" | |
23384 | ||
23385 | -#: common.opt:1813 | |
23386 | +#: common.opt:1810 | |
23387 | msgid "Apply variable expansion when loops are unrolled" | |
23388 | msgstr "Aplica la expansión de variables cuando se desenrollan los bucles" | |
23389 | ||
23390 | -#: common.opt:1817 | |
23391 | +#: common.opt:1814 | |
23392 | msgid "-fstack-check=[no|generic|specific]\tInsert stack checking code into the program" | |
23393 | msgstr "-fstack-check=[no|generic|specific]\tInserta código de revisión de la pila en el programa" | |
23394 | ||
23395 | -#: common.opt:1821 | |
23396 | +#: common.opt:1818 | |
23397 | msgid "Insert stack checking code into the program. Same as -fstack-check=specific" | |
23398 | msgstr "Inserta código de revisión de la pila en el programai. Igual que -fstach-check=specific" | |
23399 | ||
23400 | -#: common.opt:1828 | |
23401 | +#: common.opt:1825 | |
23402 | msgid "-fstack-limit-register=<register>\tTrap if the stack goes past <register>" | |
23403 | msgstr "-fstack-limit-register=<register>\tCaptura si la pila pasa del <registro>" | |
23404 | ||
23405 | -#: common.opt:1832 | |
23406 | +#: common.opt:1829 | |
23407 | msgid "-fstack-limit-symbol=<name>\tTrap if the stack goes past symbol <name>" | |
23408 | msgstr "-fstack-limit-symbol=<nombre>\tCaptura si la pila pasa del símbolo <nombre>" | |
23409 | ||
23410 | -#: common.opt:1836 | |
23411 | +#: common.opt:1833 | |
23412 | msgid "Use propolice as a stack protection method" | |
23413 | msgstr "Usa propolice como un método de protección de pila" | |
23414 | ||
23415 | -#: common.opt:1840 | |
23416 | +#: common.opt:1837 | |
23417 | msgid "Use a stack protection method for every function" | |
23418 | msgstr "Usa un método de protección de pila para cada función" | |
23419 | ||
23420 | -#: common.opt:1844 | |
23421 | +#: common.opt:1841 | |
23422 | msgid "Output stack usage information on a per-function basis" | |
23423 | msgstr "Información de uso de pila de salida basada por función" | |
23424 | ||
23425 | -#: common.opt:1856 | |
23426 | +#: common.opt:1853 | |
23427 | msgid "Assume strict aliasing rules apply" | |
23428 | msgstr "Asume que se aplican las reglas estrictas de alias" | |
23429 | ||
23430 | -#: common.opt:1860 | |
23431 | +#: common.opt:1857 | |
23432 | msgid "Treat signed overflow as undefined" | |
23433 | msgstr "Trata el desbordamiento de signo como indefinido" | |
23434 | ||
23435 | -#: common.opt:1864 | |
23436 | +#: common.opt:1861 | |
23437 | msgid "Check for syntax errors, then stop" | |
23438 | msgstr "Busca errores de sintaxis, y termina" | |
23439 | ||
23440 | -#: common.opt:1868 | |
23441 | +#: common.opt:1865 | |
23442 | msgid "Create data files needed by \"gcov\"" | |
23443 | msgstr "Crea ficheros de datos necesarios para \"gcov\"" | |
23444 | ||
23445 | -#: common.opt:1872 | |
23446 | +#: common.opt:1869 | |
23447 | msgid "Perform jump threading optimizations" | |
23448 | msgstr "Realiza optimizaciones de hilado de saltos" | |
23449 | ||
23450 | -#: common.opt:1876 | |
23451 | +#: common.opt:1873 | |
23452 | msgid "Report the time taken by each compiler pass" | |
23453 | msgstr "Reporta el tiempo tomado por cada paso del compilador" | |
23454 | ||
23455 | -#: common.opt:1880 | |
23456 | +#: common.opt:1877 | |
23457 | msgid "-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec]\tSet the default thread-local storage code generation model" | |
23458 | msgstr "-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec]\tEstablece el modelo de generación de código por defecto para almacenamiento thread-local" | |
23459 | ||
23460 | -#: common.opt:1883 | |
23461 | +#: common.opt:1880 | |
23462 | #, c-format | |
23463 | msgid "unknown TLS model %qs" | |
23464 | msgstr "modelo TLS %qs desconocido" | |
23465 | ||
23466 | -#: common.opt:1899 | |
23467 | +#: common.opt:1896 | |
23468 | msgid "Reorder top level functions, variables, and asms" | |
23469 | msgstr "Reordena las funciones de nivel superior, variables y asms" | |
23470 | ||
23471 | -#: common.opt:1903 | |
23472 | +#: common.opt:1900 | |
23473 | msgid "Perform superblock formation via tail duplication" | |
23474 | msgstr "Realiza la formación de superbloques a través de la duplicación de colas" | |
23475 | ||
23476 | -#: common.opt:1910 | |
23477 | +#: common.opt:1907 | |
23478 | msgid "Assume floating-point operations can trap" | |
23479 | msgstr "Asume que las operaciones de coma flotante pueden atrapar" | |
23480 | ||
23481 | -#: common.opt:1914 | |
23482 | +#: common.opt:1911 | |
23483 | msgid "Trap for signed overflow in addition, subtraction and multiplication" | |
23484 | msgstr "Atrapar desbordamientos signed en adición, sustracción y multiplicación" | |
23485 | ||
23486 | -#: common.opt:1918 | |
23487 | +#: common.opt:1915 | |
23488 | msgid "Enable SSA-CCP optimization on trees" | |
23489 | msgstr "Activa la optimización SSA-CCP en árboles" | |
23490 | ||
23491 | -#: common.opt:1922 | |
23492 | +#: common.opt:1919 | |
23493 | msgid "Enable SSA-BIT-CCP optimization on trees" | |
23494 | msgstr "Activa la optimización SSA-BIT-CCP en árboles" | |
23495 | ||
23496 | -#: common.opt:1930 | |
23497 | +#: common.opt:1927 | |
23498 | msgid "Enable loop header copying on trees" | |
23499 | msgstr "Activa la copia de encabezado de bucles en árboles" | |
23500 | ||
23501 | -#: common.opt:1934 | |
23502 | +#: common.opt:1931 | |
23503 | msgid "Replace SSA temporaries with better names in copies" | |
23504 | msgstr "Reemplaza temporales SSA con mejores nombres en las copias" | |
23505 | ||
23506 | -#: common.opt:1938 | |
23507 | +#: common.opt:1935 | |
23508 | msgid "Enable copy propagation on trees" | |
23509 | msgstr "Activa la propagación de copia en árboles" | |
23510 | ||
23511 | -#: common.opt:1946 | |
23512 | +#: common.opt:1943 | |
23513 | msgid "Transform condition stores into unconditional ones" | |
23514 | msgstr "Transforma los almacenamientos condicionales a incondicionales" | |
23515 | ||
23516 | -#: common.opt:1950 | |
23517 | +#: common.opt:1947 | |
23518 | msgid "Perform conversions of switch initializations." | |
23519 | msgstr "Realiza la conversión de las inicializaciones de switch." | |
23520 | ||
23521 | -#: common.opt:1954 | |
23522 | +#: common.opt:1951 | |
23523 | msgid "Enable SSA dead code elimination optimization on trees" | |
23524 | msgstr "Activa la optimización de eliminación de código muerto SSA en árboles" | |
23525 | ||
23526 | -#: common.opt:1958 | |
23527 | +#: common.opt:1955 | |
23528 | msgid "Enable dominator optimizations" | |
23529 | msgstr "Activa las optimizaciones dominadoras" | |
23530 | ||
23531 | -#: common.opt:1962 | |
23532 | +#: common.opt:1959 | |
23533 | msgid "Enable tail merging on trees" | |
23534 | msgstr "Activa la mezcla de colas en árboles" | |
23535 | ||
23536 | -#: common.opt:1966 | |
23537 | +#: common.opt:1963 | |
23538 | msgid "Enable dead store elimination" | |
23539 | msgstr "Activa la eliminación de almacenamiento muerto" | |
23540 | ||
23541 | -#: common.opt:1970 | |
23542 | +#: common.opt:1967 | |
23543 | msgid "Enable forward propagation on trees" | |
23544 | msgstr "Activa la propagación hacia adelante en árboles" | |
23545 | ||
23546 | -#: common.opt:1974 | |
23547 | +#: common.opt:1971 | |
23548 | msgid "Enable Full Redundancy Elimination (FRE) on trees" | |
23549 | msgstr "Activa la Eliminación de Redundancia Completa en árboles" | |
23550 | ||
23551 | -#: common.opt:1978 | |
23552 | +#: common.opt:1975 | |
23553 | msgid "Enable string length optimizations on trees" | |
23554 | msgstr "Activa la optimizaciones de longitud de cadenas en árboles" | |
23555 | ||
23556 | -#: common.opt:1982 | |
23557 | +#: common.opt:1979 | |
23558 | msgid "Enable loop distribution on trees" | |
23559 | msgstr "Activa la distribución de bucles en árboles" | |
23560 | ||
23561 | -#: common.opt:1986 | |
23562 | +#: common.opt:1983 | |
23563 | msgid "Enable loop distribution for patterns transformed into a library call" | |
23564 | msgstr "Activa la distribución de bucles por patrones transformados en una llamada a biblioteca" | |
23565 | ||
23566 | -#: common.opt:1990 | |
23567 | +#: common.opt:1987 | |
23568 | msgid "Enable loop invariant motion on trees" | |
23569 | msgstr "Permite el movimiento invariante de bucles en árboles" | |
23570 | ||
23571 | -#: common.opt:1994 | |
23572 | +#: common.opt:1991 | |
23573 | msgid "Enable loop interchange transforms. Same as -floop-interchange" | |
23574 | msgstr "Activa las transformaciones de intercambio de bucle. Igual que -floop-interchange" | |
23575 | ||
23576 | -#: common.opt:1998 | |
23577 | +#: common.opt:1995 | |
23578 | msgid "Create canonical induction variables in loops" | |
23579 | msgstr "Crea variables de inducción canónica en los bucles" | |
23580 | ||
23581 | -#: common.opt:2002 | |
23582 | +#: common.opt:1999 | |
23583 | msgid "Enable loop optimizations on tree level" | |
23584 | msgstr "Activa las optimizaciones de bucles a nivel de árbol" | |
23585 | ||
23586 | -#: common.opt:2006 | |
23587 | +#: common.opt:2003 | |
23588 | msgid "Enable automatic parallelization of loops" | |
23589 | msgstr "Activa la paralelización automática de bucles" | |
23590 | ||
23591 | -#: common.opt:2010 | |
23592 | +#: common.opt:2007 | |
23593 | msgid "Enable hoisting loads from conditional pointers." | |
23594 | msgstr "Activa las cargas de elevación de punteros condicionales." | |
23595 | ||
23596 | -#: common.opt:2014 | |
23597 | +#: common.opt:2011 | |
23598 | msgid "Enable SSA-PRE optimization on trees" | |
23599 | msgstr "Activa las optimizaciones SSA-PRE en árboles" | |
23600 | ||
23601 | -#: common.opt:2018 | |
23602 | +#: common.opt:2015 | |
23603 | msgid "Perform function-local points-to analysis on trees." | |
23604 | msgstr "Realiza el análisis puntero-a función-local en árboles." | |
23605 | ||
23606 | -#: common.opt:2022 | |
23607 | +#: common.opt:2019 | |
23608 | msgid "Enable reassociation on tree level" | |
23609 | msgstr "Activa la reasociación a nivel de árbol" | |
23610 | ||
23611 | -#: common.opt:2030 | |
23612 | +#: common.opt:2027 | |
23613 | msgid "Enable SSA code sinking on trees" | |
23614 | msgstr "Activa el hundimiento de código SSA en árboles" | |
23615 | ||
23616 | -#: common.opt:2034 | |
23617 | +#: common.opt:2031 | |
23618 | msgid "Perform scalar replacement of aggregates" | |
23619 | msgstr "Realiza el reemplazo escalar de agregados" | |
23620 | ||
23621 | -#: common.opt:2038 | |
23622 | +#: common.opt:2035 | |
23623 | msgid "Replace temporary expressions in the SSA->normal pass" | |
23624 | msgstr "Reemplaza expresiones temporales en el paso SSA->normal" | |
23625 | ||
23626 | -#: common.opt:2042 | |
23627 | +#: common.opt:2039 | |
23628 | msgid "Perform live range splitting during the SSA->normal pass" | |
23629 | msgstr "Realizar la división de rango vivo durante el paso SSA->normal" | |
23630 | ||
23631 | -#: common.opt:2046 | |
23632 | +#: common.opt:2043 | |
23633 | msgid "Perform Value Range Propagation on trees" | |
23634 | msgstr "Realiza la Propagación de Rango Valor en árboles" | |
23635 | ||
23636 | -#: common.opt:2050 | |
23637 | +#: common.opt:2047 | |
23638 | msgid "Compile whole compilation unit at a time" | |
23639 | msgstr "Compila la unidad de compilación completa a la vez" | |
23640 | ||
23641 | -#: common.opt:2054 | |
23642 | +#: common.opt:2051 | |
23643 | msgid "Perform loop unrolling when iteration count is known" | |
23644 | msgstr "Realiza el desenrollamiento del bucle cuando se conoce la cuenta de iteración" | |
23645 | ||
23646 | -#: common.opt:2058 | |
23647 | +#: common.opt:2055 | |
23648 | msgid "Perform loop unrolling for all loops" | |
23649 | msgstr "Realiza el desenrollamiento del bucle para todos los bucles" | |
23650 | ||
23651 | -#: common.opt:2065 | |
23652 | +#: common.opt:2062 | |
23653 | msgid "Allow loop optimizations to assume that the loops behave in normal way" | |
23654 | msgstr "Permite que las optimizaciones de bucle asuman que los bucles se comportan normalmente" | |
23655 | ||
23656 | -#: common.opt:2069 | |
23657 | +#: common.opt:2066 | |
23658 | msgid "Allow optimization for floating-point arithmetic which may change the" | |
23659 | msgstr "Permite la optimización para la aritmética de coma flotante la cual puede cambiar" | |
23660 | ||
23661 | -#: common.opt:2074 | |
23662 | +#: common.opt:2071 | |
23663 | msgid "Same as -fassociative-math for expressions which include division." | |
23664 | msgstr "Igual que -fassociative-math para las expresiones que incluyen división." | |
23665 | ||
23666 | -#: common.opt:2082 | |
23667 | +#: common.opt:2079 | |
23668 | msgid "Allow math optimizations that may violate IEEE or ISO standards" | |
23669 | msgstr "Permite optimizaciones matemáticas que pueden violar los estándares IEEE ó ISO" | |
23670 | ||
23671 | -#: common.opt:2086 | |
23672 | +#: common.opt:2083 | |
23673 | msgid "Perform loop unswitching" | |
23674 | msgstr "Realiza la eliminación de opciones de bucle" | |
23675 | ||
23676 | -#: common.opt:2090 | |
23677 | +#: common.opt:2087 | |
23678 | msgid "Just generate unwind tables for exception handling" | |
23679 | msgstr "Sólo genera tablas de desenredo para manejo de excepciones" | |
23680 | ||
23681 | -#: common.opt:2102 | |
23682 | +#: common.opt:2099 | |
23683 | msgid "Perform variable tracking" | |
23684 | msgstr "Realiza seguimiento de variables" | |
23685 | ||
23686 | -#: common.opt:2110 | |
23687 | +#: common.opt:2107 | |
23688 | msgid "Perform variable tracking by annotating assignments" | |
23689 | msgstr "Realiza seguimiento de variables con asignación de anotaciones" | |
23690 | ||
23691 | -#: common.opt:2116 | |
23692 | +#: common.opt:2113 | |
23693 | msgid "Toggle -fvar-tracking-assignments" | |
23694 | msgstr "Cambia -fvar-tracking-assignments" | |
23695 | ||
23696 | -#: common.opt:2120 | |
23697 | +#: common.opt:2117 | |
23698 | msgid "Perform variable tracking and also tag variables that are uninitialized" | |
23699 | msgstr "Realiza el seguimiento de variables y también marca las variables que no se inicializaron" | |
23700 | ||
23701 | -#: common.opt:2124 | |
23702 | +#: common.opt:2121 | |
23703 | msgid "Enable loop vectorization on trees" | |
23704 | msgstr "Activa la vectorización de bucles en árboles" | |
23705 | ||
23706 | -#: common.opt:2128 | |
23707 | +#: common.opt:2125 | |
23708 | msgid "Enable basic block vectorization (SLP) on trees" | |
23709 | msgstr "Activa la vectorización de bloque básico (SLP) en árboles" | |
23710 | ||
23711 | -#: common.opt:2132 | |
23712 | +#: common.opt:2129 | |
23713 | msgid "Enable use of cost model in vectorization" | |
23714 | msgstr "Activa el uso del modelo costo en la vectorización" | |
23715 | ||
23716 | -#: common.opt:2136 | |
23717 | +#: common.opt:2133 | |
23718 | msgid "Enable loop versioning when doing loop vectorization on trees" | |
23719 | msgstr "Activa las versiones de bucles cuando se hace vectorización de bucles en árboles" | |
23720 | ||
23721 | -#: common.opt:2140 | |
23722 | +#: common.opt:2137 | |
23723 | msgid "-ftree-vectorizer-verbose=<number>\tSet the verbosity level of the vectorizer" | |
23724 | msgstr "-ftree-vectorizer-verbose=<número>\tEstablece el nivel de detalle del vectorizador" | |
23725 | ||
23726 | -#: common.opt:2144 | |
23727 | +#: common.opt:2141 | |
23728 | msgid "Enable copy propagation of scalar-evolution information." | |
23729 | msgstr "Activa la propagación de copia de la información escalar-evolución." | |
23730 | ||
23731 | -#: common.opt:2154 | |
23732 | +#: common.opt:2151 | |
23733 | msgid "Add extra commentary to assembler output" | |
23734 | msgstr "Agrega comentarios extra a la salida de ensamblador" | |
23735 | ||
23736 | -#: common.opt:2158 | |
23737 | +#: common.opt:2155 | |
23738 | msgid "-fvisibility=[default|internal|hidden|protected]\tSet the default symbol visibility" | |
23739 | msgstr "-fvisibility=[default|internal|hidden|protected]\tEstablece la visibilidad de símbolos por defecto" | |
23740 | ||
23741 | -#: common.opt:2161 | |
23742 | +#: common.opt:2158 | |
23743 | #, c-format | |
23744 | msgid "unrecognized visibility value %qs" | |
23745 | msgstr "no se reconoce el valor de visibilidad %qs" | |
23746 | ||
23747 | -#: common.opt:2177 | |
23748 | +#: common.opt:2174 | |
23749 | msgid "Use expression value profiles in optimizations" | |
23750 | msgstr "Usa perfiles de valor de expresión en las optimizaciones" | |
23751 | ||
23752 | -#: common.opt:2181 | |
23753 | +#: common.opt:2178 | |
23754 | msgid "Construct webs and split unrelated uses of single variable" | |
23755 | msgstr "Construye redes y divide usos no relacionados de una sola variable" | |
23756 | ||
23757 | -#: common.opt:2185 | |
23758 | +#: common.opt:2182 | |
23759 | msgid "Enable conditional dead code elimination for builtin calls" | |
23760 | msgstr "Activa la eliminación de código muerto condicional para llamadas internas" | |
23761 | ||
23762 | -#: common.opt:2189 | |
23763 | +#: common.opt:2186 | |
23764 | msgid "Perform whole program optimizations" | |
23765 | msgstr "Realiza optimizaciones del programa completo" | |
23766 | ||
23767 | # wraps around? No entiendo bien. cfuga | |
23768 | -#: common.opt:2193 | |
23769 | +#: common.opt:2190 | |
23770 | msgid "Assume signed arithmetic overflow wraps around" | |
23771 | msgstr "Asume que el desbordamiento aritmético con signo se envuelve" | |
23772 | ||
23773 | -#: common.opt:2197 | |
23774 | +#: common.opt:2194 | |
23775 | msgid "Put zero initialized data in the bss section" | |
23776 | msgstr "Pone los datos inicializados a cero en la sección bss" | |
23777 | ||
23778 | -#: common.opt:2201 | |
23779 | +#: common.opt:2198 | |
23780 | msgid "Generate debug information in default format" | |
23781 | msgstr "Genera información de depuración en el formato por defecto" | |
23782 | ||
23783 | -#: common.opt:2205 | |
23784 | +#: common.opt:2202 | |
23785 | msgid "Generate debug information in COFF format" | |
23786 | msgstr "Genera información de depuración en el formato COFF" | |
23787 | ||
23788 | -#: common.opt:2209 | |
23789 | +#: common.opt:2206 | |
23790 | msgid "Generate debug information in DWARF v2 (or later) format" | |
23791 | msgstr "Genera información de depuración en el formato DWARF v2 (o posterior)" | |
23792 | ||
23793 | -#: common.opt:2213 | |
23794 | +#: common.opt:2210 | |
23795 | msgid "Generate debug information in default extended format" | |
23796 | msgstr "Genera información de depuración en el formato extendido por defecto" | |
23797 | ||
23798 | -#: common.opt:2217 | |
23799 | +#: common.opt:2214 | |
23800 | msgid "Don't record gcc command line switches in DWARF DW_AT_producer." | |
23801 | msgstr "No guarda las opciones de la línea de órdenes de gcc en DW_AT_producer de DWARF." | |
23802 | ||
23803 | -#: common.opt:2221 | |
23804 | +#: common.opt:2218 | |
23805 | msgid "Record gcc command line switches in DWARF DW_AT_producer." | |
23806 | msgstr "Guarda las opciones de la línea de órdenes de gcc en DW_AT_producer de DWARF." | |
23807 | ||
23808 | -#: common.opt:2225 | |
23809 | +#: common.opt:2222 | |
23810 | msgid "Generate debug information in STABS format" | |
23811 | msgstr "Genera información de depuración en el formato STABS" | |
23812 | ||
23813 | -#: common.opt:2229 | |
23814 | +#: common.opt:2226 | |
23815 | msgid "Generate debug information in extended STABS format" | |
23816 | msgstr "Genera información de depuración en el formato STABS extendido" | |
23817 | ||
23818 | -#: common.opt:2233 | |
23819 | +#: common.opt:2230 | |
23820 | msgid "Emit DWARF additions beyond selected version" | |
23821 | msgstr "Emite adiciones DWARF más allá de la versión seleccionada" | |
23822 | ||
23823 | -#: common.opt:2237 | |
23824 | +#: common.opt:2234 | |
23825 | msgid "Don't emit DWARF additions beyond selected version" | |
23826 | msgstr "No emite adiciones DWARF más allá de la versión seleccionada" | |
23827 | ||
23828 | -#: common.opt:2241 | |
23829 | +#: common.opt:2238 | |
23830 | msgid "Toggle debug information generation" | |
23831 | msgstr "Cambia la generación de información de depuración" | |
23832 | ||
23833 | -#: common.opt:2245 | |
23834 | +#: common.opt:2242 | |
23835 | msgid "Generate debug information in VMS format" | |
23836 | msgstr "Genera información de depuración en el formato VMS" | |
23837 | ||
23838 | -#: common.opt:2249 | |
23839 | +#: common.opt:2246 | |
23840 | msgid "Generate debug information in XCOFF format" | |
23841 | msgstr "Genera información de depuración en el formato XCOFF" | |
23842 | ||
23843 | -#: common.opt:2253 | |
23844 | +#: common.opt:2250 | |
23845 | msgid "Generate debug information in extended XCOFF format" | |
23846 | msgstr "Genera información de depuración en el formato XCOFF extendido" | |
23847 | ||
23848 | -#: common.opt:2260 | |
23849 | +#: common.opt:2257 | |
23850 | msgid "-iplugindir=<dir>\tSet <dir> to be the default plugin directory" | |
23851 | msgstr "-iplugindir=<dir>\tDefine <dir> como el directorio de plugins por defecto" | |
23852 | ||
23853 | -#: common.opt:2282 | |
23854 | +#: common.opt:2279 | |
23855 | msgid "-o <file>\tPlace output into <file>" | |
23856 | msgstr "-o <fichero>\tColoca la salida en el <fichero>" | |
23857 | ||
23858 | -#: common.opt:2286 | |
23859 | +#: common.opt:2283 | |
23860 | msgid "Enable function profiling" | |
23861 | msgstr "Activa el análisis de perfil de las funciones" | |
23862 | ||
23863 | -#: common.opt:2293 | |
23864 | +#: common.opt:2290 | |
23865 | msgid "Issue warnings needed for strict compliance to the standard" | |
23866 | msgstr "Activa los avisos necesarios para cumplir estrictamente con el estándar" | |
23867 | ||
23868 | -#: common.opt:2297 | |
23869 | +#: common.opt:2294 | |
23870 | msgid "Like -pedantic but issue them as errors" | |
23871 | msgstr "Como -pedantic pero los muestra como errores" | |
23872 | ||
23873 | -#: common.opt:2334 | |
23874 | +#: common.opt:2331 | |
23875 | msgid "Do not display functions compiled or elapsed time" | |
23876 | msgstr "No muestra las funciones compiladas o el tiempo transcurrido" | |
23877 | ||
23878 | -#: common.opt:2366 | |
23879 | +#: common.opt:2363 | |
23880 | msgid "Enable verbose output" | |
23881 | msgstr "Activa la salida detallada" | |
23882 | ||
23883 | -#: common.opt:2370 | |
23884 | +#: common.opt:2367 | |
23885 | msgid "Display the compiler's version" | |
23886 | msgstr "Muestra la versión del compilador" | |
23887 | ||
23888 | -#: common.opt:2374 | |
23889 | +#: common.opt:2371 | |
23890 | msgid "Suppress warnings" | |
23891 | msgstr "Suprime avisos" | |
23892 | ||
23893 | -#: common.opt:2384 | |
23894 | +#: common.opt:2381 | |
23895 | msgid "Create a shared library" | |
23896 | msgstr "Crea una biblioteca compartida" | |
23897 | ||
23898 | -#: common.opt:2417 | |
23899 | +#: common.opt:2414 | |
23900 | msgid "Create a position independent executable" | |
23901 | msgstr "Genera un ejecutable independiente de posición" | |
23902 | ||
23903 | -#: go/gofrontend/expressions.cc:912 | |
23904 | +#: go/gofrontend/expressions.cc:917 | |
23905 | msgid "invalid use of type" | |
23906 | msgstr "uso inválido del tipo" | |
23907 | ||
23908 | -#: go/gofrontend/expressions.cc:2273 go/gofrontend/expressions.cc:2991 | |
23909 | +#: go/gofrontend/expressions.cc:2278 go/gofrontend/expressions.cc:2996 | |
23910 | msgid "floating point constant truncated to integer" | |
23911 | msgstr "se truncó la constante de coma flotante a entero" | |
23912 | ||
23913 | -#: go/gofrontend/expressions.cc:2871 go/gofrontend/expressions.cc:2941 | |
23914 | -#: go/gofrontend/expressions.cc:2957 | |
23915 | +#: go/gofrontend/expressions.cc:2876 go/gofrontend/expressions.cc:2946 | |
23916 | +#: go/gofrontend/expressions.cc:2962 | |
23917 | msgid "constant refers to itself" | |
23918 | msgstr "la constante se refiere a sí misma" | |
23919 | ||
23920 | -#: go/gofrontend/expressions.cc:4537 | |
23921 | +#: go/gofrontend/expressions.cc:4557 | |
23922 | msgid "expected numeric type" | |
23923 | msgstr "se esperaba un tipo numérico" | |
23924 | ||
23925 | -#: go/gofrontend/expressions.cc:4544 | |
23926 | +#: go/gofrontend/expressions.cc:4564 | |
23927 | msgid "expected integer or boolean type" | |
23928 | msgstr "se esperaba un tipo entero o booleano" | |
23929 | ||
23930 | -#: go/gofrontend/expressions.cc:4551 | |
23931 | +#: go/gofrontend/expressions.cc:4571 | |
23932 | msgid "invalid operand for unary %<&%>" | |
23933 | msgstr "operando inválido para el unario %<&%>" | |
23934 | ||
23935 | -#: go/gofrontend/expressions.cc:4560 | |
23936 | +#: go/gofrontend/expressions.cc:4580 | |
23937 | msgid "expected pointer" | |
23938 | msgstr "se esperaba un puntero" | |
23939 | ||
23940 | -#: go/gofrontend/expressions.cc:6258 go/gofrontend/expressions.cc:6509 | |
23941 | -#: go/gofrontend/expressions.cc:6527 | |
23942 | +#: go/gofrontend/expressions.cc:6316 go/gofrontend/expressions.cc:6567 | |
23943 | +#: go/gofrontend/expressions.cc:6585 | |
23944 | msgid "incompatible types in binary expression" | |
23945 | msgstr "tipos incompatibles en la expresión binaria" | |
23946 | ||
23947 | -#: go/gofrontend/expressions.cc:6541 | |
23948 | +#: go/gofrontend/expressions.cc:6599 | |
23949 | msgid "shift of non-integer operand" | |
23950 | msgstr "desplazamiento de un operando que no es entero" | |
23951 | ||
23952 | -#: go/gofrontend/expressions.cc:6546 | |
23953 | +#: go/gofrontend/expressions.cc:6604 | |
23954 | msgid "shift count not unsigned integer" | |
23955 | msgstr "la cuenta de desplazamiento no es un entero sin signo" | |
23956 | ||
23957 | -#: go/gofrontend/expressions.cc:6556 | |
23958 | +#: go/gofrontend/expressions.cc:6614 | |
23959 | msgid "negative shift count" | |
23960 | msgstr "cuenta de desplazamiento negativa" | |
23961 | ||
23962 | -#: go/gofrontend/expressions.cc:7264 | |
23963 | +#: go/gofrontend/expressions.cc:7322 | |
23964 | msgid "object is not a method" | |
23965 | msgstr "el objeto no es un método" | |
23966 | ||
23967 | -#: go/gofrontend/expressions.cc:7273 | |
23968 | +#: go/gofrontend/expressions.cc:7331 | |
23969 | msgid "method type does not match object type" | |
23970 | msgstr "el tipo de método no coincide con el tipo de objeto" | |
23971 | ||
23972 | -#: go/gofrontend/expressions.cc:7553 | |
23973 | +#: go/gofrontend/expressions.cc:7611 | |
23974 | msgid "invalid use of %<...%> with builtin function" | |
23975 | msgstr "uso inválido de %<..%> con la función interna" | |
23976 | ||
23977 | -#: go/gofrontend/expressions.cc:7615 go/gofrontend/expressions.cc:7669 | |
23978 | -#: go/gofrontend/expressions.cc:7714 go/gofrontend/expressions.cc:8421 | |
23979 | -#: go/gofrontend/expressions.cc:8565 go/gofrontend/expressions.cc:8608 | |
23980 | -#: go/gofrontend/expressions.cc:8657 go/gofrontend/expressions.cc:9829 | |
23981 | -#: go/gofrontend/expressions.cc:9848 | |
23982 | +#: go/gofrontend/expressions.cc:7673 go/gofrontend/expressions.cc:7730 | |
23983 | +#: go/gofrontend/expressions.cc:7775 go/gofrontend/expressions.cc:8502 | |
23984 | +#: go/gofrontend/expressions.cc:8647 go/gofrontend/expressions.cc:8690 | |
23985 | +#: go/gofrontend/expressions.cc:8746 go/gofrontend/expressions.cc:9924 | |
23986 | +#: go/gofrontend/expressions.cc:9943 | |
23987 | msgid "not enough arguments" | |
23988 | msgstr "faltan argumentos" | |
23989 | ||
23990 | -#: go/gofrontend/expressions.cc:7617 go/gofrontend/expressions.cc:7671 | |
23991 | -#: go/gofrontend/expressions.cc:8426 go/gofrontend/expressions.cc:8548 | |
23992 | -#: go/gofrontend/expressions.cc:8570 go/gofrontend/expressions.cc:8613 | |
23993 | -#: go/gofrontend/expressions.cc:8659 go/gofrontend/expressions.cc:9546 | |
23994 | -#: go/gofrontend/expressions.cc:9834 go/gofrontend/expressions.cc:9855 | |
23995 | +#: go/gofrontend/expressions.cc:7675 go/gofrontend/expressions.cc:7732 | |
23996 | +#: go/gofrontend/expressions.cc:8507 go/gofrontend/expressions.cc:8630 | |
23997 | +#: go/gofrontend/expressions.cc:8652 go/gofrontend/expressions.cc:8695 | |
23998 | +#: go/gofrontend/expressions.cc:8748 go/gofrontend/expressions.cc:9638 | |
23999 | +#: go/gofrontend/expressions.cc:9929 go/gofrontend/expressions.cc:9950 | |
24000 | msgid "too many arguments" | |
24001 | msgstr "demasiados argumentos" | |
24002 | ||
24003 | -#: go/gofrontend/expressions.cc:7673 | |
24004 | +#: go/gofrontend/expressions.cc:7734 | |
24005 | msgid "argument 1 must be a map" | |
24006 | msgstr "el argumento 1 debe ser un mapa" | |
24007 | ||
24008 | -#: go/gofrontend/expressions.cc:7740 | |
24009 | +#: go/gofrontend/expressions.cc:7801 | |
24010 | msgid "invalid type for make function" | |
24011 | msgstr "tipo inválido para la función make" | |
24012 | ||
24013 | -#: go/gofrontend/expressions.cc:7750 | |
24014 | +#: go/gofrontend/expressions.cc:7815 | |
24015 | msgid "length required when allocating a slice" | |
24016 | msgstr "se requiere longitud al alojar una rebanada" | |
24017 | ||
24018 | -#: go/gofrontend/expressions.cc:7764 | |
24019 | +#: go/gofrontend/expressions.cc:7829 | |
24020 | msgid "bad size for make" | |
24021 | msgstr "tamaño erróneo para make" | |
24022 | ||
24023 | -#: go/gofrontend/expressions.cc:7776 | |
24024 | +#: go/gofrontend/expressions.cc:7844 | |
24025 | msgid "bad capacity when making slice" | |
24026 | msgstr "capacidad errónea al crear la rebanada" | |
24027 | ||
24028 | -#: go/gofrontend/expressions.cc:7784 | |
24029 | +#: go/gofrontend/expressions.cc:7855 | |
24030 | msgid "too many arguments to make" | |
24031 | msgstr "demasiados argumentos para make" | |
24032 | ||
24033 | -#: go/gofrontend/expressions.cc:8467 | |
24034 | +#: go/gofrontend/expressions.cc:8549 | |
24035 | msgid "argument must be array or slice or channel" | |
24036 | msgstr "el argumento debe ser matriz o rebanada o canal" | |
24037 | ||
24038 | -#: go/gofrontend/expressions.cc:8477 | |
24039 | +#: go/gofrontend/expressions.cc:8559 | |
24040 | msgid "argument must be string or array or slice or map or channel" | |
24041 | msgstr "el argumento debe ser cadena o matriz o rebanada o mapa o canal" | |
24042 | ||
24043 | -#: go/gofrontend/expressions.cc:8523 | |
24044 | +#: go/gofrontend/expressions.cc:8605 | |
24045 | msgid "unsupported argument type to builtin function" | |
24046 | msgstr "no se admite el tipo de argumento para la función interna" | |
24047 | ||
24048 | -#: go/gofrontend/expressions.cc:8534 | |
24049 | +#: go/gofrontend/expressions.cc:8616 | |
24050 | msgid "argument must be channel" | |
24051 | msgstr "el argumento debe ser canal" | |
24052 | ||
24053 | -#: go/gofrontend/expressions.cc:8536 | |
24054 | +#: go/gofrontend/expressions.cc:8618 | |
24055 | msgid "cannot close receive-only channel" | |
24056 | msgstr "no se puede cerrar un canal de sólo recepción" | |
24057 | ||
24058 | -#: go/gofrontend/expressions.cc:8556 | |
24059 | +#: go/gofrontend/expressions.cc:8638 | |
24060 | msgid "argument must be a field reference" | |
24061 | msgstr "el argumento debe ser una referencia de campo" | |
24062 | ||
24063 | -#: go/gofrontend/expressions.cc:8583 | |
24064 | +#: go/gofrontend/expressions.cc:8665 | |
24065 | msgid "left argument must be a slice" | |
24066 | msgstr "el argumento izquierdo debe ser una rebanada" | |
24067 | ||
24068 | -#: go/gofrontend/expressions.cc:8591 | |
24069 | +#: go/gofrontend/expressions.cc:8673 | |
24070 | msgid "element types must be the same" | |
24071 | msgstr "los tipos de elemento deben ser el mismo" | |
24072 | ||
24073 | -#: go/gofrontend/expressions.cc:8596 | |
24074 | +#: go/gofrontend/expressions.cc:8678 | |
24075 | msgid "first argument must be []byte" | |
24076 | msgstr "el primer argumento debe ser []byte" | |
24077 | ||
24078 | -#: go/gofrontend/expressions.cc:8599 | |
24079 | +#: go/gofrontend/expressions.cc:8681 | |
24080 | msgid "second argument must be slice or string" | |
24081 | msgstr "el segundo argumento debe ser una rebanada o una cadena" | |
24082 | ||
24083 | -#: go/gofrontend/expressions.cc:8632 | |
24084 | -msgid "arguments 1 and 2 have different types" | |
24085 | -msgstr "los argumentos 1 y 2 tienen tipos diferentes" | |
24086 | +#: go/gofrontend/expressions.cc:8722 | |
24087 | +msgid "argument 2 has invalid type" | |
24088 | +msgstr "el argumento 2 es de tipo inválido" | |
24089 | ||
24090 | -#: go/gofrontend/expressions.cc:8649 | |
24091 | +#: go/gofrontend/expressions.cc:8738 | |
24092 | msgid "argument must have complex type" | |
24093 | msgstr "el argumento debe tener tipo complejo" | |
24094 | ||
24095 | -#: go/gofrontend/expressions.cc:8667 | |
24096 | +#: go/gofrontend/expressions.cc:8756 | |
24097 | msgid "complex arguments must have identical types" | |
24098 | msgstr "los argumentos complejos deben tener tipos idénticos" | |
24099 | ||
24100 | -#: go/gofrontend/expressions.cc:8669 | |
24101 | +#: go/gofrontend/expressions.cc:8758 | |
24102 | msgid "complex arguments must have floating-point type" | |
24103 | msgstr "los argumentos complejos deben tener tipo de coma flotante" | |
24104 | ||
24105 | -#: go/gofrontend/expressions.cc:9792 go/gofrontend/expressions.cc:10217 | |
24106 | +#: go/gofrontend/expressions.cc:9887 go/gofrontend/expressions.cc:10318 | |
24107 | msgid "expected function" | |
24108 | msgstr "se esperaba función" | |
24109 | ||
24110 | -#: go/gofrontend/expressions.cc:9811 | |
24111 | +#: go/gofrontend/expressions.cc:9906 | |
24112 | msgid "incompatible type for receiver" | |
24113 | msgstr "tipo incompatible para el receptor" | |
24114 | ||
24115 | -#: go/gofrontend/expressions.cc:10226 go/gofrontend/expressions.cc:10240 | |
24116 | +#: go/gofrontend/expressions.cc:10327 go/gofrontend/expressions.cc:10341 | |
24117 | msgid "number of results does not match number of values" | |
24118 | msgstr "el número de resultados no coincide con el número de valores" | |
24119 | ||
24120 | -#: go/gofrontend/expressions.cc:10535 go/gofrontend/expressions.cc:10943 | |
24121 | +#: go/gofrontend/expressions.cc:10645 go/gofrontend/expressions.cc:11065 | |
24122 | msgid "index must be integer" | |
24123 | msgstr "el índice debe ser entero" | |
24124 | ||
24125 | -#: go/gofrontend/expressions.cc:10541 go/gofrontend/expressions.cc:10947 | |
24126 | +#: go/gofrontend/expressions.cc:10651 go/gofrontend/expressions.cc:11069 | |
24127 | msgid "slice end must be integer" | |
24128 | msgstr "el final de la rebanada debe ser entero" | |
24129 | ||
24130 | -#: go/gofrontend/expressions.cc:10596 | |
24131 | +#: go/gofrontend/expressions.cc:10706 | |
24132 | msgid "slice of unaddressable value" | |
24133 | msgstr "rebanada con valor que no es direccionable" | |
24134 | ||
24135 | -#: go/gofrontend/expressions.cc:11175 | |
24136 | +#: go/gofrontend/expressions.cc:11297 | |
24137 | msgid "incompatible type for map index" | |
24138 | msgstr "tipo incompatibles para el índice de mapa" | |
24139 | ||
24140 | -#: go/gofrontend/expressions.cc:11523 | |
24141 | +#: go/gofrontend/expressions.cc:11645 | |
24142 | msgid "expected interface or pointer to interface" | |
24143 | msgstr "se esperaba interfaz o puntero a interfaz" | |
24144 | ||
24145 | -#: go/gofrontend/expressions.cc:12049 | |
24146 | +#: go/gofrontend/expressions.cc:12182 | |
24147 | msgid "too many expressions for struct" | |
24148 | msgstr "demasiadas expresiones para struct" | |
24149 | ||
24150 | -#: go/gofrontend/expressions.cc:12062 | |
24151 | +#: go/gofrontend/expressions.cc:12195 | |
24152 | msgid "too few expressions for struct" | |
24153 | msgstr "faltan expresiones para struct" | |
24154 | ||
24155 | -#: go/gofrontend/expressions.cc:12342 | |
24156 | +#: go/gofrontend/expressions.cc:12475 | |
24157 | msgid "too many elements in composite literal" | |
24158 | msgstr "demasiados elementos en la literal compuesta" | |
24159 | ||
24160 | -#: go/gofrontend/expressions.cc:13611 go/gofrontend/expressions.cc:13619 | |
24161 | +#: go/gofrontend/expressions.cc:13744 go/gofrontend/expressions.cc:13752 | |
24162 | msgid "invalid unsafe.Pointer conversion" | |
24163 | msgstr "conversión unsafe.Pointer inválida" | |
24164 | ||
24165 | -#: go/gofrontend/expressions.cc:13624 go/gofrontend/statements.cc:1539 | |
24166 | +#: go/gofrontend/expressions.cc:13757 go/gofrontend/statements.cc:1539 | |
24167 | msgid "type assertion only valid for interface types" | |
24168 | msgstr "la aserción de tipo sólo es válida para los tipos de interfaz" | |
24169 | ||
24170 | -#: go/gofrontend/expressions.cc:13636 | |
24171 | +#: go/gofrontend/expressions.cc:13769 | |
24172 | msgid "impossible type assertion: type does not implement interface" | |
24173 | msgstr "aserción de tipo imposible: el tipo no implementa interfaz" | |
24174 | ||
24175 | -#: go/gofrontend/expressions.cc:13820 go/gofrontend/statements.cc:1387 | |
24176 | +#: go/gofrontend/expressions.cc:13953 go/gofrontend/statements.cc:1387 | |
24177 | msgid "expected channel" | |
24178 | msgstr "se esperaba canal" | |
24179 | ||
24180 | -#: go/gofrontend/expressions.cc:13825 go/gofrontend/statements.cc:1392 | |
24181 | +#: go/gofrontend/expressions.cc:13958 go/gofrontend/statements.cc:1392 | |
24182 | msgid "invalid receive on send-only channel" | |
24183 | msgstr "recepción inválida en canal de sólo envío" | |
24184 | ||
24185 | @@ -11888,117 +12033,117 @@ | |
24186 | msgid "range clause must have array, slice, string, map, or channel type" | |
24187 | msgstr "la cláusula de rango debe tener tipo matriz, rebanada, cadena, mapa o canal" | |
24188 | ||
24189 | -#: go/gofrontend/types.cc:509 | |
24190 | +#: go/gofrontend/types.cc:527 | |
24191 | msgid "invalid comparison of non-ordered type" | |
24192 | msgstr "comparación inválida de tipo que no es ordenado" | |
24193 | ||
24194 | -#: go/gofrontend/types.cc:525 | |
24195 | +#: go/gofrontend/types.cc:543 | |
24196 | msgid "slice can only be compared to nil" | |
24197 | msgstr "la rebanada sólo se puede comparar con nil" | |
24198 | ||
24199 | -#: go/gofrontend/types.cc:527 | |
24200 | +#: go/gofrontend/types.cc:545 | |
24201 | msgid "map can only be compared to nil" | |
24202 | msgstr "el mapa sólo se puede comparar con nil" | |
24203 | ||
24204 | -#: go/gofrontend/types.cc:529 | |
24205 | +#: go/gofrontend/types.cc:547 | |
24206 | msgid "func can only be compared to nil" | |
24207 | msgstr "la función sólo se puede comparar con nil" | |
24208 | ||
24209 | -#: go/gofrontend/types.cc:535 | |
24210 | +#: go/gofrontend/types.cc:553 | |
24211 | #, c-format | |
24212 | msgid "invalid operation (%s)" | |
24213 | msgstr "operación inválida (%s)" | |
24214 | ||
24215 | -#: go/gofrontend/types.cc:558 | |
24216 | +#: go/gofrontend/types.cc:576 | |
24217 | msgid "invalid comparison of non-comparable type" | |
24218 | msgstr "comparación inválida de tipo que no es comparable" | |
24219 | ||
24220 | -#: go/gofrontend/types.cc:576 | |
24221 | +#: go/gofrontend/types.cc:594 | |
24222 | msgid "invalid comparison of non-comparable struct" | |
24223 | msgstr "comparación inválida de struct que no es comparable" | |
24224 | ||
24225 | -#: go/gofrontend/types.cc:587 | |
24226 | +#: go/gofrontend/types.cc:605 | |
24227 | msgid "invalid comparison of non-comparable array" | |
24228 | msgstr "comparación inválida de matriz que no es comparable" | |
24229 | ||
24230 | -#: go/gofrontend/types.cc:699 | |
24231 | +#: go/gofrontend/types.cc:636 | |
24232 | +msgid "multiple value function call in single value context" | |
24233 | +msgstr "llamada a función de valor múltiple en un contexto de un solo valor" | |
24234 | + | |
24235 | +#: go/gofrontend/types.cc:723 | |
24236 | msgid "need explicit conversion" | |
24237 | msgstr "necesita conversión implícita" | |
24238 | ||
24239 | -#: go/gofrontend/types.cc:701 | |
24240 | -msgid "multiple value function call in single value context" | |
24241 | -msgstr "llamada a función de valor múltiple en un contexto de un solo valor" | |
24242 | - | |
24243 | -#: go/gofrontend/types.cc:709 | |
24244 | +#: go/gofrontend/types.cc:730 | |
24245 | #, c-format | |
24246 | msgid "cannot use type %s as type %s" | |
24247 | msgstr "no se puede usar el tipo %s como tipo %s" | |
24248 | ||
24249 | -#: go/gofrontend/types.cc:2980 | |
24250 | +#: go/gofrontend/types.cc:3205 | |
24251 | msgid "different receiver types" | |
24252 | msgstr "tipos de receptor diferentes" | |
24253 | ||
24254 | -#: go/gofrontend/types.cc:3000 go/gofrontend/types.cc:3013 | |
24255 | -#: go/gofrontend/types.cc:3028 | |
24256 | +#: go/gofrontend/types.cc:3225 go/gofrontend/types.cc:3238 | |
24257 | +#: go/gofrontend/types.cc:3253 | |
24258 | msgid "different number of parameters" | |
24259 | msgstr "número diferente de parámetros" | |
24260 | ||
24261 | -#: go/gofrontend/types.cc:3021 | |
24262 | +#: go/gofrontend/types.cc:3246 | |
24263 | msgid "different parameter types" | |
24264 | msgstr "tipos de parámetro diferentes" | |
24265 | ||
24266 | -#: go/gofrontend/types.cc:3036 | |
24267 | +#: go/gofrontend/types.cc:3261 | |
24268 | msgid "different varargs" | |
24269 | msgstr "varargs diferentes" | |
24270 | ||
24271 | -#: go/gofrontend/types.cc:3045 go/gofrontend/types.cc:3058 | |
24272 | -#: go/gofrontend/types.cc:3073 | |
24273 | +#: go/gofrontend/types.cc:3270 go/gofrontend/types.cc:3283 | |
24274 | +#: go/gofrontend/types.cc:3298 | |
24275 | msgid "different number of results" | |
24276 | msgstr "número diferente de resultados" | |
24277 | ||
24278 | -#: go/gofrontend/types.cc:3066 | |
24279 | +#: go/gofrontend/types.cc:3291 | |
24280 | msgid "different result types" | |
24281 | msgstr "tipos de resultado diferentes" | |
24282 | ||
24283 | -#: go/gofrontend/types.cc:4054 | |
24284 | +#: go/gofrontend/types.cc:4247 | |
24285 | #, c-format | |
24286 | msgid "implicit assignment of %s%s%s hidden field %s%s%s" | |
24287 | msgstr "asignación implícita de %s%s%s campo oculto %s%s%s" | |
24288 | ||
24289 | -#: go/gofrontend/types.cc:6423 | |
24290 | +#: go/gofrontend/types.cc:6651 | |
24291 | #, c-format | |
24292 | msgid "need explicit conversion; missing method %s%s%s" | |
24293 | msgstr "se necesita conversión explícita; falta el método %s%s%s" | |
24294 | ||
24295 | -#: go/gofrontend/types.cc:6440 go/gofrontend/types.cc:6582 | |
24296 | +#: go/gofrontend/types.cc:6668 go/gofrontend/types.cc:6810 | |
24297 | #, c-format | |
24298 | msgid "incompatible type for method %s%s%s" | |
24299 | msgstr "tipo incompatible para el método %s%s%s" | |
24300 | ||
24301 | -#: go/gofrontend/types.cc:6444 go/gofrontend/types.cc:6586 | |
24302 | +#: go/gofrontend/types.cc:6672 go/gofrontend/types.cc:6814 | |
24303 | #, c-format | |
24304 | msgid "incompatible type for method %s%s%s (%s)" | |
24305 | msgstr "tipo incompatible para el método %s%s%s (%s)" | |
24306 | ||
24307 | -#: go/gofrontend/types.cc:6523 go/gofrontend/types.cc:6536 | |
24308 | +#: go/gofrontend/types.cc:6751 go/gofrontend/types.cc:6764 | |
24309 | msgid "pointer to interface type has no methods" | |
24310 | msgstr "el puntero a tipo de interfaz no tiene métodos" | |
24311 | ||
24312 | -#: go/gofrontend/types.cc:6525 go/gofrontend/types.cc:6538 | |
24313 | +#: go/gofrontend/types.cc:6753 go/gofrontend/types.cc:6766 | |
24314 | msgid "type has no methods" | |
24315 | msgstr "el tipo no tiene métodos" | |
24316 | ||
24317 | -#: go/gofrontend/types.cc:6559 | |
24318 | +#: go/gofrontend/types.cc:6787 | |
24319 | #, c-format | |
24320 | msgid "ambiguous method %s%s%s" | |
24321 | msgstr "método ambiguo %s%s%s" | |
24322 | ||
24323 | -#: go/gofrontend/types.cc:6562 | |
24324 | +#: go/gofrontend/types.cc:6790 | |
24325 | #, c-format | |
24326 | msgid "missing method %s%s%s" | |
24327 | msgstr "falta el método %s%s%s" | |
24328 | ||
24329 | -#: go/gofrontend/types.cc:6602 | |
24330 | +#: go/gofrontend/types.cc:6830 | |
24331 | #, c-format | |
24332 | msgid "method %s%s%s requires a pointer" | |
24333 | msgstr "el método %s%s%s requiere un puntero" | |
24334 | @@ -12065,150 +12210,150 @@ | |
24335 | msgid "invalid third argument to %<__builtin_prefetch%>; using zero" | |
24336 | msgstr "el tercer argumento para %<__builtin_prefetch%> es inválido; se usa cero" | |
24337 | ||
24338 | -#: builtins.c:4214 gimplify.c:2406 | |
24339 | +#: builtins.c:4243 gimplify.c:2407 | |
24340 | #, gcc-internal-format | |
24341 | msgid "too few arguments to function %<va_start%>" | |
24342 | msgstr "faltan argumentos para la función %<va_start%>" | |
24343 | ||
24344 | -#: builtins.c:4372 | |
24345 | +#: builtins.c:4401 | |
24346 | #, gcc-internal-format | |
24347 | msgid "first argument to %<va_arg%> not of type %<va_list%>" | |
24348 | msgstr "el primer argumento para %<va_arg%> no es del tipo %<va_list%>" | |
24349 | ||
24350 | -#: builtins.c:4388 | |
24351 | +#: builtins.c:4417 | |
24352 | #, gcc-internal-format | |
24353 | msgid "%qT is promoted to %qT when passed through %<...%>" | |
24354 | msgstr "%qT se promueve a %qT cuando pasa a través de %<...%>" | |
24355 | ||
24356 | -#: builtins.c:4393 | |
24357 | +#: builtins.c:4422 | |
24358 | #, gcc-internal-format | |
24359 | msgid "(so you should pass %qT not %qT to %<va_arg%>)" | |
24360 | msgstr "(así que debe pasar %qT y no %qT a %<va_arg%>)" | |
24361 | ||
24362 | #. We can, however, treat "undefined" any way we please. | |
24363 | #. Call abort to encourage the user to fix the program. | |
24364 | -#: builtins.c:4400 c-typeck.c:2787 | |
24365 | +#: builtins.c:4429 c-typeck.c:2787 | |
24366 | #, gcc-internal-format | |
24367 | msgid "if this code is reached, the program will abort" | |
24368 | msgstr "si se alcanza este código, el programa abortará" | |
24369 | ||
24370 | -#: builtins.c:4527 | |
24371 | +#: builtins.c:4556 | |
24372 | #, gcc-internal-format | |
24373 | msgid "invalid argument to %<__builtin_frame_address%>" | |
24374 | msgstr "argumento inválido para %<__builtin_frame_address%>" | |
24375 | ||
24376 | -#: builtins.c:4529 | |
24377 | +#: builtins.c:4558 | |
24378 | #, gcc-internal-format | |
24379 | msgid "invalid argument to %<__builtin_return_address%>" | |
24380 | msgstr "argumento inválido para %<__builtin_return_address%>" | |
24381 | ||
24382 | -#: builtins.c:4542 | |
24383 | +#: builtins.c:4571 | |
24384 | #, gcc-internal-format | |
24385 | msgid "unsupported argument to %<__builtin_frame_address%>" | |
24386 | msgstr "argumento no admitido para %<__builtin_frame_address%>" | |
24387 | ||
24388 | -#: builtins.c:4544 | |
24389 | +#: builtins.c:4573 | |
24390 | #, gcc-internal-format | |
24391 | msgid "unsupported argument to %<__builtin_return_address%>" | |
24392 | msgstr "argumento no admitido para %<__builtin_return_address%>" | |
24393 | ||
24394 | -#: builtins.c:4808 | |
24395 | +#: builtins.c:4837 | |
24396 | #, gcc-internal-format | |
24397 | msgid "both arguments to %<__builtin___clear_cache%> must be pointers" | |
24398 | msgstr "ambos argumentos de %<__builtin_clear_cache%> deben ser punteros" | |
24399 | ||
24400 | -#: builtins.c:4903 | |
24401 | +#: builtins.c:4937 | |
24402 | #, gcc-internal-format | |
24403 | msgid "trampoline generated for nested function %qD" | |
24404 | msgstr "se generó un trampolín para la función anidada %qD" | |
24405 | ||
24406 | -#: builtins.c:5198 builtins.c:5211 | |
24407 | +#: builtins.c:5233 builtins.c:5246 | |
24408 | #, gcc-internal-format | |
24409 | msgid "%qD changed semantics in GCC 4.4" | |
24410 | msgstr "%qD cambió su semántica en GCC 4.4" | |
24411 | ||
24412 | -#: builtins.c:5310 | |
24413 | +#: builtins.c:5345 | |
24414 | #, gcc-internal-format | |
24415 | msgid "invalid memory model argument to builtin" | |
24416 | msgstr "argumento de modelo de memoria inválido para la función interna" | |
24417 | ||
24418 | -#: builtins.c:5330 | |
24419 | +#: builtins.c:5365 | |
24420 | #, gcc-internal-format | |
24421 | msgid "invalid memory model for %<__atomic_exchange%>" | |
24422 | msgstr "modelo de memoria inválido para %<__atomic_exchange%>" | |
24423 | ||
24424 | -#: builtins.c:5366 | |
24425 | +#: builtins.c:5401 | |
24426 | #, gcc-internal-format | |
24427 | msgid "invalid failure memory model for %<__atomic_compare_exchange%>" | |
24428 | msgstr "falla de modelo de memoria inválido para %<__atomic_compare_exchange%>" | |
24429 | ||
24430 | -#: builtins.c:5372 | |
24431 | +#: builtins.c:5407 | |
24432 | #, gcc-internal-format | |
24433 | msgid "failure memory model cannot be stronger than success memory model for %<__atomic_compare_exchange%>" | |
24434 | msgstr "la falla de modelo de memoria no puede ser más fuerte que el modelo de memoria exitoso para %<__atomic_compare_exchange%>" | |
24435 | ||
24436 | -#: builtins.c:5418 | |
24437 | +#: builtins.c:5453 | |
24438 | #, gcc-internal-format | |
24439 | msgid "invalid memory model for %<__atomic_load%>" | |
24440 | msgstr "modelo de memoria inválido para %<__atomic_load%>" | |
24441 | ||
24442 | -#: builtins.c:5448 builtins.c:5554 | |
24443 | +#: builtins.c:5483 builtins.c:5589 | |
24444 | #, gcc-internal-format | |
24445 | msgid "invalid memory model for %<__atomic_store%>" | |
24446 | msgstr "modelo de memoria inválido para %<__atomic_store%>" | |
24447 | ||
24448 | -#: builtins.c:5663 | |
24449 | +#: builtins.c:5698 | |
24450 | #, gcc-internal-format | |
24451 | msgid "non-constant argument 1 to __atomic_always_lock_free" | |
24452 | msgstr "el argumento 1 para __atomic_always_lock_free no es una constante" | |
24453 | ||
24454 | -#: builtins.c:5705 | |
24455 | +#: builtins.c:5740 | |
24456 | #, gcc-internal-format | |
24457 | msgid "non-integer argument 1 to __atomic_is_lock_free" | |
24458 | msgstr "el argumento 1 para __atomic_is_lock_free no es un entero" | |
24459 | ||
24460 | #. All valid uses of __builtin_va_arg_pack () are removed during | |
24461 | #. inlining. | |
24462 | -#: builtins.c:5989 expr.c:9944 | |
24463 | +#: builtins.c:6023 expr.c:9989 | |
24464 | #, gcc-internal-format | |
24465 | msgid "%Kinvalid use of %<__builtin_va_arg_pack ()%>" | |
24466 | msgstr "%Kuso inválido de %<__builtin_va_arg_pack ()%>" | |
24467 | ||
24468 | #. All valid uses of __builtin_va_arg_pack_len () are removed during | |
24469 | #. inlining. | |
24470 | -#: builtins.c:5995 | |
24471 | +#: builtins.c:6029 | |
24472 | #, gcc-internal-format | |
24473 | msgid "%Kinvalid use of %<__builtin_va_arg_pack_len ()%>" | |
24474 | msgstr "%Kuso inválido de %<__builtin_va_arg_pack_len ()%>" | |
24475 | ||
24476 | -#: builtins.c:6234 | |
24477 | +#: builtins.c:6268 | |
24478 | #, gcc-internal-format | |
24479 | msgid "%<__builtin_longjmp%> second argument must be 1" | |
24480 | msgstr "el segundo argumento de %<__builtin_longjump%> debe ser 1" | |
24481 | ||
24482 | -#: builtins.c:7077 | |
24483 | +#: builtins.c:7113 | |
24484 | #, gcc-internal-format | |
24485 | msgid "target format does not support infinity" | |
24486 | msgstr "el formato objetivo no soporta infinito" | |
24487 | ||
24488 | -#: builtins.c:12058 | |
24489 | +#: builtins.c:12094 | |
24490 | #, gcc-internal-format | |
24491 | msgid "%<va_start%> used in function with fixed args" | |
24492 | msgstr "se usó %<va_start%> en una función con argumentos fijos" | |
24493 | ||
24494 | -#: builtins.c:12066 | |
24495 | +#: builtins.c:12102 | |
24496 | #, gcc-internal-format | |
24497 | msgid "wrong number of arguments to function %<va_start%>" | |
24498 | msgstr "número erróneo argumentos para la función %<va_start%>" | |
24499 | ||
24500 | #. Evidently an out of date version of <stdarg.h>; can't validate | |
24501 | #. va_start's second argument, but can still work as intended. | |
24502 | -#: builtins.c:12079 | |
24503 | +#: builtins.c:12115 | |
24504 | #, gcc-internal-format | |
24505 | msgid "%<__builtin_next_arg%> called without an argument" | |
24506 | msgstr "se llamó a %<__builtin_next_arg%> sin un argumento" | |
24507 | ||
24508 | -#: builtins.c:12084 | |
24509 | +#: builtins.c:12120 | |
24510 | #, gcc-internal-format | |
24511 | msgid "wrong number of arguments to function %<__builtin_next_arg%>" | |
24512 | msgstr "número erróneo de argumentos para la función %<__builtin_next_arg%>" | |
24513 | @@ -12218,42 +12363,42 @@ | |
24514 | #. argument. We just warn and set the arg to be the last | |
24515 | #. argument so that we will get wrong-code because of | |
24516 | #. it. | |
24517 | -#: builtins.c:12114 | |
24518 | +#: builtins.c:12150 | |
24519 | #, gcc-internal-format | |
24520 | msgid "second parameter of %<va_start%> not last named argument" | |
24521 | msgstr "el segundo parámetro de %<va_start%> no es el último argumento nombrado" | |
24522 | ||
24523 | -#: builtins.c:12124 | |
24524 | +#: builtins.c:12160 | |
24525 | #, gcc-internal-format | |
24526 | msgid "undefined behaviour when second parameter of %<va_start%> is declared with %<register%> storage" | |
24527 | msgstr "la conducta es indefinida cuando el segundo parámetro de %<va_start%> se declara con almacenamiento %<register%>" | |
24528 | ||
24529 | -#: builtins.c:12360 | |
24530 | +#: builtins.c:12396 | |
24531 | #, gcc-internal-format | |
24532 | msgid "%Kfirst argument of %D must be a pointer, second integer constant" | |
24533 | msgstr "%Kel primer argumento de %D debe ser un puntero, el segundo una constante entera" | |
24534 | ||
24535 | -#: builtins.c:12373 | |
24536 | +#: builtins.c:12409 | |
24537 | #, gcc-internal-format | |
24538 | msgid "%Klast argument of %D is not integer constant between 0 and 3" | |
24539 | msgstr "%Kel último argumento de %D no es una constante entera entre 0 y 3" | |
24540 | ||
24541 | -#: builtins.c:12418 builtins.c:12569 builtins.c:12626 | |
24542 | +#: builtins.c:12454 builtins.c:12605 builtins.c:12662 | |
24543 | #, gcc-internal-format | |
24544 | msgid "%Kcall to %D will always overflow destination buffer" | |
24545 | msgstr "%Kla llamada a %D siempre desbordará el almacenamiento temporal destino" | |
24546 | ||
24547 | -#: builtins.c:12559 | |
24548 | +#: builtins.c:12595 | |
24549 | #, gcc-internal-format | |
24550 | msgid "%Kcall to %D might overflow destination buffer" | |
24551 | msgstr "%Kla llamada a %D puede desbordar el almacenamiento temporal destino" | |
24552 | ||
24553 | -#: builtins.c:12647 | |
24554 | +#: builtins.c:12683 | |
24555 | #, gcc-internal-format | |
24556 | msgid "%Kattempt to free a non-heap object %qD" | |
24557 | msgstr "%Kse intenta liberar un objeto %qD que no es de pila" | |
24558 | ||
24559 | -#: builtins.c:12650 | |
24560 | +#: builtins.c:12686 | |
24561 | #, gcc-internal-format | |
24562 | msgid "%Kattempt to free a non-heap object" | |
24563 | msgstr "%Kse intenta liberar un objeto que no es de pila" | |
24564 | @@ -12324,7 +12469,7 @@ | |
24565 | msgid "type of array %q+D completed incompatibly with implicit initialization" | |
24566 | msgstr "el tipo de la matriz %q+D se completó de forma incompatible con la inicialización implícita" | |
24567 | ||
24568 | -#: c-decl.c:1462 c-decl.c:5851 c-decl.c:6681 c-decl.c:7393 | |
24569 | +#: c-decl.c:1462 c-decl.c:5852 c-decl.c:6682 c-decl.c:7394 | |
24570 | #, gcc-internal-format | |
24571 | msgid "originally defined here" | |
24572 | msgstr "se definió originalmente aquí" | |
24573 | @@ -12386,7 +12531,7 @@ | |
24574 | msgid "built-in function %q+D declared as non-function" | |
24575 | msgstr "la función interna %q+D no se declara como función" | |
24576 | ||
24577 | -#: c-decl.c:1674 c-decl.c:1847 c-decl.c:2558 | |
24578 | +#: c-decl.c:1674 c-decl.c:1847 c-decl.c:2559 | |
24579 | #, gcc-internal-format | |
24580 | msgid "declaration of %q+D shadows a built-in function" | |
24581 | msgstr "la declaración de %q+D oscurece una función interna" | |
24582 | @@ -12519,212 +12664,212 @@ | |
24583 | msgid "redundant redeclaration of %q+D" | |
24584 | msgstr "redeclaración redundante de %q+D" | |
24585 | ||
24586 | -#: c-decl.c:2545 | |
24587 | +#: c-decl.c:2546 | |
24588 | #, gcc-internal-format | |
24589 | msgid "declaration of %q+D shadows previous non-variable" | |
24590 | msgstr "la declaración de %q+D oscurece a una declaración previa que no es variable" | |
24591 | ||
24592 | -#: c-decl.c:2550 | |
24593 | +#: c-decl.c:2551 | |
24594 | #, gcc-internal-format | |
24595 | msgid "declaration of %q+D shadows a parameter" | |
24596 | msgstr "la declaración de %q+D oscurece un parámetro" | |
24597 | ||
24598 | -#: c-decl.c:2553 | |
24599 | +#: c-decl.c:2554 | |
24600 | #, gcc-internal-format | |
24601 | msgid "declaration of %q+D shadows a global declaration" | |
24602 | msgstr "la declaración de %q+D oscurece a una declaración global" | |
24603 | ||
24604 | -#: c-decl.c:2563 | |
24605 | +#: c-decl.c:2564 | |
24606 | #, gcc-internal-format | |
24607 | msgid "declaration of %q+D shadows a previous local" | |
24608 | msgstr "la declaración de %q+D oscurece a una declaración local previa" | |
24609 | ||
24610 | -#: c-decl.c:2567 cp/name-lookup.c:1150 cp/name-lookup.c:1193 | |
24611 | +#: c-decl.c:2568 cp/name-lookup.c:1150 cp/name-lookup.c:1193 | |
24612 | #, gcc-internal-format | |
24613 | msgid "shadowed declaration is here" | |
24614 | msgstr "aquí está la declaración oscurecida" | |
24615 | ||
24616 | -#: c-decl.c:2694 | |
24617 | +#: c-decl.c:2695 | |
24618 | #, gcc-internal-format | |
24619 | msgid "nested extern declaration of %qD" | |
24620 | msgstr "declaración externa anidada de %qD" | |
24621 | ||
24622 | -#: c-decl.c:2870 c-decl.c:2873 | |
24623 | +#: c-decl.c:2871 c-decl.c:2874 | |
24624 | #, gcc-internal-format | |
24625 | msgid "implicit declaration of function %qE" | |
24626 | msgstr "declaración implícita de la función %qE" | |
24627 | ||
24628 | -#: c-decl.c:2936 | |
24629 | +#: c-decl.c:2937 | |
24630 | #, gcc-internal-format | |
24631 | msgid "incompatible implicit declaration of built-in function %qD" | |
24632 | msgstr "declaración implícita incompatible de la función interna %qD" | |
24633 | ||
24634 | -#: c-decl.c:2945 | |
24635 | +#: c-decl.c:2946 | |
24636 | #, gcc-internal-format | |
24637 | msgid "incompatible implicit declaration of function %qD" | |
24638 | msgstr "declaración implícita incompatible de la función %qD" | |
24639 | ||
24640 | -#: c-decl.c:2998 | |
24641 | +#: c-decl.c:2999 | |
24642 | #, gcc-internal-format | |
24643 | msgid "%qE undeclared here (not in a function)" | |
24644 | msgstr "%qE no se declaró aquí (no en una función)" | |
24645 | ||
24646 | -#: c-decl.c:3004 | |
24647 | +#: c-decl.c:3005 | |
24648 | #, gcc-internal-format | |
24649 | msgid "%qE undeclared (first use in this function)" | |
24650 | msgstr "%qE no se declaró aquí (primer uso en esta función)" | |
24651 | ||
24652 | -#: c-decl.c:3007 | |
24653 | +#: c-decl.c:3008 | |
24654 | #, gcc-internal-format | |
24655 | msgid "each undeclared identifier is reported only once for each function it appears in" | |
24656 | msgstr "cada identificador sin declarar se reporta sólo una vez para cada función en el que aparece" | |
24657 | ||
24658 | -#: c-decl.c:3057 cp/decl.c:2593 | |
24659 | +#: c-decl.c:3058 cp/decl.c:2598 | |
24660 | #, gcc-internal-format | |
24661 | msgid "label %qE referenced outside of any function" | |
24662 | msgstr "la etiqueta %qE es referenciada fuera de cualquier función" | |
24663 | ||
24664 | -#: c-decl.c:3093 | |
24665 | +#: c-decl.c:3094 | |
24666 | #, gcc-internal-format | |
24667 | msgid "jump into scope of identifier with variably modified type" | |
24668 | msgstr "salto al ámbito de un identificador con tipo modificado variablemente" | |
24669 | ||
24670 | -#: c-decl.c:3096 | |
24671 | +#: c-decl.c:3097 | |
24672 | #, gcc-internal-format | |
24673 | msgid "jump skips variable initialization" | |
24674 | msgstr "el salto evita la inicialización de la variable" | |
24675 | ||
24676 | -#: c-decl.c:3097 c-decl.c:3153 c-decl.c:3242 | |
24677 | +#: c-decl.c:3098 c-decl.c:3154 c-decl.c:3243 | |
24678 | #, gcc-internal-format | |
24679 | msgid "label %qD defined here" | |
24680 | msgstr "la etiqueta %qD se define aquí" | |
24681 | ||
24682 | -#: c-decl.c:3098 c-decl.c:3370 | |
24683 | +#: c-decl.c:3099 c-decl.c:3371 | |
24684 | #, gcc-internal-format | |
24685 | msgid "%qD declared here" | |
24686 | msgstr "%qD se declara aquí" | |
24687 | ||
24688 | -#: c-decl.c:3152 c-decl.c:3241 | |
24689 | +#: c-decl.c:3153 c-decl.c:3242 | |
24690 | #, gcc-internal-format | |
24691 | msgid "jump into statement expression" | |
24692 | msgstr "salto a una expresión de declaración" | |
24693 | ||
24694 | -#: c-decl.c:3174 | |
24695 | +#: c-decl.c:3175 | |
24696 | #, gcc-internal-format | |
24697 | msgid "duplicate label declaration %qE" | |
24698 | msgstr "declaración duplicada de la etiqueta %qE" | |
24699 | ||
24700 | -#: c-decl.c:3272 cp/decl.c:2916 | |
24701 | +#: c-decl.c:3273 cp/decl.c:2921 | |
24702 | #, gcc-internal-format | |
24703 | msgid "duplicate label %qD" | |
24704 | msgstr "etiqueta %qD duplicada" | |
24705 | ||
24706 | -#: c-decl.c:3303 | |
24707 | +#: c-decl.c:3304 | |
24708 | #, gcc-internal-format | |
24709 | msgid "traditional C lacks a separate namespace for labels, identifier %qE conflicts" | |
24710 | msgstr "C tradicional carece de un espacio de nombres separado para etiquetas, el identificador %qE genera un conflicto con" | |
24711 | ||
24712 | -#: c-decl.c:3368 | |
24713 | +#: c-decl.c:3369 | |
24714 | #, gcc-internal-format | |
24715 | msgid "switch jumps over variable initialization" | |
24716 | msgstr "el switch salta sobre la inicialización de la variable" | |
24717 | ||
24718 | -#: c-decl.c:3369 c-decl.c:3380 | |
24719 | +#: c-decl.c:3370 c-decl.c:3381 | |
24720 | #, gcc-internal-format | |
24721 | msgid "switch starts here" | |
24722 | msgstr "switch inicia aquí" | |
24723 | ||
24724 | -#: c-decl.c:3379 | |
24725 | +#: c-decl.c:3380 | |
24726 | #, gcc-internal-format | |
24727 | msgid "switch jumps into statement expression" | |
24728 | msgstr "switch salta dentro de una expresión de declaración" | |
24729 | ||
24730 | -#: c-decl.c:3450 | |
24731 | +#: c-decl.c:3451 | |
24732 | #, gcc-internal-format | |
24733 | msgid "%qE defined as wrong kind of tag" | |
24734 | msgstr "%qE definido como un tipo erróneo de etiqueta" | |
24735 | ||
24736 | -#: c-decl.c:3673 c-typeck.c:10999 c-family/c-common.c:4164 | |
24737 | +#: c-decl.c:3674 c-typeck.c:10999 c-family/c-common.c:4164 | |
24738 | #, gcc-internal-format | |
24739 | msgid "invalid use of %<restrict%>" | |
24740 | msgstr "uso inválido de %<restrict%>" | |
24741 | ||
24742 | -#: c-decl.c:3683 | |
24743 | +#: c-decl.c:3684 | |
24744 | #, gcc-internal-format | |
24745 | msgid "unnamed struct/union that defines no instances" | |
24746 | msgstr "struct/union sin nombre que no define ninguna instancia" | |
24747 | ||
24748 | -#: c-decl.c:3693 | |
24749 | +#: c-decl.c:3694 | |
24750 | #, gcc-internal-format | |
24751 | msgid "empty declaration with storage class specifier does not redeclare tag" | |
24752 | msgstr "una declaración vacía con especificadores de clase de almacenamiento no redeclara la etiqueta" | |
24753 | ||
24754 | -#: c-decl.c:3707 | |
24755 | +#: c-decl.c:3708 | |
24756 | #, gcc-internal-format | |
24757 | msgid "empty declaration with type qualifier does not redeclare tag" | |
24758 | msgstr "una declaración vacía con calificador de tipo no redeclara la etiqueta" | |
24759 | ||
24760 | -#: c-decl.c:3718 | |
24761 | +#: c-decl.c:3719 | |
24762 | #, gcc-internal-format | |
24763 | msgid "empty declaration with %<_Alignas%> does not redeclare tag" | |
24764 | msgstr "una declaración vacía con %<_Alignas%> no redeclara la etiqueta" | |
24765 | ||
24766 | -#: c-decl.c:3740 c-decl.c:3747 | |
24767 | +#: c-decl.c:3741 c-decl.c:3748 | |
24768 | #, gcc-internal-format | |
24769 | msgid "useless type name in empty declaration" | |
24770 | msgstr "nombre de tipo sin uso en una declaración vacía" | |
24771 | ||
24772 | -#: c-decl.c:3755 | |
24773 | +#: c-decl.c:3756 | |
24774 | #, gcc-internal-format | |
24775 | msgid "%<inline%> in empty declaration" | |
24776 | msgstr "%<inline%> en una declaración vacía" | |
24777 | ||
24778 | -#: c-decl.c:3761 | |
24779 | +#: c-decl.c:3762 | |
24780 | #, gcc-internal-format | |
24781 | msgid "%<_Noreturn%> in empty declaration" | |
24782 | msgstr "%<_Noreturn%> en una declaración vacía" | |
24783 | ||
24784 | -#: c-decl.c:3767 | |
24785 | +#: c-decl.c:3768 | |
24786 | #, gcc-internal-format | |
24787 | msgid "%<auto%> in file-scope empty declaration" | |
24788 | msgstr "%<auto%> en una declaración vacía en ámbito de fichero" | |
24789 | ||
24790 | -#: c-decl.c:3773 | |
24791 | +#: c-decl.c:3774 | |
24792 | #, gcc-internal-format | |
24793 | msgid "%<register%> in file-scope empty declaration" | |
24794 | msgstr "%<register%> en una declaración vacía en ámbito de fichero" | |
24795 | ||
24796 | -#: c-decl.c:3779 | |
24797 | +#: c-decl.c:3780 | |
24798 | #, gcc-internal-format | |
24799 | msgid "useless storage class specifier in empty declaration" | |
24800 | msgstr "especificador de clase de almacenamiento sin uso en una declaración vacía" | |
24801 | ||
24802 | -#: c-decl.c:3785 | |
24803 | +#: c-decl.c:3786 | |
24804 | #, gcc-internal-format | |
24805 | msgid "useless %<__thread%> in empty declaration" | |
24806 | msgstr "%<__thread%> sin uso en la declaración vacía" | |
24807 | ||
24808 | -#: c-decl.c:3794 | |
24809 | +#: c-decl.c:3795 | |
24810 | #, gcc-internal-format | |
24811 | msgid "useless type qualifier in empty declaration" | |
24812 | msgstr "calificador de tipo sin uso en una declaración vacía" | |
24813 | ||
24814 | -#: c-decl.c:3800 | |
24815 | +#: c-decl.c:3801 | |
24816 | #, gcc-internal-format | |
24817 | msgid "useless %<_Alignas%> in empty declaration" | |
24818 | msgstr "%<_Alignas%> sin uso en la declaración vacía" | |
24819 | ||
24820 | -#: c-decl.c:3807 c-parser.c:1498 | |
24821 | +#: c-decl.c:3808 c-parser.c:1498 | |
24822 | #, gcc-internal-format | |
24823 | msgid "empty declaration" | |
24824 | msgstr "declaración vacía" | |
24825 | ||
24826 | -#: c-decl.c:3879 | |
24827 | +#: c-decl.c:3880 | |
24828 | #, gcc-internal-format | |
24829 | msgid "ISO C90 does not support %<static%> or type qualifiers in parameter array declarators" | |
24830 | msgstr "ISO C90 no admite %<static%> o calificadores de tipo en los declaradores de parámetros de matrices" | |
24831 | ||
24832 | -#: c-decl.c:3883 | |
24833 | +#: c-decl.c:3884 | |
24834 | #, gcc-internal-format | |
24835 | msgid "ISO C90 does not support %<[*]%> array declarators" | |
24836 | msgstr "ISO C90 no admite declaradores de matriz %<[*]%>" | |
24837 | @@ -12732,28 +12877,28 @@ | |
24838 | #. C99 6.7.5.2p4 | |
24839 | #. A function definition isn't function prototype scope C99 6.2.1p4. | |
24840 | #. C99 6.7.5.2p4 | |
24841 | -#: c-decl.c:3890 c-decl.c:6249 | |
24842 | +#: c-decl.c:3891 c-decl.c:6250 | |
24843 | #, gcc-internal-format | |
24844 | msgid "%<[*]%> not allowed in other than function prototype scope" | |
24845 | msgstr "no se permite %<[*]%> en otro lugar que no sea el ámbido de prototipo de función" | |
24846 | ||
24847 | -#: c-decl.c:4003 | |
24848 | +#: c-decl.c:4004 | |
24849 | #, gcc-internal-format | |
24850 | msgid "%q+D is usually a function" | |
24851 | msgstr "%q+D generalmente es una función" | |
24852 | ||
24853 | -#: c-decl.c:4012 | |
24854 | +#: c-decl.c:4013 | |
24855 | #, gcc-internal-format | |
24856 | msgid "typedef %qD is initialized (use __typeof__ instead)" | |
24857 | msgstr "typedef %qD está inicializado (utilice __typeof__ en su lugar)" | |
24858 | ||
24859 | -#: c-decl.c:4017 | |
24860 | +#: c-decl.c:4018 | |
24861 | #, gcc-internal-format | |
24862 | msgid "function %qD is initialized like a variable" | |
24863 | msgstr "la función %qD está inicializada como una variable" | |
24864 | ||
24865 | #. DECL_INITIAL in a PARM_DECL is really DECL_ARG_TYPE. | |
24866 | -#: c-decl.c:4023 | |
24867 | +#: c-decl.c:4024 | |
24868 | #, gcc-internal-format | |
24869 | msgid "parameter %qD is initialized" | |
24870 | msgstr "el parámetro %qD está inicializado" | |
24871 | @@ -12762,272 +12907,272 @@ | |
24872 | #. of VLAs themselves count as VLAs, it does not make | |
24873 | #. sense to permit them to be initialized given that | |
24874 | #. ordinary VLAs may not be initialized. | |
24875 | -#: c-decl.c:4042 c-decl.c:4057 c-typeck.c:6374 | |
24876 | +#: c-decl.c:4043 c-decl.c:4058 c-typeck.c:6374 | |
24877 | #, gcc-internal-format | |
24878 | msgid "variable-sized object may not be initialized" | |
24879 | msgstr "un objeto de tamaño variable puede no ser inicializado" | |
24880 | ||
24881 | -#: c-decl.c:4048 | |
24882 | +#: c-decl.c:4049 | |
24883 | #, gcc-internal-format | |
24884 | msgid "variable %qD has initializer but incomplete type" | |
24885 | msgstr "la variable %qD tiene inicializador pero de tipo de dato incompleto" | |
24886 | ||
24887 | -#: c-decl.c:4137 cp/decl.c:4418 cp/decl.c:12643 | |
24888 | +#: c-decl.c:4138 cp/decl.c:4428 cp/decl.c:12657 | |
24889 | #, gcc-internal-format | |
24890 | msgid "inline function %q+D given attribute noinline" | |
24891 | msgstr "se le dió a la función incluída en línea %q+D un atributo noinline" | |
24892 | ||
24893 | -#: c-decl.c:4188 | |
24894 | +#: c-decl.c:4189 | |
24895 | #, gcc-internal-format | |
24896 | msgid "uninitialized const member in %qT is invalid in C++" | |
24897 | msgstr "el miembro const sin inicializar en %qT es inválido en C++" | |
24898 | ||
24899 | -#: c-decl.c:4190 cp/init.c:2115 cp/init.c:2130 | |
24900 | +#: c-decl.c:4191 cp/init.c:2115 cp/init.c:2130 | |
24901 | #, gcc-internal-format | |
24902 | msgid "%qD should be initialized" | |
24903 | msgstr "%qD se debe inicializar" | |
24904 | ||
24905 | -#: c-decl.c:4268 | |
24906 | +#: c-decl.c:4269 | |
24907 | #, gcc-internal-format | |
24908 | msgid "initializer fails to determine size of %q+D" | |
24909 | msgstr "el inicializador no puede determinar el tamaño de %q+D" | |
24910 | ||
24911 | -#: c-decl.c:4273 | |
24912 | +#: c-decl.c:4274 | |
24913 | #, gcc-internal-format | |
24914 | msgid "array size missing in %q+D" | |
24915 | msgstr "falta el tamaño de la matriz en %q+D" | |
24916 | ||
24917 | -#: c-decl.c:4285 | |
24918 | +#: c-decl.c:4286 | |
24919 | #, gcc-internal-format | |
24920 | msgid "zero or negative size array %q+D" | |
24921 | msgstr "matriz %q+D de tamaño cero o negativo" | |
24922 | ||
24923 | -#: c-decl.c:4340 varasm.c:1966 | |
24924 | +#: c-decl.c:4341 varasm.c:1966 | |
24925 | #, gcc-internal-format | |
24926 | msgid "storage size of %q+D isn%'t known" | |
24927 | msgstr "no se conoce el tamaño de almacenamiento de %q+D" | |
24928 | ||
24929 | -#: c-decl.c:4351 | |
24930 | +#: c-decl.c:4352 | |
24931 | #, gcc-internal-format | |
24932 | msgid "storage size of %q+D isn%'t constant" | |
24933 | msgstr "el tamaño de almacenamiento de %q+D no es constante" | |
24934 | ||
24935 | -#: c-decl.c:4401 | |
24936 | +#: c-decl.c:4402 | |
24937 | #, gcc-internal-format | |
24938 | msgid "ignoring asm-specifier for non-static local variable %q+D" | |
24939 | msgstr "se descarta el especificador asm para la variable local que no es estática %q+D" | |
24940 | ||
24941 | -#: c-decl.c:4431 | |
24942 | +#: c-decl.c:4432 | |
24943 | #, gcc-internal-format | |
24944 | msgid "cannot put object with volatile field into register" | |
24945 | msgstr "no se puede poner un objeto con un campo volatile en register" | |
24946 | ||
24947 | -#: c-decl.c:4518 | |
24948 | +#: c-decl.c:4519 | |
24949 | #, gcc-internal-format | |
24950 | msgid "uninitialized const %qD is invalid in C++" | |
24951 | msgstr "const %qD sin inicializar es inválida en C++" | |
24952 | ||
24953 | -#: c-decl.c:4576 | |
24954 | +#: c-decl.c:4577 | |
24955 | #, gcc-internal-format | |
24956 | msgid "ISO C forbids forward parameter declarations" | |
24957 | msgstr "ISO C prohíbe declaraciones adelantadas de parámetros" | |
24958 | ||
24959 | -#: c-decl.c:4666 | |
24960 | +#: c-decl.c:4667 | |
24961 | #, gcc-internal-format | |
24962 | msgid "defining a type in a compound literal is invalid in C++" | |
24963 | msgstr "definir un tipo en una literal compuesta es inválido en C++" | |
24964 | ||
24965 | -#: c-decl.c:4718 c-decl.c:4733 | |
24966 | +#: c-decl.c:4719 c-decl.c:4734 | |
24967 | #, gcc-internal-format | |
24968 | msgid "bit-field %qs width not an integer constant" | |
24969 | msgstr "la anchura del campo de bits %qs no es una constante entera" | |
24970 | ||
24971 | -#: c-decl.c:4728 | |
24972 | +#: c-decl.c:4729 | |
24973 | #, gcc-internal-format | |
24974 | msgid "bit-field %qs width not an integer constant expression" | |
24975 | msgstr "la anchura del campo de bits %qs no es una expresión constante entera" | |
24976 | ||
24977 | -#: c-decl.c:4739 | |
24978 | +#: c-decl.c:4740 | |
24979 | #, gcc-internal-format | |
24980 | msgid "negative width in bit-field %qs" | |
24981 | msgstr "anchura negativa en el campo de bit %qs" | |
24982 | ||
24983 | -#: c-decl.c:4744 | |
24984 | +#: c-decl.c:4745 | |
24985 | #, gcc-internal-format | |
24986 | msgid "zero width for bit-field %qs" | |
24987 | msgstr "anchura cero para el campo de bits %qs" | |
24988 | ||
24989 | -#: c-decl.c:4754 | |
24990 | +#: c-decl.c:4755 | |
24991 | #, gcc-internal-format | |
24992 | msgid "bit-field %qs has invalid type" | |
24993 | msgstr "el campo de bits %qs tiene un tipo inválido" | |
24994 | ||
24995 | -#: c-decl.c:4764 | |
24996 | +#: c-decl.c:4765 | |
24997 | #, gcc-internal-format | |
24998 | msgid "type of bit-field %qs is a GCC extension" | |
24999 | msgstr "el tipo de campo de bits %qs es una extensión de GCC" | |
25000 | ||
25001 | -#: c-decl.c:4770 | |
25002 | +#: c-decl.c:4771 | |
25003 | #, gcc-internal-format | |
25004 | msgid "width of %qs exceeds its type" | |
25005 | msgstr "la anchura de %qs excede su tipo" | |
25006 | ||
25007 | -#: c-decl.c:4783 | |
25008 | +#: c-decl.c:4784 | |
25009 | #, gcc-internal-format | |
25010 | msgid "%qs is narrower than values of its type" | |
25011 | msgstr "%qs es más estrecho que los valores de su tipo" | |
25012 | ||
25013 | -#: c-decl.c:4802 | |
25014 | +#: c-decl.c:4803 | |
25015 | #, gcc-internal-format | |
25016 | msgid "ISO C90 forbids array %qE whose size can%'t be evaluated" | |
25017 | msgstr "ISO C90 prohíbe la matriz %qE cuyo tamaño no se puede evaluar" | |
25018 | ||
25019 | -#: c-decl.c:4806 | |
25020 | +#: c-decl.c:4807 | |
25021 | #, gcc-internal-format | |
25022 | msgid "ISO C90 forbids array whose size can%'t be evaluated" | |
25023 | msgstr "ISO C90 prohíbe la matriz cuyo tamaño no se puede evaluar" | |
25024 | ||
25025 | -#: c-decl.c:4813 | |
25026 | +#: c-decl.c:4814 | |
25027 | #, gcc-internal-format | |
25028 | msgid "ISO C90 forbids variable length array %qE" | |
25029 | msgstr "ISO C90 prohíbe la matriz de longitud variable %qE" | |
25030 | ||
25031 | -#: c-decl.c:4816 | |
25032 | +#: c-decl.c:4817 | |
25033 | #, gcc-internal-format | |
25034 | msgid "ISO C90 forbids variable length array" | |
25035 | msgstr "ISO C90 prohíbe la matriz de longitud variable" | |
25036 | ||
25037 | -#: c-decl.c:4825 | |
25038 | +#: c-decl.c:4826 | |
25039 | #, gcc-internal-format | |
25040 | msgid "the size of array %qE can%'t be evaluated" | |
25041 | msgstr "el tamaño de la matriz %qE no se puede evaluar" | |
25042 | ||
25043 | -#: c-decl.c:4829 | |
25044 | +#: c-decl.c:4830 | |
25045 | #, gcc-internal-format | |
25046 | msgid "the size of array can %'t be evaluated" | |
25047 | msgstr "el tamaño de la matriz no se puede evaluar" | |
25048 | ||
25049 | -#: c-decl.c:4835 | |
25050 | +#: c-decl.c:4836 | |
25051 | #, gcc-internal-format | |
25052 | msgid "variable length array %qE is used" | |
25053 | msgstr "se usó la matriz de longitud variable %qE" | |
25054 | ||
25055 | -#: c-decl.c:4839 cp/decl.c:8053 | |
25056 | +#: c-decl.c:4840 cp/decl.c:8063 | |
25057 | #, gcc-internal-format | |
25058 | msgid "variable length array is used" | |
25059 | msgstr "se usó la matriz de longitud variable" | |
25060 | ||
25061 | -#: c-decl.c:4998 c-decl.c:5346 c-decl.c:5356 | |
25062 | +#: c-decl.c:4999 c-decl.c:5347 c-decl.c:5357 | |
25063 | #, gcc-internal-format | |
25064 | msgid "variably modified %qE at file scope" | |
25065 | msgstr "%qE variablemente modificado en el ámbito del fichero" | |
25066 | ||
25067 | -#: c-decl.c:5000 | |
25068 | +#: c-decl.c:5001 | |
25069 | #, gcc-internal-format | |
25070 | msgid "variably modified field at file scope" | |
25071 | msgstr "campo variablemente modificado en el ámbito del fichero" | |
25072 | ||
25073 | -#: c-decl.c:5020 | |
25074 | +#: c-decl.c:5021 | |
25075 | #, gcc-internal-format | |
25076 | msgid "type defaults to %<int%> in declaration of %qE" | |
25077 | msgstr "el tipo de dato por defecto es %<int%> en la declaración de %qE" | |
25078 | ||
25079 | -#: c-decl.c:5024 | |
25080 | +#: c-decl.c:5025 | |
25081 | #, gcc-internal-format | |
25082 | msgid "type defaults to %<int%> in type name" | |
25083 | msgstr "el tipo de dato por defecto es %<int%> en el nombre de tipo" | |
25084 | ||
25085 | -#: c-decl.c:5057 | |
25086 | +#: c-decl.c:5058 | |
25087 | #, gcc-internal-format | |
25088 | msgid "duplicate %<const%>" | |
25089 | msgstr "%<const%> duplicado" | |
25090 | ||
25091 | -#: c-decl.c:5059 | |
25092 | +#: c-decl.c:5060 | |
25093 | #, gcc-internal-format | |
25094 | msgid "duplicate %<restrict%>" | |
25095 | msgstr "%<restrict%> duplicado" | |
25096 | ||
25097 | -#: c-decl.c:5061 | |
25098 | +#: c-decl.c:5062 | |
25099 | #, gcc-internal-format | |
25100 | msgid "duplicate %<volatile%>" | |
25101 | msgstr "%<volatile%> duplicado" | |
25102 | ||
25103 | -#: c-decl.c:5065 | |
25104 | +#: c-decl.c:5066 | |
25105 | #, gcc-internal-format, gfc-internal-format | |
25106 | msgid "conflicting named address spaces (%s vs %s)" | |
25107 | msgstr "espacios de direcciones nombrados generan un conflicto (%s vs %s)" | |
25108 | ||
25109 | -#: c-decl.c:5089 | |
25110 | +#: c-decl.c:5090 | |
25111 | #, gcc-internal-format | |
25112 | msgid "function definition declared %<auto%>" | |
25113 | msgstr "la definición de la función se declaró como %<auto%>" | |
25114 | ||
25115 | -#: c-decl.c:5091 | |
25116 | +#: c-decl.c:5092 | |
25117 | #, gcc-internal-format | |
25118 | msgid "function definition declared %<register%>" | |
25119 | msgstr "la definición de la función se declaró como %<register%>" | |
25120 | ||
25121 | -#: c-decl.c:5093 | |
25122 | +#: c-decl.c:5094 | |
25123 | #, gcc-internal-format | |
25124 | msgid "function definition declared %<typedef%>" | |
25125 | msgstr "la definición de la función se declaró como %<typedef%>" | |
25126 | ||
25127 | -#: c-decl.c:5095 | |
25128 | +#: c-decl.c:5096 | |
25129 | #, gcc-internal-format | |
25130 | msgid "function definition declared %<__thread%>" | |
25131 | msgstr "la definición de la función se declaró como %<__thread%>" | |
25132 | ||
25133 | -#: c-decl.c:5112 | |
25134 | +#: c-decl.c:5113 | |
25135 | #, gcc-internal-format | |
25136 | msgid "storage class specified for structure field %qE" | |
25137 | msgstr "se especificó una clase de almacenamiento para el campo de la estructura %qE" | |
25138 | ||
25139 | -#: c-decl.c:5115 | |
25140 | +#: c-decl.c:5116 | |
25141 | #, gcc-internal-format | |
25142 | msgid "storage class specified for structure field" | |
25143 | msgstr "se especificó una clase de almacenamiento para el campo de la estructura" | |
25144 | ||
25145 | -#: c-decl.c:5119 | |
25146 | +#: c-decl.c:5120 | |
25147 | #, gcc-internal-format | |
25148 | msgid "storage class specified for parameter %qE" | |
25149 | msgstr "se especificó una clase de almacenamiento para el parámetro %qE" | |
25150 | ||
25151 | -#: c-decl.c:5122 | |
25152 | +#: c-decl.c:5123 | |
25153 | #, gcc-internal-format | |
25154 | msgid "storage class specified for unnamed parameter" | |
25155 | msgstr "se especificó una clase de almacenamiento para un parámetro sin nombre" | |
25156 | ||
25157 | -#: c-decl.c:5125 cp/decl.c:9020 | |
25158 | +#: c-decl.c:5126 cp/decl.c:9030 | |
25159 | #, gcc-internal-format | |
25160 | msgid "storage class specified for typename" | |
25161 | msgstr "se especificó una clase de almacenamiento para el nombre de tipo" | |
25162 | ||
25163 | -#: c-decl.c:5142 | |
25164 | +#: c-decl.c:5143 | |
25165 | #, gcc-internal-format | |
25166 | msgid "%qE initialized and declared %<extern%>" | |
25167 | msgstr "%qE se inicializó y declaró como %<extern%>" | |
25168 | ||
25169 | -#: c-decl.c:5146 | |
25170 | +#: c-decl.c:5147 | |
25171 | #, gcc-internal-format | |
25172 | msgid "%qE has both %<extern%> and initializer" | |
25173 | msgstr "%qE tiene %<extern%> e inicializador al mismo tiempo" | |
25174 | ||
25175 | -#: c-decl.c:5151 | |
25176 | +#: c-decl.c:5152 | |
25177 | #, gcc-internal-format | |
25178 | msgid "file-scope declaration of %qE specifies %<auto%>" | |
25179 | msgstr "la declaración del ámbito de fichero de %qE especifica %<auto%>" | |
25180 | ||
25181 | -#: c-decl.c:5155 | |
25182 | +#: c-decl.c:5156 | |
25183 | #, gcc-internal-format | |
25184 | msgid "file-scope declaration of %qE specifies %<register%>" | |
25185 | msgstr "la declaración del ámbito de fichero de %qE especifica %<register%>" | |
25186 | ||
25187 | -#: c-decl.c:5160 | |
25188 | +#: c-decl.c:5161 | |
25189 | #, gcc-internal-format | |
25190 | msgid "nested function %qE declared %<extern%>" | |
25191 | msgstr "la función anidada %qE se declaró %<extern%>" | |
25192 | ||
25193 | -#: c-decl.c:5163 | |
25194 | +#: c-decl.c:5164 | |
25195 | #, gcc-internal-format | |
25196 | msgid "function-scope %qE implicitly auto and declared %<__thread%>" | |
25197 | msgstr "el ámbito de la función %qE es implícitamente auto y declarado %<__thread%>" | |
25198 | @@ -13035,657 +13180,657 @@ | |
25199 | #. Only the innermost declarator (making a parameter be of | |
25200 | #. array type which is converted to pointer type) | |
25201 | #. may have static or type qualifiers. | |
25202 | -#: c-decl.c:5210 c-decl.c:5540 | |
25203 | +#: c-decl.c:5211 c-decl.c:5541 | |
25204 | #, gcc-internal-format | |
25205 | msgid "static or type qualifiers in non-parameter array declarator" | |
25206 | msgstr "static o calificadores de tipo en un declarador de matriz que no es parámetro" | |
25207 | ||
25208 | -#: c-decl.c:5258 | |
25209 | +#: c-decl.c:5259 | |
25210 | #, gcc-internal-format | |
25211 | msgid "declaration of %qE as array of voids" | |
25212 | msgstr "la declaración de %qE como una matriz de voids" | |
25213 | ||
25214 | -#: c-decl.c:5260 | |
25215 | +#: c-decl.c:5261 | |
25216 | #, gcc-internal-format | |
25217 | msgid "declaration of type name as array of voids" | |
25218 | msgstr "declaración de nombre de tipo como una matriz de voids" | |
25219 | ||
25220 | -#: c-decl.c:5267 | |
25221 | +#: c-decl.c:5268 | |
25222 | #, gcc-internal-format | |
25223 | msgid "declaration of %qE as array of functions" | |
25224 | msgstr "declaración de %qE como una matriz de funciones" | |
25225 | ||
25226 | -#: c-decl.c:5270 | |
25227 | +#: c-decl.c:5271 | |
25228 | #, gcc-internal-format | |
25229 | msgid "declaration of type name as array of functions" | |
25230 | msgstr "declaración de nombre de tipo como una matriz de funciones" | |
25231 | ||
25232 | -#: c-decl.c:5277 c-decl.c:7177 | |
25233 | +#: c-decl.c:5278 c-decl.c:7178 | |
25234 | #, gcc-internal-format | |
25235 | msgid "invalid use of structure with flexible array member" | |
25236 | msgstr "uso inválido de una estructura con un miembro de matriz flexible" | |
25237 | ||
25238 | -#: c-decl.c:5303 | |
25239 | +#: c-decl.c:5304 | |
25240 | #, gcc-internal-format | |
25241 | msgid "size of array %qE has non-integer type" | |
25242 | msgstr "el tamaño de la matriz %qE es de un tipo no entero" | |
25243 | ||
25244 | -#: c-decl.c:5307 | |
25245 | +#: c-decl.c:5308 | |
25246 | #, gcc-internal-format | |
25247 | msgid "size of unnamed array has non-integer type" | |
25248 | msgstr "el tamaño de la matriz sin nombre es de un tipo no entero" | |
25249 | ||
25250 | -#: c-decl.c:5317 | |
25251 | +#: c-decl.c:5318 | |
25252 | #, gcc-internal-format | |
25253 | msgid "ISO C forbids zero-size array %qE" | |
25254 | msgstr "ISO C prohíbe la matriz %qE de tamaño cero" | |
25255 | ||
25256 | -#: c-decl.c:5320 | |
25257 | +#: c-decl.c:5321 | |
25258 | #, gcc-internal-format | |
25259 | msgid "ISO C forbids zero-size array" | |
25260 | msgstr "ISO C prohíbe matrices de tamaño cero" | |
25261 | ||
25262 | -#: c-decl.c:5329 | |
25263 | +#: c-decl.c:5330 | |
25264 | #, gcc-internal-format | |
25265 | msgid "size of array %qE is negative" | |
25266 | msgstr "el tamaño de la matriz %qE es negativo" | |
25267 | ||
25268 | -#: c-decl.c:5331 | |
25269 | +#: c-decl.c:5332 | |
25270 | #, gcc-internal-format | |
25271 | msgid "size of unnamed array is negative" | |
25272 | msgstr "el tamaño de la matriz sin nombre es negativo" | |
25273 | ||
25274 | -#: c-decl.c:5405 c-decl.c:5808 | |
25275 | +#: c-decl.c:5406 c-decl.c:5809 | |
25276 | #, gcc-internal-format | |
25277 | msgid "size of array %qE is too large" | |
25278 | msgstr "el tamaño de la matriz %qE es demasiado grande" | |
25279 | ||
25280 | -#: c-decl.c:5408 c-decl.c:5810 | |
25281 | +#: c-decl.c:5409 c-decl.c:5811 | |
25282 | #, gcc-internal-format | |
25283 | msgid "size of unnamed array is too large" | |
25284 | msgstr "el tamaño de la matriz sin nombre es demasiado grande" | |
25285 | ||
25286 | -#: c-decl.c:5445 | |
25287 | +#: c-decl.c:5446 | |
25288 | #, gcc-internal-format | |
25289 | msgid "ISO C90 does not support flexible array members" | |
25290 | msgstr "ISO C90 no admite miembros de matriz flexibles" | |
25291 | ||
25292 | #. C99 6.7.5.2p4 | |
25293 | -#: c-decl.c:5466 | |
25294 | +#: c-decl.c:5467 | |
25295 | #, gcc-internal-format | |
25296 | msgid "%<[*]%> not in a declaration" | |
25297 | msgstr "%<[*]%> fuera de una declaración" | |
25298 | ||
25299 | -#: c-decl.c:5479 | |
25300 | +#: c-decl.c:5480 | |
25301 | #, gcc-internal-format | |
25302 | msgid "array type has incomplete element type" | |
25303 | msgstr "el tipo matriz tiene tipo de elemento incompleto" | |
25304 | ||
25305 | -#: c-decl.c:5573 | |
25306 | +#: c-decl.c:5574 | |
25307 | #, gcc-internal-format | |
25308 | msgid "%qE declared as function returning a function" | |
25309 | msgstr "%qE que se declaró como función devuelve una función" | |
25310 | ||
25311 | -#: c-decl.c:5576 | |
25312 | +#: c-decl.c:5577 | |
25313 | #, gcc-internal-format | |
25314 | msgid "type name declared as function returning a function" | |
25315 | msgstr "el nombre de tipo que se declaró como función devuelve una función" | |
25316 | ||
25317 | -#: c-decl.c:5583 | |
25318 | +#: c-decl.c:5584 | |
25319 | #, gcc-internal-format | |
25320 | msgid "%qE declared as function returning an array" | |
25321 | msgstr "%qE que se declaró como función devuelve una matriz" | |
25322 | ||
25323 | -#: c-decl.c:5586 | |
25324 | +#: c-decl.c:5587 | |
25325 | #, gcc-internal-format | |
25326 | msgid "type name declared as function returning an array" | |
25327 | msgstr "el nombre de tipo que se declaró como función devuelve una matriz" | |
25328 | ||
25329 | -#: c-decl.c:5614 | |
25330 | +#: c-decl.c:5615 | |
25331 | #, gcc-internal-format | |
25332 | msgid "function definition has qualified void return type" | |
25333 | msgstr "la definición de la función tiene un tipo de devolución void calificado" | |
25334 | ||
25335 | -#: c-decl.c:5617 cp/decl.c:9126 | |
25336 | +#: c-decl.c:5618 cp/decl.c:9136 | |
25337 | #, gcc-internal-format | |
25338 | msgid "type qualifiers ignored on function return type" | |
25339 | msgstr "se descartan los calificadores de tipo en el tipo de devolución de la función" | |
25340 | ||
25341 | -#: c-decl.c:5646 c-decl.c:5824 c-decl.c:5936 c-decl.c:6031 | |
25342 | +#: c-decl.c:5647 c-decl.c:5825 c-decl.c:5937 c-decl.c:6032 | |
25343 | #, gcc-internal-format | |
25344 | msgid "ISO C forbids qualified function types" | |
25345 | msgstr "ISO C prohíbe los tipos de función calificados" | |
25346 | ||
25347 | -#: c-decl.c:5713 | |
25348 | +#: c-decl.c:5714 | |
25349 | #, gcc-internal-format | |
25350 | msgid "%qs combined with %<auto%> qualifier for %qE" | |
25351 | msgstr "%qs combinado con el calificador %<auto%> para %qE" | |
25352 | ||
25353 | -#: c-decl.c:5717 | |
25354 | +#: c-decl.c:5718 | |
25355 | #, gcc-internal-format | |
25356 | msgid "%qs combined with %<register%> qualifier for %qE" | |
25357 | msgstr "%qs combinado con el calificador %<register%> para %qE" | |
25358 | ||
25359 | -#: c-decl.c:5723 | |
25360 | +#: c-decl.c:5724 | |
25361 | #, gcc-internal-format | |
25362 | msgid "%qs specified for auto variable %qE" | |
25363 | msgstr "se especificó %qs para la variable auto %qE" | |
25364 | ||
25365 | -#: c-decl.c:5739 | |
25366 | +#: c-decl.c:5740 | |
25367 | #, gcc-internal-format | |
25368 | msgid "%qs specified for parameter %qE" | |
25369 | msgstr "se especificó %qs para el parámetro %qE" | |
25370 | ||
25371 | -#: c-decl.c:5742 | |
25372 | +#: c-decl.c:5743 | |
25373 | #, gcc-internal-format | |
25374 | msgid "%qs specified for unnamed parameter" | |
25375 | msgstr "se especificó %qs para el parámetro sin nombre" | |
25376 | ||
25377 | -#: c-decl.c:5748 | |
25378 | +#: c-decl.c:5749 | |
25379 | #, gcc-internal-format | |
25380 | msgid "%qs specified for structure field %qE" | |
25381 | msgstr "se especificó %qs para el campo de estructura %qE" | |
25382 | ||
25383 | -#: c-decl.c:5751 | |
25384 | +#: c-decl.c:5752 | |
25385 | #, gcc-internal-format | |
25386 | msgid "%qs specified for structure field" | |
25387 | msgstr "se especificó %qs para el campo de estructura" | |
25388 | ||
25389 | -#: c-decl.c:5764 | |
25390 | +#: c-decl.c:5765 | |
25391 | #, gcc-internal-format | |
25392 | msgid "alignment specified for typedef %qE" | |
25393 | msgstr "se especificó la alineación para la definición de tipo %qE" | |
25394 | ||
25395 | -#: c-decl.c:5766 | |
25396 | +#: c-decl.c:5767 | |
25397 | #, gcc-internal-format | |
25398 | msgid "alignment specified for %<register%> object %qE" | |
25399 | msgstr "se especificó la alineación para el objeto %<register%> %qE" | |
25400 | ||
25401 | -#: c-decl.c:5771 | |
25402 | +#: c-decl.c:5772 | |
25403 | #, gcc-internal-format | |
25404 | msgid "alignment specified for parameter %qE" | |
25405 | msgstr "se especificó la alineación para el parámetro %qE" | |
25406 | ||
25407 | -#: c-decl.c:5773 | |
25408 | +#: c-decl.c:5774 | |
25409 | #, gcc-internal-format | |
25410 | msgid "alignment specified for unnamed parameter" | |
25411 | msgstr "se especificó la alineación para el parámetro sin nombre" | |
25412 | ||
25413 | -#: c-decl.c:5778 | |
25414 | +#: c-decl.c:5779 | |
25415 | #, gcc-internal-format | |
25416 | msgid "alignment specified for bit-field %qE" | |
25417 | msgstr "se especificó la alineación para el campo de bits %qE" | |
25418 | ||
25419 | -#: c-decl.c:5780 | |
25420 | +#: c-decl.c:5781 | |
25421 | #, gcc-internal-format | |
25422 | msgid "alignment specified for unnamed bit-field" | |
25423 | msgstr "se especificó la alineación para el campo de bits sin nombre" | |
25424 | ||
25425 | -#: c-decl.c:5783 | |
25426 | +#: c-decl.c:5784 | |
25427 | #, gcc-internal-format | |
25428 | msgid "alignment specified for function %qE" | |
25429 | msgstr "se especificó la alineación para la función %qE" | |
25430 | ||
25431 | -#: c-decl.c:5790 | |
25432 | +#: c-decl.c:5791 | |
25433 | #, gcc-internal-format | |
25434 | msgid "%<_Alignas%> specifiers cannot reduce alignment of %qE" | |
25435 | msgstr "los especificadores %<_Alignas%> no pueden reducir la alineación de %qE" | |
25436 | ||
25437 | -#: c-decl.c:5793 | |
25438 | +#: c-decl.c:5794 | |
25439 | #, gcc-internal-format | |
25440 | msgid "%<_Alignas%> specifiers cannot reduce alignment of unnamed field" | |
25441 | msgstr "los especificadores %<_Alignas%> no pueden reducir la alineación del campo sin nombre" | |
25442 | ||
25443 | -#: c-decl.c:5832 | |
25444 | +#: c-decl.c:5833 | |
25445 | #, gcc-internal-format | |
25446 | msgid "typedef %q+D declared %<inline%>" | |
25447 | msgstr "la definición de tipo %q+D se declaró como %<inline%>" | |
25448 | ||
25449 | -#: c-decl.c:5834 | |
25450 | +#: c-decl.c:5835 | |
25451 | #, gcc-internal-format | |
25452 | msgid "typedef %q+D declared %<_Noreturn%>" | |
25453 | msgstr "la definición de tipo %q+D se declaró como %<_Noreturn%>" | |
25454 | ||
25455 | -#: c-decl.c:5870 | |
25456 | +#: c-decl.c:5871 | |
25457 | #, gcc-internal-format | |
25458 | msgid "ISO C forbids const or volatile function types" | |
25459 | msgstr "ISO C prohíbe los tipos de función const o volatile" | |
25460 | ||
25461 | #. C99 6.7.2.1p8 | |
25462 | -#: c-decl.c:5880 | |
25463 | +#: c-decl.c:5881 | |
25464 | #, gcc-internal-format | |
25465 | msgid "a member of a structure or union cannot have a variably modified type" | |
25466 | msgstr "un miembro de una estructura o union no puede tener un tipo modificado variablemente" | |
25467 | ||
25468 | -#: c-decl.c:5897 cp/decl.c:8281 | |
25469 | +#: c-decl.c:5898 cp/decl.c:8291 | |
25470 | #, gcc-internal-format | |
25471 | msgid "variable or field %qE declared void" | |
25472 | msgstr "se declaró la variable o campo %qE como void" | |
25473 | ||
25474 | -#: c-decl.c:5928 | |
25475 | +#: c-decl.c:5929 | |
25476 | #, gcc-internal-format | |
25477 | msgid "attributes in parameter array declarator ignored" | |
25478 | msgstr "se descartan los atributos en los declaradores de parámetros de matriz" | |
25479 | ||
25480 | -#: c-decl.c:5962 | |
25481 | +#: c-decl.c:5963 | |
25482 | #, gcc-internal-format | |
25483 | msgid "parameter %q+D declared %<inline%>" | |
25484 | msgstr "el parámetro %q+D se declaró %<inline%>" | |
25485 | ||
25486 | -#: c-decl.c:5964 | |
25487 | +#: c-decl.c:5965 | |
25488 | #, gcc-internal-format | |
25489 | msgid "parameter %q+D declared %<_Noreturn%>" | |
25490 | msgstr "el parámetro %q+D se declaró %<_Noreturn%>" | |
25491 | ||
25492 | -#: c-decl.c:5977 | |
25493 | +#: c-decl.c:5978 | |
25494 | #, gcc-internal-format | |
25495 | msgid "field %qE declared as a function" | |
25496 | msgstr "el campo %qE se declaró como una función" | |
25497 | ||
25498 | -#: c-decl.c:5984 | |
25499 | +#: c-decl.c:5985 | |
25500 | #, gcc-internal-format | |
25501 | msgid "field %qE has incomplete type" | |
25502 | msgstr "el campo %qE tiene tipo de dato incompleto" | |
25503 | ||
25504 | -#: c-decl.c:5986 | |
25505 | +#: c-decl.c:5987 | |
25506 | #, gcc-internal-format | |
25507 | msgid "unnamed field has incomplete type" | |
25508 | msgstr "el campo sin nombre tiene tipo de dato incompleto" | |
25509 | ||
25510 | -#: c-decl.c:6003 c-decl.c:6014 c-decl.c:6017 | |
25511 | +#: c-decl.c:6004 c-decl.c:6015 c-decl.c:6018 | |
25512 | #, gcc-internal-format | |
25513 | msgid "invalid storage class for function %qE" | |
25514 | msgstr "clase de almacenamiento inválida para la función %qE" | |
25515 | ||
25516 | -#: c-decl.c:6068 | |
25517 | +#: c-decl.c:6069 | |
25518 | #, gcc-internal-format | |
25519 | msgid "cannot inline function %<main%>" | |
25520 | msgstr "no se puede incluir en línea la función %<main%>" | |
25521 | ||
25522 | -#: c-decl.c:6070 | |
25523 | +#: c-decl.c:6071 | |
25524 | #, gcc-internal-format | |
25525 | msgid "%<main%> declared %<_Noreturn%>" | |
25526 | msgstr "%<main%> se declaró como %<_Noreturn%>" | |
25527 | ||
25528 | -#: c-decl.c:6083 | |
25529 | +#: c-decl.c:6084 | |
25530 | #, gcc-internal-format | |
25531 | msgid "ISO C99 does not support %<_Noreturn%>" | |
25532 | msgstr "ISO C99 no admite %<_Noreturn%>" | |
25533 | ||
25534 | -#: c-decl.c:6086 | |
25535 | +#: c-decl.c:6087 | |
25536 | #, gcc-internal-format | |
25537 | msgid "ISO C90 does not support %<_Noreturn%>" | |
25538 | msgstr "ISO C90 no admite %<_Noreturn%>" | |
25539 | ||
25540 | -#: c-decl.c:6115 | |
25541 | +#: c-decl.c:6116 | |
25542 | #, gcc-internal-format | |
25543 | msgid "variable previously declared %<static%> redeclared %<extern%>" | |
25544 | msgstr "una variable previamente declarada como %<static%> se redeclara como %<extern%>" | |
25545 | ||
25546 | -#: c-decl.c:6125 | |
25547 | +#: c-decl.c:6126 | |
25548 | #, gcc-internal-format | |
25549 | msgid "variable %q+D declared %<inline%>" | |
25550 | msgstr "la variable %q+D se declaró como %<inline%>" | |
25551 | ||
25552 | -#: c-decl.c:6127 | |
25553 | +#: c-decl.c:6128 | |
25554 | #, gcc-internal-format | |
25555 | msgid "variable %q+D declared %<_Noreturn%>" | |
25556 | msgstr "la variable %q+D se declaró como %<_Noreturn%>" | |
25557 | ||
25558 | -#: c-decl.c:6162 | |
25559 | +#: c-decl.c:6163 | |
25560 | #, gcc-internal-format | |
25561 | msgid "non-nested function with variably modified type" | |
25562 | msgstr "función no anidada con tipo modificado variablemente" | |
25563 | ||
25564 | -#: c-decl.c:6164 | |
25565 | +#: c-decl.c:6165 | |
25566 | #, gcc-internal-format | |
25567 | msgid "object with variably modified type must have no linkage" | |
25568 | msgstr "un objeto con tipo modificado variablemente no debe tener enlace" | |
25569 | ||
25570 | -#: c-decl.c:6254 c-decl.c:7813 | |
25571 | +#: c-decl.c:6255 c-decl.c:7815 | |
25572 | #, gcc-internal-format | |
25573 | msgid "function declaration isn%'t a prototype" | |
25574 | msgstr "la declaración de la función no es un prototipo" | |
25575 | ||
25576 | -#: c-decl.c:6263 | |
25577 | +#: c-decl.c:6264 | |
25578 | #, gcc-internal-format | |
25579 | msgid "parameter names (without types) in function declaration" | |
25580 | msgstr "nombres de parámetros (sin tipos) en la declaración de la función" | |
25581 | ||
25582 | -#: c-decl.c:6301 | |
25583 | +#: c-decl.c:6302 | |
25584 | #, gcc-internal-format | |
25585 | msgid "parameter %u (%q+D) has incomplete type" | |
25586 | msgstr "el parámetro %u (%q+D) tiene tipo incompleto" | |
25587 | ||
25588 | -#: c-decl.c:6305 | |
25589 | +#: c-decl.c:6306 | |
25590 | #, gcc-internal-format, gfc-internal-format | |
25591 | msgid "parameter %u has incomplete type" | |
25592 | msgstr "el parámetro %u tiene tipo incompleto" | |
25593 | ||
25594 | -#: c-decl.c:6316 | |
25595 | +#: c-decl.c:6317 | |
25596 | #, gcc-internal-format | |
25597 | msgid "parameter %u (%q+D) has void type" | |
25598 | msgstr "el parámetro %u (%q+D) tiene tipo void" | |
25599 | ||
25600 | -#: c-decl.c:6320 | |
25601 | +#: c-decl.c:6321 | |
25602 | #, gcc-internal-format, gfc-internal-format | |
25603 | msgid "parameter %u has void type" | |
25604 | msgstr "el parámetro %u tiene tipo void" | |
25605 | ||
25606 | -#: c-decl.c:6405 | |
25607 | +#: c-decl.c:6406 | |
25608 | #, gcc-internal-format | |
25609 | msgid "%<void%> as only parameter may not be qualified" | |
25610 | msgstr "no se puede calificar %<void%> si es el único parámetro" | |
25611 | ||
25612 | -#: c-decl.c:6409 c-decl.c:6444 | |
25613 | +#: c-decl.c:6410 c-decl.c:6445 | |
25614 | #, gcc-internal-format | |
25615 | msgid "%<void%> must be the only parameter" | |
25616 | msgstr "%<void%> debe ser el único parámetro" | |
25617 | ||
25618 | -#: c-decl.c:6438 | |
25619 | +#: c-decl.c:6439 | |
25620 | #, gcc-internal-format | |
25621 | msgid "parameter %q+D has just a forward declaration" | |
25622 | msgstr "el parámetro %q+D sólo tiene una declaración posterior" | |
25623 | ||
25624 | #. The %s will be one of 'struct', 'union', or 'enum'. | |
25625 | -#: c-decl.c:6483 | |
25626 | +#: c-decl.c:6484 | |
25627 | #, gcc-internal-format | |
25628 | msgid "%<%s %E%> declared inside parameter list" | |
25629 | msgstr "se declaró %<%s %E%> dentro de la lista de parámetros" | |
25630 | ||
25631 | #. The %s will be one of 'struct', 'union', or 'enum'. | |
25632 | -#: c-decl.c:6487 | |
25633 | +#: c-decl.c:6488 | |
25634 | #, gcc-internal-format, gfc-internal-format | |
25635 | msgid "anonymous %s declared inside parameter list" | |
25636 | msgstr "el %s anónimo se declaró dentro de una lista de parámetros" | |
25637 | ||
25638 | -#: c-decl.c:6492 | |
25639 | +#: c-decl.c:6493 | |
25640 | #, gcc-internal-format | |
25641 | msgid "its scope is only this definition or declaration, which is probably not what you want" | |
25642 | msgstr "su ámbito es solamente esta definición o declaración, lo cual probablemente no es lo que desea" | |
25643 | ||
25644 | -#: c-decl.c:6592 | |
25645 | +#: c-decl.c:6593 | |
25646 | #, gcc-internal-format | |
25647 | msgid "enum type defined here" | |
25648 | msgstr "se definió el tipo enum aquí" | |
25649 | ||
25650 | -#: c-decl.c:6598 | |
25651 | +#: c-decl.c:6599 | |
25652 | #, gcc-internal-format | |
25653 | msgid "struct defined here" | |
25654 | msgstr "se definió struct aquí" | |
25655 | ||
25656 | -#: c-decl.c:6604 | |
25657 | +#: c-decl.c:6605 | |
25658 | #, gcc-internal-format | |
25659 | msgid "union defined here" | |
25660 | msgstr "se definió union aquí" | |
25661 | ||
25662 | -#: c-decl.c:6677 | |
25663 | +#: c-decl.c:6678 | |
25664 | #, gcc-internal-format | |
25665 | msgid "redefinition of %<union %E%>" | |
25666 | msgstr "redefinición de %<union %E%>" | |
25667 | ||
25668 | -#: c-decl.c:6679 | |
25669 | +#: c-decl.c:6680 | |
25670 | #, gcc-internal-format | |
25671 | msgid "redefinition of %<struct %E%>" | |
25672 | msgstr "redefinición de %<struct %E%>" | |
25673 | ||
25674 | -#: c-decl.c:6688 | |
25675 | +#: c-decl.c:6689 | |
25676 | #, gcc-internal-format | |
25677 | msgid "nested redefinition of %<union %E%>" | |
25678 | msgstr "redefinición anidada de %<union %E%>" | |
25679 | ||
25680 | -#: c-decl.c:6690 | |
25681 | +#: c-decl.c:6691 | |
25682 | #, gcc-internal-format | |
25683 | msgid "nested redefinition of %<struct %E%>" | |
25684 | msgstr "redefinición anidada de %<struct %E%>" | |
25685 | ||
25686 | -#: c-decl.c:6722 c-decl.c:7411 | |
25687 | +#: c-decl.c:6723 c-decl.c:7412 | |
25688 | #, gcc-internal-format | |
25689 | msgid "defining type in %qs expression is invalid in C++" | |
25690 | msgstr "la definición de tipo en %qs es inválida en C++" | |
25691 | ||
25692 | -#: c-decl.c:6791 cp/decl.c:4147 | |
25693 | +#: c-decl.c:6792 cp/decl.c:4152 | |
25694 | #, gcc-internal-format | |
25695 | msgid "declaration does not declare anything" | |
25696 | msgstr "la declaración no declara nada" | |
25697 | ||
25698 | -#: c-decl.c:6798 | |
25699 | +#: c-decl.c:6799 | |
25700 | #, gcc-internal-format | |
25701 | msgid "ISO C99 doesn%'t support unnamed structs/unions" | |
25702 | msgstr "ISO C99 no admite structs/unions sin nombre" | |
25703 | ||
25704 | -#: c-decl.c:6801 | |
25705 | +#: c-decl.c:6802 | |
25706 | #, gcc-internal-format | |
25707 | msgid "ISO C90 doesn%'t support unnamed structs/unions" | |
25708 | msgstr "ISO C90 no admite structs/unions sin nombre" | |
25709 | ||
25710 | -#: c-decl.c:6893 c-decl.c:6912 c-decl.c:6975 | |
25711 | +#: c-decl.c:6894 c-decl.c:6913 c-decl.c:6976 | |
25712 | #, gcc-internal-format | |
25713 | msgid "duplicate member %q+D" | |
25714 | msgstr "miembro %q+D duplicado" | |
25715 | ||
25716 | -#: c-decl.c:7085 | |
25717 | +#: c-decl.c:7086 | |
25718 | #, gcc-internal-format | |
25719 | msgid "union has no named members" | |
25720 | msgstr "union no tiene miembros nombrados" | |
25721 | ||
25722 | -#: c-decl.c:7087 | |
25723 | +#: c-decl.c:7088 | |
25724 | #, gcc-internal-format | |
25725 | msgid "union has no members" | |
25726 | msgstr "union no tiene miembros" | |
25727 | ||
25728 | -#: c-decl.c:7092 | |
25729 | +#: c-decl.c:7093 | |
25730 | #, gcc-internal-format | |
25731 | msgid "struct has no named members" | |
25732 | msgstr "struct no tiene miembros nombrados" | |
25733 | ||
25734 | -#: c-decl.c:7094 | |
25735 | +#: c-decl.c:7095 | |
25736 | #, gcc-internal-format | |
25737 | msgid "struct has no members" | |
25738 | msgstr "struct no tiene miembros" | |
25739 | ||
25740 | -#: c-decl.c:7157 | |
25741 | +#: c-decl.c:7158 | |
25742 | #, gcc-internal-format | |
25743 | msgid "flexible array member in union" | |
25744 | msgstr "miembro de matriz flexible en union" | |
25745 | ||
25746 | -#: c-decl.c:7163 | |
25747 | +#: c-decl.c:7164 | |
25748 | #, gcc-internal-format | |
25749 | msgid "flexible array member not at end of struct" | |
25750 | msgstr "el miembro de matriz flexible no está al final del struct" | |
25751 | ||
25752 | -#: c-decl.c:7169 | |
25753 | +#: c-decl.c:7170 | |
25754 | #, gcc-internal-format | |
25755 | msgid "flexible array member in otherwise empty struct" | |
25756 | msgstr "el miembro de matriz flexible sería de otra manera un struct vacío" | |
25757 | ||
25758 | -#: c-decl.c:7288 | |
25759 | +#: c-decl.c:7289 | |
25760 | #, gcc-internal-format | |
25761 | msgid "union cannot be made transparent" | |
25762 | msgstr "union no se puede hacer transparente" | |
25763 | ||
25764 | -#: c-decl.c:7384 | |
25765 | +#: c-decl.c:7385 | |
25766 | #, gcc-internal-format | |
25767 | msgid "nested redefinition of %<enum %E%>" | |
25768 | msgstr "redefinición anidada de %<enum %E%>" | |
25769 | ||
25770 | #. This enum is a named one that has been declared already. | |
25771 | -#: c-decl.c:7391 | |
25772 | +#: c-decl.c:7392 | |
25773 | #, gcc-internal-format | |
25774 | msgid "redeclaration of %<enum %E%>" | |
25775 | msgstr "redeclaración de %<enum %E%>" | |
25776 | ||
25777 | -#: c-decl.c:7466 | |
25778 | +#: c-decl.c:7467 | |
25779 | #, gcc-internal-format | |
25780 | msgid "enumeration values exceed range of largest integer" | |
25781 | msgstr "los valores de enumeración exceden el rango del entero más grande" | |
25782 | ||
25783 | -#: c-decl.c:7483 | |
25784 | +#: c-decl.c:7484 | |
25785 | #, gcc-internal-format | |
25786 | msgid "specified mode too small for enumeral values" | |
25787 | msgstr "el modo especificado es demasiado pequeño para valores enumerados" | |
25788 | ||
25789 | -#: c-decl.c:7588 c-decl.c:7604 | |
25790 | +#: c-decl.c:7589 c-decl.c:7605 | |
25791 | #, gcc-internal-format | |
25792 | msgid "enumerator value for %qE is not an integer constant" | |
25793 | msgstr "el valor de enumerador para %qE no es una constante entera" | |
25794 | ||
25795 | -#: c-decl.c:7599 | |
25796 | +#: c-decl.c:7600 | |
25797 | #, gcc-internal-format | |
25798 | msgid "enumerator value for %qE is not an integer constant expression" | |
25799 | msgstr "el valor de enumerador para %qE no es una expresión constante entera" | |
25800 | ||
25801 | -#: c-decl.c:7623 | |
25802 | +#: c-decl.c:7624 | |
25803 | #, gcc-internal-format | |
25804 | msgid "overflow in enumeration values" | |
25805 | msgstr "desbordamiento en valores de enumeración" | |
25806 | ||
25807 | -#: c-decl.c:7631 | |
25808 | +#: c-decl.c:7632 | |
25809 | #, gcc-internal-format | |
25810 | msgid "ISO C restricts enumerator values to range of %<int%>" | |
25811 | msgstr "ISO C restringe los valores de enumeración al rango de %<int%>" | |
25812 | ||
25813 | -#: c-decl.c:7715 | |
25814 | +#: c-decl.c:7717 | |
25815 | #, gcc-internal-format | |
25816 | msgid "inline function %qD given attribute noinline" | |
25817 | msgstr "se le dió a la función incluída en línea %qD un atributo noinline" | |
25818 | ||
25819 | -#: c-decl.c:7733 | |
25820 | +#: c-decl.c:7735 | |
25821 | #, gcc-internal-format | |
25822 | msgid "return type is an incomplete type" | |
25823 | msgstr "el tipo de devolución es un tipo de dato incompleto" | |
25824 | ||
25825 | -#: c-decl.c:7743 | |
25826 | +#: c-decl.c:7745 | |
25827 | #, gcc-internal-format | |
25828 | msgid "return type defaults to %<int%>" | |
25829 | msgstr "el tipo de devolución por defecto es %<int%>" | |
25830 | ||
25831 | -#: c-decl.c:7821 | |
25832 | +#: c-decl.c:7823 | |
25833 | #, gcc-internal-format | |
25834 | msgid "no previous prototype for %qD" | |
25835 | msgstr "no hay un prototipo previo para %qD" | |
25836 | ||
25837 | -#: c-decl.c:7830 | |
25838 | +#: c-decl.c:7832 | |
25839 | #, gcc-internal-format | |
25840 | msgid "%qD was used with no prototype before its definition" | |
25841 | msgstr "se usó %qD sin prototipo antes de su definición" | |
25842 | ||
25843 | -#: c-decl.c:7837 | |
25844 | +#: c-decl.c:7839 | |
25845 | #, gcc-internal-format | |
25846 | msgid "no previous declaration for %qD" | |
25847 | msgstr "no hay declaración previa para %qD" | |
25848 | ||
25849 | -#: c-decl.c:7847 | |
25850 | +#: c-decl.c:7849 | |
25851 | #, gcc-internal-format | |
25852 | msgid "%qD was used with no declaration before its definition" | |
25853 | msgstr "se usó %qD sin declaración antes de su definición" | |
25854 | ||
25855 | -#: c-decl.c:7866 | |
25856 | +#: c-decl.c:7868 | |
25857 | #, gcc-internal-format | |
25858 | msgid "return type of %qD is not %<int%>" | |
25859 | msgstr "el tipo de devolución de %qD no es %<int%>" | |
25860 | ||
25861 | -#: c-decl.c:7872 | |
25862 | +#: c-decl.c:7874 | |
25863 | #, gcc-internal-format | |
25864 | msgid "%qD is normally a non-static function" | |
25865 | msgstr "%qD generalmente es una función que no es static" | |
25866 | ||
25867 | -#: c-decl.c:7909 | |
25868 | +#: c-decl.c:7911 | |
25869 | #, gcc-internal-format | |
25870 | msgid "old-style parameter declarations in prototyped function definition" | |
25871 | msgstr "declaraciones de parámetros de estilo antiguo en la definición de una función prototipo" | |
25872 | ||
25873 | -#: c-decl.c:7923 | |
25874 | +#: c-decl.c:7925 | |
25875 | #, gcc-internal-format | |
25876 | msgid "traditional C rejects ISO C style function definitions" | |
25877 | msgstr "C tradicional rechaza la definición de funciones de estilo ISO C" | |
25878 | ||
25879 | -#: c-decl.c:7939 | |
25880 | +#: c-decl.c:7941 | |
25881 | #, gcc-internal-format | |
25882 | msgid "parameter name omitted" | |
25883 | msgstr "se omitió el nombre del parámetro" | |
25884 | ||
25885 | -#: c-decl.c:7976 | |
25886 | +#: c-decl.c:7978 | |
25887 | #, gcc-internal-format | |
25888 | msgid "old-style function definition" | |
25889 | msgstr "definición de función de estilo antiguo" | |
25890 | ||
25891 | -#: c-decl.c:7985 | |
25892 | +#: c-decl.c:7987 | |
25893 | #, gcc-internal-format | |
25894 | msgid "parameter name missing from parameter list" | |
25895 | msgstr "falta el nombre del parámetro de la lista de parámetros" | |
25896 | ||
25897 | -#: c-decl.c:8000 | |
25898 | +#: c-decl.c:8002 | |
25899 | #, gcc-internal-format | |
25900 | msgid "%qD declared as a non-parameter" | |
25901 | msgstr "%qD se declaró como un no-parámetro" | |
25902 | ||
25903 | -#: c-decl.c:8006 | |
25904 | +#: c-decl.c:8008 | |
25905 | #, gcc-internal-format | |
25906 | msgid "multiple parameters named %qD" | |
25907 | msgstr "múltiples parámetros nombrados %qD" | |
25908 | ||
25909 | -#: c-decl.c:8015 | |
25910 | +#: c-decl.c:8017 | |
25911 | #, gcc-internal-format | |
25912 | msgid "parameter %qD declared with void type" | |
25913 | msgstr "el parámetro %qD se declaró con tipo void" | |
25914 | ||
25915 | -#: c-decl.c:8044 c-decl.c:8048 | |
25916 | +#: c-decl.c:8046 c-decl.c:8050 | |
25917 | #, gcc-internal-format | |
25918 | msgid "type of %qD defaults to %<int%>" | |
25919 | msgstr "el tipo de %qD es %<int%> por defecto" | |
25920 | ||
25921 | -#: c-decl.c:8068 | |
25922 | +#: c-decl.c:8070 | |
25923 | #, gcc-internal-format | |
25924 | msgid "parameter %qD has incomplete type" | |
25925 | msgstr "el parámetro %qD tiene tipo incompleto" | |
25926 | ||
25927 | -#: c-decl.c:8075 | |
25928 | +#: c-decl.c:8077 | |
25929 | #, gcc-internal-format | |
25930 | msgid "declaration for parameter %qD but no such parameter" | |
25931 | msgstr "existe la declaración para el parámetro %qD pero no hay tal parámetro" | |
25932 | ||
25933 | -#: c-decl.c:8127 | |
25934 | +#: c-decl.c:8129 | |
25935 | #, gcc-internal-format | |
25936 | msgid "number of arguments doesn%'t match built-in prototype" | |
25937 | msgstr "el número de argumentos no coinciden con el prototipo interno" | |
25938 | ||
25939 | -#: c-decl.c:8138 | |
25940 | +#: c-decl.c:8140 | |
25941 | #, gcc-internal-format | |
25942 | msgid "number of arguments doesn%'t match prototype" | |
25943 | msgstr "el número de argumentos no coinciden con el prototipo" | |
25944 | ||
25945 | -#: c-decl.c:8141 c-decl.c:8183 c-decl.c:8197 | |
25946 | +#: c-decl.c:8143 c-decl.c:8185 c-decl.c:8199 | |
25947 | #, gcc-internal-format | |
25948 | msgid "prototype declaration" | |
25949 | msgstr "declaración de prototipo" | |
25950 | ||
25951 | -#: c-decl.c:8175 | |
25952 | +#: c-decl.c:8177 | |
25953 | #, gcc-internal-format | |
25954 | msgid "promoted argument %qD doesn%'t match built-in prototype" | |
25955 | msgstr "el argumento promovido %qD no coincide con el prototipo interno" | |
25956 | ||
25957 | -#: c-decl.c:8180 | |
25958 | +#: c-decl.c:8182 | |
25959 | #, gcc-internal-format | |
25960 | msgid "promoted argument %qD doesn%'t match prototype" | |
25961 | msgstr "el argumento promovido %qD no coincide con el prototipo" | |
25962 | ||
25963 | -#: c-decl.c:8190 | |
25964 | +#: c-decl.c:8192 | |
25965 | #, gcc-internal-format | |
25966 | msgid "argument %qD doesn%'t match built-in prototype" | |
25967 | msgstr "el argumento %qD no coincide con el prototipo interno" | |
25968 | ||
25969 | -#: c-decl.c:8195 | |
25970 | +#: c-decl.c:8197 | |
25971 | #, gcc-internal-format | |
25972 | msgid "argument %qD doesn%'t match prototype" | |
25973 | msgstr "el argumento %qD no coincide con el prototipo" | |
25974 | ||
25975 | -#: c-decl.c:8378 cp/decl.c:13501 | |
25976 | +#: c-decl.c:8380 cp/decl.c:13515 | |
25977 | #, gcc-internal-format | |
25978 | msgid "no return statement in function returning non-void" | |
25979 | msgstr "no hay una declaración de devolución en la función que no devuelve void" | |
25980 | ||
25981 | -#: c-decl.c:8398 | |
25982 | +#: c-decl.c:8400 | |
25983 | #, gcc-internal-format | |
25984 | msgid "parameter %qD set but not used" | |
25985 | msgstr "se definió el parámetro %qD pero no se usa" | |
25986 | @@ -13693,172 +13838,172 @@ | |
25987 | #. If we get here, declarations have been used in a for loop without | |
25988 | #. the C99 for loop scope. This doesn't make much sense, so don't | |
25989 | #. allow it. | |
25990 | -#: c-decl.c:8487 | |
25991 | +#: c-decl.c:8489 | |
25992 | #, gcc-internal-format | |
25993 | msgid "%<for%> loop initial declarations are only allowed in C99 mode" | |
25994 | msgstr "sólo se permiten las declaraciones iniciales del bucle %<for%> en modo C99" | |
25995 | ||
25996 | -#: c-decl.c:8492 | |
25997 | +#: c-decl.c:8494 | |
25998 | #, gcc-internal-format | |
25999 | msgid "use option -std=c99 or -std=gnu99 to compile your code" | |
26000 | msgstr "use la opción -std=c99 o -std=gnu99 para compilar su código" | |
26001 | ||
26002 | -#: c-decl.c:8526 | |
26003 | +#: c-decl.c:8528 | |
26004 | #, gcc-internal-format | |
26005 | msgid "declaration of static variable %qD in %<for%> loop initial declaration" | |
26006 | msgstr "declaración de la variable static %qD en la declaración inicial del bucle %<for%>" | |
26007 | ||
26008 | -#: c-decl.c:8530 | |
26009 | +#: c-decl.c:8532 | |
26010 | #, gcc-internal-format | |
26011 | msgid "declaration of %<extern%> variable %qD in %<for%> loop initial declaration" | |
26012 | msgstr "declaración de la variable %<extern%> %qD en la declaración inicial del bucle %<for%>" | |
26013 | ||
26014 | -#: c-decl.c:8537 | |
26015 | +#: c-decl.c:8539 | |
26016 | #, gcc-internal-format | |
26017 | msgid "%<struct %E%> declared in %<for%> loop initial declaration" | |
26018 | msgstr "%<struct %E%> se declaró en la declaración inicial del bucle %<for%>" | |
26019 | ||
26020 | -#: c-decl.c:8542 | |
26021 | +#: c-decl.c:8544 | |
26022 | #, gcc-internal-format | |
26023 | msgid "%<union %E%> declared in %<for%> loop initial declaration" | |
26024 | msgstr "%<union %E%> se declaró en la declaración inicial del bucle %<for%>" | |
26025 | ||
26026 | -#: c-decl.c:8546 | |
26027 | +#: c-decl.c:8548 | |
26028 | #, gcc-internal-format | |
26029 | msgid "%<enum %E%> declared in %<for%> loop initial declaration" | |
26030 | msgstr "%<enum %E%> se declaró en la declaración inicial del bucle %<for%>" | |
26031 | ||
26032 | -#: c-decl.c:8550 | |
26033 | +#: c-decl.c:8552 | |
26034 | #, gcc-internal-format | |
26035 | msgid "declaration of non-variable %qD in %<for%> loop initial declaration" | |
26036 | msgstr "declaración de %qD que no es variable en la declaración inicial del bucle %<for%>" | |
26037 | ||
26038 | -#: c-decl.c:8819 | |
26039 | +#: c-decl.c:8821 | |
26040 | #, gcc-internal-format | |
26041 | msgid "incompatible address space qualifiers %qs and %qs" | |
26042 | msgstr "calificadores de espacio de direcciones incompatibles %qs y %qs" | |
26043 | ||
26044 | -#: c-decl.c:8858 c-decl.c:9169 c-decl.c:9563 | |
26045 | +#: c-decl.c:8860 c-decl.c:9171 c-decl.c:9565 | |
26046 | #, gcc-internal-format | |
26047 | msgid "duplicate %qE" | |
26048 | msgstr "%qE duplicado" | |
26049 | ||
26050 | -#: c-decl.c:8884 c-decl.c:9180 c-decl.c:9437 | |
26051 | +#: c-decl.c:8886 c-decl.c:9182 c-decl.c:9439 | |
26052 | #, gcc-internal-format | |
26053 | msgid "two or more data types in declaration specifiers" | |
26054 | msgstr "dos o más tipos de datos en los especificadores de la declaración" | |
26055 | ||
26056 | -#: c-decl.c:8896 cp/parser.c:2512 | |
26057 | +#: c-decl.c:8898 cp/parser.c:2512 | |
26058 | #, gcc-internal-format | |
26059 | msgid "%<long long long%> is too long for GCC" | |
26060 | msgstr "%<long long long%> es demasiado largo para GCC" | |
26061 | ||
26062 | -#: c-decl.c:8909 | |
26063 | +#: c-decl.c:8911 | |
26064 | #, gcc-internal-format | |
26065 | msgid "ISO C90 does not support %<long long%>" | |
26066 | msgstr "ISO C90 no admite %<long long%>" | |
26067 | ||
26068 | -#: c-decl.c:9075 c-parser.c:6639 | |
26069 | +#: c-decl.c:9077 c-parser.c:6639 | |
26070 | #, gcc-internal-format | |
26071 | msgid "ISO C90 does not support complex types" | |
26072 | msgstr "ISO C90 no admite tipos complejos" | |
26073 | ||
26074 | -#: c-decl.c:9114 | |
26075 | +#: c-decl.c:9116 | |
26076 | #, gcc-internal-format | |
26077 | msgid "ISO C does not support saturating types" | |
26078 | msgstr "ISO C no admite tipos saturantes" | |
26079 | ||
26080 | -#: c-decl.c:9188 | |
26081 | +#: c-decl.c:9190 | |
26082 | #, gcc-internal-format | |
26083 | msgid "%<__int128%> is not supported for this target" | |
26084 | msgstr "no se admite %<__int128%> para este objetivo" | |
26085 | ||
26086 | -#: c-decl.c:9193 | |
26087 | +#: c-decl.c:9195 | |
26088 | #, gcc-internal-format | |
26089 | msgid "ISO C does not support %<__int128%> type" | |
26090 | msgstr "ISO C no admite el tipo %<__int128%>" | |
26091 | ||
26092 | -#: c-decl.c:9396 | |
26093 | +#: c-decl.c:9398 | |
26094 | #, gcc-internal-format | |
26095 | msgid "ISO C does not support decimal floating point" | |
26096 | msgstr "ISO C no admite coma flotante decimal" | |
26097 | ||
26098 | -#: c-decl.c:9418 c-decl.c:9644 c-parser.c:6232 | |
26099 | +#: c-decl.c:9420 c-decl.c:9646 c-parser.c:6232 | |
26100 | #, gcc-internal-format | |
26101 | msgid "fixed-point types not supported for this target" | |
26102 | msgstr "no se admiten tipos de coma fija para este objetivo" | |
26103 | ||
26104 | -#: c-decl.c:9420 | |
26105 | +#: c-decl.c:9422 | |
26106 | #, gcc-internal-format | |
26107 | msgid "ISO C does not support fixed-point types" | |
26108 | msgstr "ISO C no admite tipos de coma fija" | |
26109 | ||
26110 | -#: c-decl.c:9454 | |
26111 | +#: c-decl.c:9456 | |
26112 | #, gcc-internal-format | |
26113 | msgid "C++ lookup of %qD would return a field, not a type" | |
26114 | msgstr "la búsqueda en C++ de %qD devolvería un campo, no un tipo" | |
26115 | ||
26116 | -#: c-decl.c:9467 | |
26117 | +#: c-decl.c:9469 | |
26118 | #, gcc-internal-format | |
26119 | msgid "%qE fails to be a typedef or built in type" | |
26120 | msgstr "%qE falla al ser un typedef o un tipo interno del compilador" | |
26121 | ||
26122 | -#: c-decl.c:9509 | |
26123 | +#: c-decl.c:9511 | |
26124 | #, gcc-internal-format | |
26125 | msgid "%qE is not at beginning of declaration" | |
26126 | msgstr "%qE no está al inicio de la declaración" | |
26127 | ||
26128 | -#: c-decl.c:9528 | |
26129 | +#: c-decl.c:9530 | |
26130 | #, gcc-internal-format | |
26131 | msgid "%<__thread%> used with %<auto%>" | |
26132 | msgstr "se usó %<__thread%> con %<auto%>" | |
26133 | ||
26134 | -#: c-decl.c:9530 | |
26135 | +#: c-decl.c:9532 | |
26136 | #, gcc-internal-format | |
26137 | msgid "%<__thread%> used with %<register%>" | |
26138 | msgstr "se usó %<__thread%> con %<register%>" | |
26139 | ||
26140 | -#: c-decl.c:9532 | |
26141 | +#: c-decl.c:9534 | |
26142 | #, gcc-internal-format | |
26143 | msgid "%<__thread%> used with %<typedef%>" | |
26144 | msgstr "se usó %<__thread%> con %<typedef%>" | |
26145 | ||
26146 | -#: c-decl.c:9543 | |
26147 | +#: c-decl.c:9545 | |
26148 | #, gcc-internal-format | |
26149 | msgid "%<__thread%> before %<extern%>" | |
26150 | msgstr "%<__thread%> antes de %<extern%>" | |
26151 | ||
26152 | -#: c-decl.c:9552 | |
26153 | +#: c-decl.c:9554 | |
26154 | #, gcc-internal-format | |
26155 | msgid "%<__thread%> before %<static%>" | |
26156 | msgstr "%<__thread%> antes de %<static%>" | |
26157 | ||
26158 | -#: c-decl.c:9568 | |
26159 | +#: c-decl.c:9570 | |
26160 | #, gcc-internal-format | |
26161 | msgid "multiple storage classes in declaration specifiers" | |
26162 | msgstr "múltiples clases de almacenamiento en los especificadores de declaración" | |
26163 | ||
26164 | -#: c-decl.c:9575 | |
26165 | +#: c-decl.c:9577 | |
26166 | #, gcc-internal-format | |
26167 | msgid "%<__thread%> used with %qE" | |
26168 | msgstr "se usó %<__thread%> con %qE" | |
26169 | ||
26170 | -#: c-decl.c:9642 | |
26171 | +#: c-decl.c:9644 | |
26172 | #, gcc-internal-format | |
26173 | msgid "%<_Sat%> is used without %<_Fract%> or %<_Accum%>" | |
26174 | msgstr "se usó %<_Sat%> sin %<_Fract%> o %<_Accum%>" | |
26175 | ||
26176 | -#: c-decl.c:9656 | |
26177 | +#: c-decl.c:9658 | |
26178 | #, gcc-internal-format | |
26179 | msgid "ISO C does not support plain %<complex%> meaning %<double complex%>" | |
26180 | msgstr "ISO C no admite %<complex%> simples que significan %<double complex%>" | |
26181 | ||
26182 | -#: c-decl.c:9701 c-decl.c:9714 c-decl.c:9740 | |
26183 | +#: c-decl.c:9703 c-decl.c:9716 c-decl.c:9742 | |
26184 | #, gcc-internal-format | |
26185 | msgid "ISO C does not support complex integer types" | |
26186 | msgstr "ISO C no admite tipos enteros complejos" | |
26187 | ||
26188 | -#: c-decl.c:9894 toplev.c:484 | |
26189 | +#: c-decl.c:9896 toplev.c:484 | |
26190 | #, gcc-internal-format | |
26191 | msgid "%q+F used but never defined" | |
26192 | msgstr "se usa %q+F pero nunca se define" | |
26193 | @@ -14458,7 +14603,7 @@ | |
26194 | msgid "collapsed loops not perfectly nested" | |
26195 | msgstr "los bucles colapsados no están perfectamente anidados" | |
26196 | ||
26197 | -#: c-parser.c:10102 cp/parser.c:26364 cp/parser.c:26402 cp/pt.c:12677 | |
26198 | +#: c-parser.c:10102 cp/parser.c:26364 cp/parser.c:26402 cp/pt.c:12690 | |
26199 | #, gcc-internal-format | |
26200 | msgid "iteration variable %qD should not be firstprivate" | |
26201 | msgstr "la variable de iteración %qD no debe ser firstprivate" | |
26202 | @@ -14687,7 +14832,7 @@ | |
26203 | msgid "too many arguments to method %qE" | |
26204 | msgstr "demasiados argumentos para el método %qE" | |
26205 | ||
26206 | -#: c-typeck.c:3036 c-family/c-common.c:8433 c-family/c-common.c:9359 | |
26207 | +#: c-typeck.c:3036 c-family/c-common.c:8433 c-family/c-common.c:9361 | |
26208 | #, gcc-internal-format | |
26209 | msgid "too many arguments to function %qE" | |
26210 | msgstr "demasiados argumentos para la función %qE" | |
26211 | @@ -14912,7 +15057,7 @@ | |
26212 | msgid "pointer/integer type mismatch in conditional expression" | |
26213 | msgstr "los tipos de datos punteros/enteros no coinciden en la expresión condicional" | |
26214 | ||
26215 | -#: c-typeck.c:4373 tree-cfg.c:3824 | |
26216 | +#: c-typeck.c:4373 tree-cfg.c:3821 | |
26217 | #, gcc-internal-format | |
26218 | msgid "type mismatch in conditional expression" | |
26219 | msgstr "los tipos de datos no coinciden en la expresión condicional" | |
26220 | @@ -15322,7 +15467,7 @@ | |
26221 | msgid "invalid initializer" | |
26222 | msgstr "inicializador inválido" | |
26223 | ||
26224 | -#: c-typeck.c:6652 cp/decl.c:5526 | |
26225 | +#: c-typeck.c:6652 cp/decl.c:5536 | |
26226 | #, gcc-internal-format | |
26227 | msgid "opaque vector types cannot be initialized" | |
26228 | msgstr "no se pueden inicializar los tipos de vector opacos" | |
26229 | @@ -15703,7 +15848,7 @@ | |
26230 | msgid "C++ requires promoted type, not enum type, in %<va_arg%>" | |
26231 | msgstr "C++ requiere un tipo promovido, no un tipo enum, en %<va_arg%>" | |
26232 | ||
26233 | -#: calls.c:2311 | |
26234 | +#: calls.c:2316 | |
26235 | #, gcc-internal-format | |
26236 | msgid "function call has aggregate value" | |
26237 | msgstr "la llamada a la función tiene valor agregado" | |
26238 | @@ -16168,217 +16313,222 @@ | |
26239 | msgid "caller edge frequency %i does not match BB frequency %i" | |
26240 | msgstr "la frecuencia de borde llamador %i no coincide con la frecuencia BB %i" | |
26241 | ||
26242 | -#: cgraphunit.c:501 | |
26243 | +#: cgraphunit.c:507 | |
26244 | #, gcc-internal-format, gfc-internal-format | |
26245 | msgid "aux field set for edge %s->%s" | |
26246 | msgstr "campo aux establecido para el borde %s->%s" | |
26247 | ||
26248 | -#: cgraphunit.c:508 | |
26249 | +#: cgraphunit.c:514 | |
26250 | #, gcc-internal-format | |
26251 | msgid "execution count is negative" | |
26252 | msgstr "la cuenta de ejecución es negativa" | |
26253 | ||
26254 | -#: cgraphunit.c:513 | |
26255 | +#: cgraphunit.c:519 | |
26256 | #, gcc-internal-format | |
26257 | msgid "externally visible inline clone" | |
26258 | msgstr "clon incluído en línea visible externamente" | |
26259 | ||
26260 | -#: cgraphunit.c:518 | |
26261 | +#: cgraphunit.c:524 | |
26262 | #, gcc-internal-format | |
26263 | msgid "inline clone with address taken" | |
26264 | msgstr "clon incluído en línea con dirección tomada" | |
26265 | ||
26266 | -#: cgraphunit.c:523 | |
26267 | +#: cgraphunit.c:529 | |
26268 | #, gcc-internal-format | |
26269 | msgid "inline clone is needed" | |
26270 | msgstr "se necesita un clon incluído en línea" | |
26271 | ||
26272 | -#: cgraphunit.c:530 | |
26273 | +#: cgraphunit.c:536 | |
26274 | #, gcc-internal-format, gfc-internal-format | |
26275 | msgid "aux field set for indirect edge from %s" | |
26276 | msgstr "se define el campo aux para el borde indirecto desde %s" | |
26277 | ||
26278 | -#: cgraphunit.c:537 | |
26279 | +#: cgraphunit.c:543 | |
26280 | #, gcc-internal-format, gfc-internal-format | |
26281 | msgid "An indirect edge from %s is not marked as indirect or has associated indirect_info, the corresponding statement is: " | |
26282 | msgstr "Un borde indirecto de %s no está marcado como indirecto o tiene indirect_info asociado, la declaración correspondiente es: " | |
26283 | ||
26284 | -#: cgraphunit.c:554 | |
26285 | +#: cgraphunit.c:560 | |
26286 | #, gcc-internal-format | |
26287 | msgid "inlined_to pointer is wrong" | |
26288 | msgstr "el puntero inlined_to está mal" | |
26289 | ||
26290 | -#: cgraphunit.c:559 | |
26291 | +#: cgraphunit.c:565 | |
26292 | #, gcc-internal-format | |
26293 | msgid "multiple inline callers" | |
26294 | msgstr "múltiples llamantes inline" | |
26295 | ||
26296 | -#: cgraphunit.c:566 | |
26297 | +#: cgraphunit.c:572 | |
26298 | #, gcc-internal-format | |
26299 | msgid "inlined_to pointer set for noninline callers" | |
26300 | msgstr "se estableció el puntero inlined_to para llamantes no-inline" | |
26301 | ||
26302 | -#: cgraphunit.c:575 | |
26303 | +#: cgraphunit.c:581 | |
26304 | #, gcc-internal-format | |
26305 | msgid "inlined_to pointer is set but no predecessors found" | |
26306 | msgstr "se estableció el puntero inlined_to, pero no se encontraron predecesores" | |
26307 | ||
26308 | -#: cgraphunit.c:580 | |
26309 | +#: cgraphunit.c:586 | |
26310 | #, gcc-internal-format | |
26311 | msgid "inlined_to pointer refers to itself" | |
26312 | msgstr "el puntero inlined_to se refiere a sí mismo" | |
26313 | ||
26314 | -#: cgraphunit.c:586 | |
26315 | +#: cgraphunit.c:592 | |
26316 | #, gcc-internal-format | |
26317 | msgid "node not found in cgraph_hash" | |
26318 | msgstr "no se encontró un nodo en cgraph_hash" | |
26319 | ||
26320 | -#: cgraphunit.c:598 | |
26321 | +#: cgraphunit.c:604 | |
26322 | #, gcc-internal-format | |
26323 | msgid "node has wrong clone_of" | |
26324 | msgstr "el nodo tiene un clone_of erróneo" | |
26325 | ||
26326 | -#: cgraphunit.c:610 | |
26327 | +#: cgraphunit.c:616 | |
26328 | #, gcc-internal-format | |
26329 | msgid "node has wrong clone list" | |
26330 | msgstr "el nodo tiene una lista de clones errónea" | |
26331 | ||
26332 | -#: cgraphunit.c:616 | |
26333 | +#: cgraphunit.c:622 | |
26334 | #, gcc-internal-format | |
26335 | msgid "node is in clone list but it is not clone" | |
26336 | msgstr "el nodo está en la lista de clones pero no es clon" | |
26337 | ||
26338 | -#: cgraphunit.c:621 | |
26339 | +#: cgraphunit.c:627 | |
26340 | #, gcc-internal-format | |
26341 | msgid "node has wrong prev_clone pointer" | |
26342 | msgstr "el nodo tiene un puntero prev_clone erróneo" | |
26343 | ||
26344 | -#: cgraphunit.c:626 | |
26345 | +#: cgraphunit.c:632 | |
26346 | #, gcc-internal-format | |
26347 | msgid "double linked list of clones corrupted" | |
26348 | msgstr "lista de clones doblemente ligada corrrupta" | |
26349 | ||
26350 | -#: cgraphunit.c:635 | |
26351 | +#: cgraphunit.c:641 | |
26352 | #, gcc-internal-format | |
26353 | msgid "non-DECL_ONE_ONLY node in a same_comdat_group list" | |
26354 | msgstr "nodo que no es DECL_ONE_ONLY en una lista same_comdat_group" | |
26355 | ||
26356 | -#: cgraphunit.c:640 | |
26357 | +#: cgraphunit.c:646 | |
26358 | #, gcc-internal-format | |
26359 | msgid "node is alone in a comdat group" | |
26360 | msgstr "el nodo está solo en un grupo comdat" | |
26361 | ||
26362 | -#: cgraphunit.c:647 | |
26363 | +#: cgraphunit.c:653 | |
26364 | #, gcc-internal-format | |
26365 | msgid "same_comdat_group is not a circular list" | |
26366 | msgstr "same_comdat_group no es una lista circular" | |
26367 | ||
26368 | -#: cgraphunit.c:664 | |
26369 | +#: cgraphunit.c:670 | |
26370 | #, gcc-internal-format | |
26371 | msgid "Alias has call edges" | |
26372 | msgstr "Alias tiene bordes de llamada" | |
26373 | ||
26374 | -#: cgraphunit.c:670 | |
26375 | +#: cgraphunit.c:676 | |
26376 | #, gcc-internal-format | |
26377 | -msgid "Alias has non-alias refernece" | |
26378 | +msgid "Alias has non-alias reference" | |
26379 | msgstr "Alias tiene una referencia que no es alias" | |
26380 | ||
26381 | -#: cgraphunit.c:675 | |
26382 | +#: cgraphunit.c:681 | |
26383 | #, gcc-internal-format | |
26384 | msgid "Alias has more than one alias reference" | |
26385 | msgstr "Alias tiene más de una referencia alias" | |
26386 | ||
26387 | -#: cgraphunit.c:682 | |
26388 | +#: cgraphunit.c:688 | |
26389 | #, gcc-internal-format | |
26390 | msgid "Analyzed alias has no reference" | |
26391 | msgstr "El alias analizado no tiene referencia" | |
26392 | ||
26393 | -#: cgraphunit.c:690 | |
26394 | +#: cgraphunit.c:696 | |
26395 | #, gcc-internal-format | |
26396 | msgid "No edge out of thunk node" | |
26397 | msgstr "No hay un borde fuera de un nodo thunk" | |
26398 | ||
26399 | -#: cgraphunit.c:695 | |
26400 | +#: cgraphunit.c:701 | |
26401 | #, gcc-internal-format | |
26402 | msgid "More than one edge out of thunk node" | |
26403 | msgstr "Más de un borde fuera de un nodo thunk" | |
26404 | ||
26405 | -#: cgraphunit.c:700 | |
26406 | +#: cgraphunit.c:706 | |
26407 | #, gcc-internal-format | |
26408 | msgid "Thunk is not supposed to have body" | |
26409 | msgstr "No se supone que thunk tenga cuerpo" | |
26410 | ||
26411 | -#: cgraphunit.c:730 | |
26412 | +#: cgraphunit.c:736 | |
26413 | #, gcc-internal-format | |
26414 | msgid "shared call_stmt:" | |
26415 | msgstr "call_stmt compartida:" | |
26416 | ||
26417 | -#: cgraphunit.c:738 | |
26418 | +#: cgraphunit.c:744 | |
26419 | #, gcc-internal-format | |
26420 | msgid "edge points to wrong declaration:" | |
26421 | msgstr "puntos de borde para una declaración errónea:" | |
26422 | ||
26423 | -#: cgraphunit.c:747 | |
26424 | +#: cgraphunit.c:753 | |
26425 | #, gcc-internal-format | |
26426 | msgid "an indirect edge with unknown callee corresponding to a call_stmt with a known declaration:" | |
26427 | msgstr "un borde indirecto con un llamante desconocido que corresponde a call_stmt con una declaración conocida:" | |
26428 | ||
26429 | -#: cgraphunit.c:757 | |
26430 | +#: cgraphunit.c:763 | |
26431 | #, gcc-internal-format | |
26432 | msgid "missing callgraph edge for call stmt:" | |
26433 | msgstr "falta el borde de callgraph para la llamada stmt:" | |
26434 | ||
26435 | -#: cgraphunit.c:773 | |
26436 | +#: cgraphunit.c:779 | |
26437 | #, gcc-internal-format, gfc-internal-format | |
26438 | msgid "edge %s->%s has no corresponding call_stmt" | |
26439 | msgstr "el borde %s->%s no tiene un call_stmt correspondiente" | |
26440 | ||
26441 | -#: cgraphunit.c:785 | |
26442 | +#: cgraphunit.c:791 | |
26443 | #, gcc-internal-format, gfc-internal-format | |
26444 | msgid "an indirect edge from %s has no corresponding call_stmt" | |
26445 | msgstr "un borde indirecto desde %s no tiene un call_stmt correspondiente" | |
26446 | ||
26447 | -#: cgraphunit.c:796 | |
26448 | +#: cgraphunit.c:802 | |
26449 | #, gcc-internal-format | |
26450 | msgid "verify_cgraph_node failed" | |
26451 | msgstr "falló verify_cgraph_node" | |
26452 | ||
26453 | -#: cgraphunit.c:940 | |
26454 | +#: cgraphunit.c:851 | |
26455 | #, gcc-internal-format | |
26456 | +msgid "function %q+D part of alias cycle" | |
26457 | +msgstr "la función %q+D es parte de un ciclo de alias" | |
26458 | + | |
26459 | +#: cgraphunit.c:956 | |
26460 | +#, gcc-internal-format | |
26461 | msgid "%<weakref%> attribute should be accompanied with an %<alias%> attribute" | |
26462 | msgstr "el atributo %<weakref%> se debe acompañar con un atributo %<alias%>" | |
26463 | ||
26464 | -#: cgraphunit.c:995 cgraphunit.c:1040 | |
26465 | +#: cgraphunit.c:1011 cgraphunit.c:1056 | |
26466 | #, gcc-internal-format | |
26467 | msgid "%<externally_visible%> attribute have effect only on public objects" | |
26468 | msgstr "el atributo %<externally_visible%> sólo tiene efecto en objetos públicos" | |
26469 | ||
26470 | -#: cgraphunit.c:1004 | |
26471 | +#: cgraphunit.c:1020 | |
26472 | #, gcc-internal-format | |
26473 | msgid "%<weakref%> attribute ignored because function is defined" | |
26474 | msgstr "se descarta el atributo %<weakref%> porque ya se definió la función" | |
26475 | ||
26476 | -#: cgraphunit.c:1016 | |
26477 | +#: cgraphunit.c:1032 | |
26478 | #, gcc-internal-format | |
26479 | msgid "always_inline function might not be inlinable" | |
26480 | msgstr "una función always_inline tal vez no se puede incluir en línea" | |
26481 | ||
26482 | -#: cgraphunit.c:1050 | |
26483 | +#: cgraphunit.c:1066 | |
26484 | #, gcc-internal-format | |
26485 | msgid "%<weakref%> attribute ignored because variable is initialized" | |
26486 | msgstr "se descarta el atributo %<weakref%> porque ya se inicializó la variable" | |
26487 | ||
26488 | -#: cgraphunit.c:1404 | |
26489 | +#: cgraphunit.c:1420 | |
26490 | #, gcc-internal-format | |
26491 | msgid "failed to reclaim unneeded function" | |
26492 | msgstr "falló al reclamar una función innecesaria" | |
26493 | ||
26494 | -#: cgraphunit.c:1430 | |
26495 | +#: cgraphunit.c:1447 | |
26496 | #, gcc-internal-format | |
26497 | -msgid "failed to reclaim unneeded functionin same comdat group" | |
26498 | +msgid "failed to reclaim unneeded function in same comdat group" | |
26499 | msgstr "falló al reclamar una función innecesaria en el mismo grupo comdat" | |
26500 | ||
26501 | -#: cgraphunit.c:2233 | |
26502 | +#: cgraphunit.c:2251 | |
26503 | #, gcc-internal-format | |
26504 | msgid "nodes with unreleased memory found" | |
26505 | msgstr "se encontraron nodos sin memoria liberada" | |
26506 | @@ -16448,12 +16598,12 @@ | |
26507 | msgid "cannot find '%s'" | |
26508 | msgstr "no se puede encontrar '%s'" | |
26509 | ||
26510 | -#: collect2.c:2081 collect2.c:2617 collect2.c:2813 gcc.c:2652 | |
26511 | +#: collect2.c:2081 collect2.c:2617 collect2.c:2813 gcc.c:2658 | |
26512 | #, gcc-internal-format | |
26513 | msgid "pex_init failed: %m" | |
26514 | msgstr "falló pex_init: %m" | |
26515 | ||
26516 | -#: collect2.c:2090 collect2.c:2626 collect2.c:2821 gcc.c:6995 | |
26517 | +#: collect2.c:2090 collect2.c:2626 collect2.c:2821 gcc.c:7027 | |
26518 | #, gcc-internal-format | |
26519 | msgid "%s: %m" | |
26520 | msgstr "%s: %m" | |
26521 | @@ -16563,82 +16713,82 @@ | |
26522 | msgid "aggregate value used where a fixed-point was expected" | |
26523 | msgstr "se usó un valor agregado donde se esperaba uno de coma fija" | |
26524 | ||
26525 | -#: coverage.c:188 | |
26526 | +#: coverage.c:189 | |
26527 | #, gcc-internal-format | |
26528 | msgid "%qs is not a gcov data file" | |
26529 | msgstr "%qs no es un fichero de datos gcov" | |
26530 | ||
26531 | -#: coverage.c:199 | |
26532 | +#: coverage.c:200 | |
26533 | #, gcc-internal-format | |
26534 | msgid "%qs is version %q.*s, expected version %q.*s" | |
26535 | msgstr "%qs es versión %q.*s, se esperaba la versión %q.*s" | |
26536 | ||
26537 | -#: coverage.c:275 coverage.c:284 | |
26538 | +#: coverage.c:276 coverage.c:285 | |
26539 | #, gcc-internal-format, gfc-internal-format | |
26540 | msgid "Profile data for function %u is corrupted" | |
26541 | msgstr "La información de análisis de perfil para la función %u está corrupta" | |
26542 | ||
26543 | -#: coverage.c:276 | |
26544 | +#: coverage.c:277 | |
26545 | #, gcc-internal-format | |
26546 | msgid "checksum is (%x,%x) instead of (%x,%x)" | |
26547 | msgstr "la suma de comprobación es (%x,%x) en lugar de (%x,%x)" | |
26548 | ||
26549 | -#: coverage.c:285 | |
26550 | +#: coverage.c:286 | |
26551 | #, gcc-internal-format, gfc-internal-format | |
26552 | msgid "number of counters is %d instead of %d" | |
26553 | msgstr "el número de contadores es %d en lugar de %d" | |
26554 | ||
26555 | -#: coverage.c:291 | |
26556 | +#: coverage.c:292 | |
26557 | #, gcc-internal-format, gfc-internal-format | |
26558 | msgid "cannot merge separate %s counters for function %u" | |
26559 | msgstr "no se pueden mezclar contadores %s separados para la función %u" | |
26560 | ||
26561 | -#: coverage.c:310 | |
26562 | +#: coverage.c:311 | |
26563 | #, gcc-internal-format | |
26564 | msgid "%qs has overflowed" | |
26565 | msgstr "%qs se ha desbordado" | |
26566 | ||
26567 | -#: coverage.c:360 | |
26568 | +#: coverage.c:361 | |
26569 | #, gcc-internal-format | |
26570 | msgid "the control flow of function %qE does not match its profile data (counter %qs)" | |
26571 | msgstr "el flujo de control de la función %qE no coincide con sus datos de análisis de perfil (contador %qs)" | |
26572 | ||
26573 | -#: coverage.c:364 | |
26574 | +#: coverage.c:365 | |
26575 | #, gcc-internal-format | |
26576 | msgid "use -Wno-error=coverage-mismatch to tolerate the mismatch but performance may drop if the function is hot" | |
26577 | msgstr "use -Wno-error=coverage-mismatch para tolerar la diferencia pero el rendmiento puede disminuir si la función está caliente" | |
26578 | ||
26579 | -#: coverage.c:370 | |
26580 | +#: coverage.c:371 | |
26581 | #, gcc-internal-format | |
26582 | msgid "coverage mismatch ignored" | |
26583 | msgstr "se descarta la diferencia de cobertura" | |
26584 | ||
26585 | -#: coverage.c:372 | |
26586 | +#: coverage.c:373 | |
26587 | #, gcc-internal-format | |
26588 | msgid "execution counts estimated" | |
26589 | msgstr "cuentas de ejecución estimadas" | |
26590 | ||
26591 | -#: coverage.c:373 | |
26592 | +#: coverage.c:374 | |
26593 | #, gcc-internal-format | |
26594 | msgid "execution counts assumed to be zero" | |
26595 | msgstr "se asume que las cuentas de ejecución son cero" | |
26596 | ||
26597 | -#: coverage.c:376 | |
26598 | +#: coverage.c:377 | |
26599 | #, gcc-internal-format | |
26600 | msgid "this can result in poorly optimized code" | |
26601 | msgstr "esto puede resultar en código probremente optimizado" | |
26602 | ||
26603 | -#: coverage.c:384 | |
26604 | +#: coverage.c:385 | |
26605 | #, gcc-internal-format | |
26606 | msgid "source locations for function %qE have changed, the profile data may be out of date" | |
26607 | msgstr "cambiaron las ubicaciones de fuente para la función %qE, los datos de análisis de perfil pueden estar desactualizados" | |
26608 | ||
26609 | -#: coverage.c:602 | |
26610 | +#: coverage.c:603 | |
26611 | #, gcc-internal-format | |
26612 | msgid "error writing %qs" | |
26613 | msgstr "error al escribir %qs" | |
26614 | ||
26615 | -#: coverage.c:1098 | |
26616 | +#: coverage.c:1111 | |
26617 | #, gcc-internal-format, gfc-internal-format | |
26618 | msgid "cannot open %s" | |
26619 | msgstr "no se puede abrir %s" | |
26620 | @@ -16713,27 +16863,27 @@ | |
26621 | msgid "multiple EH personalities are supported only with assemblers supporting .cfi_personality directive" | |
26622 | msgstr "sólo se admiten múltiples personalidades EH con ensambladores que admiten la directiva cfi.personality" | |
26623 | ||
26624 | -#: dwarf2out.c:10672 | |
26625 | +#: dwarf2out.c:10704 | |
26626 | #, gcc-internal-format, gfc-internal-format | |
26627 | msgid "non-delegitimized UNSPEC %s (%d) found in variable location" | |
26628 | msgstr "se encontró UNSPEC %s (%d) que no está delegitimado la ubicación de variable" | |
26629 | ||
26630 | -#: emit-rtl.c:2541 | |
26631 | +#: emit-rtl.c:2556 | |
26632 | #, gcc-internal-format | |
26633 | msgid "invalid rtl sharing found in the insn" | |
26634 | msgstr "se encontró una compartición de rtl inválida en la insn" | |
26635 | ||
26636 | -#: emit-rtl.c:2543 | |
26637 | +#: emit-rtl.c:2558 | |
26638 | #, gcc-internal-format | |
26639 | msgid "shared rtx" | |
26640 | msgstr "rtx compartido" | |
26641 | ||
26642 | -#: emit-rtl.c:2545 | |
26643 | +#: emit-rtl.c:2560 | |
26644 | #, gcc-internal-format | |
26645 | msgid "internal consistency failure" | |
26646 | msgstr "falla interna de consistencia" | |
26647 | ||
26648 | -#: emit-rtl.c:3676 | |
26649 | +#: emit-rtl.c:3691 | |
26650 | #, gcc-internal-format | |
26651 | msgid "ICE: emit_insn used where emit_jump_insn needed:\n" | |
26652 | msgstr "ICE: se usa emit_insn donde se necesita emit_jump_insn:\n" | |
26653 | @@ -16828,17 +16978,17 @@ | |
26654 | msgid "when a volatile object spans multiple type-sized locations, the compiler must choose between using a single mis-aligned access to preserve the volatility, or using multiple aligned accesses to avoid runtime faults; this code may fail at runtime if the hardware does not allow this access" | |
26655 | msgstr "cuando un objeto volatile abarca múltiples ubicaciones con tamaño de tipo, el compilador debe escoger entre usar un solo acceso desalineado para preservar la volatilidad, o usar múltiples accesos alineados para evitar faltas en tiempo de ejecución; este código puede fallar en tiempo de ejecución si el hardware no permite este acceso" | |
26656 | ||
26657 | -#: expr.c:7479 | |
26658 | +#: expr.c:7523 | |
26659 | #, gcc-internal-format | |
26660 | msgid "local frame unavailable (naked function?)" | |
26661 | msgstr "el marco local no está disponible (¿Función desnuda?)" | |
26662 | ||
26663 | -#: expr.c:9951 | |
26664 | +#: expr.c:9996 | |
26665 | #, gcc-internal-format | |
26666 | msgid "%Kcall to %qs declared with attribute error: %s" | |
26667 | msgstr "%Kla llamada a %qs se redeclaró con error de atributo: %s" | |
26668 | ||
26669 | -#: expr.c:9958 | |
26670 | +#: expr.c:10003 | |
26671 | #, gcc-internal-format | |
26672 | msgid "%Kcall to %qs declared with attribute warning: %s" | |
26673 | msgstr "%Kla llamada a %qs se redecló con aviso de atributo: %s" | |
26674 | @@ -16853,12 +17003,12 @@ | |
26675 | msgid "the frame size of %wd bytes is larger than %wd bytes" | |
26676 | msgstr "el tamaño de marco de %wd bytes es mayor que %wd bytes" | |
26677 | ||
26678 | -#: final.c:4430 toplev.c:1421 tree-optimize.c:171 | |
26679 | +#: final.c:4430 toplev.c:1421 tree-optimize.c:173 | |
26680 | #, gcc-internal-format | |
26681 | msgid "could not open final insn dump file %qs: %m" | |
26682 | msgstr "no se puede abrir el fichero de volcado de insn final %qs: %m" | |
26683 | ||
26684 | -#: final.c:4483 tree-optimize.c:187 | |
26685 | +#: final.c:4483 tree-optimize.c:189 | |
26686 | #, gcc-internal-format | |
26687 | msgid "could not close final insn dump file %qs: %m" | |
26688 | msgstr "no se puede cerrar el fichero de volcado de insn final %qs: %m" | |
26689 | @@ -16913,7 +17063,7 @@ | |
26690 | msgid "assuming signed overflow does not occur when combining constants around a comparison" | |
26691 | msgstr "se asume que el desbordamiento con signo no sucede cuando se combinan constantes alrededor de una comparación" | |
26692 | ||
26693 | -#: fold-const.c:14205 | |
26694 | +#: fold-const.c:14219 | |
26695 | #, gcc-internal-format | |
26696 | msgid "fold check: original tree changed by fold" | |
26697 | msgstr "fold check: el árbol original cambió por un pliegue" | |
26698 | @@ -16923,7 +17073,7 @@ | |
26699 | msgid "total size of local objects too large" | |
26700 | msgstr "el tamaño total de los objetos locales es demasiado grande" | |
26701 | ||
26702 | -#: function.c:1732 gimplify.c:5155 | |
26703 | +#: function.c:1732 gimplify.c:5156 | |
26704 | #, gcc-internal-format | |
26705 | msgid "impossible constraint in %<asm%>" | |
26706 | msgstr "restricción imposible en %<asm%>" | |
26707 | @@ -16948,132 +17098,132 @@ | |
26708 | msgid "unused parameter %q+D" | |
26709 | msgstr "parámetro %q+D sin uso" | |
26710 | ||
26711 | -#: gcc.c:1726 gcc.c:1746 | |
26712 | +#: gcc.c:1732 gcc.c:1752 | |
26713 | #, gcc-internal-format, gfc-internal-format | |
26714 | msgid "specs %%include syntax malformed after %ld characters" | |
26715 | msgstr "sintaxis de specs %%include mal formada después de %ld caracteres" | |
26716 | ||
26717 | -#: gcc.c:1772 gcc.c:1781 gcc.c:1791 gcc.c:1801 | |
26718 | +#: gcc.c:1778 gcc.c:1787 gcc.c:1797 gcc.c:1807 | |
26719 | #, gcc-internal-format, gfc-internal-format | |
26720 | msgid "specs %%rename syntax malformed after %ld characters" | |
26721 | msgstr "sintaxis de specs %%rename mal formada después de %ld caracteres" | |
26722 | ||
26723 | -#: gcc.c:1811 | |
26724 | +#: gcc.c:1817 | |
26725 | #, gcc-internal-format, gfc-internal-format | |
26726 | msgid "specs %s spec was not found to be renamed" | |
26727 | msgstr "la especificación specs %s no se encontró para ser renombrada" | |
26728 | ||
26729 | -#: gcc.c:1818 | |
26730 | +#: gcc.c:1824 | |
26731 | #, gcc-internal-format | |
26732 | msgid "%s: attempt to rename spec %qs to already defined spec %qs" | |
26733 | msgstr "%s: se intentó renombrar la especificación %qs a la especificación %qs que ya estaba definida" | |
26734 | ||
26735 | -#: gcc.c:1839 | |
26736 | +#: gcc.c:1845 | |
26737 | #, gcc-internal-format, gfc-internal-format | |
26738 | msgid "specs unknown %% command after %ld characters" | |
26739 | msgstr "orden specs %% desconocida después de %ld caracteres" | |
26740 | ||
26741 | -#: gcc.c:1850 gcc.c:1863 | |
26742 | +#: gcc.c:1856 gcc.c:1869 | |
26743 | #, gcc-internal-format, gfc-internal-format | |
26744 | msgid "specs file malformed after %ld characters" | |
26745 | msgstr "fichero specs mal formado después de %ld caracteres" | |
26746 | ||
26747 | -#: gcc.c:1915 | |
26748 | +#: gcc.c:1921 | |
26749 | #, gcc-internal-format | |
26750 | msgid "spec file has no spec for linking" | |
26751 | msgstr "el fichero de especificación no tiene especificaciones para enlazar" | |
26752 | ||
26753 | -#: gcc.c:2444 | |
26754 | +#: gcc.c:2450 | |
26755 | #, gcc-internal-format | |
26756 | msgid "system path %qs is not absolute" | |
26757 | msgstr "la ruta del sistema %qs no es absoluta" | |
26758 | ||
26759 | -#: gcc.c:2529 | |
26760 | +#: gcc.c:2535 | |
26761 | #, gcc-internal-format | |
26762 | msgid "-pipe not supported" | |
26763 | msgstr "no se admite -pipe" | |
26764 | ||
26765 | -#: gcc.c:2691 | |
26766 | +#: gcc.c:2697 | |
26767 | #, gcc-internal-format | |
26768 | msgid "failed to get exit status: %m" | |
26769 | msgstr "no se puede obtener el estado de salida: %m" | |
26770 | ||
26771 | -#: gcc.c:2697 | |
26772 | +#: gcc.c:2703 | |
26773 | #, gcc-internal-format | |
26774 | msgid "failed to get process times: %m" | |
26775 | msgstr "no se pueden obtener los tiempos de proceso: %m" | |
26776 | ||
26777 | -#: gcc.c:2723 | |
26778 | +#: gcc.c:2729 | |
26779 | #, gcc-internal-format, gfc-internal-format | |
26780 | msgid "%s (program %s)" | |
26781 | msgstr "%s (programa %s)" | |
26782 | ||
26783 | -#: gcc.c:3142 opts-common.c:986 opts-common.c:1058 | |
26784 | +#: gcc.c:3148 opts-common.c:986 opts-common.c:1058 | |
26785 | #, gcc-internal-format | |
26786 | msgid "unrecognized command line option %qs" | |
26787 | msgstr "no se reconoce la opción de línea de órdenes %qs" | |
26788 | ||
26789 | -#: gcc.c:3395 | |
26790 | +#: gcc.c:3401 | |
26791 | #, gcc-internal-format | |
26792 | msgid "%qs is an unknown -save-temps option" | |
26793 | msgstr "%qs es una opción desconocida para -save-temps" | |
26794 | ||
26795 | -#: gcc.c:3856 | |
26796 | +#: gcc.c:3862 | |
26797 | #, gcc-internal-format | |
26798 | msgid "-pipe ignored because -save-temps specified" | |
26799 | msgstr "se descarta -pipe porque se especificó -save-temps" | |
26800 | ||
26801 | -#: gcc.c:3942 | |
26802 | +#: gcc.c:3948 | |
26803 | #, gcc-internal-format | |
26804 | msgid "%<-x %s%> after last input file has no effect" | |
26805 | msgstr "%<-x %s%> después del último fichero de entrada no tiene efecto" | |
26806 | ||
26807 | -#: gcc.c:4109 | |
26808 | +#: gcc.c:4115 | |
26809 | #, gcc-internal-format | |
26810 | msgid "unable to locate default linker script %qs in the library search paths" | |
26811 | msgstr "no se puede localizar el guión de enlazador por defecto %qs en las rutas de búsqueda de bibliotecas" | |
26812 | ||
26813 | -#: gcc.c:4312 | |
26814 | +#: gcc.c:4318 | |
26815 | #, gcc-internal-format | |
26816 | msgid "switch %qs does not start with %<-%>" | |
26817 | msgstr "la opción %qs no inicia con %<-%>" | |
26818 | ||
26819 | -#: gcc.c:4315 | |
26820 | +#: gcc.c:4321 | |
26821 | #, gcc-internal-format | |
26822 | msgid "spec-generated switch is just %<-%>" | |
26823 | msgstr "la opción generada de especificación sólo es %<-%>" | |
26824 | ||
26825 | -#: gcc.c:4406 | |
26826 | +#: gcc.c:4412 | |
26827 | #, gcc-internal-format, gfc-internal-format | |
26828 | msgid "could not open temporary response file %s" | |
26829 | msgstr "no se puede abrir el fichero de respuesta temporal %s" | |
26830 | ||
26831 | -#: gcc.c:4412 | |
26832 | +#: gcc.c:4418 | |
26833 | #, gcc-internal-format, gfc-internal-format | |
26834 | msgid "could not write to temporary response file %s" | |
26835 | msgstr "no se puede escribir en el fichero de respuesta temporal %s" | |
26836 | ||
26837 | -#: gcc.c:4418 | |
26838 | +#: gcc.c:4424 | |
26839 | #, gcc-internal-format, gfc-internal-format | |
26840 | msgid "could not close temporary response file %s" | |
26841 | msgstr "no se puede cerrar el fichero de respuesta temporal %s" | |
26842 | ||
26843 | -#: gcc.c:4541 | |
26844 | +#: gcc.c:4547 | |
26845 | #, gcc-internal-format | |
26846 | msgid "spec %qs invalid" | |
26847 | msgstr "la especificación %qs es inválida" | |
26848 | ||
26849 | -#: gcc.c:4690 | |
26850 | +#: gcc.c:4696 | |
26851 | #, gcc-internal-format | |
26852 | msgid "spec %qs has invalid %<%%0%c%>" | |
26853 | msgstr "la especificación %qs tiene un %<%%0%c%> inválido" | |
26854 | ||
26855 | -#: gcc.c:5000 | |
26856 | +#: gcc.c:5006 | |
26857 | #, gcc-internal-format | |
26858 | msgid "spec %qs has invalid %<%%W%c%>" | |
26859 | msgstr "la especificación %qs tiene un %<%%W%c%> inválido" | |
26860 | ||
26861 | -#: gcc.c:5022 | |
26862 | +#: gcc.c:5028 | |
26863 | #, gcc-internal-format | |
26864 | msgid "spec %qs has invalid %<%%x%c%>" | |
26865 | msgstr "la especificación %qs tiene un %<%%x%c%> inválido" | |
26866 | @@ -17081,210 +17231,210 @@ | |
26867 | #. Catch the case where a spec string contains something like | |
26868 | #. '%{foo:%*}'. i.e. there is no * in the pattern on the left | |
26869 | #. hand side of the :. | |
26870 | -#: gcc.c:5210 | |
26871 | +#: gcc.c:5216 | |
26872 | #, gcc-internal-format | |
26873 | msgid "spec failure: %<%%*%> has not been initialized by pattern match" | |
26874 | msgstr "falla de especificación: %<%%*%> no ha sido inicializado por coincidencia de patrón" | |
26875 | ||
26876 | -#: gcc.c:5253 | |
26877 | +#: gcc.c:5259 | |
26878 | #, gcc-internal-format | |
26879 | msgid "spec failure: unrecognized spec option %qc" | |
26880 | msgstr "falla de especificación: no se reconoce la opción de especificación %qc" | |
26881 | ||
26882 | -#: gcc.c:5313 | |
26883 | +#: gcc.c:5319 | |
26884 | #, gcc-internal-format | |
26885 | msgid "unknown spec function %qs" | |
26886 | msgstr "función de especificación %qs desconocida" | |
26887 | ||
26888 | -#: gcc.c:5331 | |
26889 | +#: gcc.c:5337 | |
26890 | #, gcc-internal-format | |
26891 | msgid "error in args to spec function %qs" | |
26892 | msgstr "error en los argumentos para la función de especificación %qs" | |
26893 | ||
26894 | -#: gcc.c:5379 | |
26895 | +#: gcc.c:5385 | |
26896 | #, gcc-internal-format | |
26897 | msgid "malformed spec function name" | |
26898 | msgstr "nombre de la función de especificación malformado" | |
26899 | ||
26900 | #. ) | |
26901 | -#: gcc.c:5382 | |
26902 | +#: gcc.c:5388 | |
26903 | #, gcc-internal-format | |
26904 | msgid "no arguments for spec function" | |
26905 | msgstr "no hay argumentos para la función de especificación" | |
26906 | ||
26907 | -#: gcc.c:5401 | |
26908 | +#: gcc.c:5407 | |
26909 | #, gcc-internal-format | |
26910 | msgid "malformed spec function arguments" | |
26911 | msgstr "argumentos de la función de especificación malformados" | |
26912 | ||
26913 | -#: gcc.c:5647 | |
26914 | +#: gcc.c:5668 | |
26915 | #, gcc-internal-format | |
26916 | msgid "braced spec %qs is invalid at %qc" | |
26917 | msgstr "la especificación entre llaves %qs es inválida en %qc" | |
26918 | ||
26919 | -#: gcc.c:5735 | |
26920 | +#: gcc.c:5756 | |
26921 | #, gcc-internal-format | |
26922 | msgid "braced spec body %qs is invalid" | |
26923 | msgstr "el cuerpo de la especificación entre llaves %qs es inválido" | |
26924 | ||
26925 | -#: gcc.c:5984 | |
26926 | +#: gcc.c:6005 | |
26927 | #, gcc-internal-format, gfc-internal-format | |
26928 | msgid "%s: could not determine length of compare-debug file %s" | |
26929 | msgstr "%s: no se puede determinar la longitud del fichero para comparar depuración %s" | |
26930 | ||
26931 | -#: gcc.c:5995 | |
26932 | +#: gcc.c:6016 | |
26933 | #, gcc-internal-format, gfc-internal-format | |
26934 | msgid "%s: -fcompare-debug failure (length)" | |
26935 | msgstr "%s: falló -fcompare-debug (longitud)" | |
26936 | ||
26937 | -#: gcc.c:6005 gcc.c:6046 | |
26938 | +#: gcc.c:6026 gcc.c:6067 | |
26939 | #, gcc-internal-format, gfc-internal-format | |
26940 | msgid "%s: could not open compare-debug file %s" | |
26941 | msgstr "%s: no se puede abrir el fichero para comparar depuración %s" | |
26942 | ||
26943 | -#: gcc.c:6025 gcc.c:6062 | |
26944 | +#: gcc.c:6046 gcc.c:6083 | |
26945 | #, gcc-internal-format, gfc-internal-format | |
26946 | msgid "%s: -fcompare-debug failure" | |
26947 | msgstr "%s: falló -fcompare-debug" | |
26948 | ||
26949 | -#: gcc.c:6140 | |
26950 | +#: gcc.c:6161 | |
26951 | #, gcc-internal-format | |
26952 | msgid "atexit failed" | |
26953 | msgstr "falló atexit" | |
26954 | ||
26955 | -#: gcc.c:6281 | |
26956 | +#: gcc.c:6302 | |
26957 | #, gcc-internal-format | |
26958 | msgid "spec failure: more than one arg to SYSROOT_SUFFIX_SPEC" | |
26959 | msgstr "falla de especificación: más de un argumento para SYSROOT_SUFFIX_SPEC" | |
26960 | ||
26961 | -#: gcc.c:6304 | |
26962 | +#: gcc.c:6325 | |
26963 | #, gcc-internal-format | |
26964 | msgid "spec failure: more than one arg to SYSROOT_HEADERS_SUFFIX_SPEC" | |
26965 | msgstr "falla de especificación: más de un argumento para SYSROOT_HEADERS_SUFFIX_SPEC" | |
26966 | ||
26967 | -#: gcc.c:6466 | |
26968 | +#: gcc.c:6491 | |
26969 | #, gcc-internal-format | |
26970 | msgid "unrecognized option %<-%s%>" | |
26971 | msgstr "no se reconoce la opción %<-%s%>" | |
26972 | ||
26973 | #. The error status indicates that only one set of fixed | |
26974 | #. headers should be built. | |
26975 | -#: gcc.c:6543 | |
26976 | +#: gcc.c:6568 | |
26977 | #, gcc-internal-format | |
26978 | msgid "not configured with sysroot headers suffix" | |
26979 | msgstr "no se configuró con el sufijo de encabezados sysroot" | |
26980 | ||
26981 | -#: gcc.c:6626 | |
26982 | +#: gcc.c:6651 | |
26983 | #, gcc-internal-format | |
26984 | msgid "no input files" | |
26985 | msgstr "no hay ficheros de entrada" | |
26986 | ||
26987 | -#: gcc.c:6675 | |
26988 | +#: gcc.c:6700 | |
26989 | #, gcc-internal-format | |
26990 | msgid "cannot specify -o with -c, -S or -E with multiple files" | |
26991 | msgstr "no se puede especificar -o con -c, -S o -E y con múltiples ficheros" | |
26992 | ||
26993 | -#: gcc.c:6705 | |
26994 | +#: gcc.c:6730 | |
26995 | #, gcc-internal-format, gfc-internal-format | |
26996 | msgid "%s: %s compiler not installed on this system" | |
26997 | msgstr "%s: el compilador %s no está instalado en este sistema" | |
26998 | ||
26999 | -#: gcc.c:6727 | |
27000 | +#: gcc.c:6752 | |
27001 | #, gcc-internal-format | |
27002 | msgid "recompiling with -fcompare-debug" | |
27003 | msgstr "se recompila con -fcompare-debug" | |
27004 | ||
27005 | -#: gcc.c:6743 | |
27006 | +#: gcc.c:6768 | |
27007 | #, gcc-internal-format | |
27008 | msgid "during -fcompare-debug recompilation" | |
27009 | msgstr "durante la recompilación -fcompare-debug" | |
27010 | ||
27011 | -#: gcc.c:6752 | |
27012 | +#: gcc.c:6777 | |
27013 | #, gcc-internal-format | |
27014 | msgid "comparing final insns dumps" | |
27015 | msgstr "se comparan volcados finales de insns" | |
27016 | ||
27017 | -#: gcc.c:6853 | |
27018 | +#: gcc.c:6883 | |
27019 | #, gcc-internal-format, gfc-internal-format | |
27020 | msgid "-fuse-linker-plugin, but %s not found" | |
27021 | msgstr "-fuse-linker-plugin, pero no se encontró %s" | |
27022 | ||
27023 | -#: gcc.c:6883 | |
27024 | +#: gcc.c:6915 | |
27025 | #, gcc-internal-format, gfc-internal-format | |
27026 | msgid "%s: linker input file unused because linking not done" | |
27027 | msgstr "%s: no se usó el fichero de entrada del enlazador porque no se hizo enlace" | |
27028 | ||
27029 | -#: gcc.c:6924 | |
27030 | +#: gcc.c:6956 | |
27031 | #, gcc-internal-format, gfc-internal-format | |
27032 | msgid "language %s not recognized" | |
27033 | msgstr "no se reconoce el lenguaje %s" | |
27034 | ||
27035 | -#: gcc.c:7150 | |
27036 | +#: gcc.c:7182 | |
27037 | #, gcc-internal-format | |
27038 | msgid "multilib spec %qs is invalid" | |
27039 | msgstr "la especificación multilib %qs es inválida" | |
27040 | ||
27041 | -#: gcc.c:7342 | |
27042 | +#: gcc.c:7374 | |
27043 | #, gcc-internal-format | |
27044 | msgid "multilib exclusions %qs is invalid" | |
27045 | msgstr "las exclusiones multilib %qs son inválidas" | |
27046 | ||
27047 | -#: gcc.c:7400 gcc.c:7541 | |
27048 | +#: gcc.c:7432 gcc.c:7573 | |
27049 | #, gcc-internal-format | |
27050 | msgid "multilib select %qs is invalid" | |
27051 | msgstr "la selección multilib %qs es inválida" | |
27052 | ||
27053 | -#: gcc.c:7579 | |
27054 | +#: gcc.c:7611 | |
27055 | #, gcc-internal-format | |
27056 | msgid "multilib exclusion %qs is invalid" | |
27057 | msgstr "la exclusión multilib %qs es inválida" | |
27058 | ||
27059 | -#: gcc.c:7785 | |
27060 | +#: gcc.c:7817 | |
27061 | #, gcc-internal-format | |
27062 | msgid "environment variable %qs not defined" | |
27063 | msgstr "no se definió la variable de ambiente %qs" | |
27064 | ||
27065 | -#: gcc.c:7897 gcc.c:7902 | |
27066 | +#: gcc.c:7929 gcc.c:7934 | |
27067 | #, gcc-internal-format | |
27068 | msgid "invalid version number %qs" | |
27069 | msgstr "número de versión %qs inválido" | |
27070 | ||
27071 | -#: gcc.c:7945 | |
27072 | +#: gcc.c:7977 | |
27073 | #, gcc-internal-format, gfc-internal-format | |
27074 | msgid "too few arguments to %%:version-compare" | |
27075 | msgstr "faltan argumentos para %%:version-compare" | |
27076 | ||
27077 | -#: gcc.c:7951 | |
27078 | +#: gcc.c:7983 | |
27079 | #, gcc-internal-format, gfc-internal-format | |
27080 | msgid "too many arguments to %%:version-compare" | |
27081 | msgstr "demasiados argumentos para %%:version-compare" | |
27082 | ||
27083 | -#: gcc.c:7992 | |
27084 | +#: gcc.c:8024 | |
27085 | #, gcc-internal-format | |
27086 | msgid "unknown operator %qs in %%:version-compare" | |
27087 | msgstr "operador %qs desconocido en %%:version-compare" | |
27088 | ||
27089 | -#: gcc.c:8115 | |
27090 | +#: gcc.c:8147 | |
27091 | #, gcc-internal-format, gfc-internal-format | |
27092 | msgid "too many arguments to %%:compare-debug-dump-opt" | |
27093 | msgstr "demasiados argumentos para %%:compare-debug-dump-opt" | |
27094 | ||
27095 | -#: gcc.c:8183 | |
27096 | +#: gcc.c:8215 | |
27097 | #, gcc-internal-format, gfc-internal-format | |
27098 | msgid "too many arguments to %%:compare-debug-self-opt" | |
27099 | msgstr "demasiados argumentos para %%:compare-debug-self-opt" | |
27100 | ||
27101 | -#: gcc.c:8218 | |
27102 | +#: gcc.c:8250 | |
27103 | #, gcc-internal-format, gfc-internal-format | |
27104 | msgid "too few arguments to %%:compare-debug-auxbase-opt" | |
27105 | msgstr "faltan argumentos para %%:compare-debug-auxbase-opt" | |
27106 | ||
27107 | -#: gcc.c:8221 | |
27108 | +#: gcc.c:8253 | |
27109 | #, gcc-internal-format, gfc-internal-format | |
27110 | msgid "too many arguments to %%:compare-debug-auxbase-opt" | |
27111 | msgstr "demasiados argumentos para %%:compare-debug-auxbase-opt" | |
27112 | ||
27113 | -#: gcc.c:8228 | |
27114 | +#: gcc.c:8260 | |
27115 | #, gcc-internal-format, gfc-internal-format | |
27116 | msgid "argument to %%:compare-debug-auxbase-opt does not end in .gk" | |
27117 | msgstr "el argumento para %%:compare-debug-auxbase-opt no termina en .gk" | |
27118 | @@ -17367,67 +17517,67 @@ | |
27119 | msgid "gimple check: expected %s(%s), have %s(%s) in %s, at %s:%d" | |
27120 | msgstr "revisión gimple: se esperaba %s(%s), se tiene %s(%s) en %s, en %s:%d" | |
27121 | ||
27122 | -#: gimplify.c:2510 | |
27123 | +#: gimplify.c:2511 | |
27124 | #, gcc-internal-format | |
27125 | msgid "using result of function returning %<void%>" | |
27126 | msgstr "se usa el resultado de una función que devuelve %<void%>" | |
27127 | ||
27128 | -#: gimplify.c:5040 | |
27129 | +#: gimplify.c:5041 | |
27130 | #, gcc-internal-format, gfc-internal-format | |
27131 | msgid "invalid lvalue in asm output %d" | |
27132 | msgstr "l-valor inválido en la salida asm %d" | |
27133 | ||
27134 | -#: gimplify.c:5156 | |
27135 | +#: gimplify.c:5157 | |
27136 | #, gcc-internal-format, gfc-internal-format | |
27137 | msgid "non-memory input %d must stay in memory" | |
27138 | msgstr "la entrada que no es de memoria %d debe permanecer en memoria" | |
27139 | ||
27140 | -#: gimplify.c:5178 | |
27141 | +#: gimplify.c:5179 | |
27142 | #, gcc-internal-format, gfc-internal-format | |
27143 | msgid "memory input %d is not directly addressable" | |
27144 | msgstr "la entrada de memoria %d no es directamente direccionable" | |
27145 | ||
27146 | -#: gimplify.c:5673 | |
27147 | +#: gimplify.c:5674 | |
27148 | #, gcc-internal-format | |
27149 | msgid "threadprivate variable %qE used in untied task" | |
27150 | msgstr "se usó la variable threadprivate %qE en una tarea sin atar" | |
27151 | ||
27152 | -#: gimplify.c:5675 gimplify.c:5737 | |
27153 | +#: gimplify.c:5676 gimplify.c:5738 | |
27154 | #, gcc-internal-format | |
27155 | msgid "enclosing task" | |
27156 | msgstr "tarea contenedora" | |
27157 | ||
27158 | -#: gimplify.c:5734 | |
27159 | +#: gimplify.c:5735 | |
27160 | #, gcc-internal-format | |
27161 | msgid "%qE not specified in enclosing parallel" | |
27162 | msgstr "no se especificó %qE en el paralelo que lo contiene" | |
27163 | ||
27164 | -#: gimplify.c:5739 | |
27165 | +#: gimplify.c:5740 | |
27166 | #, gcc-internal-format | |
27167 | msgid "enclosing parallel" | |
27168 | msgstr "paralelo contenedor" | |
27169 | ||
27170 | -#: gimplify.c:5844 | |
27171 | +#: gimplify.c:5845 | |
27172 | #, gcc-internal-format | |
27173 | msgid "iteration variable %qE should be private" | |
27174 | msgstr "la variable de iteración %qE debe ser private" | |
27175 | ||
27176 | -#: gimplify.c:5858 | |
27177 | +#: gimplify.c:5859 | |
27178 | #, gcc-internal-format | |
27179 | msgid "iteration variable %qE should not be firstprivate" | |
27180 | msgstr "la variable de iteración %qE no debe ser firstprivate" | |
27181 | ||
27182 | -#: gimplify.c:5861 | |
27183 | +#: gimplify.c:5862 | |
27184 | #, gcc-internal-format | |
27185 | msgid "iteration variable %qE should not be reduction" | |
27186 | msgstr "la variable de iteración %qE no debe ser reduction" | |
27187 | ||
27188 | -#: gimplify.c:6024 | |
27189 | +#: gimplify.c:6025 | |
27190 | #, gcc-internal-format | |
27191 | msgid "%s variable %qE is private in outer context" | |
27192 | msgstr "la variable %s %qE es private en el contexto externo" | |
27193 | ||
27194 | -#: gimplify.c:7778 | |
27195 | +#: gimplify.c:7787 | |
27196 | #, gcc-internal-format | |
27197 | msgid "gimplification failed" | |
27198 | msgstr "falló la gimplificación" | |
27199 | @@ -17661,18 +17811,18 @@ | |
27200 | msgid "critical region may not be nested inside a critical region with the same name" | |
27201 | msgstr "la región crítica puede no estar bien anidada dentro de una región crítica con el mismo nombre" | |
27202 | ||
27203 | -#: omp-low.c:7011 cp/decl.c:2880 cp/parser.c:9853 cp/parser.c:9873 | |
27204 | +#: omp-low.c:7012 cp/decl.c:2885 cp/parser.c:9853 cp/parser.c:9873 | |
27205 | #, gcc-internal-format | |
27206 | msgid "invalid exit from OpenMP structured block" | |
27207 | msgstr "salida inválida de un bloque estructurado OpenMP" | |
27208 | ||
27209 | -#: omp-low.c:7013 omp-low.c:7018 | |
27210 | +#: omp-low.c:7014 omp-low.c:7019 | |
27211 | #, gcc-internal-format | |
27212 | msgid "invalid entry to OpenMP structured block" | |
27213 | msgstr "entrada inválida a un bloque estructurado OpenMP" | |
27214 | ||
27215 | #. Otherwise, be vague and lazy, but efficient. | |
27216 | -#: omp-low.c:7021 | |
27217 | +#: omp-low.c:7022 | |
27218 | #, gcc-internal-format | |
27219 | msgid "invalid branch to/from an OpenMP structured block" | |
27220 | msgstr "ramificación inválida desde/para un bloque estructurado OpenMP" | |
27221 | @@ -17768,12 +17918,12 @@ | |
27222 | msgid "section anchors must be disabled when toplevel reorder is disabled" | |
27223 | msgstr "las anclas de seccions se deben desactivar cando el reordenamiento de nivel principal se desactiva" | |
27224 | ||
27225 | -#: opts.c:721 config/darwin.c:3002 config/sh/sh.c:804 | |
27226 | +#: opts.c:721 config/darwin.c:3002 config/sh/sh.c:809 | |
27227 | #, gcc-internal-format | |
27228 | msgid "-freorder-blocks-and-partition does not work with exceptions on this architecture" | |
27229 | msgstr "-freorder-blocks-and-partition no funciona con excepciones en esta arquitectura" | |
27230 | ||
27231 | -#: opts.c:736 config/sh/sh.c:812 | |
27232 | +#: opts.c:736 config/sh/sh.c:817 | |
27233 | #, gcc-internal-format | |
27234 | msgid "-freorder-blocks-and-partition does not support unwind info on this architecture" | |
27235 | msgstr "-freorder-blocks-and-partition no admite información de desenredo en esta arquitectura" | |
27236 | @@ -17911,7 +18061,7 @@ | |
27237 | ||
27238 | #: passes.c:712 | |
27239 | #, gcc-internal-format, gfc-internal-format | |
27240 | -msgid "unknown pass %s specified in -fdisble" | |
27241 | +msgid "unknown pass %s specified in -fdisable" | |
27242 | msgstr "se especificó el paso desconocido %s en -fdisable" | |
27243 | ||
27244 | #: passes.c:739 passes.c:829 | |
27245 | @@ -18127,49 +18277,49 @@ | |
27246 | msgid "validate_value_data: [%u] Non-empty reg in chain (%s %u %i)" | |
27247 | msgstr "validate_value_data: [%u] Registro no vacío en la cadena (%s %u %i)" | |
27248 | ||
27249 | -#: reginfo.c:820 | |
27250 | +#: reginfo.c:822 | |
27251 | #, gcc-internal-format | |
27252 | msgid "can%'t use %qs as a call-saved register" | |
27253 | msgstr "no se puede usar %qs como un registro guardado de llamada" | |
27254 | ||
27255 | -#: reginfo.c:824 | |
27256 | +#: reginfo.c:826 | |
27257 | #, gcc-internal-format | |
27258 | msgid "can%'t use %qs as a call-used register" | |
27259 | msgstr "no se puede usar %qs como un registro usado de llamada" | |
27260 | ||
27261 | -#: reginfo.c:836 | |
27262 | +#: reginfo.c:838 | |
27263 | #, gcc-internal-format | |
27264 | msgid "can%'t use %qs as a fixed register" | |
27265 | msgstr "no se puede usar %qs como un registro fijo" | |
27266 | ||
27267 | -#: reginfo.c:862 config/ia64/ia64.c:5749 config/ia64/ia64.c:5756 | |
27268 | -#: config/pa/pa.c:424 config/pa/pa.c:431 config/sh/sh.c:8744 | |
27269 | -#: config/sh/sh.c:8751 config/spu/spu.c:5198 config/spu/spu.c:5205 | |
27270 | +#: reginfo.c:864 config/ia64/ia64.c:5749 config/ia64/ia64.c:5756 | |
27271 | +#: config/pa/pa.c:424 config/pa/pa.c:431 config/sh/sh.c:8749 | |
27272 | +#: config/sh/sh.c:8756 config/spu/spu.c:5198 config/spu/spu.c:5205 | |
27273 | #, gcc-internal-format, gfc-internal-format | |
27274 | msgid "unknown register name: %s" | |
27275 | msgstr "nombre de registro desconocido: %s" | |
27276 | ||
27277 | -#: reginfo.c:875 | |
27278 | +#: reginfo.c:877 | |
27279 | #, gcc-internal-format | |
27280 | msgid "stack register used for global register variable" | |
27281 | msgstr "se usó un nombre de registro para una variable de registro global" | |
27282 | ||
27283 | -#: reginfo.c:881 | |
27284 | +#: reginfo.c:883 | |
27285 | #, gcc-internal-format | |
27286 | msgid "global register variable follows a function definition" | |
27287 | msgstr "la variable de registro global después de una definición de función" | |
27288 | ||
27289 | -#: reginfo.c:886 | |
27290 | +#: reginfo.c:888 | |
27291 | #, gcc-internal-format | |
27292 | msgid "register of %qD used for multiple global register variables" | |
27293 | msgstr "se usó el registro de %qD para múltiples variables de registro globales" | |
27294 | ||
27295 | -#: reginfo.c:889 | |
27296 | +#: reginfo.c:891 | |
27297 | #, gcc-internal-format | |
27298 | msgid "conflicts with %qD" | |
27299 | msgstr "genera un conflicto con %qD" | |
27300 | ||
27301 | -#: reginfo.c:894 | |
27302 | +#: reginfo.c:896 | |
27303 | #, gcc-internal-format | |
27304 | msgid "call-clobbered register used for global register variable" | |
27305 | msgstr "se usó un registro de llamada alterada para una variable de registro global" | |
27306 | @@ -18414,7 +18564,7 @@ | |
27307 | msgid "packed attribute is unnecessary for %q+D" | |
27308 | msgstr "el atributo packed es innecesario para %q+D" | |
27309 | ||
27310 | -#: stor-layout.c:1153 | |
27311 | +#: stor-layout.c:1152 | |
27312 | #, gcc-internal-format | |
27313 | msgid "padding struct to align %q+D" | |
27314 | msgstr "estructura de relleno para alinear %q+D" | |
27315 | @@ -18459,47 +18609,47 @@ | |
27316 | msgid "__builtin_saveregs not supported by this target" | |
27317 | msgstr "no se admite __builtin_saveregs en este objetivo" | |
27318 | ||
27319 | -#: targhooks.c:806 | |
27320 | +#: targhooks.c:807 | |
27321 | #, gcc-internal-format | |
27322 | msgid "nested functions not supported on this target" | |
27323 | msgstr "no se admiten funciones anidadas en este objetivo" | |
27324 | ||
27325 | -#: targhooks.c:819 | |
27326 | +#: targhooks.c:820 | |
27327 | #, gcc-internal-format | |
27328 | msgid "nested function trampolines not supported on this target" | |
27329 | msgstr "no se admiten trampolines de funciones anidadas para este objetivo" | |
27330 | ||
27331 | -#: targhooks.c:1153 | |
27332 | +#: targhooks.c:1154 | |
27333 | #, gcc-internal-format | |
27334 | msgid "target attribute is not supported on this machine" | |
27335 | msgstr "el atributo target no se admite en esta plataforma" | |
27336 | ||
27337 | -#: targhooks.c:1163 | |
27338 | +#: targhooks.c:1164 | |
27339 | #, gcc-internal-format | |
27340 | msgid "#pragma GCC target is not supported for this machine" | |
27341 | msgstr "No se admite #pragma GCC target en este objetivo" | |
27342 | ||
27343 | -#: tlink.c:481 | |
27344 | +#: tlink.c:492 | |
27345 | #, gcc-internal-format | |
27346 | msgid "removing .rpo file: %m" | |
27347 | msgstr "se elimina el fichero .rpo: %m" | |
27348 | ||
27349 | -#: tlink.c:483 | |
27350 | +#: tlink.c:494 | |
27351 | #, gcc-internal-format | |
27352 | msgid "renaming .rpo file: %m" | |
27353 | msgstr "se renombra el fichero .rpo: %m" | |
27354 | ||
27355 | -#: tlink.c:487 | |
27356 | +#: tlink.c:498 | |
27357 | #, gcc-internal-format, gfc-internal-format | |
27358 | msgid "repository file '%s' does not contain command-line arguments" | |
27359 | msgstr "el fichero de repositorio '%s' no contiene argumentos de línea de órdenes" | |
27360 | ||
27361 | -#: tlink.c:735 | |
27362 | +#: tlink.c:624 | |
27363 | #, gcc-internal-format, gfc-internal-format | |
27364 | msgid "'%s' was assigned to '%s', but was not defined during recompilation, or vice versa" | |
27365 | msgstr "'%s' se asignó a '%s', pero no se definió durante la recompilación, o viceversa" | |
27366 | ||
27367 | -#: tlink.c:805 | |
27368 | +#: tlink.c:859 | |
27369 | #, gcc-internal-format, gfc-internal-format | |
27370 | msgid "ld returned %d exit status" | |
27371 | msgstr "ld devolvió el estado de salida %d" | |
27372 | @@ -18664,7 +18814,7 @@ | |
27373 | msgid "%<transaction_may_cancel_outer%> function call not within outer transaction or %<transaction_may_cancel_outer%>" | |
27374 | msgstr "la llamada a la función %<transaction_may_cancel_outer%> no está en una transacción más externa o %<transaction_may_cancel_outer%>" | |
27375 | ||
27376 | -#: trans-mem.c:664 trans-mem.c:4137 | |
27377 | +#: trans-mem.c:664 trans-mem.c:4191 | |
27378 | #, gcc-internal-format | |
27379 | msgid "unsafe function call %qD within atomic transaction" | |
27380 | msgstr "llamada a función %qD insegura dentro de una transacción atómica" | |
27381 | @@ -18679,7 +18829,7 @@ | |
27382 | msgid "unsafe indirect function call within atomic transaction" | |
27383 | msgstr "llamada a función indirecta insegura dentro de una transacción atómica" | |
27384 | ||
27385 | -#: trans-mem.c:682 trans-mem.c:4070 | |
27386 | +#: trans-mem.c:682 trans-mem.c:4124 | |
27387 | #, gcc-internal-format | |
27388 | msgid "unsafe function call %qD within %<transaction_safe%> function" | |
27389 | msgstr "llamada a función %qD insegura dentro de la función %<transaction_safe%>" | |
27390 | @@ -18694,7 +18844,7 @@ | |
27391 | msgid "unsafe indirect function call within %<transaction_safe%> function" | |
27392 | msgstr "llamada a función indirecta insegura dentro de la función %<transaction_safe%>" | |
27393 | ||
27394 | -#: trans-mem.c:707 trans-mem.c:4109 | |
27395 | +#: trans-mem.c:707 trans-mem.c:4163 | |
27396 | #, gcc-internal-format | |
27397 | msgid "asm not allowed in atomic transaction" | |
27398 | msgstr "no se permite asm en una transacción atómica" | |
27399 | @@ -18729,6 +18879,11 @@ | |
27400 | msgid "outer transaction in %<transaction_safe%> function" | |
27401 | msgstr "transacción más externa en la función %<transaction_safe%>" | |
27402 | ||
27403 | +#: trans-mem.c:3789 | |
27404 | +#, gcc-internal-format | |
27405 | +msgid "%Kasm not allowed in %<transaction_safe%> function" | |
27406 | +msgstr "%Kno se permite asm en una función %<transaction_safe%>" | |
27407 | + | |
27408 | #: tree-cfg.c:2616 | |
27409 | #, gcc-internal-format | |
27410 | msgid "constant not recomputed when ADDR_EXPR changed" | |
27411 | @@ -18749,7 +18904,7 @@ | |
27412 | msgid "SSA name in freelist but still referenced" | |
27413 | msgstr "hay un nombre SSA en la lista libre, pero aún está referenciado" | |
27414 | ||
27415 | -#: tree-cfg.c:2667 tree-cfg.c:3953 | |
27416 | +#: tree-cfg.c:2667 tree-cfg.c:3950 | |
27417 | #, gcc-internal-format | |
27418 | msgid "INDIRECT_REF in gimple IL" | |
27419 | msgstr "INDIRECT_REF en gimple IL" | |
27420 | @@ -18989,347 +19144,347 @@ | |
27421 | msgid "invalid operand in unary operation" | |
27422 | msgstr "operando inválido en la operación unaria" | |
27423 | ||
27424 | -#: tree-cfg.c:3369 | |
27425 | +#: tree-cfg.c:3366 | |
27426 | #, gcc-internal-format | |
27427 | msgid "invalid types in nop conversion" | |
27428 | msgstr "tipos inválidos en la conversión nop" | |
27429 | ||
27430 | -#: tree-cfg.c:3384 | |
27431 | +#: tree-cfg.c:3381 | |
27432 | #, gcc-internal-format | |
27433 | msgid "invalid types in address space conversion" | |
27434 | msgstr "tipos inválidos en la conversión nop" | |
27435 | ||
27436 | -#: tree-cfg.c:3398 | |
27437 | +#: tree-cfg.c:3395 | |
27438 | #, gcc-internal-format | |
27439 | msgid "invalid types in fixed-point conversion" | |
27440 | msgstr "tipos inválidos en la conversión de coma fija" | |
27441 | ||
27442 | -#: tree-cfg.c:3413 | |
27443 | +#: tree-cfg.c:3410 | |
27444 | #, gcc-internal-format | |
27445 | msgid "invalid types in conversion to floating point" | |
27446 | msgstr "tipos inválidos en la conversión a coma flotante" | |
27447 | ||
27448 | -#: tree-cfg.c:3428 | |
27449 | +#: tree-cfg.c:3425 | |
27450 | #, gcc-internal-format | |
27451 | msgid "invalid types in conversion to integer" | |
27452 | msgstr "tipos inválidos en la conversión a entero" | |
27453 | ||
27454 | -#: tree-cfg.c:3462 | |
27455 | +#: tree-cfg.c:3459 | |
27456 | #, gcc-internal-format | |
27457 | msgid "non-trivial conversion in unary operation" | |
27458 | msgstr "conversión que no es trivial en la operación unaria" | |
27459 | ||
27460 | -#: tree-cfg.c:3487 | |
27461 | +#: tree-cfg.c:3484 | |
27462 | #, gcc-internal-format | |
27463 | msgid "non-register as LHS of binary operation" | |
27464 | msgstr "el LHS de una operación binaria no es un registro" | |
27465 | ||
27466 | -#: tree-cfg.c:3494 | |
27467 | +#: tree-cfg.c:3491 | |
27468 | #, gcc-internal-format | |
27469 | msgid "invalid operands in binary operation" | |
27470 | msgstr "operandos inválidos en la operación binaria" | |
27471 | ||
27472 | -#: tree-cfg.c:3509 | |
27473 | +#: tree-cfg.c:3506 | |
27474 | #, gcc-internal-format | |
27475 | msgid "type mismatch in complex expression" | |
27476 | msgstr "los tipos de datos no coinciden en la expresión compleja" | |
27477 | ||
27478 | -#: tree-cfg.c:3538 | |
27479 | +#: tree-cfg.c:3535 | |
27480 | #, gcc-internal-format | |
27481 | msgid "type mismatch in shift expression" | |
27482 | msgstr "los tipos de datos no coinciden en la expresión shift" | |
27483 | ||
27484 | -#: tree-cfg.c:3561 | |
27485 | +#: tree-cfg.c:3558 | |
27486 | #, gcc-internal-format | |
27487 | msgid "type mismatch in vector shift expression" | |
27488 | msgstr "los tipos de datos no coinciden en la expresión shift de vector" | |
27489 | ||
27490 | -#: tree-cfg.c:3574 | |
27491 | +#: tree-cfg.c:3571 | |
27492 | #, gcc-internal-format | |
27493 | msgid "non-element sized vector shift of floating point vector" | |
27494 | msgstr "desplazamiento de vector de tamaño que no es elemento de vector de coma flotante" | |
27495 | ||
27496 | -#: tree-cfg.c:3588 tree-cfg.c:3609 | |
27497 | +#: tree-cfg.c:3585 tree-cfg.c:3606 | |
27498 | #, gcc-internal-format | |
27499 | msgid "type mismatch in widening vector shift expression" | |
27500 | msgstr "los tipos no coinciden en la expresión shift de ensanchamiento de vector" | |
27501 | ||
27502 | -#: tree-cfg.c:3631 | |
27503 | +#: tree-cfg.c:3628 | |
27504 | #, gcc-internal-format | |
27505 | msgid "invalid non-vector operands to vector valued plus" | |
27506 | msgstr "operandos que no son vectores inválidos para un vector valuado con más" | |
27507 | ||
27508 | -#: tree-cfg.c:3651 | |
27509 | +#: tree-cfg.c:3648 | |
27510 | #, gcc-internal-format | |
27511 | msgid "invalid (pointer) operands to plus/minus" | |
27512 | msgstr "operandos (punteros) inválidos para más/menos" | |
27513 | ||
27514 | -#: tree-cfg.c:3666 | |
27515 | +#: tree-cfg.c:3663 | |
27516 | #, gcc-internal-format | |
27517 | msgid "type mismatch in pointer plus expression" | |
27518 | msgstr "los tipos de datos no coinciden en la expresión puntero más" | |
27519 | ||
27520 | -#: tree-cfg.c:3743 | |
27521 | +#: tree-cfg.c:3740 | |
27522 | #, gcc-internal-format | |
27523 | msgid "type mismatch in binary expression" | |
27524 | msgstr "los tipos de datos no coinciden en la expresión binaria" | |
27525 | ||
27526 | -#: tree-cfg.c:3771 | |
27527 | +#: tree-cfg.c:3768 | |
27528 | #, gcc-internal-format | |
27529 | msgid "non-register as LHS of ternary operation" | |
27530 | msgstr "el LHS de una operación terniaria no es un registro" | |
27531 | ||
27532 | -#: tree-cfg.c:3780 | |
27533 | +#: tree-cfg.c:3777 | |
27534 | #, gcc-internal-format | |
27535 | msgid "invalid operands in ternary operation" | |
27536 | msgstr "operandos inválidos en la operación terniaria" | |
27537 | ||
27538 | -#: tree-cfg.c:3796 | |
27539 | +#: tree-cfg.c:3793 | |
27540 | #, gcc-internal-format | |
27541 | msgid "type mismatch in widening multiply-accumulate expression" | |
27542 | msgstr "los tipos no coinciden en la expresión de ensanchado multiplicar-acumular" | |
27543 | ||
27544 | -#: tree-cfg.c:3810 | |
27545 | +#: tree-cfg.c:3807 | |
27546 | #, gcc-internal-format | |
27547 | msgid "type mismatch in fused multiply-add expression" | |
27548 | msgstr "los tipos no coinciden en la expresión fusionada multiplicar-sumar" | |
27549 | ||
27550 | -#: tree-cfg.c:3836 | |
27551 | +#: tree-cfg.c:3833 | |
27552 | #, gcc-internal-format | |
27553 | msgid "type mismatch in vector permute expression" | |
27554 | msgstr "los tipos no coinciden en la expresión de permutación de vector" | |
27555 | ||
27556 | -#: tree-cfg.c:3848 | |
27557 | +#: tree-cfg.c:3845 | |
27558 | #, gcc-internal-format | |
27559 | msgid "vector types expected in vector permute expression" | |
27560 | msgstr "se esperaban tipos vector en una expresión de permutación de vector" | |
27561 | ||
27562 | -#: tree-cfg.c:3862 | |
27563 | +#: tree-cfg.c:3859 | |
27564 | #, gcc-internal-format | |
27565 | msgid "vectors with different element number found in vector permute expression" | |
27566 | msgstr "se encontraron vectores con número de elementos diferentes en la expresión de permutación" | |
27567 | ||
27568 | -#: tree-cfg.c:3875 | |
27569 | +#: tree-cfg.c:3872 | |
27570 | #, gcc-internal-format | |
27571 | msgid "invalid mask type in vector permute expression" | |
27572 | msgstr "tipo de máscara inválido en la expresión de permutación de vector" | |
27573 | ||
27574 | -#: tree-cfg.c:3911 | |
27575 | +#: tree-cfg.c:3908 | |
27576 | #, gcc-internal-format | |
27577 | msgid "non-trivial conversion at assignment" | |
27578 | msgstr "conversión que no es trivial en la asignación" | |
27579 | ||
27580 | -#: tree-cfg.c:3928 | |
27581 | +#: tree-cfg.c:3925 | |
27582 | #, gcc-internal-format | |
27583 | msgid "invalid operand in unary expression" | |
27584 | msgstr "operando inválido en la expresión unaria" | |
27585 | ||
27586 | -#: tree-cfg.c:3942 | |
27587 | +#: tree-cfg.c:3939 | |
27588 | #, gcc-internal-format | |
27589 | msgid "type mismatch in address expression" | |
27590 | msgstr "no coincide el tipo en la expresión de dirección" | |
27591 | ||
27592 | -#: tree-cfg.c:3968 tree-cfg.c:3994 | |
27593 | +#: tree-cfg.c:3965 tree-cfg.c:3991 | |
27594 | #, gcc-internal-format | |
27595 | msgid "invalid rhs for gimple memory store" | |
27596 | msgstr "rhs inválido para el almacenamiento de memoria gimple" | |
27597 | ||
27598 | -#: tree-cfg.c:4056 | |
27599 | +#: tree-cfg.c:4053 | |
27600 | #, gcc-internal-format | |
27601 | msgid "invalid operand in return statement" | |
27602 | msgstr "operando inválido en la declaración return" | |
27603 | ||
27604 | -#: tree-cfg.c:4070 | |
27605 | +#: tree-cfg.c:4067 | |
27606 | #, gcc-internal-format | |
27607 | msgid "invalid conversion in return statement" | |
27608 | msgstr "conversión inválida en la declaración return" | |
27609 | ||
27610 | -#: tree-cfg.c:4094 | |
27611 | +#: tree-cfg.c:4091 | |
27612 | #, gcc-internal-format | |
27613 | msgid "goto destination is neither a label nor a pointer" | |
27614 | msgstr "el destino de goto no es una etiqueta ni un puntero" | |
27615 | ||
27616 | -#: tree-cfg.c:4109 | |
27617 | +#: tree-cfg.c:4106 | |
27618 | #, gcc-internal-format | |
27619 | msgid "invalid operand to switch statement" | |
27620 | msgstr "operando inválido para la declaración switch" | |
27621 | ||
27622 | -#: tree-cfg.c:4151 | |
27623 | +#: tree-cfg.c:4148 | |
27624 | #, gcc-internal-format | |
27625 | msgid "incorrect entry in label_to_block_map" | |
27626 | msgstr "entrada incorrecta en label_to_block_map" | |
27627 | ||
27628 | -#: tree-cfg.c:4161 | |
27629 | +#: tree-cfg.c:4158 | |
27630 | #, gcc-internal-format | |
27631 | msgid "incorrect setting of landing pad number" | |
27632 | msgstr "definición incorrecta del número de relleno de aterrizaje" | |
27633 | ||
27634 | -#: tree-cfg.c:4189 | |
27635 | +#: tree-cfg.c:4186 | |
27636 | #, gcc-internal-format | |
27637 | msgid "invalid comparison code in gimple cond" | |
27638 | msgstr "código de comparación inválido en la condición gimple" | |
27639 | ||
27640 | -#: tree-cfg.c:4197 | |
27641 | +#: tree-cfg.c:4194 | |
27642 | #, gcc-internal-format | |
27643 | msgid "invalid labels in gimple cond" | |
27644 | msgstr "etiquetas inválidas en la condición gimple" | |
27645 | ||
27646 | -#: tree-cfg.c:4258 tree-cfg.c:4267 | |
27647 | +#: tree-cfg.c:4255 tree-cfg.c:4264 | |
27648 | #, gcc-internal-format | |
27649 | msgid "invalid PHI result" | |
27650 | msgstr "resultado PHI inválido" | |
27651 | ||
27652 | -#: tree-cfg.c:4277 | |
27653 | +#: tree-cfg.c:4274 | |
27654 | #, gcc-internal-format | |
27655 | msgid "missing PHI def" | |
27656 | msgstr "falta la definición PHI" | |
27657 | ||
27658 | -#: tree-cfg.c:4291 | |
27659 | +#: tree-cfg.c:4288 | |
27660 | #, gcc-internal-format | |
27661 | msgid "invalid PHI argument" | |
27662 | msgstr "argumento PHI inválido" | |
27663 | ||
27664 | -#: tree-cfg.c:4298 | |
27665 | +#: tree-cfg.c:4295 | |
27666 | #, gcc-internal-format, gfc-internal-format | |
27667 | msgid "incompatible types in PHI argument %u" | |
27668 | msgstr "tipos incompatibles en el argumento PHI %u" | |
27669 | ||
27670 | -#: tree-cfg.c:4382 tree-cfg.c:4578 | |
27671 | +#: tree-cfg.c:4379 tree-cfg.c:4575 | |
27672 | #, gcc-internal-format | |
27673 | msgid "verify_gimple failed" | |
27674 | msgstr "falló verify_gimple" | |
27675 | ||
27676 | -#: tree-cfg.c:4443 | |
27677 | +#: tree-cfg.c:4440 | |
27678 | #, gcc-internal-format | |
27679 | msgid "dead STMT in EH table" | |
27680 | msgstr "STMT muerto en la tabla EH" | |
27681 | ||
27682 | -#: tree-cfg.c:4477 | |
27683 | +#: tree-cfg.c:4474 | |
27684 | #, gcc-internal-format | |
27685 | msgid "gimple_bb (phi) is set to a wrong basic block" | |
27686 | msgstr "se estableció gimple_bb (phi) a un bloque básico erróneo" | |
27687 | ||
27688 | -#: tree-cfg.c:4489 tree-cfg.c:4523 | |
27689 | +#: tree-cfg.c:4486 tree-cfg.c:4520 | |
27690 | #, gcc-internal-format | |
27691 | msgid "incorrect sharing of tree nodes" | |
27692 | msgstr "compartición incorrecta de nodos de árbol" | |
27693 | ||
27694 | -#: tree-cfg.c:4512 | |
27695 | +#: tree-cfg.c:4509 | |
27696 | #, gcc-internal-format | |
27697 | msgid "gimple_bb (stmt) is set to a wrong basic block" | |
27698 | msgstr "se estableció gimple_bb (stmt) a un bloque básico erróneo" | |
27699 | ||
27700 | -#: tree-cfg.c:4538 | |
27701 | +#: tree-cfg.c:4535 | |
27702 | #, gcc-internal-format | |
27703 | msgid "in statement" | |
27704 | msgstr "en la sentencia" | |
27705 | ||
27706 | -#: tree-cfg.c:4553 | |
27707 | +#: tree-cfg.c:4550 | |
27708 | #, gcc-internal-format | |
27709 | msgid "statement marked for throw, but doesn%'t" | |
27710 | msgstr "se marcó la sentencia para throw, pero no lo hace" | |
27711 | ||
27712 | -#: tree-cfg.c:4560 | |
27713 | +#: tree-cfg.c:4557 | |
27714 | #, gcc-internal-format | |
27715 | msgid "statement marked for throw in middle of block" | |
27716 | msgstr "se marcó la sentencia para throw en medio del bloque" | |
27717 | ||
27718 | -#: tree-cfg.c:4601 | |
27719 | +#: tree-cfg.c:4598 | |
27720 | #, gcc-internal-format | |
27721 | msgid "ENTRY_BLOCK has IL associated with it" | |
27722 | msgstr "ENTRY_BLOCK tiene IL asociado con él" | |
27723 | ||
27724 | -#: tree-cfg.c:4607 | |
27725 | +#: tree-cfg.c:4604 | |
27726 | #, gcc-internal-format | |
27727 | msgid "EXIT_BLOCK has IL associated with it" | |
27728 | msgstr "EXIT_BLOCK tiene IL asociado con él" | |
27729 | ||
27730 | -#: tree-cfg.c:4614 | |
27731 | +#: tree-cfg.c:4611 | |
27732 | #, gcc-internal-format, gfc-internal-format | |
27733 | msgid "fallthru to exit from bb %d" | |
27734 | msgstr "caida para salir del bb %d" | |
27735 | ||
27736 | -#: tree-cfg.c:4638 | |
27737 | +#: tree-cfg.c:4635 | |
27738 | #, gcc-internal-format | |
27739 | msgid "nonlocal label " | |
27740 | msgstr "etiqueta no local " | |
27741 | ||
27742 | -#: tree-cfg.c:4647 | |
27743 | +#: tree-cfg.c:4644 | |
27744 | #, gcc-internal-format | |
27745 | msgid "EH landing pad label " | |
27746 | msgstr "etiqueta de relleno de aterrizaje EH " | |
27747 | ||
27748 | -#: tree-cfg.c:4656 tree-cfg.c:4665 tree-cfg.c:4690 | |
27749 | +#: tree-cfg.c:4653 tree-cfg.c:4662 tree-cfg.c:4687 | |
27750 | #, gcc-internal-format | |
27751 | msgid "label " | |
27752 | msgstr "etiqueta " | |
27753 | ||
27754 | -#: tree-cfg.c:4680 | |
27755 | +#: tree-cfg.c:4677 | |
27756 | #, gcc-internal-format, gfc-internal-format | |
27757 | msgid "control flow in the middle of basic block %d" | |
27758 | msgstr "control de flujo enmedio del bloque básico %d" | |
27759 | ||
27760 | -#: tree-cfg.c:4713 | |
27761 | +#: tree-cfg.c:4710 | |
27762 | #, gcc-internal-format, gfc-internal-format | |
27763 | msgid "fallthru edge after a control statement in bb %d" | |
27764 | msgstr "borde de caída después de una sentencia de control en bb %d" | |
27765 | ||
27766 | -#: tree-cfg.c:4726 | |
27767 | +#: tree-cfg.c:4723 | |
27768 | #, gcc-internal-format, gfc-internal-format | |
27769 | msgid "true/false edge after a non-GIMPLE_COND in bb %d" | |
27770 | msgstr "borde verdadero/falso después de una expresión que no es GIMPLE_COND en bb %d" | |
27771 | ||
27772 | -#: tree-cfg.c:4749 tree-cfg.c:4771 tree-cfg.c:4788 tree-cfg.c:4857 | |
27773 | +#: tree-cfg.c:4746 tree-cfg.c:4768 tree-cfg.c:4785 tree-cfg.c:4854 | |
27774 | #, gcc-internal-format, gfc-internal-format | |
27775 | msgid "wrong outgoing edge flags at end of bb %d" | |
27776 | msgstr "banderas de borde de salida erróneas al final del bb %d" | |
27777 | ||
27778 | -#: tree-cfg.c:4759 | |
27779 | +#: tree-cfg.c:4756 | |
27780 | #, gcc-internal-format, gfc-internal-format | |
27781 | msgid "explicit goto at end of bb %d" | |
27782 | msgstr "goto explícito al final del bb %d" | |
27783 | ||
27784 | -#: tree-cfg.c:4793 | |
27785 | +#: tree-cfg.c:4790 | |
27786 | #, gcc-internal-format, gfc-internal-format | |
27787 | msgid "return edge does not point to exit in bb %d" | |
27788 | msgstr "el borde de devolución no apunta a exit en el bb %d" | |
27789 | ||
27790 | -#: tree-cfg.c:4823 | |
27791 | +#: tree-cfg.c:4820 | |
27792 | #, gcc-internal-format | |
27793 | msgid "found default case not at the start of case vector" | |
27794 | msgstr "se encontró un case por defecto que no está al inicio del vector case" | |
27795 | ||
27796 | -#: tree-cfg.c:4831 | |
27797 | +#: tree-cfg.c:4828 | |
27798 | #, gcc-internal-format | |
27799 | msgid "case labels not sorted: " | |
27800 | msgstr "las etiquetas case no están ordenadas:" | |
27801 | ||
27802 | -#: tree-cfg.c:4848 | |
27803 | +#: tree-cfg.c:4845 | |
27804 | #, gcc-internal-format, gfc-internal-format | |
27805 | msgid "extra outgoing edge %d->%d" | |
27806 | msgstr "borde de salida extra %d->%d" | |
27807 | ||
27808 | -#: tree-cfg.c:4871 | |
27809 | +#: tree-cfg.c:4868 | |
27810 | #, gcc-internal-format, gfc-internal-format | |
27811 | msgid "missing edge %i->%i" | |
27812 | msgstr "falta el borde %i->%i" | |
27813 | ||
27814 | -#: tree-cfg.c:7527 | |
27815 | +#: tree-cfg.c:7524 | |
27816 | #, gcc-internal-format | |
27817 | msgid "%<noreturn%> function does return" | |
27818 | msgstr "la función %<noreturn%> devuelve" | |
27819 | ||
27820 | -#: tree-cfg.c:7547 | |
27821 | +#: tree-cfg.c:7544 | |
27822 | #, gcc-internal-format | |
27823 | msgid "control reaches end of non-void function" | |
27824 | msgstr "el control alcanza el final de una función que no es void" | |
27825 | ||
27826 | -#: tree-cfg.c:7685 | |
27827 | +#: tree-cfg.c:7682 | |
27828 | #, gcc-internal-format | |
27829 | msgid "ignoring return value of %qD, declared with attribute warn_unused_result" | |
27830 | msgstr "se descarta el valor de devolución de %qD, se declaró con el atributo warn_unused_result" | |
27831 | ||
27832 | -#: tree-cfg.c:7690 | |
27833 | +#: tree-cfg.c:7687 | |
27834 | #, gcc-internal-format | |
27835 | msgid "ignoring return value of function declared with attribute warn_unused_result" | |
27836 | msgstr "se descarta el valor de devolución de la función declarada con atributo warn_unused_result" | |
27837 | @@ -19479,12 +19634,12 @@ | |
27838 | msgid "mudflap: this language is not supported" | |
27839 | msgstr "mudflap: este lenguaje no se admite" | |
27840 | ||
27841 | -#: tree-optimize.c:448 | |
27842 | +#: tree-optimize.c:450 | |
27843 | #, gcc-internal-format | |
27844 | msgid "size of return value of %q+D is %u bytes" | |
27845 | msgstr "el tamaño del valor de devolución de %q+D es de %u bytes" | |
27846 | ||
27847 | -#: tree-optimize.c:451 | |
27848 | +#: tree-optimize.c:453 | |
27849 | #, gcc-internal-format | |
27850 | msgid "size of return value of %q+D is larger than %wd bytes" | |
27851 | msgstr "el tamaño del valor de devolución de %q+D es más grande que %wd bytes" | |
27852 | @@ -19500,52 +19655,52 @@ | |
27853 | msgid "unimplemented functionality" | |
27854 | msgstr "funcionalidad sin implementar" | |
27855 | ||
27856 | -#: tree-ssa-operands.c:1116 | |
27857 | +#: tree-ssa-operands.c:1127 | |
27858 | #, gcc-internal-format | |
27859 | msgid "virtual definition of statement not up-to-date" | |
27860 | msgstr "la definición virtual de la declaración no está actualizada" | |
27861 | ||
27862 | -#: tree-ssa-operands.c:1123 | |
27863 | +#: tree-ssa-operands.c:1134 | |
27864 | #, gcc-internal-format | |
27865 | msgid "virtual def operand missing for stmt" | |
27866 | msgstr "falta el operando def virtual para stmt" | |
27867 | ||
27868 | -#: tree-ssa-operands.c:1133 | |
27869 | +#: tree-ssa-operands.c:1144 | |
27870 | #, gcc-internal-format | |
27871 | msgid "virtual use of statement not up-to-date" | |
27872 | msgstr "el uso de la declaración virtual no está actualizada" | |
27873 | ||
27874 | -#: tree-ssa-operands.c:1140 | |
27875 | +#: tree-ssa-operands.c:1151 | |
27876 | #, gcc-internal-format | |
27877 | msgid "virtual use operand missing for stmt" | |
27878 | msgstr "falta el operando use virtual para stmt" | |
27879 | ||
27880 | -#: tree-ssa-operands.c:1156 | |
27881 | +#: tree-ssa-operands.c:1167 | |
27882 | #, gcc-internal-format | |
27883 | msgid "excess use operand for stmt" | |
27884 | msgstr "operando use en exceso para stmt" | |
27885 | ||
27886 | -#: tree-ssa-operands.c:1164 | |
27887 | +#: tree-ssa-operands.c:1175 | |
27888 | #, gcc-internal-format | |
27889 | msgid "use operand missing for stmt" | |
27890 | msgstr "falta el operando use para stmt" | |
27891 | ||
27892 | -#: tree-ssa-operands.c:1181 | |
27893 | +#: tree-ssa-operands.c:1192 | |
27894 | #, gcc-internal-format | |
27895 | msgid "excess def operand for stmt" | |
27896 | msgstr "operando def en exceso para stmt" | |
27897 | ||
27898 | -#: tree-ssa-operands.c:1189 | |
27899 | +#: tree-ssa-operands.c:1200 | |
27900 | #, gcc-internal-format | |
27901 | msgid "def operand missing for stmt" | |
27902 | msgstr "falta el operando def para stmt" | |
27903 | ||
27904 | -#: tree-ssa-operands.c:1196 | |
27905 | +#: tree-ssa-operands.c:1207 | |
27906 | #, gcc-internal-format | |
27907 | msgid "stmt volatile flag not up-to-date" | |
27908 | msgstr "la opción volatile de stmt no está actualizada" | |
27909 | ||
27910 | -#: tree-ssa-uninit.c:1958 tree-ssa.c:1655 | |
27911 | +#: tree-ssa-uninit.c:1958 tree-ssa.c:1653 | |
27912 | #, gcc-internal-format | |
27913 | msgid "%qD may be used uninitialized in this function" | |
27914 | msgstr "puede ser que se utilice %qD sin inicializar en esta función" | |
27915 | @@ -19595,7 +19750,7 @@ | |
27916 | msgid "SSA_NAME created in two different blocks %i and %i" | |
27917 | msgstr "se creó SSA_NAME en dos bloques diferentes %i y %i" | |
27918 | ||
27919 | -#: tree-ssa.c:709 tree-ssa.c:1023 | |
27920 | +#: tree-ssa.c:709 tree-ssa.c:1021 | |
27921 | #, gcc-internal-format | |
27922 | msgid "SSA_NAME_DEF_STMT is wrong" | |
27923 | msgstr "SSA_NAME_DEF_STMT es erróneo" | |
27924 | @@ -19650,37 +19805,37 @@ | |
27925 | msgid "wrong edge %d->%d for PHI argument" | |
27926 | msgstr "borde erróneo %d->%d para el argumento PHI" | |
27927 | ||
27928 | -#: tree-ssa.c:970 | |
27929 | +#: tree-ssa.c:968 | |
27930 | #, gcc-internal-format, gfc-internal-format | |
27931 | msgid "AUX pointer initialized for edge %d->%d" | |
27932 | msgstr "se inicializó el puntero AUX para el borde %d->%d" | |
27933 | ||
27934 | -#: tree-ssa.c:995 | |
27935 | +#: tree-ssa.c:993 | |
27936 | #, gcc-internal-format | |
27937 | msgid "stmt (%p) marked modified after optimization pass: " | |
27938 | msgstr "se modificó el stmt (%p) marcado después del paso de optimización: " | |
27939 | ||
27940 | -#: tree-ssa.c:1052 | |
27941 | +#: tree-ssa.c:1050 | |
27942 | #, gcc-internal-format | |
27943 | msgid "verify_ssa failed" | |
27944 | msgstr "falló verify_ssa" | |
27945 | ||
27946 | -#: tree-ssa.c:1618 varasm.c:321 | |
27947 | +#: tree-ssa.c:1616 varasm.c:321 | |
27948 | #, gcc-internal-format | |
27949 | msgid "%qD was declared here" | |
27950 | msgstr "%qD se declaró aquí" | |
27951 | ||
27952 | -#: tree-ssa.c:1650 | |
27953 | +#: tree-ssa.c:1648 | |
27954 | #, gcc-internal-format | |
27955 | msgid "%qD is used uninitialized in this function" | |
27956 | msgstr "se utiliza %qD sin inicializar en esta función" | |
27957 | ||
27958 | -#: tree-ssa.c:1687 | |
27959 | +#: tree-ssa.c:1685 | |
27960 | #, gcc-internal-format | |
27961 | msgid "%qE is used uninitialized in this function" | |
27962 | msgstr "se utiliza %qE sin inicializar en esta función" | |
27963 | ||
27964 | -#: tree-ssa.c:1692 | |
27965 | +#: tree-ssa.c:1690 | |
27966 | #, gcc-internal-format | |
27967 | msgid "%qE may be used uninitialized in this function" | |
27968 | msgstr "puede ser que se utilice %qE sin inicializar en esta función" | |
27969 | @@ -19780,22 +19935,22 @@ | |
27970 | msgid "ignoring attributes applied to %qT after definition" | |
27971 | msgstr "se descartan los atributos aplicados al %qT después de la definición" | |
27972 | ||
27973 | -#: tree.c:5457 | |
27974 | +#: tree.c:5459 | |
27975 | #, gcc-internal-format | |
27976 | msgid "%q+D already declared with dllexport attribute: dllimport ignored" | |
27977 | msgstr "%q+D se declaró anteriormente con el atributo dllimport: se descarta dllimport" | |
27978 | ||
27979 | -#: tree.c:5469 | |
27980 | +#: tree.c:5471 | |
27981 | #, gcc-internal-format | |
27982 | msgid "%q+D redeclared without dllimport attribute after being referenced with dll linkage" | |
27983 | msgstr "%q+D se redeclara sin el atributo dllimport después de ser referenciado con enlace dllimport" | |
27984 | ||
27985 | -#: tree.c:5484 | |
27986 | +#: tree.c:5486 | |
27987 | #, gcc-internal-format | |
27988 | msgid "%q+D redeclared without dllimport attribute: previous dllimport ignored" | |
27989 | msgstr "%q+D se redeclara sin el atributo dllimport: se descarta el dllimport previo" | |
27990 | ||
27991 | -#: tree.c:5527 tree.c:5539 tree.c:5549 c-family/c-common.c:5865 | |
27992 | +#: tree.c:5529 tree.c:5541 tree.c:5551 c-family/c-common.c:5865 | |
27993 | #: c-family/c-common.c:5884 c-family/c-common.c:5902 c-family/c-common.c:5930 | |
27994 | #: c-family/c-common.c:5957 c-family/c-common.c:5983 c-family/c-common.c:6002 | |
27995 | #: c-family/c-common.c:6019 c-family/c-common.c:6043 c-family/c-common.c:6066 | |
27996 | @@ -19810,140 +19965,140 @@ | |
27997 | #: c-family/c-common.c:7680 c-family/c-common.c:7971 c-family/c-common.c:7994 | |
27998 | #: c-family/c-common.c:8033 c-family/c-common.c:8111 c-family/c-common.c:8260 | |
27999 | #: config/darwin.c:1942 config/arm/arm.c:5007 config/arm/arm.c:5035 | |
28000 | -#: config/arm/arm.c:5052 config/avr/avr.c:6728 config/h8300/h8300.c:5418 | |
28001 | -#: config/h8300/h8300.c:5442 config/i386/i386.c:4944 config/i386/i386.c:31811 | |
28002 | -#: config/ia64/ia64.c:734 config/rs6000/rs6000.c:24318 config/spu/spu.c:4035 | |
28003 | -#: ada/gcc-interface/utils.c:5482 lto/lto-lang.c:215 | |
28004 | +#: config/arm/arm.c:5052 config/avr/avr.c:6846 config/h8300/h8300.c:5418 | |
28005 | +#: config/h8300/h8300.c:5442 config/i386/i386.c:4944 config/i386/i386.c:31845 | |
28006 | +#: config/ia64/ia64.c:734 config/rs6000/rs6000.c:24335 config/spu/spu.c:4035 | |
28007 | +#: ada/gcc-interface/utils.c:5488 lto/lto-lang.c:215 | |
28008 | #, gcc-internal-format | |
28009 | msgid "%qE attribute ignored" | |
28010 | msgstr "se descarta el atributo %qE" | |
28011 | ||
28012 | -#: tree.c:5567 | |
28013 | +#: tree.c:5569 | |
28014 | #, gcc-internal-format | |
28015 | msgid "inline function %q+D declared as dllimport: attribute ignored" | |
28016 | msgstr "la función inline %q+D se declara como dllimport: se descarta el atributo" | |
28017 | ||
28018 | -#: tree.c:5575 | |
28019 | +#: tree.c:5577 | |
28020 | #, gcc-internal-format | |
28021 | msgid "function %q+D definition is marked dllimport" | |
28022 | msgstr "la definición de la función %q+D se marca como dllimport" | |
28023 | ||
28024 | -#: tree.c:5583 | |
28025 | +#: tree.c:5585 | |
28026 | #, gcc-internal-format | |
28027 | msgid "variable %q+D definition is marked dllimport" | |
28028 | msgstr "la definición de la variable %q+D se marca como dllimport" | |
28029 | ||
28030 | -#: tree.c:5611 | |
28031 | +#: tree.c:5613 | |
28032 | #, gcc-internal-format | |
28033 | msgid "external linkage required for symbol %q+D because of %qE attribute" | |
28034 | msgstr "se requiere enlace externo para el símbolo %q+D debido al atributo %qE" | |
28035 | ||
28036 | -#: tree.c:5625 | |
28037 | +#: tree.c:5627 | |
28038 | #, gcc-internal-format | |
28039 | msgid "%qE implies default visibility, but %qD has already been declared with a different visibility" | |
28040 | msgstr "%qE implica visibilidad por defecto, pero %qD ya se había declarado con una visibilidad diferente" | |
28041 | ||
28042 | -#: tree.c:7375 | |
28043 | +#: tree.c:7377 | |
28044 | #, gcc-internal-format | |
28045 | msgid "arrays of functions are not meaningful" | |
28046 | msgstr "las matrices de funciones no tienen significado" | |
28047 | ||
28048 | -#: tree.c:7542 | |
28049 | +#: tree.c:7544 | |
28050 | #, gcc-internal-format | |
28051 | msgid "function return type cannot be function" | |
28052 | msgstr "el tipo de devolución de función no puede ser función" | |
28053 | ||
28054 | -#: tree.c:8838 tree.c:8923 tree.c:8984 | |
28055 | +#: tree.c:8840 tree.c:8925 tree.c:8986 | |
28056 | #, gcc-internal-format, gfc-internal-format | |
28057 | msgid "tree check: %s, have %s in %s, at %s:%d" | |
28058 | msgstr "revisión de árbol: %s, se tiene %s en %s, en %s:%d" | |
28059 | ||
28060 | -#: tree.c:8875 | |
28061 | +#: tree.c:8877 | |
28062 | #, gcc-internal-format, gfc-internal-format | |
28063 | msgid "tree check: expected none of %s, have %s in %s, at %s:%d" | |
28064 | msgstr "revisión de árbol: no se esperaba ninguno de %s, se tiene %s en %s, en %s:%d" | |
28065 | ||
28066 | -#: tree.c:8888 | |
28067 | +#: tree.c:8890 | |
28068 | #, gcc-internal-format | |
28069 | msgid "tree check: expected class %qs, have %qs (%s) in %s, at %s:%d" | |
28070 | msgstr "revisión de árbol: se esperaba la clase %qs, se tiene %qs (%s) en %s, en %s:%d" | |
28071 | ||
28072 | -#: tree.c:8937 | |
28073 | +#: tree.c:8939 | |
28074 | #, gcc-internal-format | |
28075 | msgid "tree check: did not expect class %qs, have %qs (%s) in %s, at %s:%d" | |
28076 | msgstr "revisión de árbol: no se esperaba la clase %qs, se tiene %qs (%s) en %s, en %s:%d" | |
28077 | ||
28078 | -#: tree.c:8950 | |
28079 | +#: tree.c:8952 | |
28080 | #, gcc-internal-format, gfc-internal-format | |
28081 | msgid "tree check: expected omp_clause %s, have %s in %s, at %s:%d" | |
28082 | msgstr "revisión de árbol: se esperaba omp_clause %s, se tiene %s en %s, en %s:%d" | |
28083 | ||
28084 | -#: tree.c:9010 | |
28085 | +#: tree.c:9012 | |
28086 | #, gcc-internal-format | |
28087 | msgid "tree check: expected tree that contains %qs structure, have %qs in %s, at %s:%d" | |
28088 | msgstr "revisión de árbol: se esperaba un árbol que contenga la estructura %qs, se tiene %qs en %s, en %s:%d" | |
28089 | ||
28090 | -#: tree.c:9024 | |
28091 | +#: tree.c:9026 | |
28092 | #, gcc-internal-format, gfc-internal-format | |
28093 | msgid "tree check: accessed elt %d of tree_vec with %d elts in %s, at %s:%d" | |
28094 | msgstr "revisión de árbol: acceso de elt %d de tree_vec con %d elts en %s, en %s:%d" | |
28095 | ||
28096 | -#: tree.c:9037 | |
28097 | +#: tree.c:9039 | |
28098 | #, gcc-internal-format, gfc-internal-format | |
28099 | msgid "tree check: accessed operand %d of %s with %d operands in %s, at %s:%d" | |
28100 | msgstr "revisión de árbol: acceso del operando %d de %s con %d operandos en %s, en %s:%d" | |
28101 | ||
28102 | -#: tree.c:9050 | |
28103 | +#: tree.c:9052 | |
28104 | #, gcc-internal-format, gfc-internal-format | |
28105 | msgid "tree check: accessed operand %d of omp_clause %s with %d operands in %s, at %s:%d" | |
28106 | msgstr "revisión de árbol: acceso del operando %d de omp_clause %s con %d operandos en %s, en %s:%d" | |
28107 | ||
28108 | -#: tree.c:11330 | |
28109 | +#: tree.c:11336 | |
28110 | #, gcc-internal-format | |
28111 | msgid "%qD is deprecated (declared at %s:%d): %s" | |
28112 | msgstr "%qD es obsoleto (declarado en %s:%d): %s" | |
28113 | ||
28114 | -#: tree.c:11334 | |
28115 | +#: tree.c:11340 | |
28116 | #, gcc-internal-format | |
28117 | msgid "%qD is deprecated (declared at %s:%d)" | |
28118 | msgstr "%qD es obsoleto (declarado en %s:%d)" | |
28119 | ||
28120 | -#: tree.c:11359 | |
28121 | +#: tree.c:11365 | |
28122 | #, gcc-internal-format | |
28123 | msgid "%qE is deprecated (declared at %s:%d): %s" | |
28124 | msgstr "%qE es obsoleto (declarado en %s:%d): %s" | |
28125 | ||
28126 | -#: tree.c:11363 | |
28127 | +#: tree.c:11369 | |
28128 | #, gcc-internal-format | |
28129 | msgid "%qE is deprecated (declared at %s:%d)" | |
28130 | msgstr "%qE es obsoleto (declarado en %s:%d)" | |
28131 | ||
28132 | -#: tree.c:11370 | |
28133 | +#: tree.c:11376 | |
28134 | #, gcc-internal-format, gfc-internal-format | |
28135 | msgid "type is deprecated (declared at %s:%d): %s" | |
28136 | msgstr "el tipo es obsoleto (declarado en %s:%d): %s" | |
28137 | ||
28138 | -#: tree.c:11374 | |
28139 | +#: tree.c:11380 | |
28140 | #, gcc-internal-format, gfc-internal-format | |
28141 | msgid "type is deprecated (declared at %s:%d)" | |
28142 | msgstr "el tipo es obsoleto (declarado en %s:%d)" | |
28143 | ||
28144 | -#: tree.c:11383 | |
28145 | +#: tree.c:11389 | |
28146 | #, gcc-internal-format | |
28147 | msgid "%qE is deprecated: %s" | |
28148 | msgstr "%qE es obsoleto: %s" | |
28149 | ||
28150 | -#: tree.c:11386 | |
28151 | +#: tree.c:11392 | |
28152 | #, gcc-internal-format | |
28153 | msgid "%qE is deprecated" | |
28154 | msgstr "%qE es obsoleto" | |
28155 | ||
28156 | -#: tree.c:11391 | |
28157 | +#: tree.c:11397 | |
28158 | #, gcc-internal-format, gfc-internal-format | |
28159 | msgid "type is deprecated: %s" | |
28160 | msgstr "el tipo es obsoleto: %s" | |
28161 | ||
28162 | -#: tree.c:11394 | |
28163 | +#: tree.c:11400 | |
28164 | #, gcc-internal-format | |
28165 | msgid "type is deprecated" | |
28166 | msgstr "el tipo es obsoleto" | |
28167 | @@ -19983,12 +20138,12 @@ | |
28168 | msgid "Skipping target %s with mismatching types for icall " | |
28169 | msgstr "Se salta el objetivo %s con tipos que no coinciden para icall " | |
28170 | ||
28171 | -#: var-tracking.c:6582 | |
28172 | +#: var-tracking.c:6586 | |
28173 | #, gcc-internal-format | |
28174 | msgid "variable tracking size limit exceeded with -fvar-tracking-assignments, retrying without" | |
28175 | msgstr "se excedió el límite de tamaño de rastreo de variable con -fvar-tracking-assignments, se reintenta sin esa opción" | |
28176 | ||
28177 | -#: var-tracking.c:6586 | |
28178 | +#: var-tracking.c:6590 | |
28179 | #, gcc-internal-format | |
28180 | msgid "variable tracking size limit exceeded" | |
28181 | msgstr "se excedió el límite de tamaño de rastreo de variable" | |
28182 | @@ -20138,6 +20293,11 @@ | |
28183 | msgid "visibility attribute not supported in this configuration; ignored" | |
28184 | msgstr "no se admiten los atributos de visibilidad en esta configuración; descartados" | |
28185 | ||
28186 | +#: varpool.c:486 | |
28187 | +#, gcc-internal-format | |
28188 | +msgid "variable %q+D part of alias cycle" | |
28189 | +msgstr "la variable %q+D es parte de un ciclo de alias" | |
28190 | + | |
28191 | #: vec.c:527 | |
28192 | #, gcc-internal-format, gfc-internal-format | |
28193 | msgid "vector %s %s domain error, in %s at %s:%u" | |
28194 | @@ -20169,8 +20329,8 @@ | |
28195 | msgid "string length %qd is greater than the length %qd ISO C%d compilers are required to support" | |
28196 | msgstr "la longitud de la cadena %qd es mayor que la longitud %qd, la máxima que los compiladores ISO C%d deben admitir" | |
28197 | ||
28198 | -#: c-family/c-common.c:1494 c-family/c-common.c:1506 cp/semantics.c:6634 | |
28199 | -#: cp/semantics.c:8017 | |
28200 | +#: c-family/c-common.c:1494 c-family/c-common.c:1506 cp/semantics.c:6649 | |
28201 | +#: cp/semantics.c:8032 | |
28202 | #, gcc-internal-format | |
28203 | msgid "overflow in constant expression" | |
28204 | msgstr "desbordamiento en la expresión constante" | |
28205 | @@ -20798,40 +20958,40 @@ | |
28206 | msgid "invalid vector type for attribute %qE" | |
28207 | msgstr "tipo de vector inválido para el atributo %qE" | |
28208 | ||
28209 | -#: c-family/c-common.c:7720 ada/gcc-interface/utils.c:5600 | |
28210 | -#: ada/gcc-interface/utils.c:5694 | |
28211 | +#: c-family/c-common.c:7720 ada/gcc-interface/utils.c:5606 | |
28212 | +#: ada/gcc-interface/utils.c:5700 | |
28213 | #, gcc-internal-format | |
28214 | msgid "vector size not an integral multiple of component size" | |
28215 | msgstr "el tamaño del vector no es un múltiplo integral del tamaño del componente" | |
28216 | ||
28217 | -#: c-family/c-common.c:7726 ada/gcc-interface/utils.c:5606 | |
28218 | -#: ada/gcc-interface/utils.c:5700 | |
28219 | +#: c-family/c-common.c:7726 ada/gcc-interface/utils.c:5612 | |
28220 | +#: ada/gcc-interface/utils.c:5706 | |
28221 | #, gcc-internal-format | |
28222 | msgid "zero vector size" | |
28223 | msgstr "vector de tamaño cero" | |
28224 | ||
28225 | -#: c-family/c-common.c:7734 ada/gcc-interface/utils.c:5614 | |
28226 | -#: ada/gcc-interface/utils.c:5707 | |
28227 | +#: c-family/c-common.c:7734 ada/gcc-interface/utils.c:5620 | |
28228 | +#: ada/gcc-interface/utils.c:5713 | |
28229 | #, gcc-internal-format | |
28230 | msgid "number of components of the vector not a power of two" | |
28231 | msgstr "el número de componentes del vector no es una potencia de dos" | |
28232 | ||
28233 | -#: c-family/c-common.c:7762 ada/gcc-interface/utils.c:5341 | |
28234 | +#: c-family/c-common.c:7762 ada/gcc-interface/utils.c:5347 | |
28235 | #, gcc-internal-format | |
28236 | msgid "nonnull attribute without arguments on a non-prototype" | |
28237 | msgstr "un atributo que no es nulo sin argumento es un atributo que no es prototipo" | |
28238 | ||
28239 | -#: c-family/c-common.c:7776 ada/gcc-interface/utils.c:5355 | |
28240 | +#: c-family/c-common.c:7776 ada/gcc-interface/utils.c:5361 | |
28241 | #, gcc-internal-format, gfc-internal-format | |
28242 | msgid "nonnull argument has invalid operand number (argument %lu)" | |
28243 | msgstr "un argumento que no es nulo tiene un número de operando inválido (argumento %lu)" | |
28244 | ||
28245 | -#: c-family/c-common.c:7798 ada/gcc-interface/utils.c:5377 | |
28246 | +#: c-family/c-common.c:7798 ada/gcc-interface/utils.c:5383 | |
28247 | #, gcc-internal-format, gfc-internal-format | |
28248 | msgid "nonnull argument with out-of-range operand number (argument %lu, operand %lu)" | |
28249 | msgstr "un argumento que no es nulo con número de operando fuera de rango (argumento %lu, operando %lu)" | |
28250 | ||
28251 | -#: c-family/c-common.c:7806 ada/gcc-interface/utils.c:5386 | |
28252 | +#: c-family/c-common.c:7806 ada/gcc-interface/utils.c:5392 | |
28253 | #, gcc-internal-format, gfc-internal-format | |
28254 | msgid "nonnull argument references non-pointer operand (argument %lu, operand %lu)" | |
28255 | msgstr "un argumento que no es nulo hace referencia a un operando que no es puntero (argumento %lu, operando %lu)" | |
28256 | @@ -20871,12 +21031,12 @@ | |
28257 | msgid "%qE attribute only applies to variadic functions" | |
28258 | msgstr "el atributo %qE se aplica solamente a funciones variadic" | |
28259 | ||
28260 | -#: c-family/c-common.c:8069 ada/gcc-interface/utils.c:5428 | |
28261 | +#: c-family/c-common.c:8069 ada/gcc-interface/utils.c:5434 | |
28262 | #, gcc-internal-format | |
28263 | msgid "requested position is not an integer constant" | |
28264 | msgstr "la posición solicitada no es una constante entera" | |
28265 | ||
28266 | -#: c-family/c-common.c:8077 ada/gcc-interface/utils.c:5435 | |
28267 | +#: c-family/c-common.c:8077 ada/gcc-interface/utils.c:5441 | |
28268 | #, gcc-internal-format | |
28269 | msgid "requested position is less than zero" | |
28270 | msgstr "la posición solicitada es menor a cero" | |
28271 | @@ -21126,177 +21286,177 @@ | |
28272 | msgid "size of array is too large" | |
28273 | msgstr "el tamaño de la matriz es demasiado grande" | |
28274 | ||
28275 | -#: c-family/c-common.c:9425 | |
28276 | +#: c-family/c-common.c:9427 | |
28277 | #, gcc-internal-format | |
28278 | msgid "incorrect number of arguments to function %qE" | |
28279 | msgstr "número incorrecto de argumentos para la función %qE" | |
28280 | ||
28281 | -#: c-family/c-common.c:9433 | |
28282 | +#: c-family/c-common.c:9435 | |
28283 | #, gcc-internal-format | |
28284 | msgid "argument 1 of %qE must be a non-void pointer type" | |
28285 | msgstr "el argumento 1 de %qE debe ser un tipo puntero que no sea void" | |
28286 | ||
28287 | -#: c-family/c-common.c:9442 | |
28288 | +#: c-family/c-common.c:9444 | |
28289 | #, gcc-internal-format | |
28290 | msgid "argument 1 of %qE must be a pointer to a constant size type" | |
28291 | msgstr "el argumento 1 de %qE debe ser un puntero a un tipo de tamaño constante" | |
28292 | ||
28293 | -#: c-family/c-common.c:9453 | |
28294 | +#: c-family/c-common.c:9455 | |
28295 | #, gcc-internal-format | |
28296 | msgid "argument 1 of %qE must be a pointer to a nonzero size object" | |
28297 | msgstr "el argumento 1 de %qE debe ser un puntero a un objeto de tamaño diferente de cero" | |
28298 | ||
28299 | -#: c-family/c-common.c:9468 | |
28300 | +#: c-family/c-common.c:9470 | |
28301 | #, gcc-internal-format | |
28302 | msgid "argument %d of %qE must be a pointer type" | |
28303 | msgstr "el argumento %d de %qE debe ser un tipo puntero" | |
28304 | ||
28305 | -#: c-family/c-common.c:9475 | |
28306 | +#: c-family/c-common.c:9477 | |
28307 | #, gcc-internal-format | |
28308 | msgid "size mismatch in argument %d of %qE" | |
28309 | msgstr "no coincide el tamaño en el argumento %d de %qE" | |
28310 | ||
28311 | -#: c-family/c-common.c:9491 | |
28312 | +#: c-family/c-common.c:9493 | |
28313 | #, gcc-internal-format | |
28314 | msgid "invalid memory model argument %d of %qE" | |
28315 | msgstr "argumento de modelo de memoria %d inválido de %qE" | |
28316 | ||
28317 | -#: c-family/c-common.c:9498 | |
28318 | +#: c-family/c-common.c:9500 | |
28319 | #, gcc-internal-format | |
28320 | msgid "non-integer memory model argument %d of %qE" | |
28321 | msgstr "argumento de modelo de memoria %d que no es entero de %qE" | |
28322 | ||
28323 | -#: c-family/c-common.c:10024 | |
28324 | +#: c-family/c-common.c:10026 | |
28325 | #, gcc-internal-format | |
28326 | msgid "array subscript has type %<char%>" | |
28327 | msgstr "el subíndice de la matriz es de tipo %<char%>" | |
28328 | ||
28329 | -#: c-family/c-common.c:10059 | |
28330 | +#: c-family/c-common.c:10061 | |
28331 | #, gcc-internal-format | |
28332 | msgid "suggest parentheses around %<+%> inside %<<<%>" | |
28333 | msgstr "se sugieren paréntesis alrededor de %<+%> dentro de %<<<%>" | |
28334 | ||
28335 | -#: c-family/c-common.c:10062 | |
28336 | +#: c-family/c-common.c:10064 | |
28337 | #, gcc-internal-format | |
28338 | msgid "suggest parentheses around %<-%> inside %<<<%>" | |
28339 | msgstr "se sugieren paréntesis alrededor de %<-%> dentro de %<<<%>" | |
28340 | ||
28341 | -#: c-family/c-common.c:10068 | |
28342 | +#: c-family/c-common.c:10070 | |
28343 | #, gcc-internal-format | |
28344 | msgid "suggest parentheses around %<+%> inside %<>>%>" | |
28345 | msgstr "se sugieren paréntesis alrededor de %<+%> dentro de %<>>%>" | |
28346 | ||
28347 | -#: c-family/c-common.c:10071 | |
28348 | +#: c-family/c-common.c:10073 | |
28349 | #, gcc-internal-format | |
28350 | msgid "suggest parentheses around %<-%> inside %<>>%>" | |
28351 | msgstr "se sugieren paréntesis alrededor de %<-%> dentro de %<>>%>" | |
28352 | ||
28353 | -#: c-family/c-common.c:10077 | |
28354 | +#: c-family/c-common.c:10079 | |
28355 | #, gcc-internal-format | |
28356 | msgid "suggest parentheses around %<&&%> within %<||%>" | |
28357 | msgstr "se sugieren paréntesis alrededor de %<&&%> junto con %<||%>" | |
28358 | ||
28359 | -#: c-family/c-common.c:10086 | |
28360 | +#: c-family/c-common.c:10088 | |
28361 | #, gcc-internal-format | |
28362 | msgid "suggest parentheses around arithmetic in operand of %<|%>" | |
28363 | msgstr "se sugieren paréntesis alrededor de la aritmética para un operando de %<|%>" | |
28364 | ||
28365 | -#: c-family/c-common.c:10091 | |
28366 | +#: c-family/c-common.c:10093 | |
28367 | #, gcc-internal-format | |
28368 | msgid "suggest parentheses around comparison in operand of %<|%>" | |
28369 | msgstr "se sugieren paréntesis alrededor de la comparación para un operando de %<|%>" | |
28370 | ||
28371 | -#: c-family/c-common.c:10095 | |
28372 | +#: c-family/c-common.c:10097 | |
28373 | #, gcc-internal-format | |
28374 | msgid "suggest parentheses around operand of %<!%> or change %<|%> to %<||%> or %<!%> to %<~%>" | |
28375 | msgstr "se sugieren paréntesis alrededor del operando de %<!%> o cambie %<|%> a %<||%> o %<!%> a %<~%>" | |
28376 | ||
28377 | -#: c-family/c-common.c:10105 | |
28378 | +#: c-family/c-common.c:10107 | |
28379 | #, gcc-internal-format | |
28380 | msgid "suggest parentheses around arithmetic in operand of %<^%>" | |
28381 | msgstr "se sugieren paréntesis alrededor de la aritmética para un operando de %<^%>" | |
28382 | ||
28383 | -#: c-family/c-common.c:10110 | |
28384 | +#: c-family/c-common.c:10112 | |
28385 | #, gcc-internal-format | |
28386 | msgid "suggest parentheses around comparison in operand of %<^%>" | |
28387 | msgstr "se sugieren paréntesis alrededor de la comparación para un operando de %<^%>" | |
28388 | ||
28389 | -#: c-family/c-common.c:10116 | |
28390 | +#: c-family/c-common.c:10118 | |
28391 | #, gcc-internal-format | |
28392 | msgid "suggest parentheses around %<+%> in operand of %<&%>" | |
28393 | msgstr "se sugieren paréntesis alrededor de %<+%> para un operando de %<&%>" | |
28394 | ||
28395 | -#: c-family/c-common.c:10119 | |
28396 | +#: c-family/c-common.c:10121 | |
28397 | #, gcc-internal-format | |
28398 | msgid "suggest parentheses around %<-%> in operand of %<&%>" | |
28399 | msgstr "se sugieren paréntesis alrededor de %<-%> para un operando de %<&%>" | |
28400 | ||
28401 | -#: c-family/c-common.c:10124 | |
28402 | +#: c-family/c-common.c:10126 | |
28403 | #, gcc-internal-format | |
28404 | msgid "suggest parentheses around comparison in operand of %<&%>" | |
28405 | msgstr "se sugieren paréntesis alrededor de la comparación para un operando de %<&%>" | |
28406 | ||
28407 | -#: c-family/c-common.c:10128 | |
28408 | +#: c-family/c-common.c:10130 | |
28409 | #, gcc-internal-format | |
28410 | msgid "suggest parentheses around operand of %<!%> or change %<&%> to %<&&%> or %<!%> to %<~%>" | |
28411 | msgstr "se sugieren paréntesis alrededor de un operando de %<!%> o cambie %<&%> a %<&&%> o %<!%> a %<~%>" | |
28412 | ||
28413 | -#: c-family/c-common.c:10136 | |
28414 | +#: c-family/c-common.c:10138 | |
28415 | #, gcc-internal-format | |
28416 | msgid "suggest parentheses around comparison in operand of %<==%>" | |
28417 | msgstr "se sugieren paréntesis alrededor de la comparación en un operando de %<==%>" | |
28418 | ||
28419 | -#: c-family/c-common.c:10142 | |
28420 | +#: c-family/c-common.c:10144 | |
28421 | #, gcc-internal-format | |
28422 | msgid "suggest parentheses around comparison in operand of %<!=%>" | |
28423 | msgstr "se sugieren paréntesis alrededor de la comparación en un operando de %<!=%>" | |
28424 | ||
28425 | -#: c-family/c-common.c:10153 | |
28426 | +#: c-family/c-common.c:10155 | |
28427 | #, gcc-internal-format | |
28428 | msgid "comparisons like %<X<=Y<=Z%> do not have their mathematical meaning" | |
28429 | msgstr "las comparaciones como %<X<=Y<=Z%> no tienen su significado matemático" | |
28430 | ||
28431 | -#: c-family/c-common.c:10168 | |
28432 | +#: c-family/c-common.c:10170 | |
28433 | #, gcc-internal-format | |
28434 | msgid "label %q+D defined but not used" | |
28435 | msgstr "se define la etiqueta %q+D pero no se usa" | |
28436 | ||
28437 | -#: c-family/c-common.c:10170 | |
28438 | +#: c-family/c-common.c:10172 | |
28439 | #, gcc-internal-format | |
28440 | msgid "label %q+D declared but not defined" | |
28441 | msgstr "se declara la etiqueta %q+D pero no está definida" | |
28442 | ||
28443 | -#: c-family/c-common.c:10186 | |
28444 | +#: c-family/c-common.c:10188 | |
28445 | #, gcc-internal-format | |
28446 | msgid "division by zero" | |
28447 | msgstr "división por cero" | |
28448 | ||
28449 | -#: c-family/c-common.c:10218 | |
28450 | +#: c-family/c-common.c:10220 | |
28451 | #, gcc-internal-format | |
28452 | msgid "comparison between types %qT and %qT" | |
28453 | msgstr "comparación entre los tipos %qT y %qT" | |
28454 | ||
28455 | -#: c-family/c-common.c:10269 | |
28456 | +#: c-family/c-common.c:10271 | |
28457 | #, gcc-internal-format | |
28458 | msgid "comparison between signed and unsigned integer expressions" | |
28459 | msgstr "comparación entre expresiones enteras signed y unsigned" | |
28460 | ||
28461 | -#: c-family/c-common.c:10320 | |
28462 | +#: c-family/c-common.c:10322 | |
28463 | #, gcc-internal-format | |
28464 | msgid "promoted ~unsigned is always non-zero" | |
28465 | msgstr "el ~unsigned promovido es siempre diferente de cero" | |
28466 | ||
28467 | -#: c-family/c-common.c:10323 | |
28468 | +#: c-family/c-common.c:10325 | |
28469 | #, gcc-internal-format | |
28470 | msgid "comparison of promoted ~unsigned with constant" | |
28471 | msgstr "comparación de un ~unsigned promovido con una constante" | |
28472 | ||
28473 | -#: c-family/c-common.c:10333 | |
28474 | +#: c-family/c-common.c:10335 | |
28475 | #, gcc-internal-format | |
28476 | msgid "comparison of promoted ~unsigned with unsigned" | |
28477 | msgstr "comparación de un ~unsigned promovido con unsigned" | |
28478 | ||
28479 | -#: c-family/c-common.c:10511 | |
28480 | +#: c-family/c-common.c:10513 | |
28481 | #, gcc-internal-format | |
28482 | msgid "typedef %qD locally defined but not used" | |
28483 | msgstr "se define tipo %qD localmente pero no se usa" | |
28484 | @@ -22560,7 +22720,7 @@ | |
28485 | #. coalesced sections. Weak aliases (or any other kind of aliases) are | |
28486 | #. not supported. Weak symbols that aren't visible outside the .s file | |
28487 | #. are not supported. | |
28488 | -#: config/darwin.h:439 | |
28489 | +#: config/darwin.h:441 | |
28490 | #, gcc-internal-format | |
28491 | msgid "alias definitions not supported in Mach-O; ignored" | |
28492 | msgstr "las definiciones de alias no se admiten en Mach-O; descartadas" | |
28493 | @@ -22571,284 +22731,285 @@ | |
28494 | msgid "profiler support for VxWorks" | |
28495 | msgstr "soporte de análisis de perfil para VxWorks" | |
28496 | ||
28497 | -#: config/alpha/alpha.c:277 | |
28498 | +#: config/alpha/alpha.c:282 | |
28499 | #, gcc-internal-format | |
28500 | msgid "bad value %qs for -mtrap-precision switch" | |
28501 | msgstr "valor %qs erróneo para el interruptor -mtrap-precision" | |
28502 | ||
28503 | -#: config/alpha/alpha.c:291 | |
28504 | +#: config/alpha/alpha.c:296 | |
28505 | #, gcc-internal-format | |
28506 | msgid "bad value %qs for -mfp-rounding-mode switch" | |
28507 | msgstr "valor %qs erróneo para el interruptor -mfp-rounding-mode" | |
28508 | ||
28509 | -#: config/alpha/alpha.c:306 | |
28510 | +#: config/alpha/alpha.c:311 | |
28511 | #, gcc-internal-format | |
28512 | msgid "bad value %qs for -mfp-trap-mode switch" | |
28513 | msgstr "valor %qs erróneo para el interruptor -mfp-trap-mode" | |
28514 | ||
28515 | -#: config/alpha/alpha.c:320 | |
28516 | +#: config/alpha/alpha.c:325 | |
28517 | #, gcc-internal-format | |
28518 | msgid "bad value %qs for -mcpu switch" | |
28519 | msgstr "valor %qs erróneo para el interruptor -mcpu" | |
28520 | ||
28521 | -#: config/alpha/alpha.c:332 | |
28522 | +#: config/alpha/alpha.c:337 | |
28523 | #, gcc-internal-format | |
28524 | msgid "bad value %qs for -mtune switch" | |
28525 | msgstr "valor erróneo %qs para la opción -mtune" | |
28526 | ||
28527 | -#: config/alpha/alpha.c:340 | |
28528 | +#: config/alpha/alpha.c:345 | |
28529 | #, gcc-internal-format | |
28530 | msgid "fp software completion requires -mtrap-precision=i" | |
28531 | msgstr "el completado por software de fp requiere una opción -mtrap-precision=i" | |
28532 | ||
28533 | -#: config/alpha/alpha.c:356 | |
28534 | +#: config/alpha/alpha.c:361 | |
28535 | #, gcc-internal-format | |
28536 | msgid "rounding mode not supported for VAX floats" | |
28537 | msgstr "el modo de redondeo no se admite para floats de VAX" | |
28538 | ||
28539 | -#: config/alpha/alpha.c:361 | |
28540 | +#: config/alpha/alpha.c:366 | |
28541 | #, gcc-internal-format | |
28542 | msgid "trap mode not supported for VAX floats" | |
28543 | msgstr "el modo de captura no se admite para valores de coma flotante VAX" | |
28544 | ||
28545 | -#: config/alpha/alpha.c:365 | |
28546 | +#: config/alpha/alpha.c:370 | |
28547 | #, gcc-internal-format | |
28548 | msgid "128-bit long double not supported for VAX floats" | |
28549 | msgstr "los long double de 128 bits no se admiten para valores de coma flotante VAX" | |
28550 | ||
28551 | -#: config/alpha/alpha.c:393 | |
28552 | +#: config/alpha/alpha.c:398 | |
28553 | #, gcc-internal-format, gfc-internal-format | |
28554 | msgid "L%d cache latency unknown for %s" | |
28555 | msgstr "latencia de caché L%d desconocida para %s" | |
28556 | ||
28557 | -#: config/alpha/alpha.c:408 | |
28558 | +#: config/alpha/alpha.c:413 | |
28559 | #, gcc-internal-format | |
28560 | msgid "bad value %qs for -mmemory-latency" | |
28561 | msgstr "valor %qs erróneo para -mmemory-latency" | |
28562 | ||
28563 | -#: config/alpha/alpha.c:6551 config/alpha/alpha.c:6554 config/s390/s390.c:9157 | |
28564 | -#: config/s390/s390.c:9160 | |
28565 | +#: config/alpha/alpha.c:6556 config/alpha/alpha.c:6559 config/s390/s390.c:9162 | |
28566 | +#: config/s390/s390.c:9165 config/tilegx/tilegx.c:3394 | |
28567 | +#: config/tilepro/tilepro.c:3098 | |
28568 | #, gcc-internal-format | |
28569 | msgid "bad builtin fcode" | |
28570 | msgstr "fcode interno erróneo" | |
28571 | ||
28572 | -#: config/arm/arm.c:1523 | |
28573 | +#: config/arm/arm.c:1512 | |
28574 | #, gcc-internal-format, gfc-internal-format | |
28575 | msgid "switch -mcpu=%s conflicts with -march=%s switch" | |
28576 | msgstr "la opción -mcpu=%s genera un conflicto con la opción -march=%s" | |
28577 | ||
28578 | -#: config/arm/arm.c:1640 | |
28579 | +#: config/arm/arm.c:1629 | |
28580 | #, gcc-internal-format | |
28581 | msgid "target CPU does not support ARM mode" | |
28582 | msgstr "el CPU objetivo no tiene soporte para el modo ARM" | |
28583 | ||
28584 | -#: config/arm/arm.c:1646 | |
28585 | +#: config/arm/arm.c:1635 | |
28586 | #, gcc-internal-format | |
28587 | msgid "target CPU does not support interworking" | |
28588 | msgstr "el CPU objetivo no admite trabajo interno" | |
28589 | ||
28590 | -#: config/arm/arm.c:1652 | |
28591 | +#: config/arm/arm.c:1641 | |
28592 | #, gcc-internal-format | |
28593 | msgid "target CPU does not support THUMB instructions" | |
28594 | msgstr "el CPU objetivo no admite las instrucciones THUMB" | |
28595 | ||
28596 | -#: config/arm/arm.c:1670 | |
28597 | +#: config/arm/arm.c:1659 | |
28598 | #, gcc-internal-format | |
28599 | msgid "enabling backtrace support is only meaningful when compiling for the Thumb" | |
28600 | msgstr "habilitar el soporte de rastreo hacia atrás sólo tiene significado cuando se compila para el Thumb" | |
28601 | ||
28602 | -#: config/arm/arm.c:1673 | |
28603 | +#: config/arm/arm.c:1662 | |
28604 | #, gcc-internal-format | |
28605 | msgid "enabling callee interworking support is only meaningful when compiling for the Thumb" | |
28606 | msgstr "habilitar el soporte de trabajo interno de llamado sólo tiene significado cuando se compila para el Thumb" | |
28607 | ||
28608 | -#: config/arm/arm.c:1677 | |
28609 | +#: config/arm/arm.c:1666 | |
28610 | #, gcc-internal-format | |
28611 | msgid "-mapcs-stack-check incompatible with -mno-apcs-frame" | |
28612 | msgstr "-mapcs-stack-check es incompatible con -mno-apcs-frame" | |
28613 | ||
28614 | -#: config/arm/arm.c:1685 | |
28615 | +#: config/arm/arm.c:1674 | |
28616 | #, gcc-internal-format | |
28617 | msgid "-fpic and -mapcs-reent are incompatible" | |
28618 | msgstr "-fpic y -mapcs-reent son incompatibles" | |
28619 | ||
28620 | -#: config/arm/arm.c:1688 | |
28621 | +#: config/arm/arm.c:1677 | |
28622 | #, gcc-internal-format | |
28623 | msgid "APCS reentrant code not supported. Ignored" | |
28624 | msgstr "no se admite el código reentrante APCS. Descartado" | |
28625 | ||
28626 | -#: config/arm/arm.c:1696 | |
28627 | +#: config/arm/arm.c:1685 | |
28628 | #, gcc-internal-format | |
28629 | msgid "-g with -mno-apcs-frame may not give sensible debugging" | |
28630 | msgstr "-g con -mno-apcs-frame no permite una depuración sensible" | |
28631 | ||
28632 | -#: config/arm/arm.c:1699 | |
28633 | +#: config/arm/arm.c:1688 | |
28634 | #, gcc-internal-format | |
28635 | msgid "passing floating point arguments in fp regs not yet supported" | |
28636 | msgstr "aún no se admite el paso de argumentos de coma flotante en registros fp" | |
28637 | ||
28638 | -#: config/arm/arm.c:1702 | |
28639 | +#: config/arm/arm.c:1691 | |
28640 | #, gcc-internal-format | |
28641 | msgid "%<mwords-little-endian%> is deprecated and will be removed in a future release" | |
28642 | msgstr "%<mwords-little-endian%> es obsoleto y se eliminará en una versión futura" | |
28643 | ||
28644 | -#: config/arm/arm.c:1764 | |
28645 | +#: config/arm/arm.c:1753 | |
28646 | #, gcc-internal-format | |
28647 | msgid "iwmmxt requires an AAPCS compatible ABI for proper operation" | |
28648 | msgstr "iwmmxt requiere una ABI compatible con AAPCS para una operación adecuada" | |
28649 | ||
28650 | -#: config/arm/arm.c:1767 | |
28651 | +#: config/arm/arm.c:1756 | |
28652 | #, gcc-internal-format | |
28653 | msgid "iwmmxt abi requires an iwmmxt capable cpu" | |
28654 | msgstr "el abi iwmmxt requiere un cpu capaz de iwmmxt" | |
28655 | ||
28656 | -#: config/arm/arm.c:1815 | |
28657 | +#: config/arm/arm.c:1804 | |
28658 | #, gcc-internal-format | |
28659 | msgid "FPA is unsupported in the AAPCS" | |
28660 | msgstr "no se admite FPA en el AAPCS" | |
28661 | ||
28662 | -#: config/arm/arm.c:1820 | |
28663 | +#: config/arm/arm.c:1809 | |
28664 | #, gcc-internal-format | |
28665 | msgid "AAPCS does not support -mcaller-super-interworking" | |
28666 | msgstr "AAPCS no admite -mcaller-super-interworking" | |
28667 | ||
28668 | -#: config/arm/arm.c:1823 | |
28669 | +#: config/arm/arm.c:1812 | |
28670 | #, gcc-internal-format | |
28671 | msgid "AAPCS does not support -mcallee-super-interworking" | |
28672 | msgstr "AAPCS no admite -mcallee-super-interworking" | |
28673 | ||
28674 | -#: config/arm/arm.c:1830 | |
28675 | +#: config/arm/arm.c:1819 | |
28676 | #, gcc-internal-format | |
28677 | msgid "iWMMXt and hardware floating point" | |
28678 | msgstr "coma flotante iWMMXt y de hardware" | |
28679 | ||
28680 | -#: config/arm/arm.c:1834 | |
28681 | +#: config/arm/arm.c:1823 | |
28682 | #, gcc-internal-format | |
28683 | msgid "Thumb-2 iWMMXt" | |
28684 | msgstr "iWMMXt de Thumb-2" | |
28685 | ||
28686 | -#: config/arm/arm.c:1838 | |
28687 | +#: config/arm/arm.c:1827 | |
28688 | #, gcc-internal-format | |
28689 | msgid "__fp16 and no ldrh" | |
28690 | msgstr "__fp16 sin ldrh" | |
28691 | ||
28692 | -#: config/arm/arm.c:1858 | |
28693 | +#: config/arm/arm.c:1847 | |
28694 | #, gcc-internal-format | |
28695 | msgid "-mfloat-abi=hard and VFP" | |
28696 | msgstr "-mfloat-abi=hard y VFP" | |
28697 | ||
28698 | -#: config/arm/arm.c:1883 | |
28699 | +#: config/arm/arm.c:1872 | |
28700 | #, gcc-internal-format | |
28701 | msgid "can not use -mtp=cp15 with 16-bit Thumb" | |
28702 | msgstr "no se puede usar -mtp=cp15 con Thumb de 16-bit" | |
28703 | ||
28704 | -#: config/arm/arm.c:1899 | |
28705 | +#: config/arm/arm.c:1888 | |
28706 | #, gcc-internal-format | |
28707 | msgid "structure size boundary can only be set to 8, 32 or 64" | |
28708 | msgstr "el límite del tamaño de la estructura sólo se puede establecer a 8, 32 o 64" | |
28709 | ||
28710 | -#: config/arm/arm.c:1901 | |
28711 | +#: config/arm/arm.c:1890 | |
28712 | #, gcc-internal-format | |
28713 | msgid "structure size boundary can only be set to 8 or 32" | |
28714 | msgstr "el límite del tamaño de la estructura sólo se puede establecer a 8 o 32" | |
28715 | ||
28716 | -#: config/arm/arm.c:1909 | |
28717 | +#: config/arm/arm.c:1898 | |
28718 | #, gcc-internal-format | |
28719 | msgid "RTP PIC is incompatible with Thumb" | |
28720 | msgstr "El PIC de RTP es incompatible con Thumb" | |
28721 | ||
28722 | -#: config/arm/arm.c:1918 | |
28723 | +#: config/arm/arm.c:1907 | |
28724 | #, gcc-internal-format | |
28725 | msgid "RTP PIC is incompatible with -msingle-pic-base" | |
28726 | msgstr "El PIC de RTP es incompatible con -msingle-pic-base" | |
28727 | ||
28728 | -#: config/arm/arm.c:1930 | |
28729 | +#: config/arm/arm.c:1919 | |
28730 | #, gcc-internal-format | |
28731 | msgid "-mpic-register= is useless without -fpic" | |
28732 | msgstr "-mpic-register= es inútil sin -fpic" | |
28733 | ||
28734 | -#: config/arm/arm.c:1939 | |
28735 | +#: config/arm/arm.c:1928 | |
28736 | #, gcc-internal-format, gfc-internal-format | |
28737 | msgid "unable to use '%s' for PIC register" | |
28738 | msgstr "no se puede usar '%s' para registro PIC" | |
28739 | ||
28740 | -#: config/arm/arm.c:1971 | |
28741 | +#: config/arm/arm.c:1960 | |
28742 | #, gcc-internal-format | |
28743 | msgid "target CPU does not support unaligned accesses" | |
28744 | msgstr "el CPU objetivo no admite accesos sin alinear" | |
28745 | ||
28746 | -#: config/arm/arm.c:1995 | |
28747 | +#: config/arm/arm.c:1984 | |
28748 | #, gcc-internal-format | |
28749 | msgid "-freorder-blocks-and-partition not supported on this architecture" | |
28750 | msgstr "no se admite -freorder-blocks-and-partition en esta arquitectura" | |
28751 | ||
28752 | -#: config/arm/arm.c:4043 | |
28753 | +#: config/arm/arm.c:4036 | |
28754 | #, gcc-internal-format | |
28755 | msgid "non-AAPCS derived PCS variant" | |
28756 | msgstr "variante PCS derivada de un no AAPCS" | |
28757 | ||
28758 | -#: config/arm/arm.c:4045 | |
28759 | +#: config/arm/arm.c:4038 | |
28760 | #, gcc-internal-format | |
28761 | msgid "variadic functions must use the base AAPCS variant" | |
28762 | msgstr "las funciones variadic debe usar la variante AAPCS base" | |
28763 | ||
28764 | -#: config/arm/arm.c:4064 | |
28765 | +#: config/arm/arm.c:4057 | |
28766 | #, gcc-internal-format | |
28767 | msgid "PCS variant" | |
28768 | msgstr "variante PCS" | |
28769 | ||
28770 | -#: config/arm/arm.c:4259 | |
28771 | +#: config/arm/arm.c:4252 | |
28772 | #, gcc-internal-format | |
28773 | msgid "Thumb-1 hard-float VFP ABI" | |
28774 | msgstr "ABI de VFP de coma flotante dura de Thumb-1" | |
28775 | ||
28776 | -#: config/arm/arm.c:4975 config/arm/arm.c:4993 config/avr/avr.c:6748 | |
28777 | -#: config/avr/avr.c:6764 config/bfin/bfin.c:4636 config/bfin/bfin.c:4697 | |
28778 | +#: config/arm/arm.c:4975 config/arm/arm.c:4993 config/avr/avr.c:6866 | |
28779 | +#: config/avr/avr.c:6882 config/bfin/bfin.c:4636 config/bfin/bfin.c:4697 | |
28780 | #: config/bfin/bfin.c:4726 config/h8300/h8300.c:5394 config/i386/i386.c:4899 | |
28781 | -#: config/i386/i386.c:31712 config/i386/i386.c:31763 config/i386/i386.c:31836 | |
28782 | +#: config/i386/i386.c:31746 config/i386/i386.c:31797 config/i386/i386.c:31870 | |
28783 | #: config/m68k/m68k.c:725 config/mcore/mcore.c:3076 config/mep/mep.c:4011 | |
28784 | #: config/mep/mep.c:4025 config/mep/mep.c:4099 config/rl78/rl78.c:478 | |
28785 | -#: config/rs6000/rs6000.c:24244 config/rx/rx.c:2502 config/sh/sh.c:8885 | |
28786 | -#: config/sh/sh.c:8903 config/sh/sh.c:8932 config/sh/sh.c:9014 | |
28787 | -#: config/sh/sh.c:9037 config/spu/spu.c:3977 config/stormy16/stormy16.c:2200 | |
28788 | +#: config/rs6000/rs6000.c:24261 config/rx/rx.c:2502 config/sh/sh.c:8890 | |
28789 | +#: config/sh/sh.c:8908 config/sh/sh.c:8937 config/sh/sh.c:9019 | |
28790 | +#: config/sh/sh.c:9042 config/spu/spu.c:3977 config/stormy16/stormy16.c:2200 | |
28791 | #: config/v850/v850.c:2057 | |
28792 | #, gcc-internal-format | |
28793 | msgid "%qE attribute only applies to functions" | |
28794 | msgstr "el atributo %qE se aplica solamente a funciones" | |
28795 | ||
28796 | -#: config/arm/arm.c:18922 | |
28797 | +#: config/arm/arm.c:18925 | |
28798 | #, gcc-internal-format | |
28799 | msgid "unable to compute real location of stacked parameter" | |
28800 | msgstr "no se puede calcular la ubicación real del parámetro apilado" | |
28801 | ||
28802 | -#: config/arm/arm.c:20660 | |
28803 | +#: config/arm/arm.c:20665 | |
28804 | #, gcc-internal-format | |
28805 | msgid "argument must be a constant" | |
28806 | msgstr "el argumento debe ser una constante" | |
28807 | ||
28808 | #. @@@ better error message | |
28809 | -#: config/arm/arm.c:21029 config/arm/arm.c:21066 | |
28810 | +#: config/arm/arm.c:21034 config/arm/arm.c:21071 | |
28811 | #, gcc-internal-format | |
28812 | msgid "selector must be an immediate" | |
28813 | msgstr "el selector debe ser un inmediato" | |
28814 | ||
28815 | #. @@@ better error message | |
28816 | -#: config/arm/arm.c:21109 | |
28817 | +#: config/arm/arm.c:21114 | |
28818 | #, gcc-internal-format | |
28819 | msgid "mask must be an immediate" | |
28820 | msgstr "la máscara debe ser un inmediato" | |
28821 | ||
28822 | -#: config/arm/arm.c:21893 | |
28823 | +#: config/arm/arm.c:21898 | |
28824 | #, gcc-internal-format | |
28825 | msgid "no low registers available for popping high registers" | |
28826 | msgstr "no hay registros inferiores disponibles para extraer registros superiores" | |
28827 | ||
28828 | -#: config/arm/arm.c:22118 | |
28829 | +#: config/arm/arm.c:22123 | |
28830 | #, gcc-internal-format | |
28831 | msgid "interrupt Service Routines cannot be coded in Thumb mode" | |
28832 | msgstr "no se pueden codificar las Rutinas de Servicios de Interrupción en el modo Thumb" | |
28833 | ||
28834 | -#: config/arm/arm.c:24404 | |
28835 | +#: config/arm/arm.c:24409 | |
28836 | #, gcc-internal-format | |
28837 | msgid "the mangling of %<va_list%> has changed in GCC 4.4" | |
28838 | msgstr "la decodificación de %<va_list%> cambió en GCC 4.4" | |
28839 | @@ -22863,91 +23024,101 @@ | |
28840 | msgid "static variable %q+D is marked dllimport" | |
28841 | msgstr "la variable estática %q+D se marcó como dllimport" | |
28842 | ||
28843 | -#: config/avr/avr.c:742 | |
28844 | +#: config/avr/avr.c:666 | |
28845 | #, gcc-internal-format | |
28846 | msgid "'builtin_return_address' contains only 2 bytes of address" | |
28847 | msgstr "'builtin_return_address' sólo contiene 2 bytes de dirección" | |
28848 | ||
28849 | -#: config/avr/avr.c:1778 | |
28850 | +#: config/avr/avr.c:1775 | |
28851 | #, gcc-internal-format | |
28852 | msgid "pointer offset from symbol maybe incorrect" | |
28853 | msgstr "el desplazamiento del puntero desde el símbolo tal vez es incorrecto" | |
28854 | ||
28855 | -#: config/avr/avr.c:1895 | |
28856 | +#: config/avr/avr.c:1898 | |
28857 | #, gcc-internal-format | |
28858 | msgid "accessing data memory with program memory address" | |
28859 | msgstr "se accede a memoria de datos con dirección de memoria de programa" | |
28860 | ||
28861 | -#: config/avr/avr.c:1944 | |
28862 | +#: config/avr/avr.c:1947 | |
28863 | #, gcc-internal-format | |
28864 | msgid "accessing program memory with data memory address" | |
28865 | msgstr "se accede a memoria de programa con dirección de memoria de datos" | |
28866 | ||
28867 | -#: config/avr/avr.c:2350 | |
28868 | +#: config/avr/avr.c:2353 | |
28869 | #, gcc-internal-format, gfc-internal-format | |
28870 | msgid "fixed register %s used to pass parameter to function" | |
28871 | msgstr "se usó el registro fijo %s para pasar un parámetro a la función" | |
28872 | ||
28873 | -#: config/avr/avr.c:2622 | |
28874 | +#: config/avr/avr.c:2625 | |
28875 | #, gcc-internal-format | |
28876 | msgid "writing to address space %qs not supported" | |
28877 | msgstr "no se admite escribir al espacio de direcciones %qs" | |
28878 | ||
28879 | -#: config/avr/avr.c:6660 | |
28880 | +#: config/avr/avr.c:6778 | |
28881 | #, gcc-internal-format | |
28882 | msgid "%qs appears to be a misspelled interrupt handler" | |
28883 | msgstr "%qs parece ser un manejador de interrupciones mal escrito" | |
28884 | ||
28885 | -#: config/avr/avr.c:6669 | |
28886 | +#: config/avr/avr.c:6787 | |
28887 | #, gcc-internal-format | |
28888 | msgid "%qs appears to be a misspelled signal handler" | |
28889 | msgstr "%qs parece ser un manejador de señales mal escrito" | |
28890 | ||
28891 | -#: config/avr/avr.c:6932 | |
28892 | +#: config/avr/avr.c:7060 | |
28893 | #, gcc-internal-format | |
28894 | +msgid "%qT uses address space %qs beyond flash of %qs" | |
28895 | +msgstr "%qT usa el espacio de direcciones %qs más allá del destello de %qs" | |
28896 | + | |
28897 | +#: config/avr/avr.c:7063 | |
28898 | +#, gcc-internal-format | |
28899 | +msgid "%s %q+D uses address space %qs beyond flash of %qs" | |
28900 | +msgstr "%s %q+D usa el espacio de direcciones %qs más allá del destello de %qs" | |
28901 | + | |
28902 | +#: config/avr/avr.c:7070 | |
28903 | +#, gcc-internal-format | |
28904 | msgid "pointer targeting address space %qs must be const in %qT" | |
28905 | msgstr "el espacio de direcciones %qs que apuntan a punteros debe ser const en %qT" | |
28906 | ||
28907 | -#: config/avr/avr.c:6935 | |
28908 | +#: config/avr/avr.c:7073 | |
28909 | #, gcc-internal-format | |
28910 | msgid "pointer targeting address space %qs must be const in %s %q+D" | |
28911 | msgstr "el espacio de direcciones %qs que apuntan a punteros debe ser const en %s %q+D" | |
28912 | ||
28913 | -#: config/avr/avr.c:6978 | |
28914 | +#: config/avr/avr.c:7111 | |
28915 | #, gcc-internal-format | |
28916 | +msgid "variable %q+D located in address space %qs beyond flash of %qs" | |
28917 | +msgstr "la variable %q+D se ubica en el espacio de direcciones %qs más allá del destello de %qs" | |
28918 | + | |
28919 | +#: config/avr/avr.c:7127 | |
28920 | +#, gcc-internal-format | |
28921 | msgid "variable %q+D must be const in order to be put into read-only section by means of %qs" | |
28922 | msgstr "la variable %q+D debe ser const para que se ponga en la sección de sólo lectura a través de %qs" | |
28923 | ||
28924 | -#: config/avr/avr.c:7188 | |
28925 | +#: config/avr/avr.c:7341 | |
28926 | #, gcc-internal-format | |
28927 | msgid "only uninitialized variables can be placed in the .noinit section" | |
28928 | msgstr "Sólo las variables sin inicializar se pueden colocar en la sección .noinit" | |
28929 | ||
28930 | -#: config/avr/avr.c:7229 | |
28931 | +#: config/avr/avr.c:7382 | |
28932 | #, gcc-internal-format | |
28933 | msgid "uninitialized variable %q+D put into program memory area" | |
28934 | msgstr "se colocó la variable %q+D sin inicializar en el área de memoria del programa" | |
28935 | ||
28936 | -#: config/avr/avr.c:7296 | |
28937 | +#: config/avr/avr.c:7449 | |
28938 | #, gcc-internal-format | |
28939 | msgid "MCU %qs supported for assembler only" | |
28940 | msgstr "MCU %qs sólo se admite para ensamblador" | |
28941 | ||
28942 | -#: config/avr/avr.c:10519 | |
28943 | +#: config/avr/avr.c:10677 | |
28944 | #, gcc-internal-format, gfc-internal-format | |
28945 | msgid "%s expects a compile time integer constant" | |
28946 | msgstr "%s expera una constante entera en tiempo de compilación" | |
28947 | ||
28948 | -#: config/avr/avr.c:10532 | |
28949 | +#: config/avr/avr.c:10691 | |
28950 | #, gcc-internal-format, gfc-internal-format | |
28951 | msgid "%s expects a compile time long integer constant as first argument" | |
28952 | msgstr "%s espera una constante entera long en tiempo de compilación como primer argumento" | |
28953 | ||
28954 | -#: config/avr/avr.c:10545 | |
28955 | -#, gcc-internal-format, gfc-internal-format | |
28956 | -msgid "%s expects a compile time long long integer constant as first argument" | |
28957 | -msgstr "%s espera una constante entera long long en tiempo de compilación como primer argumento" | |
28958 | - | |
28959 | #: config/bfin/bfin.c:2348 | |
28960 | #, gcc-internal-format | |
28961 | msgid "-mfdpic is not supported, please use a bfin-linux-uclibc target" | |
28962 | @@ -23029,6 +23200,21 @@ | |
28963 | msgid "profiling is not yet implemented for this architecture" | |
28964 | msgstr "el análisis de perfil aún no se implementa en esta arquitectura" | |
28965 | ||
28966 | +#: config/cr16/cr16.c:294 | |
28967 | +#, gcc-internal-format | |
28968 | +msgid "data-model=far not valid for cr16c architecture" | |
28969 | +msgstr "data-model=far no es válido para la arquitectura cr16c" | |
28970 | + | |
28971 | +#: config/cr16/cr16.c:297 | |
28972 | +#, gcc-internal-format, gfc-internal-format | |
28973 | +msgid "invalid data model option -mdata-model=%s" | |
28974 | +msgstr "opción de modelo de datos -mdata-model=%s inválida" | |
28975 | + | |
28976 | +#: config/cr16/cr16.h:431 | |
28977 | +#, gcc-internal-format | |
28978 | +msgid "profiler support for CR16" | |
28979 | +msgstr "soporte de análisis de perfil para CR16" | |
28980 | + | |
28981 | #. This function is for retrieving a part of an instruction name for | |
28982 | #. an operator, for immediate output. If that ever happens for | |
28983 | #. MULT, we need to apply TARGET_MUL_BUG in the caller. Make sure | |
28984 | @@ -23168,22 +23354,22 @@ | |
28985 | msgid "no FUNCTION_PROFILER for CRIS" | |
28986 | msgstr "no hay FUNCTION_PROFILER para CRIS" | |
28987 | ||
28988 | -#: config/epiphany/epiphany.c:433 | |
28989 | +#: config/epiphany/epiphany.c:441 config/epiphany/epiphany.c:481 | |
28990 | #, gcc-internal-format | |
28991 | msgid "argument of %qE attribute is not a string constant" | |
28992 | msgstr "el argumento del atributo %qE no es una cadena constante" | |
28993 | ||
28994 | -#: config/epiphany/epiphany.c:448 | |
28995 | +#: config/epiphany/epiphany.c:456 | |
28996 | #, gcc-internal-format | |
28997 | msgid "argument of %qE attribute is not \"reset\", \"software_exception\", \"page_miss\", \"timer0\", \"timer1\", \"message\", \"dma0\", \"dma1\", \"wand\" or \"swi\"" | |
28998 | msgstr "el argumento del atributo %qE no es \"reset\", \"software_exception\", \"page_miss\", \"timer0\", \"timer1\", \"message\", \"dma0\", \"dma1\", \"wand\" o \"swi\"" | |
28999 | ||
29000 | -#: config/epiphany/epiphany.c:1428 | |
29001 | +#: config/epiphany/epiphany.c:1431 | |
29002 | #, gcc-internal-format | |
29003 | msgid "stack_offset must be at least 4" | |
29004 | msgstr "stack_offset debe ser por lo menos 4" | |
29005 | ||
29006 | -#: config/epiphany/epiphany.c:1430 | |
29007 | +#: config/epiphany/epiphany.c:1433 | |
29008 | #, gcc-internal-format | |
29009 | msgid "stack_offset must be a multiple of 4" | |
29010 | msgstr "stack_offset debe ser un múltiplo de 4" | |
29011 | @@ -23390,7 +23576,7 @@ | |
29012 | msgid "-mno-fentry isn%'t compatible with SEH" | |
29013 | msgstr "-mno-fentry no es compatible con SEH" | |
29014 | ||
29015 | -#: config/i386/i386.c:3861 config/rs6000/rs6000.c:3318 | |
29016 | +#: config/i386/i386.c:3861 config/rs6000/rs6000.c:3331 | |
29017 | #, gcc-internal-format, gfc-internal-format | |
29018 | msgid "unknown option for -mrecip=%s" | |
29019 | msgstr "opción desconocida para -mrecip=%s" | |
29020 | @@ -23415,7 +23601,7 @@ | |
29021 | msgid "regparam and thiscall attributes are not compatible" | |
29022 | msgstr "los atributos regparam y thiscall no son compatibles" | |
29023 | ||
29024 | -#: config/i386/i386.c:4924 config/i386/i386.c:31732 | |
29025 | +#: config/i386/i386.c:4924 config/i386/i386.c:31766 | |
29026 | #, gcc-internal-format | |
29027 | msgid "%qE attribute requires an integer constant argument" | |
29028 | msgstr "el atributo %qE requiere un argumento constante entero" | |
29029 | @@ -23567,112 +23753,112 @@ | |
29030 | msgid "-fsplit-stack does not support 3 register parameters" | |
29031 | msgstr "-fsplit-stack no admite 3 parámetros de registro" | |
29032 | ||
29033 | -#: config/i386/i386.c:13557 | |
29034 | +#: config/i386/i386.c:13584 | |
29035 | #, gcc-internal-format | |
29036 | msgid "extended registers have no high halves" | |
29037 | msgstr "los registros extendidos no tiene mitades superiores" | |
29038 | ||
29039 | -#: config/i386/i386.c:13572 | |
29040 | +#: config/i386/i386.c:13599 | |
29041 | #, gcc-internal-format | |
29042 | msgid "unsupported operand size for extended register" | |
29043 | msgstr "no se admite el tamaño de operando para el registro extendido" | |
29044 | ||
29045 | -#: config/i386/i386.c:13819 | |
29046 | +#: config/i386/i386.c:13846 | |
29047 | #, gcc-internal-format, gfc-internal-format | |
29048 | msgid "non-integer operand used with operand code '%c'" | |
29049 | msgstr "se usó un operando que no es entero con el código de operando '%c'" | |
29050 | ||
29051 | -#: config/i386/i386.c:27703 config/i386/i386.c:28640 | |
29052 | +#: config/i386/i386.c:27737 config/i386/i386.c:28674 | |
29053 | #, gcc-internal-format | |
29054 | msgid "the last argument must be a 2-bit immediate" | |
29055 | msgstr "el tercer argumento debe ser un inmediato de 2-bit" | |
29056 | ||
29057 | -#: config/i386/i386.c:28109 | |
29058 | +#: config/i386/i386.c:28143 | |
29059 | #, gcc-internal-format | |
29060 | msgid "the fifth argument must be an 8-bit immediate" | |
29061 | msgstr "el quinto argumento debe ser un inmediato de 8-bit" | |
29062 | ||
29063 | -#: config/i386/i386.c:28204 | |
29064 | +#: config/i386/i386.c:28238 | |
29065 | #, gcc-internal-format | |
29066 | msgid "the third argument must be an 8-bit immediate" | |
29067 | msgstr "el tercer argumento debe ser un inmediato de 8-bit" | |
29068 | ||
29069 | -#: config/i386/i386.c:28612 | |
29070 | +#: config/i386/i386.c:28646 | |
29071 | #, gcc-internal-format | |
29072 | msgid "the last argument must be an 1-bit immediate" | |
29073 | msgstr "el último argumento debe ser un inmediato de 1-bit" | |
29074 | ||
29075 | -#: config/i386/i386.c:28631 | |
29076 | +#: config/i386/i386.c:28665 | |
29077 | #, gcc-internal-format | |
29078 | msgid "the last argument must be a 4-bit immediate" | |
29079 | msgstr "el último argumento debe ser un inmediato de 4-bit" | |
29080 | ||
29081 | -#: config/i386/i386.c:28649 | |
29082 | +#: config/i386/i386.c:28683 | |
29083 | #, gcc-internal-format | |
29084 | msgid "the last argument must be a 1-bit immediate" | |
29085 | msgstr "el último argumento debe ser un inmediato de 1-bit" | |
29086 | ||
29087 | -#: config/i386/i386.c:28658 | |
29088 | +#: config/i386/i386.c:28692 | |
29089 | #, gcc-internal-format | |
29090 | msgid "the last argument must be a 5-bit immediate" | |
29091 | msgstr "el tercer argumento debe ser un inmediato de 5-bit" | |
29092 | ||
29093 | -#: config/i386/i386.c:28667 | |
29094 | +#: config/i386/i386.c:28701 | |
29095 | #, gcc-internal-format | |
29096 | msgid "the next to last argument must be an 8-bit immediate" | |
29097 | msgstr "el penúltimo argumento debe ser un inmediato de 8-bit" | |
29098 | ||
29099 | -#: config/i386/i386.c:28671 config/i386/i386.c:28895 | |
29100 | +#: config/i386/i386.c:28705 config/i386/i386.c:28929 | |
29101 | #, gcc-internal-format | |
29102 | msgid "the last argument must be an 8-bit immediate" | |
29103 | msgstr "el último argumento debe ser un inmediato de 8-bit" | |
29104 | ||
29105 | -#: config/i386/i386.c:28893 | |
29106 | +#: config/i386/i386.c:28927 | |
29107 | #, gcc-internal-format | |
29108 | msgid "the last argument must be a 32-bit immediate" | |
29109 | msgstr "el último argumento debe ser un inmediato de 32-bit" | |
29110 | ||
29111 | -#: config/i386/i386.c:28961 config/rs6000/rs6000.c:10535 | |
29112 | +#: config/i386/i386.c:28995 config/rs6000/rs6000.c:10551 | |
29113 | #, gcc-internal-format | |
29114 | msgid "selector must be an integer constant in the range 0..%wi" | |
29115 | msgstr "el selector debe ser una constante entera en el rango 0..%wi" | |
29116 | ||
29117 | -#: config/i386/i386.c:29104 | |
29118 | +#: config/i386/i386.c:29138 | |
29119 | #, gcc-internal-format | |
29120 | msgid "%qE needs unknown isa option" | |
29121 | msgstr "%qE necesita la opción isa desconocida" | |
29122 | ||
29123 | -#: config/i386/i386.c:29108 | |
29124 | +#: config/i386/i386.c:29142 | |
29125 | #, gcc-internal-format | |
29126 | msgid "%qE needs isa option %s" | |
29127 | msgstr "%qE necesita la opción isa %s" | |
29128 | ||
29129 | -#: config/i386/i386.c:29279 | |
29130 | +#: config/i386/i386.c:29313 | |
29131 | #, gcc-internal-format | |
29132 | msgid "last argument must be an immediate" | |
29133 | msgstr "el último argumento debe ser un inmediato" | |
29134 | ||
29135 | -#: config/i386/i386.c:29473 | |
29136 | +#: config/i386/i386.c:29507 | |
29137 | #, gcc-internal-format | |
29138 | msgid "last argument must be scale 1, 2, 4, 8" | |
29139 | msgstr "el argumento izquierdo debe ser un escalar 1, 2, 4, 8" | |
29140 | ||
29141 | -#: config/i386/i386.c:31719 | |
29142 | +#: config/i386/i386.c:31753 | |
29143 | #, gcc-internal-format | |
29144 | msgid "%qE attribute only available for 32-bit" | |
29145 | msgstr "el atributo %qE solamente está disponible para 64-bit" | |
29146 | ||
29147 | -#: config/i386/i386.c:31740 | |
29148 | +#: config/i386/i386.c:31774 | |
29149 | #, gcc-internal-format | |
29150 | msgid "argument to %qE attribute is neither zero, nor one" | |
29151 | msgstr "el argumento del atributo %qE no es cero ni uno" | |
29152 | ||
29153 | -#: config/i386/i386.c:31774 config/i386/i386.c:31783 | |
29154 | +#: config/i386/i386.c:31808 config/i386/i386.c:31817 | |
29155 | #, gcc-internal-format | |
29156 | msgid "ms_abi and sysv_abi attributes are not compatible" | |
29157 | msgstr "los atributos ms_abi y sysv_abi no son compatibles" | |
29158 | ||
29159 | -#: config/i386/i386.c:31821 config/rs6000/rs6000.c:24327 | |
29160 | +#: config/i386/i386.c:31855 config/rs6000/rs6000.c:24344 | |
29161 | #, gcc-internal-format | |
29162 | msgid "%qE incompatible attribute ignored" | |
29163 | msgstr "se descarta el atributo incompatible %qE" | |
29164 | @@ -23742,13 +23928,13 @@ | |
29165 | msgid "%qE attribute requires a string constant argument" | |
29166 | msgstr "el atributo %qE requiere una constante entera como argumento" | |
29167 | ||
29168 | -#: config/ia64/ia64.c:5737 config/pa/pa.c:412 config/sh/sh.c:8733 | |
29169 | +#: config/ia64/ia64.c:5737 config/pa/pa.c:412 config/sh/sh.c:8738 | |
29170 | #: config/spu/spu.c:5187 | |
29171 | #, gcc-internal-format | |
29172 | msgid "value of -mfixed-range must have form REG1-REG2" | |
29173 | msgstr "el valor de -mfixed-range debe ser de la forma REG1-REG2" | |
29174 | ||
29175 | -#: config/ia64/ia64.c:5764 config/pa/pa.c:439 config/sh/sh.c:8759 | |
29176 | +#: config/ia64/ia64.c:5764 config/pa/pa.c:439 config/sh/sh.c:8764 | |
29177 | #: config/spu/spu.c:5213 | |
29178 | #, gcc-internal-format, gfc-internal-format | |
29179 | msgid "%s-%s is an empty range" | |
29180 | @@ -23820,7 +24006,7 @@ | |
29181 | msgstr "no se admite el atributo %qE para el objetivo R8C" | |
29182 | ||
29183 | #. The argument must be a constant integer. | |
29184 | -#: config/m32c/m32c.c:3169 config/sh/sh.c:8940 config/sh/sh.c:9046 | |
29185 | +#: config/m32c/m32c.c:3169 config/sh/sh.c:8945 config/sh/sh.c:9051 | |
29186 | #, gcc-internal-format | |
29187 | msgid "%qE attribute argument not an integer constant" | |
29188 | msgstr "el argumento del atributo %qE no es una constante entera" | |
29189 | @@ -23875,7 +24061,7 @@ | |
29190 | msgid "interrupt_thread is available only on fido" | |
29191 | msgstr "interrupt_thread sólo está disponible en fido" | |
29192 | ||
29193 | -#: config/m68k/m68k.c:1072 config/rs6000/rs6000.c:18605 | |
29194 | +#: config/m68k/m68k.c:1072 config/rs6000/rs6000.c:18621 | |
29195 | #, gcc-internal-format | |
29196 | msgid "stack limit expression is not supported" | |
29197 | msgstr "no se admite la expresión del límite de la pila" | |
29198 | @@ -24168,112 +24354,112 @@ | |
29199 | msgid "-mxl-multiply-high requires -mno-xl-soft-mul" | |
29200 | msgstr "-mxl-multiply-high requiere -mno-xl-soft-mul" | |
29201 | ||
29202 | -#: config/mips/mips.c:1273 config/mips/mips.c:1275 | |
29203 | +#: config/mips/mips.c:1282 config/mips/mips.c:1284 | |
29204 | #, gcc-internal-format | |
29205 | msgid "%qs attribute only applies to functions" | |
29206 | msgstr "el atributo %qs se aplica solamente a funciones" | |
29207 | ||
29208 | -#: config/mips/mips.c:1285 | |
29209 | +#: config/mips/mips.c:1294 | |
29210 | #, gcc-internal-format | |
29211 | msgid "%qE cannot have both %<mips16%> and %<nomips16%> attributes" | |
29212 | msgstr "%qE no puede tener atributos %<mips16%> y %<nomips16%> al mismo tiempo" | |
29213 | ||
29214 | -#: config/mips/mips.c:1307 config/mips/mips.c:1310 | |
29215 | +#: config/mips/mips.c:1316 config/mips/mips.c:1319 | |
29216 | #, gcc-internal-format | |
29217 | msgid "%qE redeclared with conflicting %qs attributes" | |
29218 | msgstr "%qE se redeclaró con los atributos %qs en conflicto" | |
29219 | ||
29220 | -#: config/mips/mips.c:6408 | |
29221 | +#: config/mips/mips.c:6570 | |
29222 | #, gcc-internal-format | |
29223 | msgid "cannot handle inconsistent calls to %qs" | |
29224 | msgstr "no se pueden manejar llamadas inconsistentes a %qs" | |
29225 | ||
29226 | -#: config/mips/mips.c:9352 | |
29227 | +#: config/mips/mips.c:9523 | |
29228 | #, gcc-internal-format | |
29229 | msgid "the %<interrupt%> attribute requires a MIPS32r2 processor" | |
29230 | msgstr "el atributo %<interrupt%> requiere un procesador MIPS32r2" | |
29231 | ||
29232 | -#: config/mips/mips.c:9354 | |
29233 | +#: config/mips/mips.c:9525 | |
29234 | #, gcc-internal-format | |
29235 | msgid "the %<interrupt%> attribute requires %<-msoft-float%>" | |
29236 | msgstr "el atributo %<interrupt%> requiere %<-msoft-float%>" | |
29237 | ||
29238 | -#: config/mips/mips.c:9356 | |
29239 | +#: config/mips/mips.c:9527 | |
29240 | #, gcc-internal-format | |
29241 | msgid "interrupt handlers cannot be MIPS16 functions" | |
29242 | msgstr "los manejadores de interrupciones no pueden ser funciones MIPS16" | |
29243 | ||
29244 | -#: config/mips/mips.c:13418 | |
29245 | +#: config/mips/mips.c:13589 | |
29246 | #, gcc-internal-format | |
29247 | msgid "invalid argument to built-in function" | |
29248 | msgstr "argumento inválido para la función interna" | |
29249 | ||
29250 | -#: config/mips/mips.c:13618 | |
29251 | +#: config/mips/mips.c:13789 | |
29252 | #, gcc-internal-format | |
29253 | msgid "built-in function %qE not supported for MIPS16" | |
29254 | msgstr "no se admite la función interna %qE para MIPS16" | |
29255 | ||
29256 | -#: config/mips/mips.c:14210 | |
29257 | +#: config/mips/mips.c:14381 | |
29258 | #, gcc-internal-format | |
29259 | msgid "%qs does not support MIPS16 code" | |
29260 | msgstr "%qs no admite código MIPS16" | |
29261 | ||
29262 | -#: config/mips/mips.c:15452 | |
29263 | +#: config/mips/mips.c:15623 | |
29264 | #, gcc-internal-format | |
29265 | msgid "MIPS16 PIC for ABIs other than o32 and o64" | |
29266 | msgstr "PIC MIPS16 para ABIs diferentes de o32 y o64" | |
29267 | ||
29268 | -#: config/mips/mips.c:15455 | |
29269 | +#: config/mips/mips.c:15626 | |
29270 | #, gcc-internal-format | |
29271 | msgid "MIPS16 -mxgot code" | |
29272 | msgstr "código MIPS16 -mxgot" | |
29273 | ||
29274 | -#: config/mips/mips.c:15458 | |
29275 | +#: config/mips/mips.c:15629 | |
29276 | #, gcc-internal-format | |
29277 | msgid "hard-float MIPS16 code for ABIs other than o32 and o64" | |
29278 | msgstr "código MIPS16 de coma flotante hard para ABIs diferentes de o32 y o64" | |
29279 | ||
29280 | -#: config/mips/mips.c:15647 | |
29281 | +#: config/mips/mips.c:15818 | |
29282 | #, gcc-internal-format | |
29283 | msgid "%<-%s%> conflicts with the other architecture options, which specify a %s processor" | |
29284 | msgstr "%<-%s%> genera un conflicto con las otras opciones de la arquitectura, las cuales especifican un procesador %s" | |
29285 | ||
29286 | -#: config/mips/mips.c:15657 | |
29287 | +#: config/mips/mips.c:15828 | |
29288 | #, gcc-internal-format | |
29289 | msgid "%<-march=%s%> is not compatible with the selected ABI" | |
29290 | msgstr "%<-march=%s%> no es compatible con la ABI seleccionada" | |
29291 | ||
29292 | -#: config/mips/mips.c:15672 | |
29293 | +#: config/mips/mips.c:15843 | |
29294 | #, gcc-internal-format | |
29295 | msgid "%<-mgp64%> used with a 32-bit processor" | |
29296 | msgstr "se utiliza %<-mgp64%> con un procesador de 32-bit" | |
29297 | ||
29298 | -#: config/mips/mips.c:15674 | |
29299 | +#: config/mips/mips.c:15845 | |
29300 | #, gcc-internal-format | |
29301 | msgid "%<-mgp32%> used with a 64-bit ABI" | |
29302 | msgstr "se utiliza %<-mgp32%> con una ABI de 64-bit" | |
29303 | ||
29304 | -#: config/mips/mips.c:15676 | |
29305 | +#: config/mips/mips.c:15847 | |
29306 | #, gcc-internal-format | |
29307 | msgid "%<-mgp64%> used with a 32-bit ABI" | |
29308 | msgstr "se utiliza %<-mgp64%> con una ABI de 32-bit" | |
29309 | ||
29310 | -#: config/mips/mips.c:15692 config/mips/mips.c:15694 config/mips/mips.c:15785 | |
29311 | +#: config/mips/mips.c:15863 config/mips/mips.c:15865 config/mips/mips.c:15956 | |
29312 | #, gcc-internal-format, gfc-internal-format | |
29313 | msgid "unsupported combination: %s" | |
29314 | msgstr "no se admite la combinación: %s" | |
29315 | ||
29316 | -#: config/mips/mips.c:15698 | |
29317 | +#: config/mips/mips.c:15869 | |
29318 | #, gcc-internal-format | |
29319 | msgid "%<-mgp32%> and %<-mfp64%> can only be combined if the target supports the mfhc1 and mthc1 instructions" | |
29320 | msgstr "%<-mgp32%> y %<-mfp64%> sólo se pueden combinar si el objetivo admite las instrucciones mfhc1 y mthc1" | |
29321 | ||
29322 | -#: config/mips/mips.c:15701 | |
29323 | +#: config/mips/mips.c:15872 | |
29324 | #, gcc-internal-format | |
29325 | msgid "%<-mgp32%> and %<-mfp64%> can only be combined when using the o32 ABI" | |
29326 | msgstr "%<-mgp32%> y %<-mfp64%> sólo se pueden combinar al usar la ABI o32" | |
29327 | ||
29328 | -#: config/mips/mips.c:15724 config/mips/mips.c:15726 config/mips/mips.c:15739 | |
29329 | +#: config/mips/mips.c:15895 config/mips/mips.c:15897 config/mips/mips.c:15910 | |
29330 | #, gcc-internal-format | |
29331 | msgid "%qs is incompatible with %qs" | |
29332 | msgstr "%qs es incompatible con %qs" | |
29333 | @@ -24283,57 +24469,57 @@ | |
29334 | #. effort to support the combination of 32-bit GOT entries | |
29335 | #. and 64-bit pointers, so we treat the abicalls case as | |
29336 | #. an error. | |
29337 | -#: config/mips/mips.c:15733 | |
29338 | +#: config/mips/mips.c:15904 | |
29339 | #, gcc-internal-format | |
29340 | msgid "the combination of %qs and %qs is incompatible with %qs" | |
29341 | msgstr "la combinacion de %qs y %qs es incompatible con %qs" | |
29342 | ||
29343 | -#: config/mips/mips.c:15779 | |
29344 | +#: config/mips/mips.c:15950 | |
29345 | #, gcc-internal-format | |
29346 | msgid "the %qs architecture does not support branch-likely instructions" | |
29347 | msgstr "la arquitectura %qs no admite las instrucciones con probabilidad de ramificación" | |
29348 | ||
29349 | -#: config/mips/mips.c:15819 | |
29350 | +#: config/mips/mips.c:15990 | |
29351 | #, gcc-internal-format | |
29352 | msgid "%<-mno-gpopt%> needs %<-mexplicit-relocs%>" | |
29353 | msgstr "%<-mno-gpopt%> necesita %<-mexplicit-relocs%>" | |
29354 | ||
29355 | -#: config/mips/mips.c:15827 config/mips/mips.c:15830 | |
29356 | +#: config/mips/mips.c:15998 config/mips/mips.c:16001 | |
29357 | #, gcc-internal-format | |
29358 | msgid "cannot use small-data accesses for %qs" | |
29359 | msgstr "no se pueden usar accesos de data small para %qs" | |
29360 | ||
29361 | -#: config/mips/mips.c:15844 | |
29362 | +#: config/mips/mips.c:16015 | |
29363 | #, gcc-internal-format | |
29364 | msgid "%<-mips3d%> requires %<-mpaired-single%>" | |
29365 | msgstr "%<-mips3d%> requiere %<-mpaired-single%>" | |
29366 | ||
29367 | -#: config/mips/mips.c:15853 | |
29368 | +#: config/mips/mips.c:16024 | |
29369 | #, gcc-internal-format | |
29370 | msgid "%qs must be used with %qs" | |
29371 | msgstr "%qs se debe usar con %qs" | |
29372 | ||
29373 | -#: config/mips/mips.c:15860 | |
29374 | +#: config/mips/mips.c:16031 | |
29375 | #, gcc-internal-format | |
29376 | msgid "the %qs architecture does not support paired-single instructions" | |
29377 | msgstr "la arquitectura %qs no admite las instrucciones par-sencillo" | |
29378 | ||
29379 | -#: config/mips/mips.c:15866 | |
29380 | +#: config/mips/mips.c:16037 | |
29381 | #, gcc-internal-format | |
29382 | msgid "%qs requires a target that provides the %qs instruction" | |
29383 | msgstr "%qs requiere un objetivo que provea la instrucción %qs" | |
29384 | ||
29385 | -#: config/mips/mips.c:15971 | |
29386 | +#: config/mips/mips.c:16142 | |
29387 | #, gcc-internal-format | |
29388 | msgid "%qs requires branch-likely instructions" | |
29389 | msgstr "%qs requiere instrucciones con probabilidad de ramificación" | |
29390 | ||
29391 | -#: config/mips/mips.c:15975 | |
29392 | +#: config/mips/mips.c:16146 | |
29393 | #, gcc-internal-format | |
29394 | msgid "the %qs architecture does not support the synci instruction" | |
29395 | msgstr "la arquitectura %qs no admite la instrucción synci" | |
29396 | ||
29397 | -#: config/mips/mips.c:16425 | |
29398 | +#: config/mips/mips.c:16596 | |
29399 | #, gcc-internal-format | |
29400 | msgid "mips16 function profiling" | |
29401 | msgstr "análisis de perfil de las funciones mips16" | |
29402 | @@ -24414,7 +24600,7 @@ | |
29403 | msgid "-g option disabled" | |
29404 | msgstr "opción -g desactivada" | |
29405 | ||
29406 | -#: config/pa/pa.c:8598 | |
29407 | +#: config/pa/pa.c:8619 | |
29408 | #, gcc-internal-format, gfc-internal-format | |
29409 | msgid "alignment (%u) for %s exceeds maximum alignment for global common data. Using %u" | |
29410 | msgstr "la alineación (%u) para %s excede la alineación máxima para los datos comunes globales. Se usará %u" | |
29411 | @@ -24634,288 +24820,288 @@ | |
29412 | msgid "-m64 requires PowerPC64 architecture, enabling" | |
29413 | msgstr "-m64 requiere la arquitectura PowerPC64, activando" | |
29414 | ||
29415 | -#: config/rs6000/rs6000.c:2615 | |
29416 | +#: config/rs6000/rs6000.c:2616 | |
29417 | #, gcc-internal-format | |
29418 | msgid "-malign-power is not supported for 64-bit Darwin; it is incompatible with the installed C and C++ libraries" | |
29419 | msgstr "no se admite -malign-power para Darwin de 64-bit; es incompatible con las bibliotecas C y C++ instaladas" | |
29420 | ||
29421 | -#: config/rs6000/rs6000.c:2621 | |
29422 | +#: config/rs6000/rs6000.c:2622 | |
29423 | #, gcc-internal-format | |
29424 | msgid "not configured for SPE ABI" | |
29425 | msgstr "no se configuró para ABI SPE" | |
29426 | ||
29427 | -#: config/rs6000/rs6000.c:2697 | |
29428 | +#: config/rs6000/rs6000.c:2710 | |
29429 | #, gcc-internal-format | |
29430 | msgid "AltiVec not supported in this target" | |
29431 | msgstr "no se admite AltiVec en este objetivo" | |
29432 | ||
29433 | -#: config/rs6000/rs6000.c:2699 | |
29434 | +#: config/rs6000/rs6000.c:2712 | |
29435 | #, gcc-internal-format | |
29436 | msgid "SPE not supported in this target" | |
29437 | msgstr "no se admite SPE en este objetivo" | |
29438 | ||
29439 | -#: config/rs6000/rs6000.c:2726 | |
29440 | +#: config/rs6000/rs6000.c:2739 | |
29441 | #, gcc-internal-format | |
29442 | msgid "-mmultiple is not supported on little endian systems" | |
29443 | msgstr "no se admite -mmultiple en sistemas little endian" | |
29444 | ||
29445 | -#: config/rs6000/rs6000.c:2733 | |
29446 | +#: config/rs6000/rs6000.c:2746 | |
29447 | #, gcc-internal-format | |
29448 | msgid "-mstring is not supported on little endian systems" | |
29449 | msgstr "no se admite -mstring en sistemas little endian" | |
29450 | ||
29451 | -#: config/rs6000/rs6000.c:2839 | |
29452 | +#: config/rs6000/rs6000.c:2852 | |
29453 | #, gcc-internal-format, gfc-internal-format | |
29454 | msgid "unknown vectorization library ABI type (%s) for -mveclibabi= switch" | |
29455 | msgstr "tipo de ABI de biblioteca de vectorización desconocida (%s) para la opción -mveclibabi=" | |
29456 | ||
29457 | -#: config/rs6000/rs6000.c:2851 | |
29458 | +#: config/rs6000/rs6000.c:2864 | |
29459 | #, gcc-internal-format | |
29460 | msgid "target attribute or pragma changes long double size" | |
29461 | msgstr "el atributo o pragma target cambia el tamaño de double long" | |
29462 | ||
29463 | -#: config/rs6000/rs6000.c:2872 config/rs6000/rs6000.c:2887 | |
29464 | +#: config/rs6000/rs6000.c:2885 config/rs6000/rs6000.c:2900 | |
29465 | #, gcc-internal-format | |
29466 | msgid "target attribute or pragma changes AltiVec ABI" | |
29467 | msgstr "el atributo o pragma target cambia la ABI Altivec" | |
29468 | ||
29469 | -#: config/rs6000/rs6000.c:2904 | |
29470 | +#: config/rs6000/rs6000.c:2917 | |
29471 | #, gcc-internal-format | |
29472 | msgid "target attribute or pragma changes darwin64 ABI" | |
29473 | msgstr "el atributo o pragma target cambia la ABI darwin64" | |
29474 | ||
29475 | -#: config/rs6000/rs6000.c:2945 | |
29476 | +#: config/rs6000/rs6000.c:2958 | |
29477 | #, gcc-internal-format | |
29478 | msgid "target attribute or pragma changes SPE ABI" | |
29479 | msgstr "el atributo o pragma target cabia la ABI SPE" | |
29480 | ||
29481 | -#: config/rs6000/rs6000.c:3268 | |
29482 | +#: config/rs6000/rs6000.c:3281 | |
29483 | #, gcc-internal-format | |
29484 | msgid "target attribute or pragma changes single precision floating point" | |
29485 | msgstr "el atributo o pragma target cambia la coma flotante de precisión sencilla" | |
29486 | ||
29487 | -#: config/rs6000/rs6000.c:3271 | |
29488 | +#: config/rs6000/rs6000.c:3284 | |
29489 | #, gcc-internal-format | |
29490 | msgid "target attribute or pragma changes double precision floating point" | |
29491 | msgstr "el atributo o pragma target cambia la coma flotante de precisión doble" | |
29492 | ||
29493 | -#: config/rs6000/rs6000.c:7407 | |
29494 | +#: config/rs6000/rs6000.c:7420 | |
29495 | #, gcc-internal-format | |
29496 | msgid "GCC vector returned by reference: non-standard ABI extension with no compatibility guarantee" | |
29497 | msgstr "Se devolvió un vector GCC por referencia: extensión de ABI no estándar sin garantía de compatibilidad" | |
29498 | ||
29499 | -#: config/rs6000/rs6000.c:7545 | |
29500 | +#: config/rs6000/rs6000.c:7561 | |
29501 | #, gcc-internal-format | |
29502 | msgid "cannot return value in vector register because altivec instructions are disabled, use -maltivec to enable them" | |
29503 | msgstr "no se puede devolver un valor en el registro vector porque las instrucciones altivec están desactivadas, use -maltivec para activarlas" | |
29504 | ||
29505 | -#: config/rs6000/rs6000.c:7888 | |
29506 | +#: config/rs6000/rs6000.c:7904 | |
29507 | #, gcc-internal-format | |
29508 | msgid "cannot pass argument in vector register because altivec instructions are disabled, use -maltivec to enable them" | |
29509 | msgstr "no se puede pasar argumentos en el registro vector porque las instrucciones altivec están desactivadas, use -maltivec para activarlas" | |
29510 | ||
29511 | -#: config/rs6000/rs6000.c:8814 | |
29512 | +#: config/rs6000/rs6000.c:8830 | |
29513 | #, gcc-internal-format | |
29514 | msgid "GCC vector passed by reference: non-standard ABI extension with no compatibility guarantee" | |
29515 | msgstr "vector GCC pasado por referencia: extensión ABI que no es estándar sin garantía de compatibilidad" | |
29516 | ||
29517 | -#: config/rs6000/rs6000.c:9443 | |
29518 | +#: config/rs6000/rs6000.c:9459 | |
29519 | #, gcc-internal-format, gfc-internal-format | |
29520 | msgid "internal error: builtin function %s already processed" | |
29521 | msgstr "error interno: la función interna %s ya se procesó" | |
29522 | ||
29523 | -#: config/rs6000/rs6000.c:9816 | |
29524 | +#: config/rs6000/rs6000.c:9832 | |
29525 | #, gcc-internal-format | |
29526 | msgid "argument 1 must be a 5-bit signed literal" | |
29527 | msgstr "el argumento 1 debe ser una literal con signo de 5-bit" | |
29528 | ||
29529 | -#: config/rs6000/rs6000.c:9919 config/rs6000/rs6000.c:10936 | |
29530 | +#: config/rs6000/rs6000.c:9935 config/rs6000/rs6000.c:10952 | |
29531 | #, gcc-internal-format | |
29532 | msgid "argument 2 must be a 5-bit unsigned literal" | |
29533 | msgstr "el argumento 2 debe ser una literal sin signo de 5-bit" | |
29534 | ||
29535 | -#: config/rs6000/rs6000.c:9958 | |
29536 | +#: config/rs6000/rs6000.c:9974 | |
29537 | #, gcc-internal-format | |
29538 | msgid "argument 1 of __builtin_altivec_predicate must be a constant" | |
29539 | msgstr "el argumento 1 de __builtin_altivec_predicate debe ser una constante" | |
29540 | ||
29541 | -#: config/rs6000/rs6000.c:10010 | |
29542 | +#: config/rs6000/rs6000.c:10026 | |
29543 | #, gcc-internal-format | |
29544 | msgid "argument 1 of __builtin_altivec_predicate is out of range" | |
29545 | msgstr "el argumento 1 de __builtin_altivec_predicate está fuera de rango" | |
29546 | ||
29547 | -#: config/rs6000/rs6000.c:10267 | |
29548 | +#: config/rs6000/rs6000.c:10283 | |
29549 | #, gcc-internal-format | |
29550 | msgid "argument 3 must be a 4-bit unsigned literal" | |
29551 | msgstr "el argumento 3 debe ser una literal sin signo de 4-bit" | |
29552 | ||
29553 | -#: config/rs6000/rs6000.c:10285 | |
29554 | +#: config/rs6000/rs6000.c:10301 | |
29555 | #, gcc-internal-format | |
29556 | msgid "argument 3 must be a 2-bit unsigned literal" | |
29557 | msgstr "el argumento 3 debe ser una literal sin signo de 2-bit" | |
29558 | ||
29559 | -#: config/rs6000/rs6000.c:10297 | |
29560 | +#: config/rs6000/rs6000.c:10313 | |
29561 | #, gcc-internal-format | |
29562 | msgid "argument 3 must be a 1-bit unsigned literal" | |
29563 | msgstr "el argumento 3 debe ser una literal sin signo de 1-bit" | |
29564 | ||
29565 | -#: config/rs6000/rs6000.c:10480 | |
29566 | +#: config/rs6000/rs6000.c:10496 | |
29567 | #, gcc-internal-format | |
29568 | msgid "argument to %qs must be a 2-bit unsigned literal" | |
29569 | msgstr "el argumento para %qs debe ser una literal sin signo de 2-bit" | |
29570 | ||
29571 | -#: config/rs6000/rs6000.c:10621 | |
29572 | +#: config/rs6000/rs6000.c:10637 | |
29573 | #, gcc-internal-format | |
29574 | msgid "unresolved overload for Altivec builtin %qF" | |
29575 | msgstr "sobrecarga sin resolver para el interno Altivec %qF" | |
29576 | ||
29577 | -#: config/rs6000/rs6000.c:10727 | |
29578 | +#: config/rs6000/rs6000.c:10743 | |
29579 | #, gcc-internal-format | |
29580 | msgid "argument to dss must be a 2-bit unsigned literal" | |
29581 | msgstr "el argumento para dss debe ser una literal sin signo de 2-bit" | |
29582 | ||
29583 | # continuar aqui | |
29584 | -#: config/rs6000/rs6000.c:11056 | |
29585 | +#: config/rs6000/rs6000.c:11072 | |
29586 | #, gcc-internal-format | |
29587 | msgid "argument 1 of __builtin_paired_predicate must be a constant" | |
29588 | msgstr "el argumento 1 de __builtin_paired_predicate debe ser una constante" | |
29589 | ||
29590 | -#: config/rs6000/rs6000.c:11103 | |
29591 | +#: config/rs6000/rs6000.c:11119 | |
29592 | #, gcc-internal-format | |
29593 | msgid "argument 1 of __builtin_paired_predicate is out of range" | |
29594 | msgstr "el argumento 1 de __builtin_paired_predicate está fuera de rango" | |
29595 | ||
29596 | -#: config/rs6000/rs6000.c:11128 | |
29597 | +#: config/rs6000/rs6000.c:11144 | |
29598 | #, gcc-internal-format | |
29599 | msgid "argument 1 of __builtin_spe_predicate must be a constant" | |
29600 | msgstr "el argumento 1 de __builtin_spe_predicate debe ser una constante" | |
29601 | ||
29602 | -#: config/rs6000/rs6000.c:11200 | |
29603 | +#: config/rs6000/rs6000.c:11216 | |
29604 | #, gcc-internal-format | |
29605 | msgid "argument 1 of __builtin_spe_predicate is out of range" | |
29606 | msgstr "el argumento 1 de __builtin_spe_predicate está fuera de rango" | |
29607 | ||
29608 | -#: config/rs6000/rs6000.c:11282 | |
29609 | +#: config/rs6000/rs6000.c:11298 | |
29610 | #, gcc-internal-format, gfc-internal-format | |
29611 | msgid "Builtin function %s is only valid for the cell processor" | |
29612 | msgstr "La función interna %s sólo es válida para el procesador cell" | |
29613 | ||
29614 | -#: config/rs6000/rs6000.c:11284 | |
29615 | +#: config/rs6000/rs6000.c:11300 | |
29616 | #, gcc-internal-format, gfc-internal-format | |
29617 | msgid "Builtin function %s requires the -mvsx option" | |
29618 | msgstr "La función interna %s requiere la opción -mvsx" | |
29619 | ||
29620 | -#: config/rs6000/rs6000.c:11286 | |
29621 | +#: config/rs6000/rs6000.c:11302 | |
29622 | #, gcc-internal-format, gfc-internal-format | |
29623 | msgid "Builtin function %s requires the -maltivec option" | |
29624 | msgstr "La función interna %s requiere la opción -maltivec" | |
29625 | ||
29626 | -#: config/rs6000/rs6000.c:11288 | |
29627 | +#: config/rs6000/rs6000.c:11304 | |
29628 | #, gcc-internal-format, gfc-internal-format | |
29629 | msgid "Builtin function %s requires the -mpaired option" | |
29630 | msgstr "La función interna %s requiere la opción -mpaired" | |
29631 | ||
29632 | -#: config/rs6000/rs6000.c:11290 | |
29633 | +#: config/rs6000/rs6000.c:11306 | |
29634 | #, gcc-internal-format, gfc-internal-format | |
29635 | msgid "Builtin function %s requires the -mspe option" | |
29636 | msgstr "La función interna %s requiere la opción -mspe" | |
29637 | ||
29638 | -#: config/rs6000/rs6000.c:11292 | |
29639 | +#: config/rs6000/rs6000.c:11308 | |
29640 | #, gcc-internal-format, gfc-internal-format | |
29641 | msgid "Builtin function %s is not supported with the current options" | |
29642 | msgstr "La función interna %s no se admite con las opciones actuales" | |
29643 | ||
29644 | -#: config/rs6000/rs6000.c:12552 | |
29645 | +#: config/rs6000/rs6000.c:12568 | |
29646 | #, gcc-internal-format, gfc-internal-format | |
29647 | msgid "internal error: builtin function %s had no type" | |
29648 | msgstr "error interno: la función interna %s no tiene tipo" | |
29649 | ||
29650 | -#: config/rs6000/rs6000.c:12559 | |
29651 | +#: config/rs6000/rs6000.c:12575 | |
29652 | #, gcc-internal-format, gfc-internal-format | |
29653 | msgid "internal error: builtin function %s had an unexpected return type %s" | |
29654 | msgstr "error interno: la función interna %s tiene un tipo de devolución inesperado %s" | |
29655 | ||
29656 | -#: config/rs6000/rs6000.c:12575 | |
29657 | +#: config/rs6000/rs6000.c:12591 | |
29658 | #, gcc-internal-format, gfc-internal-format | |
29659 | msgid "internal error: builtin function %s, argument %d had unexpected argument type %s" | |
29660 | msgstr "error interno: función interna %s, el argumento %d tiene el tipo de argumento inesperado %s" | |
29661 | ||
29662 | -#: config/rs6000/rs6000.c:18575 | |
29663 | +#: config/rs6000/rs6000.c:18591 | |
29664 | #, gcc-internal-format | |
29665 | msgid "stack frame too large" | |
29666 | msgstr "marco de pila demasiado grande" | |
29667 | ||
29668 | -#: config/rs6000/rs6000.c:22049 | |
29669 | +#: config/rs6000/rs6000.c:22065 | |
29670 | #, gcc-internal-format | |
29671 | msgid "no profiling of 64-bit code for this ABI" | |
29672 | msgstr "no hay análisis de perfil del código de 64-bit para esta ABI" | |
29673 | ||
29674 | -#: config/rs6000/rs6000.c:24034 | |
29675 | +#: config/rs6000/rs6000.c:24050 | |
29676 | #, gcc-internal-format | |
29677 | -msgid "-mno-r11 must not be used if you have trampolines" | |
29678 | -msgstr "no se debe usar -mno-r11 si tiene trampolines" | |
29679 | +msgid "You cannot take the address of a nested function if you use the -mno-pointers-to-nested-functions option." | |
29680 | +msgstr "No se puede tomar la dirección de una función anindada si se usa la opción -mno-pointers-to-nested-functions." | |
29681 | ||
29682 | -#: config/rs6000/rs6000.c:24114 | |
29683 | +#: config/rs6000/rs6000.c:24131 | |
29684 | #, gcc-internal-format | |
29685 | msgid "use of %<long double%> in AltiVec types is invalid" | |
29686 | msgstr "el uso de %<long double%> en tipos AltiVec es inválido" | |
29687 | ||
29688 | -#: config/rs6000/rs6000.c:24116 | |
29689 | +#: config/rs6000/rs6000.c:24133 | |
29690 | #, gcc-internal-format | |
29691 | msgid "use of boolean types in AltiVec types is invalid" | |
29692 | msgstr "el uso de tipos booleanos en tipos AltiVec es inválido" | |
29693 | ||
29694 | -#: config/rs6000/rs6000.c:24118 | |
29695 | +#: config/rs6000/rs6000.c:24135 | |
29696 | #, gcc-internal-format | |
29697 | msgid "use of %<complex%> in AltiVec types is invalid" | |
29698 | msgstr "el uso de %<complex%> en tipos AltiVec es inválido" | |
29699 | ||
29700 | -#: config/rs6000/rs6000.c:24120 | |
29701 | +#: config/rs6000/rs6000.c:24137 | |
29702 | #, gcc-internal-format | |
29703 | msgid "use of decimal floating point types in AltiVec types is invalid" | |
29704 | msgstr "el uso de tipos de coma flotante decimal en tipos AltiVec es inválido" | |
29705 | ||
29706 | -#: config/rs6000/rs6000.c:24126 | |
29707 | +#: config/rs6000/rs6000.c:24143 | |
29708 | #, gcc-internal-format | |
29709 | msgid "use of %<long%> in AltiVec types is invalid for 64-bit code without -mvsx" | |
29710 | msgstr "el uso de %<long%> en tipos AltiVec es inválido para código de 64 bit sin -mvsx" | |
29711 | ||
29712 | -#: config/rs6000/rs6000.c:24129 | |
29713 | +#: config/rs6000/rs6000.c:24146 | |
29714 | #, gcc-internal-format | |
29715 | msgid "use of %<long%> in AltiVec types is deprecated; use %<int%>" | |
29716 | msgstr "el uso de %<long%> en tipos AltiVec es obsoleto; use %<int%>" | |
29717 | ||
29718 | -#: config/rs6000/rs6000.c:24134 | |
29719 | +#: config/rs6000/rs6000.c:24151 | |
29720 | #, gcc-internal-format | |
29721 | msgid "use of %<long long%> in AltiVec types is invalid without -mvsx" | |
29722 | msgstr "el uso de %<long long%> en tipos AltiVec es inválido sin -mvsx" | |
29723 | ||
29724 | -#: config/rs6000/rs6000.c:24137 | |
29725 | +#: config/rs6000/rs6000.c:24154 | |
29726 | #, gcc-internal-format | |
29727 | msgid "use of %<double%> in AltiVec types is invalid without -mvsx" | |
29728 | msgstr "el uso de %<double%> en tipos AltiVec es inválido sin -mvsx" | |
29729 | ||
29730 | -#: config/rs6000/rs6000.c:26976 | |
29731 | +#: config/rs6000/rs6000.c:26993 | |
29732 | #, gcc-internal-format, gfc-internal-format | |
29733 | msgid "emitting microcode insn %s\t[%s] #%d" | |
29734 | msgstr "se emite el insn de microcódigo %s\t[%s] #%d" | |
29735 | ||
29736 | -#: config/rs6000/rs6000.c:26980 | |
29737 | +#: config/rs6000/rs6000.c:26997 | |
29738 | #, gcc-internal-format, gfc-internal-format | |
29739 | msgid "emitting conditional microcode insn %s\t[%s] #%d" | |
29740 | msgstr "se emite el insn de microcódigo condicional %s\t[%s] #%d" | |
29741 | ||
29742 | -#: config/rs6000/rs6000.c:27204 | |
29743 | +#: config/rs6000/rs6000.c:27221 | |
29744 | #, gcc-internal-format, gfc-internal-format | |
29745 | msgid "invalid cpu \"%s\" for %s\"%s\"%s" | |
29746 | msgstr "cpu \"%s\" inválido para %s\"%s\"%s" | |
29747 | ||
29748 | -#: config/rs6000/rs6000.c:27207 | |
29749 | +#: config/rs6000/rs6000.c:27224 | |
29750 | #, gcc-internal-format, gfc-internal-format | |
29751 | msgid "%s\"%s\"%s is not allowed" | |
29752 | msgstr "%s\"%s\"%s no está definido" | |
29753 | ||
29754 | -#: config/rs6000/rs6000.c:27209 | |
29755 | +#: config/rs6000/rs6000.c:27226 | |
29756 | #, gcc-internal-format, gfc-internal-format | |
29757 | msgid "%s\"%s\"%s is invalid" | |
29758 | msgstr "%s\"%s\"%s es inválido" | |
29759 | @@ -25088,123 +25274,123 @@ | |
29760 | msgid "64-bit ABI not supported in ESA/390 mode" | |
29761 | msgstr "no se admite la ABI de 64-bit en el modo ESA/390" | |
29762 | ||
29763 | -#: config/s390/s390.c:1548 | |
29764 | +#: config/s390/s390.c:1553 | |
29765 | #, gcc-internal-format, gfc-internal-format | |
29766 | msgid "hardware decimal floating point instructions not available on %s" | |
29767 | msgstr "las instrucciones de coma flotante decimal de hardware no están disponibles en %s" | |
29768 | ||
29769 | -#: config/s390/s390.c:1551 | |
29770 | +#: config/s390/s390.c:1556 | |
29771 | #, gcc-internal-format | |
29772 | msgid "hardware decimal floating point instructions not available in ESA/390 mode" | |
29773 | msgstr "las instrucciones de coma flotante decimal de hardware no están disponibles en el modo ESA/390" | |
29774 | ||
29775 | -#: config/s390/s390.c:1561 | |
29776 | +#: config/s390/s390.c:1566 | |
29777 | #, gcc-internal-format | |
29778 | msgid "-mhard-dfp can%'t be used in conjunction with -msoft-float" | |
29779 | msgstr "-mhard-dfp no se puede usar en conjunción con -msoft-float" | |
29780 | ||
29781 | -#: config/s390/s390.c:1585 | |
29782 | +#: config/s390/s390.c:1590 | |
29783 | #, gcc-internal-format | |
29784 | msgid "-mbackchain -mpacked-stack -mhard-float are not supported in combination" | |
29785 | msgstr "no se admiten -mbackchain -mpacked-stack -mhard-float en combinación" | |
29786 | ||
29787 | -#: config/s390/s390.c:1591 | |
29788 | +#: config/s390/s390.c:1596 | |
29789 | #, gcc-internal-format | |
29790 | msgid "stack size must be greater than the stack guard value" | |
29791 | msgstr "el tamaño de la pila debe ser mayor que el valor de la guardia de pila" | |
29792 | ||
29793 | -#: config/s390/s390.c:1593 | |
29794 | +#: config/s390/s390.c:1598 | |
29795 | #, gcc-internal-format | |
29796 | msgid "stack size must not be greater than 64k" | |
29797 | msgstr "el tamaño de la pila no debe ser mayor a 64k" | |
29798 | ||
29799 | -#: config/s390/s390.c:1596 | |
29800 | +#: config/s390/s390.c:1601 | |
29801 | #, gcc-internal-format | |
29802 | msgid "-mstack-guard implies use of -mstack-size" | |
29803 | msgstr "-mstack-guard implica el uso de -mstack-size" | |
29804 | ||
29805 | -#: config/s390/s390.c:7365 | |
29806 | +#: config/s390/s390.c:7370 | |
29807 | #, gcc-internal-format | |
29808 | msgid "total size of local variables exceeds architecture limit" | |
29809 | msgstr "el tamaño total de las variables locales excede el límite de la arquitectura" | |
29810 | ||
29811 | -#: config/s390/s390.c:8072 | |
29812 | +#: config/s390/s390.c:8077 | |
29813 | #, gcc-internal-format | |
29814 | msgid "frame size of function %qs is %wd bytes exceeding user provided stack limit of %d bytes. An unconditional trap is added." | |
29815 | msgstr "el tamaño de marco de la función %qs de %wd bytes excede el límite de pila definido por el usuario de %d bytes. Se agrega una trampa incondicional." | |
29816 | ||
29817 | -#: config/s390/s390.c:8087 | |
29818 | +#: config/s390/s390.c:8092 | |
29819 | #, gcc-internal-format | |
29820 | msgid "frame size of function %qs is %wd bytes which is more than half the stack size. The dynamic check would not be reliable. No check emitted for this function." | |
29821 | msgstr "el tamaño de marco de la función %qs de %wd bytes es mayor que la mitad del tamaño de la pila. La revisión dinámica no será confiable. No se emitirá revisión para esta función." | |
29822 | ||
29823 | -#: config/s390/s390.c:8115 | |
29824 | +#: config/s390/s390.c:8120 | |
29825 | #, gcc-internal-format | |
29826 | msgid "frame size of %qs is %wd bytes" | |
29827 | msgstr "el tamaño de marco de %qs es de %wd bytes" | |
29828 | ||
29829 | -#: config/s390/s390.c:8119 | |
29830 | +#: config/s390/s390.c:8124 | |
29831 | #, gcc-internal-format | |
29832 | msgid "%qs uses dynamic stack allocation" | |
29833 | msgstr "%qs utiliza alojamiento dinámico de pila" | |
29834 | ||
29835 | -#: config/sh/sh.c:770 | |
29836 | +#: config/sh/sh.c:775 | |
29837 | #, gcc-internal-format | |
29838 | msgid "ignoring -fschedule-insns because of exception handling bug" | |
29839 | msgstr "se descarta -fschedule-insns debido a un error de manejo de excepciones" | |
29840 | ||
29841 | -#: config/sh/sh.c:791 | |
29842 | +#: config/sh/sh.c:796 | |
29843 | #, gcc-internal-format | |
29844 | msgid "unwind tables currently require either a frame pointer or -maccumulate-outgoing-args for correctness" | |
29845 | msgstr "actualmente las tablas de desenredo requieren un puntero de marco o -maccumulate-outgoing-args para ser correctas" | |
29846 | ||
29847 | -#: config/sh/sh.c:7655 | |
29848 | +#: config/sh/sh.c:7660 | |
29849 | #, gcc-internal-format | |
29850 | msgid "__builtin_saveregs not supported by this subtarget" | |
29851 | msgstr "no se admite __builtin_saveregs en este subobjetivo" | |
29852 | ||
29853 | -#: config/sh/sh.c:8821 | |
29854 | +#: config/sh/sh.c:8826 | |
29855 | #, gcc-internal-format | |
29856 | msgid "%qE attribute only applies to interrupt functions" | |
29857 | msgstr "el atributo %qE se aplica solamente a funciones de interrupción" | |
29858 | ||
29859 | -#: config/sh/sh.c:8879 | |
29860 | +#: config/sh/sh.c:8884 | |
29861 | #, gcc-internal-format | |
29862 | msgid "%qE attribute is supported only for SH2A" | |
29863 | msgstr "el atributo %qE solo se admite para SH2A" | |
29864 | ||
29865 | -#: config/sh/sh.c:8909 | |
29866 | +#: config/sh/sh.c:8914 | |
29867 | #, gcc-internal-format | |
29868 | msgid "attribute interrupt_handler is not compatible with -m5-compact" | |
29869 | msgstr "el atributo interrupt_handler no es compatible con -m5-compact" | |
29870 | ||
29871 | -#: config/sh/sh.c:8926 | |
29872 | +#: config/sh/sh.c:8931 | |
29873 | #, gcc-internal-format | |
29874 | msgid "%qE attribute only applies to SH2A" | |
29875 | msgstr "el atributo %qE solo se aplica a SH2A" | |
29876 | ||
29877 | -#: config/sh/sh.c:8948 | |
29878 | +#: config/sh/sh.c:8953 | |
29879 | #, gcc-internal-format | |
29880 | msgid "%qE attribute argument should be between 0 to 255" | |
29881 | msgstr "el argumento del atributo %qE debe estar entre 0 y 255" | |
29882 | ||
29883 | #. The argument must be a constant string. | |
29884 | -#: config/sh/sh.c:9021 | |
29885 | +#: config/sh/sh.c:9026 | |
29886 | #, gcc-internal-format | |
29887 | msgid "%qE attribute argument not a string constant" | |
29888 | msgstr "el argumento del atributo %qE no es una constante de cadena" | |
29889 | ||
29890 | -#: config/sh/sh.c:11601 | |
29891 | +#: config/sh/sh.c:11599 | |
29892 | #, gcc-internal-format | |
29893 | msgid "r0 needs to be available as a call-clobbered register" | |
29894 | msgstr "r0 necesita estar disponible como un registro sobreescrito por llamada" | |
29895 | ||
29896 | -#: config/sh/sh.c:11622 | |
29897 | +#: config/sh/sh.c:11620 | |
29898 | #, gcc-internal-format | |
29899 | msgid "need a second call-clobbered general purpose register" | |
29900 | msgstr "se necesita un segundo registro de propósito general sobreescrito por llamada" | |
29901 | ||
29902 | -#: config/sh/sh.c:11630 | |
29903 | +#: config/sh/sh.c:11628 | |
29904 | #, gcc-internal-format | |
29905 | msgid "need a call-clobbered target register" | |
29906 | msgstr "se necesita un registro objetivo sobreescrito por llamada" | |
29907 | @@ -25326,6 +25512,16 @@ | |
29908 | msgid "__BELOW100__ attribute not allowed with auto storage class" | |
29909 | msgstr "no se permite el atributo __BELOW100__ con una clase de auto almacenamiento" | |
29910 | ||
29911 | +#: config/tilegx/tilegx.c:3397 config/tilepro/tilepro.c:3101 | |
29912 | +#, gcc-internal-format | |
29913 | +msgid "bad builtin icode" | |
29914 | +msgstr "icode interno erróneo" | |
29915 | + | |
29916 | +#: config/tilegx/tilegx.c:3438 config/tilepro/tilepro.c:3127 | |
29917 | +#, gcc-internal-format | |
29918 | +msgid "operand must be an immediate of the right size" | |
29919 | +msgstr "el operando debe ser un inmediato del tamaño correcto" | |
29920 | + | |
29921 | #: config/v850/v850-c.c:67 | |
29922 | #, gcc-internal-format | |
29923 | msgid "#pragma GHS endXXXX found without previous startXXX" | |
29924 | @@ -25536,38 +25732,38 @@ | |
29925 | msgid "-fexcess-precision=standard for Ada" | |
29926 | msgstr "-fexcess-precision=standard para Ada" | |
29927 | ||
29928 | -#: ada/gcc-interface/utils.c:5289 ada/gcc-interface/utils.c:5464 | |
29929 | -#: ada/gcc-interface/utils.c:5506 ada/gcc-interface/utils.c:5560 | |
29930 | +#: ada/gcc-interface/utils.c:5295 ada/gcc-interface/utils.c:5470 | |
29931 | +#: ada/gcc-interface/utils.c:5512 ada/gcc-interface/utils.c:5566 | |
29932 | #, gcc-internal-format | |
29933 | msgid "%qs attribute ignored" | |
29934 | msgstr "se descarta el atributo %qs" | |
29935 | ||
29936 | -#: ada/gcc-interface/utils.c:5407 | |
29937 | +#: ada/gcc-interface/utils.c:5413 | |
29938 | #, gcc-internal-format | |
29939 | msgid "%qs attribute requires prototypes with named arguments" | |
29940 | msgstr "el atributo %qs requiere prototipos con argumentos nombrados" | |
29941 | ||
29942 | -#: ada/gcc-interface/utils.c:5416 | |
29943 | +#: ada/gcc-interface/utils.c:5422 | |
29944 | #, gcc-internal-format | |
29945 | msgid "%qs attribute only applies to variadic functions" | |
29946 | msgstr "el atributo %qs se aplica solamente a funciones variadic" | |
29947 | ||
29948 | -#: ada/gcc-interface/utils.c:5487 | |
29949 | +#: ada/gcc-interface/utils.c:5493 | |
29950 | #, gcc-internal-format | |
29951 | msgid "%qE attribute has no effect" | |
29952 | msgstr "el atributo %qE no tiene efecto" | |
29953 | ||
29954 | -#: ada/gcc-interface/utils.c:5593 | |
29955 | +#: ada/gcc-interface/utils.c:5599 | |
29956 | #, gcc-internal-format | |
29957 | msgid "invalid vector type for attribute %qs" | |
29958 | msgstr "tipo de vector inválido para el atributo %qs" | |
29959 | ||
29960 | -#: ada/gcc-interface/utils.c:5656 | |
29961 | +#: ada/gcc-interface/utils.c:5662 | |
29962 | #, gcc-internal-format | |
29963 | msgid "attribute %qs applies to array types only" | |
29964 | msgstr "el atributo %qs solamente se aplica a tipos de matriz" | |
29965 | ||
29966 | -#: ada/gcc-interface/utils.c:5683 | |
29967 | +#: ada/gcc-interface/utils.c:5689 | |
29968 | #, gcc-internal-format | |
29969 | msgid "invalid element type for attribute %qs" | |
29970 | msgstr "tipo de elemento inválido para el atributo %qs" | |
29971 | @@ -25583,7 +25779,7 @@ | |
29972 | msgid " no known conversion for argument %d from %qT to %qT" | |
29973 | msgstr " no hay una conversión conocida para el argumento %d de %qT a %qT" | |
29974 | ||
29975 | -#: cp/call.c:3125 cp/pt.c:5560 | |
29976 | +#: cp/call.c:3125 cp/pt.c:5562 | |
29977 | #, gcc-internal-format, gfc-internal-format | |
29978 | msgid " candidate expects %d argument, %d provided" | |
29979 | msgid_plural " candidate expects %d arguments, %d provided" | |
29980 | @@ -25903,7 +26099,7 @@ | |
29981 | msgid "cannot bind rvalue %qE to %qT" | |
29982 | msgstr "no se puede unir el r-valor %qE a %qT" | |
29983 | ||
29984 | -#: cp/call.c:6012 cp/cvt.c:1643 | |
29985 | +#: cp/call.c:6012 cp/cvt.c:1654 | |
29986 | #, gcc-internal-format | |
29987 | msgid "scoped enum %qT will not promote to an integral type in a future version of GCC" | |
29988 | msgstr "el enum en ámbito %qT no se promoverá a un tipo integral en una versión futura de GCC" | |
29989 | @@ -26346,144 +26542,144 @@ | |
29990 | msgid " %q+T is not an aggregate, does not have a trivial default constructor, and has no constexpr constructor that is not a copy or move constructor" | |
29991 | msgstr " %q+T no es un agregado, no tiene un constructor trivial por defecto y no tiene un constructor constexpr que no es un constructor copy o move" | |
29992 | ||
29993 | -#: cp/class.c:4924 | |
29994 | +#: cp/class.c:4944 | |
29995 | #, gcc-internal-format | |
29996 | msgid " base class %qT of %q+T is non-literal" | |
29997 | msgstr " la clase base %qT de %q+T no es literal" | |
29998 | ||
29999 | -#: cp/class.c:4938 | |
30000 | +#: cp/class.c:4958 | |
30001 | #, gcc-internal-format | |
30002 | msgid " non-static data member %q+D has non-literal type" | |
30003 | msgstr " el dato miembro que no es estático %q+D tiene un tipo que no es literal" | |
30004 | ||
30005 | -#: cp/class.c:5050 | |
30006 | +#: cp/class.c:5070 | |
30007 | #, gcc-internal-format | |
30008 | msgid "non-static reference %q+#D in class without a constructor" | |
30009 | msgstr "referencia %q+#D que no es static en una clase sin un constructor" | |
30010 | ||
30011 | -#: cp/class.c:5055 | |
30012 | +#: cp/class.c:5075 | |
30013 | #, gcc-internal-format | |
30014 | msgid "non-static const member %q+#D in class without a constructor" | |
30015 | msgstr "miembro const %q+#D que no es static en una clase sin un constructor" | |
30016 | ||
30017 | #. If the function is defaulted outside the class, we just | |
30018 | #. give the synthesis error. | |
30019 | -#: cp/class.c:5081 | |
30020 | +#: cp/class.c:5101 | |
30021 | #, gcc-internal-format | |
30022 | msgid "%q+D declared to take const reference, but implicit declaration would take non-const" | |
30023 | msgstr "se declaró %q+D para tomar referencia const, pero la declaración implícita tomaría algo que no es const" | |
30024 | ||
30025 | -#: cp/class.c:5084 | |
30026 | +#: cp/class.c:5104 | |
30027 | #, gcc-internal-format | |
30028 | msgid "%q+D declared to take non-const reference cannot be defaulted in the class body" | |
30029 | msgstr "se declaró %q+D para tomar referencia que no es const y no se puede definir por omisión en el cuerpo de clase" | |
30030 | ||
30031 | -#: cp/class.c:5308 | |
30032 | +#: cp/class.c:5328 | |
30033 | #, gcc-internal-format | |
30034 | msgid "offset of virtual base %qT is not ABI-compliant and may change in a future version of GCC" | |
30035 | msgstr "el desplazamiento de la base virtual %qT no cumple con la ABI y puede cambiar en una versión futura de GCC" | |
30036 | ||
30037 | -#: cp/class.c:5409 | |
30038 | +#: cp/class.c:5429 | |
30039 | #, gcc-internal-format | |
30040 | msgid "direct base %qT inaccessible in %qT due to ambiguity" | |
30041 | msgstr "base directa %qT inaccesible en %qT debido a ambigüedad" | |
30042 | ||
30043 | -#: cp/class.c:5421 | |
30044 | +#: cp/class.c:5441 | |
30045 | #, gcc-internal-format | |
30046 | msgid "virtual base %qT inaccessible in %qT due to ambiguity" | |
30047 | msgstr "base virtual %qT inaccesible en %qT debido a ambigüedad" | |
30048 | ||
30049 | -#: cp/class.c:5607 | |
30050 | +#: cp/class.c:5627 | |
30051 | #, gcc-internal-format | |
30052 | msgid "size assigned to %qT may not be ABI-compliant and may change in a future version of GCC" | |
30053 | msgstr "el tamaño asignado a %qT puede no cumplir con la ABI y puede cambiar en una versión futura de GCC" | |
30054 | ||
30055 | -#: cp/class.c:5647 | |
30056 | +#: cp/class.c:5667 | |
30057 | #, gcc-internal-format | |
30058 | msgid "the offset of %qD may not be ABI-compliant and may change in a future version of GCC" | |
30059 | msgstr "el desplazamiento de %qD tal vez no cumple con la ABI y puede cambiar en una versión futura de GCC" | |
30060 | ||
30061 | -#: cp/class.c:5675 | |
30062 | +#: cp/class.c:5695 | |
30063 | #, gcc-internal-format | |
30064 | msgid "offset of %q+D is not ABI-compliant and may change in a future version of GCC" | |
30065 | msgstr "el desplazamiento de %q+D no cumple con la ABI y puede cambiar en una versión futura de GCC" | |
30066 | ||
30067 | -#: cp/class.c:5685 | |
30068 | +#: cp/class.c:5705 | |
30069 | #, gcc-internal-format | |
30070 | msgid "%q+D contains empty classes which may cause base classes to be placed at different locations in a future version of GCC" | |
30071 | msgstr "%q+D contiene clases vacías las cuales pueden causar que las clases base se coloquen en diferentes ubicaciones en una versión futura de GCC" | |
30072 | ||
30073 | -#: cp/class.c:5773 | |
30074 | +#: cp/class.c:5793 | |
30075 | #, gcc-internal-format | |
30076 | msgid "layout of classes derived from empty class %qT may change in a future version of GCC" | |
30077 | msgstr "la disposición de clases derivadas de la clase vacía %qT puede cambiar en una versión futura de GCC" | |
30078 | ||
30079 | -#: cp/class.c:5942 cp/decl.c:11802 cp/parser.c:18577 | |
30080 | +#: cp/class.c:5962 cp/decl.c:11816 cp/parser.c:18577 | |
30081 | #, gcc-internal-format | |
30082 | msgid "redefinition of %q#T" | |
30083 | msgstr "redefinición de %q#T" | |
30084 | ||
30085 | -#: cp/class.c:6093 | |
30086 | +#: cp/class.c:6113 | |
30087 | #, gcc-internal-format | |
30088 | msgid "%q#T has virtual functions and accessible non-virtual destructor" | |
30089 | msgstr "%q#T tiene funciones virtuales y destructor no virtual accesible" | |
30090 | ||
30091 | -#: cp/class.c:6119 | |
30092 | +#: cp/class.c:6139 | |
30093 | #, gcc-internal-format | |
30094 | msgid "type transparent class %qT does not have any fields" | |
30095 | msgstr "la clase transparente tipo %qT no tiene ningún campo" | |
30096 | ||
30097 | -#: cp/class.c:6125 | |
30098 | +#: cp/class.c:6145 | |
30099 | #, gcc-internal-format | |
30100 | msgid "type transparent class %qT has base classes" | |
30101 | msgstr "la clase transparente tipo %qT tiene clases base" | |
30102 | ||
30103 | -#: cp/class.c:6129 | |
30104 | +#: cp/class.c:6149 | |
30105 | #, gcc-internal-format | |
30106 | msgid "type transparent class %qT has virtual functions" | |
30107 | msgstr "la clase transparente tipo %qT tiene funciones virtuales" | |
30108 | ||
30109 | -#: cp/class.c:6231 | |
30110 | +#: cp/class.c:6251 | |
30111 | #, gcc-internal-format | |
30112 | msgid "trying to finish struct, but kicked out due to previous parse errors" | |
30113 | msgstr "se trató de terminar struct, pero fue sacado debido a errores previos de decodificación" | |
30114 | ||
30115 | -#: cp/class.c:6737 | |
30116 | +#: cp/class.c:6757 | |
30117 | #, gcc-internal-format | |
30118 | msgid "language string %<\"%E\"%> not recognized" | |
30119 | msgstr "no se reconoce la cadena de lenguaje %<\"%E\"%>" | |
30120 | ||
30121 | -#: cp/class.c:6827 | |
30122 | +#: cp/class.c:6847 | |
30123 | #, gcc-internal-format | |
30124 | msgid "cannot resolve overloaded function %qD based on conversion to type %qT" | |
30125 | msgstr "no se puede resolver la función sobrecargada %qD basándose en la conversión al tipo %qT" | |
30126 | ||
30127 | -#: cp/class.c:6951 | |
30128 | +#: cp/class.c:6971 | |
30129 | #, gcc-internal-format | |
30130 | msgid "no matches converting function %qD to type %q#T" | |
30131 | msgstr "no hay coincidencias al convertir la función %qD al tipo %q#T" | |
30132 | ||
30133 | -#: cp/class.c:6974 | |
30134 | +#: cp/class.c:6994 | |
30135 | #, gcc-internal-format | |
30136 | msgid "converting overloaded function %qD to type %q#T is ambiguous" | |
30137 | msgstr "la conversión de la función sobrecargada %qD al tipo %q#T es ambigua" | |
30138 | ||
30139 | -#: cp/class.c:7001 | |
30140 | +#: cp/class.c:7021 | |
30141 | #, gcc-internal-format | |
30142 | msgid "assuming pointer to member %qD" | |
30143 | msgstr "asumiendo el puntero a miembro %qD" | |
30144 | ||
30145 | -#: cp/class.c:7004 | |
30146 | +#: cp/class.c:7024 | |
30147 | #, gcc-internal-format | |
30148 | msgid "(a pointer to member can only be formed with %<&%E%>)" | |
30149 | msgstr "(un puntero a miembro solamente se puede formar con %<&%E%>)" | |
30150 | ||
30151 | -#: cp/class.c:7066 cp/class.c:7100 | |
30152 | +#: cp/class.c:7086 cp/class.c:7120 | |
30153 | #, gcc-internal-format | |
30154 | msgid "not enough type information" | |
30155 | msgstr "no hay suficiente información de tipo" | |
30156 | ||
30157 | -#: cp/class.c:7083 cp/cvt.c:169 cp/cvt.c:194 cp/cvt.c:244 | |
30158 | +#: cp/class.c:7103 cp/cvt.c:169 cp/cvt.c:194 cp/cvt.c:244 | |
30159 | #, gcc-internal-format | |
30160 | msgid "cannot convert %qE from type %qT to type %qT" | |
30161 | msgstr "no se puede convertir %qE desde el tipo %qT al tipo %qT" | |
30162 | @@ -26493,12 +26689,12 @@ | |
30163 | #. A name N used in a class S shall refer to the same declaration | |
30164 | #. in its context and when re-evaluated in the completed scope of | |
30165 | #. S. | |
30166 | -#: cp/class.c:7394 cp/decl.c:1287 | |
30167 | +#: cp/class.c:7414 cp/decl.c:1287 | |
30168 | #, gcc-internal-format | |
30169 | msgid "declaration of %q#D" | |
30170 | msgstr "la declaración de %q#D" | |
30171 | ||
30172 | -#: cp/class.c:7395 | |
30173 | +#: cp/class.c:7415 | |
30174 | #, gcc-internal-format | |
30175 | msgid "changes meaning of %qD from %q+#D" | |
30176 | msgstr "cambia el significado de %qD a partir de %q+#D" | |
30177 | @@ -26828,13 +27024,18 @@ | |
30178 | msgid "converting NULL to non-pointer type" | |
30179 | msgstr "se convierte NULL a un tipo que no es puntero" | |
30180 | ||
30181 | -#: cp/cvt.c:1584 | |
30182 | +#: cp/cvt.c:1546 cp/cvt.c:1595 | |
30183 | #, gcc-internal-format | |
30184 | msgid "ambiguous default type conversion from %qT" | |
30185 | msgstr "conversión de tipo por defecto ambigua desde %qT" | |
30186 | ||
30187 | -#: cp/cvt.c:1586 | |
30188 | +#: cp/cvt.c:1548 | |
30189 | #, gcc-internal-format | |
30190 | +msgid " candidate conversions include %qD" | |
30191 | +msgstr " las conversiones candidatas incluyen %qD" | |
30192 | + | |
30193 | +#: cp/cvt.c:1597 | |
30194 | +#, gcc-internal-format | |
30195 | msgid " candidate conversions include %qD and %qD" | |
30196 | msgstr " las conversiones candidatas incluyen %qD y %qD" | |
30197 | ||
30198 | @@ -27076,27 +27277,27 @@ | |
30199 | msgstr "genera un conflicto con la declaración previa aquí" | |
30200 | ||
30201 | #. Reject two definitions. | |
30202 | -#: cp/decl.c:2364 cp/decl.c:2393 cp/decl.c:2422 cp/decl.c:2439 cp/decl.c:2511 | |
30203 | +#: cp/decl.c:2369 cp/decl.c:2398 cp/decl.c:2427 cp/decl.c:2444 cp/decl.c:2516 | |
30204 | #, gcc-internal-format | |
30205 | msgid "redefinition of %q#D" | |
30206 | msgstr "redefinición de %q#D" | |
30207 | ||
30208 | -#: cp/decl.c:2380 | |
30209 | +#: cp/decl.c:2385 | |
30210 | #, gcc-internal-format | |
30211 | msgid "%qD conflicts with used function" | |
30212 | msgstr "%qD genera un conflicto con la función utilizada" | |
30213 | ||
30214 | -#: cp/decl.c:2390 | |
30215 | +#: cp/decl.c:2395 | |
30216 | #, gcc-internal-format | |
30217 | msgid "%q#D not declared in class" | |
30218 | msgstr "%q#D no se declaró en la clase" | |
30219 | ||
30220 | -#: cp/decl.c:2404 cp/decl.c:2449 | |
30221 | +#: cp/decl.c:2409 cp/decl.c:2454 | |
30222 | #, gcc-internal-format | |
30223 | msgid "%q+D redeclared inline with %<gnu_inline%> attribute" | |
30224 | msgstr "%q+D se redeclaró incluída en línea con el atributo %<gnu_inline%>" | |
30225 | ||
30226 | -#: cp/decl.c:2407 cp/decl.c:2452 | |
30227 | +#: cp/decl.c:2412 cp/decl.c:2457 | |
30228 | #, gcc-internal-format | |
30229 | msgid "%q+D redeclared inline without %<gnu_inline%> attribute" | |
30230 | msgstr "%q+D se redeclaró incluída en línea sin el atributo %<gnu_inline%>" | |
30231 | @@ -27104,339 +27305,339 @@ | |
30232 | #. is_primary= | |
30233 | #. is_partial= | |
30234 | #. is_friend_decl= | |
30235 | -#: cp/decl.c:2468 | |
30236 | +#: cp/decl.c:2473 | |
30237 | #, gcc-internal-format | |
30238 | msgid "redeclaration of friend %q#D may not have default template arguments" | |
30239 | msgstr "la redeclaración de friend %q#D no puede tener argumentos de plantilla por defecto" | |
30240 | ||
30241 | -#: cp/decl.c:2482 | |
30242 | +#: cp/decl.c:2487 | |
30243 | #, gcc-internal-format | |
30244 | msgid "thread-local declaration of %q#D follows non-thread-local declaration" | |
30245 | msgstr "declaración thread-local de %q#D después de una declaración que no es thread-local" | |
30246 | ||
30247 | -#: cp/decl.c:2485 | |
30248 | +#: cp/decl.c:2490 | |
30249 | #, gcc-internal-format | |
30250 | msgid "non-thread-local declaration of %q#D follows thread-local declaration" | |
30251 | msgstr "declaración que no es thread-local de %q#D después de una declaración thread-local" | |
30252 | ||
30253 | -#: cp/decl.c:2500 cp/decl.c:2519 cp/name-lookup.c:550 cp/name-lookup.c:1132 | |
30254 | +#: cp/decl.c:2505 cp/decl.c:2524 cp/name-lookup.c:550 cp/name-lookup.c:1132 | |
30255 | #, gcc-internal-format | |
30256 | msgid "redeclaration of %q#D" | |
30257 | msgstr "redeclaración de %q#D" | |
30258 | ||
30259 | -#: cp/decl.c:2674 | |
30260 | +#: cp/decl.c:2679 | |
30261 | #, gcc-internal-format | |
30262 | msgid "jump to label %qD" | |
30263 | msgstr "salto a la etiqueta %qD" | |
30264 | ||
30265 | -#: cp/decl.c:2676 | |
30266 | +#: cp/decl.c:2681 | |
30267 | #, gcc-internal-format | |
30268 | msgid "jump to case label" | |
30269 | msgstr "salto a la etiqueta case" | |
30270 | ||
30271 | -#: cp/decl.c:2678 cp/decl.c:2820 cp/decl.c:2860 | |
30272 | +#: cp/decl.c:2683 cp/decl.c:2825 cp/decl.c:2865 | |
30273 | #, gcc-internal-format | |
30274 | msgid " from here" | |
30275 | msgstr " desde aquí" | |
30276 | ||
30277 | -#: cp/decl.c:2697 cp/decl.c:2863 | |
30278 | +#: cp/decl.c:2702 cp/decl.c:2868 | |
30279 | #, gcc-internal-format | |
30280 | msgid " exits OpenMP structured block" | |
30281 | msgstr " sale del bloque estructurado OpenMP" | |
30282 | ||
30283 | -#: cp/decl.c:2719 | |
30284 | +#: cp/decl.c:2724 | |
30285 | #, gcc-internal-format | |
30286 | msgid " crosses initialization of %q+#D" | |
30287 | msgstr " cruza la inicialización de %q+#D" | |
30288 | ||
30289 | -#: cp/decl.c:2721 cp/decl.c:2837 | |
30290 | +#: cp/decl.c:2726 cp/decl.c:2842 | |
30291 | #, gcc-internal-format | |
30292 | msgid " enters scope of %q+#D which has non-trivial destructor" | |
30293 | msgstr " entra al ámbito de %q+#D el cual tiene un destructor que no es trivial" | |
30294 | ||
30295 | -#: cp/decl.c:2735 cp/decl.c:2842 | |
30296 | +#: cp/decl.c:2740 cp/decl.c:2847 | |
30297 | #, gcc-internal-format | |
30298 | msgid " enters try block" | |
30299 | msgstr " entra al bloque try" | |
30300 | ||
30301 | #. Can't skip init of __exception_info. | |
30302 | -#: cp/decl.c:2737 cp/decl.c:2831 cp/decl.c:2844 | |
30303 | +#: cp/decl.c:2742 cp/decl.c:2836 cp/decl.c:2849 | |
30304 | #, gcc-internal-format | |
30305 | msgid " enters catch block" | |
30306 | msgstr " entra al bloque catch" | |
30307 | ||
30308 | -#: cp/decl.c:2747 cp/decl.c:2847 | |
30309 | +#: cp/decl.c:2752 cp/decl.c:2852 | |
30310 | #, gcc-internal-format | |
30311 | msgid " enters OpenMP structured block" | |
30312 | msgstr " entra al bloque estructurado OpenMP" | |
30313 | ||
30314 | -#: cp/decl.c:2819 cp/decl.c:2859 | |
30315 | +#: cp/decl.c:2824 cp/decl.c:2864 | |
30316 | #, gcc-internal-format | |
30317 | msgid "jump to label %q+D" | |
30318 | msgstr "salto a la etiqueta %q+D" | |
30319 | ||
30320 | -#: cp/decl.c:2835 | |
30321 | +#: cp/decl.c:2840 | |
30322 | #, gcc-internal-format | |
30323 | msgid " skips initialization of %q+#D" | |
30324 | msgstr " salta la inicialización de %q+#D" | |
30325 | ||
30326 | -#: cp/decl.c:2912 | |
30327 | +#: cp/decl.c:2917 | |
30328 | #, gcc-internal-format | |
30329 | msgid "label named wchar_t" | |
30330 | msgstr "etiqueta nombrada wchar_t" | |
30331 | ||
30332 | -#: cp/decl.c:3220 | |
30333 | +#: cp/decl.c:3225 | |
30334 | #, gcc-internal-format | |
30335 | msgid "%qD is not a type" | |
30336 | msgstr "%qD no es un tipo" | |
30337 | ||
30338 | -#: cp/decl.c:3226 cp/parser.c:5049 | |
30339 | +#: cp/decl.c:3231 cp/parser.c:5049 | |
30340 | #, gcc-internal-format | |
30341 | msgid "%qD used without template parameters" | |
30342 | msgstr "se usa %qD sin parámetros de plantilla" | |
30343 | ||
30344 | -#: cp/decl.c:3235 | |
30345 | +#: cp/decl.c:3240 | |
30346 | #, gcc-internal-format | |
30347 | msgid "%q#T is not a class" | |
30348 | msgstr "%q#T no es una clase" | |
30349 | ||
30350 | -#: cp/decl.c:3259 cp/decl.c:3349 | |
30351 | +#: cp/decl.c:3264 cp/decl.c:3354 | |
30352 | #, gcc-internal-format | |
30353 | msgid "no class template named %q#T in %q#T" | |
30354 | msgstr "no hay una plantilla de clase llamada %q#T en %q#T" | |
30355 | ||
30356 | -#: cp/decl.c:3260 | |
30357 | +#: cp/decl.c:3265 | |
30358 | #, gcc-internal-format | |
30359 | msgid "no type named %q#T in %q#T" | |
30360 | msgstr "no hay un tipo llamado %q#T en %q#T" | |
30361 | ||
30362 | -#: cp/decl.c:3272 | |
30363 | +#: cp/decl.c:3277 | |
30364 | #, gcc-internal-format | |
30365 | msgid "lookup of %qT in %qT is ambiguous" | |
30366 | msgstr "la búsqueda de %qT en %qT es ambigua" | |
30367 | ||
30368 | -#: cp/decl.c:3281 | |
30369 | +#: cp/decl.c:3286 | |
30370 | #, gcc-internal-format | |
30371 | msgid "%<typename %T::%D%> names %q#T, which is not a class template" | |
30372 | msgstr "%<typename %T::%D%> nombra a %q#T, el cual no es una plantilla de clase" | |
30373 | ||
30374 | -#: cp/decl.c:3288 | |
30375 | +#: cp/decl.c:3293 | |
30376 | #, gcc-internal-format | |
30377 | msgid "%<typename %T::%D%> names %q#T, which is not a type" | |
30378 | msgstr "%<typename %T::%D%> nombra a %q#T, el cual no es un tipo" | |
30379 | ||
30380 | -#: cp/decl.c:3358 | |
30381 | +#: cp/decl.c:3363 | |
30382 | #, gcc-internal-format | |
30383 | msgid "template parameters do not match template" | |
30384 | msgstr "los parámetros de la plantilla no coinciden con la plantilla" | |
30385 | ||
30386 | -#: cp/decl.c:3359 cp/friend.c:327 cp/friend.c:335 | |
30387 | +#: cp/decl.c:3364 cp/friend.c:327 cp/friend.c:335 | |
30388 | #, gcc-internal-format | |
30389 | msgid "%q+D declared here" | |
30390 | msgstr "%q+D declarado aquí" | |
30391 | ||
30392 | -#: cp/decl.c:4077 | |
30393 | +#: cp/decl.c:4082 | |
30394 | #, gcc-internal-format | |
30395 | msgid "an anonymous struct cannot have function members" | |
30396 | msgstr "un struct anónimo no puede tener funciones miembro" | |
30397 | ||
30398 | -#: cp/decl.c:4080 | |
30399 | +#: cp/decl.c:4085 | |
30400 | #, gcc-internal-format | |
30401 | msgid "an anonymous union cannot have function members" | |
30402 | msgstr "un union anónimo no puede tener funciones miembro" | |
30403 | ||
30404 | -#: cp/decl.c:4098 | |
30405 | +#: cp/decl.c:4103 | |
30406 | #, gcc-internal-format | |
30407 | msgid "member %q+#D with constructor not allowed in anonymous aggregate" | |
30408 | msgstr "no se permite el miembro %q+#D con constructor en un agregado anónimo" | |
30409 | ||
30410 | -#: cp/decl.c:4101 | |
30411 | +#: cp/decl.c:4106 | |
30412 | #, gcc-internal-format | |
30413 | msgid "member %q+#D with destructor not allowed in anonymous aggregate" | |
30414 | msgstr "no se permite el miembro %q+#D con destructor en un agregado anónimo" | |
30415 | ||
30416 | -#: cp/decl.c:4104 | |
30417 | +#: cp/decl.c:4109 | |
30418 | #, gcc-internal-format | |
30419 | msgid "member %q+#D with copy assignment operator not allowed in anonymous aggregate" | |
30420 | msgstr "no se permite el miembro %q+#D con operador de asignación de copia en un agregado anónimo" | |
30421 | ||
30422 | -#: cp/decl.c:4129 | |
30423 | +#: cp/decl.c:4134 | |
30424 | #, gcc-internal-format | |
30425 | msgid "multiple types in one declaration" | |
30426 | msgstr "tipos múltiples en una declaración" | |
30427 | ||
30428 | -#: cp/decl.c:4133 | |
30429 | +#: cp/decl.c:4138 | |
30430 | #, gcc-internal-format | |
30431 | msgid "redeclaration of C++ built-in type %qT" | |
30432 | msgstr "redeclaración del tipo interno de C++ %qT" | |
30433 | ||
30434 | -#: cp/decl.c:4150 | |
30435 | +#: cp/decl.c:4155 | |
30436 | #, gcc-internal-format | |
30437 | msgid "%<auto%> can only be specified for variables or function declarations" | |
30438 | msgstr "%<auto%> sólo se puede especificar para variables o declaraciones de función" | |
30439 | ||
30440 | -#: cp/decl.c:4176 | |
30441 | +#: cp/decl.c:4181 | |
30442 | #, gcc-internal-format | |
30443 | msgid "missing type-name in typedef-declaration" | |
30444 | msgstr "falta el nombre del tipo en la declaración typedef" | |
30445 | ||
30446 | -#: cp/decl.c:4183 | |
30447 | +#: cp/decl.c:4188 | |
30448 | #, gcc-internal-format | |
30449 | msgid "ISO C++ prohibits anonymous structs" | |
30450 | msgstr "ISO C++ prohíbe structs anónimos" | |
30451 | ||
30452 | -#: cp/decl.c:4190 | |
30453 | +#: cp/decl.c:4195 | |
30454 | #, gcc-internal-format | |
30455 | msgid "%qs can only be specified for functions" | |
30456 | msgstr "%qs sólo se puede especificar para funciones" | |
30457 | ||
30458 | -#: cp/decl.c:4196 | |
30459 | +#: cp/decl.c:4201 | |
30460 | #, gcc-internal-format | |
30461 | msgid "%<friend%> can only be specified inside a class" | |
30462 | msgstr "%<friend%> sólo se puede especificar dentro de una clase" | |
30463 | ||
30464 | -#: cp/decl.c:4198 | |
30465 | +#: cp/decl.c:4203 | |
30466 | #, gcc-internal-format | |
30467 | msgid "%<explicit%> can only be specified for constructors" | |
30468 | msgstr "%<explicit%> sólo se puede especificar para constructores" | |
30469 | ||
30470 | -#: cp/decl.c:4200 | |
30471 | +#: cp/decl.c:4205 | |
30472 | #, gcc-internal-format | |
30473 | msgid "a storage class can only be specified for objects and functions" | |
30474 | msgstr "una clase de almacenamiento sólo se puede especificar para objetos y funciones" | |
30475 | ||
30476 | -#: cp/decl.c:4206 | |
30477 | +#: cp/decl.c:4211 | |
30478 | #, gcc-internal-format | |
30479 | msgid "qualifiers can only be specified for objects and functions" | |
30480 | msgstr "los calificadores sólo se pueden especificar para objetos y funciones" | |
30481 | ||
30482 | -#: cp/decl.c:4209 | |
30483 | +#: cp/decl.c:4214 | |
30484 | #, gcc-internal-format | |
30485 | msgid "%<typedef%> was ignored in this declaration" | |
30486 | msgstr "se descartó %<typedef%> en esta declaración" | |
30487 | ||
30488 | -#: cp/decl.c:4211 | |
30489 | +#: cp/decl.c:4216 | |
30490 | #, gcc-internal-format | |
30491 | msgid "%<constexpr%> cannot be used for type declarations" | |
30492 | msgstr "%<constexpr%> no se puede usar en declaraciones de tipo" | |
30493 | ||
30494 | -#: cp/decl.c:4240 | |
30495 | +#: cp/decl.c:4226 | |
30496 | #, gcc-internal-format | |
30497 | -msgid "attribute ignored in declaration of %q+#T" | |
30498 | -msgstr "se descarta el atributo en la declaración de %q+#T" | |
30499 | +msgid "attribute ignored in declaration of %q#T" | |
30500 | +msgstr "se descarta el atributo en la declaración de %q#T" | |
30501 | ||
30502 | -#: cp/decl.c:4241 | |
30503 | +#: cp/decl.c:4227 | |
30504 | #, gcc-internal-format | |
30505 | -msgid "attribute for %q+#T must follow the %qs keyword" | |
30506 | -msgstr "el atributo para %q+#T debe estar a continuación de la palabra clave %qs" | |
30507 | +msgid "attribute for %q#T must follow the %qs keyword" | |
30508 | +msgstr "el atributo para %q#T debe estar a continuación de la palabra clave %qs" | |
30509 | ||
30510 | -#: cp/decl.c:4286 | |
30511 | +#: cp/decl.c:4296 | |
30512 | #, gcc-internal-format | |
30513 | msgid "ignoring attributes applied to class type %qT outside of definition" | |
30514 | msgstr "se descartan los atributos aplicados al tipo de clase %qT fuera de la definición" | |
30515 | ||
30516 | #. A template type parameter or other dependent type. | |
30517 | -#: cp/decl.c:4290 | |
30518 | +#: cp/decl.c:4300 | |
30519 | #, gcc-internal-format | |
30520 | msgid "ignoring attributes applied to dependent type %qT without an associated declaration" | |
30521 | msgstr "se descartan los atributos aplicados al tipo dependiente %qT sin una declaración asociada" | |
30522 | ||
30523 | -#: cp/decl.c:4360 cp/decl2.c:815 | |
30524 | +#: cp/decl.c:4370 cp/decl2.c:815 | |
30525 | #, gcc-internal-format | |
30526 | msgid "typedef %qD is initialized (use decltype instead)" | |
30527 | msgstr "typedef %qD está inicializado (utilice decltype en su lugar)" | |
30528 | ||
30529 | -#: cp/decl.c:4378 | |
30530 | +#: cp/decl.c:4388 | |
30531 | #, gcc-internal-format | |
30532 | msgid "declaration of %q#D has %<extern%> and is initialized" | |
30533 | msgstr "la declaración de %q#D tiene %<extern%> y está inicializada" | |
30534 | ||
30535 | -#: cp/decl.c:4407 | |
30536 | +#: cp/decl.c:4417 | |
30537 | #, gcc-internal-format | |
30538 | msgid "definition of %q#D is marked %<dllimport%>" | |
30539 | msgstr "la definición de %q#D se marca como %<dllimport%>" | |
30540 | ||
30541 | -#: cp/decl.c:4426 | |
30542 | +#: cp/decl.c:4436 | |
30543 | #, gcc-internal-format | |
30544 | msgid "%q#D is not a static member of %q#T" | |
30545 | msgstr "%q#D no es un miembro static de %q#T" | |
30546 | ||
30547 | -#: cp/decl.c:4432 | |
30548 | +#: cp/decl.c:4442 | |
30549 | #, gcc-internal-format | |
30550 | msgid "ISO C++ does not permit %<%T::%D%> to be defined as %<%T::%D%>" | |
30551 | msgstr "ISO C++ no permite que %<%T::%D%> se defina como %<%T::%D%>" | |
30552 | ||
30553 | -#: cp/decl.c:4441 | |
30554 | +#: cp/decl.c:4451 | |
30555 | #, gcc-internal-format | |
30556 | msgid "template header not allowed in member definition of explicitly specialized class" | |
30557 | msgstr "no se permite un encabezado de plantilla en la definición de miembro de una clase explícitamente especializada" | |
30558 | ||
30559 | -#: cp/decl.c:4449 | |
30560 | +#: cp/decl.c:4459 | |
30561 | #, gcc-internal-format | |
30562 | msgid "duplicate initialization of %qD" | |
30563 | msgstr "inicialización duplicada de %qD" | |
30564 | ||
30565 | -#: cp/decl.c:4454 | |
30566 | +#: cp/decl.c:4464 | |
30567 | #, gcc-internal-format | |
30568 | msgid "%qD declared %<constexpr%> outside its class" | |
30569 | msgstr "%qD se declaró %<constexpr%> fuera de su clase" | |
30570 | ||
30571 | -#: cp/decl.c:4493 | |
30572 | +#: cp/decl.c:4503 | |
30573 | #, gcc-internal-format | |
30574 | msgid "declaration of %q#D outside of class is not definition" | |
30575 | msgstr "la declaración de %q#D fuera de la clase no es una definición" | |
30576 | ||
30577 | -#: cp/decl.c:4588 | |
30578 | +#: cp/decl.c:4598 | |
30579 | #, gcc-internal-format | |
30580 | msgid "variable %q#D has initializer but incomplete type" | |
30581 | msgstr "la variable %q#D tiene inicializador pero de tipo de dato incompleto" | |
30582 | ||
30583 | -#: cp/decl.c:4594 cp/decl.c:5389 | |
30584 | +#: cp/decl.c:4604 cp/decl.c:5399 | |
30585 | #, gcc-internal-format | |
30586 | msgid "elements of array %q#D have incomplete type" | |
30587 | msgstr "elementos de la matriz %q#D con tipo de dato incompleto" | |
30588 | ||
30589 | -#: cp/decl.c:4601 cp/decl.c:5999 | |
30590 | +#: cp/decl.c:4611 cp/decl.c:6009 | |
30591 | #, gcc-internal-format | |
30592 | msgid "declaration of %q#D has no initializer" | |
30593 | msgstr "la declaración de %q#D no tiene inicializadores" | |
30594 | ||
30595 | -#: cp/decl.c:4603 | |
30596 | +#: cp/decl.c:4613 | |
30597 | #, gcc-internal-format | |
30598 | msgid "aggregate %q#D has incomplete type and cannot be defined" | |
30599 | msgstr "el agregado %q#D tiene un tipo incompleto y no se puede definir" | |
30600 | ||
30601 | -#: cp/decl.c:4637 | |
30602 | +#: cp/decl.c:4647 | |
30603 | #, gcc-internal-format | |
30604 | msgid "%qD declared as reference but not initialized" | |
30605 | msgstr "%qD declarado como referencia pero no se inicializa" | |
30606 | ||
30607 | -#: cp/decl.c:4678 | |
30608 | +#: cp/decl.c:4688 | |
30609 | #, gcc-internal-format | |
30610 | msgid "name used in a GNU-style designated initializer for an array" | |
30611 | msgstr "se usó un nombre en un inicializador designado de estilo GNU para una matriz" | |
30612 | ||
30613 | -#: cp/decl.c:4686 cp/typeck2.c:1084 cp/typeck2.c:1189 | |
30614 | +#: cp/decl.c:4696 cp/typeck2.c:1084 cp/typeck2.c:1189 | |
30615 | #, gcc-internal-format | |
30616 | msgid "non-trivial designated initializers not supported" | |
30617 | msgstr "no se admiten los inicializadores designados como no triviales" | |
30618 | ||
30619 | -#: cp/decl.c:4691 | |
30620 | +#: cp/decl.c:4701 | |
30621 | #, gcc-internal-format | |
30622 | msgid "name %qD used in a GNU-style designated initializer for an array" | |
30623 | msgstr "el nombre %qD se utiliza en un inicializador designado en estilo GNU para una matriz" | |
30624 | ||
30625 | -#: cp/decl.c:4739 | |
30626 | +#: cp/decl.c:4749 | |
30627 | #, gcc-internal-format | |
30628 | msgid "initializer fails to determine size of %qD" | |
30629 | msgstr "el inicializador no puede determinar el tamaño de %qD" | |
30630 | ||
30631 | -#: cp/decl.c:4746 | |
30632 | +#: cp/decl.c:4756 | |
30633 | #, gcc-internal-format | |
30634 | msgid "array size missing in %qD" | |
30635 | msgstr "falta el tamaño de la matriz en %qD" | |
30636 | ||
30637 | -#: cp/decl.c:4758 | |
30638 | +#: cp/decl.c:4768 | |
30639 | #, gcc-internal-format | |
30640 | msgid "zero-size array %qD" | |
30641 | msgstr "matriz %qD de tamaño cero" | |
30642 | @@ -27444,389 +27645,389 @@ | |
30643 | #. An automatic variable with an incomplete type: that is an error. | |
30644 | #. Don't talk about array types here, since we took care of that | |
30645 | #. message in grokdeclarator. | |
30646 | -#: cp/decl.c:4801 | |
30647 | +#: cp/decl.c:4811 | |
30648 | #, gcc-internal-format | |
30649 | msgid "storage size of %qD isn%'t known" | |
30650 | msgstr "no se conoce el tamaño de almacenamiento de %qD" | |
30651 | ||
30652 | -#: cp/decl.c:4824 | |
30653 | +#: cp/decl.c:4834 | |
30654 | #, gcc-internal-format | |
30655 | msgid "storage size of %qD isn%'t constant" | |
30656 | msgstr "el tamaño de almacenamiento de %qD no es constante" | |
30657 | ||
30658 | -#: cp/decl.c:4870 | |
30659 | +#: cp/decl.c:4880 | |
30660 | #, gcc-internal-format | |
30661 | msgid "sorry: semantics of inline function static data %q+#D are wrong (you%'ll wind up with multiple copies)" | |
30662 | msgstr "perdón: la semántica de los datos static de la función inline %q+#D es errónea (terminará con múltiples copias)" | |
30663 | ||
30664 | -#: cp/decl.c:4874 | |
30665 | +#: cp/decl.c:4884 | |
30666 | #, gcc-internal-format | |
30667 | msgid " you can work around this by removing the initializer" | |
30668 | msgstr " puede evitar esto eliminando el inicializador" | |
30669 | ||
30670 | -#: cp/decl.c:4905 | |
30671 | +#: cp/decl.c:4915 | |
30672 | #, gcc-internal-format | |
30673 | msgid "uninitialized const %qD" | |
30674 | msgstr "const %qD sin inicializar" | |
30675 | ||
30676 | -#: cp/decl.c:4912 | |
30677 | +#: cp/decl.c:4922 | |
30678 | #, gcc-internal-format | |
30679 | msgid "%q#T has no user-provided default constructor" | |
30680 | msgstr "%q#T no tiene constructor por defecto proporcionado por el usuario" | |
30681 | ||
30682 | -#: cp/decl.c:4916 | |
30683 | +#: cp/decl.c:4926 | |
30684 | #, gcc-internal-format | |
30685 | msgid "constructor is not user-provided because it is explicitly defaulted in the class body" | |
30686 | msgstr "el constructor no es proporcionado por el usuario porque está marcado explícitamente por defecto en el cuerpo de la clase" | |
30687 | ||
30688 | -#: cp/decl.c:4918 | |
30689 | +#: cp/decl.c:4928 | |
30690 | #, gcc-internal-format | |
30691 | msgid "and the implicitly-defined constructor does not initialize %q+#D" | |
30692 | msgstr "y el constructor implícitamente definido no inicializa %q+#D" | |
30693 | ||
30694 | -#: cp/decl.c:5037 | |
30695 | +#: cp/decl.c:5047 | |
30696 | #, gcc-internal-format | |
30697 | msgid "invalid type %qT as initializer for a vector of type %qT" | |
30698 | msgstr "tipo %qT inválido como inicializador para un vector de tipo %qT" | |
30699 | ||
30700 | -#: cp/decl.c:5078 | |
30701 | +#: cp/decl.c:5088 | |
30702 | #, gcc-internal-format | |
30703 | msgid "initializer for %qT must be brace-enclosed" | |
30704 | msgstr "el inicializador para %qT debe estar encerrado entre llaves" | |
30705 | ||
30706 | -#: cp/decl.c:5095 | |
30707 | +#: cp/decl.c:5105 | |
30708 | #, gcc-internal-format | |
30709 | msgid "%<[%E] =%> used in a GNU-style designated initializer for class %qT" | |
30710 | msgstr "se usa %<[%E] =%> en un inicializador designado en estilo GNU para la clase %qT" | |
30711 | ||
30712 | -#: cp/decl.c:5105 | |
30713 | +#: cp/decl.c:5115 | |
30714 | #, gcc-internal-format | |
30715 | msgid "%qT has no non-static data member named %qD" | |
30716 | msgstr "%qT no tiene un dato miembro que no es static llamado %qD" | |
30717 | ||
30718 | -#: cp/decl.c:5146 | |
30719 | +#: cp/decl.c:5156 | |
30720 | #, gcc-internal-format | |
30721 | msgid "C99 designator %qE outside aggregate initializer" | |
30722 | msgstr "asignador C99 %qE fuera del inicializador agregado" | |
30723 | ||
30724 | -#: cp/decl.c:5183 cp/decl.c:5368 cp/typeck2.c:1071 cp/typeck2.c:1270 | |
30725 | +#: cp/decl.c:5193 cp/decl.c:5378 cp/typeck2.c:1071 cp/typeck2.c:1270 | |
30726 | #: cp/typeck2.c:1299 cp/typeck2.c:1346 | |
30727 | #, gcc-internal-format | |
30728 | msgid "too many initializers for %qT" | |
30729 | msgstr "demasiados inicializadores para %qT" | |
30730 | ||
30731 | -#: cp/decl.c:5216 | |
30732 | +#: cp/decl.c:5226 | |
30733 | #, gcc-internal-format | |
30734 | msgid "braces around scalar initializer for type %qT" | |
30735 | msgstr "llaves alrededor del inicializador escalar para el tipo %qT" | |
30736 | ||
30737 | -#: cp/decl.c:5309 | |
30738 | +#: cp/decl.c:5319 | |
30739 | #, gcc-internal-format | |
30740 | msgid "missing braces around initializer for %qT" | |
30741 | msgstr "faltan llaves alrededor del inicializador para %qT" | |
30742 | ||
30743 | -#: cp/decl.c:5391 | |
30744 | +#: cp/decl.c:5401 | |
30745 | #, gcc-internal-format | |
30746 | msgid "elements of array %q#T have incomplete type" | |
30747 | msgstr "elementos de la matriz %q#T tienen tipo de dato incompleto" | |
30748 | ||
30749 | -#: cp/decl.c:5400 | |
30750 | +#: cp/decl.c:5410 | |
30751 | #, gcc-internal-format | |
30752 | msgid "variable-sized object %qD may not be initialized" | |
30753 | msgstr "el objeto de tamaño variable %qD no se puede inicializar" | |
30754 | ||
30755 | -#: cp/decl.c:5402 | |
30756 | +#: cp/decl.c:5412 | |
30757 | #, gcc-internal-format | |
30758 | msgid "variable-sized compound literal" | |
30759 | msgstr "literal compuesta de tamaño variable" | |
30760 | ||
30761 | -#: cp/decl.c:5457 | |
30762 | +#: cp/decl.c:5467 | |
30763 | #, gcc-internal-format | |
30764 | msgid "%q#D has incomplete type" | |
30765 | msgstr "%q#D tiene un tipo incompleto" | |
30766 | ||
30767 | -#: cp/decl.c:5477 | |
30768 | +#: cp/decl.c:5487 | |
30769 | #, gcc-internal-format | |
30770 | msgid "scalar object %qD requires one element in initializer" | |
30771 | msgstr "el objeto escalar %qD requiere un elemento en el inicializador" | |
30772 | ||
30773 | -#: cp/decl.c:5520 | |
30774 | +#: cp/decl.c:5530 | |
30775 | #, gcc-internal-format | |
30776 | msgid "in C++98 %qD must be initialized by constructor, not by %<{...}%>" | |
30777 | msgstr "en C++98 %qD debe ser inicializado por un constructor, no por %<{...}%>" | |
30778 | ||
30779 | -#: cp/decl.c:5600 | |
30780 | +#: cp/decl.c:5610 | |
30781 | #, gcc-internal-format | |
30782 | msgid "array %qD initialized by parenthesized string literal %qE" | |
30783 | msgstr "matriz %qD inicializada con una constante de cadena entre paréntesis %qE" | |
30784 | ||
30785 | -#: cp/decl.c:5627 | |
30786 | +#: cp/decl.c:5637 | |
30787 | #, gcc-internal-format | |
30788 | msgid "initializer invalid for static member with constructor" | |
30789 | msgstr "inicializador inválido para el miembro static con constructor" | |
30790 | ||
30791 | -#: cp/decl.c:5629 | |
30792 | +#: cp/decl.c:5639 | |
30793 | #, gcc-internal-format | |
30794 | msgid "non-constant in-class initialization invalid for static member %qD" | |
30795 | msgstr "inicialización en clase que no es constante inválida para el miembro static %qD" | |
30796 | ||
30797 | -#: cp/decl.c:5633 | |
30798 | +#: cp/decl.c:5643 | |
30799 | #, gcc-internal-format | |
30800 | msgid "(an out of class initialization is required)" | |
30801 | msgstr "(se requiere una inicialización fuera de la clase)" | |
30802 | ||
30803 | -#: cp/decl.c:5968 | |
30804 | +#: cp/decl.c:5978 | |
30805 | #, gcc-internal-format | |
30806 | msgid "assignment (not initialization) in declaration" | |
30807 | msgstr "asignación (no inicialización) en la declaración" | |
30808 | ||
30809 | -#: cp/decl.c:6126 | |
30810 | +#: cp/decl.c:6136 | |
30811 | #, gcc-internal-format | |
30812 | msgid "shadowing previous type declaration of %q#D" | |
30813 | msgstr "se oscurece la declaración de tipo previa de %q#D" | |
30814 | ||
30815 | -#: cp/decl.c:6158 | |
30816 | +#: cp/decl.c:6168 | |
30817 | #, gcc-internal-format | |
30818 | msgid "%qD cannot be thread-local because it has non-trivial type %qT" | |
30819 | msgstr "%qD no puede ser thread-local porque es de tipo %qT que no es trivial" | |
30820 | ||
30821 | -#: cp/decl.c:6200 | |
30822 | +#: cp/decl.c:6210 | |
30823 | #, gcc-internal-format | |
30824 | msgid "Java object %qD not allocated with %<new%>" | |
30825 | msgstr "El objeto Java %qD no se aloja con %<new%>" | |
30826 | ||
30827 | -#: cp/decl.c:6208 | |
30828 | +#: cp/decl.c:6218 | |
30829 | #, gcc-internal-format | |
30830 | msgid "%qD is thread-local and so cannot be dynamically initialized" | |
30831 | msgstr "q%D es thread-local y por lo tanto no se puede inicializar dinámicamente" | |
30832 | ||
30833 | -#: cp/decl.c:6226 | |
30834 | +#: cp/decl.c:6236 | |
30835 | #, gcc-internal-format | |
30836 | msgid "%qD cannot be initialized by a non-constant expression when being declared" | |
30837 | msgstr "%qD no se puede inicializar con una expresion no constante al declararse" | |
30838 | ||
30839 | -#: cp/decl.c:6274 | |
30840 | +#: cp/decl.c:6284 | |
30841 | #, gcc-internal-format | |
30842 | msgid "non-static data member %qD has Java class type" | |
30843 | msgstr "el dato miembro que no es estático %qD tiene un tipo de clase Java" | |
30844 | ||
30845 | -#: cp/decl.c:6339 | |
30846 | +#: cp/decl.c:6349 | |
30847 | #, gcc-internal-format | |
30848 | msgid "function %q#D is initialized like a variable" | |
30849 | msgstr "la función %q#D se inicializa como una variable" | |
30850 | ||
30851 | -#: cp/decl.c:6938 | |
30852 | +#: cp/decl.c:6948 | |
30853 | #, gcc-internal-format | |
30854 | msgid "initializer fails to determine size of %qT" | |
30855 | msgstr "el inicializador no puede determinar el tamaño de %qT" | |
30856 | ||
30857 | -#: cp/decl.c:6942 | |
30858 | +#: cp/decl.c:6952 | |
30859 | #, gcc-internal-format | |
30860 | msgid "array size missing in %qT" | |
30861 | msgstr "falta el tamaño de la matriz en %qT" | |
30862 | ||
30863 | -#: cp/decl.c:6945 | |
30864 | +#: cp/decl.c:6955 | |
30865 | #, gcc-internal-format | |
30866 | msgid "zero-size array %qT" | |
30867 | msgstr "matriz %qT de tamaño cero" | |
30868 | ||
30869 | -#: cp/decl.c:6961 | |
30870 | +#: cp/decl.c:6971 | |
30871 | #, gcc-internal-format | |
30872 | msgid "destructor for alien class %qT cannot be a member" | |
30873 | msgstr "el destructor para la clase extranjera %qT no puede ser un miembro" | |
30874 | ||
30875 | -#: cp/decl.c:6963 | |
30876 | +#: cp/decl.c:6973 | |
30877 | #, gcc-internal-format | |
30878 | msgid "constructor for alien class %qT cannot be a member" | |
30879 | msgstr "el constructor para la clase extranjera %qT no puede ser un miembro" | |
30880 | ||
30881 | -#: cp/decl.c:6987 | |
30882 | +#: cp/decl.c:6997 | |
30883 | #, gcc-internal-format | |
30884 | msgid "%qD declared as a %<virtual%> variable" | |
30885 | msgstr "%qD se declaró como una variable %<virtual%>" | |
30886 | ||
30887 | -#: cp/decl.c:6989 | |
30888 | +#: cp/decl.c:6999 | |
30889 | #, gcc-internal-format | |
30890 | msgid "%qD declared as an %<inline%> variable" | |
30891 | msgstr "%qD se declaró como una variable %<inline%>" | |
30892 | ||
30893 | -#: cp/decl.c:6991 | |
30894 | +#: cp/decl.c:7001 | |
30895 | #, gcc-internal-format | |
30896 | msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in variable declaration" | |
30897 | msgstr "los especificadores de función %<const%> y %<volatile%> en %qD son inválidos en la declaración de variable" | |
30898 | ||
30899 | -#: cp/decl.c:6996 | |
30900 | +#: cp/decl.c:7006 | |
30901 | #, gcc-internal-format | |
30902 | msgid "%qD declared as a %<virtual%> parameter" | |
30903 | msgstr "%qD se declaró como un parámetro %<virtual%>" | |
30904 | ||
30905 | -#: cp/decl.c:6998 | |
30906 | +#: cp/decl.c:7008 | |
30907 | #, gcc-internal-format | |
30908 | msgid "%qD declared as an %<inline%> parameter" | |
30909 | msgstr "%qD se declaró como un parámetro %<inline%>" | |
30910 | ||
30911 | -#: cp/decl.c:7000 | |
30912 | +#: cp/decl.c:7010 | |
30913 | #, gcc-internal-format | |
30914 | msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in parameter declaration" | |
30915 | msgstr "los especificadores de función %<const%> y %<volatile%> en %qD son inválidos en la declaración de parámetro" | |
30916 | ||
30917 | -#: cp/decl.c:7005 | |
30918 | +#: cp/decl.c:7015 | |
30919 | #, gcc-internal-format | |
30920 | msgid "%qD declared as a %<virtual%> type" | |
30921 | msgstr "%qD se declaró como un tipo %<virtual%>" | |
30922 | ||
30923 | -#: cp/decl.c:7007 | |
30924 | +#: cp/decl.c:7017 | |
30925 | #, gcc-internal-format | |
30926 | msgid "%qD declared as an %<inline%> type" | |
30927 | msgstr "%qD se declaró como un tipo %<inline%>" | |
30928 | ||
30929 | -#: cp/decl.c:7009 | |
30930 | +#: cp/decl.c:7019 | |
30931 | #, gcc-internal-format | |
30932 | msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in type declaration" | |
30933 | msgstr "los especificadores de función %<const%> y %<volatile%> en %qD son inválidos en la declaración de tipo" | |
30934 | ||
30935 | -#: cp/decl.c:7014 | |
30936 | +#: cp/decl.c:7024 | |
30937 | #, gcc-internal-format | |
30938 | msgid "%qD declared as a %<virtual%> field" | |
30939 | msgstr "%qD se declaró como un campo %<virtual%>" | |
30940 | ||
30941 | -#: cp/decl.c:7016 | |
30942 | +#: cp/decl.c:7026 | |
30943 | #, gcc-internal-format | |
30944 | msgid "%qD declared as an %<inline%> field" | |
30945 | msgstr "%qD se declaró como un campo %<inline%>" | |
30946 | ||
30947 | -#: cp/decl.c:7018 | |
30948 | +#: cp/decl.c:7028 | |
30949 | #, gcc-internal-format | |
30950 | msgid "%<const%> and %<volatile%> function specifiers on %qD invalid in field declaration" | |
30951 | msgstr "los especificadores de función %<const%> y %<volatile%> en %qD son inválidos en la declaración de campo" | |
30952 | ||
30953 | -#: cp/decl.c:7025 | |
30954 | +#: cp/decl.c:7035 | |
30955 | #, gcc-internal-format | |
30956 | msgid "%q+D declared as a friend" | |
30957 | msgstr "%q+D se declaró como friend" | |
30958 | ||
30959 | -#: cp/decl.c:7031 | |
30960 | +#: cp/decl.c:7041 | |
30961 | #, gcc-internal-format | |
30962 | msgid "%q+D declared with an exception specification" | |
30963 | msgstr "%q+D se declaró con una especificación de excepción" | |
30964 | ||
30965 | -#: cp/decl.c:7065 | |
30966 | +#: cp/decl.c:7075 | |
30967 | #, gcc-internal-format | |
30968 | msgid "definition of %qD is not in namespace enclosing %qT" | |
30969 | msgstr "la definición de %qD no está en un espacio de nombres que contenga a %qT" | |
30970 | ||
30971 | -#: cp/decl.c:7105 | |
30972 | +#: cp/decl.c:7115 | |
30973 | #, gcc-internal-format | |
30974 | msgid "static member function %q#D declared with type qualifiers" | |
30975 | msgstr "la función miembro static %q#D se declara con calificadores de tipo" | |
30976 | ||
30977 | -#: cp/decl.c:7204 | |
30978 | +#: cp/decl.c:7214 | |
30979 | #, gcc-internal-format | |
30980 | msgid "defining explicit specialization %qD in friend declaration" | |
30981 | msgstr "definiendo la especialización explícita %qD en la declaración friend" | |
30982 | ||
30983 | #. Something like `template <class T> friend void f<T>()'. | |
30984 | -#: cp/decl.c:7214 | |
30985 | +#: cp/decl.c:7224 | |
30986 | #, gcc-internal-format | |
30987 | msgid "invalid use of template-id %qD in declaration of primary template" | |
30988 | msgstr "uso inválido del id de plantilla %qD en la declaración de la plantilla primaria" | |
30989 | ||
30990 | -#: cp/decl.c:7244 | |
30991 | +#: cp/decl.c:7254 | |
30992 | #, gcc-internal-format | |
30993 | msgid "default arguments are not allowed in declaration of friend template specialization %qD" | |
30994 | msgstr "no se permiten los argumentos por defecto en la declaración de la especialización friend de la plantilla %qD" | |
30995 | ||
30996 | -#: cp/decl.c:7252 | |
30997 | +#: cp/decl.c:7262 | |
30998 | #, gcc-internal-format | |
30999 | msgid "%<inline%> is not allowed in declaration of friend template specialization %qD" | |
31000 | msgstr "no se permite %<inline%> en la declaración de la especialización friend de la plantilla %qD" | |
31001 | ||
31002 | -#: cp/decl.c:7294 | |
31003 | +#: cp/decl.c:7304 | |
31004 | #, gcc-internal-format | |
31005 | msgid "cannot declare %<::main%> to be a template" | |
31006 | msgstr "no se puede declarar %<::main%> como plantilla" | |
31007 | ||
31008 | -#: cp/decl.c:7296 | |
31009 | +#: cp/decl.c:7306 | |
31010 | #, gcc-internal-format | |
31011 | msgid "cannot declare %<::main%> to be inline" | |
31012 | msgstr "no se puede declarar %<::main%> como inline" | |
31013 | ||
31014 | -#: cp/decl.c:7298 | |
31015 | +#: cp/decl.c:7308 | |
31016 | #, gcc-internal-format | |
31017 | msgid "cannot declare %<::main%> to be static" | |
31018 | msgstr "no se puede declarar %<::main%> como static" | |
31019 | ||
31020 | -#: cp/decl.c:7326 | |
31021 | +#: cp/decl.c:7336 | |
31022 | #, gcc-internal-format | |
31023 | msgid "anonymous type with no linkage used to declare function %q#D with linkage" | |
31024 | msgstr "se usó un tipo anónimo sin enlace para declarar la función %q#D con enlace" | |
31025 | ||
31026 | -#: cp/decl.c:7330 cp/decl.c:7687 cp/decl2.c:3673 | |
31027 | +#: cp/decl.c:7340 cp/decl.c:7697 cp/decl2.c:3673 | |
31028 | #, gcc-internal-format | |
31029 | msgid "%q+#D does not refer to the unqualified type, so it is not used for linkage" | |
31030 | msgstr "%q+#D no se refiere al tipo sin calificar, así que no se usa para el enlace" | |
31031 | ||
31032 | -#: cp/decl.c:7336 | |
31033 | +#: cp/decl.c:7346 | |
31034 | #, gcc-internal-format | |
31035 | msgid "type %qT with no linkage used to declare function %q#D with linkage" | |
31036 | msgstr "se usó el tipo %qT sin enlace para declarar la función %q#D con enlace" | |
31037 | ||
31038 | -#: cp/decl.c:7358 | |
31039 | +#: cp/decl.c:7368 | |
31040 | #, gcc-internal-format | |
31041 | msgid "static member function %qD cannot have cv-qualifier" | |
31042 | msgstr "la función miembro static %qD no puede tener calificador-cv" | |
31043 | ||
31044 | -#: cp/decl.c:7359 | |
31045 | +#: cp/decl.c:7369 | |
31046 | #, gcc-internal-format | |
31047 | msgid "non-member function %qD cannot have cv-qualifier" | |
31048 | msgstr "la función que no es miembro %qD no puede tener calificador-cv" | |
31049 | ||
31050 | -#: cp/decl.c:7375 | |
31051 | +#: cp/decl.c:7385 | |
31052 | #, gcc-internal-format | |
31053 | msgid "literal operator with C linkage" | |
31054 | msgstr "operador literal con enlace C" | |
31055 | ||
31056 | -#: cp/decl.c:7384 | |
31057 | +#: cp/decl.c:7394 | |
31058 | #, gcc-internal-format | |
31059 | msgid "%qD has invalid argument list" | |
31060 | msgstr "%qD tien una lista de argumentos inválida" | |
31061 | ||
31062 | -#: cp/decl.c:7392 | |
31063 | +#: cp/decl.c:7402 | |
31064 | #, gcc-internal-format | |
31065 | msgid "integer suffix %<%s%> shadowed by implementation" | |
31066 | msgstr "se oscurece el sufijo entero %<%s%> por la implementación" | |
31067 | ||
31068 | -#: cp/decl.c:7398 | |
31069 | +#: cp/decl.c:7408 | |
31070 | #, gcc-internal-format | |
31071 | msgid "floating point suffix %<%s%> shadowed by implementation" | |
31072 | msgstr "se oscurece el sufijo de coma flotante %<%s%> por la implementación" | |
31073 | ||
31074 | -#: cp/decl.c:7404 | |
31075 | +#: cp/decl.c:7414 | |
31076 | #, gcc-internal-format | |
31077 | msgid "%qD must be a non-member function" | |
31078 | msgstr "%qD debe ser una función que no sea miembro" | |
31079 | ||
31080 | -#: cp/decl.c:7448 | |
31081 | +#: cp/decl.c:7458 | |
31082 | #, gcc-internal-format | |
31083 | msgid "%<::main%> must return %<int%>" | |
31084 | msgstr "%<::main%> debe devolver %<int%>" | |
31085 | ||
31086 | -#: cp/decl.c:7490 | |
31087 | +#: cp/decl.c:7500 | |
31088 | #, gcc-internal-format | |
31089 | msgid "definition of implicitly-declared %qD" | |
31090 | msgstr "la definición de %qD declarado implícitamente" | |
31091 | ||
31092 | -#: cp/decl.c:7495 | |
31093 | +#: cp/decl.c:7505 | |
31094 | #, gcc-internal-format | |
31095 | msgid "definition of explicitly-defaulted %q+D" | |
31096 | msgstr "la definición de %qD explícitamente por defecto" | |
31097 | ||
31098 | -#: cp/decl.c:7496 | |
31099 | +#: cp/decl.c:7506 | |
31100 | #, gcc-internal-format | |
31101 | msgid "%q+#D explicitly defaulted here" | |
31102 | msgstr "%q+#D explícitamente por defecto aquí" | |
31103 | ||
31104 | -#: cp/decl.c:7513 cp/decl2.c:736 | |
31105 | +#: cp/decl.c:7523 cp/decl2.c:736 | |
31106 | #, gcc-internal-format | |
31107 | msgid "no %q#D member function declared in class %qT" | |
31108 | msgstr "no hay una función miembro %q#D declarada en la clase %qT" | |
31109 | @@ -27835,886 +28036,891 @@ | |
31110 | #. no linkage can only be used to declare extern "C" | |
31111 | #. entities. Since it's not always an error in the | |
31112 | #. ISO C++ 90 Standard, we only issue a warning. | |
31113 | -#: cp/decl.c:7684 | |
31114 | +#: cp/decl.c:7694 | |
31115 | #, gcc-internal-format | |
31116 | msgid "anonymous type with no linkage used to declare variable %q#D with linkage" | |
31117 | msgstr "se usó un tipo anónimo sin enlace para declarar la variable %q#D sin enlace" | |
31118 | ||
31119 | -#: cp/decl.c:7693 | |
31120 | +#: cp/decl.c:7703 | |
31121 | #, gcc-internal-format | |
31122 | msgid "type %qT with no linkage used to declare variable %q#D with linkage" | |
31123 | msgstr "se usó el tipo %qT sin enlace para declarar la variable %q#D con enlace" | |
31124 | ||
31125 | -#: cp/decl.c:7816 | |
31126 | +#: cp/decl.c:7826 | |
31127 | #, gcc-internal-format | |
31128 | msgid "in-class initialization of static data member %q#D of incomplete type" | |
31129 | msgstr "inicialización en la clase del miembro de datos static %q#D de tipo incompleto" | |
31130 | ||
31131 | -#: cp/decl.c:7820 | |
31132 | +#: cp/decl.c:7830 | |
31133 | #, gcc-internal-format | |
31134 | msgid "%<constexpr%> needed for in-class initialization of static data member %q#D of non-integral type" | |
31135 | msgstr "se necesita %<constexpr%> para la inicialización en la clase inválida del miembro de datos static %q#D de tipo que no es integral" | |
31136 | ||
31137 | -#: cp/decl.c:7823 | |
31138 | +#: cp/decl.c:7833 | |
31139 | #, gcc-internal-format | |
31140 | msgid "in-class initialization of static data member %q#D of non-literal type" | |
31141 | msgstr "inicialización en la clase del miembro de datos static %q#D de tipo que no es literal" | |
31142 | ||
31143 | -#: cp/decl.c:7836 | |
31144 | +#: cp/decl.c:7846 | |
31145 | #, gcc-internal-format | |
31146 | msgid "invalid in-class initialization of static data member of non-integral type %qT" | |
31147 | msgstr "inicialización en la clase inválida para el miembro de datos static de tipo %qT que no es integral" | |
31148 | ||
31149 | -#: cp/decl.c:7842 | |
31150 | +#: cp/decl.c:7852 | |
31151 | #, gcc-internal-format | |
31152 | msgid "ISO C++ forbids in-class initialization of non-const static member %qD" | |
31153 | msgstr "ISO C++ prohíbe la inicialización en la clase del miembro static %qD que no es constante" | |
31154 | ||
31155 | -#: cp/decl.c:7846 | |
31156 | +#: cp/decl.c:7856 | |
31157 | #, gcc-internal-format | |
31158 | msgid "ISO C++ forbids initialization of member constant %qD of non-integral type %qT" | |
31159 | msgstr "ISO C++ prohíbe la inicialización de la constante miembro %qD del tipo %qT que no es entero" | |
31160 | ||
31161 | -#: cp/decl.c:7923 cp/decl.c:7951 | |
31162 | +#: cp/decl.c:7933 cp/decl.c:7961 | |
31163 | #, gcc-internal-format | |
31164 | msgid "size of array %qD has non-integral type %qT" | |
31165 | msgstr "el tamaño de la matriz %qD tiene un tipo %qT que no es integral" | |
31166 | ||
31167 | -#: cp/decl.c:7926 cp/decl.c:7953 | |
31168 | +#: cp/decl.c:7936 cp/decl.c:7963 | |
31169 | #, gcc-internal-format | |
31170 | msgid "size of array has non-integral type %qT" | |
31171 | msgstr "el tamaño de la matriz tiene un tipo %qT que no es integral" | |
31172 | ||
31173 | -#: cp/decl.c:8003 | |
31174 | +#: cp/decl.c:8013 | |
31175 | #, gcc-internal-format | |
31176 | msgid "size of array %qD is negative" | |
31177 | msgstr "el tamaño de la matriz %qD es negativo" | |
31178 | ||
31179 | -#: cp/decl.c:8005 | |
31180 | +#: cp/decl.c:8015 | |
31181 | #, gcc-internal-format | |
31182 | msgid "size of array is negative" | |
31183 | msgstr "el tamaño de la matriz es negativo" | |
31184 | ||
31185 | -#: cp/decl.c:8019 | |
31186 | +#: cp/decl.c:8029 | |
31187 | #, gcc-internal-format | |
31188 | msgid "ISO C++ forbids zero-size array %qD" | |
31189 | msgstr "ISO C++ prohíbe la matriz %qD de tamaño cero" | |
31190 | ||
31191 | -#: cp/decl.c:8021 | |
31192 | +#: cp/decl.c:8031 | |
31193 | #, gcc-internal-format | |
31194 | msgid "ISO C++ forbids zero-size array" | |
31195 | msgstr "ISO C++ prohíbe matrices de tamaño cero" | |
31196 | ||
31197 | -#: cp/decl.c:8033 | |
31198 | +#: cp/decl.c:8043 | |
31199 | #, gcc-internal-format | |
31200 | msgid "size of array %qD is not an integral constant-expression" | |
31201 | msgstr "el tamaño de la matriz %qD no es una expresion constante integral" | |
31202 | ||
31203 | -#: cp/decl.c:8036 | |
31204 | +#: cp/decl.c:8046 | |
31205 | #, gcc-internal-format | |
31206 | msgid "size of array is not an integral constant-expression" | |
31207 | msgstr "el tamaño de la matriz no es una expresion constante integral" | |
31208 | ||
31209 | -#: cp/decl.c:8042 | |
31210 | +#: cp/decl.c:8052 | |
31211 | #, gcc-internal-format | |
31212 | msgid "ISO C++ forbids variable length array %qD" | |
31213 | msgstr "ISO C++ prohíbe la matriz %qD de longitud variable" | |
31214 | ||
31215 | -#: cp/decl.c:8044 | |
31216 | +#: cp/decl.c:8054 | |
31217 | #, gcc-internal-format | |
31218 | msgid "ISO C++ forbids variable length array" | |
31219 | msgstr "ISO C++ prohíbe las matrices de longitud variable" | |
31220 | ||
31221 | -#: cp/decl.c:8050 | |
31222 | +#: cp/decl.c:8060 | |
31223 | #, gcc-internal-format | |
31224 | msgid "variable length array %qD is used" | |
31225 | msgstr "se usa la matriz de longitud variable %qD" | |
31226 | ||
31227 | -#: cp/decl.c:8088 | |
31228 | +#: cp/decl.c:8098 | |
31229 | #, gcc-internal-format | |
31230 | msgid "overflow in array dimension" | |
31231 | msgstr "desbordamiento en la dimensión de la matriz" | |
31232 | ||
31233 | -#: cp/decl.c:8148 | |
31234 | +#: cp/decl.c:8158 | |
31235 | #, gcc-internal-format | |
31236 | msgid "declaration of %qD as array of %<auto%>" | |
31237 | msgstr "la declaración de %qD como una matriz %<auto%>" | |
31238 | ||
31239 | -#: cp/decl.c:8156 | |
31240 | +#: cp/decl.c:8166 | |
31241 | #, gcc-internal-format | |
31242 | msgid "declaration of %qD as array of void" | |
31243 | msgstr "la declaración de %qD como una matriz de voids" | |
31244 | ||
31245 | -#: cp/decl.c:8158 | |
31246 | +#: cp/decl.c:8168 | |
31247 | #, gcc-internal-format | |
31248 | msgid "creating array of void" | |
31249 | msgstr "se crea la matriz de voids" | |
31250 | ||
31251 | -#: cp/decl.c:8163 | |
31252 | +#: cp/decl.c:8173 | |
31253 | #, gcc-internal-format | |
31254 | msgid "declaration of %qD as array of functions" | |
31255 | msgstr "la declaración de %qD como una matriz de funciones" | |
31256 | ||
31257 | -#: cp/decl.c:8165 | |
31258 | +#: cp/decl.c:8175 | |
31259 | #, gcc-internal-format | |
31260 | msgid "creating array of functions" | |
31261 | msgstr "se crea la matriz de funciones" | |
31262 | ||
31263 | -#: cp/decl.c:8170 | |
31264 | +#: cp/decl.c:8180 | |
31265 | #, gcc-internal-format | |
31266 | msgid "declaration of %qD as array of references" | |
31267 | msgstr "la declaración de %qD como una matriz de referencias" | |
31268 | ||
31269 | -#: cp/decl.c:8172 | |
31270 | +#: cp/decl.c:8182 | |
31271 | #, gcc-internal-format | |
31272 | msgid "creating array of references" | |
31273 | msgstr "se crea la matriz de referencias" | |
31274 | ||
31275 | -#: cp/decl.c:8177 | |
31276 | +#: cp/decl.c:8187 | |
31277 | #, gcc-internal-format | |
31278 | msgid "declaration of %qD as array of function members" | |
31279 | msgstr "la declaración de %qD como una matriz de miembros de función" | |
31280 | ||
31281 | -#: cp/decl.c:8179 | |
31282 | +#: cp/decl.c:8189 | |
31283 | #, gcc-internal-format | |
31284 | msgid "creating array of function members" | |
31285 | msgstr "se crea la matriz de miembros de función" | |
31286 | ||
31287 | -#: cp/decl.c:8193 | |
31288 | +#: cp/decl.c:8203 | |
31289 | #, gcc-internal-format | |
31290 | msgid "declaration of %qD as multidimensional array must have bounds for all dimensions except the first" | |
31291 | msgstr "la declaración de %qD como una matriz multidimensional debe tener límites para todas las dimensiones excepto la primera" | |
31292 | ||
31293 | -#: cp/decl.c:8197 | |
31294 | +#: cp/decl.c:8207 | |
31295 | #, gcc-internal-format | |
31296 | msgid "multidimensional array must have bounds for all dimensions except the first" | |
31297 | msgstr "una matriz multidimensional debe tener límites para todas las dimensiones excepto para la primera" | |
31298 | ||
31299 | -#: cp/decl.c:8232 | |
31300 | +#: cp/decl.c:8242 | |
31301 | #, gcc-internal-format | |
31302 | msgid "return type specification for constructor invalid" | |
31303 | msgstr "la especificación del tipo de devolución para el constructor es inválida" | |
31304 | ||
31305 | -#: cp/decl.c:8242 | |
31306 | +#: cp/decl.c:8252 | |
31307 | #, gcc-internal-format | |
31308 | msgid "return type specification for destructor invalid" | |
31309 | msgstr "la especificación del tipo de devolución para el destructor es inválida" | |
31310 | ||
31311 | -#: cp/decl.c:8255 | |
31312 | +#: cp/decl.c:8265 | |
31313 | #, gcc-internal-format | |
31314 | msgid "return type specified for %<operator %T%>" | |
31315 | msgstr "se especificó un tipo de devolución para %<operator %T%>" | |
31316 | ||
31317 | -#: cp/decl.c:8277 | |
31318 | +#: cp/decl.c:8287 | |
31319 | #, gcc-internal-format | |
31320 | msgid "unnamed variable or field declared void" | |
31321 | msgstr "se declaró la variable o campo sin nombre como void" | |
31322 | ||
31323 | -#: cp/decl.c:8284 | |
31324 | +#: cp/decl.c:8294 | |
31325 | #, gcc-internal-format | |
31326 | msgid "variable or field declared void" | |
31327 | msgstr "se declaró la variable o campo como void" | |
31328 | ||
31329 | -#: cp/decl.c:8468 | |
31330 | +#: cp/decl.c:8478 | |
31331 | #, gcc-internal-format | |
31332 | msgid "invalid use of qualified-name %<::%D%>" | |
31333 | msgstr "uso inválido del nombre calificado %<::%D%>" | |
31334 | ||
31335 | -#: cp/decl.c:8471 | |
31336 | +#: cp/decl.c:8481 | |
31337 | #, gcc-internal-format | |
31338 | msgid "invalid use of qualified-name %<%T::%D%>" | |
31339 | msgstr "uso inválido del nombre calificado %<%T::%D%>" | |
31340 | ||
31341 | -#: cp/decl.c:8474 | |
31342 | +#: cp/decl.c:8484 | |
31343 | #, gcc-internal-format | |
31344 | msgid "invalid use of qualified-name %<%D::%D%>" | |
31345 | msgstr "uso inválido del nombre calificado %<%D::%D%>" | |
31346 | ||
31347 | -#: cp/decl.c:8483 | |
31348 | +#: cp/decl.c:8493 | |
31349 | #, gcc-internal-format | |
31350 | msgid "%q#T is not a class or a namespace" | |
31351 | msgstr "%q#T no es una clase o un espacio de nombres" | |
31352 | ||
31353 | -#: cp/decl.c:8491 | |
31354 | +#: cp/decl.c:8501 | |
31355 | #, gcc-internal-format | |
31356 | msgid "type %qT is not derived from type %qT" | |
31357 | msgstr "el tipo %qT no es derivado del tipo %T" | |
31358 | ||
31359 | # FIXME traducción | |
31360 | -#: cp/decl.c:8507 cp/decl.c:8599 cp/decl.c:8608 cp/decl.c:9951 | |
31361 | +#: cp/decl.c:8517 cp/decl.c:8609 cp/decl.c:8618 cp/decl.c:9961 | |
31362 | #, gcc-internal-format | |
31363 | msgid "declaration of %qD as non-function" | |
31364 | msgstr "la declaración de %qD como algo que no es función" | |
31365 | ||
31366 | # FIXME traducción | |
31367 | -#: cp/decl.c:8513 | |
31368 | +#: cp/decl.c:8523 | |
31369 | #, gcc-internal-format | |
31370 | msgid "declaration of %qD as non-member" | |
31371 | msgstr "declaración de %qD como algo que no es miembro" | |
31372 | ||
31373 | -#: cp/decl.c:8544 | |
31374 | +#: cp/decl.c:8554 | |
31375 | #, gcc-internal-format | |
31376 | msgid "declarator-id missing; using reserved word %qD" | |
31377 | msgstr "falta el id del declarador; se utiliza la palabra reservada %qD" | |
31378 | ||
31379 | -#: cp/decl.c:8591 | |
31380 | +#: cp/decl.c:8601 | |
31381 | #, gcc-internal-format | |
31382 | msgid "function definition does not declare parameters" | |
31383 | msgstr "la definición de la función no declara parámetros" | |
31384 | ||
31385 | -#: cp/decl.c:8616 | |
31386 | +#: cp/decl.c:8626 | |
31387 | #, gcc-internal-format | |
31388 | msgid "declaration of %qD as %<typedef%>" | |
31389 | msgstr "declaración de %qD como %<typedef%>" | |
31390 | ||
31391 | -#: cp/decl.c:8621 | |
31392 | +#: cp/decl.c:8631 | |
31393 | #, gcc-internal-format | |
31394 | msgid "declaration of %qD as parameter" | |
31395 | msgstr "la declaración de %qD como parámetro" | |
31396 | ||
31397 | -#: cp/decl.c:8654 | |
31398 | +#: cp/decl.c:8664 | |
31399 | #, gcc-internal-format | |
31400 | msgid "%<constexpr%> cannot appear in a typedef declaration" | |
31401 | msgstr "%<constexpr%> no puede aparecer en una declaración typedef" | |
31402 | ||
31403 | -#: cp/decl.c:8662 | |
31404 | +#: cp/decl.c:8672 | |
31405 | #, gcc-internal-format | |
31406 | msgid "two or more data types in declaration of %qs" | |
31407 | msgstr "dos o más tipos de datos en la declaración de %qs" | |
31408 | ||
31409 | -#: cp/decl.c:8668 | |
31410 | +#: cp/decl.c:8678 | |
31411 | #, gcc-internal-format | |
31412 | msgid "conflicting specifiers in declaration of %qs" | |
31413 | msgstr "especificadores en conflicto en la declaración de %qs" | |
31414 | ||
31415 | -#: cp/decl.c:8740 cp/decl.c:8743 cp/decl.c:8746 | |
31416 | +#: cp/decl.c:8750 cp/decl.c:8753 cp/decl.c:8756 | |
31417 | #, gcc-internal-format | |
31418 | msgid "ISO C++ forbids declaration of %qs with no type" | |
31419 | msgstr "ISO C++ prohíbe la declaración de %qs sin tipo" | |
31420 | ||
31421 | -#: cp/decl.c:8757 | |
31422 | +#: cp/decl.c:8767 | |
31423 | #, gcc-internal-format | |
31424 | msgid "%<__int128%> is not supported by this target" | |
31425 | msgstr "no se admite %<__int128%> en este objetivo" | |
31426 | ||
31427 | -#: cp/decl.c:8762 | |
31428 | +#: cp/decl.c:8772 | |
31429 | #, gcc-internal-format | |
31430 | msgid "ISO C++ does not support %<__int128%> for %qs" | |
31431 | msgstr "ISO C++ no admite %<__int128%> para %qs" | |
31432 | ||
31433 | -#: cp/decl.c:8783 cp/decl.c:8803 | |
31434 | +#: cp/decl.c:8793 cp/decl.c:8813 | |
31435 | #, gcc-internal-format | |
31436 | msgid "%<signed%> or %<unsigned%> invalid for %qs" | |
31437 | msgstr "%<signed%> o %<unsigned%> inválido para %qs" | |
31438 | ||
31439 | -#: cp/decl.c:8785 | |
31440 | +#: cp/decl.c:8795 | |
31441 | #, gcc-internal-format | |
31442 | msgid "%<signed%> and %<unsigned%> specified together for %qs" | |
31443 | msgstr "%<signed%> y %<unsigned%> se especificaron juntos para %qs" | |
31444 | ||
31445 | -#: cp/decl.c:8787 | |
31446 | +#: cp/decl.c:8797 | |
31447 | #, gcc-internal-format | |
31448 | msgid "%<long long%> invalid for %qs" | |
31449 | msgstr "%<long long%> inválido para %qs" | |
31450 | ||
31451 | -#: cp/decl.c:8789 | |
31452 | +#: cp/decl.c:8799 | |
31453 | #, gcc-internal-format | |
31454 | msgid "%<long%> invalid for %qs" | |
31455 | msgstr "%<long%> inválido para %qs" | |
31456 | ||
31457 | -#: cp/decl.c:8791 | |
31458 | +#: cp/decl.c:8801 | |
31459 | #, gcc-internal-format | |
31460 | msgid "%<short%> invalid for %qs" | |
31461 | msgstr "%<short%> inválido para %qs" | |
31462 | ||
31463 | -#: cp/decl.c:8793 | |
31464 | +#: cp/decl.c:8803 | |
31465 | #, gcc-internal-format | |
31466 | msgid "%<long%> or %<short%> invalid for %qs" | |
31467 | msgstr "%<long%> o %<short%> inválidos para %qs" | |
31468 | ||
31469 | -#: cp/decl.c:8795 | |
31470 | +#: cp/decl.c:8805 | |
31471 | #, gcc-internal-format | |
31472 | msgid "%<long%>, %<int%>, %<short%>, or %<char%> invalid for %qs" | |
31473 | msgstr "%<long%>, %<int%>, %<short%>, o %<char%> inválido para %qs" | |
31474 | ||
31475 | -#: cp/decl.c:8797 | |
31476 | +#: cp/decl.c:8807 | |
31477 | #, gcc-internal-format | |
31478 | msgid "%<long%> or %<short%> specified with char for %qs" | |
31479 | msgstr "se especificó %<long%> o %<short%> con char para %qs" | |
31480 | ||
31481 | -#: cp/decl.c:8799 | |
31482 | +#: cp/decl.c:8809 | |
31483 | #, gcc-internal-format | |
31484 | msgid "%<long%> and %<short%> specified together for %qs" | |
31485 | msgstr "%<long%> y %<short%> se especificaron juntos para %qs" | |
31486 | ||
31487 | -#: cp/decl.c:8805 | |
31488 | +#: cp/decl.c:8815 | |
31489 | #, gcc-internal-format | |
31490 | msgid "%<short%> or %<long%> invalid for %qs" | |
31491 | msgstr "%<short%> o %<long%> inválidos para %qs" | |
31492 | ||
31493 | -#: cp/decl.c:8813 | |
31494 | +#: cp/decl.c:8823 | |
31495 | #, gcc-internal-format | |
31496 | msgid "long, short, signed or unsigned used invalidly for %qs" | |
31497 | msgstr "uso inválido de long, short, signed ó unsigned para %qs" | |
31498 | ||
31499 | -#: cp/decl.c:8881 | |
31500 | +#: cp/decl.c:8891 | |
31501 | #, gcc-internal-format | |
31502 | msgid "complex invalid for %qs" | |
31503 | msgstr "complex inválido para %qs" | |
31504 | ||
31505 | -#: cp/decl.c:8909 | |
31506 | +#: cp/decl.c:8919 | |
31507 | #, gcc-internal-format | |
31508 | msgid "qualifiers are not allowed on declaration of %<operator %T%>" | |
31509 | msgstr "no se permiten calificadores en la declaración de %<operator %T%>" | |
31510 | ||
31511 | -#: cp/decl.c:8930 | |
31512 | +#: cp/decl.c:8940 | |
31513 | #, gcc-internal-format | |
31514 | msgid "member %qD cannot be declared both virtual and static" | |
31515 | msgstr "el miembro %qD no se puede declarar como virtual y static al mismo tiempo" | |
31516 | ||
31517 | -#: cp/decl.c:8938 | |
31518 | +#: cp/decl.c:8948 | |
31519 | #, gcc-internal-format | |
31520 | msgid "%<%T::%D%> is not a valid declarator" | |
31521 | msgstr "%<%T::%D%> no es un declarador válido" | |
31522 | ||
31523 | -#: cp/decl.c:8947 | |
31524 | +#: cp/decl.c:8957 | |
31525 | #, gcc-internal-format | |
31526 | msgid "typedef declaration invalid in parameter declaration" | |
31527 | msgstr "declaración typedef inválida en la declaración de parámetros" | |
31528 | ||
31529 | -#: cp/decl.c:8952 | |
31530 | +#: cp/decl.c:8962 | |
31531 | #, gcc-internal-format | |
31532 | msgid "storage class specified for template parameter %qs" | |
31533 | msgstr "se especificó una clase de almacenamiento para el parámetro de plantilla %qs" | |
31534 | ||
31535 | -#: cp/decl.c:8958 | |
31536 | +#: cp/decl.c:8968 | |
31537 | #, gcc-internal-format | |
31538 | msgid "storage class specifiers invalid in parameter declarations" | |
31539 | msgstr "especificadores de clase de almacenamiento inválidos en las declaraciones de parámetros" | |
31540 | ||
31541 | -#: cp/decl.c:8964 | |
31542 | +#: cp/decl.c:8974 | |
31543 | #, gcc-internal-format | |
31544 | msgid "a parameter cannot be declared %<constexpr%>" | |
31545 | msgstr "un parámetro no se puede declarar %<constexpr%>" | |
31546 | ||
31547 | -#: cp/decl.c:8973 | |
31548 | +#: cp/decl.c:8983 | |
31549 | #, gcc-internal-format | |
31550 | msgid "%<virtual%> outside class declaration" | |
31551 | msgstr "declaración de clase fuera de %<virtual%>" | |
31552 | ||
31553 | -#: cp/decl.c:8991 | |
31554 | +#: cp/decl.c:9001 | |
31555 | #, gcc-internal-format | |
31556 | msgid "multiple storage classes in declaration of %qs" | |
31557 | msgstr "múltiples clases de almacenamiento en la declaración de %qs" | |
31558 | ||
31559 | -#: cp/decl.c:9014 | |
31560 | +#: cp/decl.c:9024 | |
31561 | #, gcc-internal-format | |
31562 | msgid "storage class specified for %qs" | |
31563 | msgstr "se especificó una clase de almacenamiento para %qs" | |
31564 | ||
31565 | -#: cp/decl.c:9018 | |
31566 | +#: cp/decl.c:9028 | |
31567 | #, gcc-internal-format | |
31568 | msgid "storage class specified for parameter %qs" | |
31569 | msgstr "se especificó una clase de almacenamiento para el parámetro %qs" | |
31570 | ||
31571 | -#: cp/decl.c:9031 | |
31572 | +#: cp/decl.c:9041 | |
31573 | #, gcc-internal-format | |
31574 | msgid "nested function %qs declared %<extern%>" | |
31575 | msgstr "la función anidada %qs se declaró %<extern%>" | |
31576 | ||
31577 | -#: cp/decl.c:9035 | |
31578 | +#: cp/decl.c:9045 | |
31579 | #, gcc-internal-format | |
31580 | msgid "top-level declaration of %qs specifies %<auto%>" | |
31581 | msgstr "la declaración del nivel superior de %qs especifica %<auto%>" | |
31582 | ||
31583 | -#: cp/decl.c:9041 | |
31584 | +#: cp/decl.c:9051 | |
31585 | #, gcc-internal-format | |
31586 | msgid "function-scope %qs implicitly auto and declared %<__thread%>" | |
31587 | msgstr "el ámbito de la función %qs es implícitamente auto y declarado %<__thread%>" | |
31588 | ||
31589 | -#: cp/decl.c:9048 | |
31590 | +#: cp/decl.c:9058 | |
31591 | #, gcc-internal-format | |
31592 | msgid "storage class specifiers invalid in friend function declarations" | |
31593 | msgstr "especificadores de clase de almacenamiento inválidos en las declaraciones de funciones friend" | |
31594 | ||
31595 | -#: cp/decl.c:9142 | |
31596 | +#: cp/decl.c:9152 | |
31597 | #, gcc-internal-format | |
31598 | msgid "%qs declared as function returning a function" | |
31599 | msgstr "%qs que se declaró como función devuelve una función" | |
31600 | ||
31601 | -#: cp/decl.c:9147 | |
31602 | +#: cp/decl.c:9157 | |
31603 | #, gcc-internal-format | |
31604 | msgid "%qs declared as function returning an array" | |
31605 | msgstr "%qs que se declaró como función devuelve una matriz" | |
31606 | ||
31607 | -#: cp/decl.c:9173 | |
31608 | +#: cp/decl.c:9183 | |
31609 | #, gcc-internal-format | |
31610 | msgid "%qs function uses %<auto%> type specifier without trailing return type" | |
31611 | msgstr "la función %qs usa el especificador de tipo %<auto%> sin un tipo de devolución trailing" | |
31612 | ||
31613 | -#: cp/decl.c:9179 | |
31614 | +#: cp/decl.c:9189 | |
31615 | #, gcc-internal-format | |
31616 | msgid "%qs function with trailing return type has %qT as its type rather than plain %<auto%>" | |
31617 | msgstr "la función %qs con tipo de devolución trailing tiene %qT como su tipo en lugar de un simple %<auto%>" | |
31618 | ||
31619 | #. Not using maybe_warn_cpp0x because this should | |
31620 | #. always be an error. | |
31621 | -#: cp/decl.c:9190 | |
31622 | +#: cp/decl.c:9200 | |
31623 | #, gcc-internal-format | |
31624 | msgid "trailing return type only available with -std=c++11 or -std=gnu++11" | |
31625 | msgstr "el tipo de devolución trailing sólo está disponible con -std=c++11 o -std=gnu++11" | |
31626 | ||
31627 | -#: cp/decl.c:9193 | |
31628 | +#: cp/decl.c:9203 | |
31629 | #, gcc-internal-format | |
31630 | msgid "%qs function with trailing return type not declared with %<auto%> type specifier" | |
31631 | msgstr "no se declaró la función %qs con tipo de devolución trailing con el especificador de tipo %<auto%>" | |
31632 | ||
31633 | -#: cp/decl.c:9226 | |
31634 | +#: cp/decl.c:9236 | |
31635 | #, gcc-internal-format | |
31636 | msgid "destructor cannot be static member function" | |
31637 | msgstr "el destructor no puede ser una función miembro de tipo static" | |
31638 | ||
31639 | -#: cp/decl.c:9227 | |
31640 | +#: cp/decl.c:9237 | |
31641 | #, gcc-internal-format | |
31642 | msgid "constructor cannot be static member function" | |
31643 | msgstr "el constructor no puede ser una función miembro de tipo static" | |
31644 | ||
31645 | -#: cp/decl.c:9231 | |
31646 | +#: cp/decl.c:9241 | |
31647 | #, gcc-internal-format | |
31648 | msgid "destructors may not be cv-qualified" | |
31649 | msgstr "los destructores no pueden ser cv-calificados" | |
31650 | ||
31651 | -#: cp/decl.c:9232 | |
31652 | +#: cp/decl.c:9242 | |
31653 | #, gcc-internal-format | |
31654 | msgid "constructors may not be cv-qualified" | |
31655 | msgstr "los constructores tal vez no sean cv-calificados" | |
31656 | ||
31657 | -#: cp/decl.c:9249 | |
31658 | +#: cp/decl.c:9259 | |
31659 | #, gcc-internal-format | |
31660 | msgid "constructors cannot be declared virtual" | |
31661 | msgstr "los constructores no se pueden declarar virtual" | |
31662 | ||
31663 | -#: cp/decl.c:9262 | |
31664 | +#: cp/decl.c:9272 | |
31665 | #, gcc-internal-format | |
31666 | msgid "can%'t initialize friend function %qs" | |
31667 | msgstr "no se puede inicializar la función friend %qs" | |
31668 | ||
31669 | #. Cannot be both friend and virtual. | |
31670 | -#: cp/decl.c:9266 | |
31671 | +#: cp/decl.c:9276 | |
31672 | #, gcc-internal-format | |
31673 | msgid "virtual functions cannot be friends" | |
31674 | msgstr "las funciones virtual no pueden ser friend" | |
31675 | ||
31676 | -#: cp/decl.c:9270 | |
31677 | +#: cp/decl.c:9280 | |
31678 | #, gcc-internal-format | |
31679 | msgid "friend declaration not in class definition" | |
31680 | msgstr "la declaración friend no está en una definición de clase" | |
31681 | ||
31682 | -#: cp/decl.c:9272 | |
31683 | +#: cp/decl.c:9282 | |
31684 | #, gcc-internal-format | |
31685 | msgid "can%'t define friend function %qs in a local class definition" | |
31686 | msgstr "no se puede definir la función friend %qs en una definición de clase local" | |
31687 | ||
31688 | -#: cp/decl.c:9293 | |
31689 | +#: cp/decl.c:9303 | |
31690 | #, gcc-internal-format | |
31691 | msgid "destructors may not have parameters" | |
31692 | msgstr "los destructores no pueden tener parámetros" | |
31693 | ||
31694 | -#: cp/decl.c:9312 | |
31695 | +#: cp/decl.c:9322 | |
31696 | #, gcc-internal-format | |
31697 | msgid "cannot declare pointer to %q#T" | |
31698 | msgstr "no se puede declarar el puntero a %q#T" | |
31699 | ||
31700 | -#: cp/decl.c:9325 cp/decl.c:9332 | |
31701 | +#: cp/decl.c:9335 cp/decl.c:9342 | |
31702 | #, gcc-internal-format | |
31703 | msgid "cannot declare reference to %q#T" | |
31704 | msgstr "no se puede declarar la referencia a %q#T" | |
31705 | ||
31706 | -#: cp/decl.c:9334 | |
31707 | +#: cp/decl.c:9344 | |
31708 | #, gcc-internal-format | |
31709 | msgid "cannot declare pointer to %q#T member" | |
31710 | msgstr "no se puede declarar el puntero al miembro %q#T" | |
31711 | ||
31712 | -#: cp/decl.c:9357 | |
31713 | +#: cp/decl.c:9367 | |
31714 | #, gcc-internal-format | |
31715 | msgid "cannot declare reference to qualified function type %qT" | |
31716 | msgstr "no se puede declarar la referencia para el tipo de función calificado %qT" | |
31717 | ||
31718 | -#: cp/decl.c:9358 | |
31719 | +#: cp/decl.c:9368 | |
31720 | #, gcc-internal-format | |
31721 | msgid "cannot declare pointer to qualified function type %qT" | |
31722 | msgstr "no se puede declarar el puntero para el tipo de función calificado %qT" | |
31723 | ||
31724 | -#: cp/decl.c:9432 | |
31725 | +#: cp/decl.c:9442 | |
31726 | #, gcc-internal-format | |
31727 | msgid "cannot declare reference to %q#T, which is not a typedef or a template type argument" | |
31728 | msgstr "no se puede declarar la referencia a %q#T, el cual no es una definición de tipo o un argumento de tipo de plantilla" | |
31729 | ||
31730 | -#: cp/decl.c:9485 | |
31731 | +#: cp/decl.c:9495 | |
31732 | #, gcc-internal-format | |
31733 | msgid "both %<const%> and %<constexpr%> cannot be used here" | |
31734 | msgstr "no se pueden usar aquí %<const%> ni %<constexpr%>" | |
31735 | ||
31736 | -#: cp/decl.c:9487 | |
31737 | +#: cp/decl.c:9497 | |
31738 | #, gcc-internal-format | |
31739 | msgid "both %<volatile%> and %<constexpr%> cannot be used here" | |
31740 | msgstr "no se pueden usar aquí %<volatile%> ni %<constexpr%>" | |
31741 | ||
31742 | -#: cp/decl.c:9499 | |
31743 | +#: cp/decl.c:9509 | |
31744 | #, gcc-internal-format | |
31745 | msgid "template-id %qD used as a declarator" | |
31746 | msgstr "el id de plantilla %qD se usa como un declarador" | |
31747 | ||
31748 | -#: cp/decl.c:9550 | |
31749 | +#: cp/decl.c:9560 | |
31750 | #, gcc-internal-format | |
31751 | msgid "member functions are implicitly friends of their class" | |
31752 | msgstr "las funciones miembros son implícitamente friends de su clase" | |
31753 | ||
31754 | -#: cp/decl.c:9555 | |
31755 | +#: cp/decl.c:9565 | |
31756 | #, gcc-internal-format | |
31757 | msgid "extra qualification %<%T::%> on member %qs" | |
31758 | msgstr "calificación extra %<%T::%> en el miembro %qs" | |
31759 | ||
31760 | -#: cp/decl.c:9585 | |
31761 | +#: cp/decl.c:9595 | |
31762 | #, gcc-internal-format | |
31763 | msgid "cannot define member function %<%T::%s%> within %<%T%>" | |
31764 | msgstr "no se puede definir la función miembro %<%T::%s%> dentro de %<%T%>" | |
31765 | ||
31766 | -#: cp/decl.c:9587 | |
31767 | +#: cp/decl.c:9597 | |
31768 | #, gcc-internal-format | |
31769 | msgid "cannot declare member function %<%T::%s%> within %<%T%>" | |
31770 | msgstr "no se puede declarar la función miembro %<%T::%s%> dentro de %<%T%>" | |
31771 | ||
31772 | -#: cp/decl.c:9596 | |
31773 | +#: cp/decl.c:9606 | |
31774 | #, gcc-internal-format | |
31775 | msgid "cannot declare member %<%T::%s%> within %qT" | |
31776 | msgstr "no se puede declarar el miembro %<%T::%s%> dentro de %qT" | |
31777 | ||
31778 | -#: cp/decl.c:9622 | |
31779 | +#: cp/decl.c:9632 | |
31780 | #, gcc-internal-format | |
31781 | msgid "non-parameter %qs cannot be a parameter pack" | |
31782 | msgstr "%qs que no es parámetro no puede ser un paquete de parámetro" | |
31783 | ||
31784 | -#: cp/decl.c:9632 | |
31785 | +#: cp/decl.c:9642 | |
31786 | #, gcc-internal-format | |
31787 | msgid "size of array %qs is too large" | |
31788 | msgstr "el tamaño de la matriz %qs es demasiado grande" | |
31789 | ||
31790 | -#: cp/decl.c:9643 | |
31791 | +#: cp/decl.c:9653 | |
31792 | #, gcc-internal-format | |
31793 | msgid "data member may not have variably modified type %qT" | |
31794 | msgstr "los datos miembro pueden no tener el tipo modificado variablemente %qT" | |
31795 | ||
31796 | -#: cp/decl.c:9645 | |
31797 | +#: cp/decl.c:9655 | |
31798 | #, gcc-internal-format | |
31799 | msgid "parameter may not have variably modified type %qT" | |
31800 | msgstr "el parámetro puede no tener el tipo modificado variablemente %qT" | |
31801 | ||
31802 | #. [dcl.fct.spec] The explicit specifier shall only be used in | |
31803 | #. declarations of constructors within a class definition. | |
31804 | -#: cp/decl.c:9653 | |
31805 | +#: cp/decl.c:9663 | |
31806 | #, gcc-internal-format | |
31807 | msgid "only declarations of constructors can be %<explicit%>" | |
31808 | msgstr "solamente las declaraciones de constructores pueden ser %<explicit%>" | |
31809 | ||
31810 | -#: cp/decl.c:9661 | |
31811 | +#: cp/decl.c:9671 | |
31812 | #, gcc-internal-format | |
31813 | msgid "non-member %qs cannot be declared %<mutable%>" | |
31814 | msgstr "el no-miembro %qs no se puede declarar %<mutable%>" | |
31815 | ||
31816 | -#: cp/decl.c:9666 | |
31817 | +#: cp/decl.c:9676 | |
31818 | #, gcc-internal-format | |
31819 | msgid "non-object member %qs cannot be declared %<mutable%>" | |
31820 | msgstr "el miembro que no es objeto %qs no se puede declarar %<mutable%>" | |
31821 | ||
31822 | -#: cp/decl.c:9672 | |
31823 | +#: cp/decl.c:9682 | |
31824 | #, gcc-internal-format | |
31825 | msgid "function %qs cannot be declared %<mutable%>" | |
31826 | msgstr "la función %qs no se puede declarar %<mutable%>" | |
31827 | ||
31828 | -#: cp/decl.c:9677 | |
31829 | +#: cp/decl.c:9687 | |
31830 | #, gcc-internal-format | |
31831 | msgid "static %qs cannot be declared %<mutable%>" | |
31832 | msgstr "static %qs no se puede declarar %<mutable%>" | |
31833 | ||
31834 | -#: cp/decl.c:9682 | |
31835 | +#: cp/decl.c:9692 | |
31836 | #, gcc-internal-format | |
31837 | msgid "const %qs cannot be declared %<mutable%>" | |
31838 | msgstr "const %qs no se puede declarar %<mutable%>" | |
31839 | ||
31840 | -#: cp/decl.c:9687 | |
31841 | +#: cp/decl.c:9697 | |
31842 | #, gcc-internal-format | |
31843 | msgid "reference %qs cannot be declared %<mutable%>" | |
31844 | msgstr "la referencia %qs no se puede declarar %<mutable%>" | |
31845 | ||
31846 | -#: cp/decl.c:9722 | |
31847 | +#: cp/decl.c:9732 | |
31848 | #, gcc-internal-format | |
31849 | msgid "typedef declared %<auto%>" | |
31850 | msgstr "la definición de tipo se declaró %<auto%>" | |
31851 | ||
31852 | -#: cp/decl.c:9732 | |
31853 | +#: cp/decl.c:9742 | |
31854 | #, gcc-internal-format | |
31855 | msgid "typedef name may not be a nested-name-specifier" | |
31856 | msgstr "el nombre del typedef puede no ser un especificador-de-nombre-anidado" | |
31857 | ||
31858 | -#: cp/decl.c:9750 | |
31859 | +#: cp/decl.c:9760 | |
31860 | #, gcc-internal-format | |
31861 | msgid "ISO C++ forbids nested type %qD with same name as enclosing class" | |
31862 | msgstr "ISO C++ prohíbe el tipo anidado %qD con el mismo nombre que la clase que lo contiene" | |
31863 | ||
31864 | -#: cp/decl.c:9852 | |
31865 | +#: cp/decl.c:9862 | |
31866 | #, gcc-internal-format | |
31867 | msgid "qualified function types cannot be used to declare static member functions" | |
31868 | msgstr "los tipos de función calificados no se pueden usar para declarar una función miembro estática" | |
31869 | ||
31870 | -#: cp/decl.c:9854 | |
31871 | +#: cp/decl.c:9864 | |
31872 | #, gcc-internal-format | |
31873 | msgid "qualified function types cannot be used to declare free functions" | |
31874 | msgstr "los tipos de función calificados no se pueden usar para declarar funciones libres" | |
31875 | ||
31876 | -#: cp/decl.c:9881 | |
31877 | +#: cp/decl.c:9891 | |
31878 | #, gcc-internal-format | |
31879 | msgid "type qualifiers specified for friend class declaration" | |
31880 | msgstr "se especificaron calificadores de tipo para la declaración de clase friend" | |
31881 | ||
31882 | -#: cp/decl.c:9886 | |
31883 | +#: cp/decl.c:9896 | |
31884 | #, gcc-internal-format | |
31885 | msgid "%<inline%> specified for friend class declaration" | |
31886 | msgstr "se especificó %<inline%> para la declaración de clase friend" | |
31887 | ||
31888 | -#: cp/decl.c:9894 | |
31889 | +#: cp/decl.c:9904 | |
31890 | #, gcc-internal-format | |
31891 | msgid "template parameters cannot be friends" | |
31892 | msgstr "los parámetros de la plantilla no pueden ser friends" | |
31893 | ||
31894 | -#: cp/decl.c:9896 | |
31895 | +#: cp/decl.c:9906 | |
31896 | #, gcc-internal-format | |
31897 | msgid "friend declaration requires class-key, i.e. %<friend class %T::%D%>" | |
31898 | msgstr "la declaración friend requere una llave de clase, p.e. %<friend class %T::%D%>" | |
31899 | ||
31900 | -#: cp/decl.c:9900 | |
31901 | +#: cp/decl.c:9910 | |
31902 | #, gcc-internal-format | |
31903 | msgid "friend declaration requires class-key, i.e. %<friend %#T%>" | |
31904 | msgstr "la declaración friend requiere una llave de clase, p.e. %<friend %#T%>" | |
31905 | ||
31906 | -#: cp/decl.c:9913 | |
31907 | +#: cp/decl.c:9923 | |
31908 | #, gcc-internal-format | |
31909 | msgid "trying to make class %qT a friend of global scope" | |
31910 | msgstr "se intenta hacer que la clase %qT sea un friend de ámbito global" | |
31911 | ||
31912 | -#: cp/decl.c:9931 | |
31913 | +#: cp/decl.c:9941 | |
31914 | #, gcc-internal-format | |
31915 | msgid "invalid qualifiers on non-member function type" | |
31916 | msgstr "calificadores inválidos en el tipo de función que no es miembro" | |
31917 | ||
31918 | -#: cp/decl.c:9941 | |
31919 | +#: cp/decl.c:9951 | |
31920 | #, gcc-internal-format | |
31921 | msgid "abstract declarator %qT used as declaration" | |
31922 | msgstr "el declarador abstracto %qT se usó como declaración" | |
31923 | ||
31924 | -#: cp/decl.c:9970 | |
31925 | +#: cp/decl.c:9980 | |
31926 | #, gcc-internal-format | |
31927 | msgid "cannot use %<::%> in parameter declaration" | |
31928 | msgstr "no se puede usar %<::%> en la declaración de parámetros" | |
31929 | ||
31930 | -#: cp/decl.c:9974 | |
31931 | +#: cp/decl.c:9984 | |
31932 | #, gcc-internal-format | |
31933 | msgid "parameter declared %<auto%>" | |
31934 | msgstr "el parámetro se declaró %<auto%>" | |
31935 | ||
31936 | -#: cp/decl.c:10016 | |
31937 | +#: cp/decl.c:10026 | |
31938 | #, gcc-internal-format | |
31939 | msgid "non-static data member declared %<auto%>" | |
31940 | msgstr "se declaró el miembro dato que no es static como %<auto%>" | |
31941 | ||
31942 | #. Something like struct S { int N::j; }; | |
31943 | -#: cp/decl.c:10038 | |
31944 | +#: cp/decl.c:10048 | |
31945 | #, gcc-internal-format | |
31946 | msgid "invalid use of %<::%>" | |
31947 | msgstr "uso inválido de %<::%>" | |
31948 | ||
31949 | -#: cp/decl.c:10060 | |
31950 | +#: cp/decl.c:10070 | |
31951 | #, gcc-internal-format | |
31952 | msgid "declaration of function %qD in invalid context" | |
31953 | msgstr "declaración de la función %qD en un contexto inválido" | |
31954 | ||
31955 | -#: cp/decl.c:10069 | |
31956 | +#: cp/decl.c:10079 | |
31957 | #, gcc-internal-format | |
31958 | msgid "function %qD declared virtual inside a union" | |
31959 | msgstr "la función %qD se declaró virtual dentro de un union" | |
31960 | ||
31961 | -#: cp/decl.c:10078 | |
31962 | +#: cp/decl.c:10088 | |
31963 | #, gcc-internal-format | |
31964 | msgid "%qD cannot be declared virtual, since it is always static" | |
31965 | msgstr "%qD no se puede declarar virtual, ya que siempre es static" | |
31966 | ||
31967 | -#: cp/decl.c:10094 | |
31968 | +#: cp/decl.c:10104 | |
31969 | #, gcc-internal-format | |
31970 | msgid "expected qualified name in friend declaration for destructor %qD" | |
31971 | msgstr "se esperaba un nombre calificado en la declaración friend para el destructor %qD" | |
31972 | ||
31973 | -#: cp/decl.c:10101 | |
31974 | +#: cp/decl.c:10111 | |
31975 | #, gcc-internal-format | |
31976 | msgid "declaration of %qD as member of %qT" | |
31977 | msgstr "declaración de %qD como miembro de %qT" | |
31978 | ||
31979 | -#: cp/decl.c:10107 | |
31980 | +#: cp/decl.c:10117 | |
31981 | #, gcc-internal-format | |
31982 | msgid "a destructor cannot be %<constexpr%>" | |
31983 | msgstr "un destructor no puede ser %<constexpr%>" | |
31984 | ||
31985 | -#: cp/decl.c:10113 | |
31986 | +#: cp/decl.c:10123 | |
31987 | #, gcc-internal-format | |
31988 | msgid "expected qualified name in friend declaration for constructor %qD" | |
31989 | msgstr "se esperaba un nombre calificado en la declaración friend para el constructor %qD" | |
31990 | ||
31991 | -#: cp/decl.c:10159 | |
31992 | +#: cp/decl.c:10169 | |
31993 | #, gcc-internal-format | |
31994 | msgid "field %qD has incomplete type" | |
31995 | msgstr "el campo %qD tiene tipo de dato incompleto" | |
31996 | ||
31997 | -#: cp/decl.c:10161 | |
31998 | +#: cp/decl.c:10171 | |
31999 | #, gcc-internal-format | |
32000 | msgid "name %qT has incomplete type" | |
32001 | msgstr "el nombre %qT tiene tipo de dato incompleto" | |
32002 | ||
32003 | -#: cp/decl.c:10170 | |
32004 | +#: cp/decl.c:10180 | |
32005 | #, gcc-internal-format | |
32006 | msgid " in instantiation of template %qT" | |
32007 | msgstr " en la instanciación de la plantilla %qT" | |
32008 | ||
32009 | -#: cp/decl.c:10179 | |
32010 | +#: cp/decl.c:10189 | |
32011 | #, gcc-internal-format | |
32012 | msgid "%qE is neither function nor member function; cannot be declared friend" | |
32013 | msgstr "%qE no es ni función ni función miembro; no se puede declarar friend" | |
32014 | ||
32015 | -#: cp/decl.c:10231 | |
32016 | +#: cp/decl.c:10241 | |
32017 | #, gcc-internal-format | |
32018 | msgid "constexpr static data member %qD must have an initializer" | |
32019 | msgstr "el miembro dato static constexpr %qD debe tener un inicializador" | |
32020 | ||
32021 | -#: cp/decl.c:10240 | |
32022 | +#: cp/decl.c:10250 | |
32023 | #, gcc-internal-format | |
32024 | msgid "non-static data member %qE declared %<constexpr%>" | |
32025 | msgstr "se declaró el miembro dato que no es static %qE como %<constexpr%>" | |
32026 | ||
32027 | -#: cp/decl.c:10290 | |
32028 | +#: cp/decl.c:10300 | |
32029 | #, gcc-internal-format | |
32030 | msgid "storage class %<auto%> invalid for function %qs" | |
32031 | msgstr "la clase de almacenamiento %<auto%> es inválida para la función %qs" | |
32032 | ||
32033 | -#: cp/decl.c:10292 | |
32034 | +#: cp/decl.c:10302 | |
32035 | #, gcc-internal-format | |
32036 | msgid "storage class %<register%> invalid for function %qs" | |
32037 | msgstr "la clase de almacenamiento %<register%> es inválida para la función %qs" | |
32038 | ||
32039 | -#: cp/decl.c:10294 | |
32040 | +#: cp/decl.c:10304 | |
32041 | #, gcc-internal-format | |
32042 | msgid "storage class %<__thread%> invalid for function %qs" | |
32043 | msgstr "la clase de almacenamiento %<__thread%> es inválida para la función %qs" | |
32044 | ||
32045 | -#: cp/decl.c:10297 | |
32046 | +#: cp/decl.c:10307 | |
32047 | #, gcc-internal-format | |
32048 | msgid "virt-specifiers in %qs not allowed outside a class definition" | |
32049 | msgstr "no se permiten los especificadores-virt en %qs fuera de una definición de clase" | |
32050 | ||
32051 | -#: cp/decl.c:10308 | |
32052 | +#: cp/decl.c:10318 | |
32053 | #, gcc-internal-format | |
32054 | msgid "%<static%> specified invalid for function %qs declared out of global scope" | |
32055 | msgstr "el especificador %<static%> es inválido para la función %qs declarada fuera del ámbito global" | |
32056 | ||
32057 | -#: cp/decl.c:10312 | |
32058 | +#: cp/decl.c:10322 | |
32059 | #, gcc-internal-format | |
32060 | msgid "%<inline%> specifier invalid for function %qs declared out of global scope" | |
32061 | msgstr "el especificador %<inline%> es inválido para la función %qs declarada fuera del ámbito global" | |
32062 | ||
32063 | -#: cp/decl.c:10320 | |
32064 | +#: cp/decl.c:10330 | |
32065 | #, gcc-internal-format | |
32066 | msgid "virtual non-class function %qs" | |
32067 | msgstr "función virtual %qs que no es clase" | |
32068 | ||
32069 | -#: cp/decl.c:10327 | |
32070 | +#: cp/decl.c:10337 | |
32071 | #, gcc-internal-format | |
32072 | msgid "%qs defined in a non-class scope" | |
32073 | msgstr "se definió %qs en un ámbito que no es una clase" | |
32074 | ||
32075 | -#: cp/decl.c:10328 | |
32076 | +#: cp/decl.c:10338 | |
32077 | #, gcc-internal-format | |
32078 | msgid "%qs declared in a non-class scope" | |
32079 | msgstr "se declaró %qs en un ámbito que no es una clase" | |
32080 | ||
32081 | -#: cp/decl.c:10356 | |
32082 | +#: cp/decl.c:10366 | |
32083 | #, gcc-internal-format | |
32084 | msgid "cannot declare member function %qD to have static linkage" | |
32085 | msgstr "no se puede declarar que la función miembro %qD tenga enlace estático" | |
32086 | ||
32087 | #. FIXME need arm citation | |
32088 | -#: cp/decl.c:10363 | |
32089 | +#: cp/decl.c:10373 | |
32090 | #, gcc-internal-format | |
32091 | msgid "cannot declare static function inside another function" | |
32092 | msgstr "no se puede declarar una función static dentro de otra función" | |
32093 | ||
32094 | -#: cp/decl.c:10393 | |
32095 | +#: cp/decl.c:10403 | |
32096 | #, gcc-internal-format | |
32097 | msgid "%<static%> may not be used when defining (as opposed to declaring) a static data member" | |
32098 | msgstr "%<static%> puede no ser utilizado cuando se define (opuesto a la declaración) un dato miembro static" | |
32099 | ||
32100 | -#: cp/decl.c:10400 | |
32101 | +#: cp/decl.c:10410 | |
32102 | #, gcc-internal-format | |
32103 | msgid "static member %qD declared %<register%>" | |
32104 | msgstr "se declaró el miembro static %qD como %<register%>" | |
32105 | ||
32106 | -#: cp/decl.c:10406 | |
32107 | +#: cp/decl.c:10416 | |
32108 | #, gcc-internal-format | |
32109 | msgid "cannot explicitly declare member %q#D to have extern linkage" | |
32110 | msgstr "no se puede declarar explícitamente que el miembro %q#D tenga un enlace externo" | |
32111 | ||
32112 | -#: cp/decl.c:10413 | |
32113 | +#: cp/decl.c:10423 | |
32114 | #, gcc-internal-format | |
32115 | msgid "declaration of constexpr variable %qD is not a definition" | |
32116 | msgstr "la declaración de la variable constexpr %qD no es una definición" | |
32117 | ||
32118 | -#: cp/decl.c:10426 | |
32119 | +#: cp/decl.c:10436 | |
32120 | #, gcc-internal-format | |
32121 | msgid "%qs initialized and declared %<extern%>" | |
32122 | msgstr "%qs inicializado y declarado como %<extern%>" | |
32123 | ||
32124 | -#: cp/decl.c:10430 | |
32125 | +#: cp/decl.c:10440 | |
32126 | #, gcc-internal-format | |
32127 | msgid "%qs has both %<extern%> and initializer" | |
32128 | msgstr "%qs tiene %<extern%> e inicializador al mismo tiempo" | |
32129 | ||
32130 | -#: cp/decl.c:10557 | |
32131 | +#: cp/decl.c:10568 | |
32132 | #, gcc-internal-format | |
32133 | msgid "default argument for %q#D has type %qT" | |
32134 | msgstr "el argumento por defecto de %q#D tiene tipo %qT" | |
32135 | ||
32136 | -#: cp/decl.c:10560 | |
32137 | +#: cp/decl.c:10571 | |
32138 | #, gcc-internal-format | |
32139 | msgid "default argument for parameter of type %qT has type %qT" | |
32140 | msgstr "el argumento por defecto para el parámetro del tipo %qT tiene el tipo %qT" | |
32141 | ||
32142 | -#: cp/decl.c:10576 | |
32143 | +#: cp/decl.c:10588 | |
32144 | #, gcc-internal-format | |
32145 | +msgid "default argument %qE uses %qD" | |
32146 | +msgstr "el argumento por defecto %qE usa %qD" | |
32147 | + | |
32148 | +#: cp/decl.c:10590 | |
32149 | +#, gcc-internal-format | |
32150 | msgid "default argument %qE uses local variable %qD" | |
32151 | msgstr "el argumento por defecto %qE usa la variable local %qD" | |
32152 | ||
32153 | -#: cp/decl.c:10664 | |
32154 | +#: cp/decl.c:10678 | |
32155 | #, gcc-internal-format | |
32156 | msgid "parameter %qD has Java class type" | |
32157 | msgstr "el parámetro %qD tiene tipo de clase Java" | |
32158 | ||
32159 | -#: cp/decl.c:10692 | |
32160 | +#: cp/decl.c:10706 | |
32161 | #, gcc-internal-format | |
32162 | msgid "parameter %qD invalidly declared method type" | |
32163 | msgstr "el parámetro %qD se declaró inválidamente como tipo de método" | |
32164 | ||
32165 | -#: cp/decl.c:10717 | |
32166 | +#: cp/decl.c:10731 | |
32167 | #, gcc-internal-format | |
32168 | msgid "parameter %qD includes pointer to array of unknown bound %qT" | |
32169 | msgstr "el parámetro %qD incluye un puntero a matriz %qT de límite desconocido" | |
32170 | ||
32171 | -#: cp/decl.c:10719 | |
32172 | +#: cp/decl.c:10733 | |
32173 | #, gcc-internal-format | |
32174 | msgid "parameter %qD includes reference to array of unknown bound %qT" | |
32175 | msgstr "el parámetro %qD incluye una referencia a matriz %qT de límite desconocido" | |
32176 | @@ -28734,170 +28940,170 @@ | |
32177 | #. or implicitly defined), there's no need to worry about their | |
32178 | #. existence. Theoretically, they should never even be | |
32179 | #. instantiated, but that's hard to forestall. | |
32180 | -#: cp/decl.c:10960 | |
32181 | +#: cp/decl.c:10974 | |
32182 | #, gcc-internal-format | |
32183 | msgid "invalid constructor; you probably meant %<%T (const %T&)%>" | |
32184 | msgstr "constructor inválido; tal vez quiso decir %<%T (const %T&)%>" | |
32185 | ||
32186 | -#: cp/decl.c:11082 | |
32187 | +#: cp/decl.c:11096 | |
32188 | #, gcc-internal-format | |
32189 | msgid "%qD may not be declared within a namespace" | |
32190 | msgstr "%qD no se puede declarar dentro de un espacio de nombres" | |
32191 | ||
32192 | -#: cp/decl.c:11087 | |
32193 | +#: cp/decl.c:11101 | |
32194 | #, gcc-internal-format | |
32195 | msgid "%qD may not be declared as static" | |
32196 | msgstr "%qD no se puede declarar como static" | |
32197 | ||
32198 | -#: cp/decl.c:11113 | |
32199 | +#: cp/decl.c:11127 | |
32200 | #, gcc-internal-format | |
32201 | msgid "%qD must be a nonstatic member function" | |
32202 | msgstr "%qD debe ser una función miembro que no sea static" | |
32203 | ||
32204 | -#: cp/decl.c:11122 | |
32205 | +#: cp/decl.c:11136 | |
32206 | #, gcc-internal-format | |
32207 | msgid "%qD must be either a non-static member function or a non-member function" | |
32208 | msgstr "%qD debe ser una función miembro que no sea static o una función que no sea miembro" | |
32209 | ||
32210 | -#: cp/decl.c:11144 | |
32211 | +#: cp/decl.c:11158 | |
32212 | #, gcc-internal-format | |
32213 | msgid "%qD must have an argument of class or enumerated type" | |
32214 | msgstr "%qD debe tener un argumento de tipo clase o enumerado" | |
32215 | ||
32216 | -#: cp/decl.c:11173 | |
32217 | +#: cp/decl.c:11187 | |
32218 | #, gcc-internal-format | |
32219 | msgid "conversion to a reference to void will never use a type conversion operator" | |
32220 | msgstr "la conversión a una referencia a void nunca usará un operador de conversión de tipo" | |
32221 | ||
32222 | -#: cp/decl.c:11175 | |
32223 | +#: cp/decl.c:11189 | |
32224 | #, gcc-internal-format | |
32225 | msgid "conversion to void will never use a type conversion operator" | |
32226 | msgstr "la conversión a void nunca usará un operador de conversión de tipo" | |
32227 | ||
32228 | -#: cp/decl.c:11182 | |
32229 | +#: cp/decl.c:11196 | |
32230 | #, gcc-internal-format | |
32231 | msgid "conversion to a reference to the same type will never use a type conversion operator" | |
32232 | msgstr "la conversión a una referencia al mismo tipo nunca usará un operador de conversión de tipo" | |
32233 | ||
32234 | -#: cp/decl.c:11184 | |
32235 | +#: cp/decl.c:11198 | |
32236 | #, gcc-internal-format | |
32237 | msgid "conversion to the same type will never use a type conversion operator" | |
32238 | msgstr "la conversión al mismo tipo nunca usará un operador de conversión de tipo" | |
32239 | ||
32240 | -#: cp/decl.c:11192 | |
32241 | +#: cp/decl.c:11206 | |
32242 | #, gcc-internal-format | |
32243 | msgid "conversion to a reference to a base class will never use a type conversion operator" | |
32244 | msgstr "la conversión a una referencia a una clase base nunca usará un operador de conversión de tipo" | |
32245 | ||
32246 | -#: cp/decl.c:11194 | |
32247 | +#: cp/decl.c:11208 | |
32248 | #, gcc-internal-format | |
32249 | msgid "conversion to a base class will never use a type conversion operator" | |
32250 | msgstr "la conversión a una clase base nunca usará un operador de conversión de tipo" | |
32251 | ||
32252 | #. 13.4.0.3 | |
32253 | -#: cp/decl.c:11203 | |
32254 | +#: cp/decl.c:11217 | |
32255 | #, gcc-internal-format | |
32256 | msgid "ISO C++ prohibits overloading operator ?:" | |
32257 | msgstr "ISO C++ prohíbe la sobrecarga del operador ?:" | |
32258 | ||
32259 | -#: cp/decl.c:11208 | |
32260 | +#: cp/decl.c:11222 | |
32261 | #, gcc-internal-format | |
32262 | msgid "%qD must not have variable number of arguments" | |
32263 | msgstr "%qD no debe tener un número variable de argumentos" | |
32264 | ||
32265 | -#: cp/decl.c:11259 | |
32266 | +#: cp/decl.c:11273 | |
32267 | #, gcc-internal-format | |
32268 | msgid "postfix %qD must take %<int%> as its argument" | |
32269 | msgstr "el postfijo %qD debe tomar %<int%> como su argumento" | |
32270 | ||
32271 | -#: cp/decl.c:11262 | |
32272 | +#: cp/decl.c:11276 | |
32273 | #, gcc-internal-format | |
32274 | msgid "postfix %qD must take %<int%> as its second argument" | |
32275 | msgstr "el postfijo %qD debe tomar %<int%> como su segundo argumento" | |
32276 | ||
32277 | -#: cp/decl.c:11270 | |
32278 | +#: cp/decl.c:11284 | |
32279 | #, gcc-internal-format | |
32280 | msgid "%qD must take either zero or one argument" | |
32281 | msgstr "%qD debe tomar cero o un argumentos" | |
32282 | ||
32283 | -#: cp/decl.c:11272 | |
32284 | +#: cp/decl.c:11286 | |
32285 | #, gcc-internal-format | |
32286 | msgid "%qD must take either one or two arguments" | |
32287 | msgstr "%qD debe tomar uno o dos argumentos" | |
32288 | ||
32289 | # En esta traducción se emplea 'devolver' por 'return'. Si embargo, aquí | |
32290 | # se cambió por cacofonía: no es agradable escuchar 'debe devolver'. cfuga | |
32291 | -#: cp/decl.c:11294 | |
32292 | +#: cp/decl.c:11308 | |
32293 | #, gcc-internal-format | |
32294 | msgid "prefix %qD should return %qT" | |
32295 | msgstr "el prefijo %qD debe regresar %qT" | |
32296 | ||
32297 | -#: cp/decl.c:11300 | |
32298 | +#: cp/decl.c:11314 | |
32299 | #, gcc-internal-format | |
32300 | msgid "postfix %qD should return %qT" | |
32301 | msgstr "el postfijo %qD debe regresar %qT" | |
32302 | ||
32303 | -#: cp/decl.c:11309 | |
32304 | +#: cp/decl.c:11323 | |
32305 | #, gcc-internal-format | |
32306 | msgid "%qD must take %<void%>" | |
32307 | msgstr "%qD debe tomar %<void%>" | |
32308 | ||
32309 | -#: cp/decl.c:11311 cp/decl.c:11320 | |
32310 | +#: cp/decl.c:11325 cp/decl.c:11334 | |
32311 | #, gcc-internal-format | |
32312 | msgid "%qD must take exactly one argument" | |
32313 | msgstr "%qD debe tomar un argumento exactamente" | |
32314 | ||
32315 | -#: cp/decl.c:11322 | |
32316 | +#: cp/decl.c:11336 | |
32317 | #, gcc-internal-format | |
32318 | msgid "%qD must take exactly two arguments" | |
32319 | msgstr "%qD debe tomar dos argumentos exactamente" | |
32320 | ||
32321 | -#: cp/decl.c:11331 | |
32322 | +#: cp/decl.c:11345 | |
32323 | #, gcc-internal-format | |
32324 | msgid "user-defined %qD always evaluates both arguments" | |
32325 | msgstr "el %qD definido por el usuario siempre evalúa ambos argumentos" | |
32326 | ||
32327 | -#: cp/decl.c:11345 | |
32328 | +#: cp/decl.c:11359 | |
32329 | #, gcc-internal-format | |
32330 | msgid "%qD should return by value" | |
32331 | msgstr "%qD debe devolver por valor" | |
32332 | ||
32333 | -#: cp/decl.c:11356 cp/decl.c:11361 | |
32334 | +#: cp/decl.c:11370 cp/decl.c:11375 | |
32335 | #, gcc-internal-format | |
32336 | msgid "%qD cannot have default arguments" | |
32337 | msgstr "%qD no puede tener argumentos por defecto" | |
32338 | ||
32339 | -#: cp/decl.c:11422 | |
32340 | +#: cp/decl.c:11436 | |
32341 | #, gcc-internal-format | |
32342 | msgid "using template type parameter %qT after %qs" | |
32343 | msgstr "usando el parámetro de tipo plantilla %qT después de %qs" | |
32344 | ||
32345 | -#: cp/decl.c:11444 | |
32346 | +#: cp/decl.c:11458 | |
32347 | #, gcc-internal-format | |
32348 | msgid "using alias template specialization %qT after %qs" | |
32349 | msgstr "se usa especialización de plantilla %qT alias después de %qs" | |
32350 | ||
32351 | -#: cp/decl.c:11447 | |
32352 | +#: cp/decl.c:11461 | |
32353 | #, gcc-internal-format | |
32354 | msgid "using typedef-name %qD after %qs" | |
32355 | msgstr "se usó el nombre de definición de tipo %qD después de %qs" | |
32356 | ||
32357 | -#: cp/decl.c:11449 | |
32358 | +#: cp/decl.c:11463 | |
32359 | #, gcc-internal-format | |
32360 | msgid "%qD has a previous declaration here" | |
32361 | msgstr "%qD tiene una declaración previa aquí" | |
32362 | ||
32363 | -#: cp/decl.c:11457 | |
32364 | +#: cp/decl.c:11471 | |
32365 | #, gcc-internal-format | |
32366 | msgid "%qT referred to as %qs" | |
32367 | msgstr "se refirió a %qT como %qs" | |
32368 | ||
32369 | -#: cp/decl.c:11458 cp/decl.c:11465 | |
32370 | +#: cp/decl.c:11472 cp/decl.c:11479 | |
32371 | #, gcc-internal-format | |
32372 | msgid "%q+T has a previous declaration here" | |
32373 | msgstr "%q+T tiene una declaración previa aquí" | |
32374 | ||
32375 | -#: cp/decl.c:11464 | |
32376 | +#: cp/decl.c:11478 | |
32377 | #, gcc-internal-format | |
32378 | msgid "%qT referred to as enum" | |
32379 | msgstr "se refirió a %qT como un enum" | |
32380 | @@ -28909,90 +29115,90 @@ | |
32381 | #. void f(class C); // No template header here | |
32382 | #. | |
32383 | #. then the required template argument is missing. | |
32384 | -#: cp/decl.c:11479 | |
32385 | +#: cp/decl.c:11493 | |
32386 | #, gcc-internal-format | |
32387 | msgid "template argument required for %<%s %T%>" | |
32388 | msgstr "se requiere un argumento de plantilla para %<%s %T%>" | |
32389 | ||
32390 | -#: cp/decl.c:11527 cp/name-lookup.c:3049 | |
32391 | +#: cp/decl.c:11541 cp/name-lookup.c:3049 | |
32392 | #, gcc-internal-format | |
32393 | msgid "%qD has the same name as the class in which it is declared" | |
32394 | msgstr "%qD tiene el mismo nombre que la clase en la cual se declaró" | |
32395 | ||
32396 | -#: cp/decl.c:11557 cp/name-lookup.c:2548 cp/name-lookup.c:3373 | |
32397 | +#: cp/decl.c:11571 cp/name-lookup.c:2548 cp/name-lookup.c:3373 | |
32398 | #: cp/name-lookup.c:3418 cp/parser.c:5054 cp/parser.c:20501 | |
32399 | #, gcc-internal-format | |
32400 | msgid "reference to %qD is ambiguous" | |
32401 | msgstr "la referencia a %qD es ambigua" | |
32402 | ||
32403 | -#: cp/decl.c:11669 | |
32404 | +#: cp/decl.c:11683 | |
32405 | #, gcc-internal-format | |
32406 | msgid "use of enum %q#D without previous declaration" | |
32407 | msgstr "uso del enum %q#D sin declaración previa" | |
32408 | ||
32409 | -#: cp/decl.c:11690 | |
32410 | +#: cp/decl.c:11704 | |
32411 | #, gcc-internal-format | |
32412 | msgid "redeclaration of %qT as a non-template" | |
32413 | msgstr "redeclaración de %qT como algo que no es plantilla" | |
32414 | ||
32415 | -#: cp/decl.c:11691 | |
32416 | +#: cp/decl.c:11705 | |
32417 | #, gcc-internal-format | |
32418 | msgid "previous declaration %q+D" | |
32419 | msgstr "declaración previa de %q+D" | |
32420 | ||
32421 | -#: cp/decl.c:11825 | |
32422 | +#: cp/decl.c:11839 | |
32423 | #, gcc-internal-format | |
32424 | msgid "derived union %qT invalid" | |
32425 | msgstr "union derivada %qT inválida" | |
32426 | ||
32427 | -#: cp/decl.c:11834 | |
32428 | +#: cp/decl.c:11848 | |
32429 | #, gcc-internal-format | |
32430 | msgid "Java class %qT cannot have multiple bases" | |
32431 | msgstr "la clase Java %qT no puede tener bases múltiples" | |
32432 | ||
32433 | -#: cp/decl.c:11845 | |
32434 | +#: cp/decl.c:11859 | |
32435 | #, gcc-internal-format | |
32436 | msgid "Java class %qT cannot have virtual bases" | |
32437 | msgstr "la clase Java %qT no puede tener bases virtuales" | |
32438 | ||
32439 | # No me gusta mucho esta traducción. Creo que es mejor | |
32440 | # "el tipo base %qT no es de tipo struct o clase". cfuga | |
32441 | -#: cp/decl.c:11865 | |
32442 | +#: cp/decl.c:11879 | |
32443 | #, gcc-internal-format | |
32444 | msgid "base type %qT fails to be a struct or class type" | |
32445 | msgstr "el tipo base %qT falla en ser un tipo struct o clase" | |
32446 | ||
32447 | -#: cp/decl.c:11898 | |
32448 | +#: cp/decl.c:11912 | |
32449 | #, gcc-internal-format | |
32450 | msgid "recursive type %qT undefined" | |
32451 | msgstr "tipo recursivo %qT sin definir" | |
32452 | ||
32453 | -#: cp/decl.c:11900 | |
32454 | +#: cp/decl.c:11914 | |
32455 | #, gcc-internal-format | |
32456 | msgid "duplicate base type %qT invalid" | |
32457 | msgstr "tipo base duplicado %qT inválido" | |
32458 | ||
32459 | -#: cp/decl.c:12024 | |
32460 | +#: cp/decl.c:12038 | |
32461 | #, gcc-internal-format | |
32462 | msgid "scoped/unscoped mismatch in enum %q#T" | |
32463 | msgstr "no coinciden scoped/unscoped en el enum %q#T" | |
32464 | ||
32465 | -#: cp/decl.c:12027 cp/decl.c:12035 cp/decl.c:12047 cp/parser.c:14514 | |
32466 | +#: cp/decl.c:12041 cp/decl.c:12049 cp/decl.c:12061 cp/parser.c:14514 | |
32467 | #, gcc-internal-format | |
32468 | msgid "previous definition here" | |
32469 | msgstr "la definición previa está aquí" | |
32470 | ||
32471 | -#: cp/decl.c:12032 | |
32472 | +#: cp/decl.c:12046 | |
32473 | #, gcc-internal-format | |
32474 | msgid "underlying type mismatch in enum %q#T" | |
32475 | msgstr "no coincide el tipo subyacente en el enum %q#T" | |
32476 | ||
32477 | -#: cp/decl.c:12044 | |
32478 | +#: cp/decl.c:12058 | |
32479 | #, gcc-internal-format | |
32480 | msgid "different underlying type in enum %q#T" | |
32481 | msgstr "tipos subyacentes diferentes en el enum %q#T" | |
32482 | ||
32483 | -#: cp/decl.c:12111 | |
32484 | +#: cp/decl.c:12125 | |
32485 | #, gcc-internal-format | |
32486 | msgid "underlying type %<%T%> of %<%T%> must be an integral type" | |
32487 | msgstr "el tipo subyacente %<%T%> de %<%T%> debe ser un tipo integral" | |
32488 | @@ -29001,72 +29207,72 @@ | |
32489 | #. | |
32490 | #. IF no integral type can represent all the enumerator values, the | |
32491 | #. enumeration is ill-formed. | |
32492 | -#: cp/decl.c:12245 | |
32493 | +#: cp/decl.c:12259 | |
32494 | #, gcc-internal-format | |
32495 | msgid "no integral type can represent all of the enumerator values for %qT" | |
32496 | msgstr "ningún tipo integral puede representar todos los valores de enumerador de %qT" | |
32497 | ||
32498 | -#: cp/decl.c:12380 | |
32499 | +#: cp/decl.c:12394 | |
32500 | #, gcc-internal-format | |
32501 | msgid "enumerator value for %qD is not an integer constant" | |
32502 | msgstr "el valor de enumerador para %qD no es una constante entera" | |
32503 | ||
32504 | -#: cp/decl.c:12430 | |
32505 | +#: cp/decl.c:12444 | |
32506 | #, gcc-internal-format | |
32507 | msgid "incremented enumerator value is too large for %<unsigned long%>" | |
32508 | msgstr "el valor del enumerador incrementado es demasiado grande para %<unsigned long%>" | |
32509 | ||
32510 | -#: cp/decl.c:12442 | |
32511 | +#: cp/decl.c:12456 | |
32512 | #, gcc-internal-format | |
32513 | msgid "overflow in enumeration values at %qD" | |
32514 | msgstr "desbordamiento en valores de enumeración en %qD" | |
32515 | ||
32516 | -#: cp/decl.c:12462 | |
32517 | +#: cp/decl.c:12476 | |
32518 | #, gcc-internal-format | |
32519 | msgid "enumerator value %E is too large for underlying type %<%T%>" | |
32520 | msgstr "el valor de enumerador %E es demasiado grande para el tipo subyacente %<%T%>" | |
32521 | ||
32522 | -#: cp/decl.c:12559 | |
32523 | +#: cp/decl.c:12573 | |
32524 | #, gcc-internal-format | |
32525 | msgid "return type %q#T is incomplete" | |
32526 | msgstr "el tipo de devolución %q#T es un tipo de dato incompleto" | |
32527 | ||
32528 | -#: cp/decl.c:12561 | |
32529 | +#: cp/decl.c:12575 | |
32530 | #, gcc-internal-format | |
32531 | msgid "return type has Java class type %q#T" | |
32532 | msgstr "el tipo de devolución tiene tipo de clase Java %q#T" | |
32533 | ||
32534 | -#: cp/decl.c:12685 cp/typeck.c:7896 | |
32535 | +#: cp/decl.c:12699 cp/typeck.c:7896 | |
32536 | #, gcc-internal-format | |
32537 | msgid "%<operator=%> should return a reference to %<*this%>" | |
32538 | msgstr "%<operator=%> debe devolver una referencia a %<*this%>" | |
32539 | ||
32540 | -#: cp/decl.c:12780 | |
32541 | +#: cp/decl.c:12794 | |
32542 | #, gcc-internal-format | |
32543 | msgid "no previous declaration for %q+D" | |
32544 | msgstr "no hay declaración previa para %q+D" | |
32545 | ||
32546 | -#: cp/decl.c:12995 | |
32547 | +#: cp/decl.c:13009 | |
32548 | #, gcc-internal-format | |
32549 | msgid "invalid function declaration" | |
32550 | msgstr "declaración de función inválida" | |
32551 | ||
32552 | -#: cp/decl.c:13079 | |
32553 | +#: cp/decl.c:13093 | |
32554 | #, gcc-internal-format | |
32555 | msgid "parameter %qD declared void" | |
32556 | msgstr "el parámetro %qD se declaró void" | |
32557 | ||
32558 | -#: cp/decl.c:13532 | |
32559 | +#: cp/decl.c:13546 | |
32560 | #, gcc-internal-format | |
32561 | msgid "parameter %q+D set but not used" | |
32562 | msgstr "se define el parámetro %q+D pero no se usa" | |
32563 | ||
32564 | -#: cp/decl.c:13627 | |
32565 | +#: cp/decl.c:13641 | |
32566 | #, gcc-internal-format | |
32567 | msgid "invalid member function declaration" | |
32568 | msgstr "declaración de la función miembro inválida" | |
32569 | ||
32570 | -#: cp/decl.c:13641 | |
32571 | +#: cp/decl.c:13655 | |
32572 | #, gcc-internal-format | |
32573 | msgid "%qD is already defined in class %qT" | |
32574 | msgstr "%qD ya se definió en la clase %qT" | |
32575 | @@ -29106,7 +29312,7 @@ | |
32576 | msgid "deleting %qT is undefined" | |
32577 | msgstr "el borrado de %qT está indefinido" | |
32578 | ||
32579 | -#: cp/decl2.c:512 cp/pt.c:4875 | |
32580 | +#: cp/decl2.c:512 cp/pt.c:4877 | |
32581 | #, gcc-internal-format | |
32582 | msgid "template declaration of %q#D" | |
32583 | msgstr "declaración plantilla de %q#D" | |
32584 | @@ -29297,87 +29503,87 @@ | |
32585 | msgid "use of deleted function %qD" | |
32586 | msgstr "se usó la función borrada %q+D" | |
32587 | ||
32588 | -#: cp/error.c:3261 | |
32589 | +#: cp/error.c:3263 | |
32590 | #, gcc-internal-format | |
32591 | msgid "extended initializer lists only available with -std=c++11 or -std=gnu++11" | |
32592 | msgstr "las listas de inicializador extendidas sólo está disponibles con -std=c++11 o -std=gnu++11" | |
32593 | ||
32594 | -#: cp/error.c:3266 | |
32595 | +#: cp/error.c:3268 | |
32596 | #, gcc-internal-format | |
32597 | msgid "explicit conversion operators only available with -std=c++11 or -std=gnu++11" | |
32598 | msgstr "los operadores de conversión explícita sólo están disponibles con -std=c++11 o -std=gnu++11" | |
32599 | ||
32600 | -#: cp/error.c:3271 | |
32601 | +#: cp/error.c:3273 | |
32602 | #, gcc-internal-format | |
32603 | msgid "variadic templates only available with -std=c++11 or -std=gnu++11" | |
32604 | msgstr "las plantillas variadic sólo están disponibles con -std=c++11 o -std=gnu++11" | |
32605 | ||
32606 | -#: cp/error.c:3276 | |
32607 | +#: cp/error.c:3278 | |
32608 | #, gcc-internal-format | |
32609 | msgid "lambda expressions only available with -std=c++11 or -std=gnu++11" | |
32610 | msgstr "las expresiones lambda sólo están disponibles con -std=c++11 o -std=gnu++11" | |
32611 | ||
32612 | -#: cp/error.c:3281 | |
32613 | +#: cp/error.c:3283 | |
32614 | #, gcc-internal-format | |
32615 | msgid "C++0x auto only available with -std=c++11 or -std=gnu++11" | |
32616 | msgstr "C++0x automático sólo está disponible con -std=c++11 o -std=gnu++11" | |
32617 | ||
32618 | -#: cp/error.c:3285 | |
32619 | +#: cp/error.c:3287 | |
32620 | #, gcc-internal-format | |
32621 | msgid "scoped enums only available with -std=c++11 or -std=gnu++11" | |
32622 | msgstr "los enums con ámbito sólo están disponibles con -std=c++11 o -std=gnu++11" | |
32623 | ||
32624 | -#: cp/error.c:3289 | |
32625 | +#: cp/error.c:3291 | |
32626 | #, gcc-internal-format | |
32627 | msgid "defaulted and deleted functions only available with -std=c++11 or -std=gnu++11" | |
32628 | msgstr "las funciones por defecto y borradas sólo están disponibles con -std=c++11 o -std=gnu++11" | |
32629 | ||
32630 | -#: cp/error.c:3294 | |
32631 | +#: cp/error.c:3296 | |
32632 | #, gcc-internal-format | |
32633 | msgid "inline namespaces only available with -std=c++11 or -std=gnu++11" | |
32634 | msgstr "los nombres de espacio incluídos en línea sólo están disponibles con -std=c++11 o -std=gnu++11" | |
32635 | ||
32636 | -#: cp/error.c:3299 | |
32637 | +#: cp/error.c:3301 | |
32638 | #, gcc-internal-format | |
32639 | msgid "override controls (override/final) only available with -std=c++11 or -std=gnu++11" | |
32640 | msgstr "los controles de anulación (override/final) sólo están disponibles con -std=c++11 o -std=gnu++11" | |
32641 | ||
32642 | -#: cp/error.c:3304 | |
32643 | +#: cp/error.c:3306 | |
32644 | #, gcc-internal-format | |
32645 | msgid "non-static data member initializers only available with -std=c++11 or -std=gnu++11" | |
32646 | msgstr "los inicializadores de datos miembro que no son static sólo está disponibles con -std=c++11 o -std=gnu++11" | |
32647 | ||
32648 | -#: cp/error.c:3309 | |
32649 | +#: cp/error.c:3311 | |
32650 | #, gcc-internal-format | |
32651 | msgid "user-defined literals only available with -std=c++11 or -std=gnu++11" | |
32652 | msgstr "las literales definidas por el usuario sólo está disponibles con -std=c++11 o -std=gnu++11" | |
32653 | ||
32654 | -#: cp/error.c:3314 | |
32655 | +#: cp/error.c:3316 | |
32656 | #, gcc-internal-format | |
32657 | msgid "delegating constructors only available with -std=c++11 or -std=gnu++11" | |
32658 | msgstr "los constructores delegadores sólo están disponibles con -std=c++11 o -std=gnu++11" | |
32659 | ||
32660 | -#: cp/error.c:3361 | |
32661 | +#: cp/error.c:3363 | |
32662 | #, gcc-internal-format | |
32663 | msgid "incomplete type %qT used in nested name specifier" | |
32664 | msgstr "se utilizó el tipo incompleto %qT en un especificador de nombre anidado" | |
32665 | ||
32666 | -#: cp/error.c:3365 | |
32667 | +#: cp/error.c:3367 | |
32668 | #, gcc-internal-format | |
32669 | msgid "reference to %<%T::%D%> is ambiguous" | |
32670 | msgstr "la referencia a %<%T::%D%> es ambigua" | |
32671 | ||
32672 | -#: cp/error.c:3370 cp/typeck.c:2178 | |
32673 | +#: cp/error.c:3372 cp/typeck.c:2178 | |
32674 | #, gcc-internal-format | |
32675 | msgid "%qD is not a member of %qT" | |
32676 | msgstr "%qD no es un miembro de %qT" | |
32677 | ||
32678 | -#: cp/error.c:3374 | |
32679 | +#: cp/error.c:3376 | |
32680 | #, gcc-internal-format | |
32681 | msgid "%qD is not a member of %qD" | |
32682 | msgstr "%qD no es un miembro de %qD" | |
32683 | ||
32684 | -#: cp/error.c:3379 | |
32685 | +#: cp/error.c:3381 | |
32686 | #, gcc-internal-format | |
32687 | msgid "%<::%D%> has not been declared" | |
32688 | msgstr "%<::%D%> no se ha declarado" | |
32689 | @@ -29878,42 +30084,42 @@ | |
32690 | msgid "(if you use %<-fpermissive%>, G++ will accept your code, but allowing the use of an undeclared name is deprecated)" | |
32691 | msgstr "(si utiliza %<-fpermissive%>, G++ aceptará su código, pero permitir el uso de un nombre sin declarar es obsoleto)" | |
32692 | ||
32693 | -#: cp/mangle.c:2024 | |
32694 | +#: cp/mangle.c:2022 | |
32695 | #, gcc-internal-format | |
32696 | msgid "mangling typeof, use decltype instead" | |
32697 | msgstr "se decodifica typeof, utilice decltype en su lugar" | |
32698 | ||
32699 | -#: cp/mangle.c:2028 | |
32700 | +#: cp/mangle.c:2026 | |
32701 | #, gcc-internal-format | |
32702 | msgid "mangling __underlying_type" | |
32703 | msgstr "se decodifica __underlying_type" | |
32704 | ||
32705 | -#: cp/mangle.c:2252 | |
32706 | +#: cp/mangle.c:2250 | |
32707 | #, gcc-internal-format | |
32708 | msgid "mangling unknown fixed point type" | |
32709 | msgstr "se decodifica el tipo de coma fija desconocido" | |
32710 | ||
32711 | -#: cp/mangle.c:2811 | |
32712 | +#: cp/mangle.c:2809 | |
32713 | #, gcc-internal-format, gfc-internal-format | |
32714 | msgid "mangling %C" | |
32715 | msgstr "decodificando %C" | |
32716 | ||
32717 | -#: cp/mangle.c:2886 | |
32718 | +#: cp/mangle.c:2884 | |
32719 | #, gcc-internal-format | |
32720 | msgid "omitted middle operand to %<?:%> operand cannot be mangled" | |
32721 | msgstr "se omitió el operando de enmedio de %<?%>: no se puede revolver el operando" | |
32722 | ||
32723 | -#: cp/mangle.c:2950 | |
32724 | +#: cp/mangle.c:2948 | |
32725 | #, gcc-internal-format | |
32726 | msgid "string literal in function template signature" | |
32727 | msgstr "literal de cadena en la firma de plantilla de función" | |
32728 | ||
32729 | -#: cp/mangle.c:3239 | |
32730 | +#: cp/mangle.c:3237 | |
32731 | #, gcc-internal-format | |
32732 | msgid "the mangled name of %qD will change in a future version of GCC" | |
32733 | msgstr "el nombre revuelto de %qD cambiará en una versión futura de GCC" | |
32734 | ||
32735 | -#: cp/mangle.c:3383 | |
32736 | +#: cp/mangle.c:3381 | |
32737 | #, gcc-internal-format | |
32738 | msgid "-fabi-version=6 (or =0) avoids this error with a change in mangling" | |
32739 | msgstr "-fabi-version=6 (o =0) evita este error con un cambio en la decodificación" | |
32740 | @@ -30428,7 +30634,7 @@ | |
32741 | msgid "(perhaps a semicolon is missing after the definition of %qT)" | |
32742 | msgstr "(tal vez falta un punto y coma después de la definición de %qT)" | |
32743 | ||
32744 | -#: cp/parser.c:2604 cp/parser.c:5102 cp/pt.c:7239 | |
32745 | +#: cp/parser.c:2604 cp/parser.c:5102 cp/pt.c:7241 | |
32746 | #, gcc-internal-format | |
32747 | msgid "%qT is not a template" | |
32748 | msgstr "%qT no es una plantilla" | |
32749 | @@ -30448,7 +30654,7 @@ | |
32750 | msgid "floating-point literal cannot appear in a constant-expression" | |
32751 | msgstr "una literal de coma flotante no puede aparecer en una expresión constante" | |
32752 | ||
32753 | -#: cp/parser.c:2645 cp/pt.c:13485 | |
32754 | +#: cp/parser.c:2645 cp/pt.c:13498 | |
32755 | #, gcc-internal-format | |
32756 | msgid "a cast to a type other than an integral or enumeration type cannot appear in a constant-expression" | |
32757 | msgstr "una conversión a un tipo diferente de un tipo integral o de enumeración no puede aparecer en una expresión constante" | |
32758 | @@ -31838,7 +32044,7 @@ | |
32759 | msgid "parenthesized initialization is not allowed in OpenMP %<for%> loop" | |
32760 | msgstr "no se permite la inicialización entre paréntesis para el bucle %<for%> en OpenMP" | |
32761 | ||
32762 | -#: cp/parser.c:26407 cp/pt.c:12680 | |
32763 | +#: cp/parser.c:26407 cp/pt.c:12693 | |
32764 | #, gcc-internal-format | |
32765 | msgid "iteration variable %qD should not be reduction" | |
32766 | msgstr "la variable de iteración %qD no debe ser reduction" | |
32767 | @@ -32060,109 +32266,109 @@ | |
32768 | msgid "expansion pattern %<%E%> contains no argument packs" | |
32769 | msgstr "el patrón de expansión %<%E%> no contiene paquetes de argumento" | |
32770 | ||
32771 | -#: cp/pt.c:3277 | |
32772 | +#: cp/pt.c:3279 | |
32773 | #, gcc-internal-format | |
32774 | msgid "parameter packs not expanded with %<...%>:" | |
32775 | msgstr "no se expanden los paquetes de parámetro con %<...%>" | |
32776 | ||
32777 | -#: cp/pt.c:3292 cp/pt.c:4370 | |
32778 | +#: cp/pt.c:3294 cp/pt.c:4372 | |
32779 | #, gcc-internal-format | |
32780 | msgid " %qD" | |
32781 | msgstr " %qD" | |
32782 | ||
32783 | -#: cp/pt.c:3294 | |
32784 | +#: cp/pt.c:3296 | |
32785 | #, gcc-internal-format | |
32786 | msgid " <anonymous>" | |
32787 | msgstr " <anónimo>" | |
32788 | ||
32789 | -#: cp/pt.c:3411 | |
32790 | +#: cp/pt.c:3413 | |
32791 | #, gcc-internal-format | |
32792 | msgid "declaration of %q+#D" | |
32793 | msgstr "la declaración de %q+#D" | |
32794 | ||
32795 | -#: cp/pt.c:3412 | |
32796 | +#: cp/pt.c:3414 | |
32797 | #, gcc-internal-format | |
32798 | msgid " shadows template parm %q+#D" | |
32799 | msgstr " oscurece el parámetro de plantilla %q+#D" | |
32800 | ||
32801 | -#: cp/pt.c:4366 | |
32802 | +#: cp/pt.c:4368 | |
32803 | #, gcc-internal-format | |
32804 | msgid "template parameters not used in partial specialization:" | |
32805 | msgstr "no se usan los parámetros de plantilla en la especialización parcial:" | |
32806 | ||
32807 | -#: cp/pt.c:4384 | |
32808 | +#: cp/pt.c:4386 | |
32809 | #, gcc-internal-format | |
32810 | msgid "partial specialization %qT does not specialize any template arguments" | |
32811 | msgstr "la especialización parcial %qT no especializa ningún argumento de plantilla" | |
32812 | ||
32813 | -#: cp/pt.c:4429 | |
32814 | +#: cp/pt.c:4431 | |
32815 | #, gcc-internal-format | |
32816 | msgid "parameter pack argument %qE must be at the end of the template argument list" | |
32817 | msgstr "el argumento de paquete de parámetro %qE debe estar al final de la lista de argumentos de plantilla" | |
32818 | ||
32819 | -#: cp/pt.c:4432 | |
32820 | +#: cp/pt.c:4434 | |
32821 | #, gcc-internal-format | |
32822 | msgid "parameter pack argument %qT must be at the end of the template argument list" | |
32823 | msgstr "el argumento de paquete de parámetro %qT debe estar al final de la lista de argumentos de plantilla" | |
32824 | ||
32825 | -#: cp/pt.c:4451 | |
32826 | +#: cp/pt.c:4453 | |
32827 | #, gcc-internal-format | |
32828 | msgid "template argument %qE involves template parameter(s)" | |
32829 | msgstr "el argumento de plantilla %qE involucra a el(los) parámetro(s) de plantilla" | |
32830 | ||
32831 | -#: cp/pt.c:4497 | |
32832 | +#: cp/pt.c:4499 | |
32833 | #, gcc-internal-format | |
32834 | msgid "type %qT of template argument %qE depends on a template parameter" | |
32835 | msgid_plural "type %qT of template argument %qE depends on template parameters" | |
32836 | msgstr[0] "el tipo %qT del argumento de plantilla %qE depende de un parámetro de plantilla" | |
32837 | msgstr[1] "el tipo %qT del argumento de plantilla %qE depende de parámetros de plantilla" | |
32838 | ||
32839 | -#: cp/pt.c:4527 | |
32840 | +#: cp/pt.c:4529 | |
32841 | #, gcc-internal-format | |
32842 | msgid "partial specialization of %qT after instantiation of %qT" | |
32843 | msgstr "especialización parcial de %qT después de la instanciación %qT" | |
32844 | ||
32845 | -#: cp/pt.c:4620 | |
32846 | +#: cp/pt.c:4622 | |
32847 | #, gcc-internal-format | |
32848 | msgid "no default argument for %qD" | |
32849 | msgstr "no hay un argumento por defecto para %qD" | |
32850 | ||
32851 | -#: cp/pt.c:4641 | |
32852 | +#: cp/pt.c:4643 | |
32853 | #, gcc-internal-format | |
32854 | msgid "parameter pack %qE must be at the end of the template parameter list" | |
32855 | msgstr "el parámetro de paquete %qE debe estar al final de la lista de parámetros de plantilla" | |
32856 | ||
32857 | -#: cp/pt.c:4644 | |
32858 | +#: cp/pt.c:4646 | |
32859 | #, gcc-internal-format | |
32860 | msgid "parameter pack %qT must be at the end of the template parameter list" | |
32861 | msgstr "el parámetro de paquete %qT debe estar al final de la lista de parámetros de plantilla" | |
32862 | ||
32863 | -#: cp/pt.c:4681 | |
32864 | +#: cp/pt.c:4683 | |
32865 | #, gcc-internal-format | |
32866 | msgid "default template arguments may not be used in function template friend re-declaration" | |
32867 | msgstr "no se pueden usar los argumentos de plantilla por defecto en la re-declaración friend de la plantilla de función" | |
32868 | ||
32869 | -#: cp/pt.c:4684 | |
32870 | +#: cp/pt.c:4686 | |
32871 | #, gcc-internal-format | |
32872 | msgid "default template arguments may not be used in function template friend declarations" | |
32873 | msgstr "no se pueden usar los argumentos de plantilla por defecto en las declaraciones friend de la plantilla de función" | |
32874 | ||
32875 | -#: cp/pt.c:4687 | |
32876 | +#: cp/pt.c:4689 | |
32877 | #, gcc-internal-format | |
32878 | msgid "default template arguments may not be used in function templates without -std=c++11 or -std=gnu++11" | |
32879 | msgstr "los argumentos de plantilla por defecto no se pueden usar en las plantillas de función sin -std=c++11 o -std=gnu++11" | |
32880 | ||
32881 | -#: cp/pt.c:4690 | |
32882 | +#: cp/pt.c:4692 | |
32883 | #, gcc-internal-format | |
32884 | msgid "default template arguments may not be used in partial specializations" | |
32885 | msgstr "no se pueden usar los argumentos de plantilla por defecto en las especializaciones parciales" | |
32886 | ||
32887 | -#: cp/pt.c:4693 cp/pt.c:4744 | |
32888 | +#: cp/pt.c:4695 cp/pt.c:4746 | |
32889 | #, gcc-internal-format | |
32890 | msgid "default argument for template parameter for class enclosing %qD" | |
32891 | msgstr "argumento por defecto para el parámetro de plantilla para la clase incluyente %qD" | |
32892 | ||
32893 | -#: cp/pt.c:4837 | |
32894 | +#: cp/pt.c:4839 | |
32895 | #, gcc-internal-format | |
32896 | msgid "template class without a name" | |
32897 | msgstr "clase de plantilla sin nombre" | |
32898 | @@ -32170,7 +32376,7 @@ | |
32899 | #. [temp.mem] | |
32900 | #. | |
32901 | #. A destructor shall not be a member template. | |
32902 | -#: cp/pt.c:4847 | |
32903 | +#: cp/pt.c:4849 | |
32904 | #, gcc-internal-format | |
32905 | msgid "destructor %qD declared as member template" | |
32906 | msgstr "se declaró el destructor %qD como una plantilla miembro" | |
32907 | @@ -32180,76 +32386,76 @@ | |
32908 | #. An allocation function can be a function | |
32909 | #. template. ... Template allocation functions shall | |
32910 | #. have two or more parameters. | |
32911 | -#: cp/pt.c:4862 | |
32912 | +#: cp/pt.c:4864 | |
32913 | #, gcc-internal-format | |
32914 | msgid "invalid template declaration of %qD" | |
32915 | msgstr "declaración de la plantilla de %qD inválida" | |
32916 | ||
32917 | -#: cp/pt.c:4986 | |
32918 | +#: cp/pt.c:4988 | |
32919 | #, gcc-internal-format | |
32920 | msgid "template definition of non-template %q#D" | |
32921 | msgstr "definición de plantilla de %q#D que no es plantilla" | |
32922 | ||
32923 | -#: cp/pt.c:5029 | |
32924 | +#: cp/pt.c:5031 | |
32925 | #, gcc-internal-format | |
32926 | msgid "expected %d levels of template parms for %q#D, got %d" | |
32927 | msgstr "se esperaban %d niveles de parámetros de plantilla para %q#D, se obtuvieron %d" | |
32928 | ||
32929 | -#: cp/pt.c:5041 | |
32930 | +#: cp/pt.c:5043 | |
32931 | #, gcc-internal-format | |
32932 | msgid "got %d template parameters for %q#D" | |
32933 | msgstr "se obtuvieron %d parámetros de plantilla para %q#D" | |
32934 | ||
32935 | -#: cp/pt.c:5044 | |
32936 | +#: cp/pt.c:5046 | |
32937 | #, gcc-internal-format | |
32938 | msgid "got %d template parameters for %q#T" | |
32939 | msgstr "se obtuvieron %d parámetros de plantilla para %q#T" | |
32940 | ||
32941 | -#: cp/pt.c:5046 | |
32942 | +#: cp/pt.c:5048 | |
32943 | #, gcc-internal-format, gfc-internal-format | |
32944 | msgid " but %d required" | |
32945 | msgstr " pero se requieren %d" | |
32946 | ||
32947 | -#: cp/pt.c:5067 | |
32948 | +#: cp/pt.c:5069 | |
32949 | #, gcc-internal-format | |
32950 | msgid "template arguments to %qD do not match original template %qD" | |
32951 | msgstr "los argumentos de plantilla para %qD no coinciden con la plantilla original %qD" | |
32952 | ||
32953 | -#: cp/pt.c:5071 | |
32954 | +#: cp/pt.c:5073 | |
32955 | #, gcc-internal-format | |
32956 | msgid "use template<> for an explicit specialization" | |
32957 | msgstr "utilice template<> para una especialización explícita" | |
32958 | ||
32959 | -#: cp/pt.c:5172 | |
32960 | +#: cp/pt.c:5174 | |
32961 | #, gcc-internal-format | |
32962 | msgid "%qT is not a template type" | |
32963 | msgstr "%qT no es un tipo plantilla" | |
32964 | ||
32965 | -#: cp/pt.c:5185 | |
32966 | +#: cp/pt.c:5187 | |
32967 | #, gcc-internal-format | |
32968 | msgid "template specifiers not specified in declaration of %qD" | |
32969 | msgstr "no se especificaron los especificadores de plantilla en la declaración de %qD" | |
32970 | ||
32971 | -#: cp/pt.c:5196 | |
32972 | +#: cp/pt.c:5198 | |
32973 | #, gcc-internal-format, gfc-internal-format | |
32974 | msgid "redeclared with %d template parameter" | |
32975 | msgid_plural "redeclared with %d template parameters" | |
32976 | msgstr[0] "se redeclaró con %d parámetro de plantilla" | |
32977 | msgstr[1] "se redeclaró con %d parámetros de plantilla" | |
32978 | ||
32979 | -#: cp/pt.c:5200 | |
32980 | +#: cp/pt.c:5202 | |
32981 | #, gcc-internal-format | |
32982 | msgid "previous declaration %q+D used %d template parameter" | |
32983 | msgid_plural "previous declaration %q+D used %d template parameters" | |
32984 | msgstr[0] "la declaración previa de %q+#D usó %d parámetro de plantilla" | |
32985 | msgstr[1] "la declaración previa de %q+#D usó %d parámetros de plantilla" | |
32986 | ||
32987 | -#: cp/pt.c:5237 | |
32988 | +#: cp/pt.c:5239 | |
32989 | #, gcc-internal-format | |
32990 | msgid "template parameter %q+#D" | |
32991 | msgstr "parámetro de plantilla %q+#D" | |
32992 | ||
32993 | -#: cp/pt.c:5238 | |
32994 | +#: cp/pt.c:5240 | |
32995 | #, gcc-internal-format | |
32996 | msgid "redeclared here as %q#D" | |
32997 | msgstr "redeclarado aquí como %q#D" | |
32998 | @@ -32258,328 +32464,328 @@ | |
32999 | #. | |
33000 | #. A template-parameter may not be given default arguments | |
33001 | #. by two different declarations in the same scope. | |
33002 | -#: cp/pt.c:5248 | |
33003 | +#: cp/pt.c:5250 | |
33004 | #, gcc-internal-format | |
33005 | msgid "redefinition of default argument for %q#D" | |
33006 | msgstr "redefinición del argumento por defecto para %q#D" | |
33007 | ||
33008 | -#: cp/pt.c:5250 | |
33009 | +#: cp/pt.c:5252 | |
33010 | #, gcc-internal-format | |
33011 | msgid "original definition appeared here" | |
33012 | msgstr "la definición original apareció aquí" | |
33013 | ||
33014 | -#: cp/pt.c:5368 | |
33015 | +#: cp/pt.c:5370 | |
33016 | #, gcc-internal-format | |
33017 | msgid "%qE is not a valid template argument for type %qT because %qD has no linkage" | |
33018 | msgstr "%qE no es un argumento válido de plantilla para el tipo %qT porque %qD no tiene enlace" | |
33019 | ||
33020 | -#: cp/pt.c:5372 | |
33021 | +#: cp/pt.c:5374 | |
33022 | #, gcc-internal-format | |
33023 | msgid "%qE is not a valid template argument for type %qT because %qD does not have external linkage" | |
33024 | msgstr "%qE no es un argumento válido de plantilla para el tipo %qT porque %qD no tiene enlace externo" | |
33025 | ||
33026 | -#: cp/pt.c:5396 cp/pt.c:5997 | |
33027 | +#: cp/pt.c:5398 cp/pt.c:5999 | |
33028 | #, gcc-internal-format | |
33029 | msgid "%qE is not a valid template argument for type %qT" | |
33030 | msgstr "%qE no es un argumento de plantilla válido para el tipo %qT" | |
33031 | ||
33032 | -#: cp/pt.c:5398 | |
33033 | +#: cp/pt.c:5400 | |
33034 | #, gcc-internal-format | |
33035 | msgid "it must be a pointer-to-member of the form %<&X::Y%>" | |
33036 | msgstr "debe ser un puntero-a-miembro de la forma %<&X::Y%>" | |
33037 | ||
33038 | -#: cp/pt.c:5449 | |
33039 | +#: cp/pt.c:5451 | |
33040 | #, gcc-internal-format | |
33041 | msgid " couldn't deduce template parameter %qD" | |
33042 | msgstr " no se puede deducir el parámetro de plantilla %qD" | |
33043 | ||
33044 | -#: cp/pt.c:5464 | |
33045 | +#: cp/pt.c:5466 | |
33046 | #, gcc-internal-format | |
33047 | msgid " types %qT and %qT have incompatible cv-qualifiers" | |
33048 | msgstr " los tipos %qT y %qT tiene calificadores-cv incompatibles" | |
33049 | ||
33050 | -#: cp/pt.c:5473 | |
33051 | +#: cp/pt.c:5475 | |
33052 | #, gcc-internal-format | |
33053 | msgid " mismatched types %qT and %qT" | |
33054 | msgstr " no coinciden los tipos %qT y %qT" | |
33055 | ||
33056 | -#: cp/pt.c:5482 | |
33057 | +#: cp/pt.c:5484 | |
33058 | #, gcc-internal-format | |
33059 | msgid " template parameter %qD is not a parameter pack, but argument %qD is" | |
33060 | msgstr " el parámetro de plantilla %qD no es un paquete de parámetro, pero el argumento %qD sí" | |
33061 | ||
33062 | -#: cp/pt.c:5493 | |
33063 | +#: cp/pt.c:5495 | |
33064 | #, gcc-internal-format | |
33065 | msgid " template argument %qE does not match pointer-to-member constant %qE" | |
33066 | msgstr " el argumento de plantilla %qE no coincide con la constante puntero-a-miembro %qE" | |
33067 | ||
33068 | -#: cp/pt.c:5503 | |
33069 | +#: cp/pt.c:5505 | |
33070 | #, gcc-internal-format | |
33071 | msgid " %qE is not equivalent to %qE" | |
33072 | msgstr " %qE no es equivalente a %qE" | |
33073 | ||
33074 | -#: cp/pt.c:5512 | |
33075 | +#: cp/pt.c:5514 | |
33076 | #, gcc-internal-format | |
33077 | msgid " inconsistent parameter pack deduction with %qT and %qT" | |
33078 | msgstr " deducción de paquete de parámetros inconsistente con %qT y %qT" | |
33079 | ||
33080 | -#: cp/pt.c:5524 | |
33081 | +#: cp/pt.c:5526 | |
33082 | #, gcc-internal-format | |
33083 | msgid " deduced conflicting types for parameter %qT (%qT and %qT)" | |
33084 | msgstr " se deducen tipos en conflicto para el parámetro %qT (%qT y %qT)" | |
33085 | ||
33086 | -#: cp/pt.c:5528 | |
33087 | +#: cp/pt.c:5530 | |
33088 | #, gcc-internal-format | |
33089 | msgid " deduced conflicting values for non-type parameter %qE (%qE and %qE)" | |
33090 | msgstr " se deducen valores en conflicto para el parámetro %qE que no es tipo (%qE y %qE)" | |
33091 | ||
33092 | -#: cp/pt.c:5539 | |
33093 | +#: cp/pt.c:5541 | |
33094 | #, gcc-internal-format | |
33095 | msgid " variable-sized array type %qT is not a valid template argument" | |
33096 | msgstr " el tipo matriz de tamaño variable %qT no es un argumento de plantilla válido" | |
33097 | ||
33098 | -#: cp/pt.c:5550 | |
33099 | +#: cp/pt.c:5552 | |
33100 | #, gcc-internal-format | |
33101 | msgid " member function type %qT is not a valid template argument" | |
33102 | msgstr " el tipo de función miembro %qT no es un argumento de plantilla válido" | |
33103 | ||
33104 | -#: cp/pt.c:5583 | |
33105 | +#: cp/pt.c:5585 | |
33106 | #, gcc-internal-format | |
33107 | msgid " cannot convert %qE (type %qT) to type %qT" | |
33108 | msgstr " no se puede convertir %qE (tipo %qT) al tipo %qT" | |
33109 | ||
33110 | -#: cp/pt.c:5596 | |
33111 | +#: cp/pt.c:5598 | |
33112 | #, gcc-internal-format | |
33113 | msgid " %qT is an ambiguous base class of %qT" | |
33114 | msgstr " %qT es una clase base ambigua de %qT" | |
33115 | ||
33116 | -#: cp/pt.c:5600 | |
33117 | +#: cp/pt.c:5602 | |
33118 | #, gcc-internal-format | |
33119 | msgid " %qT is not derived from %qT" | |
33120 | msgstr " %qT no es derivado de %qT" | |
33121 | ||
33122 | -#: cp/pt.c:5611 | |
33123 | +#: cp/pt.c:5613 | |
33124 | #, gcc-internal-format | |
33125 | msgid " template parameters of a template template argument are inconsistent with other deduced template arguments" | |
33126 | msgstr " los parámetros de plantilla de un argumento de plantilla plantilla son inconsistentes con otros argumentos de plantilla deducidos" | |
33127 | ||
33128 | -#: cp/pt.c:5621 | |
33129 | +#: cp/pt.c:5623 | |
33130 | #, gcc-internal-format | |
33131 | msgid " can't deduce a template for %qT from non-template type %qT" | |
33132 | msgstr " no se puede deducir una plantilla para %qT del tipo %qT que no es plantilla" | |
33133 | ||
33134 | -#: cp/pt.c:5631 | |
33135 | +#: cp/pt.c:5633 | |
33136 | #, gcc-internal-format | |
33137 | msgid " template argument %qE does not match %qD" | |
33138 | msgstr " el argumento de plantilla %qE no coincide con %qD" | |
33139 | ||
33140 | -#: cp/pt.c:5640 | |
33141 | +#: cp/pt.c:5642 | |
33142 | #, gcc-internal-format | |
33143 | msgid " could not resolve address from overloaded function %qE" | |
33144 | msgstr " no se puede resolver la dirección de la función sobrecargada %qE" | |
33145 | ||
33146 | -#: cp/pt.c:5679 | |
33147 | +#: cp/pt.c:5681 | |
33148 | #, gcc-internal-format | |
33149 | msgid "%qE is not a valid template argument for type %qT because string literals can never be used in this context" | |
33150 | msgstr "%qE no es un argumento válido de plantilla para el tipo %qT porque las literales de cadena nunca se pueden usar en este contexto" | |
33151 | ||
33152 | -#: cp/pt.c:5816 | |
33153 | +#: cp/pt.c:5818 | |
33154 | #, gcc-internal-format | |
33155 | msgid "in template argument for type %qT " | |
33156 | msgstr "en el argumento de plantilla para el tipo %qT " | |
33157 | ||
33158 | -#: cp/pt.c:5858 | |
33159 | +#: cp/pt.c:5860 | |
33160 | #, gcc-internal-format | |
33161 | msgid "%qD is not a valid template argument because %qD is a variable, not the address of a variable" | |
33162 | msgstr "%qD no es un argumento válido de plantilla porque %qD es una variable, no la dirección de una variable" | |
33163 | ||
33164 | -#: cp/pt.c:5876 | |
33165 | +#: cp/pt.c:5878 | |
33166 | #, gcc-internal-format | |
33167 | msgid "%qE is not a valid template argument of type %qT because %qE is not a variable" | |
33168 | msgstr "%qE no es un argumento válido de plantilla de tipo %qT porque %qE no es una variable" | |
33169 | ||
33170 | -#: cp/pt.c:5883 | |
33171 | +#: cp/pt.c:5885 | |
33172 | #, gcc-internal-format | |
33173 | msgid "%qE is not a valid template argument of type %qT because %qD does not have external linkage" | |
33174 | msgstr "%qE no es un argumento válido de plantilla de tipo %qT porque %qD no tiene enlace externo" | |
33175 | ||
33176 | -#: cp/pt.c:5890 | |
33177 | +#: cp/pt.c:5892 | |
33178 | #, gcc-internal-format | |
33179 | msgid "%qE is not a valid template argument of type %qT because %qD has no linkage" | |
33180 | msgstr "%qE no es un argumento válido de plantilla de tipo %qT porque %qD no tiene enlace" | |
33181 | ||
33182 | -#: cp/pt.c:5920 | |
33183 | +#: cp/pt.c:5922 | |
33184 | #, gcc-internal-format | |
33185 | msgid "%qE is not a valid template argument for type %qT because of conflicts in cv-qualification" | |
33186 | msgstr "%qE no es un argumento de plantilla válido para el tipo %qT debido a conflictos en la calificación cv" | |
33187 | ||
33188 | -#: cp/pt.c:5927 | |
33189 | +#: cp/pt.c:5929 | |
33190 | #, gcc-internal-format | |
33191 | msgid "%qE is not a valid template argument for type %qT because it is not an lvalue" | |
33192 | msgstr "%qE no es un argumento válido de plantilla para el tipo %qT porque no es un l-valor" | |
33193 | ||
33194 | -#: cp/pt.c:5944 | |
33195 | +#: cp/pt.c:5946 | |
33196 | #, gcc-internal-format | |
33197 | msgid "%q#D is not a valid template argument for type %qT because a reference variable does not have a constant address" | |
33198 | msgstr "%q#D no es un argumento válido de plantilla para el tipo %qT porque una referencia variable no tiene una dirección constante" | |
33199 | ||
33200 | -#: cp/pt.c:5953 | |
33201 | +#: cp/pt.c:5955 | |
33202 | #, gcc-internal-format | |
33203 | msgid "%qE is not a valid template argument for type %qT because it is not an object with external linkage" | |
33204 | msgstr "%qE no es un argumento válido de plantilla para el tipo %qT porque no es un objeto con enlace externo" | |
33205 | ||
33206 | -#: cp/pt.c:5961 | |
33207 | +#: cp/pt.c:5963 | |
33208 | #, gcc-internal-format | |
33209 | msgid "%qE is not a valid template argument for type %qT because object %qD has not external linkage" | |
33210 | msgstr "%qE no es un argumento válido de plantilla para el tipo %qT porque el objeto %qD no tiene enlace externo" | |
33211 | ||
33212 | -#: cp/pt.c:5998 | |
33213 | +#: cp/pt.c:6000 | |
33214 | #, gcc-internal-format | |
33215 | msgid "it must be the address of a function with external linkage" | |
33216 | msgstr "debe ser la dirección de una función con enlace externo" | |
33217 | ||
33218 | -#: cp/pt.c:6012 | |
33219 | +#: cp/pt.c:6014 | |
33220 | #, gcc-internal-format | |
33221 | msgid "%qE is not a valid template argument for type %qT because it is a pointer" | |
33222 | msgstr "%qE no es un argumento de plantilla válido para el tipo %qT porque es un puntero" | |
33223 | ||
33224 | -#: cp/pt.c:6014 | |
33225 | +#: cp/pt.c:6016 | |
33226 | #, gcc-internal-format | |
33227 | msgid "try using %qE instead" | |
33228 | msgstr "intente utilizar %qE en su lugar" | |
33229 | ||
33230 | -#: cp/pt.c:6052 cp/pt.c:6081 | |
33231 | +#: cp/pt.c:6054 cp/pt.c:6083 | |
33232 | #, gcc-internal-format | |
33233 | msgid "%qE is not a valid template argument for type %qT because it is of type %qT" | |
33234 | msgstr "%qE no es un argumento de plantilla válido para el tipo %qT porque es de tipo %qT" | |
33235 | ||
33236 | -#: cp/pt.c:6058 | |
33237 | +#: cp/pt.c:6060 | |
33238 | #, gcc-internal-format | |
33239 | msgid "standard conversions are not allowed in this context" | |
33240 | msgstr "no se permiten las conversiones estándar en este contexto" | |
33241 | ||
33242 | -#: cp/pt.c:6368 | |
33243 | +#: cp/pt.c:6370 | |
33244 | #, gcc-internal-format | |
33245 | msgid "ignoring attributes on template argument %qT" | |
33246 | msgstr "se descartan los atributos en el argumento de plantilla %qT" | |
33247 | ||
33248 | -#: cp/pt.c:6426 | |
33249 | +#: cp/pt.c:6428 | |
33250 | #, gcc-internal-format | |
33251 | msgid "injected-class-name %qD used as template template argument" | |
33252 | msgstr "se usó el nombre-de-clase-inyectada %qD como un argumento de plantilla plantilla" | |
33253 | ||
33254 | -#: cp/pt.c:6454 | |
33255 | +#: cp/pt.c:6456 | |
33256 | #, gcc-internal-format | |
33257 | msgid "invalid use of destructor %qE as a type" | |
33258 | msgstr "uso inválido del destructor %qE como un tipo" | |
33259 | ||
33260 | -#: cp/pt.c:6459 | |
33261 | +#: cp/pt.c:6461 | |
33262 | #, gcc-internal-format | |
33263 | msgid "to refer to a type member of a template parameter, use %<typename %E%>" | |
33264 | msgstr "para hacer referencia a un tipo miembro de un parámetro de plantilla, use %<typename %E%>" | |
33265 | ||
33266 | -#: cp/pt.c:6475 cp/pt.c:6494 cp/pt.c:6540 | |
33267 | +#: cp/pt.c:6477 cp/pt.c:6496 cp/pt.c:6542 | |
33268 | #, gcc-internal-format | |
33269 | msgid "type/value mismatch at argument %d in template parameter list for %qD" | |
33270 | msgstr "no coincide el tipo/valor en el argumento %d en la lista de parámetros de plantilla para %qD" | |
33271 | ||
33272 | -#: cp/pt.c:6479 | |
33273 | +#: cp/pt.c:6481 | |
33274 | #, gcc-internal-format | |
33275 | msgid " expected a constant of type %qT, got %qT" | |
33276 | msgstr " se esperaba una constante de tipo %qT, se obtuvo %qT" | |
33277 | ||
33278 | -#: cp/pt.c:6483 | |
33279 | +#: cp/pt.c:6485 | |
33280 | #, gcc-internal-format | |
33281 | msgid " expected a class template, got %qE" | |
33282 | msgstr " se esperaba una plantilla de clase, se obtuvo %qE" | |
33283 | ||
33284 | -#: cp/pt.c:6485 | |
33285 | +#: cp/pt.c:6487 | |
33286 | #, gcc-internal-format | |
33287 | msgid " expected a type, got %qE" | |
33288 | msgstr " se esperaba un tipo, se obtuvo %qE" | |
33289 | ||
33290 | -#: cp/pt.c:6498 | |
33291 | +#: cp/pt.c:6500 | |
33292 | #, gcc-internal-format | |
33293 | msgid " expected a type, got %qT" | |
33294 | msgstr " se esperaba un tipo, se obtuvo %qT" | |
33295 | ||
33296 | -#: cp/pt.c:6500 | |
33297 | +#: cp/pt.c:6502 | |
33298 | #, gcc-internal-format | |
33299 | msgid " expected a class template, got %qT" | |
33300 | msgstr " se esperaba una plantilla de clase, se obtuvo %qT" | |
33301 | ||
33302 | -#: cp/pt.c:6543 | |
33303 | +#: cp/pt.c:6545 | |
33304 | #, gcc-internal-format | |
33305 | msgid " expected a template of type %qD, got %qT" | |
33306 | msgstr " se esperaba una plantilla de tipo %qD, se obtuvo %qT" | |
33307 | ||
33308 | #. Not sure if this is reachable, but it doesn't hurt | |
33309 | #. to be robust. | |
33310 | -#: cp/pt.c:6576 | |
33311 | +#: cp/pt.c:6578 | |
33312 | #, gcc-internal-format | |
33313 | msgid "type mismatch in nontype parameter pack" | |
33314 | msgstr "los tipos no coinciden en el parámetro pack que no es de tipo" | |
33315 | ||
33316 | -#: cp/pt.c:6598 | |
33317 | +#: cp/pt.c:6600 | |
33318 | #, gcc-internal-format | |
33319 | msgid "could not convert template argument %qE to %qT" | |
33320 | msgstr "no se puede convertir el argumento de plantilla %qE a %qT" | |
33321 | ||
33322 | -#: cp/pt.c:6664 cp/pt.c:6813 | |
33323 | +#: cp/pt.c:6666 cp/pt.c:6815 | |
33324 | #, gcc-internal-format, gfc-internal-format | |
33325 | msgid "wrong number of template arguments (%d, should be %d)" | |
33326 | msgstr "número erróneo de argumentos de plantilla (%d, debe ser %d)" | |
33327 | ||
33328 | -#: cp/pt.c:6809 | |
33329 | +#: cp/pt.c:6811 | |
33330 | #, gcc-internal-format, gfc-internal-format | |
33331 | msgid "wrong number of template arguments (%d, should be %d or more)" | |
33332 | msgstr "número erróneo de argumentos de plantilla (%d, debe ser %d o más)" | |
33333 | ||
33334 | -#: cp/pt.c:6817 | |
33335 | +#: cp/pt.c:6819 | |
33336 | #, gcc-internal-format | |
33337 | msgid "provided for %q+D" | |
33338 | msgstr "provisto por %q+D" | |
33339 | ||
33340 | -#: cp/pt.c:6898 | |
33341 | +#: cp/pt.c:6900 | |
33342 | #, gcc-internal-format, gfc-internal-format | |
33343 | msgid "template argument %d is invalid" | |
33344 | msgstr "el argumento de plantilla %d es inválido" | |
33345 | ||
33346 | -#: cp/pt.c:7087 | |
33347 | +#: cp/pt.c:7089 | |
33348 | #, gcc-internal-format | |
33349 | msgid "%q#D is not a function template" | |
33350 | msgstr "%q#D no es una plantilla de función" | |
33351 | ||
33352 | -#: cp/pt.c:7251 | |
33353 | +#: cp/pt.c:7253 | |
33354 | #, gcc-internal-format | |
33355 | msgid "non-template type %qT used as a template" | |
33356 | msgstr "se usa el tipo %qT que no es plantilla como una plantilla" | |
33357 | ||
33358 | -#: cp/pt.c:7253 | |
33359 | +#: cp/pt.c:7255 | |
33360 | #, gcc-internal-format | |
33361 | msgid "for template declaration %q+D" | |
33362 | msgstr "para la declaración de plantilla %q+D" | |
33363 | ||
33364 | -#: cp/pt.c:8058 | |
33365 | +#: cp/pt.c:8060 | |
33366 | msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth= to increase the maximum) substituting %qS" | |
33367 | msgstr "la profundidad de instanciación de la plantilla excede el máximo de %d (use -ftemplate-depth= para incrementar el máximo) al sustituir %qS" | |
33368 | ||
33369 | -#: cp/pt.c:8062 | |
33370 | +#: cp/pt.c:8064 | |
33371 | #, gcc-internal-format | |
33372 | msgid "template instantiation depth exceeds maximum of %d (use -ftemplate-depth= to increase the maximum) instantiating %qD" | |
33373 | msgstr "la profundidad de instanciación de la plantilla excede el máximo de %d (use -ftemplate-depth= para incrementar el máximo) al instanciar %qD" | |
33374 | ||
33375 | -#: cp/pt.c:9409 | |
33376 | +#: cp/pt.c:9411 | |
33377 | #, gcc-internal-format | |
33378 | msgid "mismatched argument pack lengths while expanding %<%T%>" | |
33379 | msgstr "no coinciden las longitudes de los paquetes de argumentos al expandir %<%T%>" | |
33380 | ||
33381 | -#: cp/pt.c:9413 | |
33382 | +#: cp/pt.c:9415 | |
33383 | #, gcc-internal-format | |
33384 | msgid "mismatched argument pack lengths while expanding %<%E%>" | |
33385 | msgstr "no coinciden las longitudes de los paquetes de argumentos al expandir %<%E%>" | |
33386 | ||
33387 | -#: cp/pt.c:10539 | |
33388 | +#: cp/pt.c:10541 | |
33389 | #, gcc-internal-format | |
33390 | msgid "instantiation of %q+D as type %qT" | |
33391 | msgstr "instanciación de %q+D como tipo %qT" | |
33392 | @@ -32597,257 +32803,257 @@ | |
33393 | #. | |
33394 | #. is an attempt to declare a variable with function | |
33395 | #. type. | |
33396 | -#: cp/pt.c:10695 | |
33397 | +#: cp/pt.c:10697 | |
33398 | #, gcc-internal-format | |
33399 | msgid "variable %qD has function type" | |
33400 | msgstr "la variable %qD tiene tipo de función" | |
33401 | ||
33402 | -#: cp/pt.c:10864 | |
33403 | +#: cp/pt.c:10866 | |
33404 | #, gcc-internal-format | |
33405 | msgid "invalid parameter type %qT" | |
33406 | msgstr "tipo de parámetro %qT inválido" | |
33407 | ||
33408 | -#: cp/pt.c:10866 | |
33409 | +#: cp/pt.c:10868 | |
33410 | #, gcc-internal-format | |
33411 | msgid "in declaration %q+D" | |
33412 | msgstr "en la declaración %q+D" | |
33413 | ||
33414 | -#: cp/pt.c:10943 | |
33415 | +#: cp/pt.c:10945 | |
33416 | #, gcc-internal-format | |
33417 | msgid "function returning an array" | |
33418 | msgstr "la función devuelve una matriz" | |
33419 | ||
33420 | -#: cp/pt.c:10945 | |
33421 | +#: cp/pt.c:10947 | |
33422 | #, gcc-internal-format | |
33423 | msgid "function returning a function" | |
33424 | msgstr "la función devuelve una función" | |
33425 | ||
33426 | -#: cp/pt.c:10975 | |
33427 | +#: cp/pt.c:10977 | |
33428 | #, gcc-internal-format | |
33429 | msgid "creating pointer to member function of non-class type %qT" | |
33430 | msgstr "se crea un puntero a función miembro del tipo %qT que no es clase" | |
33431 | ||
33432 | -#: cp/pt.c:11514 | |
33433 | +#: cp/pt.c:11518 | |
33434 | #, gcc-internal-format | |
33435 | msgid "forming reference to void" | |
33436 | msgstr "se forma la referencia a void" | |
33437 | ||
33438 | -#: cp/pt.c:11516 | |
33439 | +#: cp/pt.c:11520 | |
33440 | #, gcc-internal-format | |
33441 | msgid "forming pointer to reference type %qT" | |
33442 | msgstr "se forma un puntero para referenciar al tipo %qT" | |
33443 | ||
33444 | -#: cp/pt.c:11518 | |
33445 | +#: cp/pt.c:11522 | |
33446 | #, gcc-internal-format | |
33447 | msgid "forming reference to reference type %qT" | |
33448 | msgstr "se forma una referencia para referenciar al tipo %qT" | |
33449 | ||
33450 | -#: cp/pt.c:11567 | |
33451 | +#: cp/pt.c:11571 | |
33452 | #, gcc-internal-format | |
33453 | msgid "creating pointer to member of non-class type %qT" | |
33454 | msgstr "se crea un puntero al miembro del tipo %qT que no es clase" | |
33455 | ||
33456 | -#: cp/pt.c:11573 | |
33457 | +#: cp/pt.c:11577 | |
33458 | #, gcc-internal-format | |
33459 | msgid "creating pointer to member reference type %qT" | |
33460 | msgstr "se crea un puntero al miembro de referencia de tipo %qT" | |
33461 | ||
33462 | -#: cp/pt.c:11579 | |
33463 | +#: cp/pt.c:11583 | |
33464 | #, gcc-internal-format | |
33465 | msgid "creating pointer to member of type void" | |
33466 | msgstr "se crea un puntero al miembro de tipo void" | |
33467 | ||
33468 | -#: cp/pt.c:11641 | |
33469 | +#: cp/pt.c:11645 | |
33470 | #, gcc-internal-format | |
33471 | msgid "creating array of %qT" | |
33472 | msgstr "se crea la matriz de %qT" | |
33473 | ||
33474 | -#: cp/pt.c:11647 | |
33475 | +#: cp/pt.c:11651 | |
33476 | #, gcc-internal-format | |
33477 | msgid "creating array of %qT, which is an abstract class type" | |
33478 | msgstr "se crea la matriz de %qT, la cual es un tipo de clase abstracta" | |
33479 | ||
33480 | -#: cp/pt.c:11676 | |
33481 | +#: cp/pt.c:11680 | |
33482 | #, gcc-internal-format | |
33483 | msgid "%qT is not a class, struct, or union type" | |
33484 | msgstr "%qT no es de tipo clase, struct o union" | |
33485 | ||
33486 | -#: cp/pt.c:11713 | |
33487 | +#: cp/pt.c:11717 | |
33488 | #, gcc-internal-format | |
33489 | msgid "%qT resolves to %qT, which is not an enumeration type" | |
33490 | msgstr "%qT resuelve a %qT, el cual no es un tipo enumerado" | |
33491 | ||
33492 | -#: cp/pt.c:11721 | |
33493 | +#: cp/pt.c:11725 | |
33494 | #, gcc-internal-format | |
33495 | msgid "%qT resolves to %qT, which is is not a class type" | |
33496 | msgstr "%qT resuelve a %qT, el cual no es un tipo de clase" | |
33497 | ||
33498 | -#: cp/pt.c:11838 | |
33499 | +#: cp/pt.c:11842 | |
33500 | #, gcc-internal-format | |
33501 | msgid "use of %qs in template" | |
33502 | msgstr "uso de %qs en la plantilla" | |
33503 | ||
33504 | -#: cp/pt.c:11974 | |
33505 | +#: cp/pt.c:11978 | |
33506 | #, gcc-internal-format | |
33507 | msgid "qualifying type %qT does not match destructor name ~%qT" | |
33508 | msgstr "el tipo calificador %qT no coincide con el nombre del destructor ~%qT" | |
33509 | ||
33510 | -#: cp/pt.c:11989 | |
33511 | +#: cp/pt.c:11993 | |
33512 | #, gcc-internal-format | |
33513 | msgid "dependent-name %qE is parsed as a non-type, but instantiation yields a type" | |
33514 | msgstr "el nombre dependiente %qE se decodifica como un no tipo, pero la instanciación genera un tipo" | |
33515 | ||
33516 | -#: cp/pt.c:11991 | |
33517 | +#: cp/pt.c:11995 | |
33518 | #, gcc-internal-format | |
33519 | msgid "say %<typename %E%> if a type is meant" | |
33520 | msgstr "escriba %<typename %E%> si quiere un tipo" | |
33521 | ||
33522 | -#: cp/pt.c:12144 | |
33523 | +#: cp/pt.c:12148 | |
33524 | #, gcc-internal-format | |
33525 | msgid "using invalid field %qD" | |
33526 | msgstr "se usa el campo inválido %qD" | |
33527 | ||
33528 | -#: cp/pt.c:12499 cp/pt.c:13300 | |
33529 | +#: cp/pt.c:12503 cp/pt.c:13313 | |
33530 | #, gcc-internal-format | |
33531 | msgid "invalid use of pack expansion expression" | |
33532 | msgstr "uso inválido de la expresión de expansión de paquete" | |
33533 | ||
33534 | -#: cp/pt.c:12503 cp/pt.c:13304 | |
33535 | +#: cp/pt.c:12507 cp/pt.c:13317 | |
33536 | #, gcc-internal-format | |
33537 | msgid "use %<...%> to expand argument pack" | |
33538 | msgstr "use %<...%> para expandir el paquete de argumentos" | |
33539 | ||
33540 | -#: cp/pt.c:13880 | |
33541 | +#: cp/pt.c:13893 | |
33542 | #, gcc-internal-format | |
33543 | msgid "%qD was not declared in this scope, and no declarations were found by argument-dependent lookup at the point of instantiation" | |
33544 | msgstr "%qD no se declaró en este ámbito, y no se encontraron declaraciones en la búsqueda dependiente de argumentos en el punto de la instanciación" | |
33545 | ||
33546 | -#: cp/pt.c:13889 | |
33547 | +#: cp/pt.c:13902 | |
33548 | #, gcc-internal-format | |
33549 | msgid "declarations in dependent base %qT are not found by unqualified lookup" | |
33550 | msgstr "no se encontraron declaraciones en la base dependiente %qT pur la búsqueda no calificada" | |
33551 | ||
33552 | -#: cp/pt.c:13894 | |
33553 | +#: cp/pt.c:13907 | |
33554 | #, gcc-internal-format | |
33555 | msgid "use %<this->%D%> instead" | |
33556 | msgstr "use %<this->%D%> en su lugar" | |
33557 | ||
33558 | -#: cp/pt.c:13897 | |
33559 | +#: cp/pt.c:13910 | |
33560 | #, gcc-internal-format | |
33561 | msgid "use %<%T::%D%> instead" | |
33562 | msgstr "use %<%T::%D%> en su lugar" | |
33563 | ||
33564 | -#: cp/pt.c:13901 | |
33565 | +#: cp/pt.c:13914 | |
33566 | #, gcc-internal-format | |
33567 | msgid "%q+D declared here, later in the translation unit" | |
33568 | msgstr "%q+D se declaró aquí, después en la unidad de translación" | |
33569 | ||
33570 | -#: cp/pt.c:14134 | |
33571 | +#: cp/pt.c:14147 | |
33572 | #, gcc-internal-format | |
33573 | msgid "%qT is not a class or namespace" | |
33574 | msgstr "%qT no es una clase o un espacio de nombres" | |
33575 | ||
33576 | -#: cp/pt.c:14137 | |
33577 | +#: cp/pt.c:14150 | |
33578 | #, gcc-internal-format | |
33579 | msgid "%qD is not a class or namespace" | |
33580 | msgstr "%qD no es una clase o un espacio de nombres" | |
33581 | ||
33582 | -#: cp/pt.c:14429 | |
33583 | +#: cp/pt.c:14442 | |
33584 | #, gcc-internal-format | |
33585 | msgid "%qT is/uses anonymous type" | |
33586 | msgstr "%qT es/usa un tipo anónimo" | |
33587 | ||
33588 | -#: cp/pt.c:14431 | |
33589 | +#: cp/pt.c:14444 | |
33590 | #, gcc-internal-format | |
33591 | msgid "template argument for %qD uses local type %qT" | |
33592 | msgstr "el argumento de plantilla para %qD usa el tipo local %qT" | |
33593 | ||
33594 | -#: cp/pt.c:14441 | |
33595 | +#: cp/pt.c:14454 | |
33596 | #, gcc-internal-format | |
33597 | msgid "%qT is a variably modified type" | |
33598 | msgstr "%qT es un tipo modificado variablemente" | |
33599 | ||
33600 | -#: cp/pt.c:14452 | |
33601 | +#: cp/pt.c:14465 | |
33602 | #, gcc-internal-format | |
33603 | msgid "integral expression %qE is not constant" | |
33604 | msgstr "la expresión integral %qE no es una constante" | |
33605 | ||
33606 | -#: cp/pt.c:14470 | |
33607 | +#: cp/pt.c:14483 | |
33608 | #, gcc-internal-format | |
33609 | msgid " trying to instantiate %qD" | |
33610 | msgstr " se trata de instanciar %qD" | |
33611 | ||
33612 | -#: cp/pt.c:17791 | |
33613 | +#: cp/pt.c:17804 | |
33614 | #, gcc-internal-format | |
33615 | msgid "ambiguous class template instantiation for %q#T" | |
33616 | msgstr "instanciación de plantilla clase ambigua para %q#T" | |
33617 | ||
33618 | -#: cp/pt.c:17795 | |
33619 | +#: cp/pt.c:17808 | |
33620 | #, gcc-internal-format | |
33621 | msgid "%s %+#T" | |
33622 | msgstr "%s %+#T" | |
33623 | ||
33624 | -#: cp/pt.c:17819 cp/pt.c:17902 | |
33625 | +#: cp/pt.c:17832 cp/pt.c:17915 | |
33626 | #, gcc-internal-format | |
33627 | msgid "explicit instantiation of non-template %q#D" | |
33628 | msgstr "instanciación explícita de %q#D que no es plantilla" | |
33629 | ||
33630 | -#: cp/pt.c:17834 | |
33631 | +#: cp/pt.c:17847 | |
33632 | #, gcc-internal-format | |
33633 | msgid "%qD is not a static data member of a class template" | |
33634 | msgstr "%qD no es un dato miembro static de una plantilla de clase" | |
33635 | ||
33636 | -#: cp/pt.c:17840 cp/pt.c:17897 | |
33637 | +#: cp/pt.c:17853 cp/pt.c:17910 | |
33638 | #, gcc-internal-format | |
33639 | msgid "no matching template for %qD found" | |
33640 | msgstr "no se encontró una plantilla coincidente para %qD" | |
33641 | ||
33642 | -#: cp/pt.c:17845 | |
33643 | +#: cp/pt.c:17858 | |
33644 | #, gcc-internal-format | |
33645 | msgid "type %qT for explicit instantiation %qD does not match declared type %qT" | |
33646 | msgstr "el tipo %qT para la instanciación explícita %qD no coincide con el tipo declarado %qT" | |
33647 | ||
33648 | -#: cp/pt.c:17853 | |
33649 | +#: cp/pt.c:17866 | |
33650 | #, gcc-internal-format | |
33651 | msgid "explicit instantiation of %q#D" | |
33652 | msgstr "instanciación explícita de %q#D" | |
33653 | ||
33654 | -#: cp/pt.c:17889 | |
33655 | +#: cp/pt.c:17902 | |
33656 | #, gcc-internal-format | |
33657 | msgid "duplicate explicit instantiation of %q#D" | |
33658 | msgstr "instanciación explícita duplicada de %q#D" | |
33659 | ||
33660 | -#: cp/pt.c:17912 cp/pt.c:18009 | |
33661 | +#: cp/pt.c:17925 cp/pt.c:18022 | |
33662 | #, gcc-internal-format | |
33663 | msgid "ISO C++ 1998 forbids the use of %<extern%> on explicit instantiations" | |
33664 | msgstr "ISO C++ 1998 prohíbe el uso de %<extern%> en instanciaciones explícitas" | |
33665 | ||
33666 | -#: cp/pt.c:17917 cp/pt.c:18026 | |
33667 | +#: cp/pt.c:17930 cp/pt.c:18039 | |
33668 | #, gcc-internal-format | |
33669 | msgid "storage class %qD applied to template instantiation" | |
33670 | msgstr "clase de almacenamiento %qD aplicada a la instanciación de una plantilla" | |
33671 | ||
33672 | -#: cp/pt.c:17985 | |
33673 | +#: cp/pt.c:17998 | |
33674 | #, gcc-internal-format | |
33675 | msgid "explicit instantiation of non-class template %qD" | |
33676 | msgstr "instanciación explícita de la plantilla %qD que no es clase" | |
33677 | ||
33678 | -#: cp/pt.c:17987 | |
33679 | +#: cp/pt.c:18000 | |
33680 | #, gcc-internal-format | |
33681 | msgid "explicit instantiation of non-template type %qT" | |
33682 | msgstr "instanciación explícita del tipo %qT que no es plantilla" | |
33683 | ||
33684 | -#: cp/pt.c:17996 | |
33685 | +#: cp/pt.c:18009 | |
33686 | #, gcc-internal-format | |
33687 | msgid "explicit instantiation of %q#T before definition of template" | |
33688 | msgstr "instanciación explícita de %q#T antes de la definición de la plantilla" | |
33689 | ||
33690 | -#: cp/pt.c:18014 | |
33691 | +#: cp/pt.c:18027 | |
33692 | #, gcc-internal-format | |
33693 | msgid "ISO C++ forbids the use of %qE on explicit instantiations" | |
33694 | msgstr "ISO C++ prohíbe el uso de %qE en las instanciaciones explícitas" | |
33695 | ||
33696 | -#: cp/pt.c:18060 | |
33697 | +#: cp/pt.c:18073 | |
33698 | #, gcc-internal-format | |
33699 | msgid "duplicate explicit instantiation of %q#T" | |
33700 | msgstr "instanciación explícita duplicada de %q#T" | |
33701 | @@ -32859,32 +33065,32 @@ | |
33702 | #. member function or static data member of a class template | |
33703 | #. shall be present in every translation unit in which it is | |
33704 | #. explicitly instantiated. | |
33705 | -#: cp/pt.c:18614 | |
33706 | +#: cp/pt.c:18627 | |
33707 | #, gcc-internal-format | |
33708 | msgid "explicit instantiation of %qD but no definition available" | |
33709 | msgstr "instanciación explícita de %qD pero no hay una definición disponible" | |
33710 | ||
33711 | -#: cp/pt.c:18790 | |
33712 | +#: cp/pt.c:18803 | |
33713 | #, gcc-internal-format | |
33714 | msgid "template instantiation depth exceeds maximum of %d instantiating %q+D, possibly from virtual table generation (use -ftemplate-depth= to increase the maximum)" | |
33715 | msgstr "la profundidad de instanciación de la plantilla excede el máximo de %d al instanciar %q+D, posiblemente de la generación de tabla virtual (use -ftemplate-depth= para incrementar el máximo)" | |
33716 | ||
33717 | -#: cp/pt.c:19161 | |
33718 | +#: cp/pt.c:19175 | |
33719 | #, gcc-internal-format | |
33720 | msgid "invalid template non-type parameter" | |
33721 | msgstr "parámetro que no es tipo plantilla inválido" | |
33722 | ||
33723 | -#: cp/pt.c:19163 | |
33724 | +#: cp/pt.c:19177 | |
33725 | #, gcc-internal-format | |
33726 | msgid "%q#T is not a valid type for a template non-type parameter" | |
33727 | msgstr "%q#T no es un tipo válido para un parámetro que no es tipo plantilla" | |
33728 | ||
33729 | -#: cp/pt.c:20249 | |
33730 | +#: cp/pt.c:20263 | |
33731 | #, gcc-internal-format | |
33732 | msgid "deducing from brace-enclosed initializer list requires #include <initializer_list>" | |
33733 | msgstr "la deducción de una lista inicializadora encerrada entre llaves requiere #include <initializer_list>" | |
33734 | ||
33735 | -#: cp/pt.c:20308 | |
33736 | +#: cp/pt.c:20322 | |
33737 | #, gcc-internal-format | |
33738 | msgid "variable %q#D with %<auto%> type used in its own initializer" | |
33739 | msgstr "se usó la variable %q#D con tipo %<auto%> en su propio inicializador" | |
33740 | @@ -32892,12 +33098,12 @@ | |
33741 | #. If type is error_mark_node a diagnostic must have been | |
33742 | #. emitted by now. Also, having a mention to '<type error>' | |
33743 | #. in the diagnostic is not really useful to the user. | |
33744 | -#: cp/pt.c:20340 | |
33745 | +#: cp/pt.c:20354 | |
33746 | #, gcc-internal-format | |
33747 | msgid "unable to deduce %qT from %qE" | |
33748 | msgstr "no se puede deducir %qT de %qE" | |
33749 | ||
33750 | -#: cp/pt.c:20351 | |
33751 | +#: cp/pt.c:20365 | |
33752 | #, gcc-internal-format | |
33753 | msgid "inconsistent deduction for %qT: %qT and then %qT" | |
33754 | msgstr "deducción inconsistente para %qT: %qT y después %qT" | |
33755 | @@ -33134,7 +33340,7 @@ | |
33756 | msgid "invalid base-class specification" | |
33757 | msgstr "especificación de clase base inválida" | |
33758 | ||
33759 | -#: cp/semantics.c:2999 cp/semantics.c:8802 | |
33760 | +#: cp/semantics.c:2999 cp/semantics.c:8817 | |
33761 | #, gcc-internal-format | |
33762 | msgid "%qD is not captured" | |
33763 | msgstr "%qD no se capturó" | |
33764 | @@ -33312,203 +33518,208 @@ | |
33765 | msgid "constexpr constructor does not have empty body" | |
33766 | msgstr "el constructor constexpr no tiene cuerpo vacío" | |
33767 | ||
33768 | -#: cp/semantics.c:6065 | |
33769 | +#: cp/semantics.c:6042 | |
33770 | #, gcc-internal-format | |
33771 | +msgid "%<constexpr%> constructor for union %qT must initialize exactly one non-static data member" | |
33772 | +msgstr "el constructor %<constexpr%> para union %qT debe inicializar exactamente un dato miembro que no es static" | |
33773 | + | |
33774 | +#: cp/semantics.c:6080 | |
33775 | +#, gcc-internal-format | |
33776 | msgid "uninitialized member %qD in %<constexpr%> constructor" | |
33777 | msgstr "miembro %qD sin inicializar en el constructor %<constexpr%>" | |
33778 | ||
33779 | -#: cp/semantics.c:6096 | |
33780 | +#: cp/semantics.c:6111 | |
33781 | #, gcc-internal-format | |
33782 | msgid "body of constexpr function %qD not a return-statement" | |
33783 | msgstr "el cuerpo de la función constexpr %qD no es una declaración de devolución" | |
33784 | ||
33785 | -#: cp/semantics.c:6151 | |
33786 | +#: cp/semantics.c:6166 | |
33787 | #, gcc-internal-format | |
33788 | msgid "%q+D is not usable as a constexpr function because:" | |
33789 | msgstr "%q+D no se puede usar como una función constexpr porque:" | |
33790 | ||
33791 | -#: cp/semantics.c:6475 | |
33792 | +#: cp/semantics.c:6490 | |
33793 | #, gcc-internal-format | |
33794 | msgid "expression %qE does not designate a constexpr function" | |
33795 | msgstr "la expresión %qE no designa una función constexpr" | |
33796 | ||
33797 | -#: cp/semantics.c:6489 cp/semantics.c:8072 | |
33798 | +#: cp/semantics.c:6504 cp/semantics.c:8087 | |
33799 | #, gcc-internal-format | |
33800 | msgid "call to non-constexpr function %qD" | |
33801 | msgstr "llamada a la función %qD que no es constexpr" | |
33802 | ||
33803 | #. The definition of fun was somehow unsuitable. | |
33804 | -#: cp/semantics.c:6517 | |
33805 | +#: cp/semantics.c:6532 | |
33806 | #, gcc-internal-format | |
33807 | msgid "%qD called in a constant expression" | |
33808 | msgstr "se llamó %qD en una expresión constante" | |
33809 | ||
33810 | -#: cp/semantics.c:6521 | |
33811 | +#: cp/semantics.c:6536 | |
33812 | #, gcc-internal-format | |
33813 | msgid "%qD used before its definition" | |
33814 | msgstr "se usó %qD antes de su definición" | |
33815 | ||
33816 | -#: cp/semantics.c:6555 | |
33817 | +#: cp/semantics.c:6570 | |
33818 | #, gcc-internal-format | |
33819 | msgid "call has circular dependency" | |
33820 | msgstr "la llamada tiene una dependencia circular" | |
33821 | ||
33822 | -#: cp/semantics.c:6563 | |
33823 | +#: cp/semantics.c:6578 | |
33824 | #, gcc-internal-format, gfc-internal-format | |
33825 | msgid "constexpr evaluation depth exceeds maximum of %d (use -fconstexpr-depth= to increase the maximum)" | |
33826 | msgstr "la profundidad de evaluación de constexpr excede el máximo de %d (use -fconstexpr-depth= para incrementar el máximo)" | |
33827 | ||
33828 | -#: cp/semantics.c:6641 | |
33829 | +#: cp/semantics.c:6656 | |
33830 | #, gcc-internal-format | |
33831 | msgid "%q+E is not a constant expression" | |
33832 | msgstr "%q+E no es una expresión constante" | |
33833 | ||
33834 | -#: cp/semantics.c:6781 | |
33835 | +#: cp/semantics.c:6796 | |
33836 | #, gcc-internal-format | |
33837 | msgid "array subscript out of bound" | |
33838 | msgstr "el subíndice de la matriz está fuera de los límites" | |
33839 | ||
33840 | -#: cp/semantics.c:6827 cp/semantics.c:6887 cp/semantics.c:7523 | |
33841 | +#: cp/semantics.c:6842 cp/semantics.c:6902 cp/semantics.c:7538 | |
33842 | #, gcc-internal-format | |
33843 | msgid "%qE is not a constant expression" | |
33844 | msgstr "%qE no es una expresión constante" | |
33845 | ||
33846 | -#: cp/semantics.c:6833 | |
33847 | +#: cp/semantics.c:6848 | |
33848 | #, gcc-internal-format | |
33849 | msgid "mutable %qD is not usable in a constant expression" | |
33850 | msgstr "%qD mutable no se puede usar en una expresión constante" | |
33851 | ||
33852 | -#: cp/semantics.c:6848 | |
33853 | +#: cp/semantics.c:6863 | |
33854 | #, gcc-internal-format | |
33855 | msgid "accessing %qD member instead of initialized %qD member in constant expression" | |
33856 | msgstr "se accede al miembro %qD en lugar del miembro inicializado %qD en la expresión constante" | |
33857 | ||
33858 | -#: cp/semantics.c:7388 | |
33859 | +#: cp/semantics.c:7403 | |
33860 | #, gcc-internal-format | |
33861 | msgid "accessing value of %qE through a %qT glvalue in a constant expression" | |
33862 | msgstr "se accede al valor de %qE a través de glvalue %qT en una expresión constante" | |
33863 | ||
33864 | -#: cp/semantics.c:7419 | |
33865 | +#: cp/semantics.c:7434 | |
33866 | #, gcc-internal-format | |
33867 | msgid "the value of %qD is not usable in a constant expression" | |
33868 | msgstr "el valor de %qD no se puede usar en una expresión constante" | |
33869 | ||
33870 | -#: cp/semantics.c:7426 | |
33871 | +#: cp/semantics.c:7441 | |
33872 | #, gcc-internal-format | |
33873 | msgid "%qD used in its own initializer" | |
33874 | msgstr "se usó %qD en su propio inicializador" | |
33875 | ||
33876 | -#: cp/semantics.c:7431 | |
33877 | +#: cp/semantics.c:7446 | |
33878 | #, gcc-internal-format | |
33879 | msgid "%q#D is not const" | |
33880 | msgstr "%q#D no es const" | |
33881 | ||
33882 | -#: cp/semantics.c:7434 | |
33883 | +#: cp/semantics.c:7449 | |
33884 | #, gcc-internal-format | |
33885 | msgid "%q#D is volatile" | |
33886 | msgstr "%q+#D es volatile" | |
33887 | ||
33888 | -#: cp/semantics.c:7438 | |
33889 | +#: cp/semantics.c:7453 | |
33890 | #, gcc-internal-format | |
33891 | msgid "%qD was not initialized with a constant expression" | |
33892 | msgstr "%qD no se inicializó con una expresion constante" | |
33893 | ||
33894 | -#: cp/semantics.c:7447 | |
33895 | +#: cp/semantics.c:7462 | |
33896 | #, gcc-internal-format | |
33897 | msgid "%qD was not declared %<constexpr%>" | |
33898 | msgstr "%qD no se declaró %<constexpr%>" | |
33899 | ||
33900 | -#: cp/semantics.c:7450 | |
33901 | +#: cp/semantics.c:7465 | |
33902 | #, gcc-internal-format | |
33903 | msgid "%qD does not have integral or enumeration type" | |
33904 | msgstr "%qD no tiene tipo integral o de enumeración" | |
33905 | ||
33906 | -#: cp/semantics.c:7511 cp/semantics.c:8204 | |
33907 | +#: cp/semantics.c:7526 cp/semantics.c:8219 | |
33908 | #, gcc-internal-format | |
33909 | msgid "use of the value of the object being constructed in a constant expression" | |
33910 | msgstr "uso del valor del objeto en construcción en una expresión constante" | |
33911 | ||
33912 | -#: cp/semantics.c:7539 cp/semantics.c:8342 | |
33913 | +#: cp/semantics.c:7554 cp/semantics.c:8357 | |
33914 | #, gcc-internal-format | |
33915 | msgid "temporary of non-literal type %qT in a constant expression" | |
33916 | msgstr "temporal del tipo %qT que no es literal en una expresión constante" | |
33917 | ||
33918 | -#: cp/semantics.c:7787 cp/semantics.c:8246 cp/semantics.c:8495 | |
33919 | +#: cp/semantics.c:7802 cp/semantics.c:8261 cp/semantics.c:8510 | |
33920 | #, gcc-internal-format | |
33921 | msgid "expression %qE is not a constant-expression" | |
33922 | msgstr "la expresión %qE no es una expresión constante" | |
33923 | ||
33924 | -#: cp/semantics.c:7792 | |
33925 | +#: cp/semantics.c:7807 | |
33926 | #, gcc-internal-format | |
33927 | msgid "unexpected expression %qE of kind %s" | |
33928 | msgstr "expresión %qE inesperada de género %s" | |
33929 | ||
33930 | -#: cp/semantics.c:7823 | |
33931 | +#: cp/semantics.c:7838 | |
33932 | #, gcc-internal-format | |
33933 | msgid "%qT cannot be the type of a complete constant expression because it has mutable sub-objects" | |
33934 | msgstr "%qT no puede ser el tipo de una expresión constante completa porque tiene sub-objetos mutables" | |
33935 | ||
33936 | -#: cp/semantics.c:7836 | |
33937 | +#: cp/semantics.c:7851 | |
33938 | #, gcc-internal-format | |
33939 | msgid "conversion from pointer type %qT to arithmetic type %qT in a constant-expression" | |
33940 | msgstr "conversión del tipo puntero %qT al tipo aritmético %qT en una expresión constante" | |
33941 | ||
33942 | -#: cp/semantics.c:8007 | |
33943 | +#: cp/semantics.c:8022 | |
33944 | #, gcc-internal-format | |
33945 | msgid "expression %qE has side-effects" | |
33946 | msgstr "la expresión %qE tiene efectos colaterales" | |
33947 | ||
33948 | -#: cp/semantics.c:8090 | |
33949 | +#: cp/semantics.c:8105 | |
33950 | #, gcc-internal-format | |
33951 | msgid "calling a member function of the object being constructed in a constant expression" | |
33952 | msgstr "se llamó a una función miembro del objeto en construcción en una expresión constante" | |
33953 | ||
33954 | -#: cp/semantics.c:8172 | |
33955 | +#: cp/semantics.c:8187 | |
33956 | #, gcc-internal-format | |
33957 | msgid "address-of an object %qE with thread local or automatic storage is not a constant expression" | |
33958 | msgstr "la dirección de un objeto %qE con hilo local o almacenamiento automático no es una expresión constante" | |
33959 | ||
33960 | -#: cp/semantics.c:8258 | |
33961 | +#: cp/semantics.c:8273 | |
33962 | #, gcc-internal-format | |
33963 | msgid "typeid-expression is not a constant expression because %qE is of polymorphic type" | |
33964 | msgstr "la expresión id de tipo no es una expresión constante porque %qE es de tipo polimórfico" | |
33965 | ||
33966 | -#: cp/semantics.c:8271 | |
33967 | +#: cp/semantics.c:8286 | |
33968 | #, gcc-internal-format | |
33969 | msgid "difference of two pointer expressions is not a constant expression" | |
33970 | msgstr "la diferencia de dos expresiones puntero no es una expresión constante" | |
33971 | ||
33972 | -#: cp/semantics.c:8290 | |
33973 | +#: cp/semantics.c:8305 | |
33974 | #, gcc-internal-format | |
33975 | msgid "pointer comparison expression is not a constant expression" | |
33976 | msgstr "la expresión de comparación de punteros no es una expresión constante" | |
33977 | ||
33978 | -#: cp/semantics.c:8391 | |
33979 | +#: cp/semantics.c:8406 | |
33980 | #, gcc-internal-format | |
33981 | msgid "division by zero is not a constant-expression" | |
33982 | msgstr "la división entre cero no es una expresión constante" | |
33983 | ||
33984 | -#: cp/semantics.c:8503 | |
33985 | +#: cp/semantics.c:8518 | |
33986 | #, gcc-internal-format | |
33987 | msgid "non-constant array initialization" | |
33988 | msgstr "inicialización de una matriz que no es constante" | |
33989 | ||
33990 | -#: cp/semantics.c:8509 | |
33991 | +#: cp/semantics.c:8524 | |
33992 | #, gcc-internal-format, gfc-internal-format | |
33993 | msgid "unexpected AST of kind %s" | |
33994 | msgstr "AST inesperado de género %s" | |
33995 | ||
33996 | -#: cp/semantics.c:8999 | |
33997 | +#: cp/semantics.c:9014 | |
33998 | #, gcc-internal-format | |
33999 | msgid "cannot capture %qE by reference" | |
34000 | msgstr "no se puede capturar %qE por referencia" | |
34001 | ||
34002 | -#: cp/semantics.c:9022 | |
34003 | +#: cp/semantics.c:9037 | |
34004 | #, gcc-internal-format | |
34005 | msgid "already captured %qD in lambda expression" | |
34006 | msgstr "ya se capturó %qD en la expresión lambda" | |
34007 | ||
34008 | -#: cp/semantics.c:9168 | |
34009 | +#: cp/semantics.c:9183 | |
34010 | #, gcc-internal-format | |
34011 | msgid "%<this%> was not captured for this lambda function" | |
34012 | msgstr "no se capturó %<this%> para esta función lambda" | |
34013 | @@ -34703,7 +34914,7 @@ | |
34014 | ||
34015 | #: fortran/array.c:216 fortran/array.c:576 fortran/check.c:2149 | |
34016 | #: fortran/check.c:3915 fortran/check.c:3953 fortran/check.c:4120 | |
34017 | -#: fortran/match.c:1767 fortran/match.c:2834 fortran/match.c:3030 | |
34018 | +#: fortran/match.c:1766 fortran/match.c:2833 fortran/match.c:3029 | |
34019 | #: fortran/simplify.c:4538 | |
34020 | #, gcc-internal-format, gfc-internal-format | |
34021 | msgid "Coarrays disabled at %C, use -fcoarray= to enable" | |
34022 | @@ -34824,7 +35035,7 @@ | |
34023 | msgid "Fortran 2003: Array constructor including type specification at %C" | |
34024 | msgstr "Fortran 2003: Los constructores de matriz incluyen especificación de tipo en %C" | |
34025 | ||
34026 | -#: fortran/array.c:1055 fortran/match.c:3466 | |
34027 | +#: fortran/array.c:1055 fortran/match.c:3465 | |
34028 | #, gcc-internal-format, gfc-internal-format | |
34029 | msgid "Type-spec at %L cannot contain a deferred type parameter" | |
34030 | msgstr "La especificación de tipo en %L no puede tener un parámetro de tipo diferido" | |
34031 | @@ -34846,7 +35057,7 @@ | |
34032 | ||
34033 | #. Problems occur when we get something like | |
34034 | #. integer :: a(lots) = (/(i, i=1, lots)/) | |
34035 | -#: fortran/array.c:1621 fortran/expr.c:1538 fortran/trans-array.c:5260 | |
34036 | +#: fortran/array.c:1621 fortran/expr.c:1538 fortran/trans-array.c:5259 | |
34037 | #, gcc-internal-format, gfc-internal-format | |
34038 | msgid "The number of elements in the array constructor at %L requires an increase of the allowed %d upper limit. See -fmax-array-constructor option" | |
34039 | msgstr "El número de elementos en el constructor de matriz en %L requiere un incremento del límite superior %d permitido. Vea la opción -fmax-array-constructor" | |
34040 | @@ -35016,7 +35227,7 @@ | |
34041 | ||
34042 | #: fortran/check.c:910 fortran/check.c:946 fortran/check.c:2853 | |
34043 | #, gcc-internal-format, gfc-internal-format | |
34044 | -msgid "'%s' argument of '%s' intrinsic at %L shall not be conindexed" | |
34045 | +msgid "'%s' argument of '%s' intrinsic at %L shall not be coindexed" | |
34046 | msgstr "El argumento '%s' del intrínseco '%s' en %L no debe ser coindizado" | |
34047 | ||
34048 | #: fortran/check.c:928 | |
34049 | @@ -35397,19 +35608,19 @@ | |
34050 | msgid "'%s' argument of '%s' intrinsic at %L must be INTEGER or LOGICAL" | |
34051 | msgstr "El argumento '%s' del intrínseco '%s' en %L debe ser INTEGER o LOGICAL" | |
34052 | ||
34053 | -#: fortran/class.c:345 | |
34054 | +#: fortran/class.c:470 | |
34055 | #, gcc-internal-format, gfc-internal-format | |
34056 | msgid "Assumed size polymorphic objects or components, such as that at %C, have not yet been implemented" | |
34057 | msgstr "Objetos o componentes polimórficos de tamaño asumido, tales como el que está en %C, aún no están implementados" | |
34058 | ||
34059 | #. Since the extension field is 8 bit wide, we can only have | |
34060 | #. up to 255 extension levels. | |
34061 | -#: fortran/class.c:431 fortran/decl.c:7562 | |
34062 | +#: fortran/class.c:556 fortran/decl.c:7561 | |
34063 | #, gcc-internal-format, gfc-internal-format | |
34064 | msgid "Maximum extension level reached with type '%s' at %L" | |
34065 | msgstr "Se alcanzó el nivel de extensión máximo con el tipo '%s' en %L" | |
34066 | ||
34067 | -#: fortran/class.c:822 fortran/class.c:896 | |
34068 | +#: fortran/class.c:948 fortran/class.c:1022 | |
34069 | #, gcc-internal-format, gfc-internal-format | |
34070 | msgid "'%s' of '%s' is PRIVATE at %L" | |
34071 | msgstr "'%s' de '%s' es PRIVATE en %L" | |
34072 | @@ -35459,227 +35670,227 @@ | |
34073 | msgid "Extension: re-initialization of '%s' at %L" | |
34074 | msgstr "Extensión: reinicialización de '%s' en %L" | |
34075 | ||
34076 | -#: fortran/decl.c:260 | |
34077 | +#: fortran/decl.c:264 | |
34078 | #, gcc-internal-format, gfc-internal-format | |
34079 | msgid "Host associated variable '%s' may not be in the DATA statement at %C" | |
34080 | msgstr "La variable asociada al anfitrión '%s' no debe estar en la declaración DATA en %C" | |
34081 | ||
34082 | -#: fortran/decl.c:267 | |
34083 | +#: fortran/decl.c:271 | |
34084 | #, gcc-internal-format, gfc-internal-format | |
34085 | msgid "Extension: initialization of common block variable '%s' in DATA statement at %C" | |
34086 | msgstr "Extensión: inicialización de la variable de bloque común '%s' en la declaración DATA en %C" | |
34087 | ||
34088 | -#: fortran/decl.c:376 | |
34089 | +#: fortran/decl.c:380 | |
34090 | #, gcc-internal-format, gfc-internal-format | |
34091 | msgid "Symbol '%s' must be a PARAMETER in DATA statement at %C" | |
34092 | msgstr "El símbolo '%s' debe ser un PARAMETER en la declaración DATA en %C" | |
34093 | ||
34094 | -#: fortran/decl.c:401 | |
34095 | +#: fortran/decl.c:405 | |
34096 | #, gcc-internal-format, gfc-internal-format | |
34097 | msgid "Invalid initializer %s in Data statement at %C" | |
34098 | msgstr "Inicializador %s inválido en la declaración Data en %C" | |
34099 | ||
34100 | -#: fortran/decl.c:504 | |
34101 | +#: fortran/decl.c:508 | |
34102 | #, gcc-internal-format, gfc-internal-format | |
34103 | msgid "Initialization at %C is not allowed in a PURE procedure" | |
34104 | msgstr "No se permite la inicialización de %C en un procedimiento PURE" | |
34105 | ||
34106 | -#: fortran/decl.c:566 | |
34107 | +#: fortran/decl.c:570 | |
34108 | #, gcc-internal-format, gfc-internal-format | |
34109 | msgid "DATA statement at %C is not allowed in a PURE procedure" | |
34110 | msgstr "No se permite la declaración DATA en %C en un procedimiento PURE" | |
34111 | ||
34112 | -#: fortran/decl.c:654 | |
34113 | +#: fortran/decl.c:658 | |
34114 | #, gcc-internal-format, gfc-internal-format | |
34115 | msgid "Bad INTENT specification at %C" | |
34116 | msgstr "Especificación INTENT errónea en %C" | |
34117 | ||
34118 | -#: fortran/decl.c:675 | |
34119 | +#: fortran/decl.c:679 | |
34120 | #, gcc-internal-format, gfc-internal-format | |
34121 | msgid "Fortran 2003: deferred type parameter at %C" | |
34122 | msgstr "Fortran 2003: parámetro de tipo diferido en %C" | |
34123 | ||
34124 | -#: fortran/decl.c:712 | |
34125 | +#: fortran/decl.c:716 | |
34126 | #, gcc-internal-format, gfc-internal-format | |
34127 | msgid "Conflict in attributes of function argument at %C" | |
34128 | msgstr "Conflicto en los atributos de los argumentos de la función en %C" | |
34129 | ||
34130 | -#: fortran/decl.c:737 | |
34131 | +#: fortran/decl.c:741 | |
34132 | #, gcc-internal-format, gfc-internal-format | |
34133 | msgid "Obsolescent feature: Old-style character length at %C" | |
34134 | msgstr "Característica obsoleta: Longitud de carácter de estilo antiguo en %C" | |
34135 | ||
34136 | -#: fortran/decl.c:769 | |
34137 | +#: fortran/decl.c:773 | |
34138 | #, gcc-internal-format, gfc-internal-format | |
34139 | msgid "Syntax error in character length specification at %C" | |
34140 | msgstr "Error sintáctico en la especificación de longitud de carácter en %C" | |
34141 | ||
34142 | -#: fortran/decl.c:892 | |
34143 | +#: fortran/decl.c:896 | |
34144 | #, gcc-internal-format, gfc-internal-format | |
34145 | msgid "Procedure '%s' at %C is already defined at %L" | |
34146 | msgstr "El procedimiento '%s' en %C ya se había definido en %L" | |
34147 | ||
34148 | -#: fortran/decl.c:900 | |
34149 | +#: fortran/decl.c:904 | |
34150 | #, gcc-internal-format, gfc-internal-format | |
34151 | msgid "Name '%s' at %C is already defined as a generic interface at %L" | |
34152 | msgstr "El nombre '%s' en %C ya se definió como una interfaz genérica en %L" | |
34153 | ||
34154 | -#: fortran/decl.c:913 | |
34155 | +#: fortran/decl.c:917 | |
34156 | #, gcc-internal-format, gfc-internal-format | |
34157 | msgid "Procedure '%s' at %C has an explicit interface and must not have attributes declared at %L" | |
34158 | msgstr "El procedimiento '%s' en %C tiene una interfaz explícita y no debe tener atributos declarados en %L" | |
34159 | ||
34160 | -#: fortran/decl.c:985 | |
34161 | +#: fortran/decl.c:989 | |
34162 | #, gcc-internal-format, gfc-internal-format | |
34163 | msgid "Procedure '%s' at %L must have the BIND(C) attribute to be C interoperable" | |
34164 | msgstr "El procedimiento '%s' en %L debe tener el atributo BIND(C) para que sea interoperable con C" | |
34165 | ||
34166 | -#: fortran/decl.c:1013 | |
34167 | +#: fortran/decl.c:1017 | |
34168 | #, gcc-internal-format, gfc-internal-format | |
34169 | msgid "Variable '%s' at %L is a dummy argument to the BIND(C) procedure '%s' but is not C interoperable because derived type '%s' is not C interoperable" | |
34170 | msgstr "La variable '%s' en %L es un argumento dummy del procedimiento BIND(C) '%s' pero no es interoperable con C porque el tipo derivado '%s' no es interoperable con C" | |
34171 | ||
34172 | -#: fortran/decl.c:1020 | |
34173 | +#: fortran/decl.c:1024 | |
34174 | #, gcc-internal-format, gfc-internal-format | |
34175 | msgid "Variable '%s' at %L is a dummy argument to the BIND(C) procedure '%s' but is not C interoperable because it is polymorphic" | |
34176 | msgstr "La variable '%s' en %L es un argumento dummy del procedimiento BIND(C) '%s' pero puede no ser interoperable con C porque es polimórfica" | |
34177 | ||
34178 | -#: fortran/decl.c:1026 | |
34179 | +#: fortran/decl.c:1030 | |
34180 | #, gcc-internal-format, gfc-internal-format | |
34181 | msgid "Variable '%s' at %L is a parameter to the BIND(C) procedure '%s' but may not be C interoperable" | |
34182 | msgstr "La variable '%s' en %L es un parámetro del procedimiento BIND(C) '%s' pero puede no ser interoperable con C" | |
34183 | ||
34184 | -#: fortran/decl.c:1041 | |
34185 | +#: fortran/decl.c:1045 | |
34186 | #, gcc-internal-format, gfc-internal-format | |
34187 | msgid "Character argument '%s' at %L must be length 1 because procedure '%s' is BIND(C)" | |
34188 | msgstr "El argumento de carácter '%s' en %L debe ser de longitud 1 porque el procedimiento '%s' es BIND(C)" | |
34189 | ||
34190 | -#: fortran/decl.c:1055 | |
34191 | +#: fortran/decl.c:1059 | |
34192 | #, gcc-internal-format, gfc-internal-format | |
34193 | msgid "Variable '%s' at %L cannot have the ALLOCATABLE attribute because procedure '%s' is BIND(C)" | |
34194 | msgstr "La variable '%s' en %L no puede tener el atributo ALLOCATABLE porque el procedimiento '%s' es BIND(C)" | |
34195 | ||
34196 | -#: fortran/decl.c:1064 | |
34197 | +#: fortran/decl.c:1068 | |
34198 | #, gcc-internal-format, gfc-internal-format | |
34199 | msgid "Variable '%s' at %L cannot have the POINTER attribute because procedure '%s' is BIND(C)" | |
34200 | msgstr "La variable '%s' en %L no puede tener el atributo POINTER porque el procedimiento '%s' es BIND(C)" | |
34201 | ||
34202 | -#: fortran/decl.c:1073 | |
34203 | +#: fortran/decl.c:1077 | |
34204 | #, gcc-internal-format, gfc-internal-format | |
34205 | msgid "Variable '%s' at %L cannot have both the OPTIONAL and the VALUE attribute because procedure '%s' is BIND(C)" | |
34206 | msgstr "La variable '%s' en %L no puede tener los atributos OPTIONAL y VALUE al mismo tiempo porque el procedimiento '%s' es BIND(C)" | |
34207 | ||
34208 | -#: fortran/decl.c:1080 | |
34209 | +#: fortran/decl.c:1084 | |
34210 | #, gcc-internal-format, gfc-internal-format | |
34211 | msgid "TS29113: Variable '%s' at %L with OPTIONAL attribute in procedure '%s' which is BIND(C)" | |
34212 | msgstr "TS29113: La variable '%s' en %L con atributo OPTIONAL en el procedimiento '%s' que es BIND(C)" | |
34213 | ||
34214 | -#: fortran/decl.c:1094 | |
34215 | +#: fortran/decl.c:1098 | |
34216 | #, gcc-internal-format, gfc-internal-format | |
34217 | msgid "Assumed-shape array '%s' at %L cannot be an argument to the procedure '%s' at %L because the procedure is BIND(C)" | |
34218 | msgstr "La matriz de forma asumida '%s' en %L no puede ser un argumento para el procedimiento '%s' en %L porque el procedimiento es BIND(C)" | |
34219 | ||
34220 | -#: fortran/decl.c:1104 | |
34221 | +#: fortran/decl.c:1108 | |
34222 | #, gcc-internal-format, gfc-internal-format | |
34223 | msgid "Deferred-shape array '%s' at %L cannot be an argument to the procedure '%s' at %L because the procedure is BIND(C)" | |
34224 | msgstr "La matriz de forma diferida '%s' en %L no puede ser un argumento para el procedimiento '%s' en %L porque el procedimiento es BIND(C)" | |
34225 | ||
34226 | -#: fortran/decl.c:1185 | |
34227 | +#: fortran/decl.c:1189 | |
34228 | #, gcc-internal-format, gfc-internal-format | |
34229 | msgid "Variable '%s' in common block '%s' at %C must be declared with a C interoperable kind since common block '%s' is BIND(C)" | |
34230 | msgstr "La variable '%s' en el bloque común '%s' en %C se debe declarar con un género interoperable con C porque el bloque común '%s' es BIND(C)" | |
34231 | ||
34232 | -#: fortran/decl.c:1227 | |
34233 | +#: fortran/decl.c:1231 | |
34234 | #, gcc-internal-format, gfc-internal-format | |
34235 | msgid "CHARACTER expression at %L is being truncated (%d/%d)" | |
34236 | msgstr "Se trunca la expresión CHARACTER en %L (%d/%d)" | |
34237 | ||
34238 | -#: fortran/decl.c:1234 | |
34239 | +#: fortran/decl.c:1238 | |
34240 | #, gcc-internal-format, gfc-internal-format | |
34241 | msgid "The CHARACTER elements of the array constructor at %L must have the same length (%d/%d)" | |
34242 | msgstr "Los elementos CHARACTER del constructor de matriz en %L deben tener la misma longitud (%d/%d)" | |
34243 | ||
34244 | -#: fortran/decl.c:1324 | |
34245 | +#: fortran/decl.c:1328 | |
34246 | #, gcc-internal-format, gfc-internal-format | |
34247 | msgid "Initializer not allowed for PARAMETER '%s' at %C" | |
34248 | msgstr "No se permite un inicializador para el PARAMETER '%s' en %C" | |
34249 | ||
34250 | -#: fortran/decl.c:1334 | |
34251 | +#: fortran/decl.c:1338 | |
34252 | #, gcc-internal-format, gfc-internal-format | |
34253 | msgid "PARAMETER at %L is missing an initializer" | |
34254 | msgstr "Falta un inicializador para el PARAMETER en %L" | |
34255 | ||
34256 | -#: fortran/decl.c:1344 | |
34257 | +#: fortran/decl.c:1348 | |
34258 | #, gcc-internal-format, gfc-internal-format | |
34259 | msgid "Variable '%s' at %C with an initializer already appears in a DATA statement" | |
34260 | msgstr "La variable '%s' en %C con un inicializador ya aparecía en una declaración DATA" | |
34261 | ||
34262 | -#: fortran/decl.c:1425 | |
34263 | +#: fortran/decl.c:1429 | |
34264 | #, gcc-internal-format, gfc-internal-format | |
34265 | msgid "Can't initialize implied-shape array at %L with scalar" | |
34266 | msgstr "No se puede inicializar la matriz de tamaño implícito en %L con un escalar" | |
34267 | ||
34268 | -#: fortran/decl.c:1443 | |
34269 | +#: fortran/decl.c:1447 | |
34270 | #, gcc-internal-format, gfc-internal-format | |
34271 | msgid "Non-constant lower bound in implied-shape declaration at %L" | |
34272 | msgstr "El límite inferior no es constante en la declaración de forma implícita en %L" | |
34273 | ||
34274 | -#: fortran/decl.c:1538 | |
34275 | +#: fortran/decl.c:1542 | |
34276 | #, gcc-internal-format, gfc-internal-format | |
34277 | msgid "Component at %C must have the POINTER attribute" | |
34278 | msgstr "El componente en %C debe tener el atributo POINTER" | |
34279 | ||
34280 | -#: fortran/decl.c:1546 | |
34281 | +#: fortran/decl.c:1550 | |
34282 | #, gcc-internal-format, gfc-internal-format | |
34283 | msgid "Array component of structure at %C must have explicit or deferred shape" | |
34284 | msgstr "El componente de matriz de la estructura en %C debe tener una forma explícita o diferida" | |
34285 | ||
34286 | -#: fortran/decl.c:1627 | |
34287 | +#: fortran/decl.c:1631 | |
34288 | #, gcc-internal-format, gfc-internal-format | |
34289 | msgid "Pointer array component of structure at %C must have a deferred shape" | |
34290 | msgstr "El componente de matriz de puntero de la estructura en %C debe tener una forma diferida" | |
34291 | ||
34292 | -#: fortran/decl.c:1636 | |
34293 | +#: fortran/decl.c:1640 | |
34294 | #, gcc-internal-format, gfc-internal-format | |
34295 | msgid "Allocatable component of structure at %C must have a deferred shape" | |
34296 | msgstr "El componente allocatable de la estructura en %C debe tener una forma diferida" | |
34297 | ||
34298 | -#: fortran/decl.c:1645 | |
34299 | +#: fortran/decl.c:1649 | |
34300 | #, gcc-internal-format, gfc-internal-format | |
34301 | msgid "Array component of structure at %C must have an explicit shape" | |
34302 | msgstr "El componente de matriz de la estructura en %C debe tener una forma explícita" | |
34303 | ||
34304 | -#: fortran/decl.c:1679 | |
34305 | +#: fortran/decl.c:1683 | |
34306 | #, gcc-internal-format, gfc-internal-format | |
34307 | msgid "NULL() initialization at %C is ambiguous" | |
34308 | msgstr "La inicialización NULL() en %C es ambigua" | |
34309 | ||
34310 | -#: fortran/decl.c:1706 | |
34311 | +#: fortran/decl.c:1710 | |
34312 | #, gcc-internal-format, gfc-internal-format | |
34313 | msgid "Initialization of pointer at %C is not allowed in a PURE procedure" | |
34314 | msgstr "No se permite la inicialización de un puntero en %C en un procedimiento PURE" | |
34315 | ||
34316 | -#: fortran/decl.c:1726 | |
34317 | +#: fortran/decl.c:1730 | |
34318 | #, gcc-internal-format, gfc-internal-format | |
34319 | msgid "Error in pointer initialization at %C" | |
34320 | msgstr "Error en la inicialización de puntero en %C" | |
34321 | ||
34322 | -#: fortran/decl.c:1733 | |
34323 | +#: fortran/decl.c:1737 | |
34324 | #, gcc-internal-format, gfc-internal-format | |
34325 | msgid "Fortran 2008: non-NULL pointer initialization at %C" | |
34326 | msgstr "Fortran 2008: inicialización de puntero que no es NULL en %C" | |
34327 | ||
34328 | -#: fortran/decl.c:1756 | |
34329 | +#: fortran/decl.c:1760 | |
34330 | #, gcc-internal-format, gfc-internal-format | |
34331 | msgid "Function name '%s' not allowed at %C" | |
34332 | msgstr "No se permite el nombre de función '%s' en %C" | |
34333 | ||
34334 | -#: fortran/decl.c:1819 | |
34335 | +#: fortran/decl.c:1823 | |
34336 | #, gcc-internal-format, gfc-internal-format | |
34337 | msgid "Non-PARAMETER symbol '%s' at %L can't be implied-shape" | |
34338 | msgstr "El símbolo '%s' que no es PARAMETER en %L no puede ser de forma implícita" | |
34339 | ||
34340 | -#: fortran/decl.c:1830 | |
34341 | +#: fortran/decl.c:1834 | |
34342 | #, gcc-internal-format, gfc-internal-format | |
34343 | msgid "Fortran 2008: Implied-shape array at %L" | |
34344 | msgstr "Fortran 2008: Matriz de forma implícita en %L" | |
34345 | @@ -35689,1076 +35900,1076 @@ | |
34346 | # como `apuntado'. cfuga | |
34347 | # Referencia: http://gcc.gnu.org/onlinedocs/gfortran/Cray-pointers.html | |
34348 | # | |
34349 | -#: fortran/decl.c:1894 fortran/decl.c:6419 | |
34350 | +#: fortran/decl.c:1898 fortran/decl.c:6418 | |
34351 | #, gcc-internal-format, gfc-internal-format | |
34352 | msgid "Duplicate array spec for Cray pointee at %C" | |
34353 | msgstr "Especificación de matriz duplicada para el apuntado Cray en %C" | |
34354 | ||
34355 | -#: fortran/decl.c:1965 | |
34356 | +#: fortran/decl.c:1969 | |
34357 | #, gcc-internal-format, gfc-internal-format | |
34358 | msgid "The type of '%s' at %C has not been declared within the interface" | |
34359 | msgstr "No se declaró el tipo de '%s' en %C en la interfaz" | |
34360 | ||
34361 | -#: fortran/decl.c:1989 | |
34362 | +#: fortran/decl.c:1993 | |
34363 | #, gcc-internal-format, gfc-internal-format | |
34364 | msgid "Extension: Old-style initialization at %C" | |
34365 | msgstr "Extensión: Inicialización de estilo antiguo en %C" | |
34366 | ||
34367 | -#: fortran/decl.c:2004 fortran/decl.c:4911 | |
34368 | +#: fortran/decl.c:2008 fortran/decl.c:4916 | |
34369 | #, gcc-internal-format, gfc-internal-format | |
34370 | msgid "Initialization at %C isn't for a pointer variable" | |
34371 | msgstr "La inicialización en %C no es para una variable puntero" | |
34372 | ||
34373 | -#: fortran/decl.c:2017 | |
34374 | +#: fortran/decl.c:2021 | |
34375 | #, gcc-internal-format, gfc-internal-format | |
34376 | msgid "Pointer initialization at %C requires '=>', not '='" | |
34377 | msgstr "La inicialización de puntero en %C requiere '=>', no '='" | |
34378 | ||
34379 | -#: fortran/decl.c:2026 fortran/decl.c:7714 | |
34380 | +#: fortran/decl.c:2030 fortran/decl.c:7713 | |
34381 | #, gcc-internal-format, gfc-internal-format | |
34382 | msgid "Expected an initialization expression at %C" | |
34383 | msgstr "Se esperaba una expresión de inicialización en %C" | |
34384 | ||
34385 | -#: fortran/decl.c:2033 | |
34386 | +#: fortran/decl.c:2037 | |
34387 | #, gcc-internal-format, gfc-internal-format | |
34388 | msgid "Initialization of variable at %C is not allowed in a PURE procedure" | |
34389 | msgstr "No se permite la inicialización de una variable en %C en un procedimiento PURE" | |
34390 | ||
34391 | -#: fortran/decl.c:2046 | |
34392 | +#: fortran/decl.c:2050 | |
34393 | #, gcc-internal-format, gfc-internal-format | |
34394 | msgid "Initialization of allocatable component at %C is not allowed" | |
34395 | msgstr "No se permite la inicialización del componente allocatable en %C" | |
34396 | ||
34397 | -#: fortran/decl.c:2100 fortran/decl.c:2136 | |
34398 | +#: fortran/decl.c:2104 fortran/decl.c:2140 | |
34399 | #, gcc-internal-format, gfc-internal-format | |
34400 | msgid "Old-style type declaration %s*%d not supported at %C" | |
34401 | msgstr "No se admite la declaración de tipo de estilo antiguo %s*%d en %C" | |
34402 | ||
34403 | -#: fortran/decl.c:2141 | |
34404 | +#: fortran/decl.c:2145 | |
34405 | #, gcc-internal-format, gfc-internal-format | |
34406 | msgid "Nonstandard type declaration %s*%d at %C" | |
34407 | msgstr "Declaración de tipo %s*%d no estándar en %C" | |
34408 | ||
34409 | -#: fortran/decl.c:2192 fortran/decl.c:2268 | |
34410 | +#: fortran/decl.c:2196 fortran/decl.c:2272 | |
34411 | #, gcc-internal-format, gfc-internal-format | |
34412 | msgid "Missing right parenthesis at %C" | |
34413 | msgstr "Falta el paréntesis derecho en %C" | |
34414 | ||
34415 | -#: fortran/decl.c:2205 fortran/decl.c:2339 | |
34416 | +#: fortran/decl.c:2209 fortran/decl.c:2343 | |
34417 | #, gcc-internal-format, gfc-internal-format | |
34418 | msgid "Expected initialization expression at %C" | |
34419 | msgstr "Se esperaba una expresión de inicialización en %C" | |
34420 | ||
34421 | -#: fortran/decl.c:2213 fortran/decl.c:2345 | |
34422 | +#: fortran/decl.c:2217 fortran/decl.c:2349 | |
34423 | #, gcc-internal-format, gfc-internal-format | |
34424 | msgid "Expected scalar initialization expression at %C" | |
34425 | msgstr "Se esperaba una expresión de inicialización escalar en %C" | |
34426 | ||
34427 | -#: fortran/decl.c:2244 | |
34428 | +#: fortran/decl.c:2248 | |
34429 | #, gcc-internal-format, gfc-internal-format | |
34430 | msgid "Kind %d not supported for type %s at %C" | |
34431 | msgstr "No se admite el género %d para el tipo %s en %C" | |
34432 | ||
34433 | -#: fortran/decl.c:2257 | |
34434 | +#: fortran/decl.c:2261 | |
34435 | #, gcc-internal-format, gfc-internal-format | |
34436 | msgid "C kind type parameter is for type %s but type at %L is %s" | |
34437 | msgstr "El parámetro de tipo de género C es para el tipo %s, pero el tipo en %L es %s" | |
34438 | ||
34439 | -#: fortran/decl.c:2266 | |
34440 | +#: fortran/decl.c:2270 | |
34441 | #, gcc-internal-format, gfc-internal-format | |
34442 | msgid "Missing right parenthesis or comma at %C" | |
34443 | msgstr "Falta el paréntesis derecho o una coma en %C" | |
34444 | ||
34445 | -#: fortran/decl.c:2365 | |
34446 | +#: fortran/decl.c:2369 | |
34447 | #, gcc-internal-format, gfc-internal-format | |
34448 | msgid "Kind %d is not supported for CHARACTER at %C" | |
34449 | msgstr "No se admite el género %d para CHARACTER en %C" | |
34450 | ||
34451 | -#: fortran/decl.c:2497 | |
34452 | +#: fortran/decl.c:2501 | |
34453 | #, gcc-internal-format, gfc-internal-format | |
34454 | msgid "Syntax error in CHARACTER declaration at %C" | |
34455 | msgstr "Error sintáctico en la declaración CHARACTER en %C" | |
34456 | ||
34457 | -#: fortran/decl.c:2582 | |
34458 | +#: fortran/decl.c:2586 | |
34459 | #, gcc-internal-format, gfc-internal-format | |
34460 | msgid "Extension: BYTE type at %C" | |
34461 | msgstr "Extensión: tipo BYTE en %C" | |
34462 | ||
34463 | -#: fortran/decl.c:2588 | |
34464 | +#: fortran/decl.c:2592 | |
34465 | #, gcc-internal-format, gfc-internal-format | |
34466 | msgid "BYTE type used at %C is not available on the target machine" | |
34467 | msgstr "El tipo BYTE usado en %C no está disponible en la máquina objetivo" | |
34468 | ||
34469 | -#: fortran/decl.c:2614 fortran/decl.c:2645 fortran/decl.c:2675 | |
34470 | -#: fortran/decl.c:2825 | |
34471 | +#: fortran/decl.c:2618 fortran/decl.c:2649 fortran/decl.c:2679 | |
34472 | +#: fortran/decl.c:2829 | |
34473 | #, gcc-internal-format, gfc-internal-format | |
34474 | msgid "Fortran 2008: TYPE with intrinsic-type-spec at %C" | |
34475 | msgstr "Fortran 2008: TYPE con especificación de tipo intrínseco en %C" | |
34476 | ||
34477 | -#: fortran/decl.c:2670 | |
34478 | +#: fortran/decl.c:2674 | |
34479 | #, gcc-internal-format, gfc-internal-format | |
34480 | msgid "Extension: DOUBLE COMPLEX at %C" | |
34481 | msgstr "Extensión: DOUBLE COMPLEX en %C" | |
34482 | ||
34483 | -#: fortran/decl.c:2708 | |
34484 | +#: fortran/decl.c:2712 | |
34485 | #, gcc-internal-format, gfc-internal-format | |
34486 | msgid "Unlimited polymorphism at %C not yet supported" | |
34487 | msgstr "Aún no se admite polimorfismo ilimitado en %C" | |
34488 | ||
34489 | -#: fortran/decl.c:2717 | |
34490 | +#: fortran/decl.c:2721 | |
34491 | #, gcc-internal-format, gfc-internal-format | |
34492 | msgid "Fortran 2003: CLASS statement at %C" | |
34493 | msgstr "Fortran 2003: Declaración CLASS en %C" | |
34494 | ||
34495 | -#: fortran/decl.c:2753 fortran/decl.c:2766 fortran/decl.c:3140 | |
34496 | -#: fortran/decl.c:3148 | |
34497 | +#: fortran/decl.c:2757 fortran/decl.c:2770 fortran/decl.c:3144 | |
34498 | +#: fortran/decl.c:3152 | |
34499 | #, gcc-internal-format, gfc-internal-format | |
34500 | msgid "Type name '%s' at %C is ambiguous" | |
34501 | msgstr "El nombre de tipo '%s' en %C es ambiguo" | |
34502 | ||
34503 | -#: fortran/decl.c:2781 | |
34504 | +#: fortran/decl.c:2785 | |
34505 | #, gcc-internal-format, gfc-internal-format | |
34506 | msgid "Type name '%s' at %C conflicts with previously declared entity at %L, which has the same name" | |
34507 | msgstr "El nombre de tipo '%s' en %C tiene conflictos con la entidad declarada previamente en %L, la cual tiene el mismo nombre" | |
34508 | ||
34509 | -#: fortran/decl.c:2901 | |
34510 | +#: fortran/decl.c:2905 | |
34511 | #, gcc-internal-format, gfc-internal-format | |
34512 | msgid "Missing character range in IMPLICIT at %C" | |
34513 | msgstr "Falta el rango de carácter en IMPLICIT en %C" | |
34514 | ||
34515 | -#: fortran/decl.c:2947 | |
34516 | +#: fortran/decl.c:2951 | |
34517 | #, gcc-internal-format, gfc-internal-format | |
34518 | msgid "Letters must be in alphabetic order in IMPLICIT statement at %C" | |
34519 | msgstr "Las letras debe estar en orden alfabético en la declaración IMPLICIT en %C" | |
34520 | ||
34521 | -#: fortran/decl.c:3003 | |
34522 | +#: fortran/decl.c:3007 | |
34523 | #, gcc-internal-format, gfc-internal-format | |
34524 | msgid "Empty IMPLICIT statement at %C" | |
34525 | msgstr "Declaración IMPLICIT vacía en %C" | |
34526 | ||
34527 | -#: fortran/decl.c:3105 | |
34528 | +#: fortran/decl.c:3109 | |
34529 | #, gcc-internal-format, gfc-internal-format | |
34530 | msgid "IMPORT statement at %C only permitted in an INTERFACE body" | |
34531 | msgstr "La declaración IMPORT en %C sólo se permite en un cuerpo INTERFACE" | |
34532 | ||
34533 | -#: fortran/decl.c:3110 | |
34534 | +#: fortran/decl.c:3114 | |
34535 | #, gcc-internal-format, gfc-internal-format | |
34536 | msgid "Fortran 2003: IMPORT statement at %C" | |
34537 | msgstr "Fortran 2003: Declaración IMPORT en %C" | |
34538 | ||
34539 | -#: fortran/decl.c:3125 | |
34540 | +#: fortran/decl.c:3129 | |
34541 | #, gcc-internal-format, gfc-internal-format | |
34542 | msgid "Expecting list of named entities at %C" | |
34543 | msgstr "Se espera la lista de entidades nombradas %C" | |
34544 | ||
34545 | -#: fortran/decl.c:3154 | |
34546 | +#: fortran/decl.c:3158 | |
34547 | #, gcc-internal-format, gfc-internal-format | |
34548 | msgid "Cannot IMPORT '%s' from host scoping unit at %C - does not exist." | |
34549 | msgstr "No se puede IMPORTar '%s' desde la unidad de ámbito del anfitrión en %C - no existe." | |
34550 | ||
34551 | -#: fortran/decl.c:3161 | |
34552 | +#: fortran/decl.c:3165 | |
34553 | #, gcc-internal-format, gfc-internal-format | |
34554 | msgid "'%s' is already IMPORTed from host scoping unit at %C." | |
34555 | msgstr "'%s' ya se IMPORTó desde la unidad de ámbito del anfitrión en %C." | |
34556 | ||
34557 | -#: fortran/decl.c:3204 | |
34558 | +#: fortran/decl.c:3208 | |
34559 | #, gcc-internal-format, gfc-internal-format | |
34560 | msgid "Syntax error in IMPORT statement at %C" | |
34561 | msgstr "Error sintáctico en la declaración IMPORT en %C" | |
34562 | ||
34563 | -#: fortran/decl.c:3503 | |
34564 | +#: fortran/decl.c:3507 | |
34565 | #, gcc-internal-format, gfc-internal-format | |
34566 | msgid "Missing codimension specification at %C" | |
34567 | msgstr "Falta la especificación de codimensión en %C" | |
34568 | ||
34569 | -#: fortran/decl.c:3505 | |
34570 | +#: fortran/decl.c:3509 | |
34571 | #, gcc-internal-format, gfc-internal-format | |
34572 | msgid "Missing dimension specification at %C" | |
34573 | msgstr "Falta la especificación de dimensión en %C" | |
34574 | ||
34575 | -#: fortran/decl.c:3588 | |
34576 | +#: fortran/decl.c:3592 | |
34577 | #, gcc-internal-format, gfc-internal-format | |
34578 | msgid "Duplicate %s attribute at %L" | |
34579 | msgstr "Atributo %s duplicado en %L" | |
34580 | ||
34581 | -#: fortran/decl.c:3607 | |
34582 | +#: fortran/decl.c:3611 | |
34583 | #, gcc-internal-format, gfc-internal-format | |
34584 | msgid "Fortran 2003: ALLOCATABLE attribute at %C in a TYPE definition" | |
34585 | msgstr "Fortran 2003: atributo ALLOCATABLE en %C en una definición TYPE" | |
34586 | ||
34587 | -#: fortran/decl.c:3617 | |
34588 | +#: fortran/decl.c:3621 | |
34589 | #, gcc-internal-format, gfc-internal-format | |
34590 | msgid "Attribute at %L is not allowed in a TYPE definition" | |
34591 | msgstr "No se permite el atributo %L en una definición TYPE" | |
34592 | ||
34593 | -#: fortran/decl.c:3635 | |
34594 | +#: fortran/decl.c:3639 | |
34595 | #, gcc-internal-format, gfc-internal-format | |
34596 | msgid "Fortran 2003: Attribute %s at %L in a TYPE definition" | |
34597 | msgstr "Fortran 2003: Atributo %s en %L en una definición TYPE" | |
34598 | ||
34599 | -#: fortran/decl.c:3646 | |
34600 | +#: fortran/decl.c:3650 | |
34601 | #, gcc-internal-format, gfc-internal-format | |
34602 | msgid "%s attribute at %L is not allowed outside of the specification part of a module" | |
34603 | msgstr "No se permite el atributo %s en %L fuera de la parte de especificación de un módulo" | |
34604 | ||
34605 | -#: fortran/decl.c:3661 | |
34606 | +#: fortran/decl.c:3665 | |
34607 | #, gcc-internal-format, gfc-internal-format | |
34608 | msgid "Fortran 2003: ASYNCHRONOUS attribute at %C" | |
34609 | msgstr "Fortran 2003: Atributo ASYNCHRONOUS en %C" | |
34610 | ||
34611 | -#: fortran/decl.c:3674 | |
34612 | +#: fortran/decl.c:3678 | |
34613 | #, gcc-internal-format, gfc-internal-format | |
34614 | msgid "Fortran 2008: CONTIGUOUS attribute at %C" | |
34615 | msgstr "Fortran 2008: Atributo CONTIGUOUS en %C" | |
34616 | ||
34617 | -#: fortran/decl.c:3720 fortran/decl.c:6714 | |
34618 | +#: fortran/decl.c:3724 fortran/decl.c:6713 | |
34619 | #, gcc-internal-format, gfc-internal-format | |
34620 | msgid "PROTECTED at %C only allowed in specification part of a module" | |
34621 | msgstr "Sólo se permite PROTECTED en %C en la parte de especificación de un módulo" | |
34622 | ||
34623 | -#: fortran/decl.c:3726 | |
34624 | +#: fortran/decl.c:3730 | |
34625 | #, gcc-internal-format, gfc-internal-format | |
34626 | msgid "Fortran 2003: PROTECTED attribute at %C" | |
34627 | msgstr "Fortran 2003: Atributo PROTECTED en %C" | |
34628 | ||
34629 | -#: fortran/decl.c:3757 | |
34630 | +#: fortran/decl.c:3761 | |
34631 | #, gcc-internal-format, gfc-internal-format | |
34632 | msgid "Fortran 2003: VALUE attribute at %C" | |
34633 | msgstr "Fortran 2003: Atributo VALUE en %C" | |
34634 | ||
34635 | -#: fortran/decl.c:3767 | |
34636 | +#: fortran/decl.c:3771 | |
34637 | #, gcc-internal-format, gfc-internal-format | |
34638 | msgid "Fortran 2003: VOLATILE attribute at %C" | |
34639 | msgstr "Fortran 2003: Atributo VOLATILE en %C" | |
34640 | ||
34641 | -#: fortran/decl.c:3811 | |
34642 | +#: fortran/decl.c:3816 | |
34643 | #, gcc-internal-format, gfc-internal-format | |
34644 | msgid "Multiple identifiers provided with single NAME= specifier at %C" | |
34645 | msgstr "Se proveen múltiples identificadores con un sólo especificador NAME= en %C" | |
34646 | ||
34647 | -#: fortran/decl.c:3910 | |
34648 | +#: fortran/decl.c:3913 | |
34649 | #, gcc-internal-format, gfc-internal-format | |
34650 | msgid "Implicitly declared BIND(C) function '%s' at %L may not be C interoperable" | |
34651 | msgstr "La función implícitamente declarada BIND(C) '%s' en %L no puede ser interoperable con C" | |
34652 | ||
34653 | -#: fortran/decl.c:3931 | |
34654 | +#: fortran/decl.c:3934 | |
34655 | #, gcc-internal-format, gfc-internal-format | |
34656 | msgid "Variable '%s' in common block '%s' at %L may not be a C interoperable kind though common block '%s' is BIND(C)" | |
34657 | msgstr "La variable '%s' en el bloque común '%s' en %L no puede ser un género interoperable con C ya que el bloque común '%s' es BIND(C)" | |
34658 | ||
34659 | -#: fortran/decl.c:3940 | |
34660 | +#: fortran/decl.c:3943 | |
34661 | #, gcc-internal-format, gfc-internal-format | |
34662 | msgid "Type declaration '%s' at %L is not C interoperable but it is BIND(C)" | |
34663 | msgstr "La declaración de tipo '%s' en %L no es interoperable con C pero es BIND(C)" | |
34664 | ||
34665 | -#: fortran/decl.c:3944 | |
34666 | +#: fortran/decl.c:3947 | |
34667 | #, gcc-internal-format, gfc-internal-format | |
34668 | msgid "Variable '%s' at %L may not be a C interoperable kind but it is bind(c)" | |
34669 | msgstr "La variable '%s' en %L no es de un género interoperable con C pero es BIND(C)" | |
34670 | ||
34671 | -#: fortran/decl.c:3956 | |
34672 | +#: fortran/decl.c:3959 | |
34673 | #, gcc-internal-format, gfc-internal-format | |
34674 | msgid "Variable '%s' in common block '%s' at %L cannot be declared with BIND(C) since it is not a global" | |
34675 | msgstr "La variable '%s' en el bloque común '%s' en %L no se puede declarar con BIND(C) porque no es un global" | |
34676 | ||
34677 | -#: fortran/decl.c:3970 | |
34678 | +#: fortran/decl.c:3973 | |
34679 | #, gcc-internal-format, gfc-internal-format | |
34680 | msgid "Variable '%s' at %L cannot have both the POINTER and BIND(C) attributes" | |
34681 | msgstr "La variable '%s' en %L no puede tener los atributos POINTER y BIND(C) al mismo tiempo" | |
34682 | ||
34683 | -#: fortran/decl.c:3978 | |
34684 | +#: fortran/decl.c:3981 | |
34685 | #, gcc-internal-format, gfc-internal-format | |
34686 | msgid "Variable '%s' at %L cannot have both the ALLOCATABLE and BIND(C) attributes" | |
34687 | msgstr "La variable '%s' en %L no puede tener los atributos ALLOCATABLE y BIND(C) al mismo tiempo" | |
34688 | ||
34689 | -#: fortran/decl.c:3990 | |
34690 | +#: fortran/decl.c:3993 | |
34691 | #, gcc-internal-format, gfc-internal-format | |
34692 | msgid "Return type of BIND(C) function '%s' at %L cannot be an array" | |
34693 | msgstr "El tipo de devolución de la función BIND(C) '%s' en %L no puede ser una matriz" | |
34694 | ||
34695 | -#: fortran/decl.c:3998 | |
34696 | +#: fortran/decl.c:4001 | |
34697 | #, gcc-internal-format, gfc-internal-format | |
34698 | msgid "Return type of BIND(C) function '%s' at %L cannot be a character string" | |
34699 | msgstr "El tipo de devolución de la función BIND(C) '%s' en %L no puede ser una cadena de caracteres" | |
34700 | ||
34701 | #. Use gfc_warning_now because we won't say that the symbol fails | |
34702 | #. just because of this. | |
34703 | -#: fortran/decl.c:4009 | |
34704 | +#: fortran/decl.c:4012 | |
34705 | #, gcc-internal-format, gfc-internal-format | |
34706 | msgid "Symbol '%s' at %L is marked PRIVATE but has been given the binding label '%s'" | |
34707 | msgstr "El símbolo '%s' en %L se marcó PRIVATE pero se le dio la etiqueta de asignación '%s'" | |
34708 | ||
34709 | -#: fortran/decl.c:4084 | |
34710 | +#: fortran/decl.c:4088 | |
34711 | #, gcc-internal-format, gfc-internal-format | |
34712 | msgid "Need either entity or common block name for attribute specification statement at %C" | |
34713 | msgstr "Se necesita una entidad o un nombre de bloque común para la declaración de especificación de atributo en %C" | |
34714 | ||
34715 | -#: fortran/decl.c:4131 | |
34716 | +#: fortran/decl.c:4135 | |
34717 | #, gcc-internal-format, gfc-internal-format | |
34718 | msgid "Missing entity or common block name for attribute specification statement at %C" | |
34719 | msgstr "Falta la entidad o el nombre de bloque común para la declaración de especificación de atributo en %C" | |
34720 | ||
34721 | #. Now we have an error, which we signal, and then fix up | |
34722 | #. because the knock-on is plain and simple confusing. | |
34723 | -#: fortran/decl.c:4240 | |
34724 | +#: fortran/decl.c:4244 | |
34725 | #, gcc-internal-format, gfc-internal-format | |
34726 | msgid "Derived type at %C has not been previously defined and so cannot appear in a derived type definition" | |
34727 | msgstr "El tipo derivado en %C no se definió previamente y no puede aparecer en una definición de tipo derivado" | |
34728 | ||
34729 | -#: fortran/decl.c:4272 | |
34730 | +#: fortran/decl.c:4276 | |
34731 | #, gcc-internal-format, gfc-internal-format | |
34732 | msgid "Syntax error in data declaration at %C" | |
34733 | msgstr "Error sintáctico en la declaración de datos en %C" | |
34734 | ||
34735 | -#: fortran/decl.c:4346 | |
34736 | +#: fortran/decl.c:4350 | |
34737 | #, gcc-internal-format, gfc-internal-format | |
34738 | msgid "Fortran 2008: IMPURE procedure at %C" | |
34739 | msgstr "Fortran 2008: Procedimiento IMPURE en %C" | |
34740 | ||
34741 | -#: fortran/decl.c:4359 | |
34742 | +#: fortran/decl.c:4363 | |
34743 | #, gcc-internal-format, gfc-internal-format | |
34744 | msgid "PURE and IMPURE must not appear both at %C" | |
34745 | msgstr "No deben aparecer PURE con IMPURE en %C" | |
34746 | ||
34747 | -#: fortran/decl.c:4465 | |
34748 | +#: fortran/decl.c:4469 | |
34749 | #, gcc-internal-format, gfc-internal-format | |
34750 | msgid "Name '%s' at %C is the name of the procedure" | |
34751 | msgstr "El nombre '%s' en %C es el nombre del procedimiento" | |
34752 | ||
34753 | -#: fortran/decl.c:4477 | |
34754 | +#: fortran/decl.c:4481 | |
34755 | #, gcc-internal-format, gfc-internal-format | |
34756 | msgid "Unexpected junk in formal argument list at %C" | |
34757 | msgstr "Basura inesperada en la lista de argumentos formales en %C" | |
34758 | ||
34759 | -#: fortran/decl.c:4494 | |
34760 | +#: fortran/decl.c:4498 | |
34761 | #, gcc-internal-format, gfc-internal-format | |
34762 | msgid "Duplicate symbol '%s' in formal argument list at %C" | |
34763 | msgstr "Símbolo '%s' duplicado en la lista de argumentos formales en %C" | |
34764 | ||
34765 | -#: fortran/decl.c:4545 | |
34766 | +#: fortran/decl.c:4549 | |
34767 | #, gcc-internal-format, gfc-internal-format | |
34768 | msgid "RESULT variable at %C must be different than function name" | |
34769 | msgstr "La variable RESULT en %C debe ser diferente que el nombre de la función" | |
34770 | ||
34771 | -#: fortran/decl.c:4622 | |
34772 | +#: fortran/decl.c:4626 | |
34773 | #, gcc-internal-format, gfc-internal-format | |
34774 | msgid "Unexpected junk after function declaration at %C" | |
34775 | msgstr "Basura inesperada después de la declaración de la función en %C" | |
34776 | ||
34777 | -#: fortran/decl.c:4632 fortran/decl.c:5665 | |
34778 | +#: fortran/decl.c:4636 fortran/decl.c:5670 | |
34779 | #, gcc-internal-format, gfc-internal-format | |
34780 | msgid "Fortran 2008: BIND(C) attribute at %L may not be specified for an internal procedure" | |
34781 | msgstr "Fortran 2008: El atributo BIND(C) en %L no se puede especificar para un procedimiento internal" | |
34782 | ||
34783 | -#: fortran/decl.c:4776 | |
34784 | +#: fortran/decl.c:4780 | |
34785 | #, gcc-internal-format, gfc-internal-format | |
34786 | msgid "Interface '%s' at %C may not be generic" | |
34787 | msgstr "La interfaz '%s' en %C puede no ser generic" | |
34788 | ||
34789 | -#: fortran/decl.c:4782 | |
34790 | +#: fortran/decl.c:4786 | |
34791 | #, gcc-internal-format, gfc-internal-format | |
34792 | msgid "Interface '%s' at %C may not be a statement function" | |
34793 | msgstr "La interfaz '%s' en %C puede no ser una función de declaración" | |
34794 | ||
34795 | -#: fortran/decl.c:4795 | |
34796 | +#: fortran/decl.c:4799 | |
34797 | #, gcc-internal-format, gfc-internal-format | |
34798 | msgid "Intrinsic procedure '%s' not allowed in PROCEDURE statement at %C" | |
34799 | msgstr "El procedimiento intrínseco '%s' no se permite en la declaración PROCEDURE en %C" | |
34800 | ||
34801 | -#: fortran/decl.c:4850 | |
34802 | +#: fortran/decl.c:4854 | |
34803 | #, gcc-internal-format, gfc-internal-format | |
34804 | msgid "BIND(C) attribute at %C requires an interface with BIND(C)" | |
34805 | msgstr "El atributo BIND(C) en %C requiere una interfaz con BIND(C)" | |
34806 | ||
34807 | -#: fortran/decl.c:4857 | |
34808 | +#: fortran/decl.c:4861 | |
34809 | #, gcc-internal-format, gfc-internal-format | |
34810 | msgid "BIND(C) procedure with NAME may not have POINTER attribute at %C" | |
34811 | msgstr "El procedimiento BIND(C) con NAME no debe tener atributo POINTER en %C" | |
34812 | ||
34813 | -#: fortran/decl.c:4863 | |
34814 | +#: fortran/decl.c:4867 | |
34815 | #, gcc-internal-format, gfc-internal-format | |
34816 | msgid "Dummy procedure at %C may not have BIND(C) attribute with NAME" | |
34817 | msgstr "El procedimiento dummy en %C no puede tener atributo BIND(C) con NAME" | |
34818 | ||
34819 | -#: fortran/decl.c:4886 | |
34820 | +#: fortran/decl.c:4891 | |
34821 | #, gcc-internal-format, gfc-internal-format | |
34822 | msgid "Procedure '%s' at %L already has basic type of %s" | |
34823 | msgstr "El procedimiento '%s' en %L ya tenía el tipo básico de %s" | |
34824 | ||
34825 | -#: fortran/decl.c:4935 fortran/decl.c:5103 fortran/decl.c:8196 | |
34826 | +#: fortran/decl.c:4940 fortran/decl.c:5108 fortran/decl.c:8195 | |
34827 | #, gcc-internal-format, gfc-internal-format | |
34828 | msgid "Syntax error in PROCEDURE statement at %C" | |
34829 | msgstr "Error sintáctico en la declaración PROCEDURE en %C" | |
34830 | ||
34831 | -#: fortran/decl.c:4984 fortran/decl.c:8097 | |
34832 | +#: fortran/decl.c:4989 fortran/decl.c:8096 | |
34833 | #, gcc-internal-format, gfc-internal-format | |
34834 | msgid "Expected '::' after binding-attributes at %C" | |
34835 | msgstr "Se esperaba '::' después de los atributos de enlazado en %C" | |
34836 | ||
34837 | -#: fortran/decl.c:4991 | |
34838 | +#: fortran/decl.c:4996 | |
34839 | #, gcc-internal-format, gfc-internal-format | |
34840 | msgid "NOPASS or explicit interface required at %C" | |
34841 | msgstr "Se requiere NOPASS o una interfaz explícita en %C" | |
34842 | ||
34843 | -#: fortran/decl.c:4995 | |
34844 | +#: fortran/decl.c:5000 | |
34845 | #, gcc-internal-format, gfc-internal-format | |
34846 | msgid "Fortran 2003: Procedure pointer component at %C" | |
34847 | msgstr "Fortran 2003: Procedimiento de componente puntero en %C" | |
34848 | ||
34849 | -#: fortran/decl.c:5060 | |
34850 | +#: fortran/decl.c:5065 | |
34851 | #, gcc-internal-format, gfc-internal-format | |
34852 | msgid "Syntax error in procedure pointer component at %C" | |
34853 | msgstr "Error sintáctico en el procedimiento de componente puntero en %C" | |
34854 | ||
34855 | -#: fortran/decl.c:5077 | |
34856 | +#: fortran/decl.c:5082 | |
34857 | #, gcc-internal-format, gfc-internal-format | |
34858 | msgid "PROCEDURE at %C must be in a generic interface" | |
34859 | msgstr "PROCEDURE en %C debe estar en una interfaz genérica" | |
34860 | ||
34861 | -#: fortran/decl.c:5143 | |
34862 | +#: fortran/decl.c:5148 | |
34863 | #, gcc-internal-format, gfc-internal-format | |
34864 | msgid "Fortran 2003: PROCEDURE statement at %C" | |
34865 | msgstr "Fortran 2003: Declaración PROCEDURE en %C" | |
34866 | ||
34867 | -#: fortran/decl.c:5211 | |
34868 | +#: fortran/decl.c:5216 | |
34869 | #, gcc-internal-format, gfc-internal-format | |
34870 | msgid "Expected formal argument list in function definition at %C" | |
34871 | msgstr "Se esperaba una lista de argumentos formales en la definición de la función en %C" | |
34872 | ||
34873 | -#: fortran/decl.c:5235 fortran/decl.c:5239 fortran/decl.c:5443 | |
34874 | -#: fortran/decl.c:5447 fortran/decl.c:5633 fortran/decl.c:5637 | |
34875 | +#: fortran/decl.c:5240 fortran/decl.c:5244 fortran/decl.c:5448 | |
34876 | +#: fortran/decl.c:5452 fortran/decl.c:5638 fortran/decl.c:5642 | |
34877 | #: fortran/symbol.c:1588 | |
34878 | #, gcc-internal-format, gfc-internal-format | |
34879 | msgid "BIND(C) attribute at %L can only be used for variables or common blocks" | |
34880 | msgstr "El atributo BIND(C) en %L sólo se puede usar para variables o bloques comunes" | |
34881 | ||
34882 | -#: fortran/decl.c:5354 | |
34883 | +#: fortran/decl.c:5359 | |
34884 | #, gcc-internal-format, gfc-internal-format | |
34885 | msgid "Fortran 2008 obsolescent feature: ENTRY statement at %C" | |
34886 | msgstr "Característica obsoleta de Fortran 2008: declaración ENTRY en %C" | |
34887 | ||
34888 | -#: fortran/decl.c:5364 | |
34889 | +#: fortran/decl.c:5369 | |
34890 | #, gcc-internal-format, gfc-internal-format | |
34891 | msgid "ENTRY statement at %C cannot appear within a PROGRAM" | |
34892 | msgstr "La declaración ENTRY en %C no puede aparecer dentro de un PROGRAM" | |
34893 | ||
34894 | -#: fortran/decl.c:5367 | |
34895 | +#: fortran/decl.c:5372 | |
34896 | #, gcc-internal-format, gfc-internal-format | |
34897 | msgid "ENTRY statement at %C cannot appear within a MODULE" | |
34898 | msgstr "La declaración ENTRY en %C no puede aparecer dentro de un MODULE" | |
34899 | ||
34900 | -#: fortran/decl.c:5370 | |
34901 | +#: fortran/decl.c:5375 | |
34902 | #, gcc-internal-format, gfc-internal-format | |
34903 | msgid "ENTRY statement at %C cannot appear within a BLOCK DATA" | |
34904 | msgstr "La declaración ENTRY en %C no puede aparecer dentro de un BLOCK DATA" | |
34905 | ||
34906 | -#: fortran/decl.c:5374 | |
34907 | +#: fortran/decl.c:5379 | |
34908 | #, gcc-internal-format, gfc-internal-format | |
34909 | msgid "ENTRY statement at %C cannot appear within an INTERFACE" | |
34910 | msgstr "La declaración ENTRY en %C no puede aparecer dentro de un INTERFACE" | |
34911 | ||
34912 | -#: fortran/decl.c:5378 | |
34913 | +#: fortran/decl.c:5383 | |
34914 | #, gcc-internal-format, gfc-internal-format | |
34915 | msgid "ENTRY statement at %C cannot appear within a DERIVED TYPE block" | |
34916 | msgstr "La declaración ENTRY en %C no puede aparecer dentro de un bloque DERIVED TYPE" | |
34917 | ||
34918 | -#: fortran/decl.c:5382 | |
34919 | +#: fortran/decl.c:5387 | |
34920 | #, gcc-internal-format, gfc-internal-format | |
34921 | msgid "ENTRY statement at %C cannot appear within an IF-THEN block" | |
34922 | msgstr "La declaración ENTRY en %C no puede aparecer dentro de un bloque IF-THEN" | |
34923 | ||
34924 | -#: fortran/decl.c:5387 | |
34925 | +#: fortran/decl.c:5392 | |
34926 | #, gcc-internal-format, gfc-internal-format | |
34927 | msgid "ENTRY statement at %C cannot appear within a DO block" | |
34928 | msgstr "La declaración ENTRY en %C no puede aparecer dentro de un bloque DO" | |
34929 | ||
34930 | -#: fortran/decl.c:5391 | |
34931 | +#: fortran/decl.c:5396 | |
34932 | #, gcc-internal-format, gfc-internal-format | |
34933 | msgid "ENTRY statement at %C cannot appear within a SELECT block" | |
34934 | msgstr "La declaración ENTRY en %C no puede aparecer dentro de un bloque SELECT" | |
34935 | ||
34936 | -#: fortran/decl.c:5395 | |
34937 | +#: fortran/decl.c:5400 | |
34938 | #, gcc-internal-format, gfc-internal-format | |
34939 | msgid "ENTRY statement at %C cannot appear within a FORALL block" | |
34940 | msgstr "La declaración ENTRY en %C no puede aparecer dentro de un bloque FORALL" | |
34941 | ||
34942 | -#: fortran/decl.c:5399 | |
34943 | +#: fortran/decl.c:5404 | |
34944 | #, gcc-internal-format, gfc-internal-format | |
34945 | msgid "ENTRY statement at %C cannot appear within a WHERE block" | |
34946 | msgstr "La declaración ENTRY en %C no puede aparecer dentro de un bloque WHERE" | |
34947 | ||
34948 | -#: fortran/decl.c:5403 | |
34949 | +#: fortran/decl.c:5408 | |
34950 | #, gcc-internal-format, gfc-internal-format | |
34951 | msgid "ENTRY statement at %C cannot appear within a contained subprogram" | |
34952 | msgstr "La declaración ENTRY en %C no puede aparecer dentro de un subprograma contenido" | |
34953 | ||
34954 | -#: fortran/decl.c:5421 | |
34955 | +#: fortran/decl.c:5426 | |
34956 | #, gcc-internal-format, gfc-internal-format | |
34957 | msgid "ENTRY statement at %C cannot appear in a contained procedure" | |
34958 | msgstr "La declaración ENTRY en %C no puede aparecer dentro de un procedimiento contenido" | |
34959 | ||
34960 | -#: fortran/decl.c:5475 fortran/decl.c:5673 | |
34961 | +#: fortran/decl.c:5480 fortran/decl.c:5678 | |
34962 | #, gcc-internal-format, gfc-internal-format | |
34963 | msgid "Missing required parentheses before BIND(C) at %C" | |
34964 | msgstr "Faltan los paréntesis requeridos antes de BIND(C) en %C" | |
34965 | ||
34966 | -#: fortran/decl.c:5735 fortran/decl.c:5751 | |
34967 | +#: fortran/decl.c:5736 fortran/decl.c:5752 | |
34968 | #, gcc-internal-format, gfc-internal-format | |
34969 | msgid "Syntax error in NAME= specifier for binding label at %C" | |
34970 | msgstr "Error sintáctico en el especificador NAME= para la etiqueta de asignación %C" | |
34971 | ||
34972 | -#: fortran/decl.c:5766 | |
34973 | +#: fortran/decl.c:5767 | |
34974 | #, gcc-internal-format, gfc-internal-format | |
34975 | msgid "Missing closing quote '\"' for binding label at %C" | |
34976 | msgstr "Falta la comilla '\"' que cierra en la etiqueta de asignación en %C" | |
34977 | ||
34978 | -#: fortran/decl.c:5775 | |
34979 | +#: fortran/decl.c:5776 | |
34980 | #, gcc-internal-format, gfc-internal-format | |
34981 | msgid "Missing closing quote ''' for binding label at %C" | |
34982 | msgstr "Falta la comilla ''' que cierra en la etiqueta de asignación en %C" | |
34983 | ||
34984 | -#: fortran/decl.c:5785 | |
34985 | +#: fortran/decl.c:5786 | |
34986 | #, gcc-internal-format, gfc-internal-format | |
34987 | msgid "Missing closing paren for binding label at %C" | |
34988 | msgstr "Falta el paréntesis que cierra en la etiqueta de asignación en %C" | |
34989 | ||
34990 | -#: fortran/decl.c:5791 | |
34991 | +#: fortran/decl.c:5792 | |
34992 | #, gcc-internal-format, gfc-internal-format | |
34993 | msgid "No binding name is allowed in BIND(C) at %C" | |
34994 | msgstr "No se permite un nombre de enlazado en BIND(C) en %C" | |
34995 | ||
34996 | -#: fortran/decl.c:5797 | |
34997 | +#: fortran/decl.c:5798 | |
34998 | #, gcc-internal-format, gfc-internal-format | |
34999 | msgid "For dummy procedure %s, no binding name is allowed in BIND(C) at %C" | |
35000 | msgstr "Para el procedimiento dummy %s, no se permite un nombre de enlazado en BIND(C) en %C" | |
35001 | ||
35002 | -#: fortran/decl.c:5828 | |
35003 | +#: fortran/decl.c:5827 | |
35004 | #, gcc-internal-format, gfc-internal-format | |
35005 | msgid "NAME not allowed on BIND(C) for ABSTRACT INTERFACE at %C" | |
35006 | msgstr "No se permite NAME en BIND(C) para ABSTRACT INTERFACE en %C" | |
35007 | ||
35008 | -#: fortran/decl.c:6033 | |
35009 | +#: fortran/decl.c:6032 | |
35010 | #, gcc-internal-format, gfc-internal-format | |
35011 | msgid "Unexpected END statement at %C" | |
35012 | msgstr "Declaración END inesperada en %C" | |
35013 | ||
35014 | -#: fortran/decl.c:6041 | |
35015 | +#: fortran/decl.c:6040 | |
35016 | #, gcc-internal-format, gfc-internal-format | |
35017 | msgid "Fortran 2008: END statement instead of %s statement at %L" | |
35018 | msgstr "Fortran 2008: Declaración END en lugar de una declaración %s en %L" | |
35019 | ||
35020 | #. We would have required END [something]. | |
35021 | -#: fortran/decl.c:6049 | |
35022 | +#: fortran/decl.c:6048 | |
35023 | #, gcc-internal-format, gfc-internal-format | |
35024 | msgid "%s statement expected at %L" | |
35025 | msgstr "Se esperaba %s en la declaración en %L" | |
35026 | ||
35027 | -#: fortran/decl.c:6060 | |
35028 | +#: fortran/decl.c:6059 | |
35029 | #, gcc-internal-format, gfc-internal-format | |
35030 | msgid "Expecting %s statement at %C" | |
35031 | msgstr "Se esperaba la declaración %s en %C" | |
35032 | ||
35033 | -#: fortran/decl.c:6076 | |
35034 | +#: fortran/decl.c:6075 | |
35035 | #, gcc-internal-format, gfc-internal-format | |
35036 | msgid "Expected block name of '%s' in %s statement at %C" | |
35037 | msgstr "Se esperaba el nombre de bloque de '%s' en la declaración %s en %C" | |
35038 | ||
35039 | -#: fortran/decl.c:6093 | |
35040 | +#: fortran/decl.c:6092 | |
35041 | #, gcc-internal-format, gfc-internal-format | |
35042 | msgid "Expected terminating name at %C" | |
35043 | msgstr "Se esperaba un nombre terminal en %C" | |
35044 | ||
35045 | -#: fortran/decl.c:6102 fortran/decl.c:6110 | |
35046 | +#: fortran/decl.c:6101 fortran/decl.c:6109 | |
35047 | #, gcc-internal-format, gfc-internal-format | |
35048 | msgid "Expected label '%s' for %s statement at %C" | |
35049 | msgstr "Se esperaba la etiqueta '%s' para la declaración %s en %C" | |
35050 | ||
35051 | -#: fortran/decl.c:6175 | |
35052 | +#: fortran/decl.c:6174 | |
35053 | #, gcc-internal-format, gfc-internal-format | |
35054 | msgid "Missing array specification at %L in DIMENSION statement" | |
35055 | msgstr "Falta la especificación de matriz en %L en la declaración DIMENSION" | |
35056 | ||
35057 | -#: fortran/decl.c:6183 | |
35058 | +#: fortran/decl.c:6182 | |
35059 | #, gcc-internal-format, gfc-internal-format | |
35060 | msgid "Dimensions specified for %s at %L after its initialisation" | |
35061 | msgstr "Se especificarion dimensiones para %s en %L después de su inicialización" | |
35062 | ||
35063 | -#: fortran/decl.c:6191 | |
35064 | +#: fortran/decl.c:6190 | |
35065 | #, gcc-internal-format, gfc-internal-format | |
35066 | msgid "Missing array specification at %L in CODIMENSION statement" | |
35067 | msgstr "Falta la especificación de matriz en %L en la declaración CODIMENSION" | |
35068 | ||
35069 | -#: fortran/decl.c:6200 | |
35070 | +#: fortran/decl.c:6199 | |
35071 | #, gcc-internal-format, gfc-internal-format | |
35072 | msgid "Array specification must be deferred at %L" | |
35073 | msgstr "La especificación de matriz se debe diferir en %L" | |
35074 | ||
35075 | -#: fortran/decl.c:6299 | |
35076 | +#: fortran/decl.c:6298 | |
35077 | #, gcc-internal-format, gfc-internal-format | |
35078 | msgid "Unexpected character in variable list at %C" | |
35079 | msgstr "Carácter inesperado en la lista de variables en %C" | |
35080 | ||
35081 | -#: fortran/decl.c:6336 | |
35082 | +#: fortran/decl.c:6335 | |
35083 | #, gcc-internal-format, gfc-internal-format | |
35084 | msgid "Expected '(' at %C" | |
35085 | msgstr "Se esperaba '(' en %C" | |
35086 | ||
35087 | -#: fortran/decl.c:6350 fortran/decl.c:6390 | |
35088 | +#: fortran/decl.c:6349 fortran/decl.c:6389 | |
35089 | #, gcc-internal-format, gfc-internal-format | |
35090 | msgid "Expected variable name at %C" | |
35091 | msgstr "se esperaba un nombre variable en %C" | |
35092 | ||
35093 | -#: fortran/decl.c:6366 | |
35094 | +#: fortran/decl.c:6365 | |
35095 | #, gcc-internal-format, gfc-internal-format | |
35096 | msgid "Cray pointer at %C must be an integer" | |
35097 | msgstr "El puntero Cray en %C debe ser un entero" | |
35098 | ||
35099 | -#: fortran/decl.c:6370 | |
35100 | +#: fortran/decl.c:6369 | |
35101 | #, gcc-internal-format, gfc-internal-format | |
35102 | msgid "Cray pointer at %C has %d bytes of precision; memory addresses require %d bytes" | |
35103 | msgstr "El puntero Cray en %C tiene %d bytes de precisión; las direcciones de memoria requieren %d bytes" | |
35104 | ||
35105 | -#: fortran/decl.c:6376 | |
35106 | +#: fortran/decl.c:6375 | |
35107 | #, gcc-internal-format, gfc-internal-format | |
35108 | msgid "Expected \",\" at %C" | |
35109 | msgstr "Se esperaba \",\" en %C" | |
35110 | ||
35111 | -#: fortran/decl.c:6439 | |
35112 | +#: fortran/decl.c:6438 | |
35113 | #, gcc-internal-format, gfc-internal-format | |
35114 | msgid "Expected \")\" at %C" | |
35115 | msgstr "Se esperaba \")\" en %C" | |
35116 | ||
35117 | -#: fortran/decl.c:6451 | |
35118 | +#: fortran/decl.c:6450 | |
35119 | #, gcc-internal-format, gfc-internal-format | |
35120 | msgid "Expected \",\" or end of statement at %C" | |
35121 | msgstr "Se esperaba \",\" o el final de la declaración en %C" | |
35122 | ||
35123 | -#: fortran/decl.c:6477 | |
35124 | +#: fortran/decl.c:6476 | |
35125 | #, gcc-internal-format, gfc-internal-format | |
35126 | msgid "INTENT is not allowed inside of BLOCK at %C" | |
35127 | msgstr "No se permite INTENT dentro de BLOCK en %C" | |
35128 | ||
35129 | -#: fortran/decl.c:6509 | |
35130 | +#: fortran/decl.c:6508 | |
35131 | #, gcc-internal-format, gfc-internal-format | |
35132 | msgid "OPTIONAL is not allowed inside of BLOCK at %C" | |
35133 | msgstr "No se permite OPTIONAL dentro de BLOCK en %C" | |
35134 | ||
35135 | -#: fortran/decl.c:6528 | |
35136 | +#: fortran/decl.c:6527 | |
35137 | #, gcc-internal-format, gfc-internal-format | |
35138 | msgid "Cray pointer declaration at %C requires -fcray-pointer flag" | |
35139 | msgstr "La declaración de punteros Cray en %C requiere la opción -fcray-pointer" | |
35140 | ||
35141 | -#: fortran/decl.c:6567 | |
35142 | +#: fortran/decl.c:6566 | |
35143 | #, gcc-internal-format, gfc-internal-format | |
35144 | msgid "Fortran 2008: CONTIGUOUS statement at %C" | |
35145 | msgstr "Fortran 2008: Declaración CONTIGUOUS en %C" | |
35146 | ||
35147 | -#: fortran/decl.c:6665 | |
35148 | +#: fortran/decl.c:6664 | |
35149 | #, gcc-internal-format, gfc-internal-format | |
35150 | msgid "Access specification of the %s operator at %C has already been specified" | |
35151 | msgstr "La especificación de acceso del operador %s en %C ya se había especificado" | |
35152 | ||
35153 | -#: fortran/decl.c:6682 | |
35154 | +#: fortran/decl.c:6681 | |
35155 | #, gcc-internal-format, gfc-internal-format | |
35156 | msgid "Access specification of the .%s. operator at %C has already been specified" | |
35157 | msgstr "La especificación de acceso del operador .%s. en %C ya se había especificado" | |
35158 | ||
35159 | -#: fortran/decl.c:6720 | |
35160 | +#: fortran/decl.c:6719 | |
35161 | #, gcc-internal-format, gfc-internal-format | |
35162 | msgid "Fortran 2003: PROTECTED statement at %C" | |
35163 | msgstr "Fortran 2003: Declaración PROTECTED en %C" | |
35164 | ||
35165 | -#: fortran/decl.c:6760 | |
35166 | +#: fortran/decl.c:6759 | |
35167 | #, gcc-internal-format, gfc-internal-format | |
35168 | msgid "Syntax error in PROTECTED statement at %C" | |
35169 | msgstr "Error sintáctico en la declaración PROTECTED en %C" | |
35170 | ||
35171 | -#: fortran/decl.c:6784 | |
35172 | +#: fortran/decl.c:6783 | |
35173 | #, gcc-internal-format, gfc-internal-format | |
35174 | msgid "PRIVATE statement at %C is only allowed in the specification part of a module" | |
35175 | msgstr "Sólo se permite la declaración PRIVATE en %C en la parte de especificación de un módulo" | |
35176 | ||
35177 | -#: fortran/decl.c:6821 | |
35178 | +#: fortran/decl.c:6820 | |
35179 | #, gcc-internal-format, gfc-internal-format | |
35180 | msgid "PUBLIC statement at %C is only allowed in the specification part of a module" | |
35181 | msgstr "Sólo se permite la declaración PRIVATE en %C en la parte de especificación de un módulo" | |
35182 | ||
35183 | -#: fortran/decl.c:6849 | |
35184 | +#: fortran/decl.c:6848 | |
35185 | #, gcc-internal-format, gfc-internal-format | |
35186 | msgid "Expected variable name at %C in PARAMETER statement" | |
35187 | msgstr "Se esperaba un nombre de variable en %C en la declaración PARAMETER" | |
35188 | ||
35189 | -#: fortran/decl.c:6856 | |
35190 | +#: fortran/decl.c:6855 | |
35191 | #, gcc-internal-format, gfc-internal-format | |
35192 | msgid "Expected = sign in PARAMETER statement at %C" | |
35193 | msgstr "Se esperaba un signo = en la declaración PARAMETER en %C" | |
35194 | ||
35195 | -#: fortran/decl.c:6862 | |
35196 | +#: fortran/decl.c:6861 | |
35197 | #, gcc-internal-format, gfc-internal-format | |
35198 | msgid "Expected expression at %C in PARAMETER statement" | |
35199 | msgstr "Se esperaba una expresión en %C en la declaración PARAMETER" | |
35200 | ||
35201 | -#: fortran/decl.c:6882 | |
35202 | +#: fortran/decl.c:6881 | |
35203 | #, gcc-internal-format, gfc-internal-format | |
35204 | msgid "Initializing already initialized variable at %C" | |
35205 | msgstr "Se inicializa una variable ya inicializada en %C" | |
35206 | ||
35207 | -#: fortran/decl.c:6917 | |
35208 | +#: fortran/decl.c:6916 | |
35209 | #, gcc-internal-format, gfc-internal-format | |
35210 | msgid "Unexpected characters in PARAMETER statement at %C" | |
35211 | msgstr "Caracteres inesperados en la declaración PARAMETER en %C" | |
35212 | ||
35213 | -#: fortran/decl.c:6941 | |
35214 | +#: fortran/decl.c:6940 | |
35215 | #, gcc-internal-format, gfc-internal-format | |
35216 | msgid "Blanket SAVE statement at %C follows previous SAVE statement" | |
35217 | msgstr "Declaración SAVE incondicional en %C después de una declaración SAVE previa" | |
35218 | ||
35219 | -#: fortran/decl.c:6953 | |
35220 | +#: fortran/decl.c:6952 | |
35221 | #, gcc-internal-format, gfc-internal-format | |
35222 | msgid "SAVE statement at %C follows blanket SAVE statement" | |
35223 | msgstr "Declaración SAVE en %C después de una declaración SAVE incondicional" | |
35224 | ||
35225 | -#: fortran/decl.c:7000 | |
35226 | +#: fortran/decl.c:6999 | |
35227 | #, gcc-internal-format, gfc-internal-format | |
35228 | msgid "Syntax error in SAVE statement at %C" | |
35229 | msgstr "Error sintáctico en la declaración SAVE en %C" | |
35230 | ||
35231 | -#: fortran/decl.c:7014 | |
35232 | +#: fortran/decl.c:7013 | |
35233 | #, gcc-internal-format, gfc-internal-format | |
35234 | msgid "VALUE is not allowed inside of BLOCK at %C" | |
35235 | msgstr "No se permite VALUE dentro de BLOCK en %C" | |
35236 | ||
35237 | -#: fortran/decl.c:7018 | |
35238 | +#: fortran/decl.c:7017 | |
35239 | #, gcc-internal-format, gfc-internal-format | |
35240 | msgid "Fortran 2003: VALUE statement at %C" | |
35241 | msgstr "Fortran 2003: Declaración VALUE en %C" | |
35242 | ||
35243 | -#: fortran/decl.c:7058 | |
35244 | +#: fortran/decl.c:7057 | |
35245 | #, gcc-internal-format, gfc-internal-format | |
35246 | msgid "Syntax error in VALUE statement at %C" | |
35247 | msgstr "Error sintáctico en la declaración VALUE en %C" | |
35248 | ||
35249 | -#: fortran/decl.c:7069 | |
35250 | +#: fortran/decl.c:7068 | |
35251 | #, gcc-internal-format, gfc-internal-format | |
35252 | msgid "Fortran 2003: VOLATILE statement at %C" | |
35253 | msgstr "Fortran 2003: Declaración VOLATILE en %C" | |
35254 | ||
35255 | -#: fortran/decl.c:7093 | |
35256 | +#: fortran/decl.c:7092 | |
35257 | #, gcc-internal-format, gfc-internal-format | |
35258 | msgid "Specifying VOLATILE for coarray variable '%s' at %C, which is use-/host-associated" | |
35259 | msgstr "Se especifica VOLATILE para la variable de comatriz '%s' en %C, la cual es asociada a uso/anfitrión" | |
35260 | ||
35261 | -#: fortran/decl.c:7119 | |
35262 | +#: fortran/decl.c:7118 | |
35263 | #, gcc-internal-format, gfc-internal-format | |
35264 | msgid "Syntax error in VOLATILE statement at %C" | |
35265 | msgstr "Error sintáctico en la declaración VOLATILE en %C" | |
35266 | ||
35267 | -#: fortran/decl.c:7130 | |
35268 | +#: fortran/decl.c:7129 | |
35269 | #, gcc-internal-format, gfc-internal-format | |
35270 | msgid "Fortran 2003: ASYNCHRONOUS statement at %C" | |
35271 | msgstr "Fortran 2003: Declaración ASYNCHRONOUS en %C" | |
35272 | ||
35273 | -#: fortran/decl.c:7172 | |
35274 | +#: fortran/decl.c:7171 | |
35275 | #, gcc-internal-format, gfc-internal-format | |
35276 | msgid "Syntax error in ASYNCHRONOUS statement at %C" | |
35277 | msgstr "Error sintáctico en la declaración ASYNCHRONOUS en %C" | |
35278 | ||
35279 | -#: fortran/decl.c:7196 | |
35280 | +#: fortran/decl.c:7195 | |
35281 | #, gcc-internal-format, gfc-internal-format | |
35282 | msgid "MODULE PROCEDURE at %C must be in a generic module interface" | |
35283 | msgstr "MODULE PROCEDURE en %C debe estar en una interfaz genérica de módulo" | |
35284 | ||
35285 | -#: fortran/decl.c:7221 | |
35286 | +#: fortran/decl.c:7220 | |
35287 | #, gcc-internal-format, gfc-internal-format | |
35288 | msgid "Fortran 2008: double colon in MODULE PROCEDURE statement at %L" | |
35289 | msgstr "Fortran 2008: dos puntos dobles en la declaración MODULE PROCEDURE en %L" | |
35290 | ||
35291 | -#: fortran/decl.c:7255 | |
35292 | +#: fortran/decl.c:7254 | |
35293 | #, gcc-internal-format, gfc-internal-format | |
35294 | msgid "Intrinsic procedure at %L cannot be a MODULE PROCEDURE" | |
35295 | msgstr "El procedimiento intrínseco en %L no puede ser un MODULE PROCEDURE" | |
35296 | ||
35297 | -#: fortran/decl.c:7304 | |
35298 | +#: fortran/decl.c:7303 | |
35299 | #, gcc-internal-format, gfc-internal-format | |
35300 | msgid "Ambiguous symbol in TYPE definition at %C" | |
35301 | msgstr "Símbolo ambiguo en la definición TYPE en %C" | |
35302 | ||
35303 | -#: fortran/decl.c:7310 | |
35304 | +#: fortran/decl.c:7309 | |
35305 | #, gcc-internal-format, gfc-internal-format | |
35306 | msgid "No such symbol in TYPE definition at %C" | |
35307 | msgstr "No existe ese símbolo en la definición TYPE en %C" | |
35308 | ||
35309 | -#: fortran/decl.c:7318 | |
35310 | +#: fortran/decl.c:7317 | |
35311 | #, gcc-internal-format, gfc-internal-format | |
35312 | msgid "'%s' in EXTENDS expression at %C is not a derived type" | |
35313 | msgstr "'%s' en la expresión EXTENDS en %C no es un tipo derivado" | |
35314 | ||
35315 | -#: fortran/decl.c:7325 | |
35316 | +#: fortran/decl.c:7324 | |
35317 | #, gcc-internal-format, gfc-internal-format | |
35318 | msgid "'%s' cannot be extended at %C because it is BIND(C)" | |
35319 | msgstr "'%s' no se puede extender en %C porque es BIND(C)" | |
35320 | ||
35321 | -#: fortran/decl.c:7332 | |
35322 | +#: fortran/decl.c:7331 | |
35323 | #, gcc-internal-format, gfc-internal-format | |
35324 | msgid "'%s' cannot be extended at %C because it is a SEQUENCE type" | |
35325 | msgstr "'%s' no se puede extender en %C porque es un tipo SEQUENCE" | |
35326 | ||
35327 | -#: fortran/decl.c:7355 | |
35328 | +#: fortran/decl.c:7354 | |
35329 | #, gcc-internal-format, gfc-internal-format | |
35330 | msgid "Derived type at %C can only be PRIVATE in the specification part of a module" | |
35331 | msgstr "El tipo derivado en %C sólo puede ser PRIVATE en la parte de especificación de un módulo" | |
35332 | ||
35333 | -#: fortran/decl.c:7367 | |
35334 | +#: fortran/decl.c:7366 | |
35335 | #, gcc-internal-format, gfc-internal-format | |
35336 | msgid "Derived type at %C can only be PUBLIC in the specification part of a module" | |
35337 | msgstr "El tipo derivado en %C sólo puede ser PUBLIC en la parte de especificación de un módulo" | |
35338 | ||
35339 | -#: fortran/decl.c:7388 | |
35340 | +#: fortran/decl.c:7387 | |
35341 | #, gcc-internal-format, gfc-internal-format | |
35342 | msgid "Fortran 2003: ABSTRACT type at %C" | |
35343 | msgstr "Fortran 2003: Tipo ABSTRACT en %C" | |
35344 | ||
35345 | -#: fortran/decl.c:7453 | |
35346 | +#: fortran/decl.c:7452 | |
35347 | #, gcc-internal-format, gfc-internal-format | |
35348 | msgid "Expected :: in TYPE definition at %C" | |
35349 | msgstr "Se esperaba :: en la definición TYPE en %C" | |
35350 | ||
35351 | -#: fortran/decl.c:7464 | |
35352 | +#: fortran/decl.c:7463 | |
35353 | #, gcc-internal-format, gfc-internal-format | |
35354 | msgid "Type name '%s' at %C cannot be the same as an intrinsic type" | |
35355 | msgstr "El nombre de tipo '%s' en %C no puede ser el mismo que un tipo intrínseco" | |
35356 | ||
35357 | -#: fortran/decl.c:7474 | |
35358 | +#: fortran/decl.c:7473 | |
35359 | #, gcc-internal-format, gfc-internal-format | |
35360 | msgid "Derived type name '%s' at %C already has a basic type of %s" | |
35361 | msgstr "El nombre de tipo derivado '%s' en %C ya tiene un tipo básico de %s" | |
35362 | ||
35363 | -#: fortran/decl.c:7491 | |
35364 | +#: fortran/decl.c:7490 | |
35365 | #, gcc-internal-format, gfc-internal-format | |
35366 | msgid "Derived type definition of '%s' at %C has already been defined" | |
35367 | msgstr "La definición del tipo derivado de '%s' en %C ya se había definido" | |
35368 | ||
35369 | -#: fortran/decl.c:7599 | |
35370 | +#: fortran/decl.c:7598 | |
35371 | #, gcc-internal-format, gfc-internal-format | |
35372 | msgid "Cray Pointee at %C cannot be assumed shape array" | |
35373 | msgstr "El Apuntado Cray en %C no puede ser una matriz de forma asumida" | |
35374 | ||
35375 | -#: fortran/decl.c:7619 | |
35376 | +#: fortran/decl.c:7618 | |
35377 | #, gcc-internal-format, gfc-internal-format | |
35378 | msgid "Fortran 2003: ENUM and ENUMERATOR at %C" | |
35379 | msgstr "Fortran 2003: ENUM y ENUMERATOR en %C" | |
35380 | ||
35381 | -#: fortran/decl.c:7652 | |
35382 | +#: fortran/decl.c:7651 | |
35383 | #, gcc-internal-format, gfc-internal-format | |
35384 | msgid "Enumerator exceeds the C integer type at %C" | |
35385 | msgstr "El enumerador excede el tipo entero de C en %C" | |
35386 | ||
35387 | -#: fortran/decl.c:7731 | |
35388 | +#: fortran/decl.c:7730 | |
35389 | #, gcc-internal-format, gfc-internal-format | |
35390 | msgid "ENUMERATOR %L not initialized with integer expression" | |
35391 | msgstr "ENUMERATOR %L no se inicializó con una expresión entera" | |
35392 | ||
35393 | -#: fortran/decl.c:7779 | |
35394 | +#: fortran/decl.c:7778 | |
35395 | #, gcc-internal-format, gfc-internal-format | |
35396 | msgid "ENUM definition statement expected before %C" | |
35397 | msgstr "Se esperaba una declaración de definición ENUM antes de %C" | |
35398 | ||
35399 | -#: fortran/decl.c:7815 | |
35400 | +#: fortran/decl.c:7814 | |
35401 | #, gcc-internal-format, gfc-internal-format | |
35402 | msgid "Syntax error in ENUMERATOR definition at %C" | |
35403 | msgstr "Error sintáctico en la definición ENUMERATOR en %C" | |
35404 | ||
35405 | -#: fortran/decl.c:7862 fortran/decl.c:7877 | |
35406 | +#: fortran/decl.c:7861 fortran/decl.c:7876 | |
35407 | #, gcc-internal-format, gfc-internal-format | |
35408 | msgid "Duplicate access-specifier at %C" | |
35409 | msgstr "Especificador de acceso duplicado en %C" | |
35410 | ||
35411 | -#: fortran/decl.c:7897 | |
35412 | +#: fortran/decl.c:7896 | |
35413 | #, gcc-internal-format, gfc-internal-format | |
35414 | msgid "Binding attributes already specify passing, illegal NOPASS at %C" | |
35415 | msgstr "Los atributos de enlace ya especifican paso, NOPASS ilegal en %C" | |
35416 | ||
35417 | -#: fortran/decl.c:7917 | |
35418 | +#: fortran/decl.c:7916 | |
35419 | #, gcc-internal-format, gfc-internal-format | |
35420 | msgid "Binding attributes already specify passing, illegal PASS at %C" | |
35421 | msgstr "Los atributos de enlace ya especifican paso, PASS ilegal en %C" | |
35422 | ||
35423 | -#: fortran/decl.c:7944 | |
35424 | +#: fortran/decl.c:7943 | |
35425 | #, gcc-internal-format, gfc-internal-format | |
35426 | msgid "Duplicate POINTER attribute at %C" | |
35427 | msgstr "Atributo POINTER duplicado en %C" | |
35428 | ||
35429 | -#: fortran/decl.c:7962 | |
35430 | +#: fortran/decl.c:7961 | |
35431 | #, gcc-internal-format, gfc-internal-format | |
35432 | msgid "Duplicate NON_OVERRIDABLE at %C" | |
35433 | msgstr "NON_OVERRIDABLE duplicado en %C" | |
35434 | ||
35435 | -#: fortran/decl.c:7978 | |
35436 | +#: fortran/decl.c:7977 | |
35437 | #, gcc-internal-format, gfc-internal-format | |
35438 | msgid "Duplicate DEFERRED at %C" | |
35439 | msgstr "DEFERRED duplicado en %C" | |
35440 | ||
35441 | -#: fortran/decl.c:7991 | |
35442 | +#: fortran/decl.c:7990 | |
35443 | #, gcc-internal-format, gfc-internal-format | |
35444 | msgid "Expected access-specifier at %C" | |
35445 | msgstr "Se esperaba un especificador de acceso en %C" | |
35446 | ||
35447 | -#: fortran/decl.c:7993 | |
35448 | +#: fortran/decl.c:7992 | |
35449 | #, gcc-internal-format, gfc-internal-format | |
35450 | msgid "Expected binding attribute at %C" | |
35451 | msgstr "Se esperaba un atributo de enlace en %C" | |
35452 | ||
35453 | -#: fortran/decl.c:8001 | |
35454 | +#: fortran/decl.c:8000 | |
35455 | #, gcc-internal-format, gfc-internal-format | |
35456 | msgid "NON_OVERRIDABLE and DEFERRED can't both appear at %C" | |
35457 | msgstr "No pueden aparecer NON_OVERRIDABLE y DEFERRED al mismo tiempo en %C" | |
35458 | ||
35459 | -#: fortran/decl.c:8013 | |
35460 | +#: fortran/decl.c:8012 | |
35461 | #, gcc-internal-format, gfc-internal-format | |
35462 | msgid "POINTER attribute is required for procedure pointer component at %C" | |
35463 | msgstr "Se requiere el atributo POINTER para el procedimiento de componente puntero en %C" | |
35464 | ||
35465 | -#: fortran/decl.c:8055 | |
35466 | +#: fortran/decl.c:8054 | |
35467 | #, gcc-internal-format, gfc-internal-format | |
35468 | msgid "Interface-name expected after '(' at %C" | |
35469 | msgstr "Se esperaba un nombre de interfaz después de '(' en %C" | |
35470 | ||
35471 | -#: fortran/decl.c:8061 | |
35472 | +#: fortran/decl.c:8060 | |
35473 | #, gcc-internal-format, gfc-internal-format | |
35474 | msgid "')' expected at %C" | |
35475 | msgstr "Se esperaba ')' en %C" | |
35476 | ||
35477 | -#: fortran/decl.c:8081 | |
35478 | +#: fortran/decl.c:8080 | |
35479 | #, gcc-internal-format, gfc-internal-format | |
35480 | msgid "Interface must be specified for DEFERRED binding at %C" | |
35481 | msgstr "Se debe especificar una interfaz para el enlace DEFERRED en %C" | |
35482 | ||
35483 | -#: fortran/decl.c:8086 | |
35484 | +#: fortran/decl.c:8085 | |
35485 | #, gcc-internal-format, gfc-internal-format | |
35486 | msgid "PROCEDURE(interface) at %C should be declared DEFERRED" | |
35487 | msgstr "PROCEDURE(interface) en %C se debe declarar DEFERRED" | |
35488 | ||
35489 | -#: fortran/decl.c:8109 | |
35490 | +#: fortran/decl.c:8108 | |
35491 | #, gcc-internal-format, gfc-internal-format | |
35492 | msgid "Expected binding name at %C" | |
35493 | msgstr "Se esperaba un nombre de enlace en %C" | |
35494 | ||
35495 | -#: fortran/decl.c:8113 | |
35496 | +#: fortran/decl.c:8112 | |
35497 | #, gcc-internal-format, gfc-internal-format | |
35498 | msgid "Fortran 2008: PROCEDURE list at %C" | |
35499 | msgstr "Fortran 2008: Lista PROCEDURE en %C" | |
35500 | ||
35501 | -#: fortran/decl.c:8126 | |
35502 | +#: fortran/decl.c:8125 | |
35503 | #, gcc-internal-format, gfc-internal-format | |
35504 | msgid "'=> target' is invalid for DEFERRED binding at %C" | |
35505 | msgstr "'=> objetivo' es inválido para el enlace DEFERRED en %C" | |
35506 | ||
35507 | -#: fortran/decl.c:8132 | |
35508 | +#: fortran/decl.c:8131 | |
35509 | #, gcc-internal-format, gfc-internal-format | |
35510 | msgid "'::' needed in PROCEDURE binding with explicit target at %C" | |
35511 | msgstr "Se necesita '::' en el enlace PROCEDURE con objetivo explícito en %C" | |
35512 | ||
35513 | -#: fortran/decl.c:8142 | |
35514 | +#: fortran/decl.c:8141 | |
35515 | #, gcc-internal-format, gfc-internal-format | |
35516 | msgid "Expected binding target after '=>' at %C" | |
35517 | msgstr "Se esperaba un objetivo de enlace después de '=>' en %C" | |
35518 | ||
35519 | -#: fortran/decl.c:8159 | |
35520 | +#: fortran/decl.c:8158 | |
35521 | #, gcc-internal-format, gfc-internal-format | |
35522 | msgid "Type '%s' containing DEFERRED binding at %C is not ABSTRACT" | |
35523 | msgstr "El tipo '%s' que contiene el enlace DEFERRED en %C no es ABSTRACT" | |
35524 | ||
35525 | -#: fortran/decl.c:8170 | |
35526 | +#: fortran/decl.c:8169 | |
35527 | #, gcc-internal-format, gfc-internal-format | |
35528 | msgid "There is already a procedure with binding name '%s' for the derived type '%s' at %C" | |
35529 | msgstr "Ya existe un procedimiento con nombre de enlazado '%s' para el tipo derivado '%s' en %C" | |
35530 | ||
35531 | -#: fortran/decl.c:8219 | |
35532 | +#: fortran/decl.c:8218 | |
35533 | #, gcc-internal-format, gfc-internal-format | |
35534 | msgid "GENERIC at %C must be inside a derived-type CONTAINS" | |
35535 | msgstr "GENERIC en %C debe estar dentro de un tipo derivado CONTAINS" | |
35536 | ||
35537 | -#: fortran/decl.c:8239 | |
35538 | +#: fortran/decl.c:8238 | |
35539 | #, gcc-internal-format, gfc-internal-format | |
35540 | msgid "Expected '::' at %C" | |
35541 | msgstr "Se esperaba '::' en %C" | |
35542 | ||
35543 | -#: fortran/decl.c:8251 | |
35544 | +#: fortran/decl.c:8250 | |
35545 | #, gcc-internal-format, gfc-internal-format | |
35546 | msgid "Expected generic name or operator descriptor at %C" | |
35547 | msgstr "Se esperaba un nombre genérico o un descriptor de operador en %C" | |
35548 | ||
35549 | -#: fortran/decl.c:8277 | |
35550 | +#: fortran/decl.c:8276 | |
35551 | #, gcc-internal-format, gfc-internal-format | |
35552 | msgid "Expected '=>' at %C" | |
35553 | msgstr "Se esperaba '=>' en %C" | |
35554 | ||
35555 | -#: fortran/decl.c:8319 | |
35556 | +#: fortran/decl.c:8318 | |
35557 | #, gcc-internal-format, gfc-internal-format | |
35558 | msgid "There's already a non-generic procedure with binding name '%s' for the derived type '%s' at %C" | |
35559 | msgstr "Ya existe un procedimiento que no es genérico con el nombre de enlace '%s' para el tipo derivado '%s' en %C" | |
35560 | ||
35561 | -#: fortran/decl.c:8327 | |
35562 | +#: fortran/decl.c:8326 | |
35563 | #, gcc-internal-format, gfc-internal-format | |
35564 | msgid "Binding at %C must have the same access as already defined binding '%s'" | |
35565 | msgstr "El enlace en %C debe tener el mismo acceso que el enlace '%s' que ya está definido" | |
35566 | ||
35567 | -#: fortran/decl.c:8376 | |
35568 | +#: fortran/decl.c:8375 | |
35569 | #, gcc-internal-format, gfc-internal-format | |
35570 | msgid "Expected specific binding name at %C" | |
35571 | msgstr "Se esperaba un nombre de enlace específico en %C" | |
35572 | ||
35573 | -#: fortran/decl.c:8386 | |
35574 | +#: fortran/decl.c:8385 | |
35575 | #, gcc-internal-format, gfc-internal-format | |
35576 | msgid "'%s' already defined as specific binding for the generic '%s' at %C" | |
35577 | msgstr "Ya se definió '%s' como un enlace específico para el genérico '%s' en %C" | |
35578 | ||
35579 | -#: fortran/decl.c:8402 | |
35580 | +#: fortran/decl.c:8403 | |
35581 | #, gcc-internal-format, gfc-internal-format | |
35582 | msgid "Junk after GENERIC binding at %C" | |
35583 | msgstr "Basura después del enlace GENERIC en %C" | |
35584 | ||
35585 | -#: fortran/decl.c:8437 | |
35586 | +#: fortran/decl.c:8438 | |
35587 | #, gcc-internal-format, gfc-internal-format | |
35588 | msgid "FINAL declaration at %C must be inside a derived type CONTAINS section" | |
35589 | msgstr "La declaración FINAL en %C debe estar dentro de una sección de tipo derivado CONTAINS" | |
35590 | ||
35591 | -#: fortran/decl.c:8448 | |
35592 | +#: fortran/decl.c:8449 | |
35593 | #, gcc-internal-format, gfc-internal-format | |
35594 | msgid "Derived type declaration with FINAL at %C must be in the specification part of a MODULE" | |
35595 | msgstr "La declaración de tipo derivado con FINAL en %C debe estar en la parte de especificación de un MODULE" | |
35596 | ||
35597 | -#: fortran/decl.c:8470 | |
35598 | +#: fortran/decl.c:8471 | |
35599 | #, gcc-internal-format, gfc-internal-format | |
35600 | msgid "Empty FINAL at %C" | |
35601 | msgstr "FINAL vacío en %C" | |
35602 | ||
35603 | -#: fortran/decl.c:8477 | |
35604 | +#: fortran/decl.c:8478 | |
35605 | #, gcc-internal-format, gfc-internal-format | |
35606 | msgid "Expected module procedure name at %C" | |
35607 | msgstr "Se esperaba un nombre de procedimiento de módulo en %C" | |
35608 | ||
35609 | -#: fortran/decl.c:8487 | |
35610 | +#: fortran/decl.c:8488 | |
35611 | #, gcc-internal-format, gfc-internal-format | |
35612 | msgid "Expected ',' at %C" | |
35613 | msgstr "Se esperaba ',' en %C" | |
35614 | ||
35615 | -#: fortran/decl.c:8493 | |
35616 | +#: fortran/decl.c:8494 | |
35617 | #, gcc-internal-format, gfc-internal-format | |
35618 | msgid "Unknown procedure name \"%s\" at %C" | |
35619 | msgstr "Nombre de procedimiento \"%s\" desconocido en %C" | |
35620 | ||
35621 | -#: fortran/decl.c:8507 | |
35622 | +#: fortran/decl.c:8508 | |
35623 | #, gcc-internal-format, gfc-internal-format | |
35624 | msgid "'%s' at %C is already defined as FINAL procedure!" | |
35625 | msgstr "¡'%s' en %C ya se había definido como un procedimiento FINAL!" | |
35626 | ||
35627 | -#: fortran/decl.c:8576 | |
35628 | +#: fortran/decl.c:8577 | |
35629 | #, gcc-internal-format, gfc-internal-format | |
35630 | msgid "Unknown attribute in !GCC$ ATTRIBUTES statement at %C" | |
35631 | msgstr "Atributo desconocido en la declaración !GCC$ ATTRIBUTES en %C" | |
35632 | ||
35633 | -#: fortran/decl.c:8623 | |
35634 | +#: fortran/decl.c:8624 | |
35635 | #, gcc-internal-format, gfc-internal-format | |
35636 | msgid "Syntax error in !GCC$ ATTRIBUTES statement at %C" | |
35637 | msgstr "Error sintáctico en la declaración !GCC$ ATTRIBUTES en %C" | |
35638 | @@ -36998,27 +37209,27 @@ | |
35639 | msgid "Extension: BOZ literal at %L used to initialize non-integer variable '%s'" | |
35640 | msgstr "Extensión: se usa la literal BOZ en %L para inicializar la variable '%s' que no es entera" | |
35641 | ||
35642 | -#: fortran/expr.c:3177 fortran/resolve.c:9109 | |
35643 | +#: fortran/expr.c:3177 fortran/resolve.c:9096 | |
35644 | #, gcc-internal-format, gfc-internal-format | |
35645 | msgid "Extension: BOZ literal at %L outside a DATA statement and outside INT/REAL/DBLE/CMPLX" | |
35646 | msgstr "Extensión: la literal BOZ en %L está fuera de una declaración DATA y fuera de INT/REAL/DBLE/CMPLX" | |
35647 | ||
35648 | -#: fortran/expr.c:3187 fortran/resolve.c:9119 | |
35649 | +#: fortran/expr.c:3187 fortran/resolve.c:9106 | |
35650 | #, gcc-internal-format, gfc-internal-format | |
35651 | msgid "BOZ literal at %L is bitwise transferred non-integer symbol '%s'" | |
35652 | msgstr "La literal BOZ en %L se transfiere por bits al símbolo '%s' que no es entero" | |
35653 | ||
35654 | -#: fortran/expr.c:3195 fortran/resolve.c:9128 | |
35655 | +#: fortran/expr.c:3195 fortran/resolve.c:9115 | |
35656 | #, gcc-internal-format, gfc-internal-format | |
35657 | msgid "Arithmetic underflow of bit-wise transferred BOZ at %L. This check can be disabled with the option -fno-range-check" | |
35658 | msgstr "Desborde aritmético por debajo del BOZ transferido por bits en %L. Esta revisión se puede desactivar con la opción -fno-range-check" | |
35659 | ||
35660 | -#: fortran/expr.c:3199 fortran/resolve.c:9132 | |
35661 | +#: fortran/expr.c:3199 fortran/resolve.c:9119 | |
35662 | #, gcc-internal-format, gfc-internal-format | |
35663 | msgid "Arithmetic overflow of bit-wise transferred BOZ at %L. This check can be disabled with the option -fno-range-check" | |
35664 | msgstr "Desborde aritmético del BOZ transferido por bits en %L. Esta revisión se puede desactivar con la opción -fno-range-check" | |
35665 | ||
35666 | -#: fortran/expr.c:3203 fortran/resolve.c:9136 | |
35667 | +#: fortran/expr.c:3203 fortran/resolve.c:9123 | |
35668 | #, gcc-internal-format, gfc-internal-format | |
35669 | msgid "Arithmetic NaN of bit-wise transferred BOZ at %L. This check can be disabled with the option -fno-range-check" | |
35670 | msgstr "NaN aritmético del BOZ transferido por bits en %L. Esta revisión se puede desactivar con la opción -fno-range-check" | |
35671 | @@ -37198,72 +37409,72 @@ | |
35672 | msgid "Procedure pointer initialization target at %L may not be a procedure pointer" | |
35673 | msgstr "El objetivo de inicialización de puntero a procedimiento en %L tal vez no es un puntero a procedimiento" | |
35674 | ||
35675 | -#: fortran/expr.c:4587 | |
35676 | +#: fortran/expr.c:4593 | |
35677 | #, gcc-internal-format, gfc-internal-format | |
35678 | msgid "Fortran 2008: Pointer functions in variable definition context (%s) at %L" | |
35679 | msgstr "Fortran 2008: Funciones puntero en un contexto de definición variable (%s) en %L" | |
35680 | ||
35681 | -#: fortran/expr.c:4595 | |
35682 | +#: fortran/expr.c:4601 | |
35683 | #, gcc-internal-format, gfc-internal-format | |
35684 | msgid "Non-variable expression in variable definition context (%s) at %L" | |
35685 | msgstr "Expresión que no es variable en el contexto de definición variable (%s) en %L" | |
35686 | ||
35687 | -#: fortran/expr.c:4603 | |
35688 | +#: fortran/expr.c:4609 | |
35689 | #, gcc-internal-format, gfc-internal-format | |
35690 | msgid "Named constant '%s' in variable definition context (%s) at %L" | |
35691 | msgstr "Constante nombrada '%s' en el contexto de definición variable (%s) en %L" | |
35692 | ||
35693 | -#: fortran/expr.c:4612 | |
35694 | +#: fortran/expr.c:4618 | |
35695 | #, gcc-internal-format, gfc-internal-format | |
35696 | msgid "'%s' in variable definition context (%s) at %L is not a variable" | |
35697 | msgstr "'%s' en el contexto de definición variable (%s) en %L no es una variable" | |
35698 | ||
35699 | -#: fortran/expr.c:4623 | |
35700 | +#: fortran/expr.c:4629 | |
35701 | #, gcc-internal-format, gfc-internal-format | |
35702 | msgid "Non-POINTER in pointer association context (%s) at %L" | |
35703 | msgstr "Uno que no es POINTER en el contexto de asociación de puntero (%s) en %L" | |
35704 | ||
35705 | -#: fortran/expr.c:4636 | |
35706 | +#: fortran/expr.c:4642 | |
35707 | #, gcc-internal-format, gfc-internal-format | |
35708 | msgid "LOCK_TYPE in variable definition context (%s) at %L" | |
35709 | msgstr "LOCK_TYPE en el contexto de definición variable (%s) en %L" | |
35710 | ||
35711 | -#: fortran/expr.c:4658 | |
35712 | +#: fortran/expr.c:4664 | |
35713 | #, gcc-internal-format, gfc-internal-format | |
35714 | msgid "Dummy argument '%s' with INTENT(IN) in pointer association context (%s) at %L" | |
35715 | msgstr "Argumento dummy '%s' con INTENT(IN) en el contexto de asociación de puntero (%s) en %L" | |
35716 | ||
35717 | -#: fortran/expr.c:4666 | |
35718 | +#: fortran/expr.c:4672 | |
35719 | #, gcc-internal-format, gfc-internal-format | |
35720 | msgid "Dummy argument '%s' with INTENT(IN) in variable definition context (%s) at %L" | |
35721 | msgstr "Argumento dummy '%s' con INTENT(IN) en el contexto de definición de variable (%s) en %L" | |
35722 | ||
35723 | -#: fortran/expr.c:4679 | |
35724 | +#: fortran/expr.c:4685 | |
35725 | #, gcc-internal-format, gfc-internal-format | |
35726 | msgid "Variable '%s' is PROTECTED and can not appear in a pointer association context (%s) at %L" | |
35727 | msgstr "La variable '%s' es PROTECTED y no puede aparecer en un contexto de asociación de puntero (%s) en %L" | |
35728 | ||
35729 | -#: fortran/expr.c:4687 | |
35730 | +#: fortran/expr.c:4693 | |
35731 | #, gcc-internal-format, gfc-internal-format | |
35732 | msgid "Variable '%s' is PROTECTED and can not appear in a variable definition context (%s) at %L" | |
35733 | msgstr "La variable '%s' es PROTECTED y no puede aparecer en un contexto de definición variable (%s) en %L" | |
35734 | ||
35735 | -#: fortran/expr.c:4699 | |
35736 | +#: fortran/expr.c:4705 | |
35737 | #, gcc-internal-format, gfc-internal-format | |
35738 | msgid "Variable '%s' can not appear in a variable definition context (%s) at %L in PURE procedure" | |
35739 | msgstr "La variable '%s' no puede aparecer en un contexto de definición variable (%s) en %L en el procedimiento PURE" | |
35740 | ||
35741 | -#: fortran/expr.c:4758 | |
35742 | +#: fortran/expr.c:4764 | |
35743 | #, gcc-internal-format, gfc-internal-format | |
35744 | msgid "'%s' at %L associated to vector-indexed target can not be used in a variable definition context (%s)" | |
35745 | msgstr "No se puede usar '%s' en %L asociado al objetivo con índice vectorial en un contexto de definición variable (%s)" | |
35746 | ||
35747 | -#: fortran/expr.c:4762 | |
35748 | +#: fortran/expr.c:4768 | |
35749 | #, gcc-internal-format, gfc-internal-format | |
35750 | msgid "'%s' at %L associated to expression can not be used in a variable definition context (%s)" | |
35751 | msgstr "No se puede usar '%s' en %L asociado a una expresión en un contexto de definición variable (%s)" | |
35752 | ||
35753 | -#: fortran/expr.c:4774 | |
35754 | +#: fortran/expr.c:4780 | |
35755 | #, gcc-internal-format, gfc-internal-format | |
35756 | msgid "Associate-name '%s' can not appear in a variable definition context (%s) at %L because its target at %L can not, either" | |
35757 | msgstr "El nombre asociado '%s' no puede aparecer en un contexto de definición variable (%s) en %L porque su obtetivo en %L tampoco puede aparecer" | |
35758 | @@ -37279,7 +37490,7 @@ | |
35759 | msgstr "no se puede abrir el fichero de entrada: %s" | |
35760 | ||
35761 | #: fortran/frontend-passes.c:334 fortran/trans-array.c:1024 | |
35762 | -#: fortran/trans-array.c:5756 fortran/trans-array.c:7002 | |
35763 | +#: fortran/trans-array.c:5755 fortran/trans-array.c:7001 | |
35764 | #: fortran/trans-intrinsic.c:5422 | |
35765 | #, gcc-internal-format, gfc-internal-format | |
35766 | msgid "Creating array temporary at %L" | |
35767 | @@ -37395,12 +37606,12 @@ | |
35768 | msgid "Second argument of defined assignment at %L must be INTENT(IN)" | |
35769 | msgstr "El segundo argumento de la asignación definida en %L debe ser INTENT(IN)" | |
35770 | ||
35771 | -#: fortran/interface.c:705 fortran/resolve.c:13770 | |
35772 | +#: fortran/interface.c:705 fortran/resolve.c:13758 | |
35773 | #, gcc-internal-format, gfc-internal-format | |
35774 | msgid "First argument of operator interface at %L must be INTENT(IN)" | |
35775 | msgstr "El primer argumento de la interfaz de operador en %L debe ser INTENT(IN)" | |
35776 | ||
35777 | -#: fortran/interface.c:712 fortran/resolve.c:13788 | |
35778 | +#: fortran/interface.c:712 fortran/resolve.c:13776 | |
35779 | #, gcc-internal-format, gfc-internal-format | |
35780 | msgid "Second argument of operator interface at %L must be INTENT(IN)" | |
35781 | msgstr "El segundo argumento de la interfaz de operador en %L debe ser INTENT(IN)" | |
35782 | @@ -37430,447 +37641,447 @@ | |
35783 | msgid "In %s at %L procedures must be all FUNCTIONs as the generic name is also the name of a derived type" | |
35784 | msgstr "En %s en %L los procedimientos deben ser puras FUNCTIONs ya que el nombre genérico es también el nombre de un tipo derivado" | |
35785 | ||
35786 | -#: fortran/interface.c:1296 | |
35787 | +#: fortran/interface.c:1297 | |
35788 | #, gcc-internal-format, gfc-internal-format | |
35789 | -msgid "Extension: Internal procedure '%s' in %s at %L" | |
35790 | -msgstr "Extensión: Procedimiento interno '%s' en %s en %L" | |
35791 | +msgid "Fortran 2008: Internal procedure '%s' in %s at %L" | |
35792 | +msgstr "Fortran 2008: Procedimiento interno '%s' en %s en %L" | |
35793 | ||
35794 | -#: fortran/interface.c:1353 fortran/interface.c:1357 | |
35795 | +#: fortran/interface.c:1354 fortran/interface.c:1358 | |
35796 | #, gcc-internal-format, gfc-internal-format | |
35797 | msgid "Ambiguous interfaces '%s' and '%s' in %s at %L" | |
35798 | msgstr "Las interfaces '%s' y '%s' son ambiguas en %s en %L" | |
35799 | ||
35800 | -#: fortran/interface.c:1361 | |
35801 | +#: fortran/interface.c:1362 | |
35802 | #, gcc-internal-format, gfc-internal-format | |
35803 | msgid "Although not referenced, '%s' has ambiguous interfaces at %L" | |
35804 | msgstr "Aunque no esté referenciado, '%s' tiene interfaces ambiguas en %L" | |
35805 | ||
35806 | -#: fortran/interface.c:1395 | |
35807 | +#: fortran/interface.c:1396 | |
35808 | #, gcc-internal-format, gfc-internal-format | |
35809 | msgid "'%s' at %L is not a module procedure" | |
35810 | msgstr "'%s' en %L no es un procedimiento de módulo" | |
35811 | ||
35812 | -#: fortran/interface.c:1605 | |
35813 | +#: fortran/interface.c:1606 | |
35814 | #, gcc-internal-format, gfc-internal-format | |
35815 | msgid "Rank mismatch in argument '%s' at %L (scalar and rank-%d)" | |
35816 | msgstr "No coincide el rango en el argumento '%s' en %L (escalar y rango %d)" | |
35817 | ||
35818 | -#: fortran/interface.c:1610 | |
35819 | +#: fortran/interface.c:1611 | |
35820 | #, gcc-internal-format, gfc-internal-format | |
35821 | msgid "Rank mismatch in argument '%s' at %L (rank-%d and scalar)" | |
35822 | msgstr "No coincide el rango en el argumento '%s' en %L (rango %d y escalar)" | |
35823 | ||
35824 | -#: fortran/interface.c:1615 | |
35825 | +#: fortran/interface.c:1616 | |
35826 | #, gcc-internal-format, gfc-internal-format | |
35827 | msgid "Rank mismatch in argument '%s' at %L (rank-%d and rank-%d)" | |
35828 | msgstr "No coincide el rango en el argumento '%s' en %L (rango %d y rango %d)" | |
35829 | ||
35830 | -#: fortran/interface.c:1657 | |
35831 | +#: fortran/interface.c:1658 | |
35832 | #, gcc-internal-format, gfc-internal-format | |
35833 | msgid "Invalid procedure argument at %L" | |
35834 | msgstr "Argumento de procedimiento inválido en %L" | |
35835 | ||
35836 | -#: fortran/interface.c:1665 | |
35837 | +#: fortran/interface.c:1666 | |
35838 | #, gcc-internal-format, gfc-internal-format | |
35839 | msgid "Interface mismatch in dummy procedure '%s' at %L: %s" | |
35840 | msgstr "La interfaz no coincide en el procedimiento dummy '%s' en %L: %s" | |
35841 | ||
35842 | -#: fortran/interface.c:1690 | |
35843 | +#: fortran/interface.c:1691 | |
35844 | #, gcc-internal-format, gfc-internal-format | |
35845 | msgid "Actual argument to contiguous pointer dummy '%s' at %L must be simply contigous" | |
35846 | msgstr "El argumento actual para el puntero dummy contiguo '%s' en %L debe ser simplemente contiguo" | |
35847 | ||
35848 | -#: fortran/interface.c:1703 | |
35849 | +#: fortran/interface.c:1704 | |
35850 | #, gcc-internal-format, gfc-internal-format | |
35851 | msgid "Type mismatch in argument '%s' at %L; passed %s to %s" | |
35852 | msgstr "No coincide el tipo en el argumento '%s' en %L; se pasa %s a %s" | |
35853 | ||
35854 | -#: fortran/interface.c:1717 | |
35855 | +#: fortran/interface.c:1718 | |
35856 | #, gcc-internal-format, gfc-internal-format | |
35857 | msgid "Actual argument to '%s' at %L must be polymorphic" | |
35858 | msgstr "El argumento actual para '%s' en %L debe ser polimórfico" | |
35859 | ||
35860 | -#: fortran/interface.c:1725 | |
35861 | +#: fortran/interface.c:1726 | |
35862 | #, gcc-internal-format, gfc-internal-format | |
35863 | msgid "Actual argument to '%s' at %L must have the same declared type" | |
35864 | msgstr "El argumento actual para '%s' en %L debe tener el mismo tipo declarado" | |
35865 | ||
35866 | -#: fortran/interface.c:1734 | |
35867 | +#: fortran/interface.c:1735 | |
35868 | #, gcc-internal-format, gfc-internal-format | |
35869 | msgid "Actual argument to '%s' at %L must be a coarray" | |
35870 | msgstr "El argumento actual para '%s' en %L debe ser una comatriz" | |
35871 | ||
35872 | -#: fortran/interface.c:1753 | |
35873 | +#: fortran/interface.c:1754 | |
35874 | #, gcc-internal-format, gfc-internal-format | |
35875 | msgid "Corank mismatch in argument '%s' at %L (%d and %d)" | |
35876 | msgstr "No coincide el corango en el argumento '%s' en %L (%d y %d)" | |
35877 | ||
35878 | -#: fortran/interface.c:1770 | |
35879 | +#: fortran/interface.c:1771 | |
35880 | #, gcc-internal-format, gfc-internal-format | |
35881 | msgid "Actual argument to '%s' at %L must be simply contiguous" | |
35882 | msgstr "El argumento actual para '%s' en %L debe ser simplemente contiguo" | |
35883 | ||
35884 | -#: fortran/interface.c:1784 | |
35885 | +#: fortran/interface.c:1785 | |
35886 | #, gcc-internal-format, gfc-internal-format | |
35887 | msgid "Actual argument to non-INTENT(INOUT) dummy '%s' at %L, which is LOCK_TYPE or has a LOCK_TYPE component" | |
35888 | msgstr "Argumento actual para el dummy que no es INTENT(OUT) '%s' en %L, el cual es LOCK_TYPE o tiene un componente LOCK_TYPE" | |
35889 | ||
35890 | -#: fortran/interface.c:1801 | |
35891 | +#: fortran/interface.c:1802 | |
35892 | #, gcc-internal-format, gfc-internal-format | |
35893 | msgid "Dummy argument '%s' has to be a pointer or assumed-shape array without CONTIGUOUS attribute - as actual argument at %L is not simply contiguous and both are ASYNCHRONOUS or VOLATILE" | |
35894 | msgstr "El argumento dummy '%s' tiene que ser un puntero o una matriz de tamaño asumida sin atributo CONTIGUOUS - porque el argumento actual en %L no es simplemente contiguo y ambos son ASYNCHRONOUS o VOLATILE" | |
35895 | ||
35896 | -#: fortran/interface.c:1814 | |
35897 | +#: fortran/interface.c:1815 | |
35898 | #, gcc-internal-format, gfc-internal-format | |
35899 | msgid "Passing coarray at %L to allocatable, noncoarray, INTENT(OUT) dummy argument '%s'" | |
35900 | msgstr "Se pasa una comatriz en %L al argumento dummy INTENT(OUT) '%s', que no es comatriz, alojable" | |
35901 | ||
35902 | -#: fortran/interface.c:1821 | |
35903 | +#: fortran/interface.c:1822 | |
35904 | #, gcc-internal-format, gfc-internal-format | |
35905 | msgid "Passing coarray at %L to allocatable, noncoarray dummy argument '%s', which is invalid if the allocation status is modified" | |
35906 | msgstr "Se pasa una comatriz en %L al argumento dummy '%s' que no es comatriz, el cual es inválido si se modifica el estado de alojamiento" | |
35907 | ||
35908 | -#: fortran/interface.c:1883 | |
35909 | +#: fortran/interface.c:1884 | |
35910 | #, gcc-internal-format, gfc-internal-format | |
35911 | msgid "Polymorphic scalar passed to array dummy argument '%s' at %L" | |
35912 | msgstr "Se pasó un escalar polimórfico al argumento dummy de matriz '%s' en %L" | |
35913 | ||
35914 | -#: fortran/interface.c:1892 | |
35915 | +#: fortran/interface.c:1893 | |
35916 | #, gcc-internal-format, gfc-internal-format | |
35917 | msgid "Element of assumed-shaped or pointer array passed to array dummy argument '%s' at %L" | |
35918 | msgstr "Se pasó un elemento de forma asumida o puntero a matriz al argumento dummy de matriz '%s' en %L" | |
35919 | ||
35920 | -#: fortran/interface.c:1904 | |
35921 | +#: fortran/interface.c:1905 | |
35922 | #, gcc-internal-format, gfc-internal-format | |
35923 | msgid "Extension: Scalar non-default-kind, non-C_CHAR-kind CHARACTER actual argument with array dummy argument '%s' at %L" | |
35924 | msgstr "Extensión: Argumento actual CHARACTER de género diferente a C_CHAR, sin género por defecto escalar con argumento dummy de matriz '%s' en %L" | |
35925 | ||
35926 | -#: fortran/interface.c:1912 | |
35927 | +#: fortran/interface.c:1913 | |
35928 | #, gcc-internal-format, gfc-internal-format | |
35929 | msgid "Fortran 2003: Scalar CHARACTER actual argument with array dummy argument '%s' at %L" | |
35930 | msgstr "Fortran 2003: Argumento actual CHARACTER escalar con argumento dummy de matriz '%s' en %L" | |
35931 | ||
35932 | -#: fortran/interface.c:2212 | |
35933 | +#: fortran/interface.c:2213 | |
35934 | #, gcc-internal-format, gfc-internal-format | |
35935 | msgid "Keyword argument '%s' at %L is not in the procedure" | |
35936 | msgstr "El argumento de palabra clave '%s' en %L no está en el procedimiento" | |
35937 | ||
35938 | -#: fortran/interface.c:2220 | |
35939 | +#: fortran/interface.c:2221 | |
35940 | #, gcc-internal-format, gfc-internal-format | |
35941 | msgid "Keyword argument '%s' at %L is already associated with another actual argument" | |
35942 | msgstr "El argumento de palabra clave '%s' en %L ya está asociado con otro argumento actual" | |
35943 | ||
35944 | -#: fortran/interface.c:2230 | |
35945 | +#: fortran/interface.c:2231 | |
35946 | #, gcc-internal-format, gfc-internal-format | |
35947 | msgid "More actual than formal arguments in procedure call at %L" | |
35948 | msgstr "Más argumentos actuales que formales en la llamada a procedimento en %L" | |
35949 | ||
35950 | -#: fortran/interface.c:2242 fortran/interface.c:2568 | |
35951 | +#: fortran/interface.c:2243 fortran/interface.c:2569 | |
35952 | #, gcc-internal-format, gfc-internal-format | |
35953 | msgid "Missing alternate return spec in subroutine call at %L" | |
35954 | msgstr "Falta la especificación de devolución alternativa en la llamada a subrutina en %L" | |
35955 | ||
35956 | -#: fortran/interface.c:2250 | |
35957 | +#: fortran/interface.c:2251 | |
35958 | #, gcc-internal-format, gfc-internal-format | |
35959 | msgid "Unexpected alternate return spec in subroutine call at %L" | |
35960 | msgstr "Especificación de devolución alternativa inesperada en la llamada a subrutina en %L" | |
35961 | ||
35962 | -#: fortran/interface.c:2260 | |
35963 | +#: fortran/interface.c:2261 | |
35964 | #, gcc-internal-format, gfc-internal-format | |
35965 | msgid "Unexpected NULL() intrinsic at %L to dummy '%s'" | |
35966 | msgstr "Intrínseco NULL inesperado en %L para el dummy '%s'" | |
35967 | ||
35968 | -#: fortran/interface.c:2263 | |
35969 | +#: fortran/interface.c:2264 | |
35970 | #, gcc-internal-format, gfc-internal-format | |
35971 | msgid "Fortran 2008: Null pointer at %L to non-pointer dummy '%s'" | |
35972 | msgstr "Fortran 2008: Puntero nulo en %L a un dummy '%s' que no es puntero" | |
35973 | ||
35974 | -#: fortran/interface.c:2287 | |
35975 | +#: fortran/interface.c:2288 | |
35976 | #, gcc-internal-format, gfc-internal-format | |
35977 | msgid "Character length mismatch (%ld/%ld) between actual argument and pointer or allocatable dummy argument '%s' at %L" | |
35978 | msgstr "No coincide la longitud de carácter (%ld/%ld) entre el argumento actual y el argumento dummy puntero o alojable '%s' en %L" | |
35979 | ||
35980 | -#: fortran/interface.c:2294 | |
35981 | +#: fortran/interface.c:2295 | |
35982 | #, gcc-internal-format, gfc-internal-format | |
35983 | msgid "Character length mismatch (%ld/%ld) between actual argument and assumed-shape dummy argument '%s' at %L" | |
35984 | msgstr "No coincide la longitud de carácter (%ld/%ld) entre el argumento actual y el argumento dummy de forma asumida '%s' en %L" | |
35985 | ||
35986 | -#: fortran/interface.c:2308 | |
35987 | +#: fortran/interface.c:2309 | |
35988 | #, gcc-internal-format, gfc-internal-format | |
35989 | -msgid "Actual argument argument at %L to allocatable or pointer dummy argument '%s' must have a deferred length type parameter if and only if the dummy has one" | |
35990 | -msgstr "El argumento actual del argumento en %L para el argumento alojable o dummy puntero '%s' debe tener un parámetro de tipo de longitud diferido si y sólo si el dummy tiene uno" | |
35991 | +msgid "Actual argument at %L to allocatable or pointer dummy argument '%s' must have a deferred length type parameter if and only if the dummy has one" | |
35992 | +msgstr "El argumento actual en %L para el argumento alojable o dummy puntero '%s' debe tener un parámetro de tipo de longitud diferido si y sólo si el dummy tiene uno" | |
35993 | ||
35994 | -#: fortran/interface.c:2325 | |
35995 | +#: fortran/interface.c:2326 | |
35996 | #, gcc-internal-format, gfc-internal-format | |
35997 | msgid "Character length of actual argument shorter than of dummy argument '%s' (%lu/%lu) at %L" | |
35998 | msgstr "La longitud del carácter del argumento actual es más corta que la del argumento dummy '%s' (%lu/%lu) en %L" | |
35999 | ||
36000 | -#: fortran/interface.c:2330 | |
36001 | +#: fortran/interface.c:2331 | |
36002 | #, gcc-internal-format, gfc-internal-format | |
36003 | msgid "Actual argument contains too few elements for dummy argument '%s' (%lu/%lu) at %L" | |
36004 | msgstr "El argumento actual contiene muy pocos elementos para el argumento dummy '%s' (%lu/%lu) en %L" | |
36005 | ||
36006 | -#: fortran/interface.c:2349 | |
36007 | +#: fortran/interface.c:2350 | |
36008 | #, gcc-internal-format, gfc-internal-format | |
36009 | msgid "Expected a procedure pointer for argument '%s' at %L" | |
36010 | msgstr "Se esperaba un puntero procedimiento para el argumento '%s' en %L" | |
36011 | ||
36012 | -#: fortran/interface.c:2361 | |
36013 | +#: fortran/interface.c:2362 | |
36014 | #, gcc-internal-format, gfc-internal-format | |
36015 | msgid "Expected a procedure for argument '%s' at %L" | |
36016 | msgstr "Falta un procedimiento para el argumento '%s' en %L" | |
36017 | ||
36018 | -#: fortran/interface.c:2375 | |
36019 | +#: fortran/interface.c:2376 | |
36020 | #, gcc-internal-format, gfc-internal-format | |
36021 | msgid "Actual argument for '%s' cannot be an assumed-size array at %L" | |
36022 | msgstr "El argumento actual para '%s' no puede ser una matriz de tamaño asumido en %L" | |
36023 | ||
36024 | -#: fortran/interface.c:2384 | |
36025 | +#: fortran/interface.c:2385 | |
36026 | #, gcc-internal-format, gfc-internal-format | |
36027 | msgid "Actual argument for '%s' must be a pointer at %L" | |
36028 | msgstr "El argumento actual para '%s' debe ser un puntero en %L" | |
36029 | ||
36030 | -#: fortran/interface.c:2394 | |
36031 | +#: fortran/interface.c:2395 | |
36032 | #, gcc-internal-format, gfc-internal-format | |
36033 | msgid "Fortran 2008: Non-pointer actual argument at %L to pointer dummy '%s'" | |
36034 | msgstr "Fortran 2008: El argumento actual que no es puntero en %L para el puntero dummy '%s'" | |
36035 | ||
36036 | -#: fortran/interface.c:2404 | |
36037 | +#: fortran/interface.c:2405 | |
36038 | #, gcc-internal-format, gfc-internal-format | |
36039 | msgid "Coindexed actual argument at %L to pointer dummy '%s'" | |
36040 | msgstr "Argumento actual coindizado en %L para el puntero dummy '%s'" | |
36041 | ||
36042 | -#: fortran/interface.c:2417 | |
36043 | +#: fortran/interface.c:2418 | |
36044 | #, gcc-internal-format, gfc-internal-format | |
36045 | msgid "Coindexed actual argument at %L to allocatable dummy '%s' requires INTENT(IN)" | |
36046 | msgstr "El argumento actual coindizado en %L para el dummy alojable '%s' requiere INTENT(IN)" | |
36047 | ||
36048 | -#: fortran/interface.c:2431 | |
36049 | +#: fortran/interface.c:2432 | |
36050 | #, gcc-internal-format, gfc-internal-format | |
36051 | -msgid "Coindexed ASYNCHRONOUS or VOLATILE actual argument at at %L requires that dummy %s' has neither ASYNCHRONOUS nor VOLATILE" | |
36052 | +msgid "Coindexed ASYNCHRONOUS or VOLATILE actual argument at %L requires that dummy '%s' has neither ASYNCHRONOUS nor VOLATILE" | |
36053 | msgstr "El argumento actual coindizado ASYNCHRONOUS o VOLATILE en %L requiere que el dummy '%s' no tenga ASYNCHRONOUS ni VOLATILE" | |
36054 | ||
36055 | -#: fortran/interface.c:2445 | |
36056 | +#: fortran/interface.c:2446 | |
36057 | #, gcc-internal-format, gfc-internal-format | |
36058 | msgid "Coindexed actual argument at %L with allocatable ultimate component to dummy '%s' requires either VALUE or INTENT(IN)" | |
36059 | msgstr "El argumento actual coindizado en %L con componente último alojable para el dummy '%s' requiere uno de VALUE o INTENT(IN)" | |
36060 | ||
36061 | -#: fortran/interface.c:2457 | |
36062 | +#: fortran/interface.c:2458 | |
36063 | #, gcc-internal-format, gfc-internal-format | |
36064 | msgid "Actual CLASS array argument for '%s' must be a full array at %L" | |
36065 | msgstr "El argumento de la matriz CLASS actual para '%s' debe ser una matriz completa en %L" | |
36066 | ||
36067 | -#: fortran/interface.c:2467 | |
36068 | +#: fortran/interface.c:2468 | |
36069 | #, gcc-internal-format, gfc-internal-format | |
36070 | msgid "Actual argument for '%s' must be ALLOCATABLE at %L" | |
36071 | msgstr "El argumento actual para '%s' debe ser ALLOCATABLE en %L" | |
36072 | ||
36073 | -#: fortran/interface.c:2496 | |
36074 | +#: fortran/interface.c:2497 | |
36075 | #, gcc-internal-format, gfc-internal-format | |
36076 | msgid "Array-section actual argument with vector subscripts at %L is incompatible with INTENT(OUT), INTENT(INOUT), VOLATILE or ASYNCHRONOUS attribute of the dummy argument '%s'" | |
36077 | msgstr "El argumento actual de sección de matriz con subíndices vectoriales en %L es incompatible con el atributo INTENT(OUT), INTENT(INOUT), VOLATILE o ASYNCHRONOUS del argumento dummy '%s'" | |
36078 | ||
36079 | -#: fortran/interface.c:2514 | |
36080 | +#: fortran/interface.c:2515 | |
36081 | #, gcc-internal-format, gfc-internal-format | |
36082 | msgid "Assumed-shape actual argument at %L is incompatible with the non-assumed-shape dummy argument '%s' due to VOLATILE attribute" | |
36083 | msgstr "El argumento actual de forma asumida en %L es incompatible con el argumento dummy de forma no asumida '%s' debido al atributo VOLATILE" | |
36084 | ||
36085 | -#: fortran/interface.c:2526 | |
36086 | +#: fortran/interface.c:2527 | |
36087 | #, gcc-internal-format, gfc-internal-format | |
36088 | msgid "Array-section actual argument at %L is incompatible with the non-assumed-shape dummy argument '%s' due to VOLATILE attribute" | |
36089 | msgstr "El argumento actual de sección de matriz en %L es incompatible con el argumento dummy de forma no asumida '%s' debido al atributo VOLATILE" | |
36090 | ||
36091 | -#: fortran/interface.c:2545 | |
36092 | +#: fortran/interface.c:2546 | |
36093 | #, gcc-internal-format, gfc-internal-format | |
36094 | msgid "Pointer-array actual argument at %L requires an assumed-shape or pointer-array dummy argument '%s' due to VOLATILE attribute" | |
36095 | msgstr "El argumento actual de matriz de puntero en %L requiere un argumento dummy de forma asumida o matriz de puntero '%s' debido al atributo VOLATILE" | |
36096 | ||
36097 | -#: fortran/interface.c:2575 | |
36098 | +#: fortran/interface.c:2576 | |
36099 | #, gcc-internal-format, gfc-internal-format | |
36100 | msgid "Missing actual argument for argument '%s' at %L" | |
36101 | msgstr "Falta el argumento actual para el argumento '%s' en %L" | |
36102 | ||
36103 | -#: fortran/interface.c:2761 | |
36104 | +#: fortran/interface.c:2762 | |
36105 | #, gcc-internal-format, gfc-internal-format | |
36106 | msgid "Same actual argument associated with INTENT(%s) argument '%s' and INTENT(%s) argument '%s' at %L" | |
36107 | msgstr "El mismo argumento actual está asociado con el argumento INTENT(%s) '%s' y el argumento INTENT(%s) '%s' en %L" | |
36108 | ||
36109 | -#: fortran/interface.c:2817 | |
36110 | +#: fortran/interface.c:2818 | |
36111 | #, gcc-internal-format, gfc-internal-format | |
36112 | msgid "Procedure argument at %L is INTENT(IN) while interface specifies INTENT(%s)" | |
36113 | msgstr "El argumento del procedimiento en %L es INTENT(IN) mientras que la interfaz especifica INTENT(%s)" | |
36114 | ||
36115 | -#: fortran/interface.c:2827 | |
36116 | +#: fortran/interface.c:2828 | |
36117 | #, gcc-internal-format, gfc-internal-format | |
36118 | msgid "Procedure argument at %L is local to a PURE procedure and is passed to an INTENT(%s) argument" | |
36119 | msgstr "El argumento del procedimiento en %L es local a un procedimiento PURE y se pasa a un argumento INTENT(%s)" | |
36120 | ||
36121 | -#: fortran/interface.c:2835 | |
36122 | +#: fortran/interface.c:2836 | |
36123 | #, gcc-internal-format, gfc-internal-format | |
36124 | msgid "Procedure argument at %L is local to a PURE procedure and has the POINTER attribute" | |
36125 | msgstr "El argumento del procedimiento en %L es local a un procedimiento PURE y tiene el atributo POINTER" | |
36126 | ||
36127 | -#: fortran/interface.c:2847 | |
36128 | +#: fortran/interface.c:2848 | |
36129 | #, gcc-internal-format, gfc-internal-format | |
36130 | msgid "Coindexed actual argument at %L in PURE procedure is passed to an INTENT(%s) argument" | |
36131 | msgstr "El argumento coindizado en %L en un procedimiento PURE se pasa a un argumento INTENT(%s)" | |
36132 | ||
36133 | -#: fortran/interface.c:2855 | |
36134 | +#: fortran/interface.c:2856 | |
36135 | #, gcc-internal-format, gfc-internal-format | |
36136 | msgid "Coindexed actual argument at %L in PURE procedure is passed to a POINTER dummy argument" | |
36137 | msgstr "El argumento actual coindizado en %L es un procedimiento PURE se pasa a un argumento dummy POINTER" | |
36138 | ||
36139 | -#: fortran/interface.c:2866 | |
36140 | +#: fortran/interface.c:2867 | |
36141 | #, gcc-internal-format, gfc-internal-format | |
36142 | msgid "Coindexed polymorphic actual argument at %L is passed polymorphic dummy argument '%s'" | |
36143 | msgstr "El argumento actual polimórfico coindizado en %L se pasa al argumento dummy polimórfico '%s'" | |
36144 | ||
36145 | -#: fortran/interface.c:2892 | |
36146 | +#: fortran/interface.c:2893 | |
36147 | #, gcc-internal-format, gfc-internal-format | |
36148 | msgid "Procedure '%s' called with an implicit interface at %L" | |
36149 | msgstr "Se llamó al procedimiento '%s' con una interfaz implícita en %L" | |
36150 | ||
36151 | -#: fortran/interface.c:2896 | |
36152 | +#: fortran/interface.c:2897 | |
36153 | #, gcc-internal-format, gfc-internal-format | |
36154 | msgid "Procedure '%s' called at %L is not explicitly declared" | |
36155 | msgstr "El procedimiento '%s' que se llama en %L no tiene una interfaz explícita" | |
36156 | ||
36157 | -#: fortran/interface.c:2906 | |
36158 | +#: fortran/interface.c:2907 | |
36159 | #, gcc-internal-format, gfc-internal-format | |
36160 | msgid "The pointer object '%s' at %L must have an explicit function interface or be declared as array" | |
36161 | msgstr "El objeto puntero '%s' en %L debe tener una interfaz de función explícita o declrararse como matriz" | |
36162 | ||
36163 | -#: fortran/interface.c:2914 | |
36164 | +#: fortran/interface.c:2915 | |
36165 | #, gcc-internal-format, gfc-internal-format | |
36166 | msgid "The allocatable object '%s' at %L must have an explicit function interface or be declared as array" | |
36167 | msgstr "El objeto allocatable '%s' en %L debe tener una interfaz de función explícita o declararse como matriz" | |
36168 | ||
36169 | -#: fortran/interface.c:2922 | |
36170 | +#: fortran/interface.c:2923 | |
36171 | #, gcc-internal-format, gfc-internal-format | |
36172 | msgid "Allocatable function '%s' at %L must have an explicit function interface" | |
36173 | msgstr "La función allocatable '%s' en %L debe tener una interfaz de función explícita" | |
36174 | ||
36175 | -#: fortran/interface.c:2932 | |
36176 | +#: fortran/interface.c:2933 | |
36177 | #, gcc-internal-format, gfc-internal-format | |
36178 | msgid "Keyword argument requires explicit interface for procedure '%s' at %L" | |
36179 | msgstr "El argumento de palabra clave requiere una interfaz explícita para el procedimiento '%s' en %L" | |
36180 | ||
36181 | -#: fortran/interface.c:2944 | |
36182 | +#: fortran/interface.c:2945 | |
36183 | #, gcc-internal-format, gfc-internal-format | |
36184 | msgid "Actual argument of LOCK_TYPE or with LOCK_TYPE component at %L requires an explicit interface for procedure '%s'" | |
36185 | msgstr "El argumento actual de LOCK_TYPE o con componente LOCK_TYPE en %L requiere una interfaz explícita para el procedimiento '%s'" | |
36186 | ||
36187 | -#: fortran/interface.c:2953 | |
36188 | +#: fortran/interface.c:2954 | |
36189 | #, gcc-internal-format, gfc-internal-format | |
36190 | msgid "MOLD argument to NULL required at %L" | |
36191 | msgstr "se requiere el argumento MOLD para NULL en %L" | |
36192 | ||
36193 | -#: fortran/interface.c:2984 | |
36194 | +#: fortran/interface.c:2985 | |
36195 | #, gcc-internal-format, gfc-internal-format | |
36196 | msgid "Procedure pointer component '%s' called with an implicit interface at %L" | |
36197 | msgstr "Se llamó al procedimiento de componente puntero '%s' con una interfaz implícita en %L" | |
36198 | ||
36199 | -#: fortran/interface.c:2995 | |
36200 | +#: fortran/interface.c:2996 | |
36201 | #, gcc-internal-format, gfc-internal-format | |
36202 | msgid "Keyword argument requires explicit interface for procedure pointer component '%s' at %L" | |
36203 | msgstr "El argumento de palabra clave requiere una interfaz explícita para el procedimiento de componente puntero '%s' en %L" | |
36204 | ||
36205 | -#: fortran/interface.c:3075 | |
36206 | +#: fortran/interface.c:3076 | |
36207 | #, gcc-internal-format, gfc-internal-format | |
36208 | msgid "MOLD= required in NULL() argument at %L: Ambiguity between specific functions %s and %s" | |
36209 | msgstr "Se require MOLD= en un argumento NULL en %L: Ambigüedad entre las funciones específicas %s y %s " | |
36210 | ||
36211 | -#: fortran/interface.c:3526 | |
36212 | +#: fortran/interface.c:3527 | |
36213 | #, gcc-internal-format, gfc-internal-format | |
36214 | msgid "Entity '%s' at %C is already present in the interface" | |
36215 | msgstr "La entidad '%s' en %C ya está presente en la interfaz" | |
36216 | ||
36217 | -#: fortran/interface.c:3723 | |
36218 | +#: fortran/interface.c:3724 | |
36219 | #, gcc-internal-format, gfc-internal-format | |
36220 | msgid "Can't overwrite GENERIC '%s' at %L" | |
36221 | msgstr "No se puede sobreescribir el GENERIC '%s' en %L" | |
36222 | ||
36223 | -#: fortran/interface.c:3735 | |
36224 | +#: fortran/interface.c:3736 | |
36225 | #, gcc-internal-format, gfc-internal-format | |
36226 | msgid "'%s' at %L overrides a procedure binding declared NON_OVERRIDABLE" | |
36227 | msgstr "'%s' en %L sobreescribe un enlace de procedimiento declarad como NON_OVERRIDABLE" | |
36228 | ||
36229 | -#: fortran/interface.c:3743 | |
36230 | +#: fortran/interface.c:3744 | |
36231 | #, gcc-internal-format, gfc-internal-format | |
36232 | msgid "'%s' at %L must not be DEFERRED as it overrides a non-DEFERRED binding" | |
36233 | msgstr "'%s' en %L no debe ser DEFERRED porque sobreescribe un enlazado que no es DEFERRED" | |
36234 | ||
36235 | -#: fortran/interface.c:3751 | |
36236 | +#: fortran/interface.c:3752 | |
36237 | #, gcc-internal-format, gfc-internal-format | |
36238 | msgid "'%s' at %L overrides a PURE procedure and must also be PURE" | |
36239 | msgstr "'%s' en %L sobreescribe un procedimiento PURE y también debe ser PURE" | |
36240 | ||
36241 | -#: fortran/interface.c:3760 | |
36242 | +#: fortran/interface.c:3761 | |
36243 | #, gcc-internal-format, gfc-internal-format | |
36244 | msgid "'%s' at %L overrides an ELEMENTAL procedure and must also be ELEMENTAL" | |
36245 | msgstr "'%s' en %L sobreescribe un procedimiento ELEMENTAL y también debe ser ELEMENTAL" | |
36246 | ||
36247 | -#: fortran/interface.c:3766 | |
36248 | +#: fortran/interface.c:3767 | |
36249 | #, gcc-internal-format, gfc-internal-format | |
36250 | msgid "'%s' at %L overrides a non-ELEMENTAL procedure and must not be ELEMENTAL, either" | |
36251 | msgstr "'%s' en %L sobreeescribe un procedimiento que no es ELEMENTAL y tampoco debe ser ELEMENTAL" | |
36252 | ||
36253 | -#: fortran/interface.c:3775 | |
36254 | +#: fortran/interface.c:3776 | |
36255 | #, gcc-internal-format, gfc-internal-format | |
36256 | msgid "'%s' at %L overrides a SUBROUTINE and must also be a SUBROUTINE" | |
36257 | msgstr "'%s' en %L sobreescribe una SUBROUTINE y también debe ser una SUBROUTINE" | |
36258 | ||
36259 | -#: fortran/interface.c:3786 | |
36260 | +#: fortran/interface.c:3787 | |
36261 | #, gcc-internal-format, gfc-internal-format | |
36262 | msgid "'%s' at %L overrides a FUNCTION and must also be a FUNCTION" | |
36263 | msgstr "'%s' en %L sobreescribe una FUNCTION y también debe ser una FUNCTION" | |
36264 | ||
36265 | -#: fortran/interface.c:3796 | |
36266 | +#: fortran/interface.c:3797 | |
36267 | #, gcc-internal-format, gfc-internal-format | |
36268 | msgid "'%s' at %L and the overridden FUNCTION should have matching result types and ranks" | |
36269 | msgstr "'%s' en %L y la FUNCION sobreescrita deben tener tipos de resultado y rangos coincidentes" | |
36270 | ||
36271 | -#: fortran/interface.c:3812 | |
36272 | +#: fortran/interface.c:3813 | |
36273 | #, gcc-internal-format, gfc-internal-format | |
36274 | msgid "Character length mismatch between '%s' at '%L' and overridden FUNCTION" | |
36275 | msgstr "No coincide la longitud de caracteres entre '%s' en %L y FUNCTION sobreescrita" | |
36276 | ||
36277 | -#: fortran/interface.c:3817 | |
36278 | +#: fortran/interface.c:3818 | |
36279 | #, gcc-internal-format, gfc-internal-format | |
36280 | msgid "Possible character length mismatch between '%s' at '%L' and overridden FUNCTION" | |
36281 | msgstr "Tal vez no coincide la longitud de caracteres entre '%s' en '%L' y FUNCTION sobreescrita" | |
36282 | ||
36283 | -#: fortran/interface.c:3837 | |
36284 | +#: fortran/interface.c:3838 | |
36285 | #, gcc-internal-format, gfc-internal-format | |
36286 | msgid "'%s' at %L overrides a PUBLIC procedure and must not be PRIVATE" | |
36287 | msgstr "'%s' en %L sobreescribe un procedimiento PUBLIC y no debe ser PRIVATE" | |
36288 | ||
36289 | -#: fortran/interface.c:3866 | |
36290 | +#: fortran/interface.c:3867 | |
36291 | #, gcc-internal-format, gfc-internal-format | |
36292 | msgid "Dummy argument '%s' of '%s' at %L should be named '%s' as to match the corresponding argument of the overridden procedure" | |
36293 | msgstr "El argumento dummy '%s' de '%s' en %L se debe llamar '%s' para que coincida con el argumento correspondiente al procedimiento sobreescrito" | |
36294 | ||
36295 | -#: fortran/interface.c:3877 | |
36296 | +#: fortran/interface.c:3878 | |
36297 | #, gcc-internal-format, gfc-internal-format | |
36298 | msgid "Argument mismatch for the overriding procedure '%s' at %L: %s" | |
36299 | msgstr "La interfaz no coincide en el procedimiento '%s' que sobreescribe en %L: %s" | |
36300 | ||
36301 | -#: fortran/interface.c:3886 | |
36302 | +#: fortran/interface.c:3887 | |
36303 | #, gcc-internal-format, gfc-internal-format | |
36304 | msgid "'%s' at %L must have the same number of formal arguments as the overridden procedure" | |
36305 | msgstr "'%s' en %L debe tener el mismo nombre de argumentos formales que el procedimiento sobreeescrito" | |
36306 | ||
36307 | -#: fortran/interface.c:3895 | |
36308 | +#: fortran/interface.c:3896 | |
36309 | #, gcc-internal-format, gfc-internal-format | |
36310 | msgid "'%s' at %L overrides a NOPASS binding and must also be NOPASS" | |
36311 | msgstr "'%s' en %L sobreescribe un enlace NOPASS y también debe ser NOPASS" | |
36312 | ||
36313 | -#: fortran/interface.c:3906 | |
36314 | +#: fortran/interface.c:3907 | |
36315 | #, gcc-internal-format, gfc-internal-format | |
36316 | msgid "'%s' at %L overrides a binding with PASS and must also be PASS" | |
36317 | msgstr "'%s' en %L sobreescribe un enlace con PASS y también debe ser PASS" | |
36318 | ||
36319 | -#: fortran/interface.c:3913 | |
36320 | +#: fortran/interface.c:3914 | |
36321 | #, gcc-internal-format, gfc-internal-format | |
36322 | msgid "Passed-object dummy argument of '%s' at %L must be at the same position as the passed-object dummy argument of the overridden procedure" | |
36323 | msgstr "El argumento dummy del objeto pasado de '%s' en %L debe estar en la misma posición que el argumento dummy del objeto pasado del procedimiento sobreescrito" | |
36324 | @@ -38195,801 +38406,796 @@ | |
36325 | msgid "Fortran 2003: ASYNCHRONOUS= at %C not allowed in Fortran 95" | |
36326 | msgstr "Fortran 2003: no se permite ASYNCHRONOUS= en %C en Fortran 95" | |
36327 | ||
36328 | -#: fortran/io.c:1914 fortran/io.c:3367 | |
36329 | +#: fortran/io.c:1914 fortran/io.c:3363 | |
36330 | #, gcc-internal-format, gfc-internal-format | |
36331 | msgid "Fortran 2003: BLANK= at %C not allowed in Fortran 95" | |
36332 | msgstr "Fortran 2003: no se permite BLANK= en %C en Fortran 95" | |
36333 | ||
36334 | -#: fortran/io.c:1932 fortran/io.c:3346 | |
36335 | +#: fortran/io.c:1932 fortran/io.c:3342 | |
36336 | #, gcc-internal-format, gfc-internal-format | |
36337 | msgid "Fortran 2003: DECIMAL= at %C not allowed in Fortran 95" | |
36338 | msgstr "Fortran 2003: no se permite DECIMAL= en %C en Fortran 95" | |
36339 | ||
36340 | -#: fortran/io.c:1950 fortran/io.c:3454 | |
36341 | +#: fortran/io.c:1964 | |
36342 | #, gcc-internal-format, gfc-internal-format | |
36343 | -msgid "Fortran 2003: DELIM= at %C not allowed in Fortran 95" | |
36344 | -msgstr "Fortran 2003: no se permite DELIM= en %C en Fortran 95" | |
36345 | - | |
36346 | -#: fortran/io.c:1968 | |
36347 | -#, gcc-internal-format, gfc-internal-format | |
36348 | msgid "Fortran 2003: ENCODING= at %C not allowed in Fortran 95" | |
36349 | msgstr "Fortran 2003: no se permite ENCODING= en %C en Fortran 95" | |
36350 | ||
36351 | -#: fortran/io.c:2019 | |
36352 | +#: fortran/io.c:2015 fortran/io.c:3405 | |
36353 | #, gcc-internal-format, gfc-internal-format | |
36354 | -msgid "Fortran F2003: ROUND= at %C not allowed in Fortran 95" | |
36355 | -msgstr "Fortran F2003: No se permite ROUND= en %C en Fortran 95" | |
36356 | +msgid "Fortran 2003: ROUND= at %C not allowed in Fortran 95" | |
36357 | +msgstr "Fortran 2003: No se permite ROUND= en %C en Fortran 95" | |
36358 | ||
36359 | -#: fortran/io.c:2039 | |
36360 | +#: fortran/io.c:2035 | |
36361 | #, gcc-internal-format, gfc-internal-format | |
36362 | msgid "Fortran 2003: SIGN= at %C not allowed in Fortran 95" | |
36363 | msgstr "Fortran 2003: no se permite SIGN= en %C en Fortran 95" | |
36364 | ||
36365 | -#: fortran/io.c:2252 | |
36366 | +#: fortran/io.c:2248 | |
36367 | #, gcc-internal-format, gfc-internal-format | |
36368 | msgid "CLOSE statement not allowed in PURE procedure at %C" | |
36369 | msgstr "No se permite una declaración CLOSE en el procedimiento PURE en %C" | |
36370 | ||
36371 | -#: fortran/io.c:2312 | |
36372 | +#: fortran/io.c:2308 | |
36373 | #, gcc-internal-format, gfc-internal-format | |
36374 | msgid "CLOSE statement at %L requires a UNIT number" | |
36375 | msgstr "La declaración CLOSE en %L requiere un número UNIT" | |
36376 | ||
36377 | -#: fortran/io.c:2320 | |
36378 | +#: fortran/io.c:2316 | |
36379 | #, gcc-internal-format, gfc-internal-format | |
36380 | msgid "UNIT number in CLOSE statement at %L must be non-negative" | |
36381 | msgstr "El número UNIT en la declaración CLOSE en %L debe ser no negativo" | |
36382 | ||
36383 | -#: fortran/io.c:2418 fortran/match.c:2683 | |
36384 | +#: fortran/io.c:2414 fortran/match.c:2682 | |
36385 | #, gcc-internal-format, gfc-internal-format | |
36386 | msgid "%s statement not allowed in PURE procedure at %C" | |
36387 | msgstr "No se permite una declaración %s en el procedimiento PURE en %C" | |
36388 | ||
36389 | -#: fortran/io.c:2453 fortran/io.c:2885 | |
36390 | +#: fortran/io.c:2449 fortran/io.c:2881 | |
36391 | #, gcc-internal-format, gfc-internal-format | |
36392 | msgid "UNIT number in statement at %L must be non-negative" | |
36393 | msgstr "El número UNIT en la declaración en %L debe ser no negativo" | |
36394 | ||
36395 | -#: fortran/io.c:2485 | |
36396 | +#: fortran/io.c:2481 | |
36397 | #, gcc-internal-format, gfc-internal-format | |
36398 | msgid "Fortran 2003: FLUSH statement at %C" | |
36399 | msgstr "Fortran 2003: Declaración FLUSH en %C" | |
36400 | ||
36401 | -#: fortran/io.c:2541 | |
36402 | +#: fortran/io.c:2537 | |
36403 | #, gcc-internal-format, gfc-internal-format | |
36404 | msgid "Duplicate UNIT specification at %C" | |
36405 | msgstr "Especificación UNIT duplicada en %C" | |
36406 | ||
36407 | -#: fortran/io.c:2615 | |
36408 | +#: fortran/io.c:2611 | |
36409 | #, gcc-internal-format, gfc-internal-format | |
36410 | msgid "Duplicate format specification at %C" | |
36411 | msgstr "Especificación de formato duplicada en %C" | |
36412 | ||
36413 | -#: fortran/io.c:2632 | |
36414 | +#: fortran/io.c:2628 | |
36415 | #, gcc-internal-format, gfc-internal-format | |
36416 | msgid "Symbol '%s' in namelist '%s' is INTENT(IN) at %C" | |
36417 | msgstr "El símbolo '%s' en la lista de nombres '%s' es INTENT(IN) en %C" | |
36418 | ||
36419 | -#: fortran/io.c:2668 | |
36420 | +#: fortran/io.c:2664 | |
36421 | #, gcc-internal-format, gfc-internal-format | |
36422 | msgid "Duplicate NML specification at %C" | |
36423 | msgstr "Especificación NML duplicada en %C" | |
36424 | ||
36425 | -#: fortran/io.c:2677 | |
36426 | +#: fortran/io.c:2673 | |
36427 | #, gcc-internal-format, gfc-internal-format | |
36428 | msgid "Symbol '%s' at %C must be a NAMELIST group name" | |
36429 | msgstr "El símbolo '%s' en %C debe ser un nombre de grupo NAMELIST" | |
36430 | ||
36431 | -#: fortran/io.c:2742 | |
36432 | +#: fortran/io.c:2738 | |
36433 | #, gcc-internal-format, gfc-internal-format | |
36434 | msgid "END tag at %C not allowed in output statement" | |
36435 | msgstr "No se permite la etiqueta END en %C en la declaración de salida" | |
36436 | ||
36437 | -#: fortran/io.c:2819 | |
36438 | +#: fortran/io.c:2815 | |
36439 | #, gcc-internal-format, gfc-internal-format | |
36440 | msgid "UNIT not specified at %L" | |
36441 | msgstr "No se especificó UNIT en %L" | |
36442 | ||
36443 | -#: fortran/io.c:2831 | |
36444 | +#: fortran/io.c:2827 | |
36445 | #, gcc-internal-format, gfc-internal-format | |
36446 | msgid "UNIT specification at %L must be an INTEGER expression or a CHARACTER variable" | |
36447 | msgstr "La especificación UNIT en %L debe ser una expresión INTEGER o una variable CHARACTER" | |
36448 | ||
36449 | -#: fortran/io.c:2853 | |
36450 | +#: fortran/io.c:2849 | |
36451 | #, gcc-internal-format, gfc-internal-format | |
36452 | msgid "Invalid form of WRITE statement at %L, UNIT required" | |
36453 | msgstr "Forma inválida de la declaración WRITE en %L, se requiere UNIT" | |
36454 | ||
36455 | -#: fortran/io.c:2864 | |
36456 | +#: fortran/io.c:2860 | |
36457 | #, gcc-internal-format, gfc-internal-format | |
36458 | msgid "Internal unit with vector subscript at %L" | |
36459 | msgstr "Unidad interna con subíndice vectorial en %L" | |
36460 | ||
36461 | -#: fortran/io.c:2878 | |
36462 | +#: fortran/io.c:2874 | |
36463 | #, gcc-internal-format, gfc-internal-format | |
36464 | msgid "External IO UNIT cannot be an array at %L" | |
36465 | msgstr "Un IO UNIT externo no puede ser una matriz en %L" | |
36466 | ||
36467 | -#: fortran/io.c:2906 | |
36468 | +#: fortran/io.c:2902 | |
36469 | #, gcc-internal-format, gfc-internal-format | |
36470 | msgid "NAMELIST '%s' in READ statement at %L contains the symbol '%s' which may not appear in a variable definition context" | |
36471 | msgstr "NAMELIST '%s' en la declaración READ en %L contiene el símbolo '%s' el cual puede no aparecer en un contexto de definición de variable" | |
36472 | ||
36473 | -#: fortran/io.c:2916 | |
36474 | +#: fortran/io.c:2912 | |
36475 | #, gcc-internal-format, gfc-internal-format | |
36476 | msgid "Extension: Comma before i/o item list at %L" | |
36477 | msgstr "Extensión: Una coma antes de una lista de elementos de e/s en %L" | |
36478 | ||
36479 | -#: fortran/io.c:2926 | |
36480 | +#: fortran/io.c:2922 | |
36481 | #, gcc-internal-format, gfc-internal-format | |
36482 | msgid "ERR tag label %d at %L not defined" | |
36483 | msgstr "La etiqueta ERR %d en %L no está definida" | |
36484 | ||
36485 | -#: fortran/io.c:2938 | |
36486 | +#: fortran/io.c:2934 | |
36487 | #, gcc-internal-format, gfc-internal-format | |
36488 | msgid "END tag label %d at %L not defined" | |
36489 | msgstr "La etiqueta END %d en %L no está definida" | |
36490 | ||
36491 | -#: fortran/io.c:2950 | |
36492 | +#: fortran/io.c:2946 | |
36493 | #, gcc-internal-format, gfc-internal-format | |
36494 | msgid "EOR tag label %d at %L not defined" | |
36495 | msgstr "La etiqueta EOR %d en %L no está definida" | |
36496 | ||
36497 | -#: fortran/io.c:2960 | |
36498 | +#: fortran/io.c:2956 | |
36499 | #, gcc-internal-format, gfc-internal-format | |
36500 | msgid "FORMAT label %d at %L not defined" | |
36501 | msgstr "La etiqueta FORMAT %d en %L no está definida" | |
36502 | ||
36503 | -#: fortran/io.c:3082 | |
36504 | +#: fortran/io.c:3078 | |
36505 | #, gcc-internal-format, gfc-internal-format | |
36506 | msgid "Syntax error in I/O iterator at %C" | |
36507 | msgstr "Error sintáctico en el iterador de E/S en %C" | |
36508 | ||
36509 | -#: fortran/io.c:3113 | |
36510 | +#: fortran/io.c:3109 | |
36511 | #, gcc-internal-format, gfc-internal-format | |
36512 | msgid "Expected variable in READ statement at %C" | |
36513 | msgstr "Se esperaba una variable en la declaración READ en %C" | |
36514 | ||
36515 | -#: fortran/io.c:3119 | |
36516 | +#: fortran/io.c:3115 | |
36517 | #, gcc-internal-format, gfc-internal-format | |
36518 | msgid "Expected expression in %s statement at %C" | |
36519 | msgstr "Se esperaba una expresión en la declaración %s en %C" | |
36520 | ||
36521 | #. A general purpose syntax error. | |
36522 | -#: fortran/io.c:3177 fortran/io.c:3776 fortran/gfortran.h:2465 | |
36523 | +#: fortran/io.c:3173 fortran/io.c:3772 fortran/gfortran.h:2465 | |
36524 | #, gcc-internal-format, gfc-internal-format | |
36525 | msgid "Syntax error in %s statement at %C" | |
36526 | msgstr "Error sintáctico en la declaración %s en %C" | |
36527 | ||
36528 | -#: fortran/io.c:3262 | |
36529 | +#: fortran/io.c:3258 | |
36530 | #, gcc-internal-format, gfc-internal-format | |
36531 | msgid "Fortran 2003: Internal file at %L with namelist" | |
36532 | msgstr "Fortran 2003: Fichero interno en %L con lista de nombres" | |
36533 | ||
36534 | -#: fortran/io.c:3320 | |
36535 | +#: fortran/io.c:3316 | |
36536 | #, gcc-internal-format, gfc-internal-format | |
36537 | msgid "ASYNCHRONOUS= specifier at %L must be an initialization expression" | |
36538 | msgstr "El especificador ASYNCHRONOUS= en %L debe ser una expresión de inicialización" | |
36539 | ||
36540 | -#: fortran/io.c:3388 | |
36541 | +#: fortran/io.c:3384 | |
36542 | #, gcc-internal-format, gfc-internal-format | |
36543 | msgid "Fortran 2003: PAD= at %C not allowed in Fortran 95" | |
36544 | msgstr "Fortran 2003: No se permite PAD= en %C en Fortran 95" | |
36545 | ||
36546 | -#: fortran/io.c:3409 | |
36547 | +#: fortran/io.c:3450 | |
36548 | #, gcc-internal-format, gfc-internal-format | |
36549 | -msgid "Fortran 2003: ROUND= at %C not allowed in Fortran 95" | |
36550 | -msgstr "Fortran 2003: No se permite ROUND= en %C en Fortran 95" | |
36551 | +msgid "Fortran 2003: DELIM= at %C not allowed in Fortran 95" | |
36552 | +msgstr "Fortran 2003: no se permite DELIM= en %C en Fortran 95" | |
36553 | ||
36554 | -#: fortran/io.c:3603 | |
36555 | +#: fortran/io.c:3599 | |
36556 | #, gcc-internal-format, gfc-internal-format | |
36557 | msgid "PRINT namelist at %C is an extension" | |
36558 | msgstr "La lista de nombres PRINT en %C es una extensión" | |
36559 | ||
36560 | -#: fortran/io.c:3746 | |
36561 | +#: fortran/io.c:3742 | |
36562 | #, gcc-internal-format, gfc-internal-format | |
36563 | msgid "Expected comma in I/O list at %C" | |
36564 | msgstr "Se esperaba una coma en la lista E/S en %C" | |
36565 | ||
36566 | -#: fortran/io.c:3810 | |
36567 | +#: fortran/io.c:3806 | |
36568 | #, gcc-internal-format, gfc-internal-format | |
36569 | msgid "PRINT statement at %C not allowed within PURE procedure" | |
36570 | msgstr "No se permite la declaración PRINT en %C dentro un procedimiento PURE" | |
36571 | ||
36572 | -#: fortran/io.c:3969 fortran/io.c:4023 | |
36573 | +#: fortran/io.c:3965 fortran/io.c:4019 | |
36574 | #, gcc-internal-format, gfc-internal-format | |
36575 | msgid "INQUIRE statement not allowed in PURE procedure at %C" | |
36576 | msgstr "No se permite la declaración INQUIRE en el procedimiento PURE en %C" | |
36577 | ||
36578 | -#: fortran/io.c:3999 | |
36579 | +#: fortran/io.c:3995 | |
36580 | #, gcc-internal-format, gfc-internal-format | |
36581 | msgid "IOLENGTH tag invalid in INQUIRE statement at %C" | |
36582 | msgstr "La etiqueta IOLENGHT es inválida en la declaración INQUIRE en %C" | |
36583 | ||
36584 | -#: fortran/io.c:4009 fortran/trans-io.c:1229 | |
36585 | +#: fortran/io.c:4005 fortran/trans-io.c:1229 | |
36586 | #, gcc-internal-format, gfc-internal-format | |
36587 | msgid "INQUIRE statement at %L cannot contain both FILE and UNIT specifiers" | |
36588 | msgstr "La declaración INQUIRE en %L no puede contener especificadores FILE y UNIT al mismo tiempo" | |
36589 | ||
36590 | -#: fortran/io.c:4016 | |
36591 | +#: fortran/io.c:4012 | |
36592 | #, gcc-internal-format, gfc-internal-format | |
36593 | msgid "INQUIRE statement at %L requires either FILE or UNIT specifier" | |
36594 | msgstr "La declaración INQUIRE en %L requiere un especificador FILE o UNIT" | |
36595 | ||
36596 | -#: fortran/io.c:4032 | |
36597 | +#: fortran/io.c:4028 | |
36598 | #, gcc-internal-format, gfc-internal-format | |
36599 | msgid "INQUIRE statement at %L requires a PENDING= specifier with the ID= specifier" | |
36600 | msgstr "La declaración INQUIRE en %L requiere un especificador PENDING= con el especificador ID=" | |
36601 | ||
36602 | -#: fortran/io.c:4203 | |
36603 | +#: fortran/io.c:4199 | |
36604 | #, gcc-internal-format, gfc-internal-format | |
36605 | msgid "Fortran 2003: WAIT at %C not allowed in Fortran 95" | |
36606 | msgstr "Fortran 2003: No se permite WAIT en %C en Fortran 95" | |
36607 | ||
36608 | -#: fortran/io.c:4209 | |
36609 | +#: fortran/io.c:4205 | |
36610 | #, gcc-internal-format, gfc-internal-format | |
36611 | msgid "WAIT statement not allowed in PURE procedure at %C" | |
36612 | msgstr "No se permite una declaración WAIT en un procedimiento PURE en %C" | |
36613 | ||
36614 | -#: fortran/match.c:164 | |
36615 | +#: fortran/match.c:165 | |
36616 | #, gcc-internal-format, gfc-internal-format | |
36617 | msgid "Missing ')' in statement at or before %L" | |
36618 | msgstr "Falta un ')' en la declaración en o antes de %L" | |
36619 | ||
36620 | -#: fortran/match.c:169 | |
36621 | +#: fortran/match.c:170 | |
36622 | #, gcc-internal-format, gfc-internal-format | |
36623 | msgid "Missing '(' in statement at or before %L" | |
36624 | msgstr "Falta un '(' en la declaración en o antes de %L" | |
36625 | ||
36626 | -#: fortran/match.c:366 | |
36627 | +#: fortran/match.c:367 | |
36628 | #, gcc-internal-format, gfc-internal-format | |
36629 | msgid "Integer too large at %C" | |
36630 | msgstr "Entero demasiado grande en %C" | |
36631 | ||
36632 | -#: fortran/match.c:459 fortran/parse.c:693 | |
36633 | +#: fortran/match.c:460 fortran/parse.c:693 | |
36634 | #, gcc-internal-format, gfc-internal-format | |
36635 | msgid "Too many digits in statement label at %C" | |
36636 | msgstr "Demasiados dígitos en la declaración de etiqueta en %C" | |
36637 | ||
36638 | -#: fortran/match.c:465 | |
36639 | +#: fortran/match.c:466 | |
36640 | #, gcc-internal-format, gfc-internal-format | |
36641 | msgid "Statement label at %C is zero" | |
36642 | msgstr "La etiqueta de declaración en %C es cero" | |
36643 | ||
36644 | -#: fortran/match.c:498 | |
36645 | +#: fortran/match.c:499 | |
36646 | #, gcc-internal-format, gfc-internal-format | |
36647 | msgid "Label name '%s' at %C is ambiguous" | |
36648 | msgstr "El nombre de etiqueta '%s' en %C es ambigua" | |
36649 | ||
36650 | -#: fortran/match.c:504 | |
36651 | +#: fortran/match.c:505 | |
36652 | #, gcc-internal-format, gfc-internal-format | |
36653 | msgid "Duplicate construct label '%s' at %C" | |
36654 | msgstr "Etiqueta construct '%s' duplicada en %C" | |
36655 | ||
36656 | -#: fortran/match.c:535 | |
36657 | +#: fortran/match.c:536 | |
36658 | #, gcc-internal-format, gfc-internal-format | |
36659 | msgid "Invalid character in name at %C" | |
36660 | msgstr "Carácter inválido en el nombre en %C" | |
36661 | ||
36662 | -#: fortran/match.c:548 fortran/match.c:629 | |
36663 | +#: fortran/match.c:549 | |
36664 | #, gcc-internal-format, gfc-internal-format | |
36665 | msgid "Name at %C is too long" | |
36666 | msgstr "El nombre en %C es demasiado largo" | |
36667 | ||
36668 | -#: fortran/match.c:559 | |
36669 | +#: fortran/match.c:560 | |
36670 | #, gcc-internal-format, gfc-internal-format | |
36671 | msgid "Invalid character '$' at %C. Use -fdollar-ok to allow it as an extension" | |
36672 | msgstr "Carácter '$' inválido en %C. Use -fdollar-ok para permitirlo como una extensión" | |
36673 | ||
36674 | -#: fortran/match.c:610 fortran/match.c:658 | |
36675 | +#: fortran/match.c:610 fortran/match.c:657 | |
36676 | #, gcc-internal-format, gfc-internal-format | |
36677 | msgid "Invalid C name in NAME= specifier at %C" | |
36678 | msgstr "Nombre C inválido en el especificador NAME= en %C" | |
36679 | ||
36680 | -#: fortran/match.c:649 | |
36681 | +#: fortran/match.c:648 | |
36682 | #, gcc-internal-format, gfc-internal-format | |
36683 | msgid "Embedded space in NAME= specifier at %C" | |
36684 | msgstr "Espacio incrustado en el especificador NAME= en %C" | |
36685 | ||
36686 | -#: fortran/match.c:973 | |
36687 | +#: fortran/match.c:972 | |
36688 | #, gcc-internal-format, gfc-internal-format | |
36689 | msgid "Loop variable at %C cannot be a coarray" | |
36690 | msgstr "La variable de bucle en %C no puede ser una comatriz" | |
36691 | ||
36692 | -#: fortran/match.c:979 | |
36693 | +#: fortran/match.c:978 | |
36694 | #, gcc-internal-format, gfc-internal-format | |
36695 | msgid "Loop variable at %C cannot be a sub-component" | |
36696 | msgstr "La variable de bucle en %C no puede ser un subcomponente" | |
36697 | ||
36698 | -#: fortran/match.c:1013 | |
36699 | +#: fortran/match.c:1012 | |
36700 | #, gcc-internal-format, gfc-internal-format | |
36701 | msgid "Expected a step value in iterator at %C" | |
36702 | msgstr "Se esperaba un valor de paso en el iterador en %C" | |
36703 | ||
36704 | -#: fortran/match.c:1025 | |
36705 | +#: fortran/match.c:1024 | |
36706 | #, gcc-internal-format, gfc-internal-format | |
36707 | msgid "Syntax error in iterator at %C" | |
36708 | msgstr "Error sintáctico en el iterador en %C" | |
36709 | ||
36710 | -#: fortran/match.c:1266 | |
36711 | +#: fortran/match.c:1265 | |
36712 | #, gcc-internal-format, gfc-internal-format | |
36713 | msgid "Invalid form of PROGRAM statement at %C" | |
36714 | msgstr "Forma inválida de la declaración PROGRAM en %C" | |
36715 | ||
36716 | -#: fortran/match.c:1396 fortran/match.c:1477 | |
36717 | +#: fortran/match.c:1395 fortran/match.c:1476 | |
36718 | #, gcc-internal-format, gfc-internal-format | |
36719 | msgid "Obsolescent feature: Arithmetic IF statement at %C" | |
36720 | msgstr "Característica obsoleta: Declaración IF aritmética en %C" | |
36721 | ||
36722 | -#: fortran/match.c:1452 | |
36723 | +#: fortran/match.c:1451 | |
36724 | #, gcc-internal-format, gfc-internal-format | |
36725 | msgid "Syntax error in IF-expression at %C" | |
36726 | msgstr "Error sintáctico en la expresión IF en %C" | |
36727 | ||
36728 | -#: fortran/match.c:1463 | |
36729 | +#: fortran/match.c:1462 | |
36730 | #, gcc-internal-format, gfc-internal-format | |
36731 | msgid "Block label not appropriate for arithmetic IF statement at %C" | |
36732 | msgstr "La etiqueta de bloque no es apropiada para la declaración IF aritmética en %C" | |
36733 | ||
36734 | -#: fortran/match.c:1501 | |
36735 | +#: fortran/match.c:1500 | |
36736 | #, gcc-internal-format, gfc-internal-format | |
36737 | msgid "Block label is not appropriate for IF statement at %C" | |
36738 | msgstr "La etiqueta de bloque no es apropiada para la declaración IF en %C" | |
36739 | ||
36740 | -#: fortran/match.c:1587 | |
36741 | +#: fortran/match.c:1586 | |
36742 | #, gcc-internal-format, gfc-internal-format | |
36743 | msgid "Cannot assign to a named constant at %C" | |
36744 | msgstr "No se puede asignar a una constante nombrada en %C" | |
36745 | ||
36746 | -#: fortran/match.c:1597 | |
36747 | +#: fortran/match.c:1596 | |
36748 | #, gcc-internal-format, gfc-internal-format | |
36749 | msgid "Unclassifiable statement in IF-clause at %C" | |
36750 | msgstr "Declaración inclasificable en la cláusula IF en %C" | |
36751 | ||
36752 | -#: fortran/match.c:1604 | |
36753 | +#: fortran/match.c:1603 | |
36754 | #, gcc-internal-format, gfc-internal-format | |
36755 | msgid "Syntax error in IF-clause at %C" | |
36756 | msgstr "Error sintáctico en la cláusula IF en %C" | |
36757 | ||
36758 | -#: fortran/match.c:1648 | |
36759 | +#: fortran/match.c:1647 | |
36760 | #, gcc-internal-format, gfc-internal-format | |
36761 | msgid "Unexpected junk after ELSE statement at %C" | |
36762 | msgstr "Basura inesperada después de la declaración ELSE en %C" | |
36763 | ||
36764 | -#: fortran/match.c:1654 fortran/match.c:1689 | |
36765 | +#: fortran/match.c:1653 fortran/match.c:1688 | |
36766 | #, gcc-internal-format, gfc-internal-format | |
36767 | msgid "Label '%s' at %C doesn't match IF label '%s'" | |
36768 | msgstr "La etiqueta '%s' en %C no coincide con la etiqueta IF '%s'" | |
36769 | ||
36770 | -#: fortran/match.c:1683 | |
36771 | +#: fortran/match.c:1682 | |
36772 | #, gcc-internal-format, gfc-internal-format | |
36773 | msgid "Unexpected junk after ELSE IF statement at %C" | |
36774 | msgstr "Basura inesperada después de la declaración ELSE IF en %C" | |
36775 | ||
36776 | -#: fortran/match.c:1747 | |
36777 | +#: fortran/match.c:1746 | |
36778 | #, gcc-internal-format, gfc-internal-format | |
36779 | msgid "Image control statement CRITICAL at %C in PURE procedure" | |
36780 | msgstr "Declaración de control de imagen CRITICAL en %C en un procedimiento PURE" | |
36781 | ||
36782 | -#: fortran/match.c:1753 | |
36783 | +#: fortran/match.c:1752 | |
36784 | #, gcc-internal-format, gfc-internal-format | |
36785 | msgid "Image control statement CRITICAL at %C in DO CONCURRENT block" | |
36786 | msgstr "Declaración de control de imagen CRITICAL en %C en un bloque DO CONCURRENT" | |
36787 | ||
36788 | -#: fortran/match.c:1761 | |
36789 | +#: fortran/match.c:1760 | |
36790 | #, gcc-internal-format, gfc-internal-format | |
36791 | msgid "Fortran 2008: CRITICAL statement at %C" | |
36792 | msgstr "Fortran 2008: Declaración CRITICAL en %C" | |
36793 | ||
36794 | -#: fortran/match.c:1773 | |
36795 | +#: fortran/match.c:1772 | |
36796 | #, gcc-internal-format, gfc-internal-format | |
36797 | msgid "Nested CRITICAL block at %C" | |
36798 | msgstr "Bloque CRITICAL anidado en %C" | |
36799 | ||
36800 | -#: fortran/match.c:1825 | |
36801 | +#: fortran/match.c:1824 | |
36802 | #, gcc-internal-format, gfc-internal-format | |
36803 | msgid "Expected association list at %C" | |
36804 | msgstr "Se esperaba una lista lista de asociación en %C" | |
36805 | ||
36806 | -#: fortran/match.c:1838 | |
36807 | +#: fortran/match.c:1837 | |
36808 | #, gcc-internal-format, gfc-internal-format | |
36809 | msgid "Expected association at %C" | |
36810 | msgstr "Se esperaba una asociación en %C" | |
36811 | ||
36812 | -#: fortran/match.c:1847 | |
36813 | +#: fortran/match.c:1846 | |
36814 | #, gcc-internal-format, gfc-internal-format | |
36815 | msgid "Duplicate name '%s' in association at %C" | |
36816 | msgstr "Nombre '%s' duplicado en la asociación en %C" | |
36817 | ||
36818 | -#: fortran/match.c:1855 | |
36819 | +#: fortran/match.c:1854 | |
36820 | #, gcc-internal-format, gfc-internal-format | |
36821 | msgid "Association target at %C must not be coindexed" | |
36822 | msgstr "El objetivo de asociación en %C no debe estar coindizado" | |
36823 | ||
36824 | -#: fortran/match.c:1873 | |
36825 | +#: fortran/match.c:1872 | |
36826 | #, gcc-internal-format, gfc-internal-format | |
36827 | msgid "Expected ')' or ',' at %C" | |
36828 | msgstr "Se esperaba ')' o ',' en %C" | |
36829 | ||
36830 | -#: fortran/match.c:1891 | |
36831 | +#: fortran/match.c:1890 | |
36832 | #, gcc-internal-format, gfc-internal-format | |
36833 | msgid "Junk after ASSOCIATE statement at %C" | |
36834 | msgstr "Basura después de la declaración ASSOCIATE en %C" | |
36835 | ||
36836 | -#: fortran/match.c:1960 | |
36837 | +#: fortran/match.c:1959 | |
36838 | #, gcc-internal-format, gfc-internal-format | |
36839 | msgid "Derived type '%s' at %L may not be ABSTRACT" | |
36840 | msgstr "El tipo derivado '%s' en %L no debe ser ABSTRACT" | |
36841 | ||
36842 | -#: fortran/match.c:2023 | |
36843 | +#: fortran/match.c:2022 | |
36844 | #, gcc-internal-format, gfc-internal-format | |
36845 | msgid "Invalid type-spec at %C" | |
36846 | msgstr "Especificación de tipo inválida en %C" | |
36847 | ||
36848 | -#: fortran/match.c:2117 | |
36849 | +#: fortran/match.c:2116 | |
36850 | #, gcc-internal-format, gfc-internal-format | |
36851 | msgid "Syntax error in FORALL iterator at %C" | |
36852 | msgstr "Error sintáctico en el iterador FORALL en %C" | |
36853 | ||
36854 | -#: fortran/match.c:2385 | |
36855 | +#: fortran/match.c:2384 | |
36856 | #, gcc-internal-format, gfc-internal-format | |
36857 | msgid "Fortran 2008: DO CONCURRENT construct at %C" | |
36858 | msgstr "Fortran 2008: Constructor DO CONCURRENT en %C" | |
36859 | ||
36860 | -#: fortran/match.c:2511 | |
36861 | +#: fortran/match.c:2510 | |
36862 | #, gcc-internal-format, gfc-internal-format | |
36863 | msgid "Name '%s' in %s statement at %C is unknown" | |
36864 | msgstr "Se desconoce el nombre '%s' en la declaración %s en %C" | |
36865 | ||
36866 | -#: fortran/match.c:2519 | |
36867 | +#: fortran/match.c:2518 | |
36868 | #, gcc-internal-format, gfc-internal-format | |
36869 | msgid "Name '%s' in %s statement at %C is not a construct name" | |
36870 | msgstr "El nombre '%s' en la declaración %s en %C no es un nombre de constructor" | |
36871 | ||
36872 | -#: fortran/match.c:2531 | |
36873 | +#: fortran/match.c:2530 | |
36874 | #, gcc-internal-format, gfc-internal-format | |
36875 | msgid "%s statement at %C leaves CRITICAL construct" | |
36876 | msgstr "La declaración %s en %C deja una construcción CRITICAL" | |
36877 | ||
36878 | #. F2008, C821 & C845. | |
36879 | -#: fortran/match.c:2539 | |
36880 | +#: fortran/match.c:2538 | |
36881 | #, gcc-internal-format, gfc-internal-format | |
36882 | msgid "%s statement at %C leaves DO CONCURRENT construct" | |
36883 | msgstr "La declaración %s en %C deja una construcción DO CONCURRENT" | |
36884 | ||
36885 | -#: fortran/match.c:2551 | |
36886 | +#: fortran/match.c:2550 | |
36887 | #, gcc-internal-format, gfc-internal-format | |
36888 | msgid "%s statement at %C is not within a construct" | |
36889 | msgstr "La declaración %s en %C no está dentro de una construcción" | |
36890 | ||
36891 | -#: fortran/match.c:2554 | |
36892 | +#: fortran/match.c:2553 | |
36893 | #, gcc-internal-format, gfc-internal-format | |
36894 | msgid "%s statement at %C is not within construct '%s'" | |
36895 | msgstr "La declaración %s en %C no está dentro de la construcción '%s'" | |
36896 | ||
36897 | -#: fortran/match.c:2579 | |
36898 | +#: fortran/match.c:2578 | |
36899 | #, gcc-internal-format, gfc-internal-format | |
36900 | msgid "CYCLE statement at %C is not applicable to non-loop construct '%s'" | |
36901 | msgstr "La declaración CYCLE en %C no se aplica a la construcción '%s' que no es bucle" | |
36902 | ||
36903 | -#: fortran/match.c:2584 | |
36904 | +#: fortran/match.c:2583 | |
36905 | #, gcc-internal-format, gfc-internal-format | |
36906 | msgid "Fortran 2008: EXIT statement with no do-construct-name at %C" | |
36907 | msgstr "Fortran 2008: Declaración EXIT sin nombre de constructor do en %C" | |
36908 | ||
36909 | -#: fortran/match.c:2590 | |
36910 | +#: fortran/match.c:2589 | |
36911 | #, gcc-internal-format, gfc-internal-format | |
36912 | msgid "%s statement at %C is not applicable to construct '%s'" | |
36913 | msgstr "La declaración %s en %C no se aplica a la construcción '%s'" | |
36914 | ||
36915 | -#: fortran/match.c:2597 | |
36916 | +#: fortran/match.c:2596 | |
36917 | #, gcc-internal-format, gfc-internal-format | |
36918 | msgid "%s statement at %C leaving OpenMP structured block" | |
36919 | msgstr "La declaración %s en %C deja un bloque estructurado OpenMP" | |
36920 | ||
36921 | -#: fortran/match.c:2621 | |
36922 | +#: fortran/match.c:2620 | |
36923 | #, gcc-internal-format, gfc-internal-format | |
36924 | msgid "EXIT statement at %C terminating !$OMP DO loop" | |
36925 | msgstr "La declaración EXIT en %C termina el bucle !$OMP DO" | |
36926 | ||
36927 | -#: fortran/match.c:2626 | |
36928 | +#: fortran/match.c:2625 | |
36929 | #, gcc-internal-format, gfc-internal-format | |
36930 | msgid "CYCLE statement at %C to non-innermost collapsed !$OMP DO loop" | |
36931 | msgstr "La declaración CYCLE en %C para el bucle !$OMP DO colapsado que no es el más interno" | |
36932 | ||
36933 | -#: fortran/match.c:2693 | |
36934 | +#: fortran/match.c:2692 | |
36935 | #, gcc-internal-format, gfc-internal-format | |
36936 | msgid "Image control statement STOP at %C in CRITICAL block" | |
36937 | msgstr "Declaración de control de imagen STOP en %C en el bloque CRITICAL" | |
36938 | ||
36939 | -#: fortran/match.c:2698 | |
36940 | +#: fortran/match.c:2697 | |
36941 | #, gcc-internal-format, gfc-internal-format | |
36942 | msgid "Image control statement STOP at %C in DO CONCURRENT block" | |
36943 | msgstr "Declaración de control de imagen STOP en %C en el bloque DO CONCURRENT" | |
36944 | ||
36945 | -#: fortran/match.c:2706 | |
36946 | +#: fortran/match.c:2705 | |
36947 | #, gcc-internal-format, gfc-internal-format | |
36948 | msgid "STOP code at %L must be either INTEGER or CHARACTER type" | |
36949 | msgstr "El código STOP en %L debe ser de tipo INTEGER o CHARACTER" | |
36950 | ||
36951 | -#: fortran/match.c:2713 | |
36952 | +#: fortran/match.c:2712 | |
36953 | #, gcc-internal-format, gfc-internal-format | |
36954 | msgid "STOP code at %L must be scalar" | |
36955 | msgstr "El código STOP en %L debe ser escalar" | |
36956 | ||
36957 | -#: fortran/match.c:2721 | |
36958 | +#: fortran/match.c:2720 | |
36959 | #, gcc-internal-format, gfc-internal-format | |
36960 | msgid "STOP code at %L must be default character KIND=%d" | |
36961 | msgstr "El código STOP en %L debe ser un carácter por defecto KIND=%d" | |
36962 | ||
36963 | -#: fortran/match.c:2729 | |
36964 | +#: fortran/match.c:2728 | |
36965 | #, gcc-internal-format, gfc-internal-format | |
36966 | msgid "STOP code at %L must be default integer KIND=%d" | |
36967 | msgstr "El código STOP en %L debe ser un entero por defecto KIND=%d" | |
36968 | ||
36969 | -#: fortran/match.c:2775 | |
36970 | +#: fortran/match.c:2774 | |
36971 | #, gcc-internal-format, gfc-internal-format | |
36972 | msgid "Deleted feature: PAUSE statement at %C" | |
36973 | msgstr "Característica eliminada: declaración PAUSE en %C" | |
36974 | ||
36975 | -#: fortran/match.c:2798 | |
36976 | +#: fortran/match.c:2797 | |
36977 | #, gcc-internal-format, gfc-internal-format | |
36978 | msgid "Fortran 2008: ERROR STOP statement at %C" | |
36979 | msgstr "Fortran 2008: Declaración ERROR STOP en %C" | |
36980 | ||
36981 | -#: fortran/match.c:2824 | |
36982 | +#: fortran/match.c:2823 | |
36983 | #, gcc-internal-format, gfc-internal-format | |
36984 | msgid "Image control statement %s at %C in PURE procedure" | |
36985 | msgstr "Declaración de control de imagen %s en %C en un procedimiento PURE" | |
36986 | ||
36987 | -#: fortran/match.c:2840 | |
36988 | +#: fortran/match.c:2839 | |
36989 | #, gcc-internal-format, gfc-internal-format | |
36990 | msgid "Image control statement %s at %C in CRITICAL block" | |
36991 | msgstr "Declaración de control de imagen %s en %C en el bloque CRITICAL" | |
36992 | ||
36993 | -#: fortran/match.c:2847 | |
36994 | +#: fortran/match.c:2846 | |
36995 | #, gcc-internal-format, gfc-internal-format | |
36996 | msgid "Image control statement %s at %C in DO CONCURRENT block" | |
36997 | msgstr "Declaración de control de imagen %s en %C en el bloque DO CONCURRENT" | |
36998 | ||
36999 | -#: fortran/match.c:2877 fortran/match.c:3088 fortran/match.c:3600 | |
37000 | -#: fortran/match.c:3924 | |
37001 | +#: fortran/match.c:2876 fortran/match.c:3087 fortran/match.c:3599 | |
37002 | +#: fortran/match.c:3923 | |
37003 | #, gcc-internal-format, gfc-internal-format | |
37004 | msgid "Redundant STAT tag found at %L " | |
37005 | msgstr "Se encontró una etiqueta STAT redundante en %L " | |
37006 | ||
37007 | -#: fortran/match.c:2898 fortran/match.c:3108 fortran/match.c:3627 | |
37008 | -#: fortran/match.c:3950 | |
37009 | +#: fortran/match.c:2897 fortran/match.c:3107 fortran/match.c:3626 | |
37010 | +#: fortran/match.c:3949 | |
37011 | #, gcc-internal-format, gfc-internal-format | |
37012 | msgid "Redundant ERRMSG tag found at %L " | |
37013 | msgstr "Se encontró una etiqueta ERRMSG redundante en %L " | |
37014 | ||
37015 | -#: fortran/match.c:2919 | |
37016 | +#: fortran/match.c:2918 | |
37017 | #, gcc-internal-format, gfc-internal-format | |
37018 | msgid "Redundant ACQUIRED_LOCK tag found at %L " | |
37019 | msgstr "Se encontró una etiqueta ACQUIRED_LOCK redundante en %L " | |
37020 | ||
37021 | -#: fortran/match.c:2980 | |
37022 | +#: fortran/match.c:2979 | |
37023 | #, gcc-internal-format, gfc-internal-format | |
37024 | msgid "Fortran 2008: LOCK statement at %C" | |
37025 | msgstr "Fortran 2008: Declaración LOCK en %C" | |
37026 | ||
37027 | -#: fortran/match.c:2991 | |
37028 | +#: fortran/match.c:2990 | |
37029 | #, gcc-internal-format, gfc-internal-format | |
37030 | msgid "Fortran 2008: UNLOCK statement at %C" | |
37031 | msgstr "Fortran 2008: Declaración UNLOCK en %C" | |
37032 | ||
37033 | -#: fortran/match.c:3017 | |
37034 | +#: fortran/match.c:3016 | |
37035 | #, gcc-internal-format, gfc-internal-format | |
37036 | msgid "Image control statement SYNC at %C in PURE procedure" | |
37037 | msgstr "Declaración de control de imagen SYNC en %C en un procedimiento PURE" | |
37038 | ||
37039 | -#: fortran/match.c:3024 | |
37040 | +#: fortran/match.c:3023 | |
37041 | #, gcc-internal-format, gfc-internal-format | |
37042 | msgid "Fortran 2008: SYNC statement at %C" | |
37043 | msgstr "Fortran 2008: Declaración SYNC en %C" | |
37044 | ||
37045 | -#: fortran/match.c:3036 | |
37046 | +#: fortran/match.c:3035 | |
37047 | #, gcc-internal-format, gfc-internal-format | |
37048 | msgid "Image control statement SYNC at %C in CRITICAL block" | |
37049 | msgstr "Declaración de control de imagen SYNC en %C en un bloque CRITICAL" | |
37050 | ||
37051 | -#: fortran/match.c:3042 | |
37052 | +#: fortran/match.c:3041 | |
37053 | #, gcc-internal-format, gfc-internal-format | |
37054 | msgid "Image control statement SYNC at %C in DO CONCURRENT block" | |
37055 | msgstr "Declaración de control de imagen SYNC en %C en un bloque DO CONCURRENT" | |
37056 | ||
37057 | -#: fortran/match.c:3222 | |
37058 | +#: fortran/match.c:3221 | |
37059 | #, gcc-internal-format, gfc-internal-format | |
37060 | msgid "Deleted feature: ASSIGN statement at %C" | |
37061 | msgstr "Característica eliminada: declaración ASSIGN en %C" | |
37062 | ||
37063 | -#: fortran/match.c:3268 | |
37064 | +#: fortran/match.c:3267 | |
37065 | #, gcc-internal-format, gfc-internal-format | |
37066 | msgid "Deleted feature: Assigned GOTO statement at %C" | |
37067 | msgstr "Característica eliminada: declaración GOTO asignada en %C" | |
37068 | ||
37069 | -#: fortran/match.c:3315 fortran/match.c:3368 | |
37070 | +#: fortran/match.c:3314 fortran/match.c:3367 | |
37071 | #, gcc-internal-format, gfc-internal-format | |
37072 | msgid "Statement label list in GOTO at %C cannot be empty" | |
37073 | msgstr "La lista de etiquetas de declaración en GOTO en %C no puede estar vacía" | |
37074 | ||
37075 | -#: fortran/match.c:3378 | |
37076 | +#: fortran/match.c:3377 | |
37077 | #, gcc-internal-format, gfc-internal-format | |
37078 | msgid "Obsolescent feature: Computed GOTO at %C" | |
37079 | msgstr "Característica obsoleta: GOTO computado en %C" | |
37080 | ||
37081 | -#: fortran/match.c:3450 | |
37082 | +#: fortran/match.c:3449 | |
37083 | #, gcc-internal-format, gfc-internal-format | |
37084 | msgid "Error in type-spec at %L" | |
37085 | msgstr "Error en la especificación de tipo en %L" | |
37086 | ||
37087 | -#: fortran/match.c:3460 | |
37088 | +#: fortran/match.c:3459 | |
37089 | #, gcc-internal-format, gfc-internal-format | |
37090 | msgid "Fortran 2003: typespec in ALLOCATE at %L" | |
37091 | msgstr "Fortran 2003: Especificación de tipo en ALLOCATE en %L" | |
37092 | ||
37093 | -#: fortran/match.c:3499 | |
37094 | +#: fortran/match.c:3498 | |
37095 | #, gcc-internal-format, gfc-internal-format | |
37096 | msgid "Bad allocate-object at %C for a PURE procedure" | |
37097 | msgstr "Objeto de alojamiento erróneo en %C para un procedimiento PURE" | |
37098 | ||
37099 | -#: fortran/match.c:3524 | |
37100 | +#: fortran/match.c:3523 | |
37101 | #, gcc-internal-format, gfc-internal-format | |
37102 | msgid "ALLOCATE of coarray at %C in DO CONCURRENT block" | |
37103 | msgstr "ALLOCATE de comatriz en %C en el bloque DO CONCURRENT" | |
37104 | ||
37105 | -#: fortran/match.c:3529 | |
37106 | +#: fortran/match.c:3528 | |
37107 | #, gcc-internal-format, gfc-internal-format | |
37108 | msgid "ALLOCATE of coarray at %C in CRITICAL block" | |
37109 | msgstr "ALLOCATE de comatriz en %C en el bloque CRITICAL" | |
37110 | ||
37111 | -#: fortran/match.c:3541 | |
37112 | +#: fortran/match.c:3540 | |
37113 | #, gcc-internal-format, gfc-internal-format | |
37114 | msgid "Type of entity at %L is type incompatible with typespec" | |
37115 | msgstr "El tipo de entidad en %L es de tipo incompatible con la especificación de tipo" | |
37116 | ||
37117 | -#: fortran/match.c:3549 | |
37118 | +#: fortran/match.c:3548 | |
37119 | #, gcc-internal-format, gfc-internal-format | |
37120 | msgid "Kind type parameter for entity at %L differs from the kind type parameter of the typespec" | |
37121 | msgstr "El parámetro de tipo de género para la entidad en %L difiere del parámetro de tipo de género de la especificación de tipo" | |
37122 | ||
37123 | -#: fortran/match.c:3576 | |
37124 | +#: fortran/match.c:3575 | |
37125 | #, gcc-internal-format, gfc-internal-format | |
37126 | msgid "Allocate-object at %L is not a nonprocedure pointer or an allocatable variable" | |
37127 | msgstr "El objeto de alojamiento en %L no es un puntero que no es procedimiento o una variable de alojamiento" | |
37128 | ||
37129 | -#: fortran/match.c:3583 | |
37130 | +#: fortran/match.c:3582 | |
37131 | #, gcc-internal-format, gfc-internal-format | |
37132 | msgid "Shape specification for allocatable scalar at %C" | |
37133 | msgstr "Especificación de forma para el escalar asignable en %C" | |
37134 | ||
37135 | -#: fortran/match.c:3620 | |
37136 | +#: fortran/match.c:3619 | |
37137 | #, gcc-internal-format, gfc-internal-format | |
37138 | msgid "Fortran 2003: ERRMSG tag at %L" | |
37139 | msgstr "Fortran 2003: Etiqueta ERRMSG en %L" | |
37140 | ||
37141 | -#: fortran/match.c:3644 | |
37142 | +#: fortran/match.c:3643 | |
37143 | #, gcc-internal-format, gfc-internal-format | |
37144 | msgid "Fortran 2003: SOURCE tag at %L" | |
37145 | msgstr "Fortran 2003: Etiqueta SOURCE en %L" | |
37146 | ||
37147 | -#: fortran/match.c:3651 | |
37148 | +#: fortran/match.c:3650 | |
37149 | #, gcc-internal-format, gfc-internal-format | |
37150 | msgid "Redundant SOURCE tag found at %L " | |
37151 | msgstr "Se encontró una etiqueta SOURCE redundante en %L " | |
37152 | ||
37153 | -#: fortran/match.c:3658 | |
37154 | +#: fortran/match.c:3657 | |
37155 | #, gcc-internal-format, gfc-internal-format | |
37156 | msgid "SOURCE tag at %L conflicts with the typespec at %L" | |
37157 | msgstr "La etiqueta SOURCE en %L tiene conflictos con la especificación de tipo en %L" | |
37158 | ||
37159 | -#: fortran/match.c:3664 | |
37160 | +#: fortran/match.c:3663 | |
37161 | #, gcc-internal-format, gfc-internal-format | |
37162 | -msgid "Fortran 2008: SOURCE tag at %L with more than a single allocate objects" | |
37163 | +msgid "Fortran 2008: SOURCE tag at %L with more than a single allocate object" | |
37164 | msgstr "Fortran 2008: Etiqueta SOURCE en %L con más de un objeto de alojamiento sencillo" | |
37165 | ||
37166 | -#: fortran/match.c:3682 | |
37167 | +#: fortran/match.c:3681 | |
37168 | #, gcc-internal-format, gfc-internal-format | |
37169 | msgid "Fortran 2008: MOLD tag at %L" | |
37170 | msgstr "Fortran 2008: Etiqueta MOLD en %L" | |
37171 | ||
37172 | -#: fortran/match.c:3689 | |
37173 | +#: fortran/match.c:3688 | |
37174 | #, gcc-internal-format, gfc-internal-format | |
37175 | msgid "Redundant MOLD tag found at %L " | |
37176 | msgstr "Se encontró una etiqueta MOLD redundante en %L " | |
37177 | ||
37178 | -#: fortran/match.c:3696 | |
37179 | +#: fortran/match.c:3695 | |
37180 | #, gcc-internal-format, gfc-internal-format | |
37181 | msgid "MOLD tag at %L conflicts with the typespec at %L" | |
37182 | msgstr "La etiqueta MOLD en %L tiene conflictos con la especificación de tipo en %L" | |
37183 | ||
37184 | -#: fortran/match.c:3722 | |
37185 | +#: fortran/match.c:3721 | |
37186 | #, gcc-internal-format, gfc-internal-format | |
37187 | msgid "MOLD tag at %L conflicts with SOURCE tag at %L" | |
37188 | msgstr "La etiqueta MOLD en %L tiene conflictos con la etiqueta SOURCE en %L" | |
37189 | ||
37190 | -#: fortran/match.c:3730 | |
37191 | +#: fortran/match.c:3729 | |
37192 | #, gcc-internal-format, gfc-internal-format | |
37193 | msgid "Allocate-object at %L with a deferred type parameter requires either a type-spec or SOURCE tag or a MOLD tag" | |
37194 | msgstr "El objeto de alojamiento en %L con un parámetro de tipo diferido requiere una especificación de tipo o una etiqueta SOURCE o una etiqueta MOLD" | |
37195 | ||
37196 | -#: fortran/match.c:3791 | |
37197 | +#: fortran/match.c:3790 | |
37198 | #, gcc-internal-format, gfc-internal-format | |
37199 | -msgid "Pointer object at %C shall not be conindexed" | |
37200 | +msgid "Pointer object at %C shall not be coindexed" | |
37201 | msgstr "El objeto puntero en %C no debe tener un coíndice" | |
37202 | ||
37203 | -#: fortran/match.c:3874 | |
37204 | +#: fortran/match.c:3873 | |
37205 | #, gcc-internal-format, gfc-internal-format | |
37206 | msgid "Illegal allocate-object at %C for a PURE procedure" | |
37207 | msgstr "Objeto de alojamiento ilegal en %C para un procedimiento PURE" | |
37208 | ||
37209 | -#: fortran/match.c:3884 | |
37210 | +#: fortran/match.c:3883 | |
37211 | #, gcc-internal-format, gfc-internal-format | |
37212 | msgid "DEALLOCATE of coarray at %C in DO CONCURRENT block" | |
37213 | msgstr "DEALLOCATE de comatriz en %C en el bloque DO CONCURRENT" | |
37214 | ||
37215 | -#: fortran/match.c:3891 | |
37216 | +#: fortran/match.c:3890 | |
37217 | #, gcc-internal-format, gfc-internal-format | |
37218 | msgid "DEALLOCATE of coarray at %C in CRITICAL block" | |
37219 | msgstr "DEALLOCATE de comatriz en %C en el bloque CRITICAL" | |
37220 | ||
37221 | -#: fortran/match.c:3907 | |
37222 | +#: fortran/match.c:3906 | |
37223 | #, gcc-internal-format, gfc-internal-format | |
37224 | msgid "Allocate-object at %C is not a nonprocedure pointer or an allocatable variable" | |
37225 | msgstr "El objeto de alojamiento en %C no es un puntero que no es procedimiento o una variable de alojamiento" | |
37226 | ||
37227 | -#: fortran/match.c:3944 | |
37228 | +#: fortran/match.c:3943 | |
37229 | #, gcc-internal-format, gfc-internal-format | |
37230 | msgid "Fortran 2003: ERRMSG at %L" | |
37231 | msgstr "Fortran 2003: ERRMSG en %L" | |
37232 | ||
37233 | -#: fortran/match.c:4002 | |
37234 | +#: fortran/match.c:4001 | |
37235 | #, gcc-internal-format, gfc-internal-format | |
37236 | msgid "Image control statement RETURN at %C in CRITICAL block" | |
37237 | msgstr "Declaración de control de imagen RETURN en %C en un bloque CRITICAL" | |
37238 | ||
37239 | -#: fortran/match.c:4008 | |
37240 | +#: fortran/match.c:4007 | |
37241 | #, gcc-internal-format, gfc-internal-format | |
37242 | msgid "Image control statement RETURN at %C in DO CONCURRENT block" | |
37243 | msgstr "Declaración de control de imagen RETURN en %C en un bloque DO CRITICAL" | |
37244 | ||
37245 | -#: fortran/match.c:4017 | |
37246 | +#: fortran/match.c:4016 | |
37247 | #, gcc-internal-format, gfc-internal-format | |
37248 | msgid "Alternate RETURN statement at %C is only allowed within a SUBROUTINE" | |
37249 | msgstr "La declaración RETURN alternativa en %C sólo se permite dentro de una SUBROUTINE" | |
37250 | ||
37251 | -#: fortran/match.c:4022 | |
37252 | +#: fortran/match.c:4021 | |
37253 | #, gcc-internal-format, gfc-internal-format | |
37254 | msgid "Obsolescent feature: Alternate RETURN at %C" | |
37255 | msgstr "Característica obsoleta: RETURN alternativo en %C" | |
37256 | ||
37257 | -#: fortran/match.c:4052 | |
37258 | +#: fortran/match.c:4051 | |
37259 | #, gcc-internal-format, gfc-internal-format | |
37260 | msgid "Extension: RETURN statement in main program at %C" | |
37261 | msgstr "Extensión: declaración RETURN en el programa principal en %C" | |
37262 | ||
37263 | -#: fortran/match.c:4080 | |
37264 | +#: fortran/match.c:4079 | |
37265 | #, gcc-internal-format, gfc-internal-format | |
37266 | msgid "Expected component reference at %C" | |
37267 | msgstr "Se esperaba una referencia de componente en %C" | |
37268 | ||
37269 | -#: fortran/match.c:4086 | |
37270 | +#: fortran/match.c:4085 | |
37271 | #, gcc-internal-format, gfc-internal-format | |
37272 | msgid "Junk after CALL at %C" | |
37273 | msgstr "Basura después de CALL en %C" | |
37274 | ||
37275 | -#: fortran/match.c:4096 | |
37276 | +#: fortran/match.c:4095 | |
37277 | #, gcc-internal-format, gfc-internal-format | |
37278 | msgid "Expected type-bound procedure or procedure pointer component at %C" | |
37279 | msgstr "Se esperaba un procedimiento enlazado a tipo o un procedimiento de componente puntero en %C" | |
37280 | ||
37281 | -#: fortran/match.c:4316 | |
37282 | +#: fortran/match.c:4315 | |
37283 | #, gcc-internal-format, gfc-internal-format | |
37284 | msgid "Syntax error in common block name at %C" | |
37285 | msgstr "Error sintáctico en el nombre de bloque común en %C" | |
37286 | ||
37287 | -#: fortran/match.c:4352 | |
37288 | +#: fortran/match.c:4351 | |
37289 | #, gcc-internal-format, gfc-internal-format | |
37290 | msgid "Symbol '%s' at %C is already an external symbol that is not COMMON" | |
37291 | msgstr "El símbolo '%s' en %C ya es un símbolo externo que no es COMMON" | |
37292 | @@ -38997,137 +39203,137 @@ | |
37293 | #. If we find an error, just print it and continue, | |
37294 | #. cause it's just semantic, and we can see if there | |
37295 | #. are more errors. | |
37296 | -#: fortran/match.c:4411 | |
37297 | +#: fortran/match.c:4410 | |
37298 | #, gcc-internal-format, gfc-internal-format | |
37299 | msgid "Variable '%s' at %L in common block '%s' at %C must be declared with a C interoperable kind since common block '%s' is bind(c)" | |
37300 | msgstr "La variable '%s' en %L en el bloque común '%s' en %C se debe declarar con género interoperable con C porque el bloque común '%s' es bind(c)" | |
37301 | ||
37302 | -#: fortran/match.c:4420 | |
37303 | +#: fortran/match.c:4419 | |
37304 | #, gcc-internal-format, gfc-internal-format | |
37305 | msgid "Variable '%s' in common block '%s' at %C can not be bind(c) since it is not global" | |
37306 | msgstr "La variable '%s' en el bloque común '%s' en %C no puede ser bind(c) porque no es global" | |
37307 | ||
37308 | -#: fortran/match.c:4427 | |
37309 | +#: fortran/match.c:4426 | |
37310 | #, gcc-internal-format, gfc-internal-format | |
37311 | msgid "Symbol '%s' at %C is already in a COMMON block" | |
37312 | msgstr "El símbolo '%s' en %C ya está en un bloque COMMON" | |
37313 | ||
37314 | -#: fortran/match.c:4435 | |
37315 | +#: fortran/match.c:4434 | |
37316 | #, gcc-internal-format, gfc-internal-format | |
37317 | msgid "Initialized symbol '%s' at %C can only be COMMON in BLOCK DATA" | |
37318 | msgstr "El símbolo inicializado '%s' en %C sólo puede ser COMMON en BLOCK DATA" | |
37319 | ||
37320 | -#: fortran/match.c:4462 | |
37321 | +#: fortran/match.c:4461 | |
37322 | #, gcc-internal-format, gfc-internal-format | |
37323 | msgid "Array specification for symbol '%s' in COMMON at %C must be explicit" | |
37324 | msgstr "La especificación de matriz para el símbolo '%s' en COMMON en %C debe ser explícita" | |
37325 | ||
37326 | -#: fortran/match.c:4472 | |
37327 | +#: fortran/match.c:4471 | |
37328 | #, gcc-internal-format, gfc-internal-format | |
37329 | msgid "Symbol '%s' in COMMON at %C cannot be a POINTER array" | |
37330 | msgstr "El símbolo '%s' en COMMON en %C no puede ser una matriz POINTER" | |
37331 | ||
37332 | -#: fortran/match.c:4504 | |
37333 | +#: fortran/match.c:4503 | |
37334 | #, gcc-internal-format, gfc-internal-format | |
37335 | msgid "Symbol '%s', in COMMON block '%s' at %C is being indirectly equivalenced to another COMMON block '%s'" | |
37336 | msgstr "El símbolo '%s', en el bloque COMMON '%s' en %C está siendo indirectamente equivalente a otro bloque COMMON '%s'" | |
37337 | ||
37338 | -#: fortran/match.c:4612 | |
37339 | +#: fortran/match.c:4611 | |
37340 | #, gcc-internal-format, gfc-internal-format | |
37341 | msgid "Namelist group name '%s' at %C already has a basic type of %s" | |
37342 | msgstr "El nombre de grupo de lista de nombres '%s' en %C ya tiene un tipo básico de %s" | |
37343 | ||
37344 | -#: fortran/match.c:4620 | |
37345 | +#: fortran/match.c:4619 | |
37346 | #, gcc-internal-format, gfc-internal-format | |
37347 | msgid "Namelist group name '%s' at %C already is USE associated and cannot be respecified." | |
37348 | msgstr "El nombre de grupo de lista de nombres '%s' en %C ya está asociado con USE y no se puede reespecificar." | |
37349 | ||
37350 | -#: fortran/match.c:4647 | |
37351 | +#: fortran/match.c:4646 | |
37352 | #, gcc-internal-format, gfc-internal-format | |
37353 | msgid "Assumed size array '%s' in namelist '%s' at %C is not allowed" | |
37354 | msgstr "No se permite la matriz de tamaño asumido '%s' en la lista de nombres '%s' en %C" | |
37355 | ||
37356 | -#: fortran/match.c:4781 | |
37357 | +#: fortran/match.c:4780 | |
37358 | #, gcc-internal-format, gfc-internal-format | |
37359 | msgid "Derived type component %C is not a permitted EQUIVALENCE member" | |
37360 | msgstr "El componente de tipo derivado %C no es un miembro EQUIVALENCE permitido" | |
37361 | ||
37362 | -#: fortran/match.c:4789 | |
37363 | +#: fortran/match.c:4788 | |
37364 | #, gcc-internal-format, gfc-internal-format | |
37365 | msgid "Array reference in EQUIVALENCE at %C cannot be an array section" | |
37366 | msgstr "La referencia a matriz en EQUIVALENCE en %C no puede ser una sección de matriz" | |
37367 | ||
37368 | -#: fortran/match.c:4817 | |
37369 | +#: fortran/match.c:4816 | |
37370 | #, gcc-internal-format, gfc-internal-format | |
37371 | msgid "EQUIVALENCE at %C requires two or more objects" | |
37372 | msgstr "El EQUIVALENCE en %C requiere dos o más objetos" | |
37373 | ||
37374 | -#: fortran/match.c:4831 | |
37375 | +#: fortran/match.c:4830 | |
37376 | #, gcc-internal-format, gfc-internal-format | |
37377 | msgid "Attempt to indirectly overlap COMMON blocks %s and %s by EQUIVALENCE at %C" | |
37378 | msgstr "Se intentó sobreescribir indirectamente los bloques COMMON %s y %s con EQUIVALENCE en %C" | |
37379 | ||
37380 | -#: fortran/match.c:4844 | |
37381 | +#: fortran/match.c:4843 | |
37382 | #, gcc-internal-format, gfc-internal-format | |
37383 | msgid "Expecting a comma in EQUIVALENCE at %C" | |
37384 | msgstr "Se esperaba una coma en EQUIVALENCE en %C" | |
37385 | ||
37386 | -#: fortran/match.c:4960 | |
37387 | +#: fortran/match.c:4959 | |
37388 | #, gcc-internal-format, gfc-internal-format | |
37389 | msgid "Statement function at %L is recursive" | |
37390 | msgstr "La función de declaración en %L es recursiva" | |
37391 | ||
37392 | -#: fortran/match.c:4966 | |
37393 | +#: fortran/match.c:4965 | |
37394 | #, gcc-internal-format, gfc-internal-format | |
37395 | msgid "Obsolescent feature: Statement function at %C" | |
37396 | msgstr "Característica obsoleta: Función de declaración en %C" | |
37397 | ||
37398 | -#: fortran/match.c:5052 | |
37399 | +#: fortran/match.c:5051 | |
37400 | #, gcc-internal-format, gfc-internal-format | |
37401 | msgid "Expected initialization expression in CASE at %C" | |
37402 | msgstr "Se esperaba la inicialización de la expresión en CASE en %C" | |
37403 | ||
37404 | -#: fortran/match.c:5084 | |
37405 | +#: fortran/match.c:5083 | |
37406 | #, gcc-internal-format, gfc-internal-format | |
37407 | msgid "Expected block name '%s' of SELECT construct at %C" | |
37408 | msgstr "Se esperaba el nombre de bloque '%s' de la construcción SELECT en %C" | |
37409 | ||
37410 | -#: fortran/match.c:5268 | |
37411 | +#: fortran/match.c:5267 | |
37412 | #, gcc-internal-format, gfc-internal-format | |
37413 | msgid "Selector in SELECT TYPE at %C is not a named variable; use associate-name=>" | |
37414 | msgstr "El selector en SELECT TYPE en %C no es una variable nombrada; use nombre-asociado =>" | |
37415 | ||
37416 | -#: fortran/match.c:5301 | |
37417 | +#: fortran/match.c:5300 | |
37418 | #, gcc-internal-format, gfc-internal-format | |
37419 | msgid "Unexpected CASE statement at %C" | |
37420 | msgstr "Declaración CASE inesperada en %C" | |
37421 | ||
37422 | -#: fortran/match.c:5353 | |
37423 | +#: fortran/match.c:5352 | |
37424 | #, gcc-internal-format, gfc-internal-format | |
37425 | msgid "Syntax error in CASE specification at %C" | |
37426 | msgstr "Error sintáctico en la especificación CASE en %C" | |
37427 | ||
37428 | -#: fortran/match.c:5371 | |
37429 | +#: fortran/match.c:5370 | |
37430 | #, gcc-internal-format, gfc-internal-format | |
37431 | msgid "Unexpected TYPE IS statement at %C" | |
37432 | msgstr "Declaración TYPE IS inesperada en %C" | |
37433 | ||
37434 | -#: fortran/match.c:5404 | |
37435 | +#: fortran/match.c:5403 | |
37436 | #, gcc-internal-format, gfc-internal-format | |
37437 | msgid "Syntax error in TYPE IS specification at %C" | |
37438 | msgstr "Error sintáctico en la especificación TYPE IS en %C" | |
37439 | ||
37440 | -#: fortran/match.c:5477 | |
37441 | +#: fortran/match.c:5476 | |
37442 | #, gcc-internal-format, gfc-internal-format | |
37443 | msgid "Syntax error in CLASS IS specification at %C" | |
37444 | msgstr "Error sintáctico en la especificación CLASS IS en %C" | |
37445 | ||
37446 | -#: fortran/match.c:5599 | |
37447 | +#: fortran/match.c:5598 | |
37448 | #, gcc-internal-format, gfc-internal-format | |
37449 | msgid "ELSEWHERE statement at %C not enclosed in WHERE block" | |
37450 | msgstr "La declaración ELSEWHERE en %C no está dentro de un bloque WHERE" | |
37451 | ||
37452 | -#: fortran/match.c:5637 | |
37453 | +#: fortran/match.c:5636 | |
37454 | #, gcc-internal-format, gfc-internal-format | |
37455 | msgid "Label '%s' at %C doesn't match WHERE label '%s'" | |
37456 | msgstr "La etiqueta '%s' en %C no coincide con la etiqueta WHERE '%s'" | |
37457 | @@ -39158,190 +39364,190 @@ | |
37458 | msgid "Extension: Unary operator following arithmetic operator (use parentheses) at %C" | |
37459 | msgstr "Extensión: Operador unario después de un operador aritmético (usar paréntesis) en %C" | |
37460 | ||
37461 | -#: fortran/module.c:548 | |
37462 | +#: fortran/module.c:555 | |
37463 | #, gcc-internal-format, gfc-internal-format | |
37464 | msgid "Fortran 2003: module nature in USE statement at %C" | |
37465 | msgstr "Fortran 2003: módulo natural en la declaración USE en %C" | |
37466 | ||
37467 | -#: fortran/module.c:560 | |
37468 | +#: fortran/module.c:567 | |
37469 | #, gcc-internal-format, gfc-internal-format | |
37470 | msgid "Module nature in USE statement at %C shall be either INTRINSIC or NON_INTRINSIC" | |
37471 | msgstr "El módulo natural en la declaración USE en %C debe ser uno de INTRINSIC o NON_INTRINSIC" | |
37472 | ||
37473 | -#: fortran/module.c:573 | |
37474 | +#: fortran/module.c:580 | |
37475 | #, gcc-internal-format, gfc-internal-format | |
37476 | msgid "\"::\" was expected after module nature at %C but was not found" | |
37477 | msgstr "Se esperaba \"::\" después del módulo natural en %C pero no se encontró" | |
37478 | ||
37479 | -#: fortran/module.c:583 | |
37480 | +#: fortran/module.c:590 | |
37481 | #, gcc-internal-format, gfc-internal-format | |
37482 | msgid "Fortran 2003: \"USE :: module\" at %C" | |
37483 | msgstr "Fortran 2003: \"USE :: module\" en %C" | |
37484 | ||
37485 | -#: fortran/module.c:643 | |
37486 | +#: fortran/module.c:650 | |
37487 | #, gcc-internal-format, gfc-internal-format | |
37488 | msgid "Missing generic specification in USE statement at %C" | |
37489 | msgstr "Falta la especificación genérica en la declaración USE en %C" | |
37490 | ||
37491 | -#: fortran/module.c:651 | |
37492 | +#: fortran/module.c:658 | |
37493 | #, gcc-internal-format, gfc-internal-format | |
37494 | msgid "Fortran 2003: Renaming operators in USE statements at %C" | |
37495 | msgstr "Fortran 2003: Se renombran operadores en declaraciones USE en %C" | |
37496 | ||
37497 | -#: fortran/module.c:693 | |
37498 | +#: fortran/module.c:700 | |
37499 | #, gcc-internal-format, gfc-internal-format | |
37500 | msgid "The name '%s' at %C has already been used as an external module name." | |
37501 | msgstr "El nombre '%s' en %C ya se está usando como un nombre de módulo externo." | |
37502 | ||
37503 | -#: fortran/module.c:1006 | |
37504 | +#: fortran/module.c:1013 | |
37505 | #, gcc-internal-format, gfc-internal-format | |
37506 | msgid "Reading module %s at line %d column %d: %s" | |
37507 | msgstr "Leyendo el módulo %s en la línea %d columna %d: %s" | |
37508 | ||
37509 | -#: fortran/module.c:1010 | |
37510 | +#: fortran/module.c:1017 | |
37511 | #, gcc-internal-format, gfc-internal-format | |
37512 | msgid "Writing module %s at line %d column %d: %s" | |
37513 | msgstr "Escribiendo el módulo %s en la línea %d columna %d: %s" | |
37514 | ||
37515 | -#: fortran/module.c:1014 | |
37516 | +#: fortran/module.c:1021 | |
37517 | #, gcc-internal-format, gfc-internal-format | |
37518 | msgid "Module %s at line %d column %d: %s" | |
37519 | msgstr "Módulo %s en la línea %d columna %d: %s" | |
37520 | ||
37521 | -#: fortran/module.c:1449 | |
37522 | +#: fortran/module.c:1469 | |
37523 | #, gcc-internal-format, gfc-internal-format | |
37524 | msgid "Error writing modules file: %s" | |
37525 | msgstr "Error al escribir el fichero de módulos: %s" | |
37526 | ||
37527 | -#: fortran/module.c:3396 | |
37528 | +#: fortran/module.c:3416 | |
37529 | #, gcc-internal-format, gfc-internal-format | |
37530 | msgid "Namelist %s cannot be renamed by USE association to %s" | |
37531 | msgstr "La lista de nombres %s no se puede renombrar por asociación de USE a %s" | |
37532 | ||
37533 | -#: fortran/module.c:4427 | |
37534 | +#: fortran/module.c:4461 | |
37535 | #, gcc-internal-format, gfc-internal-format | |
37536 | msgid "'%s' of module '%s', imported at %C, is also the name of the current program unit" | |
37537 | msgstr "'%s' del módulo '%s', importado en %C, es también el nombre de la unidad de programa actual" | |
37538 | ||
37539 | -#: fortran/module.c:4722 | |
37540 | +#: fortran/module.c:4760 | |
37541 | #, gcc-internal-format, gfc-internal-format | |
37542 | msgid "Symbol '%s' referenced at %L not found in module '%s'" | |
37543 | msgstr "El símbolo '%s' referenciado en %L no se encontró en el módulo '%s'" | |
37544 | ||
37545 | -#: fortran/module.c:4729 | |
37546 | +#: fortran/module.c:4767 | |
37547 | #, gcc-internal-format, gfc-internal-format | |
37548 | msgid "User operator '%s' referenced at %L not found in module '%s'" | |
37549 | msgstr "El operador de usuario '%s' referenciado en %L no se encontró en el módulo '%s'" | |
37550 | ||
37551 | -#: fortran/module.c:4734 | |
37552 | +#: fortran/module.c:4772 | |
37553 | #, gcc-internal-format, gfc-internal-format | |
37554 | msgid "Intrinsic operator '%s' referenced at %L not found in module '%s'" | |
37555 | msgstr "El operador intrínseco '%s' referenciado en %L no se encontró en el módulo '%s'" | |
37556 | ||
37557 | -#: fortran/module.c:5372 | |
37558 | +#: fortran/module.c:5409 | |
37559 | #, gcc-internal-format, gfc-internal-format | |
37560 | msgid "Can't open module file '%s' for writing at %C: %s" | |
37561 | msgstr "No se puede abrir el fichero de módulo '%s' para escritura en %C: %s" | |
37562 | ||
37563 | # El mensaje de error seguramente está mal redactado. cfuga | |
37564 | -#: fortran/module.c:5405 | |
37565 | +#: fortran/module.c:5442 | |
37566 | #, gcc-internal-format, gfc-internal-format | |
37567 | msgid "Error writing module file '%s' for writing: %s" | |
37568 | msgstr "Error al escribir al fichero de módulo '%s' para escritura: %s" | |
37569 | ||
37570 | -#: fortran/module.c:5414 | |
37571 | +#: fortran/module.c:5451 | |
37572 | #, gcc-internal-format, gfc-internal-format | |
37573 | msgid "Can't delete module file '%s': %s" | |
37574 | msgstr "No se puede borrar el fichero de módulo '%s': %s" | |
37575 | ||
37576 | -#: fortran/module.c:5417 | |
37577 | +#: fortran/module.c:5454 | |
37578 | #, gcc-internal-format, gfc-internal-format | |
37579 | msgid "Can't rename module file '%s' to '%s': %s" | |
37580 | msgstr "No se puede renombrar el fichero de módulo '%s' a '%s': %s" | |
37581 | ||
37582 | -#: fortran/module.c:5423 | |
37583 | +#: fortran/module.c:5460 | |
37584 | #, gcc-internal-format, gfc-internal-format | |
37585 | msgid "Can't delete temporary module file '%s': %s" | |
37586 | msgstr "No se puede borrar el fichero de módulo temporal '%s': %s" | |
37587 | ||
37588 | -#: fortran/module.c:5442 fortran/module.c:5654 fortran/module.c:5687 | |
37589 | -#: fortran/module.c:5729 | |
37590 | +#: fortran/module.c:5479 fortran/module.c:5691 fortran/module.c:5724 | |
37591 | +#: fortran/module.c:5766 | |
37592 | #, gcc-internal-format, gfc-internal-format | |
37593 | msgid "Symbol '%s' already declared" | |
37594 | msgstr "El símbolo '%s' ya se había declarado" | |
37595 | ||
37596 | -#: fortran/module.c:5546 fortran/module.c:5825 | |
37597 | +#: fortran/module.c:5583 fortran/module.c:5862 | |
37598 | #, gcc-internal-format, gfc-internal-format | |
37599 | msgid "The symbol '%s', referenced at %L, is not in the selected standard" | |
37600 | msgstr "El símbolo '%s' referenciado en %L, no está en el módulo estándar" | |
37601 | ||
37602 | -#: fortran/module.c:5633 | |
37603 | +#: fortran/module.c:5670 | |
37604 | #, gcc-internal-format, gfc-internal-format | |
37605 | msgid "Symbol '%s' referenced at %L not found in intrinsic module ISO_C_BINDING" | |
37606 | msgstr "El símbolo '%s' referenciado en %L no se encontró en el módulo intrínseco ISO_C_BINDING" | |
37607 | ||
37608 | -#: fortran/module.c:5810 | |
37609 | +#: fortran/module.c:5847 | |
37610 | #, gcc-internal-format, gfc-internal-format | |
37611 | msgid "Use of intrinsic module '%s' at %C conflicts with non-intrinsic module name used previously" | |
37612 | msgstr "El uso del módulo intrínseco '%s' en %C tiene conflictos con un nombre de módulo no intrínseco usado previamente" | |
37613 | ||
37614 | -#: fortran/module.c:5833 | |
37615 | +#: fortran/module.c:5870 | |
37616 | #, gcc-internal-format, gfc-internal-format | |
37617 | msgid "Use of the NUMERIC_STORAGE_SIZE named constant from intrinsic module ISO_FORTRAN_ENV at %L is incompatible with option %s" | |
37618 | msgstr "El uso de la constante nombrada NUMERIC_STORAGE_SIZE del módulo intrínseco ISO_FORTRAN_ENV en %L es incompatible con la opción %s" | |
37619 | ||
37620 | -#: fortran/module.c:5903 | |
37621 | +#: fortran/module.c:5940 | |
37622 | #, gcc-internal-format, gfc-internal-format | |
37623 | msgid "Use of the NUMERIC_STORAGE_SIZE named constant from intrinsic module ISO_FORTRAN_ENV at %C is incompatible with option %s" | |
37624 | msgstr "El uso de la constante nombrada NUMERIC_STORAGE_SIZE del módulo intrínseco ISO_FORTRAN_ENV en %C es incompatible con la opción %s" | |
37625 | ||
37626 | -#: fortran/module.c:5961 | |
37627 | +#: fortran/module.c:5998 | |
37628 | #, gcc-internal-format, gfc-internal-format | |
37629 | msgid "Symbol '%s' referenced at %L not found in intrinsic module ISO_FORTRAN_ENV" | |
37630 | msgstr "El símbolo '%s' referenciado en %L no se encontró en el módulo intrínseco ISO_FORTRAN_ENV" | |
37631 | ||
37632 | -#: fortran/module.c:6000 | |
37633 | +#: fortran/module.c:6037 | |
37634 | #, gcc-internal-format, gfc-internal-format | |
37635 | msgid "Fortran 2003: ISO_FORTRAN_ENV intrinsic module at %C" | |
37636 | msgstr "Fortran 2003: Módulo intrínseco ISO_FORTRAN_ENV en %C" | |
37637 | ||
37638 | -#: fortran/module.c:6010 | |
37639 | +#: fortran/module.c:6047 | |
37640 | #, gcc-internal-format, gfc-internal-format | |
37641 | msgid "Fortran 2003: ISO_C_BINDING module at %C" | |
37642 | msgstr "Fortran 2003: Módulo ISO_C_BINDING en %C" | |
37643 | ||
37644 | -#: fortran/module.c:6022 | |
37645 | +#: fortran/module.c:6059 | |
37646 | #, gcc-internal-format, gfc-internal-format | |
37647 | msgid "Can't find an intrinsic module named '%s' at %C" | |
37648 | msgstr "No se puede encontrar un módulo intrínseco llamado '%s' en %C" | |
37649 | ||
37650 | -#: fortran/module.c:6027 | |
37651 | +#: fortran/module.c:6064 | |
37652 | #, gcc-internal-format, gfc-internal-format | |
37653 | msgid "Can't open module file '%s' for reading at %C: %s" | |
37654 | msgstr "No se puede abrir el fichero de módulo '%s' para lectura en %C: %s" | |
37655 | ||
37656 | -#: fortran/module.c:6035 | |
37657 | +#: fortran/module.c:6072 | |
37658 | #, gcc-internal-format, gfc-internal-format | |
37659 | msgid "Use of non-intrinsic module '%s' at %C conflicts with intrinsic module name used previously" | |
37660 | msgstr "El uso del módulo '%s' que no es intrínseco en %C tiene conflictos con el nombre del módulo intrínseco usado previamente" | |
37661 | ||
37662 | -#: fortran/module.c:6055 | |
37663 | +#: fortran/module.c:6092 | |
37664 | #, gcc-internal-format, gfc-internal-format | |
37665 | msgid "File '%s' opened at %C is not a GFORTRAN module file" | |
37666 | msgstr "El fichero '%s' abierto en %C no es un fichero de módulo GFORTRAN" | |
37667 | ||
37668 | -#: fortran/module.c:6062 | |
37669 | +#: fortran/module.c:6099 | |
37670 | #, gcc-internal-format, gfc-internal-format | |
37671 | msgid "Parse error when checking module version for file '%s' opened at %C" | |
37672 | msgstr "Error de decodificación al revisar la versión de módulo para el fichero '%s' abierto en %C" | |
37673 | ||
37674 | -#: fortran/module.c:6067 | |
37675 | +#: fortran/module.c:6104 | |
37676 | #, gcc-internal-format, gfc-internal-format | |
37677 | msgid "Wrong module version '%s' (expected '%s') for file '%s' opened at %C" | |
37678 | msgstr "Versión de módulo '%s' errónea (se esperaba '%s) para el fichero '%s' abierto en %C" | |
37679 | ||
37680 | # No se puede hacer el mismo juego de palabras que en inglés. cfuga | |
37681 | -#: fortran/module.c:6082 | |
37682 | +#: fortran/module.c:6119 | |
37683 | #, gcc-internal-format | |
37684 | msgid "Can't USE the same module we're building!" | |
37685 | msgstr "¡No se puede hacer USE del mismo módulo que estamos construyendo!" | |
37686 | @@ -39426,7 +39632,7 @@ | |
37687 | msgid "Unexpected junk after NOWAIT clause at %C" | |
37688 | msgstr "Basura inesperada después de la cláusula NOWAIT en %C" | |
37689 | ||
37690 | -#: fortran/openmp.c:819 fortran/resolve.c:8998 fortran/resolve.c:9476 | |
37691 | +#: fortran/openmp.c:819 fortran/resolve.c:8985 fortran/resolve.c:9463 | |
37692 | #, gcc-internal-format, gfc-internal-format | |
37693 | msgid "IF clause at %L requires a scalar LOGICAL expression" | |
37694 | msgstr "La cláusula IF en %L requiere una expresión LOGICAL escalar" | |
37695 | @@ -40745,713 +40951,713 @@ | |
37696 | msgid "Non-RECURSIVE procedure '%s' at %L is possibly calling itself recursively. Declare it RECURSIVE or use -frecursive" | |
37697 | msgstr "El procedimiento que no es RECURSIVE '%s' en %L posiblemente se está llamando a sí mismo recursivamente. Declárelo RECURSIVE o utilice -frecursive" | |
37698 | ||
37699 | -#: fortran/resolve.c:1620 fortran/resolve.c:8534 fortran/resolve.c:9423 | |
37700 | +#: fortran/resolve.c:1610 fortran/resolve.c:8521 fortran/resolve.c:9410 | |
37701 | #, gcc-internal-format, gfc-internal-format | |
37702 | msgid "Label %d referenced at %L is never defined" | |
37703 | msgstr "La etiqueta %d referenciada en %L nunca se define" | |
37704 | ||
37705 | -#: fortran/resolve.c:1665 | |
37706 | +#: fortran/resolve.c:1655 | |
37707 | #, gcc-internal-format, gfc-internal-format | |
37708 | msgid "Statement function '%s' at %L is not allowed as an actual argument" | |
37709 | msgstr "La función de declaración '%s' en %L no se permite como un argumento actual" | |
37710 | ||
37711 | -#: fortran/resolve.c:1673 | |
37712 | +#: fortran/resolve.c:1663 | |
37713 | #, gcc-internal-format, gfc-internal-format | |
37714 | msgid "Intrinsic '%s' at %L is not allowed as an actual argument" | |
37715 | msgstr "El intrínseco '%s' en %L no se permite como un argumento actual" | |
37716 | ||
37717 | -#: fortran/resolve.c:1681 | |
37718 | +#: fortran/resolve.c:1671 | |
37719 | #, gcc-internal-format, gfc-internal-format | |
37720 | msgid "Fortran 2008: Internal procedure '%s' is used as actual argument at %L" | |
37721 | msgstr "Fortran 2008: Se usa el procedimiento interno '%s' como un argumento actual en %L" | |
37722 | ||
37723 | -#: fortran/resolve.c:1689 | |
37724 | +#: fortran/resolve.c:1679 | |
37725 | #, gcc-internal-format, gfc-internal-format | |
37726 | msgid "ELEMENTAL non-INTRINSIC procedure '%s' is not allowed as an actual argument at %L" | |
37727 | msgstr "El procedimiento ELEMENTAL que no es INTRINSIC '%s' no se permite como un argumento actual en %L" | |
37728 | ||
37729 | -#: fortran/resolve.c:1716 | |
37730 | +#: fortran/resolve.c:1706 | |
37731 | #, gcc-internal-format, gfc-internal-format | |
37732 | msgid "Unable to find a specific INTRINSIC procedure for the reference '%s' at %L" | |
37733 | msgstr "No se puede encontrar un procedimiento INTRINSIC específico para la referencia '%s' en %L" | |
37734 | ||
37735 | -#: fortran/resolve.c:1738 | |
37736 | +#: fortran/resolve.c:1728 | |
37737 | #, gcc-internal-format, gfc-internal-format | |
37738 | msgid "Symbol '%s' at %L is ambiguous" | |
37739 | msgstr "El símbolo '%s' en %L es ambiguo" | |
37740 | ||
37741 | -#: fortran/resolve.c:1793 | |
37742 | +#: fortran/resolve.c:1783 | |
37743 | #, gcc-internal-format, gfc-internal-format | |
37744 | msgid "By-value argument at %L is not of numeric type" | |
37745 | msgstr "El argumento por valor en %L no es de tipo numérico" | |
37746 | ||
37747 | -#: fortran/resolve.c:1800 | |
37748 | +#: fortran/resolve.c:1790 | |
37749 | #, gcc-internal-format, gfc-internal-format | |
37750 | msgid "By-value argument at %L cannot be an array or an array section" | |
37751 | msgstr "El argumento por valor en %L no puede ser una matriz o una sección de matriz" | |
37752 | ||
37753 | -#: fortran/resolve.c:1814 | |
37754 | +#: fortran/resolve.c:1804 | |
37755 | #, gcc-internal-format, gfc-internal-format | |
37756 | msgid "By-value argument at %L is not allowed in this context" | |
37757 | msgstr "El argumento por valor en %L no se permite en este contexto" | |
37758 | ||
37759 | -#: fortran/resolve.c:1826 | |
37760 | +#: fortran/resolve.c:1816 | |
37761 | #, gcc-internal-format, gfc-internal-format | |
37762 | msgid "Passing internal procedure at %L by location not allowed" | |
37763 | msgstr "No se permite el paso del procedimiento interno en %L por ubicación" | |
37764 | ||
37765 | -#: fortran/resolve.c:1837 | |
37766 | +#: fortran/resolve.c:1827 | |
37767 | #, gcc-internal-format, gfc-internal-format | |
37768 | msgid "Coindexed actual argument at %L with ultimate pointer component" | |
37769 | msgstr "Argumento actual coindizado en %L con componente puntero último" | |
37770 | ||
37771 | -#: fortran/resolve.c:1960 | |
37772 | +#: fortran/resolve.c:1950 | |
37773 | #, gcc-internal-format, gfc-internal-format | |
37774 | msgid "'%s' at %L is an array and OPTIONAL; IF IT IS MISSING, it cannot be the actual argument of an ELEMENTAL procedure unless there is a non-optional argument with the same rank (12.4.1.5)" | |
37775 | msgstr "'%s' en %L es una matriz y OPTIONAL; SI FALTA, no puede ser el argumento actual de un procedimiento ELEMENTAL a menos que exista un argumento que no sea opcional con el mismo rango (12.4.1.5)" | |
37776 | ||
37777 | -#: fortran/resolve.c:1999 | |
37778 | +#: fortran/resolve.c:1989 | |
37779 | #, gcc-internal-format, gfc-internal-format | |
37780 | msgid "Actual argument at %L for INTENT(%s) dummy '%s' of ELEMENTAL subroutine '%s' is a scalar, but another actual argument is an array" | |
37781 | msgstr "El argumento actual en %L para el dummy INTENT(%s) '%s' de la subrutina ELEMENTAL '%s' es un escalar, pero otro argumento actual es una matriz" | |
37782 | ||
37783 | -#: fortran/resolve.c:2161 | |
37784 | +#: fortran/resolve.c:2151 | |
37785 | #, gcc-internal-format, gfc-internal-format | |
37786 | msgid "Character length mismatch in return type of function '%s' at %L (%ld/%ld)" | |
37787 | msgstr "No coincide la longitud de caracteres en el tipo de devolución de la función '%s' en %L (%ld/%ld)" | |
37788 | ||
37789 | -#: fortran/resolve.c:2169 | |
37790 | +#: fortran/resolve.c:2159 | |
37791 | #, gcc-internal-format, gfc-internal-format | |
37792 | msgid "Return type mismatch of function '%s' at %L (%s/%s)" | |
37793 | msgstr "No coincide el tiop de devolución de la función '%s' en %L (%s/%s)" | |
37794 | ||
37795 | -#: fortran/resolve.c:2188 | |
37796 | +#: fortran/resolve.c:2178 | |
37797 | #, gcc-internal-format, gfc-internal-format | |
37798 | msgid "Dummy argument '%s' of procedure '%s' at %L has an attribute that requires an explicit interface for this procedure" | |
37799 | msgstr "El argumento dummy '%s' del procedimiento '%s' en %L tiene un atributo que requiere una interfaz explícita para este procedimiento" | |
37800 | ||
37801 | -#: fortran/resolve.c:2198 | |
37802 | +#: fortran/resolve.c:2188 | |
37803 | #, gcc-internal-format, gfc-internal-format | |
37804 | msgid "Procedure '%s' at %L with assumed-shape dummy argument '%s' must have an explicit interface" | |
37805 | msgstr "El procedimiento '%s' en %L con argumento dummy de forma asumida '%s' debe tener una interfaz explícita" | |
37806 | ||
37807 | -#: fortran/resolve.c:2206 | |
37808 | +#: fortran/resolve.c:2196 | |
37809 | #, gcc-internal-format, gfc-internal-format | |
37810 | msgid "Procedure '%s' at %L with coarray dummy argument '%s' must have an explicit interface" | |
37811 | msgstr "El procedimiento '%s' en %L con argumento dummy de comatriz '%s' debe tener una interfaz explícita" | |
37812 | ||
37813 | -#: fortran/resolve.c:2214 | |
37814 | +#: fortran/resolve.c:2204 | |
37815 | #, gcc-internal-format, gfc-internal-format | |
37816 | msgid "Procedure '%s' at %L with parametrized derived type argument '%s' must have an explicit interface" | |
37817 | msgstr "El procedimiento '%s' en %L con un argumento de tipo derivado parametrizado '%s' debe tener una interfaz explícita" | |
37818 | ||
37819 | -#: fortran/resolve.c:2223 | |
37820 | +#: fortran/resolve.c:2213 | |
37821 | #, gcc-internal-format, gfc-internal-format | |
37822 | msgid "Procedure '%s' at %L with polymorphic dummy argument '%s' must have an explicit interface" | |
37823 | msgstr "El procedimiento '%s' en %L con argumento dummy polimórfico '%s' debe tener una interfaz explícita" | |
37824 | ||
37825 | -#: fortran/resolve.c:2235 | |
37826 | +#: fortran/resolve.c:2225 | |
37827 | #, gcc-internal-format, gfc-internal-format | |
37828 | msgid "The reference to function '%s' at %L either needs an explicit INTERFACE or the rank is incorrect" | |
37829 | msgstr "La referencia a la función '%s' en %L necesita una INTERFACE explícita o el rango es incorrecto" | |
37830 | ||
37831 | -#: fortran/resolve.c:2247 | |
37832 | +#: fortran/resolve.c:2237 | |
37833 | #, gcc-internal-format, gfc-internal-format | |
37834 | msgid "Function '%s' at %L with a POINTER or ALLOCATABLE result must have an explicit interface" | |
37835 | msgstr "La función '%s' en %L con un resultado POINTER o ALLOCATABLE debe tener una interfaz explícita" | |
37836 | ||
37837 | -#: fortran/resolve.c:2260 | |
37838 | +#: fortran/resolve.c:2250 | |
37839 | #, gcc-internal-format, gfc-internal-format | |
37840 | msgid "Nonconstant character-length function '%s' at %L must have an explicit interface" | |
37841 | msgstr "La función de longitud de carácter automática '%s' que no es constante en %L debe una interfaz explícita" | |
37842 | ||
37843 | -#: fortran/resolve.c:2270 | |
37844 | +#: fortran/resolve.c:2260 | |
37845 | #, gcc-internal-format, gfc-internal-format | |
37846 | msgid "ELEMENTAL procedure '%s' at %L must have an explicit interface" | |
37847 | msgstr "El procedimiento ELEMENTAL '%s' en %L debe tener una interfaz explícita" | |
37848 | ||
37849 | -#: fortran/resolve.c:2277 | |
37850 | +#: fortran/resolve.c:2267 | |
37851 | #, gcc-internal-format, gfc-internal-format | |
37852 | msgid "Procedure '%s' at %L with BIND(C) attribute must have an explicit interface" | |
37853 | msgstr "El procedimiento '%s' en %L con atributo BIND(C) debe tener una interfaz explícita" | |
37854 | ||
37855 | -#: fortran/resolve.c:2383 | |
37856 | +#: fortran/resolve.c:2373 | |
37857 | #, gcc-internal-format, gfc-internal-format | |
37858 | msgid "There is no specific function for the generic '%s' at %L" | |
37859 | msgstr "No hay una función específica para el genérico '%s' en %L" | |
37860 | ||
37861 | -#: fortran/resolve.c:2401 | |
37862 | +#: fortran/resolve.c:2391 | |
37863 | #, gcc-internal-format, gfc-internal-format | |
37864 | msgid "Generic function '%s' at %L is not consistent with a specific intrinsic interface" | |
37865 | msgstr "La función genérica '%s' en %L no es consistente con una interfaz intrínseca específica" | |
37866 | ||
37867 | -#: fortran/resolve.c:2439 | |
37868 | +#: fortran/resolve.c:2429 | |
37869 | #, gcc-internal-format, gfc-internal-format | |
37870 | msgid "Function '%s' at %L is INTRINSIC but is not compatible with an intrinsic" | |
37871 | msgstr "La función '%s' en %L es INTRINSIC pero no es compatible con un intrínseco" | |
37872 | ||
37873 | -#: fortran/resolve.c:2488 | |
37874 | +#: fortran/resolve.c:2478 | |
37875 | #, gcc-internal-format, gfc-internal-format | |
37876 | msgid "Unable to resolve the specific function '%s' at %L" | |
37877 | msgstr "No se puede resolver la función específica '%s' en %L" | |
37878 | ||
37879 | -#: fortran/resolve.c:2544 fortran/resolve.c:13705 | |
37880 | +#: fortran/resolve.c:2534 fortran/resolve.c:13693 | |
37881 | #, gcc-internal-format, gfc-internal-format | |
37882 | msgid "Function '%s' at %L has no IMPLICIT type" | |
37883 | msgstr "La función '%s' en %L no es de tipo IMPLICIT" | |
37884 | ||
37885 | -#: fortran/resolve.c:2746 | |
37886 | +#: fortran/resolve.c:2735 | |
37887 | #, gcc-internal-format, gfc-internal-format | |
37888 | msgid "Argument to '%s' at %L is not a variable" | |
37889 | msgstr "El argumento de '%s' en %L no es una variable" | |
37890 | ||
37891 | -#: fortran/resolve.c:2793 | |
37892 | +#: fortran/resolve.c:2779 | |
37893 | #, gcc-internal-format, gfc-internal-format | |
37894 | msgid "More actual than formal arguments in '%s' call at %L" | |
37895 | msgstr "Más argumentos actuales que formales en la llamada '%s' en %L" | |
37896 | ||
37897 | -#: fortran/resolve.c:2805 | |
37898 | +#: fortran/resolve.c:2791 | |
37899 | #, gcc-internal-format, gfc-internal-format | |
37900 | msgid "Parameter '%s' to '%s' at %L must be either a TARGET or an associated pointer" | |
37901 | msgstr "El parámetro '%s' para '%s' en %L debe ser un TARGET o un puntero asociado" | |
37902 | ||
37903 | -#: fortran/resolve.c:2814 | |
37904 | +#: fortran/resolve.c:2800 | |
37905 | #, gcc-internal-format, gfc-internal-format | |
37906 | msgid "Coindexed argument not permitted in '%s' call at %L" | |
37907 | msgstr "No se permite un argumento coindizado en la llamada '%s' en %L" | |
37908 | ||
37909 | -#: fortran/resolve.c:2837 | |
37910 | +#: fortran/resolve.c:2823 | |
37911 | #, gcc-internal-format, gfc-internal-format | |
37912 | msgid "Array section not permitted in '%s' call at %L" | |
37913 | msgstr "No se permite una sección de matriz en la llamada '%s' en %L" | |
37914 | ||
37915 | -#: fortran/resolve.c:2848 | |
37916 | +#: fortran/resolve.c:2834 | |
37917 | #, gcc-internal-format, gfc-internal-format | |
37918 | msgid "Array section in '%s' call at %L" | |
37919 | msgstr "Sección de matriz en la llamada '%s' en %L" | |
37920 | ||
37921 | -#: fortran/resolve.c:2867 | |
37922 | +#: fortran/resolve.c:2853 | |
37923 | #, gcc-internal-format, gfc-internal-format | |
37924 | msgid "Allocatable variable '%s' used as a parameter to '%s' at %L must not be an array of zero size" | |
37925 | msgstr "La variable alojable '%s' usada como un parámetro para '%s' en %L no debe ser una matriz de tamaño cero" | |
37926 | ||
37927 | -#: fortran/resolve.c:2884 | |
37928 | +#: fortran/resolve.c:2870 | |
37929 | #, gcc-internal-format, gfc-internal-format | |
37930 | msgid "Assumed-shape array '%s' at %L cannot be an argument to the procedure '%s' because it is not C interoperable" | |
37931 | msgstr "La matriz de forma asumida '%s' en %L no puede ser un argumento para el procedimiento '%s' porque no es interoperable con C" | |
37932 | ||
37933 | -#: fortran/resolve.c:2894 | |
37934 | +#: fortran/resolve.c:2880 | |
37935 | #, gcc-internal-format, gfc-internal-format | |
37936 | msgid "Deferred-shape array '%s' at %L cannot be an argument to the procedure '%s' because it is not C interoperable" | |
37937 | msgstr "La matriz de forma diferida '%s' en %L no puede ser un argumento para el procedimiento '%s' porque no es interoperable con C" | |
37938 | ||
37939 | -#: fortran/resolve.c:2917 fortran/resolve.c:2954 | |
37940 | +#: fortran/resolve.c:2903 fortran/resolve.c:2940 | |
37941 | #, gcc-internal-format, gfc-internal-format | |
37942 | msgid "CHARACTER argument '%s' to '%s' at %L must have a length of 1" | |
37943 | msgstr "El argumento CHARACTER '%s' para '%s' en %L debe ser de longitud 1" | |
37944 | ||
37945 | #. Case 1c, section 15.1.2.5, J3/04-007: an associated | |
37946 | #. scalar pointer. | |
37947 | -#: fortran/resolve.c:2930 | |
37948 | +#: fortran/resolve.c:2916 | |
37949 | #, gcc-internal-format, gfc-internal-format | |
37950 | msgid "Argument '%s' to '%s' at %L must be an associated scalar POINTER" | |
37951 | msgstr "El argumento '%s' para '%s' en %L debe ser un POINTER escalar asociado" | |
37952 | ||
37953 | -#: fortran/resolve.c:2946 | |
37954 | +#: fortran/resolve.c:2932 | |
37955 | #, gcc-internal-format, gfc-internal-format | |
37956 | msgid "Parameter '%s' to '%s' at %L must be a scalar" | |
37957 | msgstr "El argumento '%s' para '%s' en %L debe ser un escalar" | |
37958 | ||
37959 | -#: fortran/resolve.c:2962 | |
37960 | +#: fortran/resolve.c:2948 | |
37961 | #, gcc-internal-format, gfc-internal-format | |
37962 | msgid "Parameter '%s' to '%s' at %L must not be polymorphic" | |
37963 | msgstr "El parámetro '%s' para '%s' en %L no debe ser polimórfico" | |
37964 | ||
37965 | #. TODO: Update this error message to allow for procedure | |
37966 | #. pointers once they are implemented. | |
37967 | -#: fortran/resolve.c:2975 | |
37968 | +#: fortran/resolve.c:2961 | |
37969 | #, gcc-internal-format, gfc-internal-format | |
37970 | msgid "Parameter '%s' to '%s' at %L must be a procedure" | |
37971 | msgstr "El parámetro '%s' para '%s' en %L debe ser un procedimiento" | |
37972 | ||
37973 | -#: fortran/resolve.c:2983 | |
37974 | +#: fortran/resolve.c:2969 | |
37975 | #, gcc-internal-format, gfc-internal-format | |
37976 | msgid "Parameter '%s' to '%s' at %L must be BIND(C)" | |
37977 | msgstr "El parámetro '%s' para '%s' en %L debe ser BIND(C)" | |
37978 | ||
37979 | -#: fortran/resolve.c:3032 | |
37980 | +#: fortran/resolve.c:3018 | |
37981 | #, gcc-internal-format, gfc-internal-format | |
37982 | msgid "'%s' at %L is not a function" | |
37983 | msgstr "'%s' en %L no es una función" | |
37984 | ||
37985 | -#: fortran/resolve.c:3040 fortran/resolve.c:3670 | |
37986 | +#: fortran/resolve.c:3026 fortran/resolve.c:3657 | |
37987 | #, gcc-internal-format, gfc-internal-format | |
37988 | msgid "ABSTRACT INTERFACE '%s' must not be referenced at %L" | |
37989 | msgstr "La ABSTRACT INTERFACE '%s' no se debe referenciar en %L" | |
37990 | ||
37991 | #. Internal procedures are taken care of in resolve_contained_fntype. | |
37992 | -#: fortran/resolve.c:3095 | |
37993 | +#: fortran/resolve.c:3081 | |
37994 | #, gcc-internal-format, gfc-internal-format | |
37995 | msgid "Function '%s' is declared CHARACTER(*) and cannot be used at %L since it is not a dummy argument" | |
37996 | msgstr "La función '%s' se declara CHARACTER(*) y no se puede usar en %L ya que no es un argumento de prueba" | |
37997 | ||
37998 | -#: fortran/resolve.c:3148 | |
37999 | +#: fortran/resolve.c:3134 | |
38000 | #, gcc-internal-format, gfc-internal-format | |
38001 | msgid "User defined non-ELEMENTAL function '%s' at %L not allowed in WORKSHARE construct" | |
38002 | msgstr "La función definida por el usuario '%s' que no es ELEMENTAL en %L no se permite en la construcción WORKSHARE" | |
38003 | ||
38004 | -#: fortran/resolve.c:3198 | |
38005 | +#: fortran/resolve.c:3184 | |
38006 | #, gcc-internal-format, gfc-internal-format | |
38007 | msgid "Reference to non-PURE function '%s' at %L inside a FORALL %s" | |
38008 | msgstr "La referencia a la función '%s' que no es PURE en %L está dentro de un FORALL %s" | |
38009 | ||
38010 | -#: fortran/resolve.c:3205 | |
38011 | +#: fortran/resolve.c:3191 | |
38012 | #, gcc-internal-format, gfc-internal-format | |
38013 | msgid "Reference to non-PURE function '%s' at %L inside a DO CONCURRENT %s" | |
38014 | msgstr "La referencia a la función '%s' que no es PURE en %L está dentro de un DO CONCURRENT %s" | |
38015 | ||
38016 | -#: fortran/resolve.c:3212 | |
38017 | +#: fortran/resolve.c:3198 | |
38018 | #, gcc-internal-format, gfc-internal-format | |
38019 | msgid "Function reference to '%s' at %L is to a non-PURE procedure within a PURE procedure" | |
38020 | msgstr "La referencia de función a '%s' en %L apunta a un procedimiento que no es PURE dentro de un procedimiento PURE" | |
38021 | ||
38022 | -#: fortran/resolve.c:3231 | |
38023 | +#: fortran/resolve.c:3217 | |
38024 | #, gcc-internal-format, gfc-internal-format | |
38025 | msgid "ENTRY '%s' at %L cannot be called recursively, as function '%s' is not RECURSIVE" | |
38026 | msgstr "ENTRY '%s' en %L no se puede llamar recursivamente, porque la función '%s' no es RECURSIVE" | |
38027 | ||
38028 | -#: fortran/resolve.c:3235 | |
38029 | +#: fortran/resolve.c:3221 | |
38030 | #, gcc-internal-format, gfc-internal-format | |
38031 | msgid "Function '%s' at %L cannot be called recursively, as it is not RECURSIVE" | |
38032 | msgstr "La función '%s' en %L no se puede llamar recursivamente, porque no es RECURSIVE" | |
38033 | ||
38034 | -#: fortran/resolve.c:3274 | |
38035 | +#: fortran/resolve.c:3260 | |
38036 | #, gcc-internal-format, gfc-internal-format | |
38037 | msgid "Subroutine call to '%s' in FORALL block at %L is not PURE" | |
38038 | msgstr "La llamada a subrutina a '%s' en el bloque FORALL en %L no es PURE" | |
38039 | ||
38040 | -#: fortran/resolve.c:3277 | |
38041 | +#: fortran/resolve.c:3263 | |
38042 | #, gcc-internal-format, gfc-internal-format | |
38043 | msgid "Subroutine call to '%s' in DO CONCURRENT block at %L is not PURE" | |
38044 | msgstr "La llamada a subrutina a '%s' en el bloque DO CONCURRENT en %L no es PURE" | |
38045 | ||
38046 | -#: fortran/resolve.c:3280 | |
38047 | +#: fortran/resolve.c:3266 | |
38048 | #, gcc-internal-format, gfc-internal-format | |
38049 | msgid "Subroutine call to '%s' at %L is not PURE" | |
38050 | msgstr "La llamada a subrutina a '%s' en %L no es PURE" | |
38051 | ||
38052 | -#: fortran/resolve.c:3346 | |
38053 | +#: fortran/resolve.c:3332 | |
38054 | #, gcc-internal-format, gfc-internal-format | |
38055 | msgid "There is no specific subroutine for the generic '%s' at %L" | |
38056 | msgstr "No hay una subrutina específica para el genérico '%s' en %L" | |
38057 | ||
38058 | -#: fortran/resolve.c:3355 | |
38059 | +#: fortran/resolve.c:3341 | |
38060 | #, gcc-internal-format, gfc-internal-format | |
38061 | msgid "Generic subroutine '%s' at %L is not consistent with an intrinsic subroutine interface" | |
38062 | msgstr "La subrutina genérica '%s' en %L no es consistente con una interfaz de subrutina intrínseca" | |
38063 | ||
38064 | -#: fortran/resolve.c:3463 | |
38065 | +#: fortran/resolve.c:3450 | |
38066 | #, gcc-internal-format, gfc-internal-format | |
38067 | msgid "Missing SHAPE parameter for call to %s at %L" | |
38068 | msgstr "Falta el parámetro SHAPE para la llamada a %s en %L" | |
38069 | ||
38070 | -#: fortran/resolve.c:3471 | |
38071 | +#: fortran/resolve.c:3458 | |
38072 | #, gcc-internal-format, gfc-internal-format | |
38073 | msgid "SHAPE parameter for call to %s at %L must be a rank 1 INTEGER array" | |
38074 | msgstr "El parámetro SHAPE para la llamada a %s en %L debe ser una matriz INTEGER de rango 1" | |
38075 | ||
38076 | -#: fortran/resolve.c:3538 | |
38077 | +#: fortran/resolve.c:3525 | |
38078 | #, gcc-internal-format, gfc-internal-format | |
38079 | msgid "Subroutine '%s' at %L is INTRINSIC but is not compatible with an intrinsic" | |
38080 | msgstr "La subrutina '%s' en %L es INTRINSIC pero no es compatible con un intrínseco" | |
38081 | ||
38082 | -#: fortran/resolve.c:3582 | |
38083 | +#: fortran/resolve.c:3569 | |
38084 | #, gcc-internal-format, gfc-internal-format | |
38085 | msgid "Unable to resolve the specific subroutine '%s' at %L" | |
38086 | msgstr "No se puede resolver la subrutina específica '%s' en %L" | |
38087 | ||
38088 | -#: fortran/resolve.c:3642 | |
38089 | +#: fortran/resolve.c:3629 | |
38090 | #, gcc-internal-format, gfc-internal-format | |
38091 | msgid "'%s' at %L has a type, which is not consistent with the CALL at %L" | |
38092 | msgstr "'%s' en %L tiene un tipo, el cual no es consistente con CALL en %L" | |
38093 | ||
38094 | -#: fortran/resolve.c:3680 | |
38095 | +#: fortran/resolve.c:3667 | |
38096 | #, gcc-internal-format, gfc-internal-format | |
38097 | msgid "ENTRY '%s' at %L cannot be called recursively, as subroutine '%s' is not RECURSIVE" | |
38098 | msgstr "ENTRY '%s' en %L no se puede llamar recursivamente, porque la subrutina '%s' no es RECURSIVE" | |
38099 | ||
38100 | -#: fortran/resolve.c:3684 | |
38101 | +#: fortran/resolve.c:3671 | |
38102 | #, gcc-internal-format, gfc-internal-format | |
38103 | msgid "SUBROUTINE '%s' at %L cannot be called recursively, as it is not RECURSIVE" | |
38104 | msgstr "SUBROUTINE '%s' en %L no se puede llamar recursivamente, porque no es RECURSIVE" | |
38105 | ||
38106 | -#: fortran/resolve.c:3760 | |
38107 | +#: fortran/resolve.c:3747 | |
38108 | #, gcc-internal-format, gfc-internal-format | |
38109 | msgid "Shapes for operands at %L and %L are not conformable" | |
38110 | msgstr "Las formas para los operandos en %L y %L no son conformables" | |
38111 | ||
38112 | -#: fortran/resolve.c:4258 | |
38113 | +#: fortran/resolve.c:4245 | |
38114 | #, gcc-internal-format, gfc-internal-format | |
38115 | msgid "Array reference at %L is out of bounds (%ld < %ld) in dimension %d" | |
38116 | msgstr "La referencia de matriz en %L está fuera de los límites (%ld < %ld) en la dimensión %d" | |
38117 | ||
38118 | -#: fortran/resolve.c:4263 | |
38119 | +#: fortran/resolve.c:4250 | |
38120 | #, gcc-internal-format, gfc-internal-format | |
38121 | msgid "Array reference at %L is out of bounds (%ld < %ld) in codimension %d" | |
38122 | msgstr "La referencia de matriz en %L está fuera de los límites (%ld < %ld) en la codimensión %d" | |
38123 | ||
38124 | -#: fortran/resolve.c:4273 | |
38125 | +#: fortran/resolve.c:4260 | |
38126 | #, gcc-internal-format, gfc-internal-format | |
38127 | msgid "Array reference at %L is out of bounds (%ld > %ld) in dimension %d" | |
38128 | msgstr "La referencia de matriz en %L está fuera de los límites (%ld > %ld) en la dimensión %d" | |
38129 | ||
38130 | -#: fortran/resolve.c:4278 | |
38131 | +#: fortran/resolve.c:4265 | |
38132 | #, gcc-internal-format, gfc-internal-format | |
38133 | msgid "Array reference at %L is out of bounds (%ld > %ld) in codimension %d" | |
38134 | msgstr "La referencia de matriz en %L está fuera de los límites (%ld > %ld) en la codimensión %d" | |
38135 | ||
38136 | -#: fortran/resolve.c:4298 | |
38137 | +#: fortran/resolve.c:4285 | |
38138 | #, gcc-internal-format, gfc-internal-format | |
38139 | msgid "Illegal stride of zero at %L" | |
38140 | msgstr "Tranco ilegal de cero en %L" | |
38141 | ||
38142 | -#: fortran/resolve.c:4315 | |
38143 | +#: fortran/resolve.c:4302 | |
38144 | #, gcc-internal-format, gfc-internal-format | |
38145 | msgid "Lower array reference at %L is out of bounds (%ld < %ld) in dimension %d" | |
38146 | msgstr "La referencia de matriz inferior en %L está fuera de los límites (%ld < %ld) en la dimensión %d" | |
38147 | ||
38148 | -#: fortran/resolve.c:4323 | |
38149 | +#: fortran/resolve.c:4310 | |
38150 | #, gcc-internal-format, gfc-internal-format | |
38151 | msgid "Lower array reference at %L is out of bounds (%ld > %ld) in dimension %d" | |
38152 | msgstr "La referencia de matriz inferior en %L está fuera de los límites (%ld > %ld) en la dimensión %d" | |
38153 | ||
38154 | -#: fortran/resolve.c:4339 | |
38155 | +#: fortran/resolve.c:4326 | |
38156 | #, gcc-internal-format, gfc-internal-format | |
38157 | msgid "Upper array reference at %L is out of bounds (%ld < %ld) in dimension %d" | |
38158 | msgstr "La referencia de matriz superior en %L está fuera de los límites (%ld < %ld) en la dimensión %d" | |
38159 | ||
38160 | -#: fortran/resolve.c:4348 | |
38161 | +#: fortran/resolve.c:4335 | |
38162 | #, gcc-internal-format, gfc-internal-format | |
38163 | msgid "Upper array reference at %L is out of bounds (%ld > %ld) in dimension %d" | |
38164 | msgstr "La referencia de matriz superior en %L está fuera de los límites (%ld > %ld) en la dimensión %d" | |
38165 | ||
38166 | -#: fortran/resolve.c:4387 | |
38167 | +#: fortran/resolve.c:4374 | |
38168 | #, gcc-internal-format, gfc-internal-format | |
38169 | msgid "Rightmost upper bound of assumed size array section not specified at %L" | |
38170 | msgstr "No se especificó el límite superior a la derecha de la sección de matriz de tamaño asumido en %L" | |
38171 | ||
38172 | -#: fortran/resolve.c:4397 | |
38173 | +#: fortran/resolve.c:4384 | |
38174 | #, gcc-internal-format, gfc-internal-format | |
38175 | msgid "Rank mismatch in array reference at %L (%d/%d)" | |
38176 | msgstr "El rango no coincide en la referencia de matriz en %L (%d/%d)" | |
38177 | ||
38178 | -#: fortran/resolve.c:4405 | |
38179 | +#: fortran/resolve.c:4392 | |
38180 | #, gcc-internal-format, gfc-internal-format | |
38181 | msgid "Coindex rank mismatch in array reference at %L (%d/%d)" | |
38182 | msgstr "El rango de coíndice no coincide en la referencia de matriz en %L (%d/%d)" | |
38183 | ||
38184 | -#: fortran/resolve.c:4421 | |
38185 | +#: fortran/resolve.c:4408 | |
38186 | #, gcc-internal-format, gfc-internal-format | |
38187 | msgid "Coindex of codimension %d must be a scalar at %L" | |
38188 | msgstr "El coíndice en la codimensión %d debe ser un escalar en %L" | |
38189 | ||
38190 | -#: fortran/resolve.c:4449 | |
38191 | +#: fortran/resolve.c:4436 | |
38192 | #, gcc-internal-format, gfc-internal-format | |
38193 | msgid "Array index at %L must be scalar" | |
38194 | msgstr "El índice de matriz en %L debe ser escalar" | |
38195 | ||
38196 | -#: fortran/resolve.c:4455 | |
38197 | +#: fortran/resolve.c:4442 | |
38198 | #, gcc-internal-format, gfc-internal-format | |
38199 | msgid "Array index at %L must be of INTEGER type, found %s" | |
38200 | msgstr "El índice de matriz en %L debe ser de tipo INTEGER, se encontró %s" | |
38201 | ||
38202 | -#: fortran/resolve.c:4461 | |
38203 | +#: fortran/resolve.c:4448 | |
38204 | #, gcc-internal-format, gfc-internal-format | |
38205 | msgid "Extension: REAL array index at %L" | |
38206 | msgstr "Extensión: índice de matriz REAL en %L" | |
38207 | ||
38208 | -#: fortran/resolve.c:4500 | |
38209 | +#: fortran/resolve.c:4487 | |
38210 | #, gcc-internal-format, gfc-internal-format | |
38211 | msgid "Argument dim at %L must be scalar" | |
38212 | msgstr "El argumento dim en %L debe ser escalar" | |
38213 | ||
38214 | -#: fortran/resolve.c:4507 | |
38215 | +#: fortran/resolve.c:4494 | |
38216 | #, gcc-internal-format, gfc-internal-format | |
38217 | msgid "Argument dim at %L must be of INTEGER type" | |
38218 | msgstr "El argumento dim en %L debe ser de tipo entero" | |
38219 | ||
38220 | -#: fortran/resolve.c:4617 | |
38221 | +#: fortran/resolve.c:4604 | |
38222 | #, gcc-internal-format, gfc-internal-format | |
38223 | msgid "Array index at %L is an array of rank %d" | |
38224 | msgstr "El índice de matriz en %L es una matriz de rango %d" | |
38225 | ||
38226 | -#: fortran/resolve.c:4715 | |
38227 | +#: fortran/resolve.c:4702 | |
38228 | #, gcc-internal-format, gfc-internal-format | |
38229 | msgid "Substring start index at %L must be of type INTEGER" | |
38230 | msgstr "El índice de inicio de la subcadena en %L debe ser de tipo INTEGER" | |
38231 | ||
38232 | -#: fortran/resolve.c:4722 | |
38233 | +#: fortran/resolve.c:4709 | |
38234 | #, gcc-internal-format, gfc-internal-format | |
38235 | msgid "Substring start index at %L must be scalar" | |
38236 | msgstr "El índice de inicio de la subcadena en %L debe ser escalar" | |
38237 | ||
38238 | -#: fortran/resolve.c:4731 | |
38239 | +#: fortran/resolve.c:4718 | |
38240 | #, gcc-internal-format, gfc-internal-format | |
38241 | msgid "Substring start index at %L is less than one" | |
38242 | msgstr "El índice de inicio de la subcadena en %L es menor a uno" | |
38243 | ||
38244 | -#: fortran/resolve.c:4744 | |
38245 | +#: fortran/resolve.c:4731 | |
38246 | #, gcc-internal-format, gfc-internal-format | |
38247 | msgid "Substring end index at %L must be of type INTEGER" | |
38248 | msgstr "El índice de final de la subcadena en %L debe ser de tipo INTEGER" | |
38249 | ||
38250 | -#: fortran/resolve.c:4751 | |
38251 | +#: fortran/resolve.c:4738 | |
38252 | #, gcc-internal-format, gfc-internal-format | |
38253 | msgid "Substring end index at %L must be scalar" | |
38254 | msgstr "El índice de final de la subcadena en %L debe ser escalar" | |
38255 | ||
38256 | -#: fortran/resolve.c:4761 | |
38257 | +#: fortran/resolve.c:4748 | |
38258 | #, gcc-internal-format, gfc-internal-format | |
38259 | msgid "Substring end index at %L exceeds the string length" | |
38260 | msgstr "El índice de final de la subcadena en %L excede la longitud de la cadena" | |
38261 | ||
38262 | -#: fortran/resolve.c:4771 | |
38263 | +#: fortran/resolve.c:4758 | |
38264 | #, gcc-internal-format, gfc-internal-format | |
38265 | msgid "Substring end index at %L is too large" | |
38266 | msgstr "El índice de final de la subcadena en %L es demasiado grande" | |
38267 | ||
38268 | -#: fortran/resolve.c:4917 | |
38269 | +#: fortran/resolve.c:4904 | |
38270 | #, gcc-internal-format, gfc-internal-format | |
38271 | msgid "Component to the right of a part reference with nonzero rank must not have the POINTER attribute at %L" | |
38272 | msgstr "El componente a la derecha de una referencia de parte con rango que no es cero no debe tener el atributo POINTER en %L" | |
38273 | ||
38274 | -#: fortran/resolve.c:4924 | |
38275 | +#: fortran/resolve.c:4911 | |
38276 | #, gcc-internal-format, gfc-internal-format | |
38277 | msgid "Component to the right of a part reference with nonzero rank must not have the ALLOCATABLE attribute at %L" | |
38278 | msgstr "El componente a la derecha de una referencia de parte con rango que no es cero no debe tener el atributo ALLOCATABLE en %L" | |
38279 | ||
38280 | -#: fortran/resolve.c:4943 | |
38281 | +#: fortran/resolve.c:4930 | |
38282 | #, gcc-internal-format, gfc-internal-format | |
38283 | msgid "Two or more part references with nonzero rank must not be specified at %L" | |
38284 | msgstr "No se deben especificar dos o más referencias de parte con rango que no es cero en %L" | |
38285 | ||
38286 | -#: fortran/resolve.c:5148 | |
38287 | +#: fortran/resolve.c:5135 | |
38288 | #, gcc-internal-format, gfc-internal-format | |
38289 | msgid "Variable '%s', used in a specification expression, is referenced at %L before the ENTRY statement in which it is a parameter" | |
38290 | msgstr "La variable '%s', usada en una expresión de especificación, se referencía en %L antes de la declaración ENTRY en la cual es un parámetro" | |
38291 | ||
38292 | -#: fortran/resolve.c:5153 | |
38293 | +#: fortran/resolve.c:5140 | |
38294 | #, gcc-internal-format, gfc-internal-format | |
38295 | msgid "Variable '%s' is used at %L before the ENTRY statement in which it is a parameter" | |
38296 | msgstr "La variable '%s' se usa en %L antes de la declaración ENTRY en la cual es un parámetro" | |
38297 | ||
38298 | -#: fortran/resolve.c:5217 | |
38299 | +#: fortran/resolve.c:5204 | |
38300 | #, gcc-internal-format, gfc-internal-format | |
38301 | msgid "Polymorphic subobject of coindexed object at %L" | |
38302 | msgstr "Subobjecto polimórfico de un objeto coindizado en %L" | |
38303 | ||
38304 | -#: fortran/resolve.c:5230 | |
38305 | +#: fortran/resolve.c:5217 | |
38306 | #, gcc-internal-format, gfc-internal-format | |
38307 | msgid "Coindexed object with polymorphic allocatable subcomponent at %L" | |
38308 | msgstr "Objeto coindizado con subcomponente alojable polimórfico en %L" | |
38309 | ||
38310 | -#: fortran/resolve.c:5556 | |
38311 | +#: fortran/resolve.c:5543 | |
38312 | #, gcc-internal-format, gfc-internal-format | |
38313 | msgid "Passed-object at %L must be scalar" | |
38314 | msgstr "El objeto pasado en %L debe ser escalar" | |
38315 | ||
38316 | -#: fortran/resolve.c:5563 | |
38317 | +#: fortran/resolve.c:5550 | |
38318 | #, gcc-internal-format, gfc-internal-format | |
38319 | msgid "Base object for procedure-pointer component call at %L is of ABSTRACT type '%s'" | |
38320 | msgstr "El objeto base para la llamada a componente procedimiento-puntero en %L es de tipo ABSTRACT '%s'" | |
38321 | ||
38322 | -#: fortran/resolve.c:5595 | |
38323 | +#: fortran/resolve.c:5582 | |
38324 | #, gcc-internal-format, gfc-internal-format | |
38325 | msgid "Base object for type-bound procedure call at %L is of ABSTRACT type '%s'" | |
38326 | msgstr "El objeto base para la llamada a procedimiento enlazada a tipo en %L es de tipo ABSTRACT '%s'" | |
38327 | ||
38328 | -#: fortran/resolve.c:5604 | |
38329 | +#: fortran/resolve.c:5591 | |
38330 | #, gcc-internal-format, gfc-internal-format | |
38331 | msgid "Base object for NOPASS type-bound procedure call at %L must be scalar" | |
38332 | msgstr "El objeto base para la llamada a procedimiento enlazada a tipo NOPASS en %L debe ser escalar" | |
38333 | ||
38334 | #. Nothing matching found! | |
38335 | -#: fortran/resolve.c:5789 | |
38336 | +#: fortran/resolve.c:5776 | |
38337 | #, gcc-internal-format, gfc-internal-format | |
38338 | msgid "Found no matching specific binding for the call to the GENERIC '%s' at %L" | |
38339 | msgstr "No se encontró un enlace específico coincidente para la llamada al GENERIC '%s' en %L" | |
38340 | ||
38341 | -#: fortran/resolve.c:5816 | |
38342 | +#: fortran/resolve.c:5803 | |
38343 | #, gcc-internal-format, gfc-internal-format | |
38344 | msgid "'%s' at %L should be a SUBROUTINE" | |
38345 | msgstr "'%s' en %L debe ser una SUBROUTINE" | |
38346 | ||
38347 | -#: fortran/resolve.c:5863 | |
38348 | +#: fortran/resolve.c:5850 | |
38349 | #, gcc-internal-format, gfc-internal-format | |
38350 | msgid "'%s' at %L should be a FUNCTION" | |
38351 | msgstr "'%s' en %L debe ser una FUNCTION" | |
38352 | ||
38353 | -#: fortran/resolve.c:6380 | |
38354 | +#: fortran/resolve.c:6367 | |
38355 | #, gcc-internal-format, gfc-internal-format | |
38356 | msgid "%s at %L must be a scalar" | |
38357 | msgstr "%s en %L debe ser un escalar" | |
38358 | ||
38359 | -#: fortran/resolve.c:6390 | |
38360 | +#: fortran/resolve.c:6377 | |
38361 | #, gcc-internal-format, gfc-internal-format | |
38362 | msgid "Deleted feature: %s at %L must be integer" | |
38363 | msgstr "Característica eliminada: %s en %L debe ser entero" | |
38364 | ||
38365 | -#: fortran/resolve.c:6394 fortran/resolve.c:6401 | |
38366 | +#: fortran/resolve.c:6381 fortran/resolve.c:6388 | |
38367 | #, gcc-internal-format, gfc-internal-format | |
38368 | msgid "%s at %L must be INTEGER" | |
38369 | msgstr "%s en %L debe ser INTEGER" | |
38370 | ||
38371 | -#: fortran/resolve.c:6442 | |
38372 | +#: fortran/resolve.c:6429 | |
38373 | #, gcc-internal-format, gfc-internal-format | |
38374 | msgid "Step expression in DO loop at %L cannot be zero" | |
38375 | msgstr "La expresión de paso en el bucle DO en %L no puede ser cero" | |
38376 | ||
38377 | -#: fortran/resolve.c:6477 | |
38378 | +#: fortran/resolve.c:6464 | |
38379 | #, gcc-internal-format, gfc-internal-format | |
38380 | msgid "DO loop at %L will be executed zero times" | |
38381 | msgstr "El bucle DO en %L se ejecutará cero veces" | |
38382 | ||
38383 | -#: fortran/resolve.c:6538 | |
38384 | +#: fortran/resolve.c:6525 | |
38385 | #, gcc-internal-format, gfc-internal-format | |
38386 | msgid "FORALL index-name at %L must be a scalar INTEGER" | |
38387 | msgstr "El nombre de índice FORALL en %L debe ser un INTEGER escalar" | |
38388 | ||
38389 | -#: fortran/resolve.c:6543 | |
38390 | +#: fortran/resolve.c:6530 | |
38391 | #, gcc-internal-format, gfc-internal-format | |
38392 | msgid "FORALL start expression at %L must be a scalar INTEGER" | |
38393 | msgstr "La expresión de inicio FORALL en %L debe ser un INTEGER escalar" | |
38394 | ||
38395 | -#: fortran/resolve.c:6550 | |
38396 | +#: fortran/resolve.c:6537 | |
38397 | #, gcc-internal-format, gfc-internal-format | |
38398 | msgid "FORALL end expression at %L must be a scalar INTEGER" | |
38399 | msgstr "La expresión de fin FORALL en %L debe ser un INTEGER escalar" | |
38400 | ||
38401 | -#: fortran/resolve.c:6558 | |
38402 | +#: fortran/resolve.c:6545 | |
38403 | #, gcc-internal-format, gfc-internal-format | |
38404 | msgid "FORALL stride expression at %L must be a scalar %s" | |
38405 | msgstr "La expresión de tranco FORALL en %L debe ser un %s escalar" | |
38406 | ||
38407 | -#: fortran/resolve.c:6563 | |
38408 | +#: fortran/resolve.c:6550 | |
38409 | #, gcc-internal-format, gfc-internal-format | |
38410 | msgid "FORALL stride expression at %L cannot be zero" | |
38411 | msgstr "La expresión de tranco FORALL en %L no puede ser cero" | |
38412 | ||
38413 | -#: fortran/resolve.c:6579 | |
38414 | +#: fortran/resolve.c:6566 | |
38415 | #, gcc-internal-format, gfc-internal-format | |
38416 | msgid "FORALL index '%s' may not appear in triplet specification at %L" | |
38417 | msgstr "El índice FORALL '%s' no puede aparecer en la especificación triplet en %L" | |
38418 | ||
38419 | -#: fortran/resolve.c:6675 fortran/resolve.c:6958 | |
38420 | +#: fortran/resolve.c:6662 fortran/resolve.c:6945 | |
38421 | #, gcc-internal-format, gfc-internal-format | |
38422 | msgid "Allocate-object at %L must be ALLOCATABLE or a POINTER" | |
38423 | msgstr "El objeto de alojamiento en %L debe ser ALLOCATABLE o un POINTER" | |
38424 | ||
38425 | -#: fortran/resolve.c:6683 fortran/resolve.c:6924 | |
38426 | +#: fortran/resolve.c:6670 fortran/resolve.c:6911 | |
38427 | #, gcc-internal-format, gfc-internal-format | |
38428 | msgid "Coindexed allocatable object at %L" | |
38429 | msgstr "Objeto alojable coindizado en %L" | |
38430 | ||
38431 | -#: fortran/resolve.c:6788 | |
38432 | +#: fortran/resolve.c:6775 | |
38433 | #, gcc-internal-format, gfc-internal-format | |
38434 | msgid "Source-expr at %L must be scalar or have the same rank as the allocate-object at %L" | |
38435 | msgstr "La expresión fuente en %L debe ser escalar o tener el mismo rango que el objeto de alojamiento en %L" | |
38436 | ||
38437 | -#: fortran/resolve.c:6816 | |
38438 | +#: fortran/resolve.c:6803 | |
38439 | #, gcc-internal-format, gfc-internal-format | |
38440 | msgid "Source-expr at %L and allocate-object at %L must have the same shape" | |
38441 | msgstr "La expresión fuente en %L y el objeto de alojamiento en %L deben tener la misma forma" | |
38442 | ||
38443 | -#: fortran/resolve.c:6969 | |
38444 | +#: fortran/resolve.c:6956 | |
38445 | #, gcc-internal-format, gfc-internal-format | |
38446 | msgid "Type of entity at %L is type incompatible with source-expr at %L" | |
38447 | msgstr "El tipo de entidad en %L es de tipo incompatible con la expresión fuente en %L" | |
38448 | ||
38449 | -#: fortran/resolve.c:6982 | |
38450 | +#: fortran/resolve.c:6969 | |
38451 | #, gcc-internal-format, gfc-internal-format | |
38452 | msgid "The allocate-object at %L and the source-expr at %L shall have the same kind type parameter" | |
38453 | msgstr "El objeto de alojamiento en %L y la expresión fuente en %L deben tener el mismo parámetro de tipo de género" | |
38454 | ||
38455 | -#: fortran/resolve.c:6996 | |
38456 | +#: fortran/resolve.c:6983 | |
38457 | #, gcc-internal-format, gfc-internal-format | |
38458 | msgid "The source-expr at %L shall neither be of type LOCK_TYPE nor have a LOCK_TYPE component if allocate-object at %L is a coarray" | |
38459 | msgstr "La expresión fuente en %L no puede ser de tipo LOCK_TYPE ni tener un componente LOCK_TYPE si el objeto-alojado en %L es una comatriz" | |
38460 | ||
38461 | -#: fortran/resolve.c:7009 | |
38462 | +#: fortran/resolve.c:6996 | |
38463 | #, gcc-internal-format, gfc-internal-format | |
38464 | msgid "Allocating %s of ABSTRACT base type at %L requires a type-spec or source-expr" | |
38465 | msgstr "El alojamiento %s del tipo de base ABSTRACT en %L requiere una especificación de tipo o una expresión source" | |
38466 | ||
38467 | -#: fortran/resolve.c:7020 | |
38468 | +#: fortran/resolve.c:7007 | |
38469 | #, gcc-internal-format, gfc-internal-format | |
38470 | msgid "Allocating %s at %L with type-spec requires the same character-length parameter as in the declaration" | |
38471 | msgstr "Alojar %s en %L con especificación de tipo requiere el mismo parámetro de longitud de carácter que el de la declaración" | |
38472 | ||
38473 | -#: fortran/resolve.c:7105 | |
38474 | +#: fortran/resolve.c:7092 | |
38475 | #, gcc-internal-format, gfc-internal-format | |
38476 | msgid "Array specification required in ALLOCATE statement at %L" | |
38477 | msgstr "Se requiere una especificación de matriz en la declaración ALLOCATE en %L" | |
38478 | ||
38479 | -#: fortran/resolve.c:7119 | |
38480 | +#: fortran/resolve.c:7106 | |
38481 | #, gcc-internal-format, gfc-internal-format | |
38482 | msgid "Coarray specification required in ALLOCATE statement at %L" | |
38483 | msgstr "Se requiere una especificación de comatriz en la declaración ALLOCATE en %L" | |
38484 | ||
38485 | -#: fortran/resolve.c:7146 | |
38486 | +#: fortran/resolve.c:7133 | |
38487 | #, gcc-internal-format, gfc-internal-format | |
38488 | msgid "Bad array specification in ALLOCATE statement at %L" | |
38489 | msgstr "Especificación de matriz errónea en la declaración ALLOCATE en %L" | |
38490 | ||
38491 | -#: fortran/resolve.c:7165 | |
38492 | +#: fortran/resolve.c:7152 | |
38493 | #, gcc-internal-format, gfc-internal-format | |
38494 | msgid "'%s' must not appear in the array specification at %L in the same ALLOCATE statement where it is itself allocated" | |
38495 | msgstr "'%s' no debe aparecer en la especificación de matriz en %L en la misma declaración ALLOCATE donde se aloja a sí misma" | |
38496 | ||
38497 | -#: fortran/resolve.c:7180 | |
38498 | +#: fortran/resolve.c:7167 | |
38499 | #, gcc-internal-format, gfc-internal-format | |
38500 | msgid "Expected '*' in coindex specification in ALLOCATE statement at %L" | |
38501 | msgstr "Se esperaba '*' en la especificación de comatriz en la declaración ALLOCATE en %L" | |
38502 | ||
38503 | -#: fortran/resolve.c:7191 | |
38504 | +#: fortran/resolve.c:7178 | |
38505 | #, gcc-internal-format, gfc-internal-format | |
38506 | msgid "Bad coarray specification in ALLOCATE statement at %L" | |
38507 | msgstr "Especificación de comatriz errónea en la declaración ALLOCATE en %L" | |
38508 | ||
38509 | -#: fortran/resolve.c:7221 | |
38510 | +#: fortran/resolve.c:7208 | |
38511 | #, gcc-internal-format, gfc-internal-format | |
38512 | msgid "Stat-variable at %L must be a scalar INTEGER variable" | |
38513 | msgstr "La variable stat en %L debe ser una variable INTEGER escalar" | |
38514 | ||
38515 | -#: fortran/resolve.c:7244 | |
38516 | +#: fortran/resolve.c:7231 | |
38517 | #, gcc-internal-format, gfc-internal-format | |
38518 | msgid "Stat-variable at %L shall not be %sd within the same %s statement" | |
38519 | msgstr "La variable stat en %L no no debe ser %sd dentro de la misma declaración %s" | |
38520 | ||
38521 | -#: fortran/resolve.c:7255 | |
38522 | +#: fortran/resolve.c:7242 | |
38523 | #, gcc-internal-format, gfc-internal-format | |
38524 | msgid "ERRMSG at %L is useless without a STAT tag" | |
38525 | msgstr "ERRMSG en %L es inútil sin una etiqueta STAT" | |
38526 | ||
38527 | -#: fortran/resolve.c:7265 | |
38528 | +#: fortran/resolve.c:7252 | |
38529 | #, gcc-internal-format, gfc-internal-format | |
38530 | msgid "Errmsg-variable at %L must be a scalar CHARACTER variable" | |
38531 | msgstr "La variable errmsg en %L debe ser una variable CHARACTER escalar" | |
38532 | ||
38533 | -#: fortran/resolve.c:7288 | |
38534 | +#: fortran/resolve.c:7275 | |
38535 | #, gcc-internal-format, gfc-internal-format | |
38536 | msgid "Errmsg-variable at %L shall not be %sd within the same %s statement" | |
38537 | msgstr "La variable errmsg en %L no debe ser %sd dentro de la misma declaración %s" | |
38538 | ||
38539 | -#: fortran/resolve.c:7318 | |
38540 | +#: fortran/resolve.c:7305 | |
38541 | #, gcc-internal-format, gfc-internal-format | |
38542 | msgid "Allocate-object at %L also appears at %L" | |
38543 | msgstr "El objeto de alojamiento en %L también aparece en %L" | |
38544 | ||
38545 | -#: fortran/resolve.c:7324 fortran/resolve.c:7330 | |
38546 | +#: fortran/resolve.c:7311 fortran/resolve.c:7317 | |
38547 | #, gcc-internal-format, gfc-internal-format | |
38548 | msgid "Allocate-object at %L is subobject of object at %L" | |
38549 | msgstr "El objeto de alojamiento en %L es un subobjeto del objeto en %L" | |
38550 | @@ -41460,175 +41666,175 @@ | |
38551 | #. element in the list. Either way, we must | |
38552 | #. issue an error and get the next case from P. | |
38553 | #. FIXME: Sort P and Q by line number. | |
38554 | -#: fortran/resolve.c:7525 | |
38555 | +#: fortran/resolve.c:7512 | |
38556 | #, gcc-internal-format, gfc-internal-format | |
38557 | msgid "CASE label at %L overlaps with CASE label at %L" | |
38558 | msgstr "La etiqueta CASE en %L se encima con la etiqueta CASE en %L" | |
38559 | ||
38560 | -#: fortran/resolve.c:7576 | |
38561 | +#: fortran/resolve.c:7563 | |
38562 | #, gcc-internal-format, gfc-internal-format | |
38563 | msgid "Expression in CASE statement at %L must be of type %s" | |
38564 | msgstr "La expresión en la declaración CASE en %L debe ser de tipo %s" | |
38565 | ||
38566 | -#: fortran/resolve.c:7587 | |
38567 | +#: fortran/resolve.c:7574 | |
38568 | #, gcc-internal-format, gfc-internal-format | |
38569 | msgid "Expression in CASE statement at %L must be of kind %d" | |
38570 | msgstr "La expresión en la declaración CASE en %L debe ser de género %d" | |
38571 | ||
38572 | -#: fortran/resolve.c:7600 | |
38573 | +#: fortran/resolve.c:7587 | |
38574 | #, gcc-internal-format, gfc-internal-format | |
38575 | msgid "Expression in CASE statement at %L must be scalar" | |
38576 | msgstr "La expresión en la declaración CASE en %L debe ser escalar" | |
38577 | ||
38578 | -#: fortran/resolve.c:7646 | |
38579 | +#: fortran/resolve.c:7633 | |
38580 | #, gcc-internal-format, gfc-internal-format | |
38581 | msgid "Selection expression in computed GOTO statement at %L must be a scalar integer expression" | |
38582 | msgstr "La expresión de selección en una declaración GOTO computada en %L debe ser una expresión entera escalar" | |
38583 | ||
38584 | -#: fortran/resolve.c:7664 | |
38585 | +#: fortran/resolve.c:7651 | |
38586 | #, gcc-internal-format, gfc-internal-format | |
38587 | msgid "Argument of SELECT statement at %L cannot be %s" | |
38588 | msgstr "El argumento de la declaración SELECT en %L no puede ser %s" | |
38589 | ||
38590 | -#: fortran/resolve.c:7682 fortran/resolve.c:7690 | |
38591 | +#: fortran/resolve.c:7669 fortran/resolve.c:7677 | |
38592 | #, gcc-internal-format, gfc-internal-format | |
38593 | msgid "Expression in CASE statement at %L is not in the range of %s" | |
38594 | msgstr "La expresión en la declaración CASE en %L no está en el rango de %s" | |
38595 | ||
38596 | -#: fortran/resolve.c:7752 fortran/resolve.c:8062 | |
38597 | +#: fortran/resolve.c:7739 fortran/resolve.c:8049 | |
38598 | #, gcc-internal-format, gfc-internal-format | |
38599 | msgid "The DEFAULT CASE at %L cannot be followed by a second DEFAULT CASE at %L" | |
38600 | msgstr "El DEFAULT CASE en %L no puede tener después un segundo DEFAULT CASE en %L" | |
38601 | ||
38602 | -#: fortran/resolve.c:7778 | |
38603 | +#: fortran/resolve.c:7765 | |
38604 | #, gcc-internal-format, gfc-internal-format | |
38605 | msgid "Logical range in CASE statement at %L is not allowed" | |
38606 | msgstr "No se permite un rango lógico en una declaración CASE en %L" | |
38607 | ||
38608 | -#: fortran/resolve.c:7790 | |
38609 | +#: fortran/resolve.c:7777 | |
38610 | #, gcc-internal-format, gfc-internal-format | |
38611 | msgid "Constant logical value in CASE statement is repeated at %L" | |
38612 | msgstr "Se repite un valor lógico constante en una declaración CASE en %L" | |
38613 | ||
38614 | -#: fortran/resolve.c:7804 | |
38615 | +#: fortran/resolve.c:7791 | |
38616 | #, gcc-internal-format, gfc-internal-format | |
38617 | msgid "Range specification at %L can never be matched" | |
38618 | msgstr "La especificación de rango en %L nunca puede coincidir" | |
38619 | ||
38620 | -#: fortran/resolve.c:7907 | |
38621 | +#: fortran/resolve.c:7894 | |
38622 | #, gcc-internal-format, gfc-internal-format | |
38623 | msgid "Logical SELECT CASE block at %L has more that two cases" | |
38624 | msgstr "El bloque SELECT CASE lógico en %L tiene más de dos cases" | |
38625 | ||
38626 | -#: fortran/resolve.c:7972 | |
38627 | +#: fortran/resolve.c:7959 | |
38628 | #, gcc-internal-format, gfc-internal-format | |
38629 | msgid "Associate-name '%s' at %L is used as array" | |
38630 | msgstr "Se usa el nombre asociado '%s' en %L como una matriz" | |
38631 | ||
38632 | -#: fortran/resolve.c:8014 | |
38633 | +#: fortran/resolve.c:8001 | |
38634 | #, gcc-internal-format, gfc-internal-format | |
38635 | msgid "Selector shall be polymorphic in SELECT TYPE statement at %L" | |
38636 | msgstr "El selector debe ser polimórfico en la declaración SELECT TYPE en %L" | |
38637 | ||
38638 | -#: fortran/resolve.c:8040 | |
38639 | +#: fortran/resolve.c:8027 | |
38640 | #, gcc-internal-format, gfc-internal-format | |
38641 | msgid "Derived type '%s' at %L must be extensible" | |
38642 | msgstr "El tipo derivado '%s' en %L debe ser extensible" | |
38643 | ||
38644 | -#: fortran/resolve.c:8050 | |
38645 | +#: fortran/resolve.c:8037 | |
38646 | #, gcc-internal-format, gfc-internal-format | |
38647 | msgid "Derived type '%s' at %L must be an extension of '%s'" | |
38648 | msgstr "El tipo derivado '%s' en %L debe ser una extensión de '%s'" | |
38649 | ||
38650 | -#: fortran/resolve.c:8222 | |
38651 | +#: fortran/resolve.c:8209 | |
38652 | #, gcc-internal-format, gfc-internal-format | |
38653 | msgid "Double CLASS IS block in SELECT TYPE statement at %L" | |
38654 | msgstr "Bloque CLASS IS doble en la declaración SELECT TYPE en %L" | |
38655 | ||
38656 | -#: fortran/resolve.c:8313 | |
38657 | +#: fortran/resolve.c:8300 | |
38658 | #, gcc-internal-format, gfc-internal-format | |
38659 | msgid "NULL intrinsic at %L in data transfer statement requires MOLD=" | |
38660 | msgstr "El NULL intrínseco en %L en la declaración de transferencia de datos requiere MOLD=" | |
38661 | ||
38662 | #. FIXME: Test for defined input/output. | |
38663 | -#: fortran/resolve.c:8341 | |
38664 | +#: fortran/resolve.c:8328 | |
38665 | #, gcc-internal-format, gfc-internal-format | |
38666 | msgid "Data transfer element at %L cannot be polymorphic unless it is processed by a defined input/output procedure" | |
38667 | msgstr "El elemento de transferencia de datos en %L no puede ser polimórfico a menos que se procese con un procedimiento de entrada/salida definido" | |
38668 | ||
38669 | -#: fortran/resolve.c:8353 | |
38670 | +#: fortran/resolve.c:8340 | |
38671 | #, gcc-internal-format, gfc-internal-format | |
38672 | msgid "Data transfer element at %L cannot have POINTER components unless it is processed by a defined input/output procedure" | |
38673 | msgstr "El elemento de transferencia de datos en %L no puede tener componentes POINTER a menos que se procese con un procedimiento de entrada/salida definido" | |
38674 | ||
38675 | -#: fortran/resolve.c:8362 | |
38676 | +#: fortran/resolve.c:8349 | |
38677 | #, gcc-internal-format, gfc-internal-format | |
38678 | msgid "Data transfer element at %L cannot have procedure pointer components" | |
38679 | msgstr "El elemento de transferencia de datos en %L no puede tener componentes de puntero a procedimiento" | |
38680 | ||
38681 | -#: fortran/resolve.c:8369 | |
38682 | +#: fortran/resolve.c:8356 | |
38683 | #, gcc-internal-format, gfc-internal-format | |
38684 | msgid "Data transfer element at %L cannot have ALLOCATABLE components unless it is processed by a defined input/output procedure" | |
38685 | msgstr "El elemento de transferencia de datos en %L no puede tener componentes ALLOCATABLE a menos que se procese con un procedimiento de entrada/salida definido" | |
38686 | ||
38687 | -#: fortran/resolve.c:8377 | |
38688 | +#: fortran/resolve.c:8364 | |
38689 | #, gcc-internal-format, gfc-internal-format | |
38690 | msgid "Data transfer element at %L cannot have PRIVATE components" | |
38691 | msgstr "El elemento de transferencia de datos en %L no puede tener componentes PRIVATE" | |
38692 | ||
38693 | -#: fortran/resolve.c:8386 | |
38694 | +#: fortran/resolve.c:8373 | |
38695 | #, gcc-internal-format, gfc-internal-format | |
38696 | msgid "Data transfer element at %L cannot be a full reference to an assumed-size array" | |
38697 | msgstr "El elemento de transferencia de datos en %L no puede ser una referencia completa a una matriz de tamaño asumido" | |
38698 | ||
38699 | -#: fortran/resolve.c:8436 | |
38700 | +#: fortran/resolve.c:8423 | |
38701 | #, gcc-internal-format, gfc-internal-format | |
38702 | msgid "Lock variable at %L must be a scalar of type LOCK_TYPE" | |
38703 | msgstr "La variable lock en %L debe ser un escalar de tipo LOCK_TYPE" | |
38704 | ||
38705 | -#: fortran/resolve.c:8443 fortran/resolve.c:8507 | |
38706 | +#: fortran/resolve.c:8430 fortran/resolve.c:8494 | |
38707 | #, gcc-internal-format, gfc-internal-format | |
38708 | msgid "STAT= argument at %L must be a scalar INTEGER variable" | |
38709 | msgstr "El argumento STAT= en %L debe ser una variable INTEGER escalar" | |
38710 | ||
38711 | -#: fortran/resolve.c:8455 fortran/resolve.c:8514 | |
38712 | +#: fortran/resolve.c:8442 fortran/resolve.c:8501 | |
38713 | #, gcc-internal-format, gfc-internal-format | |
38714 | msgid "ERRMSG= argument at %L must be a scalar CHARACTER variable" | |
38715 | msgstr "El argumento ERRMSG= en %L debe ser una variable CHARACTER escalar" | |
38716 | ||
38717 | -#: fortran/resolve.c:8467 | |
38718 | +#: fortran/resolve.c:8454 | |
38719 | #, gcc-internal-format, gfc-internal-format | |
38720 | msgid "ACQUIRED_LOCK= argument at %L must be a scalar LOGICAL variable" | |
38721 | msgstr "El argumento ACQUIRED_LOCK= en %L debe ser una variable LOGICAL escalar" | |
38722 | ||
38723 | -#: fortran/resolve.c:8484 | |
38724 | +#: fortran/resolve.c:8471 | |
38725 | #, gcc-internal-format, gfc-internal-format | |
38726 | msgid "Imageset argument at %L must be a scalar or rank-1 INTEGER expression" | |
38727 | msgstr "El argumento de conjunto de imagen %L debe ser un escalar o una expresión INTEGER de rango 1" | |
38728 | ||
38729 | -#: fortran/resolve.c:8488 fortran/resolve.c:8498 | |
38730 | +#: fortran/resolve.c:8475 fortran/resolve.c:8485 | |
38731 | #, gcc-internal-format, gfc-internal-format | |
38732 | msgid "Imageset argument at %L must between 1 and num_images()" | |
38733 | msgstr "El argumento de conjunto de imagen en %L debe estar entre 1 y num_images()" | |
38734 | ||
38735 | -#: fortran/resolve.c:8541 | |
38736 | +#: fortran/resolve.c:8528 | |
38737 | #, gcc-internal-format, gfc-internal-format | |
38738 | msgid "Statement at %L is not a valid branch target statement for the branch statement at %L" | |
38739 | msgstr "La declaración en %L no es una declaración de objetivo de ramificación válida para la declaración de ramificación en %L" | |
38740 | ||
38741 | -#: fortran/resolve.c:8550 | |
38742 | +#: fortran/resolve.c:8537 | |
38743 | #, gcc-internal-format, gfc-internal-format | |
38744 | msgid "Branch at %L may result in an infinite loop" | |
38745 | msgstr "La ramificación en %L puede resultar en un bucle infinito" | |
38746 | ||
38747 | #. Note: A label at END CRITICAL does not leave the CRITICAL | |
38748 | #. construct as END CRITICAL is still part of it. | |
38749 | -#: fortran/resolve.c:8567 fortran/resolve.c:8590 | |
38750 | +#: fortran/resolve.c:8554 fortran/resolve.c:8577 | |
38751 | #, gcc-internal-format, gfc-internal-format | |
38752 | msgid "GOTO statement at %L leaves CRITICAL construct for label at %L" | |
38753 | msgstr "La declaración GOTO en %L deja la construcción CRITICAL por la etiqueta en %L" | |
38754 | ||
38755 | -#: fortran/resolve.c:8571 fortran/resolve.c:8596 | |
38756 | +#: fortran/resolve.c:8558 fortran/resolve.c:8583 | |
38757 | #, gcc-internal-format, gfc-internal-format | |
38758 | msgid "GOTO statement at %L leaves DO CONCURRENT construct for label at %L" | |
38759 | msgstr "La declaración GOTO en %L deja la construcción DO CONCURRENT por la etiqueta en %L" | |
38760 | @@ -41636,950 +41842,950 @@ | |
38761 | #. The label is not in an enclosing block, so illegal. This was | |
38762 | #. allowed in Fortran 66, so we allow it as extension. No | |
38763 | #. further checks are necessary in this case. | |
38764 | -#: fortran/resolve.c:8611 | |
38765 | +#: fortran/resolve.c:8598 | |
38766 | #, gcc-internal-format, gfc-internal-format | |
38767 | msgid "Label at %L is not in the same block as the GOTO statement at %L" | |
38768 | msgstr "La etiqueta en %L no está en el mismo bloque que la declaración GOTO en %L" | |
38769 | ||
38770 | -#: fortran/resolve.c:8683 | |
38771 | +#: fortran/resolve.c:8670 | |
38772 | #, gcc-internal-format, gfc-internal-format | |
38773 | msgid "WHERE mask at %L has inconsistent shape" | |
38774 | msgstr "La máscara WHERE en %L tiene forma inconsistente" | |
38775 | ||
38776 | -#: fortran/resolve.c:8699 | |
38777 | +#: fortran/resolve.c:8686 | |
38778 | #, gcc-internal-format, gfc-internal-format | |
38779 | msgid "WHERE assignment target at %L has inconsistent shape" | |
38780 | msgstr "El objetivo de asignación WHERE en %L tiene forma inconsistente" | |
38781 | ||
38782 | -#: fortran/resolve.c:8707 fortran/resolve.c:8794 | |
38783 | +#: fortran/resolve.c:8694 fortran/resolve.c:8781 | |
38784 | #, gcc-internal-format, gfc-internal-format | |
38785 | msgid "Non-ELEMENTAL user-defined assignment in WHERE at %L" | |
38786 | msgstr "Asignación definida por el usuario de un no-ELEMENTAL en WHERE en %L" | |
38787 | ||
38788 | -#: fortran/resolve.c:8717 fortran/resolve.c:8804 | |
38789 | +#: fortran/resolve.c:8704 fortran/resolve.c:8791 | |
38790 | #, gcc-internal-format, gfc-internal-format | |
38791 | msgid "Unsupported statement inside WHERE at %L" | |
38792 | msgstr "Declaración sin soporte dentro de WHERE en %L" | |
38793 | ||
38794 | -#: fortran/resolve.c:8748 | |
38795 | +#: fortran/resolve.c:8735 | |
38796 | #, gcc-internal-format, gfc-internal-format | |
38797 | msgid "Assignment to a FORALL index variable at %L" | |
38798 | msgstr "Asignación a una variable de índice FORALL en %L" | |
38799 | ||
38800 | -#: fortran/resolve.c:8757 | |
38801 | +#: fortran/resolve.c:8744 | |
38802 | #, gcc-internal-format, gfc-internal-format | |
38803 | msgid "The FORALL with index '%s' is not used on the left side of the assignment at %L and so might cause multiple assignment to this object" | |
38804 | msgstr "No se usa el FORALL con índice '%s' en el lado izquierdo de la asignación en %L y podría causar múltiples asignaciones a este objeto" | |
38805 | ||
38806 | -#: fortran/resolve.c:8926 | |
38807 | +#: fortran/resolve.c:8913 | |
38808 | #, gcc-internal-format, gfc-internal-format | |
38809 | msgid "An outer FORALL construct already has an index with this name %L" | |
38810 | msgstr "Una construcción FORALL externa ya tiene un índice con este nombre %L" | |
38811 | ||
38812 | -#: fortran/resolve.c:9006 | |
38813 | +#: fortran/resolve.c:8993 | |
38814 | #, gcc-internal-format, gfc-internal-format | |
38815 | msgid "WHERE/ELSEWHERE clause at %L requires a LOGICAL array" | |
38816 | msgstr "la cláusula WHERE/ELSEWHERE en %L requiere una matriz LOGICAL" | |
38817 | ||
38818 | -#: fortran/resolve.c:9160 | |
38819 | +#: fortran/resolve.c:9147 | |
38820 | #, gcc-internal-format, gfc-internal-format | |
38821 | msgid "CHARACTER expression will be truncated in assignment (%d/%d) at %L" | |
38822 | msgstr "Se truncará la expresión CHARACTER en la asignación (%d/%d) en %L" | |
38823 | ||
38824 | -#: fortran/resolve.c:9192 | |
38825 | +#: fortran/resolve.c:9179 | |
38826 | #, gcc-internal-format, gfc-internal-format | |
38827 | msgid "Coindexed expression at %L is assigned to a derived type variable with a POINTER component in a PURE procedure" | |
38828 | msgstr "La expresión con coíndice en %L se asigna a una variable de tipo derivado con un componente POINTER en un procedimiento PURE" | |
38829 | ||
38830 | -#: fortran/resolve.c:9197 | |
38831 | +#: fortran/resolve.c:9184 | |
38832 | #, gcc-internal-format, gfc-internal-format | |
38833 | msgid "The impure variable at %L is assigned to a derived type variable with a POINTER component in a PURE procedure (12.6)" | |
38834 | msgstr "La variable impura en %L se asigna a una variable de tipo derivado con un componente POINTER en un procedimiento PURE (12.6)" | |
38835 | ||
38836 | -#: fortran/resolve.c:9207 | |
38837 | +#: fortran/resolve.c:9194 | |
38838 | #, gcc-internal-format, gfc-internal-format | |
38839 | msgid "Assignment to coindexed variable at %L in a PURE procedure" | |
38840 | msgstr "Asignación a una variable coindizada en %L en un procedimiento PURE" | |
38841 | ||
38842 | -#: fortran/resolve.c:9238 | |
38843 | +#: fortran/resolve.c:9225 | |
38844 | #, gcc-internal-format, gfc-internal-format | |
38845 | msgid "Variable must not be polymorphic in intrinsic assignment at %L - check that there is a matching specific subroutine for '=' operator" | |
38846 | msgstr "La variable no debe ser polimórfica en la asignación intrínseca en %L - revise que hay una subrutina específica coincidente para el operador '='" | |
38847 | ||
38848 | -#: fortran/resolve.c:9247 | |
38849 | +#: fortran/resolve.c:9234 | |
38850 | #, gcc-internal-format, gfc-internal-format | |
38851 | msgid "Coindexed variable must not be have an allocatable ultimate component in assignment at %L" | |
38852 | msgstr "La variable coindizada no debe tener un componente último alojable en la asignación en %L" | |
38853 | ||
38854 | -#: fortran/resolve.c:9382 | |
38855 | +#: fortran/resolve.c:9369 | |
38856 | #, gcc-internal-format, gfc-internal-format | |
38857 | msgid "ASSIGNED GOTO statement at %L requires an INTEGER variable" | |
38858 | msgstr "La declaración ASSIGNED GOTO en %L requiere una variable INTEGER" | |
38859 | ||
38860 | -#: fortran/resolve.c:9385 | |
38861 | +#: fortran/resolve.c:9372 | |
38862 | #, gcc-internal-format, gfc-internal-format | |
38863 | msgid "Variable '%s' has not been assigned a target label at %L" | |
38864 | msgstr "La variable '%s' no se ha asignado a una etiqueta objetivo en %L" | |
38865 | ||
38866 | -#: fortran/resolve.c:9396 | |
38867 | +#: fortran/resolve.c:9383 | |
38868 | #, gcc-internal-format, gfc-internal-format | |
38869 | msgid "Alternate RETURN statement at %L requires a SCALAR-INTEGER return specifier" | |
38870 | msgstr "La declaración RETURN alternativa en %L requiere de un especificador de devolución SCALAR-INTEGER" | |
38871 | ||
38872 | -#: fortran/resolve.c:9431 | |
38873 | +#: fortran/resolve.c:9418 | |
38874 | #, gcc-internal-format, gfc-internal-format | |
38875 | msgid "ASSIGN statement at %L requires a scalar default INTEGER variable" | |
38876 | msgstr "La declaración de ASSIGN en %L requiere una variable INTEGER escalar por defecto" | |
38877 | ||
38878 | -#: fortran/resolve.c:9464 | |
38879 | +#: fortran/resolve.c:9451 | |
38880 | #, gcc-internal-format, gfc-internal-format | |
38881 | msgid "Arithmetic IF statement at %L requires a numeric expression" | |
38882 | msgstr "La declaración IF aritmética en %L requiere una expresión numérica" | |
38883 | ||
38884 | -#: fortran/resolve.c:9523 | |
38885 | +#: fortran/resolve.c:9510 | |
38886 | #, gcc-internal-format, gfc-internal-format | |
38887 | msgid "Exit condition of DO WHILE loop at %L must be a scalar LOGICAL expression" | |
38888 | msgstr "La condición de salida del bucle DO WHILE en %L debe ser una expresión LOGICAL escalar" | |
38889 | ||
38890 | -#: fortran/resolve.c:9607 | |
38891 | +#: fortran/resolve.c:9594 | |
38892 | #, gcc-internal-format, gfc-internal-format | |
38893 | msgid "FORALL mask clause at %L requires a scalar LOGICAL expression" | |
38894 | msgstr "La cláusula de máscara FORALL en %L requiere una expresión LOGICAL escalar" | |
38895 | ||
38896 | -#: fortran/resolve.c:9687 fortran/resolve.c:9743 | |
38897 | +#: fortran/resolve.c:9676 fortran/resolve.c:9729 | |
38898 | #, gcc-internal-format, gfc-internal-format | |
38899 | msgid "Binding label '%s' for common block '%s' at %L collides with the global entity '%s' at %L" | |
38900 | msgstr "La etiqueta enlazante '%s' para el bloque común '%s' en %L colisiona con la entidad global '%s' en %L" | |
38901 | ||
38902 | #. Common block names match but binding labels do not. | |
38903 | -#: fortran/resolve.c:9708 | |
38904 | +#: fortran/resolve.c:9694 | |
38905 | #, gcc-internal-format, gfc-internal-format | |
38906 | msgid "Binding label '%s' for common block '%s' at %L does not match the binding label '%s' for common block '%s' at %L" | |
38907 | msgstr "La etiqueta enlazante '%s' para el bloque común '%s' en %L no coincide con la etiqueta enlazante '%s' para el bloque común '%s' en %L" | |
38908 | ||
38909 | -#: fortran/resolve.c:9755 | |
38910 | +#: fortran/resolve.c:9741 | |
38911 | #, gcc-internal-format, gfc-internal-format | |
38912 | msgid "Binding label '%s' for common block '%s' at %L collides with global entity '%s' at %L" | |
38913 | msgstr "La etiqueta enlazante '%s' para el bloque común '%s' en %L colisiona con la entidad global '%s' en %L" | |
38914 | ||
38915 | #. Make sure global procedures don't collide with anything. | |
38916 | -#: fortran/resolve.c:9807 | |
38917 | +#: fortran/resolve.c:9793 | |
38918 | #, gcc-internal-format, gfc-internal-format | |
38919 | msgid "Binding label '%s' at %L collides with the global entity '%s' at %L" | |
38920 | msgstr "La etiqueta enlazante '%s' en %L colisiona con la entidad global '%s' en %L" | |
38921 | ||
38922 | #. Make sure procedures in interface bodies don't collide. | |
38923 | -#: fortran/resolve.c:9820 | |
38924 | +#: fortran/resolve.c:9806 | |
38925 | #, gcc-internal-format, gfc-internal-format | |
38926 | msgid "Binding label '%s' in interface body at %L collides with the global entity '%s' at %L" | |
38927 | msgstr "La etiqueta enlazante '%s' en el cuerpo de interfaz en %L colisiona con la entidad global '%s' en %L" | |
38928 | ||
38929 | -#: fortran/resolve.c:9833 | |
38930 | +#: fortran/resolve.c:9819 | |
38931 | #, gcc-internal-format, gfc-internal-format | |
38932 | msgid "Binding label '%s' at %L collides with global entity '%s' at %L" | |
38933 | msgstr "La etiqueta enlazante '%s' en %L colisiona con la entidad global '%s' en %L" | |
38934 | ||
38935 | -#: fortran/resolve.c:9912 | |
38936 | +#: fortran/resolve.c:9898 | |
38937 | #, gcc-internal-format, gfc-internal-format | |
38938 | msgid "CHARACTER variable at %L has negative length %d, the length has been set to zero" | |
38939 | msgstr "La variable CHARACTER en %L tiene longitud negativa %d, la longitud se estableció a cero" | |
38940 | ||
38941 | -#: fortran/resolve.c:9925 | |
38942 | +#: fortran/resolve.c:9911 | |
38943 | #, gcc-internal-format, gfc-internal-format | |
38944 | msgid "String length at %L is too large" | |
38945 | msgstr "La longitud de la cadena en %L es demasiado grande" | |
38946 | ||
38947 | -#: fortran/resolve.c:10262 | |
38948 | +#: fortran/resolve.c:10248 | |
38949 | #, gcc-internal-format, gfc-internal-format | |
38950 | msgid "Allocatable array '%s' at %L must have a deferred shape" | |
38951 | msgstr "La matriz allocatable '%s' en %L debe tener una forma diferida" | |
38952 | ||
38953 | -#: fortran/resolve.c:10266 | |
38954 | +#: fortran/resolve.c:10252 | |
38955 | #, gcc-internal-format, gfc-internal-format | |
38956 | msgid "Scalar object '%s' at %L may not be ALLOCATABLE" | |
38957 | msgstr "El objeto escalar '%s' en %L no puede ser ALLOCATABLE" | |
38958 | ||
38959 | -#: fortran/resolve.c:10274 | |
38960 | +#: fortran/resolve.c:10260 | |
38961 | #, gcc-internal-format, gfc-internal-format | |
38962 | msgid "Array pointer '%s' at %L must have a deferred shape" | |
38963 | msgstr "La matriz de puntero '%s' en %L debe tener una forma diferida" | |
38964 | ||
38965 | -#: fortran/resolve.c:10284 | |
38966 | +#: fortran/resolve.c:10270 | |
38967 | #, gcc-internal-format, gfc-internal-format | |
38968 | msgid "Array '%s' at %L cannot have a deferred shape" | |
38969 | msgstr "La matriz '%s' en %L no puede tener una forma diferida" | |
38970 | ||
38971 | -#: fortran/resolve.c:10297 | |
38972 | +#: fortran/resolve.c:10283 | |
38973 | #, gcc-internal-format, gfc-internal-format | |
38974 | msgid "Type '%s' of CLASS variable '%s' at %L is not extensible" | |
38975 | msgstr "El tipo '%s' de la variable CLASS '%s' en %L no es extensible" | |
38976 | ||
38977 | -#: fortran/resolve.c:10309 | |
38978 | +#: fortran/resolve.c:10295 | |
38979 | #, gcc-internal-format, gfc-internal-format | |
38980 | msgid "CLASS variable '%s' at %L must be dummy, allocatable or pointer" | |
38981 | msgstr "La variable CLASS '%s' en %L debe ser dummy, allocatable o pointer" | |
38982 | ||
38983 | -#: fortran/resolve.c:10340 | |
38984 | +#: fortran/resolve.c:10326 | |
38985 | #, gcc-internal-format, gfc-internal-format | |
38986 | msgid "The type '%s' cannot be host associated at %L because it is blocked by an incompatible object of the same name declared at %L" | |
38987 | msgstr "El tipo '%s' no se puede asociar al anfitrión en %L porque está bloqueado por un objeto incompatible del mismo nombre declarado en %L" | |
38988 | ||
38989 | -#: fortran/resolve.c:10362 | |
38990 | +#: fortran/resolve.c:10348 | |
38991 | #, gcc-internal-format, gfc-internal-format | |
38992 | msgid "Fortran 2008: Implied SAVE for module variable '%s' at %L, needed due to the default initialization" | |
38993 | msgstr "Fortran 2008: SAVE implícito para la variable de módulo '%s' en %L, se necesita por la inicialización por defecto" | |
38994 | ||
38995 | #. The shape of a main program or module array needs to be | |
38996 | #. constant. | |
38997 | -#: fortran/resolve.c:10409 | |
38998 | +#: fortran/resolve.c:10395 | |
38999 | #, gcc-internal-format, gfc-internal-format | |
39000 | msgid "The module or main program array '%s' at %L must have constant shape" | |
39001 | msgstr "El módulo o la matriz del programa principal '%s' en %L deben tener una forma constante" | |
39002 | ||
39003 | -#: fortran/resolve.c:10418 | |
39004 | +#: fortran/resolve.c:10404 | |
39005 | #, gcc-internal-format, gfc-internal-format | |
39006 | msgid "Entity '%s' at %L has a deferred type parameter and requires either the pointer or allocatable attribute" | |
39007 | msgstr "La entidad '%s' en %L tiene un parámetro de tipo diferido y requiere el atributo pointer o allocatable" | |
39008 | ||
39009 | -#: fortran/resolve.c:10432 | |
39010 | +#: fortran/resolve.c:10418 | |
39011 | #, gcc-internal-format, gfc-internal-format | |
39012 | msgid "Entity with assumed character length at %L must be a dummy argument or a PARAMETER" | |
39013 | msgstr "La entidad con longitud de carácter asumida en %L debe ser un argumento de prueba o un PARAMETER" | |
39014 | ||
39015 | -#: fortran/resolve.c:10451 | |
39016 | +#: fortran/resolve.c:10437 | |
39017 | #, gcc-internal-format, gfc-internal-format | |
39018 | msgid "'%s' at %L must have constant character length in this context" | |
39019 | msgstr "'%s' en %L debe tener longitud de cáracter constante en este contexto" | |
39020 | ||
39021 | -#: fortran/resolve.c:10457 | |
39022 | +#: fortran/resolve.c:10443 | |
39023 | #, gcc-internal-format, gfc-internal-format | |
39024 | msgid "COMMON variable '%s' at %L must have constant character length" | |
39025 | msgstr "La variable COMMON '%s' en %L debe tener longitud de cáracter constante en este contexto" | |
39026 | ||
39027 | -#: fortran/resolve.c:10502 | |
39028 | +#: fortran/resolve.c:10488 | |
39029 | #, gcc-internal-format, gfc-internal-format | |
39030 | msgid "Allocatable '%s' at %L cannot have an initializer" | |
39031 | msgstr "El allocatable '%s' en %L no puede tener un inicializador" | |
39032 | ||
39033 | -#: fortran/resolve.c:10505 | |
39034 | +#: fortran/resolve.c:10491 | |
39035 | #, gcc-internal-format, gfc-internal-format | |
39036 | msgid "External '%s' at %L cannot have an initializer" | |
39037 | msgstr "El external '%s' en %L no puede tener un inicializador" | |
39038 | ||
39039 | -#: fortran/resolve.c:10509 | |
39040 | +#: fortran/resolve.c:10495 | |
39041 | #, gcc-internal-format, gfc-internal-format | |
39042 | msgid "Dummy '%s' at %L cannot have an initializer" | |
39043 | msgstr "El dummy '%s' en %L no puede tener un inicializador" | |
39044 | ||
39045 | -#: fortran/resolve.c:10512 | |
39046 | +#: fortran/resolve.c:10498 | |
39047 | #, gcc-internal-format, gfc-internal-format | |
39048 | msgid "Intrinsic '%s' at %L cannot have an initializer" | |
39049 | msgstr "El intrinsic '%s' en %L no puede tener un inicializador" | |
39050 | ||
39051 | -#: fortran/resolve.c:10515 | |
39052 | +#: fortran/resolve.c:10501 | |
39053 | #, gcc-internal-format, gfc-internal-format | |
39054 | msgid "Function result '%s' at %L cannot have an initializer" | |
39055 | msgstr "El resultado de la función '%s' en %L no puede tener un inicializador" | |
39056 | ||
39057 | -#: fortran/resolve.c:10518 | |
39058 | +#: fortran/resolve.c:10504 | |
39059 | #, gcc-internal-format, gfc-internal-format | |
39060 | msgid "Automatic array '%s' at %L cannot have an initializer" | |
39061 | msgstr "La matriz automática '%s' en %L no puede tener un inicializador" | |
39062 | ||
39063 | -#: fortran/resolve.c:10555 | |
39064 | +#: fortran/resolve.c:10541 | |
39065 | #, gcc-internal-format, gfc-internal-format | |
39066 | msgid "Character-valued statement function '%s' at %L must have constant length" | |
39067 | msgstr "La función de declaración valuada con carácter '%s' en %L debe tener longitud constante" | |
39068 | ||
39069 | -#: fortran/resolve.c:10577 | |
39070 | +#: fortran/resolve.c:10563 | |
39071 | #, gcc-internal-format, gfc-internal-format | |
39072 | msgid "Fortran 2003: '%s' is of a PRIVATE type and cannot be a dummy argument of '%s', which is PUBLIC at %L" | |
39073 | msgstr "Fortran 2003: '%s' es de un tipo PRIVATE y no puede ser un argumento dummy de '%s', el cual es PUBLIC en %L" | |
39074 | ||
39075 | -#: fortran/resolve.c:10599 fortran/resolve.c:10623 | |
39076 | +#: fortran/resolve.c:10585 fortran/resolve.c:10609 | |
39077 | #, gcc-internal-format, gfc-internal-format | |
39078 | msgid "Fortran 2003: Procedure '%s' in PUBLIC interface '%s' at %L takes dummy arguments of '%s' which is PRIVATE" | |
39079 | msgstr "Fortran 2003: El procedimiento '%s' en la interfaz PUBLIC '%s' en %L toma argumentos dummy de '%s' el cual es PRIVATE" | |
39080 | ||
39081 | -#: fortran/resolve.c:10641 | |
39082 | +#: fortran/resolve.c:10627 | |
39083 | #, gcc-internal-format, gfc-internal-format | |
39084 | msgid "Function '%s' at %L cannot have an initializer" | |
39085 | msgstr "La función '%s' en %L no puede tener un inicializador" | |
39086 | ||
39087 | -#: fortran/resolve.c:10650 | |
39088 | +#: fortran/resolve.c:10636 | |
39089 | #, gcc-internal-format, gfc-internal-format | |
39090 | msgid "External object '%s' at %L may not have an initializer" | |
39091 | msgstr "El objeto external '%s' en %L puede no tener un inicializador" | |
39092 | ||
39093 | -#: fortran/resolve.c:10658 | |
39094 | +#: fortran/resolve.c:10644 | |
39095 | #, gcc-internal-format, gfc-internal-format | |
39096 | msgid "ELEMENTAL function '%s' at %L must have a scalar result" | |
39097 | msgstr "La función ELEMENTAL '%s' en %L debe tener un resultado escalar" | |
39098 | ||
39099 | -#: fortran/resolve.c:10668 | |
39100 | +#: fortran/resolve.c:10654 | |
39101 | #, gcc-internal-format, gfc-internal-format | |
39102 | msgid "Statement function '%s' at %L may not have pointer or allocatable attribute" | |
39103 | msgstr "La función de declaración '%s' en %L no debe tener atributo puntero o alojable" | |
39104 | ||
39105 | -#: fortran/resolve.c:10687 | |
39106 | +#: fortran/resolve.c:10673 | |
39107 | #, gcc-internal-format, gfc-internal-format | |
39108 | msgid "CHARACTER(*) function '%s' at %L cannot be array-valued" | |
39109 | msgstr "La función CHARACTER(*) '%s' en %L no puede ser matriz-valuada" | |
39110 | ||
39111 | -#: fortran/resolve.c:10691 | |
39112 | +#: fortran/resolve.c:10677 | |
39113 | #, gcc-internal-format, gfc-internal-format | |
39114 | msgid "CHARACTER(*) function '%s' at %L cannot be pointer-valued" | |
39115 | msgstr "La función CHARACTER(*) '%s' en %L no puede ser puntero-valuada" | |
39116 | ||
39117 | -#: fortran/resolve.c:10695 | |
39118 | +#: fortran/resolve.c:10681 | |
39119 | #, gcc-internal-format, gfc-internal-format | |
39120 | msgid "CHARACTER(*) function '%s' at %L cannot be pure" | |
39121 | msgstr "La función CHARACTER(*) '%s' en %L no puede ser pura" | |
39122 | ||
39123 | -#: fortran/resolve.c:10699 | |
39124 | +#: fortran/resolve.c:10685 | |
39125 | #, gcc-internal-format, gfc-internal-format | |
39126 | msgid "CHARACTER(*) function '%s' at %L cannot be recursive" | |
39127 | msgstr "La función CHARACTER(*) '%s' en %L no puede ser recursiva" | |
39128 | ||
39129 | -#: fortran/resolve.c:10711 | |
39130 | +#: fortran/resolve.c:10697 | |
39131 | #, gcc-internal-format, gfc-internal-format | |
39132 | msgid "Obsolescent feature: CHARACTER(*) function '%s' at %L" | |
39133 | msgstr "Característica obsoleta: función CHARACTER(*) '%s' en %L" | |
39134 | ||
39135 | -#: fortran/resolve.c:10766 | |
39136 | +#: fortran/resolve.c:10752 | |
39137 | #, gcc-internal-format, gfc-internal-format | |
39138 | msgid "PROCEDURE attribute conflicts with SAVE attribute in '%s' at %L" | |
39139 | msgstr "El atributo PROCEDURE genera un conflicto con el atributo SAVE en '%s' en %L" | |
39140 | ||
39141 | -#: fortran/resolve.c:10772 | |
39142 | +#: fortran/resolve.c:10758 | |
39143 | #, gcc-internal-format, gfc-internal-format | |
39144 | msgid "PROCEDURE attribute conflicts with INTENT attribute in '%s' at %L" | |
39145 | msgstr "El atributo PROCEDURE genera un conflicto con el atributo INTENT en '%s' en %L" | |
39146 | ||
39147 | -#: fortran/resolve.c:10778 | |
39148 | +#: fortran/resolve.c:10764 | |
39149 | #, gcc-internal-format, gfc-internal-format | |
39150 | msgid "PROCEDURE attribute conflicts with RESULT attribute in '%s' at %L" | |
39151 | msgstr "El atributo PROCEDURE genera un conflicto con el atributo RESULT en '%s' en %L" | |
39152 | ||
39153 | -#: fortran/resolve.c:10786 | |
39154 | +#: fortran/resolve.c:10772 | |
39155 | #, gcc-internal-format, gfc-internal-format | |
39156 | msgid "EXTERNAL attribute conflicts with FUNCTION attribute in '%s' at %L" | |
39157 | msgstr "El atributo EXTERNAL genera un conflicto con el atributo FUNCTION en '%s' en %L" | |
39158 | ||
39159 | -#: fortran/resolve.c:10792 | |
39160 | +#: fortran/resolve.c:10778 | |
39161 | #, gcc-internal-format, gfc-internal-format | |
39162 | msgid "Procedure pointer result '%s' at %L is missing the pointer attribute" | |
39163 | msgstr "Al resultado del puntero de procedimiento '%s' en %L le falta el atributo puntero" | |
39164 | ||
39165 | -#: fortran/resolve.c:10838 | |
39166 | +#: fortran/resolve.c:10824 | |
39167 | #, gcc-internal-format, gfc-internal-format | |
39168 | msgid "FINAL procedure '%s' at %L is not a SUBROUTINE" | |
39169 | msgstr "El procedimiento FINAL '%s' en %L no debe ser una SUBROUTINE" | |
39170 | ||
39171 | -#: fortran/resolve.c:10846 | |
39172 | +#: fortran/resolve.c:10832 | |
39173 | #, gcc-internal-format, gfc-internal-format | |
39174 | msgid "FINAL procedure at %L must have exactly one argument" | |
39175 | msgstr "El procedimiento FINAL en %L debe tener exactamente un argumento" | |
39176 | ||
39177 | -#: fortran/resolve.c:10855 | |
39178 | +#: fortran/resolve.c:10841 | |
39179 | #, gcc-internal-format, gfc-internal-format | |
39180 | msgid "Argument of FINAL procedure at %L must be of type '%s'" | |
39181 | msgstr "El argumento del procedimiento FINAL en %L debe ser de tipo '%s'" | |
39182 | ||
39183 | -#: fortran/resolve.c:10863 | |
39184 | +#: fortran/resolve.c:10849 | |
39185 | #, gcc-internal-format, gfc-internal-format | |
39186 | msgid "Argument of FINAL procedure at %L must not be a POINTER" | |
39187 | msgstr "El argumento del procedimiento FINAL en %L no debe ser un POINTER" | |
39188 | ||
39189 | -#: fortran/resolve.c:10869 | |
39190 | +#: fortran/resolve.c:10855 | |
39191 | #, gcc-internal-format, gfc-internal-format | |
39192 | msgid "Argument of FINAL procedure at %L must not be ALLOCATABLE" | |
39193 | msgstr "El argumento del procedimiento final en %L no debe ser ALLOCATABLE" | |
39194 | ||
39195 | -#: fortran/resolve.c:10875 | |
39196 | +#: fortran/resolve.c:10861 | |
39197 | #, gcc-internal-format, gfc-internal-format | |
39198 | msgid "Argument of FINAL procedure at %L must not be OPTIONAL" | |
39199 | msgstr "El argumento del procedimiento FINAL en %L no debe ser OPTIONAL" | |
39200 | ||
39201 | -#: fortran/resolve.c:10883 | |
39202 | +#: fortran/resolve.c:10869 | |
39203 | #, gcc-internal-format, gfc-internal-format | |
39204 | msgid "Argument of FINAL procedure at %L must not be INTENT(OUT)" | |
39205 | msgstr "El argumento del procedimiento FINAL en %L no debe ser INTENT(OUT)" | |
39206 | ||
39207 | -#: fortran/resolve.c:10891 | |
39208 | +#: fortran/resolve.c:10877 | |
39209 | #, gcc-internal-format, gfc-internal-format | |
39210 | msgid "Non-scalar FINAL procedure at %L should have assumed shape argument" | |
39211 | msgstr "El procedimiento FINAL que no es escalar en %L debe tener un argumento sharp asumido" | |
39212 | ||
39213 | -#: fortran/resolve.c:10910 | |
39214 | +#: fortran/resolve.c:10896 | |
39215 | #, gcc-internal-format, gfc-internal-format | |
39216 | msgid "FINAL procedure '%s' declared at %L has the same rank (%d) as '%s'" | |
39217 | msgstr "El procedimiento FINAL '%s' declarado en %L tiene el mismo rango (%d) que '%s'" | |
39218 | ||
39219 | -#: fortran/resolve.c:10943 | |
39220 | +#: fortran/resolve.c:10929 | |
39221 | #, gcc-internal-format, gfc-internal-format | |
39222 | msgid "Only array FINAL procedures declared for derived type '%s' defined at %L, suggest also scalar one" | |
39223 | msgstr "Sólo se declaran procedimientos FINAL de matriz para el tipo derivado '%s' definido en %L, se sugiere también uno escalar" | |
39224 | ||
39225 | #. TODO: Remove this error when finalization is finished. | |
39226 | -#: fortran/resolve.c:10948 | |
39227 | +#: fortran/resolve.c:10934 | |
39228 | #, gcc-internal-format, gfc-internal-format | |
39229 | msgid "Finalization at %L is not yet implemented" | |
39230 | msgstr "Aún no se admite la finalización en %L" | |
39231 | ||
39232 | -#: fortran/resolve.c:10978 | |
39233 | +#: fortran/resolve.c:10965 | |
39234 | #, gcc-internal-format, gfc-internal-format | |
39235 | msgid "'%s' and '%s' can't be mixed FUNCTION/SUBROUTINE for GENERIC '%s' at %L" | |
39236 | msgstr "'%s' y '%s' no pueden ser FUNCTION/SUBROUTINE mezcladas para el GENERIC '%s' en %L" | |
39237 | ||
39238 | -#: fortran/resolve.c:10987 | |
39239 | +#: fortran/resolve.c:10975 | |
39240 | #, gcc-internal-format, gfc-internal-format | |
39241 | msgid "'%s' and '%s' for GENERIC '%s' at %L are ambiguous" | |
39242 | msgstr "'%s' y '%s' para el GENERIC '%s' en %L son ambiguos" | |
39243 | ||
39244 | -#: fortran/resolve.c:11046 | |
39245 | +#: fortran/resolve.c:11034 | |
39246 | #, gcc-internal-format, gfc-internal-format | |
39247 | msgid "Undefined specific binding '%s' as target of GENERIC '%s' at %L" | |
39248 | msgstr "El enlace específico '%s' no está definido como objetivo del GENERIC '%s' en %L" | |
39249 | ||
39250 | -#: fortran/resolve.c:11058 | |
39251 | +#: fortran/resolve.c:11046 | |
39252 | #, gcc-internal-format, gfc-internal-format | |
39253 | msgid "GENERIC '%s' at %L must target a specific binding, '%s' is GENERIC, too" | |
39254 | msgstr "El GENERIC '%s' en %L debe apuntar a un enlace específico, '%s' es GENERIC también" | |
39255 | ||
39256 | -#: fortran/resolve.c:11088 | |
39257 | +#: fortran/resolve.c:11076 | |
39258 | #, gcc-internal-format, gfc-internal-format | |
39259 | msgid "GENERIC '%s' at %L can't overwrite specific binding with the same name" | |
39260 | msgstr "El GENERIC '%s' en %L no puede sobreescribir el enlace específico con el mismo nombre" | |
39261 | ||
39262 | -#: fortran/resolve.c:11144 | |
39263 | +#: fortran/resolve.c:11132 | |
39264 | #, gcc-internal-format, gfc-internal-format | |
39265 | msgid "Type-bound operator at %L can't be NOPASS" | |
39266 | msgstr "El operador enlazado a tipo en %L no puede ser NOPASS" | |
39267 | ||
39268 | -#: fortran/resolve.c:11307 | |
39269 | +#: fortran/resolve.c:11295 | |
39270 | #, gcc-internal-format, gfc-internal-format | |
39271 | msgid "'%s' must be a module procedure or an external procedure with an explicit interface at %L" | |
39272 | msgstr "'%s' debe ser un procedimiento de módulo o un procedimiento externo con una interfaz explícita en %L" | |
39273 | ||
39274 | -#: fortran/resolve.c:11344 | |
39275 | +#: fortran/resolve.c:11332 | |
39276 | #, gcc-internal-format, gfc-internal-format | |
39277 | msgid "Procedure '%s' with PASS(%s) at %L has no argument '%s'" | |
39278 | msgstr "El procedimiento '%s' con PASS(%s) en %L no tiene un argumento '%s'" | |
39279 | ||
39280 | -#: fortran/resolve.c:11358 | |
39281 | +#: fortran/resolve.c:11346 | |
39282 | #, gcc-internal-format, gfc-internal-format | |
39283 | msgid "Procedure '%s' with PASS at %L must have at least one argument" | |
39284 | msgstr "El procedimiento '%s' con PASS en %L debe tener al menos un argumento" | |
39285 | ||
39286 | -#: fortran/resolve.c:11372 fortran/resolve.c:11835 | |
39287 | +#: fortran/resolve.c:11360 fortran/resolve.c:11823 | |
39288 | #, gcc-internal-format, gfc-internal-format | |
39289 | msgid "Non-polymorphic passed-object dummy argument of '%s' at %L" | |
39290 | msgstr "Argumento dummy pasado como objeto no polimórfico de '%s' en %L" | |
39291 | ||
39292 | -#: fortran/resolve.c:11380 | |
39293 | +#: fortran/resolve.c:11368 | |
39294 | #, gcc-internal-format, gfc-internal-format | |
39295 | msgid "Argument '%s' of '%s' with PASS(%s) at %L must be of the derived-type '%s'" | |
39296 | msgstr "El argumento '%s' de '%s' con PASS(%s) en %L debe ser del tipo derivado '%s'" | |
39297 | ||
39298 | -#: fortran/resolve.c:11389 | |
39299 | +#: fortran/resolve.c:11377 | |
39300 | #, gcc-internal-format, gfc-internal-format | |
39301 | msgid "Passed-object dummy argument of '%s' at %L must be scalar" | |
39302 | msgstr "El argumento dummy de objeto pasado de '%s' en %L debe ser escalar" | |
39303 | ||
39304 | -#: fortran/resolve.c:11395 | |
39305 | +#: fortran/resolve.c:11383 | |
39306 | #, gcc-internal-format, gfc-internal-format | |
39307 | msgid "Passed-object dummy argument of '%s' at %L must not be ALLOCATABLE" | |
39308 | msgstr "El argumento dummy de objeto pasado de '%s' en %L no debe ser ALLOCATABLE" | |
39309 | ||
39310 | -#: fortran/resolve.c:11401 | |
39311 | +#: fortran/resolve.c:11389 | |
39312 | #, gcc-internal-format, gfc-internal-format | |
39313 | msgid "Passed-object dummy argument of '%s' at %L must not be POINTER" | |
39314 | msgstr "El argumento dummy de objeto pasado de '%s' en %L no debe ser POINTER" | |
39315 | ||
39316 | -#: fortran/resolve.c:11430 | |
39317 | +#: fortran/resolve.c:11418 | |
39318 | #, gcc-internal-format, gfc-internal-format | |
39319 | msgid "Procedure '%s' at %L has the same name as a component of '%s'" | |
39320 | msgstr "El procedimiento '%s' en %L tiene el mismo nombre que un componente de '%s'" | |
39321 | ||
39322 | -#: fortran/resolve.c:11439 | |
39323 | +#: fortran/resolve.c:11427 | |
39324 | #, gcc-internal-format, gfc-internal-format | |
39325 | msgid "Procedure '%s' at %L has the same name as an inherited component of '%s'" | |
39326 | msgstr "El procedimiento '%s' en %L tiene el mismo nombre que un componente heredado de '%s'" | |
39327 | ||
39328 | -#: fortran/resolve.c:11534 | |
39329 | +#: fortran/resolve.c:11522 | |
39330 | #, gcc-internal-format, gfc-internal-format | |
39331 | msgid "Derived-type '%s' declared at %L must be ABSTRACT because '%s' is DEFERRED and not overridden" | |
39332 | msgstr "El tipo derivado '%s' declarado en %L debe ser ABSTRACT porque '%s' es DEFERRED y no se sobreescribió" | |
39333 | ||
39334 | -#: fortran/resolve.c:11592 | |
39335 | +#: fortran/resolve.c:11580 | |
39336 | #, gcc-internal-format, gfc-internal-format | |
39337 | msgid "As extending type '%s' at %L has a coarray component, parent type '%s' shall also have one" | |
39338 | msgstr "Como al extender el tipo '%s' en %L tiene un componente de comatriz, el tipo padre '%s' también debe tener uno" | |
39339 | ||
39340 | -#: fortran/resolve.c:11605 | |
39341 | +#: fortran/resolve.c:11593 | |
39342 | #, gcc-internal-format, gfc-internal-format | |
39343 | msgid "Non-extensible derived-type '%s' at %L must not be ABSTRACT" | |
39344 | msgstr "El tipo derivado '%s' que no es extensible en %L no debe ser ABSTRACT" | |
39345 | ||
39346 | -#: fortran/resolve.c:11618 | |
39347 | +#: fortran/resolve.c:11606 | |
39348 | #, gcc-internal-format, gfc-internal-format | |
39349 | msgid "Deferred-length character component '%s' at %L is not yet supported" | |
39350 | msgstr "El componente de caractér de longitud diferida '%s' en %L aún no se admite" | |
39351 | ||
39352 | -#: fortran/resolve.c:11628 | |
39353 | +#: fortran/resolve.c:11616 | |
39354 | #, gcc-internal-format, gfc-internal-format | |
39355 | msgid "Coarray component '%s' at %L must be allocatable with deferred shape" | |
39356 | msgstr "El componente de comatriz '%s' en %L debe sel alojable con forma diferida" | |
39357 | ||
39358 | -#: fortran/resolve.c:11637 | |
39359 | +#: fortran/resolve.c:11625 | |
39360 | #, gcc-internal-format, gfc-internal-format | |
39361 | msgid "Component '%s' at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray" | |
39362 | msgstr "El componente '%s' en %L de TYPE(C_PTR) o TYPE(C_FUNPTR) no debe ser una comatriz" | |
39363 | ||
39364 | -#: fortran/resolve.c:11647 | |
39365 | +#: fortran/resolve.c:11635 | |
39366 | #, gcc-internal-format, gfc-internal-format | |
39367 | msgid "Component '%s' at %L with coarray component shall be a nonpointer, nonallocatable scalar" | |
39368 | msgstr "El componenten '%s' en %L con componente comatriz debe ser un escalar que no sea puntero alojable" | |
39369 | ||
39370 | -#: fortran/resolve.c:11656 | |
39371 | +#: fortran/resolve.c:11644 | |
39372 | #, gcc-internal-format, gfc-internal-format | |
39373 | msgid "Component '%s' at %L has the CONTIGUOUS attribute but is not an array pointer" | |
39374 | msgstr "El componente '%s' en %L tiene el atributo CONTIGUOUS porque no es un puntero de matriz" | |
39375 | ||
39376 | -#: fortran/resolve.c:11664 | |
39377 | +#: fortran/resolve.c:11652 | |
39378 | #, gcc-internal-format, gfc-internal-format | |
39379 | msgid "Interface '%s', used by procedure pointer component '%s' at %L, is declared in a later PROCEDURE statement" | |
39380 | msgstr "La interfaz '%s', usada por el procedimiento de componente puntero '%s' en %L, se declara en una declaración PROCEDURE posterior" | |
39381 | ||
39382 | -#: fortran/resolve.c:11729 | |
39383 | +#: fortran/resolve.c:11717 | |
39384 | #, gcc-internal-format, gfc-internal-format | |
39385 | msgid "Interface '%s' of procedure pointer component '%s' at %L must be explicit" | |
39386 | msgstr "La interfaz '%s' del procedimiento de componente puntero '%s' en %L debe ser explícita" | |
39387 | ||
39388 | -#: fortran/resolve.c:11769 | |
39389 | +#: fortran/resolve.c:11757 | |
39390 | #, gcc-internal-format, gfc-internal-format | |
39391 | msgid "Procedure pointer component '%s' with PASS(%s) at %L has no argument '%s'" | |
39392 | msgstr "El procedimiento de componente puntero '%s' con PASS(%s) en %L no tiene un argumento '%s'" | |
39393 | ||
39394 | -#: fortran/resolve.c:11783 | |
39395 | +#: fortran/resolve.c:11771 | |
39396 | #, gcc-internal-format, gfc-internal-format | |
39397 | msgid "Procedure pointer component '%s' with PASS at %L must have at least one argument" | |
39398 | msgstr "El procedimiento de componente puntero '%s' con PASS en %L debe tener al menos un argumento" | |
39399 | ||
39400 | -#: fortran/resolve.c:11799 | |
39401 | +#: fortran/resolve.c:11787 | |
39402 | #, gcc-internal-format, gfc-internal-format | |
39403 | msgid "Argument '%s' of '%s' with PASS(%s) at %L must be of the derived type '%s'" | |
39404 | msgstr "El argumento '%s' de '%s' con PASS(%s) en %L debe ser del tipo derivado '%s'" | |
39405 | ||
39406 | -#: fortran/resolve.c:11809 | |
39407 | +#: fortran/resolve.c:11797 | |
39408 | #, gcc-internal-format, gfc-internal-format | |
39409 | msgid "Argument '%s' of '%s' with PASS(%s) at %L must be scalar" | |
39410 | msgstr "El argumento '%s' de '%s' con PASS(%s) en %L debe ser escalar" | |
39411 | ||
39412 | -#: fortran/resolve.c:11818 | |
39413 | +#: fortran/resolve.c:11806 | |
39414 | #, gcc-internal-format, gfc-internal-format | |
39415 | msgid "Argument '%s' of '%s' with PASS(%s) at %L may not have the POINTER attribute" | |
39416 | msgstr "El argumento '%s' de '%s' con PASS(%s) en %L no puede tener el atributo POINTER" | |
39417 | ||
39418 | -#: fortran/resolve.c:11827 | |
39419 | +#: fortran/resolve.c:11815 | |
39420 | #, gcc-internal-format, gfc-internal-format | |
39421 | msgid "Argument '%s' of '%s' with PASS(%s) at %L may not be ALLOCATABLE" | |
39422 | msgstr "El argumento '%s' de '%s' con PASS(%s) en %L no puede ser ALLOCATABLE" | |
39423 | ||
39424 | -#: fortran/resolve.c:11864 | |
39425 | +#: fortran/resolve.c:11852 | |
39426 | #, gcc-internal-format, gfc-internal-format | |
39427 | msgid "Component '%s' of '%s' at %L has the same name as an inherited type-bound procedure" | |
39428 | msgstr "El componente '%s' de '%s' en %L tiene el mismo nombre que un procedimiento enlazado a tipo heredado" | |
39429 | ||
39430 | -#: fortran/resolve.c:11877 | |
39431 | +#: fortran/resolve.c:11865 | |
39432 | #, gcc-internal-format, gfc-internal-format | |
39433 | msgid "Character length of component '%s' needs to be a constant specification expression at %L" | |
39434 | msgstr "La longitud de carácter del componente '%s' necesita ser una expresión de especificación constante en %L" | |
39435 | ||
39436 | -#: fortran/resolve.c:11888 | |
39437 | +#: fortran/resolve.c:11876 | |
39438 | #, gcc-internal-format, gfc-internal-format | |
39439 | msgid "Character component '%s' of '%s' at %L with deferred length must be a POINTER or ALLOCATABLE" | |
39440 | msgstr "El componente de carácter '%s' de '%s' en %L con longitud diferida debe ser POINTER o ALLOCATABLE" | |
39441 | ||
39442 | -#: fortran/resolve.c:11900 | |
39443 | +#: fortran/resolve.c:11888 | |
39444 | #, gcc-internal-format, gfc-internal-format | |
39445 | msgid "Fortran 2003: the component '%s' is a PRIVATE type and cannot be a component of '%s', which is PUBLIC at %L" | |
39446 | msgstr "Fortran 2003: el componente '%s' es un tipo PRIVATE y no puede ser un componente de '%s' el cual es PUBLIC en %L" | |
39447 | ||
39448 | -#: fortran/resolve.c:11908 | |
39449 | +#: fortran/resolve.c:11896 | |
39450 | #, gcc-internal-format, gfc-internal-format | |
39451 | msgid "Polymorphic component %s at %L in SEQUENCE or BIND(C) type %s" | |
39452 | msgstr "El componente polimórfico %s en %L en SEQUENCE o de tipo BIND(C) %s" | |
39453 | ||
39454 | -#: fortran/resolve.c:11917 | |
39455 | +#: fortran/resolve.c:11905 | |
39456 | #, gcc-internal-format, gfc-internal-format | |
39457 | msgid "Component %s of SEQUENCE type declared at %L does not have the SEQUENCE attribute" | |
39458 | msgstr "El componente %s del tipo SEQUENCE declarado en %L no tiene el atributo SEQUENCE" | |
39459 | ||
39460 | -#: fortran/resolve.c:11935 fortran/resolve.c:11946 | |
39461 | +#: fortran/resolve.c:11923 fortran/resolve.c:11934 | |
39462 | #, gcc-internal-format, gfc-internal-format | |
39463 | msgid "The pointer component '%s' of '%s' at %L is a type that has not been declared" | |
39464 | msgstr "El componente puntero '%s' de '%s' en %L es de un tipo que no se ha declarado" | |
39465 | ||
39466 | -#: fortran/resolve.c:11958 | |
39467 | +#: fortran/resolve.c:11946 | |
39468 | #, gcc-internal-format, gfc-internal-format | |
39469 | msgid "Component '%s' with CLASS at %L must be allocatable or pointer" | |
39470 | msgstr "El componente '%s' con CLASS en %L debe ser allocatable o pointer" | |
39471 | ||
39472 | -#: fortran/resolve.c:12006 | |
39473 | +#: fortran/resolve.c:11994 | |
39474 | #, gcc-internal-format, gfc-internal-format | |
39475 | msgid "Fortran 2003: Generic name '%s' of function '%s' at %L being the same name as derived type at %L" | |
39476 | msgstr "Fortran 2003: El nombre genérico '%s' de la función '%s' en %L tiene el mismo nombre que el tipo derivado en %L" | |
39477 | ||
39478 | -#: fortran/resolve.c:12058 | |
39479 | +#: fortran/resolve.c:12046 | |
39480 | #, gcc-internal-format, gfc-internal-format | |
39481 | msgid "Assumed size array '%s' in namelist '%s' at %L is not allowed" | |
39482 | msgstr "No se permite la matriz de tamaño asumido '%s' en la lista de nombres '%s' en %L" | |
39483 | ||
39484 | -#: fortran/resolve.c:12064 | |
39485 | +#: fortran/resolve.c:12052 | |
39486 | #, gcc-internal-format, gfc-internal-format | |
39487 | msgid "Fortran 2003: NAMELIST array object '%s' with assumed shape in namelist '%s' at %L" | |
39488 | msgstr "Fortran 2003: Objeto de matriz NAMELIST '%s' con forma asumida en la lista de nombres '%s' en %L" | |
39489 | ||
39490 | -#: fortran/resolve.c:12071 | |
39491 | +#: fortran/resolve.c:12059 | |
39492 | #, gcc-internal-format, gfc-internal-format | |
39493 | msgid "Fortran 2003: NAMELIST array object '%s' with nonconstant shape in namelist '%s' at %L" | |
39494 | msgstr "Fortran 2003: El objeto de matriz NAMELIST '%s' con forma que no es constante en la lista de nombres '%s' en %L" | |
39495 | ||
39496 | -#: fortran/resolve.c:12080 | |
39497 | +#: fortran/resolve.c:12068 | |
39498 | #, gcc-internal-format, gfc-internal-format | |
39499 | msgid "Fortran 2003: NAMELIST object '%s' with nonconstant character length in namelist '%s' at %L" | |
39500 | msgstr "Fortran 2003: El objeto de matriz NAMELIST '%s' con longitud de carácter que no es constante en la lista de nombres '%s' en %L" | |
39501 | ||
39502 | -#: fortran/resolve.c:12090 | |
39503 | +#: fortran/resolve.c:12078 | |
39504 | #, gcc-internal-format, gfc-internal-format | |
39505 | msgid "NAMELIST object '%s' in namelist '%s' at %L is polymorphic and requires a defined input/output procedure" | |
39506 | msgstr "El objeto NAMELIST '%s' en la lista de nombres '%s' en %L es polimórfico y requiere un procedimiento de entrada/salida definido" | |
39507 | ||
39508 | -#: fortran/resolve.c:12100 | |
39509 | +#: fortran/resolve.c:12088 | |
39510 | #, gcc-internal-format, gfc-internal-format | |
39511 | msgid "Fortran 2003: NAMELIST object '%s' in namelist '%s' at %L with ALLOCATABLE or POINTER components" | |
39512 | msgstr "Fortran 2003: El objeto NAMELIST '%s' en la lista de nombres '%s' en %L con componentes ALLOCATABLE o POINTER" | |
39513 | ||
39514 | #. FIXME: Once UDDTIO is implemented, the following can be | |
39515 | #. removed. | |
39516 | -#: fortran/resolve.c:12108 | |
39517 | +#: fortran/resolve.c:12096 | |
39518 | #, gcc-internal-format, gfc-internal-format | |
39519 | msgid "NAMELIST object '%s' in namelist '%s' at %L has ALLOCATABLE or POINTER components and thus requires a defined input/output procedure" | |
39520 | msgstr "El objeto NAMELIST '%s' en la lista de nombres '%s' en %L tiene componentes ALLOCATABLE o POINTER y por lo tanto requere un procedimiento de entrada/salida definido" | |
39521 | ||
39522 | -#: fortran/resolve.c:12125 | |
39523 | +#: fortran/resolve.c:12113 | |
39524 | #, gcc-internal-format, gfc-internal-format | |
39525 | msgid "NAMELIST object '%s' was declared PRIVATE and cannot be member of PUBLIC namelist '%s' at %L" | |
39526 | msgstr "El objeto NAMELIST '%s' se declaró PRIVATE y no puede ser miembro de una lista de nombres PUBLIC '%s' en %L" | |
39527 | ||
39528 | -#: fortran/resolve.c:12135 | |
39529 | +#: fortran/resolve.c:12123 | |
39530 | #, gcc-internal-format, gfc-internal-format | |
39531 | msgid "NAMELIST object '%s' has use-associated PRIVATE components and cannot be member of namelist '%s' at %L" | |
39532 | msgstr "El objeto NAMELIST '%s' tiene componentes PRIVATE asociados a uso y no puede ser miembro de la lista de nombres '%s' en %L" | |
39533 | ||
39534 | -#: fortran/resolve.c:12146 | |
39535 | +#: fortran/resolve.c:12134 | |
39536 | #, gcc-internal-format, gfc-internal-format | |
39537 | msgid "NAMELIST object '%s' has PRIVATE components and cannot be a member of PUBLIC namelist '%s' at %L" | |
39538 | msgstr "El objeto NAMELIST '%s' tiene componentes PRIVATE y no puede ser un miembro de la lista de nombres PUBLIC '%s' en %L" | |
39539 | ||
39540 | -#: fortran/resolve.c:12173 | |
39541 | +#: fortran/resolve.c:12161 | |
39542 | #, gcc-internal-format, gfc-internal-format | |
39543 | msgid "PROCEDURE attribute conflicts with NAMELIST attribute in '%s' at %L" | |
39544 | msgstr "El atributo PROCEDURE genera un conflicto con el atributo NAMELIST en '%s' en %L" | |
39545 | ||
39546 | -#: fortran/resolve.c:12192 | |
39547 | +#: fortran/resolve.c:12180 | |
39548 | #, gcc-internal-format, gfc-internal-format | |
39549 | msgid "Parameter array '%s' at %L cannot be automatic or of deferred shape" | |
39550 | msgstr "La matriz de parámetro '%s' en %L no puede ser automática ni de forma diferida" | |
39551 | ||
39552 | -#: fortran/resolve.c:12204 | |
39553 | +#: fortran/resolve.c:12192 | |
39554 | #, gcc-internal-format, gfc-internal-format | |
39555 | msgid "Implicitly typed PARAMETER '%s' at %L doesn't match a later IMPLICIT type" | |
39556 | msgstr "El PARAMETER de tipo implícito '%s' en %L no coincide con un tipo IMPLICIT posterior" | |
39557 | ||
39558 | -#: fortran/resolve.c:12215 | |
39559 | +#: fortran/resolve.c:12203 | |
39560 | #, gcc-internal-format, gfc-internal-format | |
39561 | msgid "Incompatible derived type in PARAMETER at %L" | |
39562 | msgstr "Tipo derivado incompatible en PARAMETER en %L" | |
39563 | ||
39564 | -#: fortran/resolve.c:12284 | |
39565 | +#: fortran/resolve.c:12272 | |
39566 | #, gcc-internal-format, gfc-internal-format | |
39567 | msgid "PROTECTED attribute conflicts with EXTERNAL attribute at %L" | |
39568 | msgstr "El atributo PROTECTED genera un conflicto con el atributo EXTERNAL en %L" | |
39569 | ||
39570 | -#: fortran/resolve.c:12287 | |
39571 | +#: fortran/resolve.c:12275 | |
39572 | #, gcc-internal-format, gfc-internal-format | |
39573 | msgid "PROCEDURE attribute conflicts with PROTECTED attribute at %L" | |
39574 | msgstr "El atributo PROCEDURE genera un conflicto con el atributo PROTECTED en %L" | |
39575 | ||
39576 | -#: fortran/resolve.c:12370 | |
39577 | +#: fortran/resolve.c:12358 | |
39578 | #, gcc-internal-format, gfc-internal-format | |
39579 | msgid "'%s' at %L has the CONTIGUOUS attribute but is not an array pointer or an assumed-shape array" | |
39580 | msgstr "'%s' en %L tiene el atributo CONTIGUOUS pero no es un puntero de matriz o una matriz de forma asumida" | |
39581 | ||
39582 | -#: fortran/resolve.c:12388 | |
39583 | +#: fortran/resolve.c:12376 | |
39584 | #, gcc-internal-format, gfc-internal-format | |
39585 | msgid "Assumed size array at %L must be a dummy argument" | |
39586 | msgstr "La matriz de tamaño asumido en %L debe ser un argumento de prueba" | |
39587 | ||
39588 | -#: fortran/resolve.c:12391 | |
39589 | +#: fortran/resolve.c:12379 | |
39590 | #, gcc-internal-format, gfc-internal-format | |
39591 | msgid "Assumed shape array at %L must be a dummy argument" | |
39592 | msgstr "La matriz de forma asumida en %L debe ser un argumento de prueba" | |
39593 | ||
39594 | -#: fortran/resolve.c:12404 | |
39595 | +#: fortran/resolve.c:12392 | |
39596 | #, gcc-internal-format, gfc-internal-format | |
39597 | msgid "Symbol at %L is not a DUMMY variable" | |
39598 | msgstr "El símbolo en %L no es una variable DUMMY" | |
39599 | ||
39600 | -#: fortran/resolve.c:12410 | |
39601 | +#: fortran/resolve.c:12398 | |
39602 | #, gcc-internal-format, gfc-internal-format | |
39603 | msgid "'%s' at %L cannot have the VALUE attribute because it is not a dummy argument" | |
39604 | msgstr "'%s' en %L no puede tener el atributo VALUE porque no es un argumento dummy" | |
39605 | ||
39606 | -#: fortran/resolve.c:12420 | |
39607 | +#: fortran/resolve.c:12408 | |
39608 | #, gcc-internal-format, gfc-internal-format | |
39609 | msgid "Character dummy variable '%s' at %L with VALUE attribute must have constant length" | |
39610 | msgstr "La variable dummy de carácter '%s' en %L con atributo VALUE debe tener longitud constante" | |
39611 | ||
39612 | -#: fortran/resolve.c:12429 | |
39613 | +#: fortran/resolve.c:12417 | |
39614 | #, gcc-internal-format, gfc-internal-format | |
39615 | msgid "C interoperable character dummy variable '%s' at %L with VALUE attribute must have length one" | |
39616 | msgstr "La variable dummy de carácter interoperable con C '%s' en %L con atributo VALUE debe ser de longitud uno" | |
39617 | ||
39618 | -#: fortran/resolve.c:12442 fortran/resolve.c:12523 | |
39619 | +#: fortran/resolve.c:12430 fortran/resolve.c:12511 | |
39620 | #, gcc-internal-format, gfc-internal-format | |
39621 | msgid "The derived type '%s' at %L is of type '%s', which has not been defined" | |
39622 | msgstr "El tipo derivado '%s' en %L es de tipo '%s', el cual no se ha definido" | |
39623 | ||
39624 | -#: fortran/resolve.c:12469 | |
39625 | +#: fortran/resolve.c:12457 | |
39626 | #, gcc-internal-format, gfc-internal-format | |
39627 | msgid "Variable '%s' at %L cannot be BIND(C) because it is neither a COMMON block nor declared at the module level scope" | |
39628 | msgstr "La variable '%s' en %L no puede ser BIND(C) porque no es un bloque COMMON ni se declaró en el ámbito de nivel de módulo" | |
39629 | ||
39630 | -#: fortran/resolve.c:12549 | |
39631 | +#: fortran/resolve.c:12537 | |
39632 | #, gcc-internal-format, gfc-internal-format | |
39633 | msgid "Fortran 2003: PUBLIC %s '%s' at %L of PRIVATE derived type '%s'" | |
39634 | msgstr "Fortran 2003: La función PUBLIC %s '%s' en %L es de tipo derivado PRIVATE '%s'" | |
39635 | ||
39636 | -#: fortran/resolve.c:12563 | |
39637 | +#: fortran/resolve.c:12551 | |
39638 | #, gcc-internal-format, gfc-internal-format | |
39639 | msgid "Variable %s at %L of type LOCK_TYPE or with subcomponent of type LOCK_TYPE must be a coarray" | |
39640 | msgstr "La variable %s en %L de tipo LOCK_TYPE o con un subcomponente de tipo LOCK_TYPE debe ser una comatriz" | |
39641 | ||
39642 | -#: fortran/resolve.c:12581 | |
39643 | +#: fortran/resolve.c:12569 | |
39644 | #, gcc-internal-format, gfc-internal-format | |
39645 | msgid "The INTENT(OUT) dummy argument '%s' at %L is ASSUMED SIZE and so cannot have a default initializer" | |
39646 | msgstr "El argumento dummy INTENT(OUT) '%s' en %L es ASSUMED SIZE y por lo tanto no puede tener un inicializador por defecto" | |
39647 | ||
39648 | -#: fortran/resolve.c:12593 | |
39649 | +#: fortran/resolve.c:12581 | |
39650 | #, gcc-internal-format, gfc-internal-format | |
39651 | msgid "Dummy argument '%s' at %L of LOCK_TYPE shall not be INTENT(OUT)" | |
39652 | msgstr "El argumento dummy '%s' en %L de LOCK_TYPE no puede ser INTENT(OUT)" | |
39653 | ||
39654 | -#: fortran/resolve.c:12605 | |
39655 | +#: fortran/resolve.c:12593 | |
39656 | #, gcc-internal-format, gfc-internal-format | |
39657 | msgid "Function result '%s' at %L shall not be a coarray or have a coarray component" | |
39658 | msgstr "El resultado de la función '%s' en %L no puede ser una comatriz o tener un componente comatriz" | |
39659 | ||
39660 | -#: fortran/resolve.c:12614 | |
39661 | +#: fortran/resolve.c:12602 | |
39662 | #, gcc-internal-format, gfc-internal-format | |
39663 | msgid "Variable '%s' at %L of TYPE(C_PTR) or TYPE(C_FUNPTR) shall not be a coarray" | |
39664 | msgstr "La variable '%s' en %L de TYPE(C_PTR) o TYPE(C_FUNPTR) no debe ser una comatriz" | |
39665 | ||
39666 | -#: fortran/resolve.c:12626 | |
39667 | +#: fortran/resolve.c:12614 | |
39668 | #, gcc-internal-format, gfc-internal-format | |
39669 | msgid "Variable '%s' at %L with coarray component shall be a nonpointer, nonallocatable scalar" | |
39670 | msgstr "La variable '%s' en %L con componente de comatriz debe ser un escalar que no sea puntero alojable" | |
39671 | ||
39672 | -#: fortran/resolve.c:12641 | |
39673 | +#: fortran/resolve.c:12629 | |
39674 | #, gcc-internal-format, gfc-internal-format | |
39675 | msgid "Variable '%s' at %L is a coarray and is not ALLOCATABLE, SAVE nor a dummy argument" | |
39676 | msgstr "La variable '%s' en %L es una comatriz y no es ALLOCATABLE, SAVE ni un argumento dummy" | |
39677 | ||
39678 | -#: fortran/resolve.c:12649 | |
39679 | +#: fortran/resolve.c:12637 | |
39680 | #, gcc-internal-format, gfc-internal-format | |
39681 | msgid "Coarray variable '%s' at %L shall not have codimensions with deferred shape" | |
39682 | msgstr "La variable de comatriz '%s' en %L no debe tener codimensiones con forma diferida" | |
39683 | ||
39684 | -#: fortran/resolve.c:12656 | |
39685 | +#: fortran/resolve.c:12644 | |
39686 | #, gcc-internal-format, gfc-internal-format | |
39687 | msgid "Allocatable coarray variable '%s' at %L must have deferred shape" | |
39688 | msgstr "La variable comatriz allocatable '%s' en %L debe tener forma diferida" | |
39689 | ||
39690 | -#: fortran/resolve.c:12668 | |
39691 | +#: fortran/resolve.c:12656 | |
39692 | #, gcc-internal-format, gfc-internal-format | |
39693 | msgid "Variable '%s' at %L is INTENT(OUT) and can thus not be an allocatable coarray or have coarray components" | |
39694 | msgstr "La variable '%s' en %L es INTENT(OUT) y por lo tanto no puede ser una comatriz allocatable o tener componentes comatriz" | |
39695 | ||
39696 | -#: fortran/resolve.c:12677 | |
39697 | +#: fortran/resolve.c:12665 | |
39698 | #, gcc-internal-format, gfc-internal-format | |
39699 | msgid "Coarray dummy variable '%s' at %L not allowed in BIND(C) procedure '%s'" | |
39700 | msgstr "No se permite la variable dummy comatriz '%s' en %L en el procedimiento BIND(C) '%s'" | |
39701 | ||
39702 | -#: fortran/resolve.c:12749 | |
39703 | +#: fortran/resolve.c:12737 | |
39704 | #, gcc-internal-format, gfc-internal-format | |
39705 | msgid "Threadprivate at %L isn't SAVEd" | |
39706 | msgstr "No se guarda (SAVE) el threadprivate en %L" | |
39707 | ||
39708 | -#: fortran/resolve.c:12843 | |
39709 | +#: fortran/resolve.c:12831 | |
39710 | #, gcc-internal-format, gfc-internal-format | |
39711 | msgid "BLOCK DATA element '%s' at %L must be in COMMON" | |
39712 | msgstr "El elemento BLOCK DATA '%s' en %L debe estar en COMMON" | |
39713 | ||
39714 | -#: fortran/resolve.c:12849 | |
39715 | +#: fortran/resolve.c:12837 | |
39716 | #, gcc-internal-format, gfc-internal-format | |
39717 | msgid "DATA array '%s' at %L must be specified in a previous declaration" | |
39718 | msgstr "La matriz DATA '%s' en %L se debe especificar en una declaración previa" | |
39719 | ||
39720 | -#: fortran/resolve.c:12858 | |
39721 | +#: fortran/resolve.c:12846 | |
39722 | #, gcc-internal-format, gfc-internal-format | |
39723 | msgid "DATA element '%s' at %L cannot have a coindex" | |
39724 | msgstr "El elemento DATA '%s' en %L no puede tener un coíndice" | |
39725 | ||
39726 | -#: fortran/resolve.c:12872 | |
39727 | +#: fortran/resolve.c:12860 | |
39728 | #, gcc-internal-format, gfc-internal-format | |
39729 | msgid "DATA element '%s' at %L is a pointer and so must be a full array" | |
39730 | msgstr "El elemento DATA '%s' en %L es un puntero y entonces debe ser una matriz completa" | |
39731 | ||
39732 | -#: fortran/resolve.c:12918 | |
39733 | +#: fortran/resolve.c:12906 | |
39734 | #, gcc-internal-format, gfc-internal-format | |
39735 | msgid "Nonconstant array section at %L in DATA statement" | |
39736 | msgstr "Sección de matriz no constante en %L en la declaración DATA" | |
39737 | ||
39738 | -#: fortran/resolve.c:12931 | |
39739 | +#: fortran/resolve.c:12919 | |
39740 | #, gcc-internal-format, gfc-internal-format | |
39741 | msgid "DATA statement at %L has more variables than values" | |
39742 | msgstr "La declaración DATA en %L tiene más variables que valores" | |
39743 | ||
39744 | -#: fortran/resolve.c:13030 | |
39745 | +#: fortran/resolve.c:13018 | |
39746 | #, gcc-internal-format, gfc-internal-format | |
39747 | msgid "start of implied-do loop at %L could not be simplified to a constant value" | |
39748 | msgstr "el inicio del bucle do implícito en %L no se puede simplificar a un valor constante" | |
39749 | ||
39750 | -#: fortran/resolve.c:13038 | |
39751 | +#: fortran/resolve.c:13026 | |
39752 | #, gcc-internal-format, gfc-internal-format | |
39753 | msgid "end of implied-do loop at %L could not be simplified to a constant value" | |
39754 | msgstr "el final del bucle do implícito en %L no se puede simplificar a un valor constante" | |
39755 | ||
39756 | -#: fortran/resolve.c:13046 | |
39757 | +#: fortran/resolve.c:13034 | |
39758 | #, gcc-internal-format, gfc-internal-format | |
39759 | msgid "step of implied-do loop at %L could not be simplified to a constant value" | |
39760 | msgstr "el paso del bucle do implícito en %L no se puede simplificar a un valor constante" | |
39761 | ||
39762 | -#: fortran/resolve.c:13171 | |
39763 | +#: fortran/resolve.c:13159 | |
39764 | #, gcc-internal-format, gfc-internal-format | |
39765 | msgid "DATA statement at %L has more values than variables" | |
39766 | msgstr "La declaración DATA en %L tiene más valores que variables" | |
39767 | ||
39768 | -#: fortran/resolve.c:13310 | |
39769 | +#: fortran/resolve.c:13298 | |
39770 | #, gcc-internal-format, gfc-internal-format | |
39771 | msgid "Label %d at %L defined but not used" | |
39772 | msgstr "Se define la etiqueta %d en %L pero no se usa" | |
39773 | ||
39774 | -#: fortran/resolve.c:13315 | |
39775 | +#: fortran/resolve.c:13303 | |
39776 | #, gcc-internal-format, gfc-internal-format | |
39777 | msgid "Label %d at %L defined but cannot be used" | |
39778 | msgstr "Se define la etiqueta %d en %L pero no se puede usar" | |
39779 | ||
39780 | -#: fortran/resolve.c:13399 | |
39781 | +#: fortran/resolve.c:13387 | |
39782 | #, gcc-internal-format, gfc-internal-format | |
39783 | msgid "Derived type variable '%s' at %L must have SEQUENCE attribute to be an EQUIVALENCE object" | |
39784 | msgstr "La variable de tipo derivado '%s' en %L debe tener el atributo SEQUENCE para ser un objeto EQUIVALENCE" | |
39785 | ||
39786 | -#: fortran/resolve.c:13408 | |
39787 | +#: fortran/resolve.c:13396 | |
39788 | #, gcc-internal-format, gfc-internal-format | |
39789 | msgid "Derived type variable '%s' at %L cannot have ALLOCATABLE components to be an EQUIVALENCE object" | |
39790 | msgstr "La variable de tipo derivado '%s' en %L no puede tener componentes ALLOCATABLE que sean un objeto EQUIVALENCE" | |
39791 | ||
39792 | -#: fortran/resolve.c:13416 | |
39793 | +#: fortran/resolve.c:13404 | |
39794 | #, gcc-internal-format, gfc-internal-format | |
39795 | msgid "Derived type variable '%s' at %L with default initialization cannot be in EQUIVALENCE with a variable in COMMON" | |
39796 | msgstr "La variable de tipo derivado '%s' en %L con inicializadores por defecto no puede ser un objeto EQUIVALENCE con una variable en COMMON" | |
39797 | ||
39798 | -#: fortran/resolve.c:13432 | |
39799 | +#: fortran/resolve.c:13420 | |
39800 | #, gcc-internal-format, gfc-internal-format | |
39801 | msgid "Derived type variable '%s' at %L with pointer component(s) cannot be an EQUIVALENCE object" | |
39802 | msgstr "La variable de tipo derivado '%s' en %L con componente(s) de puntero no puede ser un objeto EQUIVALENCE" | |
39803 | ||
39804 | -#: fortran/resolve.c:13535 | |
39805 | +#: fortran/resolve.c:13523 | |
39806 | #, gcc-internal-format, gfc-internal-format | |
39807 | msgid "Syntax error in EQUIVALENCE statement at %L" | |
39808 | msgstr "Error sintáctico en la declaración EQUIVALENCE en %L" | |
39809 | ||
39810 | -#: fortran/resolve.c:13550 | |
39811 | +#: fortran/resolve.c:13538 | |
39812 | #, gcc-internal-format, gfc-internal-format | |
39813 | msgid "Either all or none of the objects in the EQUIVALENCE set at %L shall have the PROTECTED attribute" | |
39814 | msgstr "Todos o ninguno de los objetos en el conjunto EQUIVALENCE en %L deben tener el atributo PROTECTED" | |
39815 | ||
39816 | -#: fortran/resolve.c:13562 | |
39817 | +#: fortran/resolve.c:13550 | |
39818 | #, gcc-internal-format, gfc-internal-format | |
39819 | msgid "Common block member '%s' at %L cannot be an EQUIVALENCE object in the pure procedure '%s'" | |
39820 | msgstr "El miembro de bloque común '%s' en %L no puede ser un objeto EQUIVALENCE en el procedimiento puro '%s'" | |
39821 | ||
39822 | -#: fortran/resolve.c:13571 | |
39823 | +#: fortran/resolve.c:13559 | |
39824 | #, gcc-internal-format, gfc-internal-format | |
39825 | msgid "Named constant '%s' at %L cannot be an EQUIVALENCE object" | |
39826 | msgstr "La constante nombrada '%s' en %L no puede ser un objeto EQUIVALENCE" | |
39827 | ||
39828 | -#: fortran/resolve.c:13650 | |
39829 | +#: fortran/resolve.c:13638 | |
39830 | #, gcc-internal-format, gfc-internal-format | |
39831 | msgid "Array '%s' at %L with non-constant bounds cannot be an EQUIVALENCE object" | |
39832 | msgstr "La matriz '%s' en %L con límites que no son constantes no puede ser un objeto EQUIVALENCE" | |
39833 | ||
39834 | -#: fortran/resolve.c:13661 | |
39835 | +#: fortran/resolve.c:13649 | |
39836 | #, gcc-internal-format, gfc-internal-format | |
39837 | msgid "Structure component '%s' at %L cannot be an EQUIVALENCE object" | |
39838 | msgstr "El componente de estructura '%s' en %L no puede ser un objeto EQUIVALENCE" | |
39839 | ||
39840 | -#: fortran/resolve.c:13672 | |
39841 | +#: fortran/resolve.c:13660 | |
39842 | #, gcc-internal-format, gfc-internal-format | |
39843 | msgid "Substring at %L has length zero" | |
39844 | msgstr "La subcadena en %L tiene longitud cero" | |
39845 | ||
39846 | -#: fortran/resolve.c:13715 | |
39847 | +#: fortran/resolve.c:13703 | |
39848 | #, gcc-internal-format, gfc-internal-format | |
39849 | msgid "Fortran 2003: PUBLIC function '%s' at %L of PRIVATE type '%s'" | |
39850 | msgstr "Fortran 2003: La función PUBLIC '%s' en %L es de tipo derivado PRIVATE '%s'" | |
39851 | ||
39852 | -#: fortran/resolve.c:13728 | |
39853 | +#: fortran/resolve.c:13716 | |
39854 | #, gcc-internal-format, gfc-internal-format | |
39855 | msgid "ENTRY '%s' at %L has no IMPLICIT type" | |
39856 | msgstr "ENTRY '%s' en %L no tiene tipo IMPLICIT" | |
39857 | ||
39858 | -#: fortran/resolve.c:13745 | |
39859 | +#: fortran/resolve.c:13733 | |
39860 | #, gcc-internal-format, gfc-internal-format | |
39861 | msgid "User operator procedure '%s' at %L must be a FUNCTION" | |
39862 | msgstr "El procedimiento de operador de usuario '%s' en %L debe ser FUNCTION" | |
39863 | ||
39864 | -#: fortran/resolve.c:13755 | |
39865 | +#: fortran/resolve.c:13743 | |
39866 | #, gcc-internal-format, gfc-internal-format | |
39867 | msgid "User operator procedure '%s' at %L cannot be assumed character length" | |
39868 | msgstr "El procedimiento de operador de usuario '%s' en %L no puede ser de longitud de carácter asumido" | |
39869 | ||
39870 | -#: fortran/resolve.c:13763 | |
39871 | +#: fortran/resolve.c:13751 | |
39872 | #, gcc-internal-format, gfc-internal-format | |
39873 | msgid "User operator procedure '%s' at %L must have at least one argument" | |
39874 | msgstr "El procedimiento de operador de usuario '%s' en %L debe tener al menos un argumento" | |
39875 | ||
39876 | -#: fortran/resolve.c:13777 | |
39877 | +#: fortran/resolve.c:13765 | |
39878 | #, gcc-internal-format, gfc-internal-format | |
39879 | msgid "First argument of operator interface at %L cannot be optional" | |
39880 | msgstr "El primer argumento de la interfaz de operador en %L no puede ser opcional" | |
39881 | ||
39882 | -#: fortran/resolve.c:13795 | |
39883 | +#: fortran/resolve.c:13783 | |
39884 | #, gcc-internal-format, gfc-internal-format | |
39885 | msgid "Second argument of operator interface at %L cannot be optional" | |
39886 | msgstr "El segundo argumento de la interfaz de operador en %L no puede ser opcional" | |
39887 | ||
39888 | -#: fortran/resolve.c:13802 | |
39889 | +#: fortran/resolve.c:13790 | |
39890 | #, gcc-internal-format, gfc-internal-format | |
39891 | msgid "Operator interface at %L must have, at most, two arguments" | |
39892 | msgstr "La interfaz de operador en %L debe tener, cuando mucho, dos argumentos" | |
39893 | ||
39894 | -#: fortran/resolve.c:13878 | |
39895 | +#: fortran/resolve.c:13866 | |
39896 | #, gcc-internal-format, gfc-internal-format | |
39897 | msgid "Contained procedure '%s' at %L of a PURE procedure must also be PURE" | |
39898 | msgstr "El procedimiento contenido '%s' en %L de un procedimiento PURE también debe ser PURE" | |
39899 | @@ -42805,22 +43011,22 @@ | |
39900 | msgid "Result of SCALE overflows its kind at %L" | |
39901 | msgstr "El resultado de SCALE desborda su género en %L" | |
39902 | ||
39903 | -#: fortran/simplify.c:5861 | |
39904 | +#: fortran/simplify.c:5862 | |
39905 | #, gcc-internal-format, gfc-internal-format | |
39906 | msgid "Argument of SQRT at %L has a negative value" | |
39907 | msgstr "El argumento de SQRT en %L tiene un valor negativo" | |
39908 | ||
39909 | -#: fortran/simplify.c:6172 | |
39910 | +#: fortran/simplify.c:6173 | |
39911 | #, gcc-internal-format, gfc-internal-format | |
39912 | msgid "Out of bounds in IMAGE_INDEX at %L for dimension %d, SUB has %ld and COARRAY lower bound is %ld)" | |
39913 | msgstr "Fuera de límites en IMAGE_INDEX en %L para la dimensión %d, SUB tiene %ld y el límite inferior de COARRAY es %ld)" | |
39914 | ||
39915 | -#: fortran/simplify.c:6195 | |
39916 | +#: fortran/simplify.c:6196 | |
39917 | #, gcc-internal-format, gfc-internal-format | |
39918 | msgid "Out of bounds in IMAGE_INDEX at %L for dimension %d, SUB has %ld and COARRAY upper bound is %ld)" | |
39919 | msgstr "Fuera de límites en IMAGE_INDEX en %L para la dimensión %d, SUB tiene %ld y el límite superior de COARRAY es %ld)" | |
39920 | ||
39921 | -#: fortran/simplify.c:6612 | |
39922 | +#: fortran/simplify.c:6613 | |
39923 | #, gcc-internal-format, gfc-internal-format | |
39924 | msgid "Character '%s' in string at %L cannot be converted into character kind %d" | |
39925 | msgstr "El carácter '%s' en la cadena en %L no se puede convertir al género de carácter %d" | |
39926 | @@ -43103,50 +43309,50 @@ | |
39927 | msgid "Label %d at %C previously used as branch target" | |
39928 | msgstr "La etiqueta %d en %C se utilizó previamente como objetivo de ramificación" | |
39929 | ||
39930 | -#: fortran/symbol.c:2578 | |
39931 | +#: fortran/symbol.c:2576 | |
39932 | #, gcc-internal-format, gfc-internal-format | |
39933 | msgid "Name '%s' at %C is an ambiguous reference to '%s' from module '%s'" | |
39934 | msgstr "El nombre '%s' en %C es una referencia ambigua a '%s' del módulo '%s'" | |
39935 | ||
39936 | -#: fortran/symbol.c:2581 | |
39937 | +#: fortran/symbol.c:2579 | |
39938 | #, gcc-internal-format, gfc-internal-format | |
39939 | msgid "Name '%s' at %C is an ambiguous reference to '%s' from current program unit" | |
39940 | msgstr "El nombre '%s' en %C es una referencia ambigua a '%s' de la unidad de programa actual" | |
39941 | ||
39942 | #. Symbol is from another namespace. | |
39943 | -#: fortran/symbol.c:2761 | |
39944 | +#: fortran/symbol.c:2759 | |
39945 | #, gcc-internal-format, gfc-internal-format | |
39946 | msgid "Symbol '%s' at %C has already been host associated" | |
39947 | msgstr "El símbolo '%s' en %C ya se había asociado con el anfitrión" | |
39948 | ||
39949 | -#: fortran/symbol.c:3604 | |
39950 | +#: fortran/symbol.c:3602 | |
39951 | #, gcc-internal-format, gfc-internal-format | |
39952 | msgid "Derived type '%s' declared at %L must have the BIND attribute to be C interoperable" | |
39953 | msgstr "El tipo derivado '%s' declarado en %L debe tener el atributo BIND para ser interoperable con C" | |
39954 | ||
39955 | -#: fortran/symbol.c:3622 | |
39956 | +#: fortran/symbol.c:3620 | |
39957 | #, gcc-internal-format, gfc-internal-format | |
39958 | msgid "Derived type '%s' with BIND(C) attribute at %L is empty, and may be inaccessible by the C companion processor" | |
39959 | msgstr "El tipo derivado '%s' con atributo BIND(C) en %L está vacío, y puede ser inaccesible para el procesador acompañante de C" | |
39960 | ||
39961 | -#: fortran/symbol.c:3643 | |
39962 | +#: fortran/symbol.c:3641 | |
39963 | #, gcc-internal-format, gfc-internal-format | |
39964 | msgid "Component '%s' at %L cannot have the POINTER attribute because it is a member of the BIND(C) derived type '%s' at %L" | |
39965 | msgstr "El componente '%s' en %L no puede tener el atributo POINTER porque es un miembro del tipo derivado BIND(C) '%s' en %L" | |
39966 | ||
39967 | -#: fortran/symbol.c:3653 | |
39968 | +#: fortran/symbol.c:3651 | |
39969 | #, gcc-internal-format, gfc-internal-format | |
39970 | msgid "Procedure pointer component '%s' at %L cannot be a member of the BIND(C) derived type '%s' at %L" | |
39971 | msgstr "El procedimiento de componente puntero '%s' en %L no puede ser un miembro del tipo derivado BIND(C) '%s' en %L" | |
39972 | ||
39973 | -#: fortran/symbol.c:3664 | |
39974 | +#: fortran/symbol.c:3662 | |
39975 | #, gcc-internal-format, gfc-internal-format | |
39976 | msgid "Component '%s' at %L cannot have the ALLOCATABLE attribute because it is a member of the BIND(C) derived type '%s' at %L" | |
39977 | msgstr "El componente '%s' en %L no puede tener el atributo ALLOCATABLE porque es un miembro del tipo derivado BIND(C) '%s' en %L" | |
39978 | ||
39979 | #. If the derived type is bind(c), all fields must be | |
39980 | #. interop. | |
39981 | -#: fortran/symbol.c:3702 | |
39982 | +#: fortran/symbol.c:3700 | |
39983 | #, gcc-internal-format, gfc-internal-format | |
39984 | msgid "Component '%s' in derived type '%s' at %L may not be C interoperable, even though derived type '%s' is BIND(C)" | |
39985 | msgstr "El componente '%s' en el tipo derivado '%s' en %L tal vez no es interoperable con C, aún cuando el tipo derivado '%s' es BIND(C)" | |
39986 | @@ -43154,27 +43360,27 @@ | |
39987 | #. If derived type is param to bind(c) routine, or to one | |
39988 | #. of the iso_c_binding procs, it must be interoperable, so | |
39989 | #. all fields must interop too. | |
39990 | -#: fortran/symbol.c:3711 | |
39991 | +#: fortran/symbol.c:3709 | |
39992 | #, gcc-internal-format, gfc-internal-format | |
39993 | msgid "Component '%s' in derived type '%s' at %L may not be C interoperable" | |
39994 | msgstr "El componente '%s' en el tipo derivado '%s' en %L tal vez no es interoperable con C" | |
39995 | ||
39996 | -#: fortran/symbol.c:3725 | |
39997 | +#: fortran/symbol.c:3723 | |
39998 | #, gcc-internal-format, gfc-internal-format | |
39999 | msgid "Derived type '%s' at %L cannot be declared with both PRIVATE and BIND(C) attributes" | |
40000 | msgstr "El tipo derivado '%s' en %L no se puede declarar con atributos PRIVATE y BIND(C) al mismo tiempo" | |
40001 | ||
40002 | -#: fortran/symbol.c:3733 | |
40003 | +#: fortran/symbol.c:3731 | |
40004 | #, gcc-internal-format, gfc-internal-format | |
40005 | msgid "Derived type '%s' at %L cannot have the SEQUENCE attribute because it is BIND(C)" | |
40006 | msgstr "El tipo derivado '%s' en %L no puede tener el atributo SEQUENCE porque es BIND(C)" | |
40007 | ||
40008 | -#: fortran/symbol.c:4740 | |
40009 | +#: fortran/symbol.c:4739 | |
40010 | #, gcc-internal-format, gfc-internal-format | |
40011 | msgid "Symbol '%s' is used before it is typed at %L" | |
40012 | msgstr "El símbolo '%s' se usa antes de escribirse en %L" | |
40013 | ||
40014 | -#: fortran/symbol.c:4746 | |
40015 | +#: fortran/symbol.c:4745 | |
40016 | #, gcc-internal-format, gfc-internal-format | |
40017 | msgid "Extension: Symbol '%s' is used before it is typed at %L" | |
40018 | msgstr "Extensión: Se usa el símbolo '%s' antes de escribirse en %L" | |
40019 | @@ -43189,17 +43395,17 @@ | |
40020 | msgid "BOZ constant at %L is too large (%ld vs %ld bits)" | |
40021 | msgstr "La constante BOZ en %L es demasiado grande (%ld vs %ld bits)" | |
40022 | ||
40023 | -#: fortran/trans-array.c:6999 | |
40024 | +#: fortran/trans-array.c:6998 | |
40025 | #, gcc-internal-format, gfc-internal-format | |
40026 | msgid "Creating array temporary at %L for argument '%s'" | |
40027 | msgstr "Se crea una matriz temporal en %L para el argumento '%s'" | |
40028 | ||
40029 | -#: fortran/trans-array.c:8074 | |
40030 | +#: fortran/trans-array.c:8124 | |
40031 | #, gcc-internal-format | |
40032 | msgid "Possible front-end bug: Deferred array size without pointer, allocatable attribute or derived type without allocatable components." | |
40033 | msgstr "Posible bicho del frente: Tamaño de matriz diferido sin atributo pointer, allocatable o tipo derivado sin componentes allocatable." | |
40034 | ||
40035 | -#: fortran/trans-array.c:8556 | |
40036 | +#: fortran/trans-array.c:8621 | |
40037 | #, gcc-internal-format, gfc-internal-format | |
40038 | msgid "bad expression type during walk (%d)" | |
40039 | msgstr "tipo de expresión errónea durante la caminata (%d)" | |
40040 | @@ -43280,62 +43486,62 @@ | |
40041 | msgid "non-constant initialization expression at %L" | |
40042 | msgstr "expresión de inicialización que no es constante en %L" | |
40043 | ||
40044 | -#: fortran/trans-decl.c:1348 | |
40045 | +#: fortran/trans-decl.c:1347 | |
40046 | #, gcc-internal-format | |
40047 | msgid "intrinsic variable which isn't a procedure" | |
40048 | msgstr "variable intrínseca que no es un procedimiento" | |
40049 | ||
40050 | -#: fortran/trans-decl.c:3519 fortran/trans-decl.c:5367 | |
40051 | +#: fortran/trans-decl.c:3518 fortran/trans-decl.c:5382 | |
40052 | #, gcc-internal-format, gfc-internal-format | |
40053 | msgid "Return value of function '%s' at %L not set" | |
40054 | msgstr "No se define el valor de devolución de la función '%s' en %L" | |
40055 | ||
40056 | -#: fortran/trans-decl.c:3838 | |
40057 | +#: fortran/trans-decl.c:3837 | |
40058 | #, gcc-internal-format | |
40059 | msgid "Deferred type parameter not yet supported" | |
40060 | msgstr "Aún no se admite un parámetro de tipo diferido" | |
40061 | ||
40062 | -#: fortran/trans-decl.c:4045 | |
40063 | +#: fortran/trans-decl.c:4044 | |
40064 | #, gcc-internal-format, gfc-internal-format | |
40065 | msgid "backend decl for module variable %s already exists" | |
40066 | msgstr "ya existe la declaración del extremo trasero para la variable de módulo %s" | |
40067 | ||
40068 | -#: fortran/trans-decl.c:4569 | |
40069 | +#: fortran/trans-decl.c:4568 | |
40070 | #, gcc-internal-format, gfc-internal-format | |
40071 | msgid "Dummy argument '%s' at %L was declared INTENT(OUT) but was not set" | |
40072 | msgstr "El argumento dummy '%s' en %L se declaró INTENT(OUT) pero no se estableció" | |
40073 | ||
40074 | -#: fortran/trans-decl.c:4573 | |
40075 | +#: fortran/trans-decl.c:4572 | |
40076 | #, gcc-internal-format, gfc-internal-format | |
40077 | msgid "Derived-type dummy argument '%s' at %L was declared INTENT(OUT) but was not set and does not have a default initializer" | |
40078 | msgstr "El argumento dummy de tipo derivado '%s' en %L se declaró INTENT(OUT) pero no se estableció y no tiene un inicializador por defecto" | |
40079 | ||
40080 | -#: fortran/trans-decl.c:4582 | |
40081 | +#: fortran/trans-decl.c:4581 fortran/trans-decl.c:4693 | |
40082 | #, gcc-internal-format, gfc-internal-format | |
40083 | msgid "Unused dummy argument '%s' at %L" | |
40084 | msgstr "Argumento dummy sin uso '%s' en %L" | |
40085 | ||
40086 | -#: fortran/trans-decl.c:4595 | |
40087 | +#: fortran/trans-decl.c:4594 | |
40088 | #, gcc-internal-format, gfc-internal-format | |
40089 | msgid "Unused variable '%s' declared at %L" | |
40090 | msgstr "Se declaró la variable '%s' sin uso en %L" | |
40091 | ||
40092 | -#: fortran/trans-decl.c:4602 | |
40093 | +#: fortran/trans-decl.c:4601 | |
40094 | #, gcc-internal-format, gfc-internal-format | |
40095 | msgid "Unused module variable '%s' which has been explicitly imported at %L" | |
40096 | msgstr "Variable de módulo '%s' sin uso la cual se importó explícitamente en %L" | |
40097 | ||
40098 | -#: fortran/trans-decl.c:4649 | |
40099 | +#: fortran/trans-decl.c:4648 | |
40100 | #, gcc-internal-format, gfc-internal-format | |
40101 | msgid "Unused parameter '%s' declared at %L" | |
40102 | msgstr "Se declaró el parámetro '%s' sin uso en %L" | |
40103 | ||
40104 | -#: fortran/trans-decl.c:4652 | |
40105 | +#: fortran/trans-decl.c:4651 | |
40106 | #, gcc-internal-format, gfc-internal-format | |
40107 | msgid "Unused parameter '%s' which has been explicitly imported at %L" | |
40108 | msgstr "Parámetro '%s' sin uso el cual se importó explícitamente en %L" | |
40109 | ||
40110 | -#: fortran/trans-decl.c:4667 | |
40111 | +#: fortran/trans-decl.c:4666 | |
40112 | #, gcc-internal-format, gfc-internal-format | |
40113 | msgid "Return value '%s' of function '%s' declared at %L not set" | |
40114 | msgstr "No se define el valor de devolución '%s' de la función '%s' declarada en %L" | |
40115 | @@ -43376,12 +43582,12 @@ | |
40116 | msgid "gfc_trans_omp_workshare(): Bad statement code" | |
40117 | msgstr "gfc_trans_omp_workshare(): Código de declaración erróneo" | |
40118 | ||
40119 | -#: fortran/trans-stmt.c:517 | |
40120 | +#: fortran/trans-stmt.c:539 | |
40121 | #, gcc-internal-format, gfc-internal-format | |
40122 | msgid "An alternate return at %L without a * dummy argument" | |
40123 | msgstr "Una devolución alternativa en %L sin un argumento dummy *" | |
40124 | ||
40125 | -#: fortran/trans-stmt.c:840 | |
40126 | +#: fortran/trans-stmt.c:862 | |
40127 | #, gcc-internal-format, gfc-internal-format | |
40128 | msgid "Sorry, only support for integer kind %d implemented for image-set at %L" | |
40129 | msgstr "Lo siento, sólo se admite integer kind %d implementado para el conjunto imagen en %L" | |
40130 | @@ -43799,97 +44005,97 @@ | |
40131 | msgid "%s: section %s is missing" | |
40132 | msgstr "%s: falta la sección %s" | |
40133 | ||
40134 | -#: lto/lto.c:957 | |
40135 | +#: lto/lto.c:950 | |
40136 | #, gcc-internal-format | |
40137 | msgid "bytecode stream: garbage at the end of symbols section" | |
40138 | msgstr "flujo de bytecode: basura al final de la sección de símbolos" | |
40139 | ||
40140 | -#: lto/lto.c:984 | |
40141 | +#: lto/lto.c:977 | |
40142 | #, gcc-internal-format | |
40143 | msgid "could not parse hex number" | |
40144 | msgstr "no se puede decodificar el número hexadecimal" | |
40145 | ||
40146 | -#: lto/lto.c:1017 | |
40147 | +#: lto/lto.c:1010 | |
40148 | #, gcc-internal-format, gfc-internal-format | |
40149 | msgid "unexpected file name %s in linker resolution file. Expected %s" | |
40150 | msgstr "nombre de fichero inesperado %s en el fichero de resolución de enlace. Se esperaba %s" | |
40151 | ||
40152 | -#: lto/lto.c:1026 | |
40153 | +#: lto/lto.c:1019 | |
40154 | #, gcc-internal-format | |
40155 | msgid "could not parse file offset" | |
40156 | msgstr "no se puede abrir el fichero de desplazamiento" | |
40157 | ||
40158 | -#: lto/lto.c:1029 | |
40159 | +#: lto/lto.c:1022 | |
40160 | #, gcc-internal-format | |
40161 | msgid "unexpected offset" | |
40162 | msgstr "desplazamiento inesperado" | |
40163 | ||
40164 | -#: lto/lto.c:1050 | |
40165 | +#: lto/lto.c:1043 | |
40166 | #, gcc-internal-format | |
40167 | msgid "invalid line in the resolution file" | |
40168 | msgstr "línea inválida en el fichero de resolución" | |
40169 | ||
40170 | -#: lto/lto.c:1063 | |
40171 | +#: lto/lto.c:1056 | |
40172 | #, gcc-internal-format | |
40173 | msgid "invalid resolution in the resolution file" | |
40174 | msgstr "resolución inválida en el fichero de resolución" | |
40175 | ||
40176 | -#: lto/lto.c:1069 | |
40177 | +#: lto/lto.c:1062 | |
40178 | #, gcc-internal-format | |
40179 | msgid "resolution sub id " | |
40180 | msgstr "sub id de resolución" | |
40181 | ||
40182 | -#: lto/lto.c:1164 | |
40183 | +#: lto/lto.c:1157 | |
40184 | #, gcc-internal-format, gfc-internal-format | |
40185 | msgid "cannot read LTO decls from %s" | |
40186 | msgstr "no se pueden leer las decls LTO de %s" | |
40187 | ||
40188 | -#: lto/lto.c:1268 | |
40189 | +#: lto/lto.c:1261 | |
40190 | #, gcc-internal-format, gfc-internal-format | |
40191 | msgid "Cannot open %s" | |
40192 | msgstr "No se puede abrir %s" | |
40193 | ||
40194 | -#: lto/lto.c:1289 | |
40195 | +#: lto/lto.c:1282 | |
40196 | #, gcc-internal-format, gfc-internal-format | |
40197 | msgid "Cannot map %s" | |
40198 | msgstr "No se puede mapear %s" | |
40199 | ||
40200 | -#: lto/lto.c:1300 | |
40201 | +#: lto/lto.c:1293 | |
40202 | #, gcc-internal-format, gfc-internal-format | |
40203 | msgid "Cannot read %s" | |
40204 | msgstr "No se puede leer %s" | |
40205 | ||
40206 | -#: lto/lto.c:2279 | |
40207 | +#: lto/lto.c:2272 | |
40208 | #, gcc-internal-format | |
40209 | msgid "no LTRANS output list filename provided" | |
40210 | msgstr "no se proporcionó el nombre de fichero de lista de salida TRANS" | |
40211 | ||
40212 | -#: lto/lto.c:2282 | |
40213 | +#: lto/lto.c:2275 | |
40214 | #, gcc-internal-format | |
40215 | msgid "opening LTRANS output list %s: %m" | |
40216 | msgstr "se abre la lista de salida LTRANS %s: %m" | |
40217 | ||
40218 | -#: lto/lto.c:2328 | |
40219 | +#: lto/lto.c:2321 | |
40220 | #, gcc-internal-format | |
40221 | msgid "lto_obj_file_open() failed" | |
40222 | msgstr "falló lto_obj_file_open()" | |
40223 | ||
40224 | -#: lto/lto.c:2354 | |
40225 | +#: lto/lto.c:2347 | |
40226 | #, gcc-internal-format | |
40227 | msgid "writing to LTRANS output list %s: %m" | |
40228 | msgstr "se escribe a la lista de salida LTRANS %s: %m" | |
40229 | ||
40230 | -#: lto/lto.c:2362 | |
40231 | +#: lto/lto.c:2355 | |
40232 | #, gcc-internal-format | |
40233 | msgid "closing LTRANS output list %s: %m" | |
40234 | msgstr "se cierra la lista de salida LTRANS %s: %m" | |
40235 | ||
40236 | -#: lto/lto.c:2589 | |
40237 | +#: lto/lto.c:2582 | |
40238 | #, gcc-internal-format | |
40239 | msgid "could not open symbol resolution file: %m" | |
40240 | msgstr "no se puede abrir el fichero de resolución de símbolos: %m" | |
40241 | ||
40242 | -#: lto/lto.c:2664 | |
40243 | +#: lto/lto.c:2657 | |
40244 | #, gcc-internal-format | |
40245 | msgid "errors during merging of translation units" | |
40246 | msgstr "errores durante la mezcla de unidades de traducción" | |
40247 | @@ -44829,6 +45035,33 @@ | |
40248 | msgid "creating selector for nonexistent method %qE" | |
40249 | msgstr "se crea un selector para el método %qE que no existe" | |
40250 | ||
40251 | +#~ msgid "Interpret any REAL(4) as a REAl(16)" | |
40252 | +#~ msgstr "Interpreta cualquier REAL(4) como un REAL(16)" | |
40253 | + | |
40254 | +#~ msgid "Interpret any REAL(8) as a REAl(16)" | |
40255 | +#~ msgstr "Interpreta cualquier REAL(8) como un REAL(16)" | |
40256 | + | |
40257 | +#~ msgid "Warn about" | |
40258 | +#~ msgstr "Avisa sobre" | |
40259 | + | |
40260 | +#~ msgid "Pay attention to the \"inline\" keyword" | |
40261 | +#~ msgstr "Pone atención a la palabra clave \"inline\"" | |
40262 | + | |
40263 | +#~ msgid "Integrate simple functions into their callers" | |
40264 | +#~ msgstr "Integra las funciones simples en sus invocadores" | |
40265 | + | |
40266 | +#~ msgid "arguments 1 and 2 have different types" | |
40267 | +#~ msgstr "los argumentos 1 y 2 tienen tipos diferentes" | |
40268 | + | |
40269 | +#~ msgid "%s expects a compile time long long integer constant as first argument" | |
40270 | +#~ msgstr "%s espera una constante entera long long en tiempo de compilación como primer argumento" | |
40271 | + | |
40272 | +#~ msgid "-mno-r11 must not be used if you have trampolines" | |
40273 | +#~ msgstr "no se debe usar -mno-r11 si tiene trampolines" | |
40274 | + | |
40275 | +#~ msgid "Fortran F2003: ROUND= at %C not allowed in Fortran 95" | |
40276 | +#~ msgstr "Fortran F2003: No se permite ROUND= en %C en Fortran 95" | |
40277 | + | |
40278 | #~ msgid "internal gcc abort in %s, at %s:%d" | |
40279 | #~ msgstr "aborto interno de gcc en %s, en %s:%d" | |
40280 | ||
40281 | @@ -44874,12 +45107,6 @@ | |
40282 | #~ msgid "invalid Z register replacement for insn" | |
40283 | #~ msgstr "reemplazo de registro Z inválido para la insn" | |
40284 | ||
40285 | -#~ msgid "invalid %%c operand" | |
40286 | -#~ msgstr "operando %%c inválido" | |
40287 | - | |
40288 | -#~ msgid "invalid %%d operand" | |
40289 | -#~ msgstr "operando %%d inválido" | |
40290 | - | |
40291 | #~ msgid "%s:%d:%d: recursively instantiated from %qs\n" | |
40292 | #~ msgstr "%s:%d:%d: instanciado recursivamente desde %qs\n" | |
40293 | ||
40294 | @@ -44943,9 +45170,6 @@ | |
40295 | #~ msgid "Compile for the Thumb not the ARM" | |
40296 | #~ msgstr "Compila para el Thumb on para el ARM" | |
40297 | ||
40298 | -#~ msgid "Support multiply accumulate instructions" | |
40299 | -#~ msgstr "Da soporte a múltiples instrucciones de acumulador" | |
40300 | - | |
40301 | #~ msgid "Do not use push to store function arguments" | |
40302 | #~ msgstr "No usa push para guardar los argumentos de función" | |
40303 | ||
40304 | @@ -45145,18 +45369,12 @@ | |
40305 | #~ msgid "invalid floating point abi: -mfloat-abi=%s" | |
40306 | #~ msgstr "abi de coma flotante inválida: -mfloat-abi=%s" | |
40307 | ||
40308 | -#~ msgid "invalid thread pointer option: -mtp=%s" | |
40309 | -#~ msgstr "opción de puntero a hilo inválida: -mtp=%s" | |
40310 | - | |
40311 | #~ msgid "unrecognized argument to -mmcu= option: %qs" | |
40312 | #~ msgstr "no se reconoce el argumento para la opción -mmcu=: %qs" | |
40313 | ||
40314 | #~ msgid "See --target-help for supported MCUs" | |
40315 | #~ msgstr "Vea --target-help para MCUs permitidos" | |
40316 | ||
40317 | -#~ msgid "profiler support for CRX" | |
40318 | -#~ msgstr "soporte de análisis de perfil para CRX" | |
40319 | - | |
40320 | #~ msgid "unknown ABI (%s) for %sabi=%s %s" | |
40321 | #~ msgstr "ABI desconocida (%s) para %sabi=%s %s" | |
40322 | ||
40323 | @@ -48102,9 +48320,6 @@ | |
40324 | #~ msgid "Generate code for C30 CPU" | |
40325 | #~ msgstr "Genera código para el CPU C30" | |
40326 | ||
40327 | -#~ msgid "Generate code for C31 CPU" | |
40328 | -#~ msgstr "Genera código para el CPU C31" | |
40329 | - | |
40330 | #~ msgid "Generate code for C32 CPU" | |
40331 | #~ msgstr "Genera código para el CPU C32" | |
40332 | ||
40333 | Index: gcc/po/fr.po | |
40334 | =================================================================== | |
40335 | --- gcc/po/fr.po (.../tags/gcc_4_7_0_release) (wersja 187293) | |
40336 | +++ gcc/po/fr.po (.../branches/gcc-4_7-branch) (wersja 187293) | |
40337 | @@ -121,7 +121,7 @@ | |
40338 | msgstr "" | |
40339 | "Project-Id-Version: GNU gcc 3.4.3\n" | |
40340 | "Report-Msgid-Bugs-To: http://gcc.gnu.org/bugs.html\n" | |
40341 | -"POT-Creation-Date: 2012-01-27 16:13+0000\n" | |
40342 | +"POT-Creation-Date: 2012-03-18 14:00+0000\n" | |
40343 | "PO-Revision-Date: 2008-04-23 19:30+0000\n" | |
40344 |