1 |
263 |
jeremybenn |
This file contains information about GCC releases which has been generated
|
2 |
|
|
automatically from the online release notes. It covers releases of GCC
|
3 |
|
|
(and the former EGCS project) since EGCS 1.0, on the line of development
|
4 |
|
|
that led to GCC 3. For information on GCC 2.8.1 and older releases of GCC 2,
|
5 |
|
|
see ONEWS.
|
6 |
|
|
|
7 |
|
|
======================================================================
|
8 |
|
|
http://gcc.gnu.org/gcc-4.5/index.html
|
9 |
|
|
|
10 |
|
|
GCC 4.5 Release Series
|
11 |
|
|
|
12 |
|
|
July 31, 2010
|
13 |
|
|
|
14 |
|
|
The [1]GNU project and the GCC developers are pleased to announce the
|
15 |
|
|
release of GCC 4.5.1.
|
16 |
|
|
|
17 |
|
|
This release is a bug-fix release, containing fixes for regressions in
|
18 |
|
|
GCC 4.5.0 relative to previous releases of GCC.
|
19 |
|
|
|
20 |
|
|
Release History
|
21 |
|
|
|
22 |
|
|
GCC 4.5.1
|
23 |
|
|
Jul 31, 2010 ([2]changes)
|
24 |
|
|
|
25 |
|
|
GCC 4.5.0
|
26 |
|
|
April 14, 2010 ([3]changes)
|
27 |
|
|
|
28 |
|
|
References and Acknowledgements
|
29 |
|
|
|
30 |
|
|
GCC used to stand for the GNU C Compiler, but since the compiler
|
31 |
|
|
supports several other languages aside from C, it now stands for the
|
32 |
|
|
GNU Compiler Collection.
|
33 |
|
|
|
34 |
|
|
A list of [4]successful builds is updated as new information becomes
|
35 |
|
|
available.
|
36 |
|
|
|
37 |
|
|
The GCC developers would like to thank the numerous people that have
|
38 |
|
|
contributed new features, improvements, bug fixes, and other changes as
|
39 |
|
|
well as test results to GCC. This [5]amazing group of volunteers is
|
40 |
|
|
what makes GCC successful.
|
41 |
|
|
|
42 |
|
|
For additional information about GCC please refer to the [6]GCC project
|
43 |
|
|
web site or contact the [7]GCC development mailing list.
|
44 |
|
|
|
45 |
|
|
To obtain GCC please use [8]our mirror sites or [9]our SVN server.
|
46 |
|
|
|
47 |
|
|
Please send FSF & GNU inquiries & questions to [10]gnu@gnu.org. There
|
48 |
|
|
are also [11]other ways to contact the FSF.
|
49 |
|
|
|
50 |
|
|
These pages are [12]maintained by the GCC team.
|
51 |
|
|
|
52 |
|
|
|
53 |
|
|
For questions related to the use of GCC, please consult these web
|
54 |
|
|
pages and the [13]GCC manuals. If that fails, the
|
55 |
|
|
[14]gcc-help@gcc.gnu.org mailing list might help.
|
56 |
|
|
Please send comments on these web pages and the development of GCC to
|
57 |
|
|
our developer mailing list at [15]gcc@gnu.org or [16]gcc@gcc.gnu.org.
|
58 |
|
|
All of our lists have [17]public archives.
|
59 |
|
|
|
60 |
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth
|
61 |
|
|
Floor, Boston, MA 02110, USA.
|
62 |
|
|
|
63 |
|
|
Verbatim copying and distribution of this entire article is permitted
|
64 |
|
|
in any medium, provided this notice is preserved.
|
65 |
|
|
Last modified 2010-07-31 [18]Valid XHTML 1.0
|
66 |
|
|
|
67 |
|
|
References
|
68 |
|
|
|
69 |
|
|
1. http://www.gnu.org/
|
70 |
|
|
2. http://gcc.gnu.org/gcc-4.5/changes.html
|
71 |
|
|
3. http://gcc.gnu.org/gcc-4.5/changes.html
|
72 |
|
|
4. http://gcc.gnu.org/gcc-4.5/buildstat.html
|
73 |
|
|
5. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
|
74 |
|
|
6. http://gcc.gnu.org/index.html
|
75 |
|
|
7. mailto:gcc@gcc.gnu.org
|
76 |
|
|
8. http://gcc.gnu.org/mirrors.html
|
77 |
|
|
9. http://gcc.gnu.org/svn.html
|
78 |
|
|
10. mailto:gnu@gnu.org
|
79 |
|
|
11. http://www.gnu.org/home.html#ContactInfo
|
80 |
|
|
12. http://gcc.gnu.org/about.html
|
81 |
|
|
13. http://gcc.gnu.org/onlinedocs/
|
82 |
|
|
14. mailto:gcc-help@gcc.gnu.org
|
83 |
|
|
15. mailto:gcc@gnu.org
|
84 |
|
|
16. mailto:gcc@gcc.gnu.org
|
85 |
|
|
17. http://gcc.gnu.org/lists.html
|
86 |
|
|
18. http://validator.w3.org/check/referer
|
87 |
|
|
======================================================================
|
88 |
|
|
http://gcc.gnu.org/gcc-4.5/changes.html
|
89 |
|
|
|
90 |
|
|
GCC 4.5 Release Series
|
91 |
|
|
Changes, New Features, and Fixes
|
92 |
|
|
|
93 |
|
|
Caveats
|
94 |
|
|
|
95 |
|
|
* GCC now requires the [1]MPC library in order to build. See the
|
96 |
|
|
[2]prerequisites page for version requirements.
|
97 |
|
|
* Support for a number of older systems and recently unmaintained or
|
98 |
|
|
untested target ports of GCC has been declared obsolete in GCC 4.5.
|
99 |
|
|
Unless there is activity to revive them, the next release of GCC
|
100 |
|
|
will have their sources permanently removed.
|
101 |
|
|
The following ports for individual systems on particular
|
102 |
|
|
architectures have been obsoleted:
|
103 |
|
|
+ IRIX releases before 6.5 (mips-sgi-irix5*,
|
104 |
|
|
mips-sgi-irix6.[0-4])
|
105 |
|
|
+ Solaris 7 (*-*-solaris2.7)
|
106 |
|
|
+ Tru64 UNIX releases before V5.1 (alpha*-dec-osf4*,
|
107 |
|
|
alpha-dec-osf5.0*)
|
108 |
|
|
+ Details for the IRIX, Solaris 7, and Tru64 UNIX obsoletions
|
109 |
|
|
can be found in the [3]announcement.
|
110 |
|
|
Support for the classic POWER architecture implemented in the
|
111 |
|
|
original RIOS and RIOS2 processors of the old IBM RS/6000 product
|
112 |
|
|
line has been obsoleted in the rs6000 port. This does not affect
|
113 |
|
|
the new generation Power and PowerPC architectures.
|
114 |
|
|
* Support has been removed for all the [4]configurations obsoleted in
|
115 |
|
|
GCC 4.4.
|
116 |
|
|
* Support has been removed for the protoize and unprotoize utilities,
|
117 |
|
|
obsoleted in GCC 4.4.
|
118 |
|
|
* Support has been removed for tuning for Itanium1 (Merced) variants.
|
119 |
|
|
Note that code tuned for Itanium2 should also run correctly on
|
120 |
|
|
Itanium1.
|
121 |
|
|
* GCC now generates unwind info also for epilogues. DWARF debuginfo
|
122 |
|
|
generated by GCC now uses more features of DWARF3 than it used to
|
123 |
|
|
do and also some DWARF4 features. GDB older than 7.0 is not able to
|
124 |
|
|
handle either of these, so to debug GCC 4.5 generated binaries or
|
125 |
|
|
libraries GDB 7.0 or later is needed. You can disable use of DWARF4
|
126 |
|
|
features with -gdwarf-3 -gstrict-dwarf options, or with -gdwarf-2
|
127 |
|
|
-gstrict-dwarf restrict GCC to just DWARF2 standard, but epilogue
|
128 |
|
|
unwind info is emitted unconditionally whenever unwind info is
|
129 |
|
|
emitted.
|
130 |
|
|
* On x86 targets, code containing floating-point calculations may run
|
131 |
|
|
significantly slower when compiled with GCC 4.5 in strict C99
|
132 |
|
|
conformance mode than they did with earlier GCC versions. This is
|
133 |
|
|
due to stricter standard conformance of the compiler and can be
|
134 |
|
|
avoided by using the option -fexcess-precision=fast; also see
|
135 |
|
|
[5]below.
|
136 |
|
|
* The function attribute noinline no longer prevents GCC from cloning
|
137 |
|
|
the function. A new attribute noclone has been introduced for this
|
138 |
|
|
purpose. Cloning a function means that it is duplicated and the new
|
139 |
|
|
copy is specialized for certain contexts (for example when a
|
140 |
|
|
parameter is a known constant).
|
141 |
|
|
|
142 |
|
|
General Optimizer Improvements
|
143 |
|
|
|
144 |
|
|
* The -save-temps now takes an optional argument. The -save-temps and
|
145 |
|
|
-save-temps=cwd switches write the temporary files in the current
|
146 |
|
|
working directory based on the original source file. The
|
147 |
|
|
-save-temps=obj switch will write files into the directory
|
148 |
|
|
specified with the -o option, and the intermediate filenames are
|
149 |
|
|
based on the output file. This will allow the user to get the
|
150 |
|
|
compiler intermediate files when doing parallel builds without two
|
151 |
|
|
builds of the same filename located in different directories from
|
152 |
|
|
interfering with each other.
|
153 |
|
|
* Debugging dumps are now created in the same directory as the object
|
154 |
|
|
file rather than in the current working directory. This allows the
|
155 |
|
|
user to get debugging dumps when doing parallel builds without two
|
156 |
|
|
builds of the same filename interfering with each other.
|
157 |
|
|
* GCC has been integrated with the [6]MPC library. This allows GCC to
|
158 |
|
|
evaluate complex arithmetic at compile time [7]more accurately. It
|
159 |
|
|
also allows GCC to evaluate calls to complex built-in math
|
160 |
|
|
functions having constant arguments and replace them at compile
|
161 |
|
|
time with their mathematically equivalent results. In doing so, GCC
|
162 |
|
|
can generate correct results regardless of the math library
|
163 |
|
|
implementation or floating point precision of the host platform.
|
164 |
|
|
This also allows GCC to generate identical results regardless of
|
165 |
|
|
whether one compiles in native or cross-compile configurations to a
|
166 |
|
|
particular target. The following built-in functions take advantage
|
167 |
|
|
of this new capability: cacos, cacosh, casin, casinh, catan,
|
168 |
|
|
catanh, ccos, ccosh, cexp, clog, cpow, csin, csinh, csqrt, ctan,
|
169 |
|
|
and ctanh. The float and long double variants of these functions
|
170 |
|
|
(e.g. csinf and csinl) are also handled.
|
171 |
|
|
* A new link-time optimizer has been added ([8]-flto). When this
|
172 |
|
|
option is used, GCC generates a bytecode representation of each
|
173 |
|
|
input file and writes it to special ELF sections in each object
|
174 |
|
|
file. When the object files are linked together, all the function
|
175 |
|
|
bodies are read from these ELF sections and instantiated as if they
|
176 |
|
|
had been part of the same translation unit. This enables
|
177 |
|
|
interprocedural optimizations to work across different files (and
|
178 |
|
|
even different languages), potentially improving the performance of
|
179 |
|
|
the generated code. To use the link-timer optimizer, -flto needs to
|
180 |
|
|
be specified at compile time and during the final link. If the
|
181 |
|
|
program does not require any symbols to be exported, it is possible
|
182 |
|
|
to combine -flto and the experimental [9]-fwhopr with
|
183 |
|
|
[10]-fwhole-program to allow the interprocedural optimizers to use
|
184 |
|
|
more aggressive assumptions.
|
185 |
|
|
* The automatic parallelization pass was enhanced to support
|
186 |
|
|
parallelization of outer loops.
|
187 |
|
|
* Automatic parallelization can be enabled as part of Graphite. In
|
188 |
|
|
addition to -ftree-parallelize-loops=, specify
|
189 |
|
|
-floop-parallelize-all to enable the Graphite-based optimization.
|
190 |
|
|
* The infrastructure for optimizing based on [11]restrict qualified
|
191 |
|
|
pointers has been rewritten and should result in code generation
|
192 |
|
|
improvements. Optimizations based on restrict qualified pointers
|
193 |
|
|
are now also available when using -fno-strict-aliasing.
|
194 |
|
|
* There is a new optimization pass that attempts to change prototype
|
195 |
|
|
of functions to avoid unused parameters, pass only relevant parts
|
196 |
|
|
of structures and turn arguments passed by reference to arguments
|
197 |
|
|
passed by value when possible. It is enabled by -O2 and above as
|
198 |
|
|
well as -Os and can be manually invoked using the new command-line
|
199 |
|
|
switch -fipa-sra.
|
200 |
|
|
* GCC now optimize exception handling code. In particular cleanup
|
201 |
|
|
regions that are proved to not have any effect are optimized out.
|
202 |
|
|
|
203 |
|
|
New Languages and Language specific improvements
|
204 |
|
|
|
205 |
|
|
All languages
|
206 |
|
|
|
207 |
|
|
* The -fshow-column option is now on by default. This means error
|
208 |
|
|
messages now have a column associated with them.
|
209 |
|
|
|
210 |
|
|
Ada
|
211 |
|
|
|
212 |
|
|
* Compilation of programs heavily using discriminated record types
|
213 |
|
|
with variant parts has been sped up and generates more compact
|
214 |
|
|
code.
|
215 |
|
|
* Stack checking now works reasonably well on most plaforms. In some
|
216 |
|
|
specific cases, stack overflows may still fail to be detected, but
|
217 |
|
|
a compile-time warning will be issued for these cases.
|
218 |
|
|
|
219 |
|
|
C family
|
220 |
|
|
|
221 |
|
|
* If a header named in a #include directive is not found, the
|
222 |
|
|
compiler exits immediately. This avoids a cascade of errors arising
|
223 |
|
|
from declarations expected to be found in that header being
|
224 |
|
|
missing.
|
225 |
|
|
* A new built-in function __builtin_unreachable() has been added that
|
226 |
|
|
tells the compiler that control will never reach that point. It may
|
227 |
|
|
be used after asm statements that terminate by transferring control
|
228 |
|
|
elsewhere, and in other places that are known to be unreachable.
|
229 |
|
|
* The -Wlogical-op option now warns for logical expressions such as
|
230 |
|
|
(c == 1 && c == 2) and (c != 1 || c != 2), which are likely to be
|
231 |
|
|
mistakes. This option is disabled by default.
|
232 |
|
|
* An asm goto feature has been added to allow asm statements that
|
233 |
|
|
jump to C labels.
|
234 |
|
|
* C++0x raw strings are supported for C++ and for C with -std=gnu99.
|
235 |
|
|
* The deprecated attribute now takes an optional string argument, for
|
236 |
|
|
example, __attribute__((deprecated("text string"))), that will be
|
237 |
|
|
printed together with the deprecation warning.
|
238 |
|
|
|
239 |
|
|
C
|
240 |
|
|
|
241 |
|
|
* The -Wenum-compare option, which warns when comparing values of
|
242 |
|
|
different enum types, now works for C. It formerly only worked for
|
243 |
|
|
C++. This warning is enabled by -Wall. It may be avoided by using a
|
244 |
|
|
type cast.
|
245 |
|
|
* The -Wcast-qual option now warns about casts which are unsafe in
|
246 |
|
|
that they permit const-correctness to be violated without further
|
247 |
|
|
warnings. Specifically, it warns about cases where a qualifier is
|
248 |
|
|
added when all the lower types are not const. For example, it warns
|
249 |
|
|
about a cast from char ** to const char **.
|
250 |
|
|
* The -Wc++-compat option is significantly improved. It issues new
|
251 |
|
|
warnings for:
|
252 |
|
|
+ Using C++ reserved operator names as identifiers.
|
253 |
|
|
+ Conversions to enum types without explicit casts.
|
254 |
|
|
+ Using va_arg with an enum type.
|
255 |
|
|
+ Using different enum types in the two branches of ?:.
|
256 |
|
|
+ Using ++ or -- on a variable of enum type.
|
257 |
|
|
+ Using the same name as both a struct, union or enum tag and a
|
258 |
|
|
typedef, unless the typedef refers to the tagged type itself.
|
259 |
|
|
+ Using a struct, union, or enum which is defined within another
|
260 |
|
|
struct or union.
|
261 |
|
|
+ A struct field defined using a typedef if there is a field in
|
262 |
|
|
the struct, or an enclosing struct, whose name is the typedef
|
263 |
|
|
name.
|
264 |
|
|
+ Duplicate definitions at file scope.
|
265 |
|
|
+ Uninitialized const variables.
|
266 |
|
|
+ A global variable with an anonymous struct, union, or enum
|
267 |
|
|
type.
|
268 |
|
|
+ Using a string constant to initialize a char array whose size
|
269 |
|
|
is the length of the string.
|
270 |
|
|
* The new -Wjump-misses-init option warns about cases where a goto or
|
271 |
|
|
switch skips the initialization of a variable. This sort of branch
|
272 |
|
|
is an error in C++ but not in C. This warning is enabled by
|
273 |
|
|
-Wc++-compat.
|
274 |
|
|
* GCC now ensures that a C99-conforming is present on most
|
275 |
|
|
targets, and uses information about the types in this header to
|
276 |
|
|
implement the Fortran bindings to those types. GCC does not ensure
|
277 |
|
|
the presence of such a header, and does not implement the Fortran
|
278 |
|
|
bindings, on the following targets: NetBSD, VxWorks, VMS,
|
279 |
|
|
SymbianOS, WinCE, LynxOS, Netware, QNX, Interix, TPF.
|
280 |
|
|
* GCC now implements C90- and C99-conforming rules for constant
|
281 |
|
|
expressions. This may cause warnings or errors for some code using
|
282 |
|
|
expressions that can be folded to a constant but are not constant
|
283 |
|
|
expressions as defined by ISO C.
|
284 |
|
|
* All known target-independent C90 and C90 Amendment 1 conformance
|
285 |
|
|
bugs, and all known target-independent C99 conformance bugs not
|
286 |
|
|
related to floating point or extended identifiers, have been fixed.
|
287 |
|
|
* The C decimal floating point support now includes support for the
|
288 |
|
|
FLOAT_CONST_DECIMAL64 pragma.
|
289 |
|
|
* The named address space feature from ISO/IEC TR 18037 is now
|
290 |
|
|
supported. This is currently only implemented for the SPU
|
291 |
|
|
processor.
|
292 |
|
|
|
293 |
|
|
C++
|
294 |
|
|
|
295 |
|
|
* Improved [12]experimental support for the upcoming C++0x ISO C++
|
296 |
|
|
standard, including support for raw strings, lambda expressions and
|
297 |
|
|
explicit type conversion operators.
|
298 |
|
|
* When printing the name of a class template specialization, G++ will
|
299 |
|
|
now omit any template arguments which come from default template
|
300 |
|
|
arguments. This behavior (and the pretty-printing of function
|
301 |
|
|
template specializations as template signature and arguments) can
|
302 |
|
|
be disabled with the -fno-pretty-templates option.
|
303 |
|
|
* Access control is now applied to typedef names used in a template,
|
304 |
|
|
which may cause G++ to reject some ill-formed code that was
|
305 |
|
|
accepted by earlier releases. The -fno-access-control option can be
|
306 |
|
|
used as a temporary workaround until the code is corrected.
|
307 |
|
|
* Compilation time for code that uses templates should now scale
|
308 |
|
|
linearly with the number of instantiations rather than
|
309 |
|
|
quadratically, as template instantiations are now looked up using
|
310 |
|
|
hash tables.
|
311 |
|
|
* Declarations of functions that look like builtin declarations of
|
312 |
|
|
library functions are only considered to be redeclarations if they
|
313 |
|
|
are declared with extern "C". This may cause problems with code
|
314 |
|
|
that omits extern "C" on hand-written declarations of C library
|
315 |
|
|
functions such as abort or memcpy. Such code is ill-formed, but was
|
316 |
|
|
accepted by earlier releases.
|
317 |
|
|
* Diagnostics that used to complain about passing non-POD types to
|
318 |
|
|
... or jumping past the declaration of a non-POD variable now check
|
319 |
|
|
for triviality rather than PODness, as per C++0x.
|
320 |
|
|
* In C++0x mode local and anonymous classes are now allowed as
|
321 |
|
|
template arguments, and in declarations of variables and functions
|
322 |
|
|
with linkage, so long as any such declaration that is used is also
|
323 |
|
|
defined ([13]DR 757).
|
324 |
|
|
* Labels may now have attributes, as has been permitted for a while
|
325 |
|
|
in C. This is only permitted when the label definition and the
|
326 |
|
|
attribute specifier is followed by a semicolon--i.e., the label
|
327 |
|
|
applies to an empty statement. The only useful attribute for a
|
328 |
|
|
label is unused.
|
329 |
|
|
* G++ now implements [14]DR 176. Previously G++ did not support using
|
330 |
|
|
the injected-class-name of a template base class as a type name,
|
331 |
|
|
and lookup of the name found the declaration of the template in the
|
332 |
|
|
enclosing scope. Now lookup of the name finds the
|
333 |
|
|
injected-class-name, which can be used either as a type or as a
|
334 |
|
|
template, depending on whether or not the name is followed by a
|
335 |
|
|
template argument list. As a result of this change, some code that
|
336 |
|
|
was previously accepted may be ill-formed because
|
337 |
|
|
1. The injected-class-name is not accessible because it's from a
|
338 |
|
|
private base, or
|
339 |
|
|
2. The injected-class-name cannot be used as an argument for a
|
340 |
|
|
template template parameter.
|
341 |
|
|
In either of these cases, the code can be fixed by adding a
|
342 |
|
|
nested-name-specifier to explicitly name the template. The first
|
343 |
|
|
can be worked around with -fno-access-control; the second is only
|
344 |
|
|
rejected with -pedantic.
|
345 |
|
|
* A new standard mangling for SIMD vector types has been added, to
|
346 |
|
|
avoid name clashes on systems with vectors of varying length. By
|
347 |
|
|
default the compiler still uses the old mangling, but emits aliases
|
348 |
|
|
with the new mangling on targets that support strong aliases. Users
|
349 |
|
|
can switch over entirely to the new mangling with -fabi-version=4
|
350 |
|
|
or -fabi-version=0. -Wabi will now warn about code that uses the
|
351 |
|
|
old mangling.
|
352 |
|
|
* The command-line option -ftemplate-depth-N is now written as
|
353 |
|
|
-ftemplate-depth=N and the old form is deprecated.
|
354 |
|
|
* Conversions between NULL and non-pointer types are now warned by
|
355 |
|
|
default. The new option -Wno-conversion-null disables these
|
356 |
|
|
warnings. Previously these warnings were only available when using
|
357 |
|
|
-Wconversion explicitly.
|
358 |
|
|
|
359 |
|
|
Runtime Library (libstdc++)
|
360 |
|
|
|
361 |
|
|
* [15]Improved experimental support for the upcoming ISO C++
|
362 |
|
|
standard, C++0x, including:
|
363 |
|
|
+ Support for , , and .
|
364 |
|
|
+ Existing facilities now exploit explicit operators and the
|
365 |
|
|
newly implemented core C++0x features.
|
366 |
|
|
* An experimental [16]profile mode has been added. This is an
|
367 |
|
|
implementation of many C++ standard library constructs with an
|
368 |
|
|
additional analysis layer that gives performance improvement advice
|
369 |
|
|
based on recognition of suboptimal usage patterns. For example,
|
370 |
|
|
#include
|
371 |
|
|
int main()
|
372 |
|
|
{
|
373 |
|
|
std::vector v;
|
374 |
|
|
for (int k = 0; k < 1024; ++k)
|
375 |
|
|
v.insert(v.begin(), k);
|
376 |
|
|
}
|
377 |
|
|
|
378 |
|
|
When instrumented via the profile mode, can return suggestions
|
379 |
|
|
about the initial size and choice of the container used as follows:
|
380 |
|
|
vector-to-list: improvement = 5: call stack = 0x804842c ...
|
381 |
|
|
: advice = change std::vector to std::list
|
382 |
|
|
vector-size: improvement = 3: call stack = 0x804842c ...
|
383 |
|
|
: advice = change initial container size from 0 to 1024
|
384 |
|
|
|
385 |
|
|
These constructs can be substituted for the normal libstdc++
|
386 |
|
|
constructs on a piecemeal basis, or all existing components can be
|
387 |
|
|
transformed via the -D_GLIBCXX_PROFILE macro.
|
388 |
|
|
* [17]Support for decimal floating-point arithmetic (aka ISO C++ TR
|
389 |
|
|
24733) has been added. This support is in header file
|
390 |
|
|
, uses namespace std::decimal, and includes
|
391 |
|
|
classes decimal32, decimal64, and decimal128.
|
392 |
|
|
* Sources have been audited for application of function attributes
|
393 |
|
|
nothrow, const, pure, and noreturn.
|
394 |
|
|
* Python pretty-printers have been added for many standard library
|
395 |
|
|
components that simplify the internal representation and present a
|
396 |
|
|
more intuitive view of components when used with
|
397 |
|
|
appropriately-advanced versions of GDB. For more information,
|
398 |
|
|
please consult the more [18]detailed description.
|
399 |
|
|
* The default behavior for comparing typeinfo names has changed, so
|
400 |
|
|
in , __GXX_MERGED_TYPEINFO_NAMES now defaults to zero.
|
401 |
|
|
* The new -static-libstdc++ option directs g++ to link the C++
|
402 |
|
|
library statically, even if the default would normally be to link
|
403 |
|
|
it dynamically.
|
404 |
|
|
|
405 |
|
|
Fortran
|
406 |
|
|
|
407 |
|
|
* The COMMON default padding has been changed - instead of adding the
|
408 |
|
|
padding before a variable it is now added afterwards, which
|
409 |
|
|
increases the compatibility with other vendors and helps to obtain
|
410 |
|
|
the correct output in some cases. Cf. also the -falign-commons
|
411 |
|
|
option ([19]added in 4.4).
|
412 |
|
|
* The -finit-real= option now also supports the value snan for
|
413 |
|
|
signalling not-a-number; to be effective, one additionally needs to
|
414 |
|
|
enable trapping (e.g. via -ffpe-trap=). Note: Compile-time
|
415 |
|
|
optimizations can turn a signalling NaN into a quiet one.
|
416 |
|
|
* The new option -fcheck= has been added with the options bounds,
|
417 |
|
|
array-temps, do, pointer, and recursive. The bounds and array-temps
|
418 |
|
|
options are equivalent to -fbounds-check and
|
419 |
|
|
-fcheck-array-temporaries. The do option checks for invalid
|
420 |
|
|
modification of loop iteration variables, and the recursive option
|
421 |
|
|
tests for recursive calls to subroutines/functions which are not
|
422 |
|
|
marked as recursive. With pointer pointer association checks in
|
423 |
|
|
calls are performed; however, neither undefined pointers nor
|
424 |
|
|
pointers in expressions are handled. Using -fcheck=all enables all
|
425 |
|
|
these run-time checks.
|
426 |
|
|
* The run-time checking -fcheck=bounds now warns about invalid string
|
427 |
|
|
lengths of character dummy arguments. Additionally, more
|
428 |
|
|
compile-time checks have been added.
|
429 |
|
|
* The new option [20]-fno-protect-parens has been added; if set, the
|
430 |
|
|
compiler may reorder REAL and COMPLEX expressions without regard to
|
431 |
|
|
parentheses.
|
432 |
|
|
* GNU Fortran no longer links against libgfortranbegin. As before,
|
433 |
|
|
MAIN__ (assembler symbol name) is the actual Fortran main program,
|
434 |
|
|
which is invoked by the main function. However, main is now
|
435 |
|
|
generated and put in the same object file as MAIN__. For the time
|
436 |
|
|
being, libgfortranbegin still exists for backward compatibility.
|
437 |
|
|
For details see the new [21]Mixed-Language Programming chapter in
|
438 |
|
|
the manual.
|
439 |
|
|
* The I/O library was restructured for performance and cleaner code.
|
440 |
|
|
* Array assignments and WHERE are now run in parallel when OpenMP's
|
441 |
|
|
WORKSHARE is used.
|
442 |
|
|
* The experimental option -fwhole-file was added. The option allows
|
443 |
|
|
whole-file checking of procedure arguments and allows for better
|
444 |
|
|
optimizations. It can also be used with -fwhole-program, which is
|
445 |
|
|
now also supported in gfortran.
|
446 |
|
|
* More Fortran 2003 and Fortran 2008 mathematical functions can now
|
447 |
|
|
be used as initialization expressions.
|
448 |
|
|
* Some extended attributes such as STDCALL are now supported via the
|
449 |
|
|
[22]GCC$ compiler directive.
|
450 |
|
|
* For Fortran 77 compatibility: If -fno-sign-zero is used, the SIGN
|
451 |
|
|
intrinsic behaves now as if zero were always positive.
|
452 |
|
|
* For legacy compatibiliy: On Cygwin and MinGW, the special files
|
453 |
|
|
CONOUT$ and CONIN$ (and CONERR$ which maps to CONOUT$) are now
|
454 |
|
|
supported.
|
455 |
|
|
* Fortran 2003 support has been extended:
|
456 |
|
|
+ Procedure-pointer function results and procedure-pointer
|
457 |
|
|
components (including PASS),
|
458 |
|
|
+ allocatable scalars (experimental),
|
459 |
|
|
+ DEFERRED type-bound procedures,
|
460 |
|
|
+ the ERRMSG= argument of the ALLOCATE and DEALLOCATE statements
|
461 |
|
|
have been implemented.
|
462 |
|
|
+ The ALLOCATE statement supports type-specs and the SOURCE=
|
463 |
|
|
argument.
|
464 |
|
|
+ OPERATOR(*) and ASSIGNMENT(=) are now allowed as GENERIC
|
465 |
|
|
type-bound procedure (i.e. as type-bound operators).
|
466 |
|
|
+ Rounding (ROUND=, RZ, ...) for output is now supported.
|
467 |
|
|
+ The INT_FAST{8,16,32,64,128}_T kind type parameters of the
|
468 |
|
|
intrinsic module ISO_C_BINDING are now supported, except for
|
469 |
|
|
the targets listed above as ones where GCC does not have
|
470 |
|
|
type information.
|
471 |
|
|
+ Extensible derived types with type-bound procedure or
|
472 |
|
|
procedure pointer with PASS attribute now have to use CLASS in
|
473 |
|
|
line with the Fortran 2003 standard; the workaround to use
|
474 |
|
|
TYPE is no longer supported.
|
475 |
|
|
+ [23]Experimental, incomplete support for polymorphism,
|
476 |
|
|
including CLASS, SELECT TYPE and dynamic dispatch of
|
477 |
|
|
type-bound procedure calls. Some features do not work yet such
|
478 |
|
|
as unlimited polymorphism (CLASS(*)).
|
479 |
|
|
* Fortran 2008 support has been extended:
|
480 |
|
|
+ The OPEN statement now supports the NEWUNIT= option, which
|
481 |
|
|
returns a unique file unit, thus preventing inadvertent use of
|
482 |
|
|
the same unit in different parts of the program.
|
483 |
|
|
+ Support for unlimited format items has been added.
|
484 |
|
|
+ The INT{8,16,32} and REAL{32,64,128} kind type parameters of
|
485 |
|
|
the intrinsic module ISO_FORTRAN_ENV are now supported.
|
486 |
|
|
+ Using complex arguments with TAN, SINH, COSH, TANH, ASIN,
|
487 |
|
|
ACOS, and ATAN is now possible; the functions ASINH, ACOSH,
|
488 |
|
|
and ATANH have been added (for real and complex arguments) and
|
489 |
|
|
ATAN(Y,X) is now an alias for ATAN2(Y,X).
|
490 |
|
|
+ The BLOCK construct has been implemented.
|
491 |
|
|
|
492 |
|
|
Java (GCJ)
|
493 |
|
|
|
494 |
|
|
New Targets and Target Specific Improvements
|
495 |
|
|
|
496 |
|
|
AIX
|
497 |
|
|
|
498 |
|
|
* Full cross-toolchain support now available with GNU Binutils
|
499 |
|
|
|
500 |
|
|
ARM
|
501 |
|
|
|
502 |
|
|
* GCC now supports the Cortex-M0 and Cortex-A5 processors.
|
503 |
|
|
* GCC now supports the ARM v7E-M architecture.
|
504 |
|
|
* GCC now supports VFPv4-based FPUs and FPUs with
|
505 |
|
|
single-precision-only VFP.
|
506 |
|
|
* GCC has many improvements to optimization for other ARM processors,
|
507 |
|
|
including scheduling support for the integer pipeline on Cortex-A9.
|
508 |
|
|
* GCC now supports the IEEE 754-2008 half-precision floating-point
|
509 |
|
|
type, and a variant ARM-specific half-precision type. This type is
|
510 |
|
|
specified using __fp16, with the layout determined by
|
511 |
|
|
-mfp16-format. With appropriate -mfpu options, the Cortex-A9 and
|
512 |
|
|
VFPv4 half-precision instructions will be used.
|
513 |
|
|
* GCC now supports the variant of AAPCS that uses VFP registers for
|
514 |
|
|
parameter passing and return values.
|
515 |
|
|
|
516 |
|
|
AVR
|
517 |
|
|
|
518 |
|
|
* The -mno-tablejump option has been removed because it has the same
|
519 |
|
|
effect as the -fno-jump-tables option.
|
520 |
|
|
* Added support for these new AVR devices:
|
521 |
|
|
+ ATmega8U2
|
522 |
|
|
+ ATmega16U2
|
523 |
|
|
+ ATmega32U2
|
524 |
|
|
|
525 |
|
|
IA-32/x86-64
|
526 |
|
|
|
527 |
|
|
* GCC now will set the default for -march= based on the configure
|
528 |
|
|
target.
|
529 |
|
|
* GCC now supports handling floating-point excess precision arising
|
530 |
|
|
from use of the x87 floating-point unit in a way that conforms to
|
531 |
|
|
ISO C99. This is enabled with -fexcess-precision=standard and with
|
532 |
|
|
standards conformance options such as -std=c99, and may be disabled
|
533 |
|
|
using -fexcess-precision=fast.
|
534 |
|
|
* Support for the Intel Atom processor is now available through the
|
535 |
|
|
-march=atom and -mtune=atom options.
|
536 |
|
|
* A new -mcrc32 option is now available to enable crc32 intrinsics.
|
537 |
|
|
* A new -mmovbe option is now available to enable GCC to use the
|
538 |
|
|
movbe instruction to implement __builtin_bswap32 and
|
539 |
|
|
__builtin_bswap64.
|
540 |
|
|
* SSE math now can be enabled by default at configure time with the
|
541 |
|
|
new --with-fpmath=sse option.
|
542 |
|
|
* There is a new intrinsic header file, . It should be
|
543 |
|
|
included before using any IA-32/x86-64 intrinsics.
|
544 |
|
|
* Support for the XOP, FMA4, and LWP instruction sets for the AMD
|
545 |
|
|
Orochi processors are now available with the -mxop, -mfma4, and
|
546 |
|
|
-mlwp options.
|
547 |
|
|
* The -mabm option enables GCC to use the popcnt and lzcnt
|
548 |
|
|
instructions on AMD processors.
|
549 |
|
|
* The -mpopcnt option enables GCC to use the popcnt instructions on
|
550 |
|
|
both AMD and Intel processors.
|
551 |
|
|
|
552 |
|
|
M68K/ColdFire
|
553 |
|
|
|
554 |
|
|
* GCC now supports ColdFire 51xx, 5221x, 5225x, 52274, 52277, 5301x
|
555 |
|
|
and 5441x devices.
|
556 |
|
|
* GCC now supports thread-local storage (TLS) on M68K and ColdFire
|
557 |
|
|
processors.
|
558 |
|
|
|
559 |
|
|
MeP
|
560 |
|
|
|
561 |
|
|
Support has been added for the Toshiba Media embedded Processor (MeP,
|
562 |
|
|
or mep-elf) embedded target.
|
563 |
|
|
|
564 |
|
|
MIPS
|
565 |
|
|
|
566 |
|
|
* GCC now supports MIPS 1004K processors.
|
567 |
|
|
* GCC can now be configured with options --with-arch-32,
|
568 |
|
|
--with-arch-64, --with-tune-32 and --with-tune-64 to control the
|
569 |
|
|
default optimization separately for 32-bit and 64-bit modes.
|
570 |
|
|
* MIPS targets now support an alternative _mcount interface, in which
|
571 |
|
|
register $12 points to the function's save slot for register $31.
|
572 |
|
|
This interface is selected by the -mcount-ra-address option; see
|
573 |
|
|
the documentation for more details.
|
574 |
|
|
* GNU/Linux targets can now generate read-only .eh_frame sections.
|
575 |
|
|
This optimization requires GNU binutils 2.20 or above, and is only
|
576 |
|
|
available if GCC is configured with a suitable version of binutils.
|
577 |
|
|
* GNU/Linux targets can now attach special relocations to indirect
|
578 |
|
|
calls, so that the linker can turn them into direct jumps or
|
579 |
|
|
branches. This optimization requires GNU binutils 2.20 or later,
|
580 |
|
|
and is automatically selected if GCC is configured with an
|
581 |
|
|
appropriate version of binutils. It can be explicitly enabled or
|
582 |
|
|
disabled using the -mrelax-pic-calls command-line option.
|
583 |
|
|
* GCC now generates more heavily-optimized atomic operations on
|
584 |
|
|
Octeon processors.
|
585 |
|
|
* MIPS targets now support the -fstack-protector option.
|
586 |
|
|
* GCC now supports an -msynci option, which specifies that synci is
|
587 |
|
|
enough to flush the instruction cache, without help from the
|
588 |
|
|
operating system. GCC uses this information to optimize
|
589 |
|
|
automatically-generated cache flush operations, such as those used
|
590 |
|
|
for nested functions in C. There is also a --with-synci
|
591 |
|
|
configure-time option, which makes -msynci the default.
|
592 |
|
|
* GCC supports four new function attributes for interrupt handlers:
|
593 |
|
|
interrupt, use_shadow_register_set, keep_interrupts_masked and
|
594 |
|
|
use_debug_exception_return. See the documentation for more details
|
595 |
|
|
about these attributes.
|
596 |
|
|
|
597 |
|
|
picochip
|
598 |
|
|
|
599 |
|
|
RS/6000 (POWER/PowerPC)
|
600 |
|
|
|
601 |
|
|
* GCC now supports the Power ISA 2.06, which includes the VSX
|
602 |
|
|
instructions that add vector 64-bit floating point support, new
|
603 |
|
|
population count instructions, and conversions between floating
|
604 |
|
|
point and unsigned types.
|
605 |
|
|
* Support for the power7 processor is now available through the
|
606 |
|
|
-mcpu=power7 and -mtune=power7.
|
607 |
|
|
* GCC will now vectorize loops that contain simple math functions
|
608 |
|
|
like copysign when generating code for altivec or VSX targets.
|
609 |
|
|
* Support for the A2 processor is now available through the -mcpu=a2
|
610 |
|
|
and -mtune=a2 options.
|
611 |
|
|
* Support for the 476 processor is now available through the
|
612 |
|
|
-mcpu={476,476fp} and -mtune={476,476fp} options.
|
613 |
|
|
* Support for the e500mc64 processor is now available through the
|
614 |
|
|
-mcpu=e500mc64 and -mtune=e500mc64 options.
|
615 |
|
|
* GCC can now be configured with options --with-cpu-32,
|
616 |
|
|
--with-cpu-64, --with-tune-32 and --with-tune-64 to control the
|
617 |
|
|
default optimization separately for 32-bit and 64-bit modes.
|
618 |
|
|
|
619 |
|
|
RX
|
620 |
|
|
|
621 |
|
|
Support has been added for the Renesas RX Processor (rx-elf) target.
|
622 |
|
|
|
623 |
|
|
Operating Systems
|
624 |
|
|
|
625 |
|
|
Windows (Cygwin and MinGW)
|
626 |
|
|
|
627 |
|
|
* GCC now installs all the major language runtime libraries as DLLs
|
628 |
|
|
when configured with the --enable-shared option.
|
629 |
|
|
* GCC now makes use of the new support for aligned common variables
|
630 |
|
|
in versions of binutils >= 2.20 to fix bugs in the support for SSE
|
631 |
|
|
data types.
|
632 |
|
|
* Improvements to the libffi support library increase the reliability
|
633 |
|
|
of code generated by GCJ on all Windows platforms. Libgcj is
|
634 |
|
|
enabled by default for the first time.
|
635 |
|
|
* Libtool improvements simplify installation by placing the generated
|
636 |
|
|
DLLs in the correct binaries directory.
|
637 |
|
|
* Numerous other minor bugfixes and improvements, and substantial
|
638 |
|
|
enhancements to the Fortran language support library.
|
639 |
|
|
|
640 |
|
|
Documentation improvements
|
641 |
|
|
|
642 |
|
|
Other significant improvements
|
643 |
|
|
|
644 |
|
|
Plugins
|
645 |
|
|
|
646 |
|
|
* It is now possible to extend the compiler without having to modify
|
647 |
|
|
its source code. A new option -fplugin=file.so tells GCC to load
|
648 |
|
|
the shared object file.so and execute it as part of the compiler.
|
649 |
|
|
The internal documentation describes the details on how plugins can
|
650 |
|
|
interact with the compiler.
|
651 |
|
|
|
652 |
|
|
Installation changes
|
653 |
|
|
|
654 |
|
|
* The move to newer autotools changed default installation
|
655 |
|
|
directories and switches to control them: The --with-datarootdir,
|
656 |
|
|
--with-docdir, --with-pdfdir, and --with-htmldir switches are not
|
657 |
|
|
used any more. Instead, you can now use --datarootdir, --docdir,
|
658 |
|
|
--htmldir, and --pdfdir. The default installation directories have
|
659 |
|
|
changed as follows according to the GNU Coding Standards:
|
660 |
|
|
|
661 |
|
|
datarootdir read-only architecture-independent data root [PREFIX/share]
|
662 |
|
|
localedir locale-specific message catalogs [DATAROOTDIR/locale]
|
663 |
|
|
docdir documentation root [DATAROOTDIR/doc/PACKAGE]
|
664 |
|
|
htmldir html documentation [DOCDIR]
|
665 |
|
|
dvidir dvi documentation [DOCDIR]
|
666 |
|
|
pdfdir pdf documentation [DOCDIR]
|
667 |
|
|
psdir ps documentation [DOCDIR]
|
668 |
|
|
The following variables have new default values:
|
669 |
|
|
|
670 |
|
|
datadir read-only architecture-independent data [DATAROOTDIR]
|
671 |
|
|
infodir info documentation [DATAROOTDIR/info]
|
672 |
|
|
mandir man documentation [DATAROOTDIR/man]
|
673 |
|
|
|
674 |
|
|
GCC 4.5.1
|
675 |
|
|
|
676 |
|
|
This is the [24]list of problem reports (PRs) from GCC's bug tracking
|
677 |
|
|
system that are known to be fixed in the 4.5.1 release. This list might
|
678 |
|
|
not be complete (that is, it is possible that some PRs that have been
|
679 |
|
|
fixed are not listed here).
|
680 |
|
|
|
681 |
|
|
All languages
|
682 |
|
|
|
683 |
|
|
* GCC's new link-time optimizer ([25]-flto) now also works on a few
|
684 |
|
|
non-ELF targets:
|
685 |
|
|
+ Cygwin (*-cygwin*)
|
686 |
|
|
+ MinGW (*-mingw*)
|
687 |
|
|
+ Darwin on x86-64 (x86_64-apple-darwin*)
|
688 |
|
|
LTO is not enabled by default for these targets. To enable LTO, you
|
689 |
|
|
should configure with the --enable-lto option.
|
690 |
|
|
|
691 |
|
|
Please send FSF & GNU inquiries & questions to [26]gnu@gnu.org. There
|
692 |
|
|
are also [27]other ways to contact the FSF.
|
693 |
|
|
|
694 |
|
|
These pages are [28]maintained by the GCC team.
|
695 |
|
|
|
696 |
|
|
|
697 |
|
|
For questions related to the use of GCC, please consult these web
|
698 |
|
|
pages and the [29]GCC manuals. If that fails, the
|
699 |
|
|
[30]gcc-help@gcc.gnu.org mailing list might help.
|
700 |
|
|
Please send comments on these web pages and the development of GCC to
|
701 |
|
|
our developer mailing list at [31]gcc@gnu.org or [32]gcc@gcc.gnu.org.
|
702 |
|
|
All of our lists have [33]public archives.
|
703 |
|
|
|
704 |
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth
|
705 |
|
|
Floor, Boston, MA 02110, USA.
|
706 |
|
|
|
707 |
|
|
Verbatim copying and distribution of this entire article is permitted
|
708 |
|
|
in any medium, provided this notice is preserved.
|
709 |
|
|
Last modified 2010-07-31 [34]Valid XHTML 1.0
|
710 |
|
|
|
711 |
|
|
References
|
712 |
|
|
|
713 |
|
|
1. http://www.multiprecision.org/
|
714 |
|
|
2. http://gcc.gnu.org/install/prerequisites.html
|
715 |
|
|
3. http://gcc.gnu.org/ml/gcc/2010-01/msg00510.html
|
716 |
|
|
4. http://gcc.gnu.org/gcc-4.4/changes.html#obsoleted
|
717 |
|
|
5. http://gcc.gnu.org/gcc-4.5/changes.html#x86
|
718 |
|
|
6. http://www.multiprecision.org/
|
719 |
|
|
7. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30789
|
720 |
|
|
8. http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-flto-801
|
721 |
|
|
9. http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-fwhopr-802
|
722 |
|
|
10. http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-fwhole-program-800
|
723 |
|
|
11. http://gcc.gnu.org/onlinedocs/gcc/Restricted-Pointers.html
|
724 |
|
|
12. http://gcc.gnu.org/gcc-4.5/cxx0x_status.html
|
725 |
|
|
13. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#757
|
726 |
|
|
14. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#176
|
727 |
|
|
15. http://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.200x
|
728 |
|
|
16. http://gcc.gnu.org/onlinedocs/libstdc++/manual/profile_mode.html
|
729 |
|
|
17. http://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#status.iso.tr24733
|
730 |
|
|
18. http://sourceware.org/gdb/wiki/STLSupport
|
731 |
|
|
19. http://gcc.gnu.org/gcc-4.4/changes.html
|
732 |
|
|
20. http://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html
|
733 |
|
|
21. http://gcc.gnu.org/onlinedocs/gfortran/Mixed-Language-Programming.html
|
734 |
|
|
22. http://gcc.gnu.org/onlinedocs/gfortran/GNU-Fortran-Compiler-Directives.html
|
735 |
|
|
23. http://gcc.gnu.org/wiki/OOP
|
736 |
|
|
24. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.5.1
|
737 |
|
|
25. http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-flto-801
|
738 |
|
|
26. mailto:gnu@gnu.org
|
739 |
|
|
27. http://www.gnu.org/home.html#ContactInfo
|
740 |
|
|
28. http://gcc.gnu.org/about.html
|
741 |
|
|
29. http://gcc.gnu.org/onlinedocs/
|
742 |
|
|
30. mailto:gcc-help@gcc.gnu.org
|
743 |
|
|
31. mailto:gcc@gnu.org
|
744 |
|
|
32. mailto:gcc@gcc.gnu.org
|
745 |
|
|
33. http://gcc.gnu.org/lists.html
|
746 |
|
|
34. http://validator.w3.org/check/referer
|
747 |
|
|
======================================================================
|
748 |
|
|
http://gcc.gnu.org/gcc-4.4/index.html
|
749 |
|
|
|
750 |
|
|
GCC 4.4 Release Series
|
751 |
|
|
|
752 |
|
|
April 29, 2010
|
753 |
|
|
|
754 |
|
|
The [1]GNU project and the GCC developers are pleased to announce the
|
755 |
|
|
release of GCC 4.4.4.
|
756 |
|
|
|
757 |
|
|
This release is a bug-fix release, containing fixes for regressions in
|
758 |
|
|
GCC 4.4.3 relative to previous releases of GCC.
|
759 |
|
|
|
760 |
|
|
Release History
|
761 |
|
|
|
762 |
|
|
GCC 4.4.4
|
763 |
|
|
April 29, 2010 ([2]changes)
|
764 |
|
|
|
765 |
|
|
GCC 4.4.3
|
766 |
|
|
January 21, 2010 ([3]changes)
|
767 |
|
|
|
768 |
|
|
GCC 4.4.2
|
769 |
|
|
October 15, 2009 ([4]changes)
|
770 |
|
|
|
771 |
|
|
GCC 4.4.1
|
772 |
|
|
July 22, 2009 ([5]changes)
|
773 |
|
|
|
774 |
|
|
GCC 4.4.0
|
775 |
|
|
April 21, 2009 ([6]changes)
|
776 |
|
|
|
777 |
|
|
References and Acknowledgements
|
778 |
|
|
|
779 |
|
|
GCC used to stand for the GNU C Compiler, but since the compiler
|
780 |
|
|
supports several other languages aside from C, it now stands for the
|
781 |
|
|
GNU Compiler Collection.
|
782 |
|
|
|
783 |
|
|
A list of [7]successful builds is updated as new information becomes
|
784 |
|
|
available.
|
785 |
|
|
|
786 |
|
|
The GCC developers would like to thank the numerous people that have
|
787 |
|
|
contributed new features, improvements, bug fixes, and other changes as
|
788 |
|
|
well as test results to GCC. This [8]amazing group of volunteers is
|
789 |
|
|
what makes GCC successful.
|
790 |
|
|
|
791 |
|
|
For additional information about GCC please refer to the [9]GCC project
|
792 |
|
|
web site or contact the [10]GCC development mailing list.
|
793 |
|
|
|
794 |
|
|
To obtain GCC please use [11]our mirror sites or [12]our SVN server.
|
795 |
|
|
|
796 |
|
|
Please send FSF & GNU inquiries & questions to [13]gnu@gnu.org. There
|
797 |
|
|
are also [14]other ways to contact the FSF.
|
798 |
|
|
|
799 |
|
|
These pages are [15]maintained by the GCC team.
|
800 |
|
|
|
801 |
|
|
|
802 |
|
|
For questions related to the use of GCC, please consult these web
|
803 |
|
|
pages and the [16]GCC manuals. If that fails, the
|
804 |
|
|
[17]gcc-help@gcc.gnu.org mailing list might help.
|
805 |
|
|
Please send comments on these web pages and the development of GCC to
|
806 |
|
|
our developer mailing list at [18]gcc@gnu.org or [19]gcc@gcc.gnu.org.
|
807 |
|
|
All of our lists have [20]public archives.
|
808 |
|
|
|
809 |
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth
|
810 |
|
|
Floor, Boston, MA 02110, USA.
|
811 |
|
|
|
812 |
|
|
Verbatim copying and distribution of this entire article is permitted
|
813 |
|
|
in any medium, provided this notice is preserved.
|
814 |
|
|
Last modified 2010-07-01 [21]Valid XHTML 1.0
|
815 |
|
|
|
816 |
|
|
References
|
817 |
|
|
|
818 |
|
|
1. http://www.gnu.org/
|
819 |
|
|
2. http://gcc.gnu.org/gcc-4.4/changes.html
|
820 |
|
|
3. http://gcc.gnu.org/gcc-4.4/changes.html
|
821 |
|
|
4. http://gcc.gnu.org/gcc-4.4/changes.html
|
822 |
|
|
5. http://gcc.gnu.org/gcc-4.4/changes.html
|
823 |
|
|
6. http://gcc.gnu.org/gcc-4.4/changes.html
|
824 |
|
|
7. http://gcc.gnu.org/gcc-4.4/buildstat.html
|
825 |
|
|
8. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
|
826 |
|
|
9. http://gcc.gnu.org/index.html
|
827 |
|
|
10. mailto:gcc@gcc.gnu.org
|
828 |
|
|
11. http://gcc.gnu.org/mirrors.html
|
829 |
|
|
12. http://gcc.gnu.org/svn.html
|
830 |
|
|
13. mailto:gnu@gnu.org
|
831 |
|
|
14. http://www.gnu.org/home.html#ContactInfo
|
832 |
|
|
15. http://gcc.gnu.org/about.html
|
833 |
|
|
16. http://gcc.gnu.org/onlinedocs/
|
834 |
|
|
17. mailto:gcc-help@gcc.gnu.org
|
835 |
|
|
18. mailto:gcc@gnu.org
|
836 |
|
|
19. mailto:gcc@gcc.gnu.org
|
837 |
|
|
20. http://gcc.gnu.org/lists.html
|
838 |
|
|
21. http://validator.w3.org/check/referer
|
839 |
|
|
======================================================================
|
840 |
|
|
http://gcc.gnu.org/gcc-4.4/changes.html
|
841 |
|
|
|
842 |
|
|
GCC 4.4 Release Series
|
843 |
|
|
Changes, New Features, and Fixes
|
844 |
|
|
|
845 |
|
|
The latest release in the 4.4 release series is [1]GCC 4.4.4.
|
846 |
|
|
|
847 |
|
|
Caveats
|
848 |
|
|
|
849 |
|
|
* __builtin_stdarg_start has been completely removed from GCC.
|
850 |
|
|
Support for had been deprecated since GCC 4.0. Use
|
851 |
|
|
__builtin_va_start as a replacement.
|
852 |
|
|
* Some of the errors issued by the C++ front end that could be
|
853 |
|
|
downgraded to warnings in previous releases by using -fpermissive
|
854 |
|
|
are now warnings by default. They can be converted into errors by
|
855 |
|
|
using -pedantic-errors.
|
856 |
|
|
* Use of the cpp assertion extension will now emit a warning when
|
857 |
|
|
-Wdeprecated or -pedantic is used. This extension has been
|
858 |
|
|
deprecated for many years, but never warned about.
|
859 |
|
|
* Packed bit-fields of type char were not properly bit-packed on many
|
860 |
|
|
targets prior to GCC 4.4. On these targets, the fix in GCC 4.4
|
861 |
|
|
causes an ABI change. For example there is no longer a 4-bit
|
862 |
|
|
padding between field a and b in this structure:
|
863 |
|
|
struct foo
|
864 |
|
|
{
|
865 |
|
|
char a:4;
|
866 |
|
|
char b:8;
|
867 |
|
|
} __attribute__ ((packed));
|
868 |
|
|
There is a new warning to help identify fields that are affected:
|
869 |
|
|
foo.c:5: note: Offset of packed bit-field 'b' has changed in GCC 4.4
|
870 |
|
|
The warning can be disabled with -Wno-packed-bitfield-compat.
|
871 |
|
|
* On ARM EABI targets, the C++ mangling of the va_list type has been
|
872 |
|
|
changed to conform to the current revision of the EABI. This does
|
873 |
|
|
not affect the libstdc++ library included with GCC.
|
874 |
|
|
* The SCOUNT and POS bits of the MIPS DSP control register are now
|
875 |
|
|
treated as global. Previous versions of GCC treated these fields as
|
876 |
|
|
call-clobbered instead.
|
877 |
|
|
* The MIPS port no longer recognizes the h asm constraint. It was
|
878 |
|
|
necessary to remove this constraint in order to avoid generating
|
879 |
|
|
unpredictable code sequences.
|
880 |
|
|
One of the main uses of the h constraint was to extract the high
|
881 |
|
|
part of a multiplication on 64-bit targets. For example:
|
882 |
|
|
asm ("dmultu\t%1,%2" : "=h" (result) : "r" (x), "r" (y));
|
883 |
|
|
You can now achieve the same effect using 128-bit types:
|
884 |
|
|
typedef unsigned int uint128_t __attribute__((mode(TI)));
|
885 |
|
|
result = ((uint128_t) x * y) >> 64;
|
886 |
|
|
The second sequence is better in many ways. For example, if x and y
|
887 |
|
|
are constants, the compiler can perform the multiplication at
|
888 |
|
|
compile time. If x and y are not constants, the compiler can
|
889 |
|
|
schedule the runtime multiplication better than it can schedule an
|
890 |
|
|
asm statement.
|
891 |
|
|
* Support for a number of older systems and recently unmaintained or
|
892 |
|
|
untested target ports of GCC has been declared obsolete in GCC 4.4.
|
893 |
|
|
Unless there is activity to revive them, the next release of GCC
|
894 |
|
|
will have their sources permanently removed.
|
895 |
|
|
The following ports for individual systems on particular
|
896 |
|
|
architectures have been obsoleted:
|
897 |
|
|
+ Generic a.out on IA32 and m68k (i[34567]86-*-aout*,
|
898 |
|
|
m68k-*-aout*)
|
899 |
|
|
+ Generic COFF on ARM, H8300, IA32, m68k and SH (arm-*-coff*,
|
900 |
|
|
armel-*-coff*, h8300-*-*, i[34567]86-*-coff*, m68k-*-coff*,
|
901 |
|
|
sh-*-*). This does not affect other more specific targets
|
902 |
|
|
using the COFF object format on those architectures, or the
|
903 |
|
|
more specific H8300 and SH targets (h8300-*-rtems*,
|
904 |
|
|
h8300-*-elf*, sh-*-elf*, sh-*-symbianelf*, sh-*-linux*,
|
905 |
|
|
sh-*-netbsdelf*, sh-*-rtems*, sh-wrs-vxworks).
|
906 |
|
|
+ 2BSD on PDP-11 (pdp11-*-bsd)
|
907 |
|
|
+ AIX 4.1 and 4.2 on PowerPC (rs6000-ibm-aix4.[12]*,
|
908 |
|
|
powerpc-ibm-aix4.[12]*)
|
909 |
|
|
+ Tuning support for Itanium1 (Merced) variants. Note that code
|
910 |
|
|
tuned for Itanium2 should also run correctly on Itanium1.
|
911 |
|
|
* The protoize and unprotoize utilities have been obsoleted and will
|
912 |
|
|
be removed in GCC 4.5. These utilities have not been installed by
|
913 |
|
|
default since GCC 3.0.
|
914 |
|
|
* Support has been removed for all the [2]configurations obsoleted in
|
915 |
|
|
GCC 4.3.
|
916 |
|
|
* Unknown -Wno-* options are now silently ignored by GCC if no other
|
917 |
|
|
diagnostics are issued. If other diagnostics are issued, then GCC
|
918 |
|
|
warns about the unknown options.
|
919 |
|
|
* More information on porting to GCC 4.4 from previous versions of
|
920 |
|
|
GCC can be found in the [3]porting guide for this release.
|
921 |
|
|
|
922 |
|
|
General Optimizer Improvements
|
923 |
|
|
|
924 |
|
|
* A new command-line switch -findirect-inlining has been added. When
|
925 |
|
|
turned on it allows the inliner to also inline indirect calls that
|
926 |
|
|
are discovered to have known targets at compile time thanks to
|
927 |
|
|
previous inlining.
|
928 |
|
|
* A new command-line switch -ftree-switch-conversion has been added.
|
929 |
|
|
This new pass turns simple initializations of scalar variables in
|
930 |
|
|
switch statements into initializations from a static array, given
|
931 |
|
|
that all the values are known at compile time and the ratio between
|
932 |
|
|
the new array size and the original switch branches does not exceed
|
933 |
|
|
the parameter --param switch-conversion-max-branch-ratio (default
|
934 |
|
|
is eight).
|
935 |
|
|
* A new command-line switch -ftree-builtin-call-dce has been added.
|
936 |
|
|
This optimization eliminates unnecessary calls to certain builtin
|
937 |
|
|
functions when the return value is not used, in cases where the
|
938 |
|
|
calls can not be eliminated entirely because the function may set
|
939 |
|
|
errno. This optimization is on by default at -O2 and above.
|
940 |
|
|
* A new command-line switch -fconserve-stack directs the compiler to
|
941 |
|
|
minimize stack usage even if it makes the generated code slower.
|
942 |
|
|
This affects inlining decisions.
|
943 |
|
|
* When the assembler supports it, the compiler will now emit unwind
|
944 |
|
|
information using assembler .cfi directives. This makes it possible
|
945 |
|
|
to use such directives in inline assembler code. The new option
|
946 |
|
|
-fno-dwarf2-cfi-asm directs the compiler to not use .cfi
|
947 |
|
|
directives.
|
948 |
|
|
* The [4]Graphite branch has been merged. This merge has brought in a
|
949 |
|
|
new framework for loop optimizations based on a polyhedral
|
950 |
|
|
intermediate representation. These optimizations apply to all the
|
951 |
|
|
languages supported by GCC. The following new code transformations
|
952 |
|
|
are available in GCC 4.4:
|
953 |
|
|
+ -floop-interchange performs loop interchange transformations
|
954 |
|
|
on loops. Interchanging two nested loops switches the inner
|
955 |
|
|
and outer loops. For example, given a loop like:
|
956 |
|
|
DO J = 1, M
|
957 |
|
|
DO I = 1, N
|
958 |
|
|
A(J, I) = A(J, I) * C
|
959 |
|
|
ENDDO
|
960 |
|
|
ENDDO
|
961 |
|
|
|
962 |
|
|
loop interchange will transform the loop as if the user had
|
963 |
|
|
written:
|
964 |
|
|
DO I = 1, N
|
965 |
|
|
DO J = 1, M
|
966 |
|
|
A(J, I) = A(J, I) * C
|
967 |
|
|
ENDDO
|
968 |
|
|
ENDDO
|
969 |
|
|
|
970 |
|
|
which can be beneficial when N is larger than the caches,
|
971 |
|
|
because in Fortran, the elements of an array are stored in
|
972 |
|
|
memory contiguously by column, and the original loop iterates
|
973 |
|
|
over rows, potentially creating at each access a cache miss.
|
974 |
|
|
+ -floop-strip-mine performs loop strip mining transformations
|
975 |
|
|
on loops. Strip mining splits a loop into two nested loops.
|
976 |
|
|
The outer loop has strides equal to the strip size and the
|
977 |
|
|
inner loop has strides of the original loop within a strip.
|
978 |
|
|
For example, given a loop like:
|
979 |
|
|
DO I = 1, N
|
980 |
|
|
A(I) = A(I) + C
|
981 |
|
|
ENDDO
|
982 |
|
|
|
983 |
|
|
loop strip mining will transform the loop as if the user had
|
984 |
|
|
written:
|
985 |
|
|
DO II = 1, N, 4
|
986 |
|
|
DO I = II, min (II + 3, N)
|
987 |
|
|
A(I) = A(I) + C
|
988 |
|
|
ENDDO
|
989 |
|
|
ENDDO
|
990 |
|
|
|
991 |
|
|
+ -floop-block performs loop blocking transformations on loops.
|
992 |
|
|
Blocking strip mines each loop in the loop nest such that the
|
993 |
|
|
memory accesses of the element loops fit inside caches. For
|
994 |
|
|
example, given a loop like:
|
995 |
|
|
DO I = 1, N
|
996 |
|
|
DO J = 1, M
|
997 |
|
|
A(J, I) = B(I) + C(J)
|
998 |
|
|
ENDDO
|
999 |
|
|
ENDDO
|
1000 |
|
|
|
1001 |
|
|
loop blocking will transform the loop as if the user had
|
1002 |
|
|
written:
|
1003 |
|
|
DO II = 1, N, 64
|
1004 |
|
|
DO JJ = 1, M, 64
|
1005 |
|
|
DO I = II, min (II + 63, N)
|
1006 |
|
|
DO J = JJ, min (JJ + 63, M)
|
1007 |
|
|
A(J, I) = B(I) + C(J)
|
1008 |
|
|
ENDDO
|
1009 |
|
|
ENDDO
|
1010 |
|
|
ENDDO
|
1011 |
|
|
ENDDO
|
1012 |
|
|
|
1013 |
|
|
which can be beneficial when M is larger than the caches,
|
1014 |
|
|
because the innermost loop will iterate over a smaller amount
|
1015 |
|
|
of data that can be kept in the caches.
|
1016 |
|
|
* A new register allocator has replaced the old one. It is called
|
1017 |
|
|
integrated register allocator (IRA) because coalescing, register
|
1018 |
|
|
live range splitting, and hard register preferencing are done
|
1019 |
|
|
on-the-fly during coloring. It also has better integration with the
|
1020 |
|
|
reload pass. IRA is a regional register allocator which uses modern
|
1021 |
|
|
Chaitin-Briggs coloring instead of Chow's priority coloring used in
|
1022 |
|
|
the old register allocator. More info about IRA internals and
|
1023 |
|
|
options can be found in the GCC manuals.
|
1024 |
|
|
* A new instruction scheduler and software pipeliner, based on the
|
1025 |
|
|
selective scheduling approach, has been added. The new pass
|
1026 |
|
|
performs instruction unification, register renaming, substitution
|
1027 |
|
|
through register copies, and speculation during scheduling. The
|
1028 |
|
|
software pipeliner is able to pipeline non-countable loops. The new
|
1029 |
|
|
pass is targeted at scheduling-eager in-order platforms. In GCC 4.4
|
1030 |
|
|
it is available for the Intel Itanium platform working by default
|
1031 |
|
|
as the second scheduling pass (after register allocation) at the
|
1032 |
|
|
-O3 optimization level.
|
1033 |
|
|
* When using -fprofile-generate with a multi-threaded program, the
|
1034 |
|
|
profile counts may be slightly wrong due to race conditions. The
|
1035 |
|
|
new -fprofile-correction option directs the compiler to apply
|
1036 |
|
|
heuristics to smooth out the inconsistencies. By default the
|
1037 |
|
|
compiler will give an error message when it finds an inconsistent
|
1038 |
|
|
profile.
|
1039 |
|
|
* The new -fprofile-dir=PATH option permits setting the directory
|
1040 |
|
|
where profile data files are stored when using -fprofile-generate
|
1041 |
|
|
and friends, and the directory used when reading profile data files
|
1042 |
|
|
using -fprofile-use and friends.
|
1043 |
|
|
|
1044 |
|
|
New warning options
|
1045 |
|
|
|
1046 |
|
|
* The new -Wframe-larger-than=NUMBER option directs GCC to emit a
|
1047 |
|
|
warning if any stack frame is larger than NUMBER bytes. This may be
|
1048 |
|
|
used to help ensure that code fits within a limited amount of stack
|
1049 |
|
|
space.
|
1050 |
|
|
* The command-line option -Wlarger-than-N is now written as
|
1051 |
|
|
-Wlarger-than=N and the old form is deprecated.
|
1052 |
|
|
* The new -Wno-mudflap option disables warnings about constructs
|
1053 |
|
|
which can not be instrumented when using -fmudflap.
|
1054 |
|
|
|
1055 |
|
|
New Languages and Language specific improvements
|
1056 |
|
|
|
1057 |
|
|
* Version 3.0 of the [5]OpenMP specification is now supported for the
|
1058 |
|
|
C, C++, and Fortran compilers.
|
1059 |
|
|
* New character data types, per [6]TR 19769: New character types in
|
1060 |
|
|
C, are now supported for the C compiler in -std=gnu99 mode, as
|
1061 |
|
|
__CHAR16_TYPE__ and __CHAR32_TYPE__, and for the C++ compiler in
|
1062 |
|
|
-std=c++0x and -std=gnu++0x modes, as char16_t and char32_t too.
|
1063 |
|
|
|
1064 |
|
|
C family
|
1065 |
|
|
|
1066 |
|
|
* A new optimize attribute was added to allow programmers to change
|
1067 |
|
|
the optimization level and particular optimization options for an
|
1068 |
|
|
individual function. You can also change the optimization options
|
1069 |
|
|
via the GCC optimize pragma for functions defined after the pragma.
|
1070 |
|
|
The GCC push_options pragma and the GCC pop_options pragma allow
|
1071 |
|
|
you temporarily save and restore the options used. The GCC
|
1072 |
|
|
reset_options pragma restores the options to what was specified on
|
1073 |
|
|
the command line.
|
1074 |
|
|
* Uninitialized warnings do not require enabling optimization
|
1075 |
|
|
anymore, that is, -Wuninitialized can be used together with -O0.
|
1076 |
|
|
Nonetheless, the warnings given by -Wuninitialized will probably be
|
1077 |
|
|
more accurate if optimization is enabled.
|
1078 |
|
|
* -Wparentheses now warns about expressions such as (!x | y) and (!x
|
1079 |
|
|
& y). Using explicit parentheses, such as in ((!x) | y), silences
|
1080 |
|
|
this warning.
|
1081 |
|
|
* -Wsequence-point now warns within if, while,do while and for
|
1082 |
|
|
conditions, and within for begin/end expressions.
|
1083 |
|
|
* A new option -dU is available to dump definitions of preprocessor
|
1084 |
|
|
macros that are tested or expanded.
|
1085 |
|
|
|
1086 |
|
|
C++
|
1087 |
|
|
|
1088 |
|
|
* [7]Improved experimental support for the upcoming ISO C++ standard,
|
1089 |
|
|
C++0x. Including support for auto, inline namespaces, generalized
|
1090 |
|
|
initializer lists, defaulted and deleted functions, new character
|
1091 |
|
|
types, and scoped enums.
|
1092 |
|
|
* Those errors that may be downgraded to warnings to build legacy
|
1093 |
|
|
code now mention -fpermissive when -fdiagnostics-show-option is
|
1094 |
|
|
enabled.
|
1095 |
|
|
* -Wconversion now warns if the result of a static_cast to enumeral
|
1096 |
|
|
type is unspecified because the value is outside the range of the
|
1097 |
|
|
enumeral type.
|
1098 |
|
|
* -Wuninitialized now warns if a non-static reference or non-static
|
1099 |
|
|
const member appears in a class without constructors.
|
1100 |
|
|
* G++ now properly implements value-initialization, so objects with
|
1101 |
|
|
an initializer of () and an implicitly defined default constructor
|
1102 |
|
|
will be zero-initialized before the default constructor is called.
|
1103 |
|
|
|
1104 |
|
|
Runtime Library (libstdc++)
|
1105 |
|
|
|
1106 |
|
|
* [8]Improved experimental support for the upcoming ISO C++ standard,
|
1107 |
|
|
C++0x, including:
|
1108 |
|
|
+ Support for , , ,
|
1109 |
|
|
, , , ,
|
1110 |
|
|
, and .
|
1111 |
|
|
+ unique_ptr, additions, exception propagation, and
|
1112 |
|
|
support for the new character types in and .
|
1113 |
|
|
+ Existing facilities now exploit initializer lists, defaulted
|
1114 |
|
|
and deleted functions, and the newly implemented core C++0x
|
1115 |
|
|
features.
|
1116 |
|
|
+ Some standard containers are more efficient together with
|
1117 |
|
|
stateful allocators, i.e., no allocator is constructed on the
|
1118 |
|
|
fly at element construction time.
|
1119 |
|
|
* Experimental support for non-standard pointer types in containers.
|
1120 |
|
|
* The long standing libstdc++/30928 has been fixed for targets
|
1121 |
|
|
running glibc 2.10 or later.
|
1122 |
|
|
* As usual, many small and larger bug fixes, in particular quite a
|
1123 |
|
|
few corner cases in .
|
1124 |
|
|
|
1125 |
|
|
Fortran
|
1126 |
|
|
|
1127 |
|
|
* GNU Fortran now employs libcpp directly instead of using cc1 as an
|
1128 |
|
|
external preprocessor. The [9]-cpp option was added to allow manual
|
1129 |
|
|
invocation of the preprocessor without relying on filename
|
1130 |
|
|
extensions.
|
1131 |
|
|
* The [10]-Warray-temporaries option warns about array temporaries
|
1132 |
|
|
generated by the compiler, as an aid to optimization.
|
1133 |
|
|
* The [11]-fcheck-array-temporaries option has been added, printing a
|
1134 |
|
|
notification at run time, when an array temporary had to be created
|
1135 |
|
|
for an function argument. Contrary to -Warray-temporaries the
|
1136 |
|
|
warning is only printed if the array is noncontiguous.
|
1137 |
|
|
* Improved generation of DWARF debugging symbols
|
1138 |
|
|
* If using an intrinsic not part of the selected standard (via -std=
|
1139 |
|
|
and -fall-intrinsics) gfortran will now treat it as if this
|
1140 |
|
|
procedure were declared EXTERNAL and try to link to a user-supplied
|
1141 |
|
|
procedure. -Wintrinsics-std will warn whenever this happens. The
|
1142 |
|
|
now-useless option -Wnonstd-intrinsic was removed.
|
1143 |
|
|
* The flag -falign-commons has been added to control the alignment of
|
1144 |
|
|
variables in COMMON blocks, which is enabled by default in line
|
1145 |
|
|
with previous GCC version. Using -fno-align-commons one can force
|
1146 |
|
|
commons to be contiguous in memory as required by the Fortran
|
1147 |
|
|
standard, however, this slows down the memory access. The option
|
1148 |
|
|
-Walign-commons, which is enabled by default, warns when padding
|
1149 |
|
|
bytes were added for alignment. The proper solution is to sort the
|
1150 |
|
|
common objects by decreasing storage size, which avoids the
|
1151 |
|
|
alignment problems.
|
1152 |
|
|
* Fortran 2003 support has been extended:
|
1153 |
|
|
+ Wide characters (ISO 10646, UCS-4, kind=4) and UTF-8 I/O is
|
1154 |
|
|
now supported (except internal reads from/writes to wide
|
1155 |
|
|
strings). [12]-fbackslash now supports also \unnnn and
|
1156 |
|
|
\Unnnnnnnn to enter Unicode characters.
|
1157 |
|
|
+ Asynchronous I/O (implemented as synchronous I/O) and the
|
1158 |
|
|
decimal=, size=, sign=, pad=, blank=, and delim= specifiers
|
1159 |
|
|
are now supported in I/O statements.
|
1160 |
|
|
+ Support for Fortran 2003 structure constructors and for array
|
1161 |
|
|
constructor with typespec has been added.
|
1162 |
|
|
+ Procedure Pointers (but not yet as component in derived types
|
1163 |
|
|
and as function results) are now supported.
|
1164 |
|
|
+ Abstract types, type extension, and type-bound procedures
|
1165 |
|
|
(both PROCEDURE and GENERIC but not as operators). Note: As
|
1166 |
|
|
CLASS/polymorphyic types are not implemented, type-bound
|
1167 |
|
|
procedures with PASS accept as non-standard extension TYPE
|
1168 |
|
|
arguments.
|
1169 |
|
|
* Fortran 2008 support has been added:
|
1170 |
|
|
+ The -std=f2008 option and support for the file extensions
|
1171 |
|
|
.f2008 and .F2008 has been added.
|
1172 |
|
|
+ The g0 format descriptor is now supported.
|
1173 |
|
|
+ The Fortran 2008 mathematical intrinsics ASINH, ACOSH, ATANH,
|
1174 |
|
|
ERF, ERFC, GAMMA, LOG_GAMMA, BESSEL_*, HYPOT, and ERFC_SCALED
|
1175 |
|
|
are now available (some of them existed as GNU extension
|
1176 |
|
|
before). Note: The hyperbolic functions are not yet supporting
|
1177 |
|
|
complex arguments and the three- argument version of BESSEL_*N
|
1178 |
|
|
is not available.
|
1179 |
|
|
+ The bit intrinsics LEADZ and TRAILZ have been added.
|
1180 |
|
|
|
1181 |
|
|
Java (GCJ)
|
1182 |
|
|
|
1183 |
|
|
Ada
|
1184 |
|
|
|
1185 |
|
|
* The Ada runtime now supports multilibs on many platforms including
|
1186 |
|
|
x86_64, SPARC and PowerPC. Their build is enabled by default.
|
1187 |
|
|
|
1188 |
|
|
New Targets and Target Specific Improvements
|
1189 |
|
|
|
1190 |
|
|
ARM
|
1191 |
|
|
|
1192 |
|
|
* GCC now supports optimizing for the Cortex-A9, Cortex-R4 and
|
1193 |
|
|
Cortex-R4F processors and has many other improvements to
|
1194 |
|
|
optimization for ARM processors.
|
1195 |
|
|
* GCC now supports the VFPv3 variant with 16 double-precision
|
1196 |
|
|
registers with -mfpu=vfpv3-d16. The option -mfpu=vfp3 has been
|
1197 |
|
|
renamed to -mfpu=vfpv3.
|
1198 |
|
|
* GCC now supports the -mfix-cortex-m3-ldrd option to work around an
|
1199 |
|
|
erratum on Cortex-M3 processors.
|
1200 |
|
|
* GCC now supports the __sync_* atomic operations for ARM EABI
|
1201 |
|
|
GNU/Linux.
|
1202 |
|
|
* The section anchors optimization is now enabled by default when
|
1203 |
|
|
optimizing for ARM.
|
1204 |
|
|
* GCC now uses a new EABI-compatible profiling interface for EABI
|
1205 |
|
|
targets. This requires a function __gnu_mcount_nc, which is
|
1206 |
|
|
provided by GNU libc versions 2.8 and later.
|
1207 |
|
|
|
1208 |
|
|
AVR
|
1209 |
|
|
|
1210 |
|
|
* The -mno-tablejump option has been deprecated because it has the
|
1211 |
|
|
same effect as the -fno-jump-tables option.
|
1212 |
|
|
* Added support for these new AVR devices:
|
1213 |
|
|
+ ATA6289
|
1214 |
|
|
+ ATtiny13A
|
1215 |
|
|
+ ATtiny87
|
1216 |
|
|
+ ATtiny167
|
1217 |
|
|
+ ATtiny327
|
1218 |
|
|
+ ATmega8C1
|
1219 |
|
|
+ ATmega16C1
|
1220 |
|
|
+ ATmega32C1
|
1221 |
|
|
+ ATmega8M1
|
1222 |
|
|
+ ATmega16M1
|
1223 |
|
|
+ ATmega32M1
|
1224 |
|
|
+ ATmega32U4
|
1225 |
|
|
+ ATmega16HVB
|
1226 |
|
|
+ ATmega4HVD
|
1227 |
|
|
+ ATmega8HVD
|
1228 |
|
|
+ ATmega64C1
|
1229 |
|
|
+ ATmega64M1
|
1230 |
|
|
+ ATmega16U4
|
1231 |
|
|
+ ATmega32U6
|
1232 |
|
|
+ ATmega128RFA1
|
1233 |
|
|
+ AT90PWM81
|
1234 |
|
|
+ AT90SCR100
|
1235 |
|
|
+ M3000F
|
1236 |
|
|
+ M3000S
|
1237 |
|
|
+ M3001B
|
1238 |
|
|
|
1239 |
|
|
IA-32/x86-64
|
1240 |
|
|
|
1241 |
|
|
* Support for Intel AES built-in functions and code generation is
|
1242 |
|
|
available via -maes.
|
1243 |
|
|
* Support for Intel PCLMUL built-in function and code generation is
|
1244 |
|
|
available via -mpclmul.
|
1245 |
|
|
* Support for Intel AVX built-in functions and code generation is
|
1246 |
|
|
available via -mavx.
|
1247 |
|
|
* Automatically align the stack for local variables with alignment
|
1248 |
|
|
requirement.
|
1249 |
|
|
* GCC can now utilize the SVML library for vectorizing calls to a set
|
1250 |
|
|
of C99 functions if -mveclibabi=svml is specified and you link to
|
1251 |
|
|
an SVML ABI compatible library.
|
1252 |
|
|
* On x86-64, the ABI has been changed in the following cases to
|
1253 |
|
|
conform to the x86-64 ABI:
|
1254 |
|
|
+ Passing/returning structures with flexible array member:
|
1255 |
|
|
struct foo
|
1256 |
|
|
{
|
1257 |
|
|
int i;
|
1258 |
|
|
int flex[];
|
1259 |
|
|
};
|
1260 |
|
|
+ Passing/returning structures with complex float member:
|
1261 |
|
|
struct foo
|
1262 |
|
|
{
|
1263 |
|
|
int i;
|
1264 |
|
|
__complex__ float f;
|
1265 |
|
|
};
|
1266 |
|
|
+ Passing/returning unions with long double member:
|
1267 |
|
|
union foo
|
1268 |
|
|
{
|
1269 |
|
|
int x;
|
1270 |
|
|
long double ld;
|
1271 |
|
|
};
|
1272 |
|
|
Code built with previous versions of GCC that uses any of these is
|
1273 |
|
|
not compatible with code built with GCC 4.4.0 or later.
|
1274 |
|
|
* A new target attribute was added to allow programmers to change the
|
1275 |
|
|
target options like -msse2 or -march=k8 for an individual function.
|
1276 |
|
|
You can also change the target options via the GCC target pragma
|
1277 |
|
|
for functions defined after the pragma.
|
1278 |
|
|
* GCC can now be configured with options --with-arch-32,
|
1279 |
|
|
--with-arch-64, --with-cpu-32, --with-cpu-64, --with-tune-32 and
|
1280 |
|
|
--with-tune-64 to control the default optimization separately for
|
1281 |
|
|
32-bit and 64-bit modes.
|
1282 |
|
|
|
1283 |
|
|
IA-32/IA64
|
1284 |
|
|
|
1285 |
|
|
* Support for __float128 (TFmode) IEEE quad type and corresponding
|
1286 |
|
|
TCmode IEEE complex quad type is available via the soft-fp library
|
1287 |
|
|
on IA-32/IA64 targets. This includes basic arithmetic operations
|
1288 |
|
|
(addition, subtraction, negation, multiplication and division) on
|
1289 |
|
|
__float128 real and TCmode complex values, the full set of IEEE
|
1290 |
|
|
comparisons between __float128 values, conversions to and from
|
1291 |
|
|
float, double and long double floating point types, as well as
|
1292 |
|
|
conversions to and from signed or unsigned integer, signed or
|
1293 |
|
|
unsigned long integer and signed or unsigned quad (TImode, IA64
|
1294 |
|
|
only) integer types. Additionally, all operations generate the full
|
1295 |
|
|
set of IEEE exceptions and support the full set of IEEE rounding
|
1296 |
|
|
modes.
|
1297 |
|
|
|
1298 |
|
|
M68K/ColdFire
|
1299 |
|
|
|
1300 |
|
|
* GCC now supports instruction scheduling for ColdFire V1, V3 and V4
|
1301 |
|
|
processors. (Scheduling support for ColdFire V2 processors was
|
1302 |
|
|
added in GCC 4.3.)
|
1303 |
|
|
* GCC now supports the -mxgot option to support programs requiring
|
1304 |
|
|
many GOT entries on ColdFire.
|
1305 |
|
|
* The m68k-*-linux-gnu target now builds multilibs by default.
|
1306 |
|
|
|
1307 |
|
|
MIPS
|
1308 |
|
|
|
1309 |
|
|
* MIPS Technologies have extended the original MIPS SVR4 ABI to
|
1310 |
|
|
include support for procedure linkage tables (PLTs) and copy
|
1311 |
|
|
relocations. These extensions allow GNU/Linux executables to use a
|
1312 |
|
|
significantly more efficient code model than the one defined by the
|
1313 |
|
|
original ABI.
|
1314 |
|
|
GCC support for this code model is available via a new command-line
|
1315 |
|
|
option, -mplt. There is also a new configure-time option,
|
1316 |
|
|
--with-mips-plt, to make -mplt the default.
|
1317 |
|
|
The new code model requires support from the assembler, the linker,
|
1318 |
|
|
and the runtime C library. This support is available in binutils
|
1319 |
|
|
2.19 and GLIBC 2.9.
|
1320 |
|
|
* GCC can now generate MIPS16 code for 32-bit GNU/Linux executables
|
1321 |
|
|
and 32-bit GNU/Linux shared libraries. This feature requires GNU
|
1322 |
|
|
binutils 2.19 or above.
|
1323 |
|
|
* Support for RMI's XLR processor is now available through the
|
1324 |
|
|
-march=xlr and -mtune=xlr options.
|
1325 |
|
|
* 64-bit targets can now perform 128-bit multiplications inline,
|
1326 |
|
|
instead of relying on a libgcc function.
|
1327 |
|
|
* Native GNU/Linux toolchains now support -march=native and
|
1328 |
|
|
-mtune=native, which select the host processor.
|
1329 |
|
|
* GCC now supports the R10K, R12K, R14K and R16K processors. The
|
1330 |
|
|
canonical -march= and -mtune= names for these processors are
|
1331 |
|
|
r10000, r12000, r14000 and r16000 respectively.
|
1332 |
|
|
* GCC can now work around the side effects of speculative execution
|
1333 |
|
|
on R10K processors. Please see the documentation of the
|
1334 |
|
|
-mr10k-cache-barrier option for details.
|
1335 |
|
|
* Support for the MIPS64 Release 2 instruction set has been added.
|
1336 |
|
|
The option -march=mips64r2 enables generation of these
|
1337 |
|
|
instructions.
|
1338 |
|
|
* GCC now supports Cavium Networks' Octeon processor. This support is
|
1339 |
|
|
available through the -march=octeon and -mtune=octeon options.
|
1340 |
|
|
* GCC now supports STMicroelectronics' Loongson 2E/2F processors. The
|
1341 |
|
|
canonical -march= and -mtune= names for these processors are
|
1342 |
|
|
loongson2e and loongson2f.
|
1343 |
|
|
|
1344 |
|
|
picochip
|
1345 |
|
|
|
1346 |
|
|
Picochip is a 16-bit processor. A typical picoChip contains over 250
|
1347 |
|
|
small cores, each with small amounts of memory. There are three
|
1348 |
|
|
processor variants (STAN, MEM and CTRL) with different instruction sets
|
1349 |
|
|
and memory configurations and they can be chosen using the -mae option.
|
1350 |
|
|
|
1351 |
|
|
This port is intended to be a "C" only port.
|
1352 |
|
|
|
1353 |
|
|
Power Architecture and PowerPC
|
1354 |
|
|
|
1355 |
|
|
* GCC now supports the e300c2, e300c3 and e500mc processors.
|
1356 |
|
|
* GCC now supports Xilinx processors with a single-precision FPU.
|
1357 |
|
|
* Decimal floating point is now supported for e500 processors.
|
1358 |
|
|
|
1359 |
|
|
S/390, zSeries and System z9/z10
|
1360 |
|
|
|
1361 |
|
|
* Support for the IBM System z10 EC/BC processor has been added. When
|
1362 |
|
|
using the -march=z10 option, the compiler will generate code making
|
1363 |
|
|
use of instructions provided by the General-Instruction-Extension
|
1364 |
|
|
Facility and the Execute-Extension Facility.
|
1365 |
|
|
|
1366 |
|
|
VxWorks
|
1367 |
|
|
|
1368 |
|
|
* GCC now supports the thread-local storage mechanism used on
|
1369 |
|
|
VxWorks.
|
1370 |
|
|
|
1371 |
|
|
Xtensa
|
1372 |
|
|
|
1373 |
|
|
* GCC now supports thread-local storage (TLS) for Xtensa processor
|
1374 |
|
|
configurations that include the Thread Pointer option. TLS also
|
1375 |
|
|
requires support from the assembler and linker; this support is
|
1376 |
|
|
provided in the GNU binutils beginning with version 2.19.
|
1377 |
|
|
|
1378 |
|
|
Documentation improvements
|
1379 |
|
|
|
1380 |
|
|
Other significant improvements
|
1381 |
|
|
|
1382 |
|
|
GCC 4.4.1
|
1383 |
|
|
|
1384 |
|
|
This is the [13]list of problem reports (PRs) from GCC's bug tracking
|
1385 |
|
|
system that are known to be fixed in the 4.4.1 release. This list might
|
1386 |
|
|
not be complete (that is, it is possible that some PRs that have been
|
1387 |
|
|
fixed are not listed here).
|
1388 |
|
|
|
1389 |
|
|
GCC 4.4.2
|
1390 |
|
|
|
1391 |
|
|
This is the [14]list of problem reports (PRs) from GCC's bug tracking
|
1392 |
|
|
system that are known to be fixed in the 4.4.2 release. This list might
|
1393 |
|
|
not be complete (that is, it is possible that some PRs that have been
|
1394 |
|
|
fixed are not listed here).
|
1395 |
|
|
|
1396 |
|
|
GCC 4.4.3
|
1397 |
|
|
|
1398 |
|
|
This is the [15]list of problem reports (PRs) from GCC's bug tracking
|
1399 |
|
|
system that are known to be fixed in the 4.4.3 release. This list might
|
1400 |
|
|
not be complete (that is, it is possible that some PRs that have been
|
1401 |
|
|
fixed are not listed here).
|
1402 |
|
|
|
1403 |
|
|
GCC 4.4.4
|
1404 |
|
|
|
1405 |
|
|
This is the [16]list of problem reports (PRs) from GCC's bug tracking
|
1406 |
|
|
system that are known to be fixed in the 4.4.4 release. This list might
|
1407 |
|
|
not be complete (that is, it is possible that some PRs that have been
|
1408 |
|
|
fixed are not listed here).
|
1409 |
|
|
|
1410 |
|
|
Please send FSF & GNU inquiries & questions to [17]gnu@gnu.org. There
|
1411 |
|
|
are also [18]other ways to contact the FSF.
|
1412 |
|
|
|
1413 |
|
|
These pages are [19]maintained by the GCC team.
|
1414 |
|
|
|
1415 |
|
|
|
1416 |
|
|
For questions related to the use of GCC, please consult these web
|
1417 |
|
|
pages and the [20]GCC manuals. If that fails, the
|
1418 |
|
|
[21]gcc-help@gcc.gnu.org mailing list might help.
|
1419 |
|
|
Please send comments on these web pages and the development of GCC to
|
1420 |
|
|
our developer mailing list at [22]gcc@gnu.org or [23]gcc@gcc.gnu.org.
|
1421 |
|
|
All of our lists have [24]public archives.
|
1422 |
|
|
|
1423 |
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth
|
1424 |
|
|
Floor, Boston, MA 02110, USA.
|
1425 |
|
|
|
1426 |
|
|
Verbatim copying and distribution of this entire article is permitted
|
1427 |
|
|
in any medium, provided this notice is preserved.
|
1428 |
|
|
Last modified 2010-07-10 [25]Valid XHTML 1.0
|
1429 |
|
|
|
1430 |
|
|
References
|
1431 |
|
|
|
1432 |
|
|
1. http://gcc.gnu.org/gcc-4.4/changes.html#4.4.4
|
1433 |
|
|
2. http://gcc.gnu.org/gcc-4.3/changes.html#obsoleted
|
1434 |
|
|
3. http://gcc.gnu.org/gcc-4.4/porting_to.html
|
1435 |
|
|
4. http://gcc.gnu.org/wiki/Graphite
|
1436 |
|
|
5. http://openmp.org/wp/openmp-specifications/
|
1437 |
|
|
6. http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1040.pdf
|
1438 |
|
|
7. http://gcc.gnu.org/gcc-4.4/cxx0x_status.html
|
1439 |
|
|
8. http://gcc.gnu.org/onlinedocs/libstdc++/manual/status.html#id476343
|
1440 |
|
|
9. http://gcc.gnu.org/onlinedocs/gfortran/Preprocessing-Options.html
|
1441 |
|
|
10. http://gcc.gnu.org/onlinedocs/gfortran/Error-and-Warning-Options.html#index-g_t_0040code_007bWarray-temporaries_007d-125
|
1442 |
|
|
11. http://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfcheck-array-temporaries_007d-221
|
1443 |
|
|
12. http://gcc.gnu.org/onlinedocs/gfortran/Fortran-Dialect-Options.html#index-g_t_0040code_007bbackslash_007d-34
|
1444 |
|
|
13. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.1
|
1445 |
|
|
14. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.2
|
1446 |
|
|
15. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.3
|
1447 |
|
|
16. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.4.4
|
1448 |
|
|
17. mailto:gnu@gnu.org
|
1449 |
|
|
18. http://www.gnu.org/home.html#ContactInfo
|
1450 |
|
|
19. http://gcc.gnu.org/about.html
|
1451 |
|
|
20. http://gcc.gnu.org/onlinedocs/
|
1452 |
|
|
21. mailto:gcc-help@gcc.gnu.org
|
1453 |
|
|
22. mailto:gcc@gnu.org
|
1454 |
|
|
23. mailto:gcc@gcc.gnu.org
|
1455 |
|
|
24. http://gcc.gnu.org/lists.html
|
1456 |
|
|
25. http://validator.w3.org/check/referer
|
1457 |
|
|
======================================================================
|
1458 |
|
|
http://gcc.gnu.org/gcc-4.3/index.html
|
1459 |
|
|
|
1460 |
|
|
GCC 4.3 Release Series
|
1461 |
|
|
|
1462 |
|
|
May 22, 2010
|
1463 |
|
|
|
1464 |
|
|
The [1]GNU project and the GCC developers are pleased to announce the
|
1465 |
|
|
release of GCC 4.3.5.
|
1466 |
|
|
|
1467 |
|
|
This release is a bug-fix release, containing fixes for regressions in
|
1468 |
|
|
GCC 4.3.4 relative to previous releases of GCC.
|
1469 |
|
|
|
1470 |
|
|
Release History
|
1471 |
|
|
|
1472 |
|
|
GCC 4.3.5
|
1473 |
|
|
May 22, 2010 ([2]changes)
|
1474 |
|
|
|
1475 |
|
|
GCC 4.3.4
|
1476 |
|
|
August 4, 2009 ([3]changes)
|
1477 |
|
|
|
1478 |
|
|
GCC 4.3.3
|
1479 |
|
|
January 24, 2009 ([4]changes)
|
1480 |
|
|
|
1481 |
|
|
GCC 4.3.2
|
1482 |
|
|
August 27, 2008 ([5]changes)
|
1483 |
|
|
|
1484 |
|
|
GCC 4.3.1
|
1485 |
|
|
June 6, 2008 ([6]changes)
|
1486 |
|
|
|
1487 |
|
|
GCC 4.3.0
|
1488 |
|
|
March 5, 2008 ([7]changes)
|
1489 |
|
|
|
1490 |
|
|
References and Acknowledgements
|
1491 |
|
|
|
1492 |
|
|
GCC used to stand for the GNU C Compiler, but since the compiler
|
1493 |
|
|
supports several other languages aside from C, it now stands for the
|
1494 |
|
|
GNU Compiler Collection.
|
1495 |
|
|
|
1496 |
|
|
A list of [8]successful builds is updated as new information becomes
|
1497 |
|
|
available.
|
1498 |
|
|
|
1499 |
|
|
The GCC developers would like to thank the numerous people that have
|
1500 |
|
|
contributed new features, improvements, bug fixes, and other changes as
|
1501 |
|
|
well as test results to GCC. This [9]amazing group of volunteers is
|
1502 |
|
|
what makes GCC successful.
|
1503 |
|
|
|
1504 |
|
|
For additional information about GCC please refer to the [10]GCC
|
1505 |
|
|
project web site or contact the [11]GCC development mailing list.
|
1506 |
|
|
|
1507 |
|
|
To obtain GCC please use [12]our mirror sites or [13]our SVN server.
|
1508 |
|
|
|
1509 |
|
|
Please send FSF & GNU inquiries & questions to [14]gnu@gnu.org. There
|
1510 |
|
|
are also [15]other ways to contact the FSF.
|
1511 |
|
|
|
1512 |
|
|
These pages are [16]maintained by the GCC team.
|
1513 |
|
|
|
1514 |
|
|
|
1515 |
|
|
For questions related to the use of GCC, please consult these web
|
1516 |
|
|
pages and the [17]GCC manuals. If that fails, the
|
1517 |
|
|
[18]gcc-help@gcc.gnu.org mailing list might help.
|
1518 |
|
|
Please send comments on these web pages and the development of GCC to
|
1519 |
|
|
our developer mailing list at [19]gcc@gnu.org or [20]gcc@gcc.gnu.org.
|
1520 |
|
|
All of our lists have [21]public archives.
|
1521 |
|
|
|
1522 |
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth
|
1523 |
|
|
Floor, Boston, MA 02110, USA.
|
1524 |
|
|
|
1525 |
|
|
Verbatim copying and distribution of this entire article is permitted
|
1526 |
|
|
in any medium, provided this notice is preserved.
|
1527 |
|
|
Last modified 2010-07-01 [22]Valid XHTML 1.0
|
1528 |
|
|
|
1529 |
|
|
References
|
1530 |
|
|
|
1531 |
|
|
1. http://www.gnu.org/
|
1532 |
|
|
2. http://gcc.gnu.org/gcc-4.3/changes.html
|
1533 |
|
|
3. http://gcc.gnu.org/gcc-4.3/changes.html
|
1534 |
|
|
4. http://gcc.gnu.org/gcc-4.3/changes.html
|
1535 |
|
|
5. http://gcc.gnu.org/gcc-4.3/changes.html
|
1536 |
|
|
6. http://gcc.gnu.org/gcc-4.3/changes.html
|
1537 |
|
|
7. http://gcc.gnu.org/gcc-4.3/changes.html
|
1538 |
|
|
8. http://gcc.gnu.org/gcc-4.3/buildstat.html
|
1539 |
|
|
9. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
|
1540 |
|
|
10. http://gcc.gnu.org/index.html
|
1541 |
|
|
11. mailto:gcc@gcc.gnu.org
|
1542 |
|
|
12. http://gcc.gnu.org/mirrors.html
|
1543 |
|
|
13. http://gcc.gnu.org/svn.html
|
1544 |
|
|
14. mailto:gnu@gnu.org
|
1545 |
|
|
15. http://www.gnu.org/home.html#ContactInfo
|
1546 |
|
|
16. http://gcc.gnu.org/about.html
|
1547 |
|
|
17. http://gcc.gnu.org/onlinedocs/
|
1548 |
|
|
18. mailto:gcc-help@gcc.gnu.org
|
1549 |
|
|
19. mailto:gcc@gnu.org
|
1550 |
|
|
20. mailto:gcc@gcc.gnu.org
|
1551 |
|
|
21. http://gcc.gnu.org/lists.html
|
1552 |
|
|
22. http://validator.w3.org/check/referer
|
1553 |
|
|
======================================================================
|
1554 |
|
|
http://gcc.gnu.org/gcc-4.3/changes.html
|
1555 |
|
|
|
1556 |
|
|
GCC 4.3 Release Series
|
1557 |
|
|
Changes, New Features, and Fixes
|
1558 |
|
|
|
1559 |
|
|
The latest release in the 4.3 release series is [1]GCC 4.3.5.
|
1560 |
|
|
|
1561 |
|
|
Caveats
|
1562 |
|
|
|
1563 |
|
|
* GCC requires the [2]GMP and [3]MPFR libraries for building all the
|
1564 |
|
|
various front-end languages it supports. See the [4]prerequisites
|
1565 |
|
|
page for version requirements.
|
1566 |
|
|
* ColdFire targets now treat long double as having the same format as
|
1567 |
|
|
double. In earlier versions of GCC, they used the 68881 long double
|
1568 |
|
|
format instead.
|
1569 |
|
|
* The m68k-uclinux target now uses the same calling conventions as
|
1570 |
|
|
m68k-linux-gnu. You can select the original calling conventions by
|
1571 |
|
|
configuring for m68k-uclinuxoldabi instead. Note that
|
1572 |
|
|
m68k-uclinuxoldabi also retains the original 80-bit long double on
|
1573 |
|
|
ColdFire targets.
|
1574 |
|
|
* The -fforce-mem option has been removed because it has had no
|
1575 |
|
|
effect in the last few GCC releases.
|
1576 |
|
|
* The i386 -msvr3-shlib option has been removed since it is no longer
|
1577 |
|
|
used.
|
1578 |
|
|
* Fastcall for i386 has been changed not to pass aggregate arguments
|
1579 |
|
|
in registers, following Microsoft compilers.
|
1580 |
|
|
* Support for the AOF assembler has been removed from the ARM back
|
1581 |
|
|
end; this affects only the targets arm-semi-aof and armel-semi-aof,
|
1582 |
|
|
which are no longer recognized. We removed these targets without a
|
1583 |
|
|
deprecation period because we discovered that they have been
|
1584 |
|
|
unusable since GCC 4.0.0.
|
1585 |
|
|
* Support for the TMS320C3x/C4x processor (targets c4x-* and tic4x-*)
|
1586 |
|
|
has been removed. This support had been deprecated since GCC 4.0.0.
|
1587 |
|
|
* Support for a number of older systems and recently unmaintained or
|
1588 |
|
|
untested target ports of GCC has been declared obsolete in GCC 4.3.
|
1589 |
|
|
Unless there is activity to revive them, the next release of GCC
|
1590 |
|
|
will have their sources permanently removed.
|
1591 |
|
|
All GCC ports for the following processor architectures have been
|
1592 |
|
|
declared obsolete:
|
1593 |
|
|
+ Morpho MT (mt-*)
|
1594 |
|
|
The following aliases for processor architectures have been
|
1595 |
|
|
declared obsolete. Users should use the indicated generic target
|
1596 |
|
|
names instead, with compile-time options such as -mcpu or
|
1597 |
|
|
configure-time options such as --with-cpu to control the
|
1598 |
|
|
configuration more precisely.
|
1599 |
|
|
+ strongarm*-*-*, ep9312*-*-*, xscale*-*-* (use arm*-*-*
|
1600 |
|
|
instead).
|
1601 |
|
|
+ parisc*-*-* (use hppa*-*-* instead).
|
1602 |
|
|
+ m680[012]0-*-* (use m68k-*-* instead).
|
1603 |
|
|
All GCC ports for the following operating systems have been
|
1604 |
|
|
declared obsolete:
|
1605 |
|
|
+ BeOS (*-*-beos*)
|
1606 |
|
|
+ kaOS (*-*-kaos*)
|
1607 |
|
|
+ GNU/Linux using the a.out object format (*-*-linux*aout*)
|
1608 |
|
|
+ GNU/Linux using version 1 of the GNU C Library
|
1609 |
|
|
(*-*-linux*libc1*)
|
1610 |
|
|
+ Solaris versions before Solaris 7 (*-*-solaris2.[0-6],
|
1611 |
|
|
*-*-solaris2.[0-6].*)
|
1612 |
|
|
+ Miscellaneous System V (*-*-sysv*)
|
1613 |
|
|
+ WindISS (*-*-windiss*)
|
1614 |
|
|
Also, those for some individual systems on particular architectures
|
1615 |
|
|
have been obsoleted:
|
1616 |
|
|
+ UNICOS/mk on DEC Alpha (alpha*-*-unicosmk*)
|
1617 |
|
|
+ CRIS with a.out object format (cris-*-aout)
|
1618 |
|
|
+ BSD 4.3 on PA-RISC (hppa1.1-*-bsd*)
|
1619 |
|
|
+ OSF/1 on PA-RISC (hppa1.1-*-osf*)
|
1620 |
|
|
+ PRO on PA-RISC (hppa1.1-*-pro*)
|
1621 |
|
|
+ Sequent PTX on IA32 (i[34567]86-sequent-ptx4*,
|
1622 |
|
|
i[34567]86-sequent-sysv4*)
|
1623 |
|
|
+ SCO Open Server 5 on IA32 (i[34567]86-*-sco3.2v5*)
|
1624 |
|
|
+ UWIN on IA32 (i[34567]86-*-uwin*) (support for UWIN as a host
|
1625 |
|
|
was previously [5]removed in 2001, leaving only the support
|
1626 |
|
|
for UWIN as a target now being deprecated)
|
1627 |
|
|
+ ChorusOS on PowerPC (powerpc-*-chorusos*)
|
1628 |
|
|
+ All VAX configurations apart from NetBSD and OpenBSD
|
1629 |
|
|
(vax-*-bsd*, vax-*-sysv*, vax-*-ultrix*)
|
1630 |
|
|
* The [6]-Wconversion option has been modified. Its purpose now is to
|
1631 |
|
|
warn for implicit conversions that may alter a value. This new
|
1632 |
|
|
behavior is available for both C and C++. Warnings about
|
1633 |
|
|
conversions between signed and unsigned integers can be disabled by
|
1634 |
|
|
using -Wno-sign-conversion. In C++, they are disabled by default
|
1635 |
|
|
unless -Wsign-conversion is explicitly requested. The old behavior
|
1636 |
|
|
of -Wconversion, that is, warn for prototypes causing a type
|
1637 |
|
|
conversion that is different from what would happen to the same
|
1638 |
|
|
argument in the absence of a prototype, has been moved to a new
|
1639 |
|
|
option -Wtraditional-conversion, which is only available for C.
|
1640 |
|
|
* The -m386, -m486, -mpentium and -mpentiumpro tuning options have
|
1641 |
|
|
been removed because they were deprecated for more than 3 GCC major
|
1642 |
|
|
releases. Use -mtune=i386, -mtune=i486, -mtune=pentium or
|
1643 |
|
|
-mtune=pentiumpro as a replacement.
|
1644 |
|
|
* The -funsafe-math-optimizations option now automatically turns on
|
1645 |
|
|
-fno-trapping-math in addition to -fno-signed-zeros, as it enables
|
1646 |
|
|
reassociation and thus may introduce or remove traps.
|
1647 |
|
|
* The -ftree-vectorize option is now on by default under -O3. In
|
1648 |
|
|
order to generate code for a SIMD extension, it has to be enabled
|
1649 |
|
|
as well: use -maltivec for PowerPC platforms and -msse/-msse2 for
|
1650 |
|
|
i?86 and x86_64.
|
1651 |
|
|
* More information on porting to GCC 4.3 from previous versions of
|
1652 |
|
|
GCC can be found in the [7]porting guide for this release.
|
1653 |
|
|
|
1654 |
|
|
General Optimizer Improvements
|
1655 |
|
|
|
1656 |
|
|
* The GCC middle-end has been integrated with the [8]MPFR library.
|
1657 |
|
|
This allows GCC to evaluate and replace at compile-time calls to
|
1658 |
|
|
built-in math functions having constant arguments with their
|
1659 |
|
|
mathematically equivalent results. In making use of [9]MPFR, GCC
|
1660 |
|
|
can generate correct results regardless of the math library
|
1661 |
|
|
implementation or floating point precision of the host platform.
|
1662 |
|
|
This also allows GCC to generate identical results regardless of
|
1663 |
|
|
whether one compiles in native or cross-compile configurations to a
|
1664 |
|
|
particular target. The following built-in functions take advantage
|
1665 |
|
|
of this new capability: acos, acosh, asin, asinh, atan2, atan,
|
1666 |
|
|
atanh, cbrt, cos, cosh, drem, erf, erfc, exp10, exp2, exp, expm1,
|
1667 |
|
|
fdim, fma, fmax, fmin, gamma_r, hypot, j0, j1, jn, lgamma_r, log10,
|
1668 |
|
|
log1p, log2, log, pow10, pow, remainder, remquo, sin, sincos, sinh,
|
1669 |
|
|
tan, tanh, tgamma, y0, y1 and yn. The float and long double
|
1670 |
|
|
variants of these functions (e.g. sinf and sinl) are also handled.
|
1671 |
|
|
The sqrt and cabs functions with constant arguments were already
|
1672 |
|
|
optimized in prior GCC releases. Now they also use [10]MPFR.
|
1673 |
|
|
* A new forward propagation pass on RTL was added. The new pass
|
1674 |
|
|
replaces several slower transformations, resulting in compile-time
|
1675 |
|
|
improvements as well as better code generation in some cases.
|
1676 |
|
|
* A new command-line switch -frecord-gcc-switches has been added to
|
1677 |
|
|
GCC, although it is only enabled for some targets. The switch
|
1678 |
|
|
causes the command line that was used to invoke the compiler to be
|
1679 |
|
|
recorded into the object file that is being created. The exact
|
1680 |
|
|
format of this recording is target and binary file format
|
1681 |
|
|
dependent, but it usually takes the form of a note section
|
1682 |
|
|
containing ASCII text. The switch is related to the -fverbose-asm
|
1683 |
|
|
switch, but that one only records the information in the assembler
|
1684 |
|
|
output file as comments, so the information never reaches the
|
1685 |
|
|
object file.
|
1686 |
|
|
* The inliner heuristic is now aware of stack frame consumption. New
|
1687 |
|
|
command-line parameters --param large-stack-frame and --param
|
1688 |
|
|
large-stack-frame-growth can be used to limit stack frame size
|
1689 |
|
|
growth caused by inlining.
|
1690 |
|
|
* During feedback directed optimizations, the expected block size the
|
1691 |
|
|
memcpy, memset and bzero functions operate on is discovered and for
|
1692 |
|
|
cases of commonly used small sizes, specialized inline code is
|
1693 |
|
|
generated.
|
1694 |
|
|
* __builtin_expect no longer requires its argument to be a compile
|
1695 |
|
|
time constant.
|
1696 |
|
|
* Interprocedural optimization was reorganized to work on functions
|
1697 |
|
|
in SSA form. This enables more precise and cheaper dataflow
|
1698 |
|
|
analysis and makes writing interprocedural optimizations easier.
|
1699 |
|
|
The following improvements have been implemented on top of this
|
1700 |
|
|
framework:
|
1701 |
|
|
+ Pre-inline optimization: Selected local optimization passes
|
1702 |
|
|
are run before the inliner (and other interprocedural passes)
|
1703 |
|
|
are executed. This significantly improves the accuracy of code
|
1704 |
|
|
growth estimates used by the inliner and reduces the overall
|
1705 |
|
|
memory footprint for large compilation units.
|
1706 |
|
|
+ Early inlining (a simple bottom-up inliner pass inlining only
|
1707 |
|
|
functions whose body is smaller than the expected call
|
1708 |
|
|
overhead) is now executed with the early optimization passes,
|
1709 |
|
|
thus inlining already optimized function bodies into an
|
1710 |
|
|
unoptimized function that is subsequently optimized by early
|
1711 |
|
|
optimizers. This enables the compiler to quickly eliminate
|
1712 |
|
|
abstraction penalty in C++ programs.
|
1713 |
|
|
+ Interprocedural constant propagation now operate on SSA form
|
1714 |
|
|
increasing accuracy of the analysis.
|
1715 |
|
|
* A new internal representation for GIMPLE statements has been
|
1716 |
|
|
contributed, resulting in compile-time memory savings.
|
1717 |
|
|
* The vectorizer was enhanced to support vectorization of outer
|
1718 |
|
|
loops, intra-iteration parallelism (loop-aware SLP), vectorization
|
1719 |
|
|
of strided accesses and loops with multiple data-types. Run-time
|
1720 |
|
|
dependency testing using loop versioning was added. The cost model,
|
1721 |
|
|
turned on by -fvect-cost-model, was developed.
|
1722 |
|
|
|
1723 |
|
|
New Languages and Language specific improvements
|
1724 |
|
|
|
1725 |
|
|
* We have added new command-line options
|
1726 |
|
|
-finstrument-functions-exclude-function-list and
|
1727 |
|
|
-finstrument-functions-exclude-file-list. They provide more control
|
1728 |
|
|
over which functions are annotated by the -finstrument-functions
|
1729 |
|
|
option.
|
1730 |
|
|
|
1731 |
|
|
C family
|
1732 |
|
|
|
1733 |
|
|
* Implicit conversions between generic vector types are now only
|
1734 |
|
|
permitted when the two vectors in question have the same number of
|
1735 |
|
|
elements and compatible element types. (Note that the restriction
|
1736 |
|
|
involves compatible element types, not implicitly-convertible
|
1737 |
|
|
element types: thus, a vector type with element type int may not be
|
1738 |
|
|
implicitly converted to a vector type with element type unsigned
|
1739 |
|
|
int.) This restriction, which is in line with specifications for
|
1740 |
|
|
SIMD architectures such as AltiVec, may be relaxed using the flag
|
1741 |
|
|
-flax-vector-conversions. This flag is intended only as a
|
1742 |
|
|
compatibility measure and should not be used for new code.
|
1743 |
|
|
* -Warray-bounds has been added and is now enabled by default for
|
1744 |
|
|
-Wall . It produces warnings for array subscripts that can be
|
1745 |
|
|
determined at compile time to be always out of bounds.
|
1746 |
|
|
-Wno-array-bounds will disable the warning.
|
1747 |
|
|
* The constructor and destructor function attributes now accept
|
1748 |
|
|
optional priority arguments which control the order in which the
|
1749 |
|
|
constructor and destructor functions are run.
|
1750 |
|
|
* New [11]command-line options -Wtype-limits,
|
1751 |
|
|
-Wold-style-declaration, -Wmissing-parameter-type, -Wempty-body,
|
1752 |
|
|
-Wclobbered and -Wignored-qualifiers have been added for finer
|
1753 |
|
|
control of the diverse warnings enabled by -Wextra.
|
1754 |
|
|
* A new function attribute alloc_size has been added to mark up
|
1755 |
|
|
malloc style functions. For constant sized allocations this can be
|
1756 |
|
|
used to find out the size of the returned pointer using the
|
1757 |
|
|
__builtin_object_size() function for buffer overflow checking and
|
1758 |
|
|
similar. This supplements the already built-in malloc and calloc
|
1759 |
|
|
constant size handling.
|
1760 |
|
|
* Integer constants written in binary are now supported as a GCC
|
1761 |
|
|
extension. They consist of a prefix 0b or 0B, followed by a
|
1762 |
|
|
sequence of 0 and 1 digits.
|
1763 |
|
|
* A new predefined macro __COUNTER__ has been added. It expands to
|
1764 |
|
|
sequential integral values starting from 0. In conjunction with the
|
1765 |
|
|
## operator, this provides a convenient means to generate unique
|
1766 |
|
|
identifiers.
|
1767 |
|
|
* A new command-line option -fdirectives-only has been added. It
|
1768 |
|
|
enables a special preprocessing mode which improves the performance
|
1769 |
|
|
of applications like distcc and ccache.
|
1770 |
|
|
* Fixed-point data types and operators have been added. They are
|
1771 |
|
|
based on Chapter 4 of the Embedded-C specification (n1169.pdf).
|
1772 |
|
|
Currently, only MIPS targets are supported.
|
1773 |
|
|
* Decimal floating-point arithmetic based on draft ISO/IEC TR 24732,
|
1774 |
|
|
N1241, is now supported as a GCC extension to C for targets
|
1775 |
|
|
i[34567]86-*-linux-gnu, powerpc*-*-linux-gnu, s390*-ibm-linux-gnu,
|
1776 |
|
|
and x86_64-*-linux-gnu. The feature introduces new data types
|
1777 |
|
|
_Decimal32, _Decimal64, and _Decimal128 with constant suffixes DF,
|
1778 |
|
|
DD, and DL.
|
1779 |
|
|
|
1780 |
|
|
C++
|
1781 |
|
|
|
1782 |
|
|
* [12]Experimental support for the upcoming ISO C++ standard, C++0x.
|
1783 |
|
|
* -Wc++0x-compat has been added and is now enabled by default for
|
1784 |
|
|
-Wall. It produces warnings for constructs whose meaning differs
|
1785 |
|
|
between ISO C++ 1998 and C++0x.
|
1786 |
|
|
* The -Wparentheses option now works for C++ as it does for C. It
|
1787 |
|
|
warns if parentheses are omitted when operators with confusing
|
1788 |
|
|
precedence are nested. It also warns about ambiguous else
|
1789 |
|
|
statements. Since -Wparentheses is enabled by -Wall, this may cause
|
1790 |
|
|
additional warnings with existing C++ code which uses -Wall. These
|
1791 |
|
|
new warnings may be disabled by using -Wall -Wno-parentheses.
|
1792 |
|
|
* The -Wmissing-declarations now works for C++ as it does for C.
|
1793 |
|
|
* The -fvisibility-ms-compat flag was added, to make it easier to
|
1794 |
|
|
port larger projects using shared libraries from Microsoft's Visual
|
1795 |
|
|
Studio to ELF and Mach-O systems.
|
1796 |
|
|
* C++ attribute handling has been overhauled for template arguments
|
1797 |
|
|
(ie dependent types). In particular, __attribute__((aligned(T)));
|
1798 |
|
|
works for C++ types.
|
1799 |
|
|
|
1800 |
|
|
Runtime Library (libstdc++)
|
1801 |
|
|
|
1802 |
|
|
* [13]Experimental support for the upcoming ISO C++ standard, C++0x.
|
1803 |
|
|
* Support for TR1 mathematical special functions and regular
|
1804 |
|
|
expressions. ([14]Implementation status of TR1)
|
1805 |
|
|
* Default what implementations give more elaborate exception strings
|
1806 |
|
|
for bad_cast, bad_typeid, bad_exception, and bad_alloc.
|
1807 |
|
|
* Header dependencies have been streamlined, reducing unnecessary
|
1808 |
|
|
includes and pre-processed bloat.
|
1809 |
|
|
* Variadic template implementations of items in and
|
1810 |
|
|
.
|
1811 |
|
|
* An experimental [15]parallel mode has been added. This is a
|
1812 |
|
|
parallel implementation of many C++ Standard library algorithms,
|
1813 |
|
|
like std::accumulate, std::for_each, std::transform, or std::sort,
|
1814 |
|
|
to give but four examples. These algorithms can be substituted for
|
1815 |
|
|
the normal (sequential) libstdc++ algorithms on a piecemeal basis,
|
1816 |
|
|
or all existing algorithms can be transformed via the
|
1817 |
|
|
-D_GLIBCXX_PARALLEL macro.
|
1818 |
|
|
* Debug mode versions of classes in and
|
1819 |
|
|
.
|
1820 |
|
|
* Formal deprecation of and , which are
|
1821 |
|
|
now and . This code:
|
1822 |
|
|
#include
|
1823 |
|
|
__gnu_cxx::hash_set s;
|
1824 |
|
|
|
1825 |
|
|
Can be transformed (in order of preference) to:
|
1826 |
|
|
#include
|
1827 |
|
|
std::tr1::unordered_set s;
|
1828 |
|
|
|
1829 |
|
|
or
|
1830 |
|
|
#include
|
1831 |
|
|
__gnu_cxx::hash_set s;
|
1832 |
|
|
|
1833 |
|
|
Similar transformations apply to __gnu_cxx::hash_map,
|
1834 |
|
|
__gnu_cxx::hash_multimap, __gnu_cxx::hash_set,
|
1835 |
|
|
__gnu_cxx::hash_multiset.
|
1836 |
|
|
|
1837 |
|
|
Fortran
|
1838 |
|
|
|
1839 |
|
|
* Due to the fact that the [16]GMP and [17]MPFR libraries are
|
1840 |
|
|
required for all languages, Fortran is no longer special in this
|
1841 |
|
|
regard and is available by default.
|
1842 |
|
|
* The [18]-fexternal-blas option has been added, which generates
|
1843 |
|
|
calls to BLAS routines for intrinsic matrix operations such as
|
1844 |
|
|
matmul rather than using the built-in algorithms.
|
1845 |
|
|
* Support to give a backtrace (compiler flag -fbacktrace or
|
1846 |
|
|
environment variable GFORTRAN_ERROR_BACKTRACE; on glibc systems
|
1847 |
|
|
only) or a core dump (-fdump-core, GFORTRAN_ERROR_DUMPCORE) when a
|
1848 |
|
|
run-time error occured.
|
1849 |
|
|
* GNU Fortran now defines __GFORTRAN__ when it runs the C
|
1850 |
|
|
preprocessor (CPP).
|
1851 |
|
|
* The [19]-finit-local-zero, -finit-real, -finit-integer,
|
1852 |
|
|
-finit-character, and -finit-logical options have been added, which
|
1853 |
|
|
can be used to initialize local variables.
|
1854 |
|
|
* The intrinsic procedures [20]GAMMA and [21]LGAMMA have been added,
|
1855 |
|
|
which calculate the Gamma function and its logarithm. Use EXTERNAL
|
1856 |
|
|
gamma if you want to use your own gamma function.
|
1857 |
|
|
* GNU Fortran now regards the backslash character as literal (as
|
1858 |
|
|
required by the Fortran 2003 standard); using [22]-fbackslash GNU
|
1859 |
|
|
Fortran interprets backslashes as C-style escape characters.
|
1860 |
|
|
* The [23]interpretation of binary, octal and hexadecimal (BOZ)
|
1861 |
|
|
literal constants has been changed. Before they were always
|
1862 |
|
|
interpreted as integer; now they are bit-wise transferred as
|
1863 |
|
|
argument of INT, REAL, DBLE and CMPLX as required by the Fortran
|
1864 |
|
|
2003 standard, and for real and complex variables in DATA
|
1865 |
|
|
statements or when directly assigned to real and complex variables.
|
1866 |
|
|
Everywhere else and especially in expressions they are still
|
1867 |
|
|
regarded as integer constants.
|
1868 |
|
|
* Fortran 2003 support has been extended:
|
1869 |
|
|
+ Intrinsic statements IMPORT, PROTECTED, VALUE and VOLATILE
|
1870 |
|
|
+ Pointer intent
|
1871 |
|
|
+ Intrinsic module ISO_ENV_FORTRAN
|
1872 |
|
|
+ Interoperability with C (ISO C Bindings)
|
1873 |
|
|
+ ABSTRACT INTERFACES and PROCEDURE statements (without POINTER
|
1874 |
|
|
attribute)
|
1875 |
|
|
+ Fortran 2003 BOZ
|
1876 |
|
|
|
1877 |
|
|
Java (GCJ)
|
1878 |
|
|
|
1879 |
|
|
* GCJ now uses the Eclipse Java compiler for its Java parsing needs.
|
1880 |
|
|
This enables the use of all 1.5 language features, and fixes most
|
1881 |
|
|
existing front end bugs.
|
1882 |
|
|
* libgcj now supports all 1.5 language features which require runtime
|
1883 |
|
|
support: foreach, enum, annotations, generics, and auto-boxing.
|
1884 |
|
|
* We've made many changes to the tools shipped with gcj.
|
1885 |
|
|
+ The old jv-scan tool has been removed. This tool never really
|
1886 |
|
|
worked properly. There is no replacement.
|
1887 |
|
|
+ gcjh has been rewritten. Some of its more obscure options no
|
1888 |
|
|
longer work, but are still recognized in an attempt at
|
1889 |
|
|
compatibility. gjavah is a new program with similar
|
1890 |
|
|
functionality but different command-line options.
|
1891 |
|
|
+ grmic and grmiregistry have been rewritten. grmid has been
|
1892 |
|
|
added.
|
1893 |
|
|
+ gjar replaces the old fastjar.
|
1894 |
|
|
+ gjarsigner (used for signing jars), gkeytool (used for key
|
1895 |
|
|
management), gorbd (for CORBA), gserialver (computes
|
1896 |
|
|
serialization UIDs), and gtnameserv (also for CORBA) are now
|
1897 |
|
|
installed.
|
1898 |
|
|
* The ability to dump the contents of the java run time heap to a
|
1899 |
|
|
file for off-line analysis has been added. The heap dumps may be
|
1900 |
|
|
analyzed with the new gc-analyze tool. They may be generated on
|
1901 |
|
|
out-of-memory conditions or on demand and are controlled by the new
|
1902 |
|
|
run time class gnu.gcj.util.GCInfo.
|
1903 |
|
|
* java.util.TimeZone can now read files from /usr/share/zoneinfo to
|
1904 |
|
|
provide correct, updated, timezone information. This means that
|
1905 |
|
|
packagers no longer have to update libgcj when a time zone change
|
1906 |
|
|
is published.
|
1907 |
|
|
|
1908 |
|
|
New Targets and Target Specific Improvements
|
1909 |
|
|
|
1910 |
|
|
IA-32/x86-64
|
1911 |
|
|
|
1912 |
|
|
* Tuning for Intel Core 2 processors is available via -mtune=core2
|
1913 |
|
|
and -march=core2.
|
1914 |
|
|
* Tuning for AMD Geode processors is available via -mtune=geode and
|
1915 |
|
|
-march=geode.
|
1916 |
|
|
* Code generation of block move (memcpy) and block set (memset) was
|
1917 |
|
|
rewritten. GCC can now pick the best algorithm (loop, unrolled
|
1918 |
|
|
loop, instruction with rep prefix or a library call) based on the
|
1919 |
|
|
size of the block being copied and the CPU being optimized for. A
|
1920 |
|
|
new option -minline-stringops-dynamically has been added. With this
|
1921 |
|
|
option string operations of unknown size are expanded such that
|
1922 |
|
|
small blocks are copied by in-line code, while for large blocks a
|
1923 |
|
|
library call is used. This results in faster code than
|
1924 |
|
|
-minline-all-stringops when the library implementation is capable
|
1925 |
|
|
of using cache hierarchy hints. The heuristic choosing the
|
1926 |
|
|
particular algorithm can be overwritten via -mstringop-strategy.
|
1927 |
|
|
Newly also memset of values different from 0 is inlined.
|
1928 |
|
|
* GCC no longer places the cld instruction before string operations.
|
1929 |
|
|
Both i386 and x86-64 ABI documents mandate the direction flag to be
|
1930 |
|
|
clear at the entry of a function. It is now invalid to set the flag
|
1931 |
|
|
in asm statement without reseting it afterward.
|
1932 |
|
|
* Support for SSSE3 built-in functions and code generation are
|
1933 |
|
|
available via -mssse3.
|
1934 |
|
|
* Support for SSE4.1 built-in functions and code generation are
|
1935 |
|
|
available via -msse4.1.
|
1936 |
|
|
* Support for SSE4.2 built-in functions and code generation are
|
1937 |
|
|
available via -msse4.2.
|
1938 |
|
|
* Both SSE4.1 and SSE4.2 support can be enabled via -msse4.
|
1939 |
|
|
* A new set of options -mpc32, -mpc64 and -mpc80 have been added to
|
1940 |
|
|
allow explicit control of x87 floating point precision.
|
1941 |
|
|
* Support for __float128 (TFmode) IEEE quad type and corresponding
|
1942 |
|
|
TCmode IEEE complex quad type is available via the soft-fp library
|
1943 |
|
|
on x86_64 targets. This includes basic arithmetic operations
|
1944 |
|
|
(addition, subtraction, negation, multiplication and division) on
|
1945 |
|
|
__float128 real and TCmode complex values, the full set of IEEE
|
1946 |
|
|
comparisons between __float128 values, conversions to and from
|
1947 |
|
|
float, double and long double floating point types, as well as
|
1948 |
|
|
conversions to and from signed or unsigned integer, signed or
|
1949 |
|
|
unsigned long integer and signed or unsigned quad (TImode) integer
|
1950 |
|
|
types. Additionally, all operations generate the full set of IEEE
|
1951 |
|
|
exceptions and support the full set of IEEE rounding modes.
|
1952 |
|
|
* GCC can now utilize the ACML library for vectorizing calls to a set
|
1953 |
|
|
of C99 functions on x86_64 if -mveclibabi=acml is specified and you
|
1954 |
|
|
link to an ACML ABI compatible library.
|
1955 |
|
|
|
1956 |
|
|
ARM
|
1957 |
|
|
|
1958 |
|
|
* Compiler and Library support for Thumb-2 and the ARMv7 architecture
|
1959 |
|
|
has been added.
|
1960 |
|
|
|
1961 |
|
|
CRIS
|
1962 |
|
|
|
1963 |
|
|
New features
|
1964 |
|
|
|
1965 |
|
|
* Compiler and Library support for the CRIS v32 architecture, as
|
1966 |
|
|
found in Axis Communications ETRAX FS and ARTPEC-3 chips, has been
|
1967 |
|
|
added.
|
1968 |
|
|
|
1969 |
|
|
Configuration changes
|
1970 |
|
|
|
1971 |
|
|
* The cris-*-elf target now includes support for CRIS v32, including
|
1972 |
|
|
libraries, through the -march=v32 option.
|
1973 |
|
|
* A new crisv32-*-elf target defaults to generate code for CRIS v32.
|
1974 |
|
|
* A new crisv32-*-linux* target defaults to generate code for CRIS
|
1975 |
|
|
v32.
|
1976 |
|
|
* The cris-*-aout target has been obsoleted.
|
1977 |
|
|
|
1978 |
|
|
Improved support for built-in functions
|
1979 |
|
|
|
1980 |
|
|
* GCC can now use the lz and swapwbr instructions to implement the
|
1981 |
|
|
__builtin_clz, __builtin_ctz and __builtin_ffs family of functions.
|
1982 |
|
|
* __builtin_bswap32 is now implemented using the swapwb instruction,
|
1983 |
|
|
when available.
|
1984 |
|
|
|
1985 |
|
|
m68k and ColdFire
|
1986 |
|
|
|
1987 |
|
|
New features
|
1988 |
|
|
|
1989 |
|
|
* Support for several new ColdFire processors has been added. You can
|
1990 |
|
|
generate code for them using the new -mcpu option.
|
1991 |
|
|
* All targets now support ColdFire processors.
|
1992 |
|
|
* m68k-uclinux targets have improved support for C++ constructors and
|
1993 |
|
|
destructors, and for shared libraries.
|
1994 |
|
|
* It is now possible to set breakpoints on the first or last line of
|
1995 |
|
|
a function, even if there are no statements on that line.
|
1996 |
|
|
|
1997 |
|
|
Optimizations
|
1998 |
|
|
|
1999 |
|
|
* Support for sibling calls has been added.
|
2000 |
|
|
* More use is now made of the ColdFire mov3q instruction.
|
2001 |
|
|
* __builtin_clz is now implemented using the ff1 ColdFire
|
2002 |
|
|
instruction, when available.
|
2003 |
|
|
* GCC now honors the -m68010 option. 68010 code now uses clr rather
|
2004 |
|
|
than move to zero volatile memory.
|
2005 |
|
|
* 68020 targets and above can now use symbol(index.size*scale)
|
2006 |
|
|
addresses for indexed array accesses. Earlier compilers would
|
2007 |
|
|
always load the symbol into a base register first.
|
2008 |
|
|
|
2009 |
|
|
Configuration changes
|
2010 |
|
|
|
2011 |
|
|
* All m68k and ColdFire targets now allow the default processor to be
|
2012 |
|
|
set at configure time using --with-cpu.
|
2013 |
|
|
* A --with-arch configuration option has been added. This option
|
2014 |
|
|
allows you to restrict a target to ColdFire or non-ColdFire
|
2015 |
|
|
processors.
|
2016 |
|
|
|
2017 |
|
|
Preprocessor macros
|
2018 |
|
|
|
2019 |
|
|
* An __mcfv*__ macro is now defined for all ColdFire targets.
|
2020 |
|
|
(Earlier versions of GCC only defined __mcfv4e__.)
|
2021 |
|
|
* __mcf_cpu_*, __mcf_family_* and __mcffpu__ macros have been added.
|
2022 |
|
|
* All targets now define __mc68010 and __mc68010__ when generating
|
2023 |
|
|
68010 code.
|
2024 |
|
|
|
2025 |
|
|
Command-line changes
|
2026 |
|
|
|
2027 |
|
|
* New command-line options -march, -mcpu, -mtune and -mhard-float
|
2028 |
|
|
have been added. These options apply to both m68k and ColdFire
|
2029 |
|
|
targets.
|
2030 |
|
|
* -mno-short, -mno-bitfield and -mno-rtd are now accepted as negative
|
2031 |
|
|
versions of -mshort, etc.
|
2032 |
|
|
* -fforce-addr has been removed. It is now ignored by the compiler.
|
2033 |
|
|
|
2034 |
|
|
Other improvements
|
2035 |
|
|
|
2036 |
|
|
* ColdFire targets now try to maintain a 4-byte-aligned stack where
|
2037 |
|
|
possible.
|
2038 |
|
|
* m68k-uclinux targets now try to avoid situations that lead to the
|
2039 |
|
|
load-time error: BINFMT_FLAT: reloc outside program.
|
2040 |
|
|
|
2041 |
|
|
MIPS
|
2042 |
|
|
|
2043 |
|
|
Changes to existing configurations
|
2044 |
|
|
|
2045 |
|
|
* libffi and libjava now support all three GNU/Linux ABIs: o32, n32
|
2046 |
|
|
and n64. Every GNU/Linux configuration now builds these libraries
|
2047 |
|
|
by default.
|
2048 |
|
|
* GNU/Linux configurations now generate -mno-shared code unless
|
2049 |
|
|
overridden by -fpic, -fPIC, -fpie or -fPIE.
|
2050 |
|
|
* mipsisa32*-linux-gnu configurations now generate hard-float code by
|
2051 |
|
|
default, just like other mipsisa32* and mips*-linux-gnu
|
2052 |
|
|
configurations. You can build a soft-float version of any
|
2053 |
|
|
mips*-linux-gnu configuration by passing --with-float=soft to
|
2054 |
|
|
configure.
|
2055 |
|
|
* mips-wrs-vxworks now supports run-time processes (RTPs).
|
2056 |
|
|
|
2057 |
|
|
Changes to existing command-line options
|
2058 |
|
|
|
2059 |
|
|
* The -march and -mtune options no longer accept 24k as a processor
|
2060 |
|
|
name. Please use 24kc, 24kf2_1 or 24kf1_1 instead.
|
2061 |
|
|
* The -march and -mtune options now accept 24kf2_1, 24kef2_1 and
|
2062 |
|
|
34kf2_1 as synonyms for 24kf, 24kef and 34kf respectively. The
|
2063 |
|
|
options also accept 24kf1_1, 24kef1_1 and 34kf1_1 as synonyms for
|
2064 |
|
|
24kx, 24kex and 34kx.
|
2065 |
|
|
|
2066 |
|
|
New configurations
|
2067 |
|
|
|
2068 |
|
|
GCC now supports the following configurations:
|
2069 |
|
|
* mipsisa32r2*-linux-gnu*, which generates MIPS32 revision 2 code by
|
2070 |
|
|
default. Earlier releases also recognized this configuration, but
|
2071 |
|
|
they treated it in the same way as mipsisa32*-linux-gnu*. Note that
|
2072 |
|
|
you can customize any mips*-linux-gnu* configuration to a
|
2073 |
|
|
particular ISA or processor by passing an appropriate --with-arch
|
2074 |
|
|
option to configure.
|
2075 |
|
|
* mipsisa*-sde-elf*, which provides compatibility with MIPS
|
2076 |
|
|
Technologies' SDE toolchains. The configuration uses the SDE
|
2077 |
|
|
libraries by default, but you can use it like other newlib-based
|
2078 |
|
|
ELF configurations by passing --with-newlib to configure. It is the
|
2079 |
|
|
only configuration besides mips64vr*-elf* to build MIPS16 as well
|
2080 |
|
|
as non-MIPS16 libraries.
|
2081 |
|
|
* mipsisa*-elfoabi*, which is similar to the general mipsisa*-elf*
|
2082 |
|
|
configuration, but uses the o32 and o64 ABIs instead of the 32-bit
|
2083 |
|
|
and 64-bit forms of the EABI.
|
2084 |
|
|
|
2085 |
|
|
New processors and application-specific extensions
|
2086 |
|
|
|
2087 |
|
|
* Support for the SmartMIPS ASE is available through the new
|
2088 |
|
|
-msmartmips option.
|
2089 |
|
|
* Support for revision 2 of the DSP ASE is available through the new
|
2090 |
|
|
-mdspr2 option. A new preprocessor macro called __mips_dsp_rev
|
2091 |
|
|
indicates the revision of the ASE in use.
|
2092 |
|
|
* Support for the 4KS and 74K families of processors is available
|
2093 |
|
|
through the -march and -mtune options.
|
2094 |
|
|
|
2095 |
|
|
Improved support for built-in functions
|
2096 |
|
|
|
2097 |
|
|
* GCC can now use load-linked, store-conditional and sync
|
2098 |
|
|
instructions to implement atomic built-in functions such as
|
2099 |
|
|
__sync_fetch_and_add. The memory reference must be 4 bytes wide for
|
2100 |
|
|
32-bit targets and either 4 or 8 bytes wide for 64-bit targets.
|
2101 |
|
|
* GCC can now use the clz and dclz instructions to implement the
|
2102 |
|
|
__builtin_ctz and __builtin_ffs families of functions.
|
2103 |
|
|
* There is a new __builtin___clear_cache function for flushing the
|
2104 |
|
|
instruction cache. GCC expands this function inline on MIPS32
|
2105 |
|
|
revision 2 targets, otherwise it calls the function specified by
|
2106 |
|
|
-mcache-flush-func.
|
2107 |
|
|
|
2108 |
|
|
MIPS16 improvements
|
2109 |
|
|
|
2110 |
|
|
* GCC can now compile objects that contain a mixture of MIPS16 and
|
2111 |
|
|
non-MIPS16 code. There are two new attributes, mips16 and nomips16,
|
2112 |
|
|
for specifying which mode a function should use.
|
2113 |
|
|
* A new option called -minterlink-mips16 makes non-MIPS16 code
|
2114 |
|
|
link-compatible with MIPS16 code.
|
2115 |
|
|
* After many bug fixes, the long-standing MIPS16 -mhard-float support
|
2116 |
|
|
should now work fairly reliably.
|
2117 |
|
|
* GCC can now use the MIPS16e save and restore instructions.
|
2118 |
|
|
* -fsection-anchors now works in MIPS16 mode. MIPS16 code compiled
|
2119 |
|
|
with -G0 -fsection-anchors is often smaller than code compiled with
|
2120 |
|
|
-G8. However, please note that you must usually compile all objects
|
2121 |
|
|
in your application with the same -G option; see the documentation
|
2122 |
|
|
of -G for details.
|
2123 |
|
|
* A new option called-mcode-readable specifies which instructions are
|
2124 |
|
|
allowed to load from the code segment. -mcode-readable=yes is the
|
2125 |
|
|
default and says that any instruction may load from the code
|
2126 |
|
|
segment. The other alternatives are -mcode-readable=pcrel, which
|
2127 |
|
|
says that only PC-relative MIPS16 instructions may load from the
|
2128 |
|
|
code segment, and -mcode-readable=no, which says that no
|
2129 |
|
|
instruction may do so. Please see the documentation for more
|
2130 |
|
|
details, including example uses.
|
2131 |
|
|
|
2132 |
|
|
Small-data improvements
|
2133 |
|
|
|
2134 |
|
|
There are three new options for controlling small data:
|
2135 |
|
|
* -mno-extern-sdata, which disables small-data accesses for
|
2136 |
|
|
externally-defined variables. Code compiled with -Gn
|
2137 |
|
|
-mno-extern-sdata will be link-compatible with any -G setting
|
2138 |
|
|
between -G0 and -Gn inclusive.
|
2139 |
|
|
* -mno-local-sdata, which disables the use of small-data sections for
|
2140 |
|
|
data that is not externally visible. This option can be a useful
|
2141 |
|
|
way of reducing small-data usage in less performance-critical parts
|
2142 |
|
|
of an application.
|
2143 |
|
|
* -mno-gpopt, which disables the use of the $gp register while still
|
2144 |
|
|
honoring the -G limit when placing externally-visible data. This
|
2145 |
|
|
option implies -mno-extern-sdata and -mno-local-sdata and it can be
|
2146 |
|
|
useful in situations where $gp does not necessarily hold the
|
2147 |
|
|
expected value.
|
2148 |
|
|
|
2149 |
|
|
Miscellaneous improvements
|
2150 |
|
|
|
2151 |
|
|
* There is a new option called -mbranch-cost for tweaking the
|
2152 |
|
|
perceived cost of branches.
|
2153 |
|
|
* If GCC is configured to use a version of GAS that supports the
|
2154 |
|
|
.gnu_attribute directive, it will use that directive to record
|
2155 |
|
|
certain properties of the output code. .gnu_attribute is new to GAS
|
2156 |
|
|
2.18.
|
2157 |
|
|
* There are two new function attributes, near and far, for overriding
|
2158 |
|
|
the command-line setting of -mlong-calls on a function-by-function
|
2159 |
|
|
basis.
|
2160 |
|
|
* -mfp64, which previously required a 64-bit target, now works with
|
2161 |
|
|
MIPS32 revision 2 targets as well. The mipsisa*-elfoabi* and
|
2162 |
|
|
mipsisa*-sde-elf* configurations provide suitable library support.
|
2163 |
|
|
* GCC now recognizes the -mdmx and -mmt options and passes them down
|
2164 |
|
|
to the assembler. It does nothing else with the options at present.
|
2165 |
|
|
|
2166 |
|
|
SPU (Synergistic Processor Unit) of the Cell Broadband Engine Architecture
|
2167 |
|
|
(BEA)
|
2168 |
|
|
|
2169 |
|
|
* Support has been added for this new architecture.
|
2170 |
|
|
|
2171 |
|
|
RS6000 (POWER/PowerPC)
|
2172 |
|
|
|
2173 |
|
|
* Support for the PowerPC 750CL paired-single instructions has been
|
2174 |
|
|
added with a new powerpc-*-linux*paired* target configuration. It
|
2175 |
|
|
is enabled by an associated -mpaired option and can be accessed
|
2176 |
|
|
using new built-in functions.
|
2177 |
|
|
* Support for auto-detecting architecture and system configuration to
|
2178 |
|
|
auto-select processor optimization tuning.
|
2179 |
|
|
* Support for VMX on AIX 5.3 has been added.
|
2180 |
|
|
* Support for AIX Version 6.1 has been added.
|
2181 |
|
|
|
2182 |
|
|
S/390, zSeries and System z9
|
2183 |
|
|
|
2184 |
|
|
* Support for the IBM System z9 EC/BC processor (z9 GA3) has been
|
2185 |
|
|
added. When using the -march=z9-ec option, the compiler will
|
2186 |
|
|
generate code making use of instructions provided by the decimal
|
2187 |
|
|
floating point facility and the floating point conversion facility
|
2188 |
|
|
(pfpo). Besides the instructions used to implement decimal floating
|
2189 |
|
|
point operations these facilities also contain instructions to move
|
2190 |
|
|
between general purpose and floating point registers and to modify
|
2191 |
|
|
and copy the sign-bit of floating point values.
|
2192 |
|
|
* When the -march=z9-ec option is used the new
|
2193 |
|
|
-mhard-dfp/-mno-hard-dfp options can be used to specify whether the
|
2194 |
|
|
decimal floating point hardware instructions will be used or not.
|
2195 |
|
|
If none of them is given the hardware support is enabled by
|
2196 |
|
|
default.
|
2197 |
|
|
* The -mstack-guard option can now be omitted when using stack
|
2198 |
|
|
checking via -mstack-size in order to let GCC choose a sensible
|
2199 |
|
|
stack guard value according to the frame size of each function.
|
2200 |
|
|
* Various changes to improve performance of generated code have been
|
2201 |
|
|
implemented, including:
|
2202 |
|
|
+ The condition code set by an add logical with carry
|
2203 |
|
|
instruction is now available for overflow checks like: a + b +
|
2204 |
|
|
carry < b.
|
2205 |
|
|
+ The test data class instruction is now used to implement
|
2206 |
|
|
sign-bit and infinity checks of binary and decimal floating
|
2207 |
|
|
point numbers.
|
2208 |
|
|
|
2209 |
|
|
Xtensa
|
2210 |
|
|
|
2211 |
|
|
* Stack unwinding for exception handling now uses by default a
|
2212 |
|
|
specialized version of DWARF unwinding. This is not
|
2213 |
|
|
binary-compatible with the setjmp/longjmp (sjlj) unwinding used for
|
2214 |
|
|
Xtensa with previous versions of GCC.
|
2215 |
|
|
* For Xtensa processors that include the Conditional Store option,
|
2216 |
|
|
the built-in functions for atomic memory access are now implemented
|
2217 |
|
|
using S32C1I instructions.
|
2218 |
|
|
* If the Xtensa NSA option is available, GCC will use it to implement
|
2219 |
|
|
the __builtin_ctz and __builtin_clz functions.
|
2220 |
|
|
|
2221 |
|
|
Documentation improvements
|
2222 |
|
|
|
2223 |
|
|
* Existing libstdc++ documentation has been edited and restructured
|
2224 |
|
|
into a single DocBook XML manual. The results can be viewed online
|
2225 |
|
|
[24]here.
|
2226 |
|
|
|
2227 |
|
|
Other significant improvements
|
2228 |
|
|
|
2229 |
|
|
* The compiler's --help command-line option has been extended so that
|
2230 |
|
|
it now takes an optional set of arguments. These arguments restrict
|
2231 |
|
|
the information displayed to specific classes of command-line
|
2232 |
|
|
options, and possibly only a subset of those options. It is also
|
2233 |
|
|
now possible to replace the descriptive text associated with each
|
2234 |
|
|
displayed option with an indication of its current value, or for
|
2235 |
|
|
binary options, whether it has been enabled or disabled.
|
2236 |
|
|
Here are some examples. The following will display all the options
|
2237 |
|
|
controlling warning messages:
|
2238 |
|
|
--help=warnings
|
2239 |
|
|
|
2240 |
|
|
Whereas this will display all the undocumented, target specific
|
2241 |
|
|
options:
|
2242 |
|
|
--help=target,undocumented
|
2243 |
|
|
|
2244 |
|
|
This sequence of commands will display the binary optimizations
|
2245 |
|
|
that are enabled by -O3:
|
2246 |
|
|
gcc -c -Q -O3 --help=optimizers > /tmp/O3-opts
|
2247 |
|
|
gcc -c -Q -O2 --help=optimizers > /tmp/O2-opts
|
2248 |
|
|
diff /tmp/O2-opts /tmp/O3-opts | grep enabled
|
2249 |
|
|
|
2250 |
|
|
* The configure options --with-pkgversion and --with-bugurl have been
|
2251 |
|
|
added. These allow distributors of GCC to include a
|
2252 |
|
|
distributor-specific string in manuals and --version output and to
|
2253 |
|
|
specify the URL for reporting bugs in their versions of GCC.
|
2254 |
|
|
|
2255 |
|
|
GCC 4.3.1
|
2256 |
|
|
|
2257 |
|
|
This is the [25]list of problem reports (PRs) from GCC's bug tracking
|
2258 |
|
|
system that are known to be fixed in the 4.3.1 release. This list might
|
2259 |
|
|
not be complete (that is, it is possible that some PRs that have been
|
2260 |
|
|
fixed are not listed here).
|
2261 |
|
|
|
2262 |
|
|
Target Specific Changes
|
2263 |
|
|
|
2264 |
|
|
IA-32/x86-64
|
2265 |
|
|
|
2266 |
|
|
ABI changes
|
2267 |
|
|
|
2268 |
|
|
* Starting with GCC 4.3.1, decimal floating point variables are
|
2269 |
|
|
aligned to their natural boundaries when they are passed on the
|
2270 |
|
|
stack for i386.
|
2271 |
|
|
|
2272 |
|
|
Command-line changes
|
2273 |
|
|
|
2274 |
|
|
* Starting with GCC 4.3.1, the -mcld option has been added to
|
2275 |
|
|
automatically generate a cld instruction in the prologue of
|
2276 |
|
|
functions that use string instructions. This option is used for
|
2277 |
|
|
backward compatibility on some operating systems and can be enabled
|
2278 |
|
|
by default for 32-bit x86 targets by configuring GCC with the
|
2279 |
|
|
--enable-cld configure option.
|
2280 |
|
|
|
2281 |
|
|
GCC 4.3.2
|
2282 |
|
|
|
2283 |
|
|
This is the [26]list of problem reports (PRs) from GCC's bug tracking
|
2284 |
|
|
system that are known to be fixed in the 4.3.2 release. This list might
|
2285 |
|
|
not be complete (that is, it is possible that some PRs that have been
|
2286 |
|
|
fixed are not listed here).
|
2287 |
|
|
|
2288 |
|
|
GCC 4.3.3
|
2289 |
|
|
|
2290 |
|
|
This is the [27]list of problem reports (PRs) from GCC's bug tracking
|
2291 |
|
|
system that are known to be fixed in the 4.3.3 release. This list might
|
2292 |
|
|
not be complete (that is, it is possible that some PRs that have been
|
2293 |
|
|
fixed are not listed here).
|
2294 |
|
|
|
2295 |
|
|
GCC 4.3.4
|
2296 |
|
|
|
2297 |
|
|
This is the [28]list of problem reports (PRs) from GCC's bug tracking
|
2298 |
|
|
system that are known to be fixed in the 4.3.4 release. This list might
|
2299 |
|
|
not be complete (that is, it is possible that some PRs that have been
|
2300 |
|
|
fixed are not listed here).
|
2301 |
|
|
|
2302 |
|
|
GCC 4.3.5
|
2303 |
|
|
|
2304 |
|
|
This is the [29]list of problem reports (PRs) from GCC's bug tracking
|
2305 |
|
|
system that are known to be fixed in the 4.3.5 release. This list might
|
2306 |
|
|
not be complete (that is, it is possible that some PRs that have been
|
2307 |
|
|
fixed are not listed here).
|
2308 |
|
|
|
2309 |
|
|
Please send FSF & GNU inquiries & questions to [30]gnu@gnu.org. There
|
2310 |
|
|
are also [31]other ways to contact the FSF.
|
2311 |
|
|
|
2312 |
|
|
These pages are [32]maintained by the GCC team.
|
2313 |
|
|
|
2314 |
|
|
|
2315 |
|
|
For questions related to the use of GCC, please consult these web
|
2316 |
|
|
pages and the [33]GCC manuals. If that fails, the
|
2317 |
|
|
[34]gcc-help@gcc.gnu.org mailing list might help.
|
2318 |
|
|
Please send comments on these web pages and the development of GCC to
|
2319 |
|
|
our developer mailing list at [35]gcc@gnu.org or [36]gcc@gcc.gnu.org.
|
2320 |
|
|
All of our lists have [37]public archives.
|
2321 |
|
|
|
2322 |
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth
|
2323 |
|
|
Floor, Boston, MA 02110, USA.
|
2324 |
|
|
|
2325 |
|
|
Verbatim copying and distribution of this entire article is permitted
|
2326 |
|
|
in any medium, provided this notice is preserved.
|
2327 |
|
|
Last modified 2010-07-10 [38]Valid XHTML 1.0
|
2328 |
|
|
|
2329 |
|
|
References
|
2330 |
|
|
|
2331 |
|
|
1. http://gcc.gnu.org/gcc-4.3/changes.html#4.3.5
|
2332 |
|
|
2. http://gmplib.org/
|
2333 |
|
|
3. http://www.mpfr.org/
|
2334 |
|
|
4. http://gcc.gnu.org/install/prerequisites.html
|
2335 |
|
|
5. http://gcc.gnu.org/ml/gcc-announce/2001/msg00000.html
|
2336 |
|
|
6. http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#Warning-Options
|
2337 |
|
|
7. http://gcc.gnu.org/gcc-4.3/porting_to.html
|
2338 |
|
|
8. http://www.mpfr.org/
|
2339 |
|
|
9. http://www.mpfr.org/
|
2340 |
|
|
10. http://www.mpfr.org/
|
2341 |
|
|
11. http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
|
2342 |
|
|
12. http://gcc.gnu.org/gcc-4.3/cxx0x_status.html
|
2343 |
|
|
13. http://gcc.gnu.org/gcc-4.3/cxx0x_status.html
|
2344 |
|
|
14. http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt01ch01.html#m anual.intro.status.standard.tr1
|
2345 |
|
|
15. http://gcc.gnu.org/onlinedocs/libstdc++/manual/parallel_mode.html
|
2346 |
|
|
16. http://gmplib.org/
|
2347 |
|
|
17. http://www.mpfr.org/
|
2348 |
|
|
18. http://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html#Code-Gen-Options
|
2349 |
|
|
19. http://gcc.gnu.org/onlinedocs/gfortran/Code-Gen-Options.html#index-g_t_0040code_007bfinit-local-zero_007d-167
|
2350 |
|
|
20. http://gcc.gnu.org/onlinedocs/gcc-4.3.0/gfortran/GAMMA.html
|
2351 |
|
|
21. http://gcc.gnu.org/onlinedocs/gcc-4.3.0/gfortran/LGAMMA.html
|
2352 |
|
|
22. http://gcc.gnu.org/onlinedocs/gfortran/Fortran-Dialect-Options.html
|
2353 |
|
|
23. http://gcc.gnu.org/onlinedocs/gfortran/BOZ-literal-constants.html
|
2354 |
|
|
24. http://gcc.gnu.org/onlinedocs/libstdc++/
|
2355 |
|
|
25. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.1
|
2356 |
|
|
26. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.2
|
2357 |
|
|
27. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.3
|
2358 |
|
|
28. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.4
|
2359 |
|
|
29. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.3.5
|
2360 |
|
|
30. mailto:gnu@gnu.org
|
2361 |
|
|
31. http://www.gnu.org/home.html#ContactInfo
|
2362 |
|
|
32. http://gcc.gnu.org/about.html
|
2363 |
|
|
33. http://gcc.gnu.org/onlinedocs/
|
2364 |
|
|
34. mailto:gcc-help@gcc.gnu.org
|
2365 |
|
|
35. mailto:gcc@gnu.org
|
2366 |
|
|
36. mailto:gcc@gcc.gnu.org
|
2367 |
|
|
37. http://gcc.gnu.org/lists.html
|
2368 |
|
|
38. http://validator.w3.org/check/referer
|
2369 |
|
|
======================================================================
|
2370 |
|
|
http://gcc.gnu.org/gcc-4.2/index.html
|
2371 |
|
|
|
2372 |
|
|
GCC 4.2 Release Series
|
2373 |
|
|
|
2374 |
|
|
May 19, 2008
|
2375 |
|
|
|
2376 |
|
|
The [1]GNU project and the GCC developers are pleased to announce the
|
2377 |
|
|
release of GCC 4.2.4.
|
2378 |
|
|
|
2379 |
|
|
This release is a bug-fix release, containing fixes for regressions in
|
2380 |
|
|
GCC 4.2.3 relative to previous releases of GCC.
|
2381 |
|
|
|
2382 |
|
|
Release History
|
2383 |
|
|
|
2384 |
|
|
GCC 4.2.4
|
2385 |
|
|
May 19, 2008 ([2]changes)
|
2386 |
|
|
|
2387 |
|
|
GCC 4.2.3
|
2388 |
|
|
February 1, 2008 ([3]changes)
|
2389 |
|
|
|
2390 |
|
|
GCC 4.2.2
|
2391 |
|
|
October 7, 2007 ([4]changes)
|
2392 |
|
|
|
2393 |
|
|
GCC 4.2.1
|
2394 |
|
|
July 18, 2007 ([5]changes)
|
2395 |
|
|
|
2396 |
|
|
GCC 4.2.0
|
2397 |
|
|
May 13, 2007 ([6]changes)
|
2398 |
|
|
|
2399 |
|
|
References and Acknowledgements
|
2400 |
|
|
|
2401 |
|
|
GCC used to stand for the GNU C Compiler, but since the compiler
|
2402 |
|
|
supports several other languages aside from C, it now stands for the
|
2403 |
|
|
GNU Compiler Collection.
|
2404 |
|
|
|
2405 |
|
|
A list of [7]successful builds is updated as new information becomes
|
2406 |
|
|
available.
|
2407 |
|
|
|
2408 |
|
|
The GCC developers would like to thank the numerous people that have
|
2409 |
|
|
contributed new features, improvements, bug fixes, and other changes as
|
2410 |
|
|
well as test results to GCC. This [8]amazing group of volunteers is
|
2411 |
|
|
what makes GCC successful.
|
2412 |
|
|
|
2413 |
|
|
For additional information about GCC please refer to the [9]GCC project
|
2414 |
|
|
web site or contact the [10]GCC development mailing list.
|
2415 |
|
|
|
2416 |
|
|
To obtain GCC please use [11]our mirror sites or [12]our SVN server.
|
2417 |
|
|
|
2418 |
|
|
Please send FSF & GNU inquiries & questions to [13]gnu@gnu.org. There
|
2419 |
|
|
are also [14]other ways to contact the FSF.
|
2420 |
|
|
|
2421 |
|
|
These pages are [15]maintained by the GCC team.
|
2422 |
|
|
|
2423 |
|
|
|
2424 |
|
|
For questions related to the use of GCC, please consult these web
|
2425 |
|
|
pages and the [16]GCC manuals. If that fails, the
|
2426 |
|
|
[17]gcc-help@gcc.gnu.org mailing list might help.
|
2427 |
|
|
Please send comments on these web pages and the development of GCC to
|
2428 |
|
|
our developer mailing list at [18]gcc@gnu.org or [19]gcc@gcc.gnu.org.
|
2429 |
|
|
All of our lists have [20]public archives.
|
2430 |
|
|
|
2431 |
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth
|
2432 |
|
|
Floor, Boston, MA 02110, USA.
|
2433 |
|
|
|
2434 |
|
|
Verbatim copying and distribution of this entire article is permitted
|
2435 |
|
|
in any medium, provided this notice is preserved.
|
2436 |
|
|
Last modified 2010-07-01 [21]Valid XHTML 1.0
|
2437 |
|
|
|
2438 |
|
|
References
|
2439 |
|
|
|
2440 |
|
|
1. http://www.gnu.org/
|
2441 |
|
|
2. http://gcc.gnu.org/gcc-4.2/changes.html
|
2442 |
|
|
3. http://gcc.gnu.org/gcc-4.2/changes.html
|
2443 |
|
|
4. http://gcc.gnu.org/gcc-4.2/changes.html
|
2444 |
|
|
5. http://gcc.gnu.org/gcc-4.2/changes.html
|
2445 |
|
|
6. http://gcc.gnu.org/gcc-4.2/changes.html
|
2446 |
|
|
7. http://gcc.gnu.org/gcc-4.2/buildstat.html
|
2447 |
|
|
8. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
|
2448 |
|
|
9. http://gcc.gnu.org/index.html
|
2449 |
|
|
10. mailto:gcc@gcc.gnu.org
|
2450 |
|
|
11. http://gcc.gnu.org/mirrors.html
|
2451 |
|
|
12. http://gcc.gnu.org/svn.html
|
2452 |
|
|
13. mailto:gnu@gnu.org
|
2453 |
|
|
14. http://www.gnu.org/home.html#ContactInfo
|
2454 |
|
|
15. http://gcc.gnu.org/about.html
|
2455 |
|
|
16. http://gcc.gnu.org/onlinedocs/
|
2456 |
|
|
17. mailto:gcc-help@gcc.gnu.org
|
2457 |
|
|
18. mailto:gcc@gnu.org
|
2458 |
|
|
19. mailto:gcc@gcc.gnu.org
|
2459 |
|
|
20. http://gcc.gnu.org/lists.html
|
2460 |
|
|
21. http://validator.w3.org/check/referer
|
2461 |
|
|
======================================================================
|
2462 |
|
|
http://gcc.gnu.org/gcc-4.2/changes.html
|
2463 |
|
|
|
2464 |
|
|
GCC 4.2 Release Series
|
2465 |
|
|
Changes, New Features, and Fixes
|
2466 |
|
|
|
2467 |
|
|
Caveats
|
2468 |
|
|
|
2469 |
|
|
* GCC no longer accepts the -fshared-data option. This option has had
|
2470 |
|
|
no effect in any GCC 4 release; the targets to which the option
|
2471 |
|
|
used to apply had been removed before GCC 4.0.
|
2472 |
|
|
|
2473 |
|
|
General Optimizer Improvements
|
2474 |
|
|
|
2475 |
|
|
* New command-line options specify the possible relationships among
|
2476 |
|
|
parameters and between parameters and global data. For example,
|
2477 |
|
|
-fargument-noalias-anything specifies that arguments do not alias
|
2478 |
|
|
any other storage.
|
2479 |
|
|
Each language will automatically use whatever option is required by
|
2480 |
|
|
the language standard. You should not need to use these options
|
2481 |
|
|
yourself.
|
2482 |
|
|
|
2483 |
|
|
New Languages and Language specific improvements
|
2484 |
|
|
|
2485 |
|
|
* [1]OpenMP is now supported for the C, C++ and Fortran compilers.
|
2486 |
|
|
* New command-line options -fstrict-overflow and -Wstrict-overflow
|
2487 |
|
|
have been added. -fstrict-overflow tells the compiler that it may
|
2488 |
|
|
assume that the program follows the strict signed overflow
|
2489 |
|
|
semantics permitted for the language: for C and C++ this means that
|
2490 |
|
|
the compiler may assume that signed overflow does not occur. For
|
2491 |
|
|
example, a loop like
|
2492 |
|
|
for (i = 1; i > 0; i *= 2)
|
2493 |
|
|
|
2494 |
|
|
is presumably intended to continue looping until i overflows. With
|
2495 |
|
|
-fstrict-overflow, the compiler may assume that signed overflow
|
2496 |
|
|
will not occur, and transform this into an infinite loop.
|
2497 |
|
|
-fstrict-overflow is turned on by default at -O2, and may be
|
2498 |
|
|
disabled via -fno-strict-overflow. The -Wstrict-overflow option may
|
2499 |
|
|
be used to warn about cases where the compiler assumes that signed
|
2500 |
|
|
overflow will not occur. It takes five different levels:
|
2501 |
|
|
-Wstrict-overflow=1 to 5. See the [2]documentation for details.
|
2502 |
|
|
-Wstrict-overflow=1 is enabled by -Wall.
|
2503 |
|
|
* The new command-line option -fno-toplevel-reorder directs GCC to
|
2504 |
|
|
emit top-level functions, variables, and asm statements in the same
|
2505 |
|
|
order that they appear in the input file. This is intended to
|
2506 |
|
|
support existing code which relies on a particular ordering (for
|
2507 |
|
|
example, code which uses top-level asm statements to switch
|
2508 |
|
|
sections). For new code, it is generally better to use function and
|
2509 |
|
|
variable attributes. The -fno-toplevel-reorder option may be used
|
2510 |
|
|
for most cases which currently use -fno-unit-at-a-time. The
|
2511 |
|
|
-fno-unit-at-a-time option will be removed in some future version
|
2512 |
|
|
of GCC. If you know of a case which requires -fno-unit-at-a-time
|
2513 |
|
|
which is not fixed by -fno-toplevel-reorder, please open a bug
|
2514 |
|
|
report.
|
2515 |
|
|
|
2516 |
|
|
C family
|
2517 |
|
|
|
2518 |
|
|
* The pragma redefine_extname will now macro expand its tokens for
|
2519 |
|
|
compatibility with SunPRO.
|
2520 |
|
|
* In the next release of GCC, 4.3, -std=c99 or -std=gnu99 will direct
|
2521 |
|
|
GCC to handle inline functions as specified in the C99 standard. In
|
2522 |
|
|
preparation for this, GCC 4.2 will warn about any use of non-static
|
2523 |
|
|
inline functions in gnu99 or c99 mode. This new warning may be
|
2524 |
|
|
disabled with the new gnu_inline function attribute or the new
|
2525 |
|
|
-fgnu89-inline command-line option. Also, GCC 4.2 and later will
|
2526 |
|
|
define one of the preprocessor macros __GNUC_GNU_INLINE__ or
|
2527 |
|
|
__GNUC_STDC_INLINE__ to indicate the semantics of inline functions
|
2528 |
|
|
in the current compilation.
|
2529 |
|
|
* A new command-line option -Waddress has been added to warn about
|
2530 |
|
|
suspicious uses of memory addresses as, for example, using the
|
2531 |
|
|
address of a function in a conditional expression, and comparisons
|
2532 |
|
|
against the memory address of a string literal. This warning is
|
2533 |
|
|
enabled by -Wall.
|
2534 |
|
|
|
2535 |
|
|
C++
|
2536 |
|
|
|
2537 |
|
|
* C++ visibility handling has been overhauled.
|
2538 |
|
|
Restricted visiblity is propagated from classes to members, from
|
2539 |
|
|
functions to local statics, and from templates and template
|
2540 |
|
|
arguments to instantiations, unless the latter has explicitly
|
2541 |
|
|
declared visibility.
|
2542 |
|
|
The visibility attribute for a class must come between the
|
2543 |
|
|
class-key and the name, not after the closing brace.
|
2544 |
|
|
Attributes are now allowed for enums and elaborated-type-specifiers
|
2545 |
|
|
that only declare a type.
|
2546 |
|
|
Members of the anonymous namespace are now local to a particular
|
2547 |
|
|
translation unit, along with any other declarations which use them,
|
2548 |
|
|
though they are still treated as having external linkage for
|
2549 |
|
|
language semantics.
|
2550 |
|
|
* The (undocumented) extension which permitted templates with default
|
2551 |
|
|
arguments to be bound to template template parameters with fewer
|
2552 |
|
|
parameters has been removed. For example:
|
2553 |
|
|
template class C>
|
2554 |
|
|
void f(C) {}
|
2555 |
|
|
|
2556 |
|
|
template
|
2557 |
|
|
struct S {};
|
2558 |
|
|
|
2559 |
|
|
template void f(S);
|
2560 |
|
|
|
2561 |
|
|
is no longer accepted by G++. The reason this code is not accepted
|
2562 |
|
|
is that S is a template with two parameters; therefore, it cannot
|
2563 |
|
|
be bound to C which has only one parameter.
|
2564 |
|
|
* The , >?, =, and >?= operators, deprecated in previous GCC
|
2565 |
|
|
releases, have been removed.
|
2566 |
|
|
* The command-line option -fconst-strings, deprecated in previous GCC
|
2567 |
|
|
releases, has been removed.
|
2568 |
|
|
* The configure variable enable-__cxa_atexit is now enabled by
|
2569 |
|
|
default for more targets. Enabling this variable is necessary in
|
2570 |
|
|
order for static destructors to be executed in the correct order,
|
2571 |
|
|
but it depends upon the presence of a non-standard C library in the
|
2572 |
|
|
target library in order to work. The variable is now enabled for
|
2573 |
|
|
more targets which are known to have suitable C libraries.
|
2574 |
|
|
* -Wextra will produce warnings for if statements with a semicolon as
|
2575 |
|
|
the only body, to catch code like:
|
2576 |
|
|
if (a);
|
2577 |
|
|
return 1;
|
2578 |
|
|
return 0;
|
2579 |
|
|
|
2580 |
|
|
To suppress the warning in valid cases, use { } instead.
|
2581 |
|
|
* The C++ frontend now also produces strict aliasing warnings when
|
2582 |
|
|
-fstrict-aliasing -Wstrict-aliasing is in effect.
|
2583 |
|
|
|
2584 |
|
|
Runtime Library (libstdc++)
|
2585 |
|
|
|
2586 |
|
|
* Added support for TR1 , , and C compatibility
|
2587 |
|
|
headers. In addition, a lock-free version of shared_ptr was
|
2588 |
|
|
contributed as part of Phillip Jordan's Google Summer of Code
|
2589 |
|
|
project on lock-free containers. ([3]Implementation status of TR1)
|
2590 |
|
|
* In association with the Summer of Code work on lock-free
|
2591 |
|
|
containers, the interface for atomic builtins was adjusted,
|
2592 |
|
|
creating simpler alternatives for non-threaded code paths. Also,
|
2593 |
|
|
usage was consolidated and all elements were moved from namespace
|
2594 |
|
|
std to namespace__gnu_cxx. Affected interfaces are the functions
|
2595 |
|
|
__exchange_and_add, __atomic_add, and the objects __mutex,
|
2596 |
|
|
__recursive_mutex, and __scoped_lock.
|
2597 |
|
|
* Support for versioning weak symbol names via namespace association
|
2598 |
|
|
was added. However, as this changes the names of exported symbols,
|
2599 |
|
|
this is turned off by default in the current ABI. Intrepid users
|
2600 |
|
|
can enable this feature by using
|
2601 |
|
|
--enable-symvers=gnu-versioned-namespace during configuration.
|
2602 |
|
|
* Revised, simplified, and expanded policy-based associative
|
2603 |
|
|
containers, including data types for tree and trie forms
|
2604 |
|
|
(basic_tree, tree, trie), lists (list_update), and both
|
2605 |
|
|
collision-chaining and probing hash-based containers
|
2606 |
|
|
(basic_hash_table, cc_hash_table, gp_hash_table). More details per
|
2607 |
|
|
the [4]documentation.
|
2608 |
|
|
* The implementation of the debug mode was modified, whereby the
|
2609 |
|
|
debug namespaces were nested inside of namespace std and namespace
|
2610 |
|
|
__gnu_cxx in order to resolve some long standing corner cases
|
2611 |
|
|
involving name lookup. Debug functionality from the policy-based
|
2612 |
|
|
data structures was consolidated and enabled with the single macro,
|
2613 |
|
|
_GLIBCXX_DEBUG. See PR 26142 for more information.
|
2614 |
|
|
* Added extensions for type traits: __conditional_type,
|
2615 |
|
|
__numeric_traits, __add_unsigned, __removed_unsigned, __enable_if.
|
2616 |
|
|
* Added a typelist implementation for compile-time meta-programming.
|
2617 |
|
|
Elements for typelist construction and operation can be found
|
2618 |
|
|
within namespace __gnu_cxx::typelist.
|
2619 |
|
|
* Added a new allocator, __gnu_cxx::throw_allocator, for testing
|
2620 |
|
|
exception-safety.
|
2621 |
|
|
* Enabled library-wide visibility control, allowing -fvisibility to
|
2622 |
|
|
be used.
|
2623 |
|
|
* Consolidated all nested namespaces and the conversion of
|
2624 |
|
|
__gnu_internal implementation-private details to anonymous
|
2625 |
|
|
namespaces whenever possible.
|
2626 |
|
|
* Implemented LWG resolutions DR 431 and DR 538.
|
2627 |
|
|
|
2628 |
|
|
Fortran
|
2629 |
|
|
|
2630 |
|
|
* Support for allocatable components has been added (TR 15581 and
|
2631 |
|
|
Fortran 2003).
|
2632 |
|
|
* Support for the Fortran 2003 streaming IO extension has been added.
|
2633 |
|
|
* The GNU Fortran compiler now uses 4-byte record markers by default
|
2634 |
|
|
for unformatted files to be compatible with g77 and most other
|
2635 |
|
|
compilers. The implementation allows for records greater than 2 GB
|
2636 |
|
|
and is compatible with several other compilers. Older versions of
|
2637 |
|
|
gfortran used 8-byte record markers by default (on most systems).
|
2638 |
|
|
In order to change the length of the record markers, e.g. to read
|
2639 |
|
|
unformatted files created by older gfortran versions, the
|
2640 |
|
|
[5]-frecord-marker=8 option can be used.
|
2641 |
|
|
|
2642 |
|
|
Java (GCJ)
|
2643 |
|
|
|
2644 |
|
|
* A new command-line option -static-libgcj has been added for targets
|
2645 |
|
|
that use a linker compatible with GNU Binutils. As its name
|
2646 |
|
|
implies, this causes libgcj to be linked statically. In some cases
|
2647 |
|
|
this causes the resulting executable to start faster and use less
|
2648 |
|
|
memory than if the shared version of libgcj were used. However
|
2649 |
|
|
caution should be used as it can also cause essential parts of the
|
2650 |
|
|
library to be omitted. Some of these issues are discussed in:
|
2651 |
|
|
[6]http://gcc.gnu.org/wiki/Statically_linking_libgcj
|
2652 |
|
|
* fastjar is no longer bundled with GCC. To build libgcj, you will
|
2653 |
|
|
need either InfoZIP (both zip and unzip) or an external jar
|
2654 |
|
|
program. In the former case, the GCC build will install a jar shell
|
2655 |
|
|
script that is based on InfoZIP and provides the same functionality
|
2656 |
|
|
as fastjar.
|
2657 |
|
|
|
2658 |
|
|
New Targets and Target Specific Improvements
|
2659 |
|
|
|
2660 |
|
|
IA-32/x86-64
|
2661 |
|
|
|
2662 |
|
|
* -mtune=generic can now be used to generate code running well on
|
2663 |
|
|
common x86 chips. This includes AMD Athlon, AMD Opteron, Intel
|
2664 |
|
|
Pentium-M, Intel Pentium 4 and Intel Core 2.
|
2665 |
|
|
* -mtune=native and -march=native will produce code optimized for the
|
2666 |
|
|
host architecture as detected using the cpuid instruction.
|
2667 |
|
|
* Added a new command-line option -fstackrealign and and
|
2668 |
|
|
__attribute__ ((force_align_arg_pointer)) to realign the stack at
|
2669 |
|
|
runtime. This allows functions compiled with a vector-aligned stack
|
2670 |
|
|
to be invoked from legacy objects that keep only word-alignment.
|
2671 |
|
|
|
2672 |
|
|
SPARC
|
2673 |
|
|
|
2674 |
|
|
* The default CPU setting has been changed from V7 to V9 in 32-bit
|
2675 |
|
|
mode on Solaris 7 and above. This is already the case in 64-bit
|
2676 |
|
|
mode. It can be overridden by specifying --with-cpu at configure
|
2677 |
|
|
time.
|
2678 |
|
|
* Back-end support of built-in functions for atomic memory access has
|
2679 |
|
|
been implemented.
|
2680 |
|
|
* Support for the Sun UltraSPARC T1 (Niagara) processor has been
|
2681 |
|
|
added.
|
2682 |
|
|
|
2683 |
|
|
M32C
|
2684 |
|
|
|
2685 |
|
|
* Various bug fixes have made some functions (notably, functions
|
2686 |
|
|
returning structures) incompatible with previous releases.
|
2687 |
|
|
Recompiling all libraries is recommended. Note that code quality
|
2688 |
|
|
has considerably improved since 4.1, making a recompile even more
|
2689 |
|
|
beneficial.
|
2690 |
|
|
|
2691 |
|
|
MIPS
|
2692 |
|
|
|
2693 |
|
|
* Added support for the Broadcom SB-1A core.
|
2694 |
|
|
|
2695 |
|
|
IA-64
|
2696 |
|
|
|
2697 |
|
|
* Added support for IA-64 data and control speculation. By default
|
2698 |
|
|
speculation is enabled only during second scheduler pass. A number
|
2699 |
|
|
of machine flags was introduced to control the usage of speculation
|
2700 |
|
|
for both scheduler passes.
|
2701 |
|
|
|
2702 |
|
|
HPPA
|
2703 |
|
|
|
2704 |
|
|
* Added Java language support (libffi and libjava) for 32-bit HP-UX
|
2705 |
|
|
11 target.
|
2706 |
|
|
|
2707 |
|
|
Obsolete Systems
|
2708 |
|
|
|
2709 |
|
|
Documentation improvements
|
2710 |
|
|
|
2711 |
|
|
PDF Documentation
|
2712 |
|
|
|
2713 |
|
|
* A make pdf target has been added to the top-level makefile,
|
2714 |
|
|
enabling automated production of PDF documentation files.
|
2715 |
|
|
(Front-ends external to GCC should modify their Make-lang.in file
|
2716 |
|
|
to add a lang.pdf: target.)
|
2717 |
|
|
|
2718 |
|
|
Other significant improvements
|
2719 |
|
|
|
2720 |
|
|
Build system improvements
|
2721 |
|
|
|
2722 |
|
|
* All the components of the compiler are now bootstrapped by default.
|
2723 |
|
|
This improves the resilience to bugs in the system compiler or
|
2724 |
|
|
binary compatibility problems, as well as providing better testing
|
2725 |
|
|
of GCC 4.2 itself. In addition, if you build the compiler from a
|
2726 |
|
|
combined tree, the assembler, linker, etc. will also be
|
2727 |
|
|
bootstrapped (i.e. built with themselves).
|
2728 |
|
|
You can disable this behavior, and go back to the pre-GCC 4.2 set
|
2729 |
|
|
up, by configuring GCC with --disable-bootstrap.
|
2730 |
|
|
* The rules that configure follows to find target tools resemble more
|
2731 |
|
|
closely the locations that the built compiler will search. In
|
2732 |
|
|
addition, you can use the new configure option --with-target-tools
|
2733 |
|
|
to specify where to find the target tools used during the build,
|
2734 |
|
|
without affecting what the built compiler will use.
|
2735 |
|
|
This can be especially useful when building packages of GCC. For
|
2736 |
|
|
example, you may want to build GCC with GNU as or ld, even if the
|
2737 |
|
|
resulting compiler to work with the native assembler and linker. To
|
2738 |
|
|
do so, you can use --with-target-tools to point to the native
|
2739 |
|
|
tools.
|
2740 |
|
|
|
2741 |
|
|
Incompatible changes to the build system
|
2742 |
|
|
|
2743 |
|
|
* Front-ends external to GCC should modify their Make-lang.in file to
|
2744 |
|
|
replace double-colon rules (e.g. dvi::) with normal rules (like
|
2745 |
|
|
lang.dvi:). Front-end makefile hooks do not use double-colon rules
|
2746 |
|
|
anymore.
|
2747 |
|
|
* Up to GCC 4.1, a popular way to specify the target tools used
|
2748 |
|
|
during the build was to create directories named gas, binutils,
|
2749 |
|
|
etc. in the build tree, and create links to the tools from there.
|
2750 |
|
|
This does not work any more when the compiler is bootstrapped. The
|
2751 |
|
|
new configure option --with-target-tools provides a better way to
|
2752 |
|
|
achieve the same effect, and works for all native and cross
|
2753 |
|
|
settings.
|
2754 |
|
|
|
2755 |
|
|
Please send FSF & GNU inquiries & questions to [7]gnu@gnu.org. There
|
2756 |
|
|
are also [8]other ways to contact the FSF.
|
2757 |
|
|
|
2758 |
|
|
These pages are [9]maintained by the GCC team.
|
2759 |
|
|
|
2760 |
|
|
|
2761 |
|
|
For questions related to the use of GCC, please consult these web
|
2762 |
|
|
pages and the [10]GCC manuals. If that fails, the
|
2763 |
|
|
[11]gcc-help@gcc.gnu.org mailing list might help.
|
2764 |
|
|
Please send comments on these web pages and the development of GCC to
|
2765 |
|
|
our developer mailing list at [12]gcc@gnu.org or [13]gcc@gcc.gnu.org.
|
2766 |
|
|
All of our lists have [14]public archives.
|
2767 |
|
|
|
2768 |
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth
|
2769 |
|
|
Floor, Boston, MA 02110, USA.
|
2770 |
|
|
|
2771 |
|
|
Verbatim copying and distribution of this entire article is permitted
|
2772 |
|
|
in any medium, provided this notice is preserved.
|
2773 |
|
|
Last modified 2010-07-10 [15]Valid XHTML 1.0
|
2774 |
|
|
|
2775 |
|
|
References
|
2776 |
|
|
|
2777 |
|
|
1. http://gcc.gnu.org/projects/gomp/
|
2778 |
|
|
2. http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
|
2779 |
|
|
3. http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt01ch01.html#manual.intro.status.standard.tr1
|
2780 |
|
|
4. http://gcc.gnu.org/onlinedocs/libstdc++/ext/pb_ds/index.html
|
2781 |
|
|
5. http://gcc.gnu.org/onlinedocs/gfortran/Runtime-Options.html
|
2782 |
|
|
6. http://gcc.gnu.org/wiki/Statically_linking_libgcj
|
2783 |
|
|
7. mailto:gnu@gnu.org
|
2784 |
|
|
8. http://www.gnu.org/home.html#ContactInfo
|
2785 |
|
|
9. http://gcc.gnu.org/about.html
|
2786 |
|
|
10. http://gcc.gnu.org/onlinedocs/
|
2787 |
|
|
11. mailto:gcc-help@gcc.gnu.org
|
2788 |
|
|
12. mailto:gcc@gnu.org
|
2789 |
|
|
13. mailto:gcc@gcc.gnu.org
|
2790 |
|
|
14. http://gcc.gnu.org/lists.html
|
2791 |
|
|
15. http://validator.w3.org/check/referer
|
2792 |
|
|
======================================================================
|
2793 |
|
|
http://gcc.gnu.org/gcc-4.1/index.html
|
2794 |
|
|
|
2795 |
|
|
GCC 4.1 Release Series
|
2796 |
|
|
|
2797 |
|
|
February 13, 2007
|
2798 |
|
|
|
2799 |
|
|
The [1]GNU project and the GCC developers are pleased to announce the
|
2800 |
|
|
release of GCC 4.1.2.
|
2801 |
|
|
|
2802 |
|
|
This release is a bug-fix release, containing fixes for regressions in
|
2803 |
|
|
GCC 4.1.1 relative to previous releases of GCC.
|
2804 |
|
|
|
2805 |
|
|
Release History
|
2806 |
|
|
|
2807 |
|
|
GCC 4.1.2
|
2808 |
|
|
February 13, 2007 ([2]changes)
|
2809 |
|
|
|
2810 |
|
|
GCC 4.1.1
|
2811 |
|
|
May 24, 2006 ([3]changes)
|
2812 |
|
|
|
2813 |
|
|
GCC 4.1.0
|
2814 |
|
|
February 28, 2006 ([4]changes)
|
2815 |
|
|
|
2816 |
|
|
References and Acknowledgements
|
2817 |
|
|
|
2818 |
|
|
GCC used to stand for the GNU C Compiler, but since the compiler
|
2819 |
|
|
supports several other languages aside from C, it now stands for the
|
2820 |
|
|
GNU Compiler Collection.
|
2821 |
|
|
|
2822 |
|
|
A list of [5]successful builds is updated as new information becomes
|
2823 |
|
|
available.
|
2824 |
|
|
|
2825 |
|
|
The GCC developers would like to thank the numerous people that have
|
2826 |
|
|
contributed new features, improvements, bug fixes, and other changes as
|
2827 |
|
|
well as test results to GCC. This [6]amazing group of volunteers is
|
2828 |
|
|
what makes GCC successful.
|
2829 |
|
|
|
2830 |
|
|
For additional information about GCC please refer to the [7]GCC project
|
2831 |
|
|
web site or contact the [8]GCC development mailing list.
|
2832 |
|
|
|
2833 |
|
|
To obtain GCC please use [9]our mirror sites or [10]our SVN server.
|
2834 |
|
|
|
2835 |
|
|
Please send FSF & GNU inquiries & questions to [11]gnu@gnu.org. There
|
2836 |
|
|
are also [12]other ways to contact the FSF.
|
2837 |
|
|
|
2838 |
|
|
These pages are [13]maintained by the GCC team.
|
2839 |
|
|
|
2840 |
|
|
|
2841 |
|
|
For questions related to the use of GCC, please consult these web
|
2842 |
|
|
pages and the [14]GCC manuals. If that fails, the
|
2843 |
|
|
[15]gcc-help@gcc.gnu.org mailing list might help.
|
2844 |
|
|
Please send comments on these web pages and the development of GCC to
|
2845 |
|
|
our developer mailing list at [16]gcc@gnu.org or [17]gcc@gcc.gnu.org.
|
2846 |
|
|
All of our lists have [18]public archives.
|
2847 |
|
|
|
2848 |
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth
|
2849 |
|
|
Floor, Boston, MA 02110, USA.
|
2850 |
|
|
|
2851 |
|
|
Verbatim copying and distribution of this entire article is permitted
|
2852 |
|
|
in any medium, provided this notice is preserved.
|
2853 |
|
|
Last modified 2010-07-01 [19]Valid XHTML 1.0
|
2854 |
|
|
|
2855 |
|
|
References
|
2856 |
|
|
|
2857 |
|
|
1. http://www.gnu.org/
|
2858 |
|
|
2. http://gcc.gnu.org/gcc-4.1/changes.html#4.1.2
|
2859 |
|
|
3. http://gcc.gnu.org/gcc-4.1/changes.html
|
2860 |
|
|
4. http://gcc.gnu.org/gcc-4.1/changes.html
|
2861 |
|
|
5. http://gcc.gnu.org/gcc-4.1/buildstat.html
|
2862 |
|
|
6. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
|
2863 |
|
|
7. http://gcc.gnu.org/index.html
|
2864 |
|
|
8. mailto:gcc@gcc.gnu.org
|
2865 |
|
|
9. http://gcc.gnu.org/mirrors.html
|
2866 |
|
|
10. http://gcc.gnu.org/svn.html
|
2867 |
|
|
11. mailto:gnu@gnu.org
|
2868 |
|
|
12. http://www.gnu.org/home.html#ContactInfo
|
2869 |
|
|
13. http://gcc.gnu.org/about.html
|
2870 |
|
|
14. http://gcc.gnu.org/onlinedocs/
|
2871 |
|
|
15. mailto:gcc-help@gcc.gnu.org
|
2872 |
|
|
16. mailto:gcc@gnu.org
|
2873 |
|
|
17. mailto:gcc@gcc.gnu.org
|
2874 |
|
|
18. http://gcc.gnu.org/lists.html
|
2875 |
|
|
19. http://validator.w3.org/check/referer
|
2876 |
|
|
======================================================================
|
2877 |
|
|
http://gcc.gnu.org/gcc-4.1/changes.html
|
2878 |
|
|
|
2879 |
|
|
GCC 4.1 Release Series
|
2880 |
|
|
Changes, New Features, and Fixes
|
2881 |
|
|
|
2882 |
|
|
The latest release in the 4.1 release series is [1]GCC 4.1.2.
|
2883 |
|
|
|
2884 |
|
|
Caveats
|
2885 |
|
|
|
2886 |
|
|
General Optimizer Improvements
|
2887 |
|
|
|
2888 |
|
|
* GCC now has infrastructure for inter-procedural optimizations and
|
2889 |
|
|
the following inter-procedural optimizations are implemented:
|
2890 |
|
|
+ Profile guided inlining. When doing profile feedback guided
|
2891 |
|
|
optimization, GCC can now use the profile to make better
|
2892 |
|
|
informed decisions on whether inlining of a function is
|
2893 |
|
|
profitable or not. This means that GCC will no longer inline
|
2894 |
|
|
functions at call sites that are not executed very often, and
|
2895 |
|
|
that functions at hot call sites are more likely to be
|
2896 |
|
|
inlined.
|
2897 |
|
|
A new parameter min-inline-recursive-probability is also now
|
2898 |
|
|
available to throttle recursive inlining of functions with
|
2899 |
|
|
small average recursive depths.
|
2900 |
|
|
+ Discovery of pure and const functions, a form of side-effects
|
2901 |
|
|
analysis. While older GCC releases could also discover such
|
2902 |
|
|
special functions, the new IPA-based pass runs earlier so that
|
2903 |
|
|
the results are available to more optimizers. The pass is also
|
2904 |
|
|
simply more powerful than the old one.
|
2905 |
|
|
+ Analysis of references to static variables and type escape
|
2906 |
|
|
analysis, also forms of side-effects analysis. The results of
|
2907 |
|
|
these passes allow the compiler to be less conservative about
|
2908 |
|
|
call-clobbered variables and references. This results in more
|
2909 |
|
|
redundant loads being eliminated and in making static
|
2910 |
|
|
variables candidates for register promotion.
|
2911 |
|
|
+ Improvement of RTL-based alias analysis. The results of type
|
2912 |
|
|
escape analysis are fed to the RTL type-based alias analyzer,
|
2913 |
|
|
allowing it to disambiguate more memory references.
|
2914 |
|
|
+ Interprocedural constant propagation and function versioning.
|
2915 |
|
|
This pass looks for functions that are always called with the
|
2916 |
|
|
same constant value for one or more of the function arguments,
|
2917 |
|
|
and propagates those constants into those functions.
|
2918 |
|
|
+ GCC will now eliminate static variables whose usage was
|
2919 |
|
|
optimized out.
|
2920 |
|
|
+ -fwhole-program --combine can now be used to make all
|
2921 |
|
|
functions in program static allowing whole program
|
2922 |
|
|
optimization. As an exception, the main function and all
|
2923 |
|
|
functions marked with the new externally_visible attribute are
|
2924 |
|
|
kept global so that programs can link with runtime libraries.
|
2925 |
|
|
* GCC can now do a form of partial dead code elimination (PDCE) that
|
2926 |
|
|
allows code motion of expressions to the paths where the result of
|
2927 |
|
|
the expression is actually needed. This is not always a win, so the
|
2928 |
|
|
pass has been limited to only consider profitable cases. Here is an
|
2929 |
|
|
example:
|
2930 |
|
|
int foo (int *, int *);
|
2931 |
|
|
int
|
2932 |
|
|
bar (int d)
|
2933 |
|
|
{
|
2934 |
|
|
int a, b, c;
|
2935 |
|
|
b = d + 1;
|
2936 |
|
|
c = d + 2;
|
2937 |
|
|
a = b + c;
|
2938 |
|
|
if (d)
|
2939 |
|
|
{
|
2940 |
|
|
foo (&b, &c);
|
2941 |
|
|
a = b + c;
|
2942 |
|
|
}
|
2943 |
|
|
printf ("%d\n", a);
|
2944 |
|
|
}
|
2945 |
|
|
|
2946 |
|
|
The a = b + c can be sunk to right before the printf. Normal code
|
2947 |
|
|
sinking will not do this, it will sink the first one above into the
|
2948 |
|
|
else-branch of the conditional jump, which still gives you two
|
2949 |
|
|
copies of the code.
|
2950 |
|
|
* GCC now has a value range propagation pass. This allows the
|
2951 |
|
|
compiler to eliminate bounds checks and branches. The results of
|
2952 |
|
|
the pass can also be used to accurately compute branch
|
2953 |
|
|
probabilities.
|
2954 |
|
|
* The pass to convert PHI nodes to straight-line code (a form of
|
2955 |
|
|
if-conversion for GIMPLE) has been improved significantly. The two
|
2956 |
|
|
most significant improvements are an improved algorithm to
|
2957 |
|
|
determine the order in which the PHI nodes are considered, and an
|
2958 |
|
|
improvement that allow the pass to consider if-conversions of basic
|
2959 |
|
|
blocks with more than two predecessors.
|
2960 |
|
|
* Alias analysis improvements. GCC can now differentiate between
|
2961 |
|
|
different fields of structures in Tree-SSA's virtual operands form.
|
2962 |
|
|
This lets stores/loads from non-overlapping structure fields not
|
2963 |
|
|
conflict. A new algorithm to compute points-to sets was contributed
|
2964 |
|
|
that can allows GCC to see now that p->a and p->b, where p is a
|
2965 |
|
|
pointer to a structure, can never point to the same field.
|
2966 |
|
|
* Various enhancements to auto-vectorization:
|
2967 |
|
|
+ Incrementally preserve SSA form when vectorizing.
|
2968 |
|
|
+ Incrementally preserve loop-closed form when vectorizing.
|
2969 |
|
|
+ Improvements to peeling for alignment: generate better code
|
2970 |
|
|
when the misalignment of an access is known at compile time,
|
2971 |
|
|
or when different accesses are known to have the same
|
2972 |
|
|
misalignment, even if the misalignment amount itself is
|
2973 |
|
|
unknown.
|
2974 |
|
|
+ Consider dependence distance in the vectorizer.
|
2975 |
|
|
+ Externalize generic parts of data reference analysis to make
|
2976 |
|
|
this analysis available to other passes.
|
2977 |
|
|
+ Vectorization of conditional code.
|
2978 |
|
|
+ Reduction support.
|
2979 |
|
|
* GCC can now partition functions in sections of hot and cold code.
|
2980 |
|
|
This can significantly improve performance due to better
|
2981 |
|
|
instruction cache locality. This feature works best together with
|
2982 |
|
|
profile feedback driven optimization.
|
2983 |
|
|
* A new pass to avoid saving of unneeded arguments to the stack in
|
2984 |
|
|
vararg functions if the compiler can prove that they will not be
|
2985 |
|
|
needed.
|
2986 |
|
|
* Transition of basic block profiling to tree level implementation
|
2987 |
|
|
has been completed. The new implementation should be considerably
|
2988 |
|
|
more reliable (hopefully avoiding profile mismatch errors when
|
2989 |
|
|
using -fprofile-use or -fbranch-probabilities) and can be used to
|
2990 |
|
|
drive higher level optimizations, such as inlining.
|
2991 |
|
|
The -ftree-based-profiling command-line option was removed and
|
2992 |
|
|
-fprofile-use now implies disabling old RTL level loop optimizer
|
2993 |
|
|
(-fno-loop-optimize). Speculative prefetching optimization
|
2994 |
|
|
(originally enabled by -fspeculative-prefetching) was removed.
|
2995 |
|
|
|
2996 |
|
|
New Languages and Language specific improvements
|
2997 |
|
|
|
2998 |
|
|
C and Objective-C
|
2999 |
|
|
|
3000 |
|
|
* The old Bison-based C and Objective-C parser has been replaced by a
|
3001 |
|
|
new, faster hand-written recursive-descent parser.
|
3002 |
|
|
|
3003 |
|
|
Ada
|
3004 |
|
|
|
3005 |
|
|
* The build infrastructure for the Ada runtime library and tools has
|
3006 |
|
|
been changed to be better integrated with the rest of the build
|
3007 |
|
|
infrastructure of GCC. This should make doing cross builds of Ada a
|
3008 |
|
|
bit easier.
|
3009 |
|
|
|
3010 |
|
|
C++
|
3011 |
|
|
|
3012 |
|
|
* ARM-style name-injection of friend declarations is no longer the
|
3013 |
|
|
default. For example:
|
3014 |
|
|
struct S {
|
3015 |
|
|
friend void f();
|
3016 |
|
|
};
|
3017 |
|
|
|
3018 |
|
|
void g() { f(); }
|
3019 |
|
|
will not be accepted; instead a declaration of f will need to be
|
3020 |
|
|
present outside of the scope of S. The new -ffriend-injection
|
3021 |
|
|
option will enable the old behavior.
|
3022 |
|
|
* The (undocumented) extension which permitted templates with default
|
3023 |
|
|
arguments to be bound to template template parameters with fewer
|
3024 |
|
|
parameters has been deprecated, and will be removed in the next
|
3025 |
|
|
major release of G++. For example:
|
3026 |
|
|
template class C>
|
3027 |
|
|
void f(C) {}
|
3028 |
|
|
|
3029 |
|
|
template
|
3030 |
|
|
struct S {};
|
3031 |
|
|
|
3032 |
|
|
template void f(S);
|
3033 |
|
|
|
3034 |
|
|
makes use of the deprecated extension. The reason this code is not
|
3035 |
|
|
valid ISO C++ is that S is a template with two parameters;
|
3036 |
|
|
therefore, it cannot be bound to C which has only one parameter.
|
3037 |
|
|
|
3038 |
|
|
Runtime Library (libstdc++)
|
3039 |
|
|
|
3040 |
|
|
* Optimization work:
|
3041 |
|
|
+ A new implementation of std::search_n is provided, better
|
3042 |
|
|
performing in case of random access iterators.
|
3043 |
|
|
+ Added further efficient specializations of istream functions,
|
3044 |
|
|
i.e., character array and string extractors.
|
3045 |
|
|
+ Other smaller improvements throughout.
|
3046 |
|
|
* Policy-based associative containers, designed for high-performance,
|
3047 |
|
|
flexibility and semantic safety are delivered in ext/pb_assoc.
|
3048 |
|
|
* A versatile string class, __gnu_cxx::__versa_string, providing
|
3049 |
|
|
facilities conforming to the standard requirements for
|
3050 |
|
|
basic_string, is delivered in . In particular:
|
3051 |
|
|
+ Two base classes are provided: the default one avoids
|
3052 |
|
|
reference counting and is optimized for short strings; the
|
3053 |
|
|
alternate one, still uses it while improving in a few low
|
3054 |
|
|
level areas (e.g., alignment). See vstring_fwd.h for some
|
3055 |
|
|
useful typedefs.
|
3056 |
|
|
+ Various algorithms have been rewritten (e.g., replace), the
|
3057 |
|
|
code streamlined and simple optimizations added.
|
3058 |
|
|
+ Option 3 of DR 431 is implemented for both available bases,
|
3059 |
|
|
thus improving the support for stateful allocators.
|
3060 |
|
|
* As usual, many bugs have been fixed (e.g., libstdc++/13583,
|
3061 |
|
|
libstdc++/23953) and LWG resolutions put into effect for the first
|
3062 |
|
|
time (e.g., DR 280, DR 464, N1780 recommendations for DR 233, TR1
|
3063 |
|
|
Issue 6.19). The implementation status of TR1 is now tracked in the
|
3064 |
|
|
docs in tr1.html.
|
3065 |
|
|
|
3066 |
|
|
Objective-C++
|
3067 |
|
|
|
3068 |
|
|
* A new language front end for Objective-C++ has been added. This
|
3069 |
|
|
language allows users to mix the object oriented features of
|
3070 |
|
|
Objective-C with those of C++.
|
3071 |
|
|
|
3072 |
|
|
Java (GCJ)
|
3073 |
|
|
|
3074 |
|
|
* Core library (libgcj) updates based on GNU Classpath 0.15 - 0.19
|
3075 |
|
|
features (plus some 0.20 bug-fixes)
|
3076 |
|
|
+ Networking
|
3077 |
|
|
o The java.net.HttpURLConnection implementation no longer
|
3078 |
|
|
buffers the entire response body in memory. This means
|
3079 |
|
|
that response bodies larger than available memory can now
|
3080 |
|
|
be handled.
|
3081 |
|
|
+ (N)IO
|
3082 |
|
|
o NIO FileChannel.map implementation, fast bulk put
|
3083 |
|
|
implementation for DirectByteBuffer (speeds up this
|
3084 |
|
|
method 10x).
|
3085 |
|
|
o FileChannel.lock() and FileChannel.force() implemented.
|
3086 |
|
|
+ XML
|
3087 |
|
|
o gnu.xml fix for nodes created outside a namespace
|
3088 |
|
|
context.
|
3089 |
|
|
o Add support for output indenting and
|
3090 |
|
|
cdata-section-elements output instruction in
|
3091 |
|
|
xml.transform.
|
3092 |
|
|
o xml.xpath corrections for cases where elements/attributes
|
3093 |
|
|
might have been created in non-namespace-aware mode.
|
3094 |
|
|
Corrections to handling of XSL variables and minor
|
3095 |
|
|
conformance updates.
|
3096 |
|
|
+ AWT
|
3097 |
|
|
o GNU JAWT implementation, the AWT Native Interface, which
|
3098 |
|
|
allows direct access to native screen resources from
|
3099 |
|
|
within a Canvas's paint method. GNU Classpath Examples
|
3100 |
|
|
comes with a Demo, see libjava/classpath/examples/README.
|
3101 |
|
|
o awt.datatransfer updated to 1.5 with support for
|
3102 |
|
|
FlavorEvents. The gtk+ awt peers now allow copy/paste of
|
3103 |
|
|
text, images, URIs/files and serialized objects with
|
3104 |
|
|
other applications and tracking clipboard change events
|
3105 |
|
|
with gtk+ 2.6 (for gtk+ 2.4 only text and serialized
|
3106 |
|
|
objects are supported). A GNU Classpath Examples
|
3107 |
|
|
datatransfer Demo was added to show the new
|
3108 |
|
|
functionality.
|
3109 |
|
|
o Split gtk+ awt peers event handling in two threads and
|
3110 |
|
|
improve gdk lock handling (solves several awt lock ups).
|
3111 |
|
|
o Speed up awt Image loading.
|
3112 |
|
|
o Better gtk+ scrollbar peer implementation when using gtk+
|
3113 |
|
|
>= 2.6.
|
3114 |
|
|
o Handle image loading errors correctly for gdkpixbuf and
|
3115 |
|
|
MediaTracker.
|
3116 |
|
|
o Better handle GDK lock. Properly prefix gtkpeer native
|
3117 |
|
|
functions (cp_gtk).
|
3118 |
|
|
o GdkGraphics2D has been updated to use Cairo 0.5.x or
|
3119 |
|
|
higher.
|
3120 |
|
|
o BufferedImage and GtkImage rewrites. All image drawing
|
3121 |
|
|
operations should now work correctly (flipping requires
|
3122 |
|
|
gtk+ >= 2.6)
|
3123 |
|
|
o Future Graphics2D, image and text work is documented at:
|
3124 |
|
|
[2]http://developer.classpath.org/mediation/ClasspathGrap
|
3125 |
|
|
hicsImagesText
|
3126 |
|
|
o When gtk+ 2.6 or higher is installed the default log
|
3127 |
|
|
handler will produce stack traces whenever a WARNING,
|
3128 |
|
|
CRITICAL or ERROR message is produced.
|
3129 |
|
|
+ Free Swing
|
3130 |
|
|
o The RepaintManager has been reworked for more efficient
|
3131 |
|
|
painting, especially for large GUIs.
|
3132 |
|
|
o The layout manager OverlayLayout has been implemented,
|
3133 |
|
|
the BoxLayout has been rewritten to make use of the
|
3134 |
|
|
SizeRequirements utility class and caching for more
|
3135 |
|
|
efficient layout.
|
3136 |
|
|
o Improved accessibility support.
|
3137 |
|
|
o Significant progress has been made in the implementation
|
3138 |
|
|
of the javax.swing.plaf.metal package, with most UI
|
3139 |
|
|
delegates in a working state now. Please test this with
|
3140 |
|
|
your own applications and provide feedback that will help
|
3141 |
|
|
us to improve this package.
|
3142 |
|
|
o The GUI demo (gnu.classpath.examples.swing.Demo) has been
|
3143 |
|
|
extended to highlight various features in our Free Swing
|
3144 |
|
|
implementation. And it includes a look and feel switcher
|
3145 |
|
|
for Metal (default), Ocean and GNU themes.
|
3146 |
|
|
o The javax.swing.plaf.multi package is now implemented.
|
3147 |
|
|
o Editing and several key actions for JTree and JTable were
|
3148 |
|
|
implemented.
|
3149 |
|
|
o Lots of icons and look and feel improvements for Free
|
3150 |
|
|
Swing basic and metal themes were added. Try running the
|
3151 |
|
|
GNU Classpath Swing Demo in examples
|
3152 |
|
|
(gnu.classpath.examples.swing.Demo) with:
|
3153 |
|
|
-Dswing.defaultlaf=javax.swing.plaf.basic.BasicLookAndFee
|
3154 |
|
|
l or
|
3155 |
|
|
-Dswing.defaultlaf=javax.swing.plaf.metal.MetalLookAndFee
|
3156 |
|
|
l
|
3157 |
|
|
o Start of styled text capabilites for java.swing.text.
|
3158 |
|
|
o DefaultMutableTreeNode pre-order, post-order, depth-first
|
3159 |
|
|
and breadth-first traversal enumerations implemented.
|
3160 |
|
|
o JInternalFrame colors and titlebar draw properly.
|
3161 |
|
|
o JTree is working up to par (icons, selection and keyboard
|
3162 |
|
|
traversal).
|
3163 |
|
|
o JMenus were made more compatible in visual and
|
3164 |
|
|
programmatic behavior.
|
3165 |
|
|
o JTable changeSelection and multiple selections
|
3166 |
|
|
implemented.
|
3167 |
|
|
o JButton and JToggleButton change states work properly
|
3168 |
|
|
now.
|
3169 |
|
|
o JFileChooser fixes.
|
3170 |
|
|
o revalidate() and repaint() fixes which make Free Swing
|
3171 |
|
|
much more responsive.
|
3172 |
|
|
o MetalIconFactory implemented.
|
3173 |
|
|
o Free Swing Top-Level Compatibility. JFrame, JDialog,
|
3174 |
|
|
JApplet, JInternalFrame, and JWindow are now 1.5
|
3175 |
|
|
compatible in the sense that you can call add() and
|
3176 |
|
|
setLayout() directly on them, which will have the same
|
3177 |
|
|
effect as calling getContentPane().add() and
|
3178 |
|
|
getContentPane().setLayout().
|
3179 |
|
|
o The JTree interface has been completed. JTrees now
|
3180 |
|
|
recognizes mouse clicks and selections work.
|
3181 |
|
|
o BoxLayout works properly now.
|
3182 |
|
|
o Fixed GrayFilter to actually work.
|
3183 |
|
|
o Metal SplitPane implemented.
|
3184 |
|
|
o Lots of Free Swing text and editor stuff work now.
|
3185 |
|
|
+ Free RMI and Corba
|
3186 |
|
|
o Andrew Watson, Vice President and Technical Director of
|
3187 |
|
|
the Object Management Group, has officially assigned us
|
3188 |
|
|
20 bit Vendor Minor Code Id: 0x47430 ("GC") that will
|
3189 |
|
|
mark remote classpath-specific system exceptions.
|
3190 |
|
|
Obtaining the VMCID means that GNU Classpath now is a
|
3191 |
|
|
recogniseable type of node in a highly interoperable
|
3192 |
|
|
CORBA world.
|
3193 |
|
|
o GNU Classpath now includes the first working draft to
|
3194 |
|
|
support the RMI over IIOP protocol. The current
|
3195 |
|
|
implementation is capable of remote invocations,
|
3196 |
|
|
transferring various Serializables and Externalizables
|
3197 |
|
|
via RMI-IIOP protocol. It can flatten graphs and, at
|
3198 |
|
|
least for the simple cases, is interoperable with 1.5
|
3199 |
|
|
JDKs.
|
3200 |
|
|
o org.omg.PortableInterceptor and related functionality in
|
3201 |
|
|
other packages is now implemented:
|
3202 |
|
|
# The sever and client interceptors work as required
|
3203 |
|
|
since 1.4.
|
3204 |
|
|
# The IOR interceptor works as needed for 1.5.
|
3205 |
|
|
o The org.omg.DynamicAny package is completed and passes
|
3206 |
|
|
the prepared tests.
|
3207 |
|
|
o The Portable Object Adapter should now support the output
|
3208 |
|
|
of the recent IDL to java compilers. These compilers now
|
3209 |
|
|
generate servants and not CORBA objects as before, making
|
3210 |
|
|
the output depend on the existing POA implementation.
|
3211 |
|
|
Completing POA means that such code can already be tried
|
3212 |
|
|
to run on Classpath. Our POA is tested for the following
|
3213 |
|
|
usager scenarios:
|
3214 |
|
|
# POA converts servant to the CORBA object.
|
3215 |
|
|
# Servant provides to the CORBA object.
|
3216 |
|
|
# POA activates new CORBA object with the given Object
|
3217 |
|
|
Id (byte array) that is later accessible for the
|
3218 |
|
|
servant.
|
3219 |
|
|
# During the first call, the ServantActivator provides
|
3220 |
|
|
servant for this and all subsequent calls on the
|
3221 |
|
|
current object.
|
3222 |
|
|
# During each call, the ServantLocator provides
|
3223 |
|
|
servant for this call only.
|
3224 |
|
|
# ServantLocator or ServantActivator forwards call to
|
3225 |
|
|
another server.
|
3226 |
|
|
# POA has a single servant, responsible for all
|
3227 |
|
|
objects.
|
3228 |
|
|
# POA has a default servant, but some objects are
|
3229 |
|
|
explicitly connected to they specific servants.
|
3230 |
|
|
The POA is verified using tests from the former
|
3231 |
|
|
cost.omg.org.
|
3232 |
|
|
o The CORBA implementation is now a working prototype that
|
3233 |
|
|
should support features up to 1.3 inclusive. We invite
|
3234 |
|
|
groups writing CORBA dependent applications to try
|
3235 |
|
|
Classpath implementation, reporting any possible bugs.
|
3236 |
|
|
The CORBA prototype is interoperable with Sun's
|
3237 |
|
|
implementation v 1.4, transferring object references,
|
3238 |
|
|
primitive types, narrow and wide strings, arrays,
|
3239 |
|
|
structures, trees, abstract interfaces and value types
|
3240 |
|
|
(feature of CORBA 2.3) between these two platforms.
|
3241 |
|
|
Remote exceptions are transferred and handled correctly.
|
3242 |
|
|
The stringified object references (IORs) from various
|
3243 |
|
|
sources are parsed as required. The transient (for
|
3244 |
|
|
current session) and permanent (till jre restart)
|
3245 |
|
|
redirections work. Both Little and Big Endian encoded
|
3246 |
|
|
messages are accepted. The implementation is verified
|
3247 |
|
|
using tests from the former cost.omg.org. The current
|
3248 |
|
|
release includes working examples (see the examples
|
3249 |
|
|
directory), demonstrating the client-server
|
3250 |
|
|
communication, using either CORBA Request or IDL-based
|
3251 |
|
|
stub (usually generated by a IDL to java compiler). These
|
3252 |
|
|
examples also show how to use the Classpath CORBA naming
|
3253 |
|
|
service. The IDL to java compiler is not yet written, but
|
3254 |
|
|
as our library must be compatible, it naturally accepts
|
3255 |
|
|
the output of other idlj implementations.
|
3256 |
|
|
+ Misc
|
3257 |
|
|
o Updated TimeZone data against Olson tzdata2005l.
|
3258 |
|
|
o Make zip and jar packages UTF-8 clean.
|
3259 |
|
|
o "native" code builds and compiles (warning free) on
|
3260 |
|
|
Darwin and Solaris.
|
3261 |
|
|
o java.util.logging.FileHandler now rotates files.
|
3262 |
|
|
o Start of a generic JDWP framework in gnu/classpath/jdwp.
|
3263 |
|
|
This is unfinished, but feedback (at classpath@gnu.org)
|
3264 |
|
|
from runtime hackers is greatly appreciated. Although
|
3265 |
|
|
most of the work is currently being done around gcj/gij
|
3266 |
|
|
we want this framework to be as VM neutral as possible.
|
3267 |
|
|
Early design is described in:
|
3268 |
|
|
[3]http://gcc.gnu.org/ml/java/2005-05/msg00260.html
|
3269 |
|
|
o QT4 AWT peers, enable by giving configure
|
3270 |
|
|
--enable-qt-peer. Included, but not ready for production
|
3271 |
|
|
yet. They are explicitly disabled and not supported. But
|
3272 |
|
|
if you want to help with the development of these new
|
3273 |
|
|
features we are interested in feedback. You will have to
|
3274 |
|
|
explicitly enable them to try them out (and they will
|
3275 |
|
|
most likely contain bugs).
|
3276 |
|
|
o Documentation fixes all over the place. See
|
3277 |
|
|
[4]http://developer.classpath.org/doc/
|
3278 |
|
|
|
3279 |
|
|
New Targets and Target Specific Improvements
|
3280 |
|
|
|
3281 |
|
|
IA-32/x86-64
|
3282 |
|
|
|
3283 |
|
|
* The x86-64 medium model (that allows building applications whose
|
3284 |
|
|
data segment exceeds 4GB) was redesigned to match latest ABI draft.
|
3285 |
|
|
New implementation split large datastructures into separate segment
|
3286 |
|
|
improving performance of accesses to small datastructures and also
|
3287 |
|
|
allows linking of small model libraries into medium model programs
|
3288 |
|
|
as long as the libraries are not accessing the large datastructures
|
3289 |
|
|
directly. Medium model is also supported in position independent
|
3290 |
|
|
code now.
|
3291 |
|
|
The ABI change results in partial incompatibility among medium
|
3292 |
|
|
model objects. Linking medium model libraries (or objects) compiled
|
3293 |
|
|
with new compiler into medium model program compiled with older
|
3294 |
|
|
will likely result in exceeding ranges of relocations.
|
3295 |
|
|
Binutils 2.16.91 or newer are required for compiling medium model
|
3296 |
|
|
now.
|
3297 |
|
|
|
3298 |
|
|
RS6000 (POWER/PowerPC)
|
3299 |
|
|
|
3300 |
|
|
* The AltiVec vector primitives in are now implemented in
|
3301 |
|
|
a way that puts a smaller burden on the preprocessor, instead
|
3302 |
|
|
processing the "overloading" in the front ends. This should benefit
|
3303 |
|
|
compilation speed on AltiVec vector code.
|
3304 |
|
|
* AltiVec initializers now are generated more efficiently.
|
3305 |
|
|
* The popcountb instruction available on POWER5 now is generated.
|
3306 |
|
|
* The floating point round to integer instructions available on
|
3307 |
|
|
POWER5+ now is generated.
|
3308 |
|
|
* Floating point divides can be synthesized using the floating point
|
3309 |
|
|
reciprocal estimate instructions.
|
3310 |
|
|
* Double precision floating point constants are initialized as single
|
3311 |
|
|
precision values if they can be represented exactly.
|
3312 |
|
|
|
3313 |
|
|
S/390, zSeries and System z9
|
3314 |
|
|
|
3315 |
|
|
* Support for the IBM System z9 109 processor has been added. When
|
3316 |
|
|
using the -march=z9-109 option, the compiler will generate code
|
3317 |
|
|
making use of instructions provided by the extended immediate
|
3318 |
|
|
facility.
|
3319 |
|
|
* Support for 128-bit IEEE floating point has been added. When using
|
3320 |
|
|
the -mlong-double-128 option, the compiler will map the long double
|
3321 |
|
|
data type to 128-bit IEEE floating point. Using this option
|
3322 |
|
|
constitutes an ABI change, and requires glibc support.
|
3323 |
|
|
* Various changes to improve performance of generated code have been
|
3324 |
|
|
implemented, including:
|
3325 |
|
|
+ In functions that do not require a literal pool, register %r13
|
3326 |
|
|
(which is traditionally reserved as literal pool pointer), can
|
3327 |
|
|
now be freely used for other purposes by the compiler.
|
3328 |
|
|
+ More precise tracking of register use allows the compiler to
|
3329 |
|
|
generate more efficient function prolog and epilog code in
|
3330 |
|
|
certain cases.
|
3331 |
|
|
+ The SEARCH STRING, COMPARE LOGICAL STRING, and MOVE STRING
|
3332 |
|
|
instructions are now used to implement C string functions.
|
3333 |
|
|
+ The MOVE CHARACTER instruction with single byte overlap is now
|
3334 |
|
|
used to implement the memset function with non-zero fill byte.
|
3335 |
|
|
+ The LOAD ZERO instructions are now used where appropriate.
|
3336 |
|
|
+ The INSERT CHARACTERS UNDER MASK, STORE CHARACTERS UNDER MASK,
|
3337 |
|
|
and INSERT IMMEDIATE instructions are now used more frequently
|
3338 |
|
|
to optimize bitfield operations.
|
3339 |
|
|
+ The BRANCH ON COUNT instruction is now used more frequently.
|
3340 |
|
|
In particular, the fact that a loop contains a subroutine call
|
3341 |
|
|
no longer prevents the compiler from using this instruction.
|
3342 |
|
|
+ The compiler is now aware that all shift and rotate
|
3343 |
|
|
instructions implicitly truncate the shift count to six bits.
|
3344 |
|
|
* Back-end support for the following generic features has been
|
3345 |
|
|
implemented:
|
3346 |
|
|
+ The full set of [5]built-in functions for atomic memory
|
3347 |
|
|
access.
|
3348 |
|
|
+ The -fstack-protector feature.
|
3349 |
|
|
+ The optimization pass avoiding unnecessary stores of incoming
|
3350 |
|
|
argument registers in functions with variable argument list.
|
3351 |
|
|
|
3352 |
|
|
SPARC
|
3353 |
|
|
|
3354 |
|
|
* The default code model in 64-bit mode has been changed from
|
3355 |
|
|
Medium/Anywhere to Medium/Middle on Solaris.
|
3356 |
|
|
* TLS support is disabled by default on Solaris prior to release 10.
|
3357 |
|
|
It can be enabled on TLS-capable Solaris 9 versions (4/04 release
|
3358 |
|
|
and later) by specifying --enable-tls at configure time.
|
3359 |
|
|
|
3360 |
|
|
MorphoSys
|
3361 |
|
|
|
3362 |
|
|
* Support has been added for this new architecture.
|
3363 |
|
|
|
3364 |
|
|
Obsolete Systems
|
3365 |
|
|
|
3366 |
|
|
Documentation improvements
|
3367 |
|
|
|
3368 |
|
|
Other significant improvements
|
3369 |
|
|
|
3370 |
|
|
* GCC can now emit code for protecting applications from
|
3371 |
|
|
stack-smashing attacks. The protection is realized by buffer
|
3372 |
|
|
overflow detection and reordering of stack variables to avoid
|
3373 |
|
|
pointer corruption.
|
3374 |
|
|
* Some built-in functions have been fortified to protect them against
|
3375 |
|
|
various buffer overflow (and format string) vulnerabilities.
|
3376 |
|
|
Compared to the mudflap bounds checking feature, the safe builtins
|
3377 |
|
|
have far smaller overhead. This means that programs built using
|
3378 |
|
|
safe builtins should not experience any measurable slowdown.
|
3379 |
|
|
|
3380 |
|
|
GCC 4.1.2
|
3381 |
|
|
|
3382 |
|
|
This is the [6]list of problem reports (PRs) from GCC's bug tracking
|
3383 |
|
|
system that are known to be fixed in the 4.1.2 release. This list might
|
3384 |
|
|
not be complete (that is, it is possible that some PRs that have been
|
3385 |
|
|
fixed are not listed here).
|
3386 |
|
|
|
3387 |
|
|
When generating code for a shared library, GCC now recognizes that
|
3388 |
|
|
global functions may be replaced when the program runs. Therefore, it
|
3389 |
|
|
is now more conservative in deducing information from the bodies of
|
3390 |
|
|
functions. For example, in this example:
|
3391 |
|
|
void f() {}
|
3392 |
|
|
void g() {
|
3393 |
|
|
try { f(); }
|
3394 |
|
|
catch (...) {
|
3395 |
|
|
cout << "Exception";
|
3396 |
|
|
}
|
3397 |
|
|
}
|
3398 |
|
|
|
3399 |
|
|
G++ would previously have optimized away the catch clause, since it
|
3400 |
|
|
would have concluded that f cannot throw exceptions. Because users may
|
3401 |
|
|
replace f with another function in the main body of the program, this
|
3402 |
|
|
optimization is unsafe, and is no longer performed. If you wish G++ to
|
3403 |
|
|
continue to optimize as before, you must add a throw() clause to the
|
3404 |
|
|
declaration of f to make clear that it does not throw exceptions.
|
3405 |
|
|
|
3406 |
|
|
Please send FSF & GNU inquiries & questions to [7]gnu@gnu.org. There
|
3407 |
|
|
are also [8]other ways to contact the FSF.
|
3408 |
|
|
|
3409 |
|
|
These pages are [9]maintained by the GCC team.
|
3410 |
|
|
|
3411 |
|
|
|
3412 |
|
|
For questions related to the use of GCC, please consult these web
|
3413 |
|
|
pages and the [10]GCC manuals. If that fails, the
|
3414 |
|
|
[11]gcc-help@gcc.gnu.org mailing list might help.
|
3415 |
|
|
Please send comments on these web pages and the development of GCC to
|
3416 |
|
|
our developer mailing list at [12]gcc@gnu.org or [13]gcc@gcc.gnu.org.
|
3417 |
|
|
All of our lists have [14]public archives.
|
3418 |
|
|
|
3419 |
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth
|
3420 |
|
|
Floor, Boston, MA 02110, USA.
|
3421 |
|
|
|
3422 |
|
|
Verbatim copying and distribution of this entire article is permitted
|
3423 |
|
|
in any medium, provided this notice is preserved.
|
3424 |
|
|
Last modified 2010-07-10 [15]Valid XHTML 1.0
|
3425 |
|
|
|
3426 |
|
|
References
|
3427 |
|
|
|
3428 |
|
|
1. http://gcc.gnu.org/gcc-4.1/changes.html#4.1.2
|
3429 |
|
|
2. http://developer.classpath.org/mediation/ClasspathGraphicsImagesText
|
3430 |
|
|
3. http://gcc.gnu.org/ml/java/2005-05/msg00260.html
|
3431 |
|
|
4. http://developer.classpath.org/doc/
|
3432 |
|
|
5. http://gcc.gnu.org/onlinedocs/gcc-4.1.0/gcc/Atomic-Builtins.html
|
3433 |
|
|
6. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.1.2
|
3434 |
|
|
7. mailto:gnu@gnu.org
|
3435 |
|
|
8. http://www.gnu.org/home.html#ContactInfo
|
3436 |
|
|
9. http://gcc.gnu.org/about.html
|
3437 |
|
|
10. http://gcc.gnu.org/onlinedocs/
|
3438 |
|
|
11. mailto:gcc-help@gcc.gnu.org
|
3439 |
|
|
12. mailto:gcc@gnu.org
|
3440 |
|
|
13. mailto:gcc@gcc.gnu.org
|
3441 |
|
|
14. http://gcc.gnu.org/lists.html
|
3442 |
|
|
15. http://validator.w3.org/check/referer
|
3443 |
|
|
======================================================================
|
3444 |
|
|
http://gcc.gnu.org/gcc-4.0/index.html
|
3445 |
|
|
|
3446 |
|
|
GCC 4.0 Release Series
|
3447 |
|
|
|
3448 |
|
|
January 31, 2007
|
3449 |
|
|
|
3450 |
|
|
The [1]GNU project and the GCC developers are pleased to announce the
|
3451 |
|
|
release of GCC 4.0.4.
|
3452 |
|
|
|
3453 |
|
|
This release is a bug-fix release, containing fixes for regressions in
|
3454 |
|
|
GCC 4.0.3 relative to previous releases of GCC.
|
3455 |
|
|
|
3456 |
|
|
Release History
|
3457 |
|
|
|
3458 |
|
|
GCC 4.0.4
|
3459 |
|
|
January 31, 2007 ([2]changes)
|
3460 |
|
|
|
3461 |
|
|
GCC 4.0.3
|
3462 |
|
|
March 10, 2006 ([3]changes)
|
3463 |
|
|
|
3464 |
|
|
GCC 4.0.2
|
3465 |
|
|
September 28, 2005 ([4]changes)
|
3466 |
|
|
|
3467 |
|
|
GCC 4.0.1
|
3468 |
|
|
July 7, 2005 ([5]changes)
|
3469 |
|
|
|
3470 |
|
|
GCC 4.0.0
|
3471 |
|
|
April 20, 2005 ([6]changes)
|
3472 |
|
|
|
3473 |
|
|
References and Acknowledgements
|
3474 |
|
|
|
3475 |
|
|
GCC used to stand for the GNU C Compiler, but since the compiler
|
3476 |
|
|
supports several other languages aside from C, it now stands for the
|
3477 |
|
|
GNU Compiler Collection.
|
3478 |
|
|
|
3479 |
|
|
A list of [7]successful builds is updated as new information becomes
|
3480 |
|
|
available.
|
3481 |
|
|
|
3482 |
|
|
The GCC developers would like to thank the numerous people that have
|
3483 |
|
|
contributed new features, improvements, bug fixes, and other changes as
|
3484 |
|
|
well as test results to GCC. This [8]amazing group of volunteers is
|
3485 |
|
|
what makes GCC successful.
|
3486 |
|
|
|
3487 |
|
|
For additional information about GCC please refer to the [9]GCC project
|
3488 |
|
|
web site or contact the [10]GCC development mailing list.
|
3489 |
|
|
|
3490 |
|
|
To obtain GCC please use [11]our mirror sites, or [12]our SVN server.
|
3491 |
|
|
|
3492 |
|
|
Please send FSF & GNU inquiries & questions to [13]gnu@gnu.org. There
|
3493 |
|
|
are also [14]other ways to contact the FSF.
|
3494 |
|
|
|
3495 |
|
|
These pages are [15]maintained by the GCC team.
|
3496 |
|
|
|
3497 |
|
|
|
3498 |
|
|
For questions related to the use of GCC, please consult these web
|
3499 |
|
|
pages and the [16]GCC manuals. If that fails, the
|
3500 |
|
|
[17]gcc-help@gcc.gnu.org mailing list might help.
|
3501 |
|
|
Please send comments on these web pages and the development of GCC to
|
3502 |
|
|
our developer mailing list at [18]gcc@gnu.org or [19]gcc@gcc.gnu.org.
|
3503 |
|
|
All of our lists have [20]public archives.
|
3504 |
|
|
|
3505 |
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth
|
3506 |
|
|
Floor, Boston, MA 02110, USA.
|
3507 |
|
|
|
3508 |
|
|
Verbatim copying and distribution of this entire article is permitted
|
3509 |
|
|
in any medium, provided this notice is preserved.
|
3510 |
|
|
Last modified 2010-07-01 [21]Valid XHTML 1.0
|
3511 |
|
|
|
3512 |
|
|
References
|
3513 |
|
|
|
3514 |
|
|
1. http://www.gnu.org/
|
3515 |
|
|
2. http://gcc.gnu.org/gcc-4.0/changes.html#4.0.4
|
3516 |
|
|
3. http://gcc.gnu.org/gcc-4.0/changes.html#4.0.3
|
3517 |
|
|
4. http://gcc.gnu.org/gcc-4.0/changes.html#4.0.2
|
3518 |
|
|
5. http://gcc.gnu.org/gcc-4.0/changes.html#4.0.1
|
3519 |
|
|
6. http://gcc.gnu.org/gcc-4.0/changes.html
|
3520 |
|
|
7. http://gcc.gnu.org/gcc-4.0/buildstat.html
|
3521 |
|
|
8. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
|
3522 |
|
|
9. http://gcc.gnu.org/index.html
|
3523 |
|
|
10. mailto:gcc@gcc.gnu.org
|
3524 |
|
|
11. http://gcc.gnu.org/mirrors.html
|
3525 |
|
|
12. http://gcc.gnu.org/svn.html
|
3526 |
|
|
13. mailto:gnu@gnu.org
|
3527 |
|
|
14. http://www.gnu.org/home.html#ContactInfo
|
3528 |
|
|
15. http://gcc.gnu.org/about.html
|
3529 |
|
|
16. http://gcc.gnu.org/onlinedocs/
|
3530 |
|
|
17. mailto:gcc-help@gcc.gnu.org
|
3531 |
|
|
18. mailto:gcc@gnu.org
|
3532 |
|
|
19. mailto:gcc@gcc.gnu.org
|
3533 |
|
|
20. http://gcc.gnu.org/lists.html
|
3534 |
|
|
21. http://validator.w3.org/check/referer
|
3535 |
|
|
======================================================================
|
3536 |
|
|
http://gcc.gnu.org/gcc-4.0/changes.html
|
3537 |
|
|
|
3538 |
|
|
GCC 4.0 Release Series
|
3539 |
|
|
Changes, New Features, and Fixes
|
3540 |
|
|
|
3541 |
|
|
The latest release in the 4.0 release series is [1]GCC 4.0.4.
|
3542 |
|
|
|
3543 |
|
|
Caveats
|
3544 |
|
|
|
3545 |
|
|
* GCC now generates location lists by default when compiling with
|
3546 |
|
|
debug info and optimization.
|
3547 |
|
|
+ GDB 6.0 and older crashes when it sees location lists. GDB 6.1
|
3548 |
|
|
or later is needed to debug binaries containing location
|
3549 |
|
|
lists.
|
3550 |
|
|
+ When you are trying to view a value of a variable in a part of
|
3551 |
|
|
a function where it has no location (for example when the
|
3552 |
|
|
variable is no longer used and thus its location was used for
|
3553 |
|
|
something else) GDB will say that it is not available.
|
3554 |
|
|
You can disable generating location lists by -fno-var-tracking.
|
3555 |
|
|
* GCC no longer accepts the -fwritable-strings option. Use named
|
3556 |
|
|
character arrays when you need a writable string.
|
3557 |
|
|
* The options -freduce-all-givs and -fmove-all-movables have been
|
3558 |
|
|
discontinued. They were used to circumvent a shortcoming in the
|
3559 |
|
|
heuristics of the old loop optimization code with respect to common
|
3560 |
|
|
Fortran constructs. The new (tree) loop optimizer works differently
|
3561 |
|
|
and doesn't need those work-arounds.
|
3562 |
|
|
* The graph-coloring register allocator, formerly enabled by the
|
3563 |
|
|
option -fnew-ra, has been discontinued.
|
3564 |
|
|
* -I- has been deprecated. -iquote is meant to replace the need for
|
3565 |
|
|
this option.
|
3566 |
|
|
* The MIPS -membedded-pic and -mrnames options have been removed.
|
3567 |
|
|
* All MIPS targets now require the GNU assembler. In particular, IRIX
|
3568 |
|
|
configurations can no longer use the MIPSpro assemblers, although
|
3569 |
|
|
they do still support the MIPSpro linkers.
|
3570 |
|
|
* The SPARC option -mflat has been removed.
|
3571 |
|
|
* English-language diagnostic messages will now use Unicode quotation
|
3572 |
|
|
marks in UTF-8 locales. (Non-English messages already used the
|
3573 |
|
|
quotes appropriate for the language in previous releases.) If your
|
3574 |
|
|
terminal does not support UTF-8 but you are using a UTF-8 locale
|
3575 |
|
|
(such locales are the default on many GNU/Linux systems) then you
|
3576 |
|
|
should set LC_CTYPE=C in the environment to disable that locale.
|
3577 |
|
|
Programs that parse diagnostics and expect plain ASCII
|
3578 |
|
|
English-language messages should set LC_ALL=C. See [2]Markus Kuhn's
|
3579 |
|
|
explanation of Unicode quotation marks for more information.
|
3580 |
|
|
* The specs file is no longer installed on most platforms. Most users
|
3581 |
|
|
will be totally unaffected. However, if you are accustomed to
|
3582 |
|
|
editing the specs file yourself, you will now have to use the
|
3583 |
|
|
-dumpspecs option to generate the specs file, and then edit the
|
3584 |
|
|
resulting file.
|
3585 |
|
|
|
3586 |
|
|
General Optimizer Improvements
|
3587 |
|
|
|
3588 |
|
|
* The [3]tree ssa branch has been merged. This merge has brought in a
|
3589 |
|
|
completely new optimization framework based on a higher level
|
3590 |
|
|
intermediate representation than the existing RTL representation.
|
3591 |
|
|
Numerous new code transformations based on the new framework are
|
3592 |
|
|
available in GCC 4.0, including:
|
3593 |
|
|
+ Scalar replacement of aggregates
|
3594 |
|
|
+ Constant propagation
|
3595 |
|
|
+ Value range propagation
|
3596 |
|
|
+ Partial redundancy elimination
|
3597 |
|
|
+ Load and store motion
|
3598 |
|
|
+ Strength reduction
|
3599 |
|
|
+ Dead store elimination
|
3600 |
|
|
+ Dead and unreachable code elimination
|
3601 |
|
|
+ [4]Autovectorization
|
3602 |
|
|
+ Loop interchange
|
3603 |
|
|
+ Tail recursion by accumulation
|
3604 |
|
|
Many of these passes outperform their counterparts from previous
|
3605 |
|
|
GCC releases.
|
3606 |
|
|
* [5]Swing Modulo Scheduling (SMS). An RTL level instruction
|
3607 |
|
|
scheduling optimization intended for loops that perform heavy
|
3608 |
|
|
computations.
|
3609 |
|
|
|
3610 |
|
|
New Languages and Language specific improvements
|
3611 |
|
|
|
3612 |
|
|
C family
|
3613 |
|
|
|
3614 |
|
|
* The sentinel attribute has been added to GCC. This function
|
3615 |
|
|
attribute allows GCC to warn when variadic functions such as execl
|
3616 |
|
|
are not NULL terminated. See the GCC manual for a complete
|
3617 |
|
|
description of its behavior.
|
3618 |
|
|
* Given __attribute__((alias("target"))) it is now an error if target
|
3619 |
|
|
is not a symbol, defined in the same translation unit. This also
|
3620 |
|
|
applies to aliases created by #pragma weak alias=target. This is
|
3621 |
|
|
because it's meaningless to define an alias to an undefined symbol.
|
3622 |
|
|
On Solaris, the native assembler would have caught this error, but
|
3623 |
|
|
GNU as does not.
|
3624 |
|
|
|
3625 |
|
|
C and Objective-C
|
3626 |
|
|
|
3627 |
|
|
* The -Wstrict-aliasing=2 option has been added. This warning catches
|
3628 |
|
|
all unsafe cases, but it may also give a warning for some cases
|
3629 |
|
|
that are safe.
|
3630 |
|
|
* The cast-as-lvalue, conditional-expression-as-lvalue and
|
3631 |
|
|
compound-expression-as-lvalue extensions, which were deprecated in
|
3632 |
|
|
3.3.4 and 3.4, have been removed.
|
3633 |
|
|
* The -fwritable-strings option, which was deprecated in 3.4, has
|
3634 |
|
|
been removed.
|
3635 |
|
|
* #pragma pack() semantics have been brought closer to those used by
|
3636 |
|
|
other compilers. This also applies to C++.
|
3637 |
|
|
* Taking the address of a variable with register storage is invalid
|
3638 |
|
|
in C. GCC now issues an error instead of a warning.
|
3639 |
|
|
* Arrays of incomplete element type are invalid in C. GCC now issues
|
3640 |
|
|
an error for such arrays. Declarations such as extern struct s x[];
|
3641 |
|
|
(where struct s has not been defined) can be moved after the
|
3642 |
|
|
definition of struct s. Function parameters declared as arrays of
|
3643 |
|
|
incomplete type can instead be declared as pointers.
|
3644 |
|
|
|
3645 |
|
|
C++
|
3646 |
|
|
|
3647 |
|
|
* When compiling without optimizations (-O0), the C++ frontend is
|
3648 |
|
|
much faster than in any previous versions of GCC. Independent
|
3649 |
|
|
testers have measured speed-ups up to 25% in real-world production
|
3650 |
|
|
code, compared to the 3.4 family (which was already the fastest
|
3651 |
|
|
version to date). Upgrading from older versions might show even
|
3652 |
|
|
bigger improvements.
|
3653 |
|
|
* ELF visibility attributes can now be applied to a class type, so
|
3654 |
|
|
that it affects every member function of a class at once, without
|
3655 |
|
|
having to specify each individually:
|
3656 |
|
|
class __attribute__ ((visibility("hidden"))) Foo
|
3657 |
|
|
{
|
3658 |
|
|
int foo1();
|
3659 |
|
|
void foo2();
|
3660 |
|
|
};
|
3661 |
|
|
The syntax is deliberately similar to the __declspec() system used
|
3662 |
|
|
by Microsoft Windows based compilers, allowing cross-platform
|
3663 |
|
|
projects to easily reuse their existing macro system for denoting
|
3664 |
|
|
exports and imports. By explicitly marking internal classes never
|
3665 |
|
|
used outside a binary as hidden, one can completely avoid PLT
|
3666 |
|
|
indirection overheads during their usage by the compiler. You can
|
3667 |
|
|
find out more about the advantages of this at
|
3668 |
|
|
[6]http://people.redhat.com/drepper/dsohowto.pdf
|
3669 |
|
|
* The -fvisibility-inlines-hidden option has been added which marks
|
3670 |
|
|
all inlineable functions as having hidden ELF visibility, thus
|
3671 |
|
|
removing their symbol and typeinfo from the exported symbol table
|
3672 |
|
|
of the output ELF binary. Using this option can reduce the exported
|
3673 |
|
|
symbol count of template-heavy code by up to 40% with no code
|
3674 |
|
|
change at all, thus notably improving link and load times for the
|
3675 |
|
|
binary as well as a reduction in size of up to 10%. Also, check the
|
3676 |
|
|
new [7]-fvisibility option.
|
3677 |
|
|
* The compiler now uses the library interface specified by the [8]C++
|
3678 |
|
|
ABI for thread-safe initialization of function-scope static
|
3679 |
|
|
variables. Most users should leave this alone, but embedded
|
3680 |
|
|
programmers may want to disable this by specifying
|
3681 |
|
|
-fno-threadsafe-statics for a small savings in code size.
|
3682 |
|
|
* Taking the address of an explicit register variable is no longer
|
3683 |
|
|
supported. Note that C++ allows taking the address of variables
|
3684 |
|
|
with register storage so this will continue to compile with a
|
3685 |
|
|
warning. For example, assuming that r0 is a machine register:
|
3686 |
|
|
register int foo asm ("r0");
|
3687 |
|
|
register int bar;
|
3688 |
|
|
&foo; // error, no longer accepted
|
3689 |
|
|
&bar; // OK, with a warning
|
3690 |
|
|
* G++ has an undocumented extension to virtual function covariancy
|
3691 |
|
|
rules that allowed the overrider to return a type that was
|
3692 |
|
|
implicitly convertable to the overridden function's return type.
|
3693 |
|
|
For instance a function returning void * could be overridden by a
|
3694 |
|
|
function returning T *. This is now deprecated and will be removed
|
3695 |
|
|
in a future release.
|
3696 |
|
|
* The G++ minimum and maximum operators ( and >?) and their
|
3697 |
|
|
compound forms (=) and >?=) have been deprecated and will be
|
3698 |
|
|
removed in a future version. Code using these operators should be
|
3699 |
|
|
modified to use std::min and std::max instead.
|
3700 |
|
|
* Declaration of nested classes of class templates as friends are
|
3701 |
|
|
supported:
|
3702 |
|
|
template struct A {
|
3703 |
|
|
class B {};
|
3704 |
|
|
};
|
3705 |
|
|
class C {
|
3706 |
|
|
template friend class A::B;
|
3707 |
|
|
};
|
3708 |
|
|
This complements the feature member functions of class templates as
|
3709 |
|
|
friends introduced in GCC 3.4.0.
|
3710 |
|
|
* When declaring a friend class using an unqualified name, classes
|
3711 |
|
|
outside the innermost non-class scope are not searched:
|
3712 |
|
|
class A;
|
3713 |
|
|
namespace N {
|
3714 |
|
|
class B {
|
3715 |
|
|
friend class A; // Refer to N::A which has not been declared yet
|
3716 |
|
|
// because name outside namespace N are not searched
|
3717 |
|
|
friend class ::A; // Refer to ::A
|
3718 |
|
|
};
|
3719 |
|
|
}
|
3720 |
|
|
Hiding the friend name until declaration is still not implemented.
|
3721 |
|
|
* Friends of classes defined outside their namespace are correctly
|
3722 |
|
|
handled:
|
3723 |
|
|
namespace N {
|
3724 |
|
|
class A;
|
3725 |
|
|
}
|
3726 |
|
|
class N::A {
|
3727 |
|
|
friend class B; // Refer to N::B in GCC 4.0.0
|
3728 |
|
|
// but ::B in earlier versions of GCC
|
3729 |
|
|
};
|
3730 |
|
|
|
3731 |
|
|
Runtime Library (libstdc++)
|
3732 |
|
|
|
3733 |
|
|
* Optimization work:
|
3734 |
|
|
+ Added efficient specializations of istream functions for char
|
3735 |
|
|
and wchar_t.
|
3736 |
|
|
+ Further performance tuning of strings, in particular wrt
|
3737 |
|
|
single-char append and getline.
|
3738 |
|
|
+ iter_swap - and therefore most of the mutating algorithms -
|
3739 |
|
|
now makes an unqualified call to swap when the value_type of
|
3740 |
|
|
the two iterators is the same.
|
3741 |
|
|
* A large subset of the features in Technical Report 1 (TR1 for
|
3742 |
|
|
short) is experimentally delivered (i.e., no guarantees about the
|
3743 |
|
|
implementation are provided. In particular it is not promised that
|
3744 |
|
|
the library will remain link-compatible when code using TR1 is
|
3745 |
|
|
used):
|
3746 |
|
|
+ General utilities such as reference_wrapper and shared_ptr.
|
3747 |
|
|
+ Function objects, i.e., result_of, mem_fn, bind, function.
|
3748 |
|
|
+ Support for metaprogramming.
|
3749 |
|
|
+ New containers such as tuple, array, unordered_set,
|
3750 |
|
|
unordered_map, unordered_multiset, unordered_multimap.
|
3751 |
|
|
* As usual, many bugs have been fixed and LWG resolutions implemented
|
3752 |
|
|
for the first time (e.g., DR 409).
|
3753 |
|
|
|
3754 |
|
|
Java
|
3755 |
|
|
|
3756 |
|
|
* In order to prevent naming conflicts with other implementations of
|
3757 |
|
|
these tools, some GCJ binaries have been renamed:
|
3758 |
|
|
+ rmic is now grmic,
|
3759 |
|
|
+ rmiregistry is now grmiregistry, and
|
3760 |
|
|
+ jar is now fastjar.
|
3761 |
|
|
In particular, these names were problematic for the jpackage.org
|
3762 |
|
|
packaging conventions which install symlinks in /usr/bin that point
|
3763 |
|
|
to the preferred versions of these tools.
|
3764 |
|
|
* The -findirect-dispatch argument to the compiler now works and
|
3765 |
|
|
generates code following a new "binary compatibility" ABI. Code
|
3766 |
|
|
compiled this way follows the binary compatibility rules of the
|
3767 |
|
|
Java Language Specification.
|
3768 |
|
|
* libgcj now has support for using GCJ as a JIT, using the
|
3769 |
|
|
gnu.gcj.jit family of system properties.
|
3770 |
|
|
* libgcj can now find a shared library corresponding to the bytecode
|
3771 |
|
|
representation of a class. See the documentation for the new
|
3772 |
|
|
gcj-dbtool program, and the new gnu.gcj.precompiled.db.path system
|
3773 |
|
|
property.
|
3774 |
|
|
* There have been many improvements to the class library. Here are
|
3775 |
|
|
some highlights:
|
3776 |
|
|
+ Much more of AWT and Swing exist.
|
3777 |
|
|
+ Many new packages and classes were added, including
|
3778 |
|
|
java.util.regex, java.net.URI, javax.crypto,
|
3779 |
|
|
javax.crypto.interfaces, javax.crypto.spec, javax.net,
|
3780 |
|
|
javax.net.ssl, javax.security.auth,
|
3781 |
|
|
javax.security.auth.callback, javax.security.auth.login,
|
3782 |
|
|
javax.security.auth.x500, javax.security.sasl, org.ietf.jgss,
|
3783 |
|
|
javax.imageio, javax.imageio.event, javax.imageio.spi,
|
3784 |
|
|
javax.print, javax.print.attribute,
|
3785 |
|
|
javax.print.attribute.standard, javax.print.event, and
|
3786 |
|
|
javax.xml
|
3787 |
|
|
+ Updated SAX and DOM, and imported GNU JAXP
|
3788 |
|
|
|
3789 |
|
|
Fortran
|
3790 |
|
|
|
3791 |
|
|
* A new [9]Fortran front end has replaced the aging GNU Fortran 77
|
3792 |
|
|
front end. The new front end supports Fortran 90 and Fortran 95. It
|
3793 |
|
|
may not yet be as stable as the old Fortran front end.
|
3794 |
|
|
|
3795 |
|
|
Ada
|
3796 |
|
|
|
3797 |
|
|
* Ada (with tasking and Zero Cost Exceptions) is now available on
|
3798 |
|
|
many more targets, including but not limited to: alpha-linux,
|
3799 |
|
|
hppa-hpux, hppa-linux, powerpc-darwin, powerpc-linux, s390-linux,
|
3800 |
|
|
s390x-linux, sparc-linux.
|
3801 |
|
|
* Some of the new Ada 2005 features are now implemented like
|
3802 |
|
|
Wide_Wide_Character and Ada.Containers.
|
3803 |
|
|
* Many bugs have been fixed, tools and documentation improved.
|
3804 |
|
|
* To compile Ada from the sources, install an older working Ada
|
3805 |
|
|
compiler and then use --enable-languages=ada at configuration time,
|
3806 |
|
|
since the Ada frontend is not currently activated by default. See
|
3807 |
|
|
the [10]Installing GCC for details.
|
3808 |
|
|
|
3809 |
|
|
New Targets and Target Specific Improvements
|
3810 |
|
|
|
3811 |
|
|
H8/300
|
3812 |
|
|
|
3813 |
|
|
* The frame layout has changed. In the new layout, the prologue of a
|
3814 |
|
|
function first saves registers and then allocate space for locals,
|
3815 |
|
|
resulting in an 1% improvement on code size.
|
3816 |
|
|
|
3817 |
|
|
IA-32/x86-64 (AMD64)
|
3818 |
|
|
|
3819 |
|
|
* The acos, asin, drem, exp10, exp2, expm1, fmod, ilogb, log10,
|
3820 |
|
|
log1p, log2, logb and tan mathematical builtins (and their float
|
3821 |
|
|
and long double variants) are now implemented as inline x87
|
3822 |
|
|
intrinsics when using -ffast-math.
|
3823 |
|
|
* The ceil, floor, nearbyint, rint and trunc mathematical builtins
|
3824 |
|
|
(and their float and long double variants) are now implemented as
|
3825 |
|
|
inline x87 intrinsics when using -ffast-math.
|
3826 |
|
|
* The x87's fsincos instruction is now used automatically with
|
3827 |
|
|
-ffast-math when calculating both the sin and cos of the same
|
3828 |
|
|
argument.
|
3829 |
|
|
* Instruction selection for multiplication and division by constants
|
3830 |
|
|
has been improved.
|
3831 |
|
|
|
3832 |
|
|
IA-64
|
3833 |
|
|
|
3834 |
|
|
* Floating point division, integer division and sqrt are now inlined,
|
3835 |
|
|
resulting in significant performance improvements on some codes.
|
3836 |
|
|
|
3837 |
|
|
MIPS
|
3838 |
|
|
|
3839 |
|
|
* Division by zero checks now use conditional traps if the target
|
3840 |
|
|
processor supports them. This decreases code size by one word per
|
3841 |
|
|
division operation. The old behavior (branch and break) can be
|
3842 |
|
|
obtained either at configure time by passing --with-divide=breaks
|
3843 |
|
|
to configure or at runtime by passing -mdivide-breaks to GCC.
|
3844 |
|
|
* Support for MIPS64 paired-single instructions has been added. It is
|
3845 |
|
|
enabled by -mpaired-single and can be accessed using both the
|
3846 |
|
|
target-independent vector extensions and new MIPS-specific built-in
|
3847 |
|
|
functions.
|
3848 |
|
|
* Support for the MIPS-3D ASE has been added. It is enabled by
|
3849 |
|
|
-mips3d and provides new MIPS-3D-specific built-in functions.
|
3850 |
|
|
* The -mexplicit-relocs option now supports static n64 code (as is
|
3851 |
|
|
used, for example, in 64-bit linux kernels). -mexplicit-relocs
|
3852 |
|
|
should now be feature-complete and is enabled by default when GCC
|
3853 |
|
|
is configured to use a compatible assembler.
|
3854 |
|
|
* Support for the NEC VR4130 series has been added. This support
|
3855 |
|
|
includes the use of VR-specific instructions and a new VR4130
|
3856 |
|
|
scheduler. Full VR4130 support can be selected with -march=vr4130
|
3857 |
|
|
while code for any ISA can be tuned for the VR4130 using
|
3858 |
|
|
-mtune=vr4130. There is also a new -mvr4130-align option that
|
3859 |
|
|
produces better schedules at the cost of increased code size.
|
3860 |
|
|
* Support for the Broadcom SB-1 has been extended. There is now an
|
3861 |
|
|
SB-1 scheduler as well as support for the SB-1-specific
|
3862 |
|
|
paired-single instructions. Full SB-1 support can be selected with
|
3863 |
|
|
-march=sb1 while code for any ISA can be optimized for the SB-1
|
3864 |
|
|
using -mtune=sb1.
|
3865 |
|
|
* The compiler can now work around errata in R4000, R4400, VR4120 and
|
3866 |
|
|
VR4130 processors. These workarounds are enabled by -mfix-r4000,
|
3867 |
|
|
-mfix-r4400, -mfix-vr4120 and -mfix-vr4130 respectively. The VR4120
|
3868 |
|
|
and VR4130 workarounds need binutils 2.16 or above.
|
3869 |
|
|
* IRIX shared libraries are now installed into the standard library
|
3870 |
|
|
directories: o32 libraries go into lib/, n32 libraries go into
|
3871 |
|
|
lib32/ and n64 libraries go into lib64/.
|
3872 |
|
|
* The compiler supports a new -msym32 option. It can be used to
|
3873 |
|
|
optimize n64 code in which all symbols are known to have 32-bit
|
3874 |
|
|
values.
|
3875 |
|
|
|
3876 |
|
|
S/390 and zSeries
|
3877 |
|
|
|
3878 |
|
|
* New command-line options help to generate code intended to run in
|
3879 |
|
|
an environment where stack space is restricted, e.g. Linux kernel
|
3880 |
|
|
code:
|
3881 |
|
|
+ -mwarn-framesize and -mwarn-dynamicstack trigger compile-time
|
3882 |
|
|
warnings for single functions that require large or dynamic
|
3883 |
|
|
stack frames.
|
3884 |
|
|
+ -mstack-size and -mstack-guard generate code that checks for
|
3885 |
|
|
stack overflow at run time.
|
3886 |
|
|
+ -mpacked-stack generates code that reduces the stack frame
|
3887 |
|
|
size of many functions by reusing unneeded parts of the stack
|
3888 |
|
|
bias area.
|
3889 |
|
|
* The -msoft-float option now ensures that generated code never
|
3890 |
|
|
accesses floating point registers.
|
3891 |
|
|
* The s390x-ibm-tpf target now fully supports C++, including
|
3892 |
|
|
exceptions and threads.
|
3893 |
|
|
* Various changes to improve performance of the generated code have
|
3894 |
|
|
been implemented, including:
|
3895 |
|
|
+ GCC now uses sibling calls where possible.
|
3896 |
|
|
+ Condition code handling has been optimized, allowing GCC to
|
3897 |
|
|
omit redundant comparisons in certain cases.
|
3898 |
|
|
+ The cost function guiding many optimizations has been refined
|
3899 |
|
|
to more accurately represent the z900 and z990 processors.
|
3900 |
|
|
+ The ADD LOGICAL WITH CARRY and SUBTRACT LOGICAL WITH BORROW
|
3901 |
|
|
instructions are now used to avoid conditional branches in
|
3902 |
|
|
certain cases.
|
3903 |
|
|
+ The back end now uses the LEGITIMIZE_RELOAD_ADDRESS feature to
|
3904 |
|
|
optimize address arithmetic required to access large stack
|
3905 |
|
|
frames.
|
3906 |
|
|
+ GCC now makes more efficient use of memory-to-memory type
|
3907 |
|
|
instructions (MVC, CLC, ...).
|
3908 |
|
|
+ More precise tracking of special register use allows better
|
3909 |
|
|
instruction scheduling, in particular of the function prologue
|
3910 |
|
|
and epilogue sequences.
|
3911 |
|
|
+ The Java front end now generates inline code to implement
|
3912 |
|
|
integer division, instead of calling library routines.
|
3913 |
|
|
|
3914 |
|
|
SPARC
|
3915 |
|
|
|
3916 |
|
|
* The options -mv8, -msparclite, -mcypress, -msupersparc, -mf930 and
|
3917 |
|
|
-mf934 have been removed. They have been replaced with -mcpu=xxx.
|
3918 |
|
|
* The internal model used to estimate the relative cost of each
|
3919 |
|
|
instruction has been updated. It is expected to give better results
|
3920 |
|
|
on recent UltraSPARC processors.
|
3921 |
|
|
* Code generation for function prologues and epilogues has been
|
3922 |
|
|
improved, resulting in better scheduling and allowing multiple exit
|
3923 |
|
|
points in functions.
|
3924 |
|
|
* Support for Sun's Visual Instruction Set (VIS) has been enhanced.
|
3925 |
|
|
It is enabled by -mvis and provides new built-in functions for VIS
|
3926 |
|
|
instructions on UltraSPARC processors.
|
3927 |
|
|
* The option -mapp-regs has been turned on by default on Solaris too.
|
3928 |
|
|
|
3929 |
|
|
NetWare
|
3930 |
|
|
|
3931 |
|
|
* Novell NetWare (on ix86, no other hardware platform was ever really
|
3932 |
|
|
supported by this OS) has been re-enabled and the ABI supported by
|
3933 |
|
|
GCC has been brought into sync with that of MetroWerks CodeWarrior
|
3934 |
|
|
(the ABI previously supported was that of some Unix systems, which
|
3935 |
|
|
NetWare never tried to support).
|
3936 |
|
|
|
3937 |
|
|
Obsolete Systems
|
3938 |
|
|
|
3939 |
|
|
Support for a number of older systems has been declared obsolete in GCC
|
3940 |
|
|
4.0. Unless there is activity to revive them, the next release of GCC
|
3941 |
|
|
will have their sources permanently removed.
|
3942 |
|
|
|
3943 |
|
|
All GCC ports for the following processor architectures have been
|
3944 |
|
|
declared obsolete:
|
3945 |
|
|
* Intel i860
|
3946 |
|
|
* Ubicom IP2022
|
3947 |
|
|
* National Semiconductor NS32K
|
3948 |
|
|
* Texas Instruments TMS320C[34]x
|
3949 |
|
|
|
3950 |
|
|
Also, those for some individual systems have been obsoleted:
|
3951 |
|
|
* SPARC family
|
3952 |
|
|
+ SPARClite-based systems (sparclite-*-coff, sparclite-*-elf,
|
3953 |
|
|
sparc86x-*-elf)
|
3954 |
|
|
+ OpenBSD 32-bit (sparc-*-openbsd*)
|
3955 |
|
|
|
3956 |
|
|
Documentation improvements
|
3957 |
|
|
|
3958 |
|
|
Other significant improvements
|
3959 |
|
|
|
3960 |
|
|
* Location lists are now generated by default when compiling with
|
3961 |
|
|
debug info and optimization. Location lists provide more accurate
|
3962 |
|
|
debug info about locations of variables and they allow debugging
|
3963 |
|
|
code compiled with -fomit-frame-pointer.
|
3964 |
|
|
* The -fvisibility option has been added which allows the default ELF
|
3965 |
|
|
visibility of all symbols to be set per compilation and the new
|
3966 |
|
|
#pragma GCC visibility preprocessor command allows the setting of
|
3967 |
|
|
default ELF visibility for a region of code. Using
|
3968 |
|
|
-fvisibility=hidden especially in combination with the new
|
3969 |
|
|
-fvisibility-inlines-hidden can yield substantial improvements in
|
3970 |
|
|
output binary quality including avoiding PLT indirection overheads,
|
3971 |
|
|
reduction of the exported symbol count by up to 60% (with resultant
|
3972 |
|
|
improvements to link and load times), better scope for the
|
3973 |
|
|
optimizer to improve code and up to a 20% reduction in binary size.
|
3974 |
|
|
Using these options correctly yields a binary with a similar symbol
|
3975 |
|
|
count to a Windows DLL.
|
3976 |
|
|
Perhaps more importantly, this new feature finally allows (with
|
3977 |
|
|
careful planning) complete avoidance of symbol clashes when
|
3978 |
|
|
manually loading shared objects with RTLD_GLOBAL, thus finally
|
3979 |
|
|
solving problems many projects such as python were forced to use
|
3980 |
|
|
RTLD_LOCAL for (with its resulting issues for C++ correctness). You
|
3981 |
|
|
can find more information about using these options at
|
3982 |
|
|
[11]http://gcc.gnu.org/wiki/Visibility.
|
3983 |
|
|
__________________________________________________________________
|
3984 |
|
|
|
3985 |
|
|
GCC 4.0.1
|
3986 |
|
|
|
3987 |
|
|
This is the [12]list of problem reports (PRs) from GCC's bug tracking
|
3988 |
|
|
system that are known to be fixed in the 4.0.1 release. This list might
|
3989 |
|
|
not be complete (that is, it is possible that some PRs that have been
|
3990 |
|
|
fixed are not listed here).
|
3991 |
|
|
|
3992 |
|
|
GCC 4.0.2
|
3993 |
|
|
|
3994 |
|
|
This is the [13]list of problem reports (PRs) from GCC's bug tracking
|
3995 |
|
|
system that are known to be fixed in the 4.0.2 release. This list might
|
3996 |
|
|
not be complete (that is, it is possible that some PRs that have been
|
3997 |
|
|
fixed are not listed here).
|
3998 |
|
|
|
3999 |
|
|
Unfortunately, due to a release engineering failure, this release has a
|
4000 |
|
|
regression on Solaris that will affect some C++ programs. We suggest
|
4001 |
|
|
that Solaris users apply a [14]patch that corrects the problem. Users
|
4002 |
|
|
who do not wish to apply the patch should explicitly link C++ programs
|
4003 |
|
|
with the -pthreads option, even if they do not use threads. This
|
4004 |
|
|
problem has been corrected in the current 4.0 branch sources and will
|
4005 |
|
|
not be present in GCC 4.0.3.
|
4006 |
|
|
|
4007 |
|
|
GCC 4.0.3
|
4008 |
|
|
|
4009 |
|
|
Starting with this release, the function getcontext is recognized by
|
4010 |
|
|
the compiler as having the same semantics as the setjmp function. In
|
4011 |
|
|
particular, the compiler will ensure that all registers are dead before
|
4012 |
|
|
calling such a function and will emit a warning about the variables
|
4013 |
|
|
that may be clobbered after the second return from the function.
|
4014 |
|
|
|
4015 |
|
|
GCC 4.0.4
|
4016 |
|
|
|
4017 |
|
|
This is the [15]list of problem reports (PRs) from GCC's bug tracking
|
4018 |
|
|
system that are known to be fixed in the 4.0.4 release. This list might
|
4019 |
|
|
not be complete (that is, it is possible that some PRs that have been
|
4020 |
|
|
fixed are not listed here).
|
4021 |
|
|
|
4022 |
|
|
The 4.0.4 release is provided for those that require a high degree of
|
4023 |
|
|
binary compatibility with previous 4.0.x releases. For most users, the
|
4024 |
|
|
GCC team recommends that version 4.1.1 or later be used instead."
|
4025 |
|
|
|
4026 |
|
|
Please send FSF & GNU inquiries & questions to [16]gnu@gnu.org. There
|
4027 |
|
|
are also [17]other ways to contact the FSF.
|
4028 |
|
|
|
4029 |
|
|
These pages are [18]maintained by the GCC team.
|
4030 |
|
|
|
4031 |
|
|
|
4032 |
|
|
For questions related to the use of GCC, please consult these web
|
4033 |
|
|
pages and the [19]GCC manuals. If that fails, the
|
4034 |
|
|
[20]gcc-help@gcc.gnu.org mailing list might help.
|
4035 |
|
|
Please send comments on these web pages and the development of GCC to
|
4036 |
|
|
our developer mailing list at [21]gcc@gnu.org or [22]gcc@gcc.gnu.org.
|
4037 |
|
|
All of our lists have [23]public archives.
|
4038 |
|
|
|
4039 |
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth
|
4040 |
|
|
Floor, Boston, MA 02110, USA.
|
4041 |
|
|
|
4042 |
|
|
Verbatim copying and distribution of this entire article is permitted
|
4043 |
|
|
in any medium, provided this notice is preserved.
|
4044 |
|
|
Last modified 2010-07-10 [24]Valid XHTML 1.0
|
4045 |
|
|
|
4046 |
|
|
References
|
4047 |
|
|
|
4048 |
|
|
1. http://gcc.gnu.org/gcc-4.0/changes.html#4.0.4
|
4049 |
|
|
2. http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
|
4050 |
|
|
3. http://gcc.gnu.org/projects/tree-ssa/
|
4051 |
|
|
4. http://gcc.gnu.org/projects/tree-ssa/vectorization.html
|
4052 |
|
|
5. http://gcc.gnu.org/news/sms.html
|
4053 |
|
|
6. http://people.redhat.com/drepper/dsohowto.pdf
|
4054 |
|
|
7. http://gcc.gnu.org/gcc-4.0/changes.html#visibility
|
4055 |
|
|
8. http://www.codesourcery.com/public/cxx-abi/
|
4056 |
|
|
9. http://gcc.gnu.org/fortran/
|
4057 |
|
|
10. http://gcc.gnu.org/install/
|
4058 |
|
|
11. http://gcc.gnu.org/wiki/Visibility
|
4059 |
|
|
12. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.0.1
|
4060 |
|
|
13. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.0.2
|
4061 |
|
|
14. http://gcc.gnu.org/ml/gcc-cvs/2005-09/msg00984.html
|
4062 |
|
|
15. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.0.4
|
4063 |
|
|
16. mailto:gnu@gnu.org
|
4064 |
|
|
17. http://www.gnu.org/home.html#ContactInfo
|
4065 |
|
|
18. http://gcc.gnu.org/about.html
|
4066 |
|
|
19. http://gcc.gnu.org/onlinedocs/
|
4067 |
|
|
20. mailto:gcc-help@gcc.gnu.org
|
4068 |
|
|
21. mailto:gcc@gnu.org
|
4069 |
|
|
22. mailto:gcc@gcc.gnu.org
|
4070 |
|
|
23. http://gcc.gnu.org/lists.html
|
4071 |
|
|
24. http://validator.w3.org/check/referer
|
4072 |
|
|
======================================================================
|
4073 |
|
|
http://gcc.gnu.org/gcc-3.4/index.html
|
4074 |
|
|
|
4075 |
|
|
GCC 3.4 Release Series
|
4076 |
|
|
|
4077 |
|
|
May 26, 2006
|
4078 |
|
|
|
4079 |
|
|
The [1]GNU project and the GCC developers are pleased to announce the
|
4080 |
|
|
release of GCC 3.4.6.
|
4081 |
|
|
|
4082 |
|
|
This release is a bug-fix release, containing fixes for regressions in
|
4083 |
|
|
GCC 3.4.4 relative to previous releases of GCC. This is the last of the
|
4084 |
|
|
3.4.x series.
|
4085 |
|
|
|
4086 |
|
|
The GCC 3.4 release series includes numerous [2]new features,
|
4087 |
|
|
improvements, bug fixes, and other changes, thanks to an [3]amazing
|
4088 |
|
|
group of volunteers.
|
4089 |
|
|
|
4090 |
|
|
Release History
|
4091 |
|
|
|
4092 |
|
|
GCC 3.4.6
|
4093 |
|
|
March 6, 2006 ([4]changes)
|
4094 |
|
|
|
4095 |
|
|
GCC 3.4.5
|
4096 |
|
|
November 30, 2005 ([5]changes)
|
4097 |
|
|
|
4098 |
|
|
GCC 3.4.4
|
4099 |
|
|
May 18, 2005 ([6]changes)
|
4100 |
|
|
|
4101 |
|
|
GCC 3.4.3
|
4102 |
|
|
November 4, 2004 ([7]changes)
|
4103 |
|
|
|
4104 |
|
|
GCC 3.4.2
|
4105 |
|
|
September 6, 2004 ([8]changes)
|
4106 |
|
|
|
4107 |
|
|
GCC 3.4.1
|
4108 |
|
|
July 1, 2004 ([9]changes)
|
4109 |
|
|
|
4110 |
|
|
GCC 3.4.0
|
4111 |
|
|
April 18, 2004 ([10]changes)
|
4112 |
|
|
|
4113 |
|
|
References and Acknowledgements
|
4114 |
|
|
|
4115 |
|
|
GCC used to stand for the GNU C Compiler, but since the compiler
|
4116 |
|
|
supports several other languages aside from C, it now stands for the
|
4117 |
|
|
GNU Compiler Collection.
|
4118 |
|
|
|
4119 |
|
|
A list of [11]successful builds is updated as new information becomes
|
4120 |
|
|
available.
|
4121 |
|
|
|
4122 |
|
|
The GCC developers would like to thank the numerous people that have
|
4123 |
|
|
contributed new features, improvements, bug fixes, and other changes as
|
4124 |
|
|
well as test results to GCC. This [12]amazing group of volunteers is
|
4125 |
|
|
what makes GCC successful.
|
4126 |
|
|
|
4127 |
|
|
For additional information about GCC please refer to the [13]GCC
|
4128 |
|
|
project web site or contact the [14]GCC development mailing list.
|
4129 |
|
|
|
4130 |
|
|
To obtain GCC please use [15]our mirror sites, or [16]our SVN server.
|
4131 |
|
|
|
4132 |
|
|
Please send FSF & GNU inquiries & questions to [17]gnu@gnu.org. There
|
4133 |
|
|
are also [18]other ways to contact the FSF.
|
4134 |
|
|
|
4135 |
|
|
These pages are [19]maintained by the GCC team.
|
4136 |
|
|
|
4137 |
|
|
|
4138 |
|
|
For questions related to the use of GCC, please consult these web
|
4139 |
|
|
pages and the [20]GCC manuals. If that fails, the
|
4140 |
|
|
[21]gcc-help@gcc.gnu.org mailing list might help.
|
4141 |
|
|
Please send comments on these web pages and the development of GCC to
|
4142 |
|
|
our developer mailing list at [22]gcc@gnu.org or [23]gcc@gcc.gnu.org.
|
4143 |
|
|
All of our lists have [24]public archives.
|
4144 |
|
|
|
4145 |
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth
|
4146 |
|
|
Floor, Boston, MA 02110, USA.
|
4147 |
|
|
|
4148 |
|
|
Verbatim copying and distribution of this entire article is permitted
|
4149 |
|
|
in any medium, provided this notice is preserved.
|
4150 |
|
|
Last modified 2010-07-01 [25]Valid XHTML 1.0
|
4151 |
|
|
|
4152 |
|
|
References
|
4153 |
|
|
|
4154 |
|
|
1. http://www.gnu.org/
|
4155 |
|
|
2. http://gcc.gnu.org/gcc-3.4/changes.html
|
4156 |
|
|
3. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
|
4157 |
|
|
4. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.6
|
4158 |
|
|
5. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.5
|
4159 |
|
|
6. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.4
|
4160 |
|
|
7. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.3
|
4161 |
|
|
8. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.2
|
4162 |
|
|
9. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.1
|
4163 |
|
|
10. http://gcc.gnu.org/gcc-3.4/changes.html
|
4164 |
|
|
11. http://gcc.gnu.org/gcc-3.4/buildstat.html
|
4165 |
|
|
12. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
|
4166 |
|
|
13. http://gcc.gnu.org/index.html
|
4167 |
|
|
14. mailto:gcc@gcc.gnu.org
|
4168 |
|
|
15. http://gcc.gnu.org/mirrors.html
|
4169 |
|
|
16. http://gcc.gnu.org/svn.html
|
4170 |
|
|
17. mailto:gnu@gnu.org
|
4171 |
|
|
18. http://www.gnu.org/home.html#ContactInfo
|
4172 |
|
|
19. http://gcc.gnu.org/about.html
|
4173 |
|
|
20. http://gcc.gnu.org/onlinedocs/
|
4174 |
|
|
21. mailto:gcc-help@gcc.gnu.org
|
4175 |
|
|
22. mailto:gcc@gnu.org
|
4176 |
|
|
23. mailto:gcc@gcc.gnu.org
|
4177 |
|
|
24. http://gcc.gnu.org/lists.html
|
4178 |
|
|
25. http://validator.w3.org/check/referer
|
4179 |
|
|
======================================================================
|
4180 |
|
|
http://gcc.gnu.org/gcc-3.4/changes.html
|
4181 |
|
|
|
4182 |
|
|
GCC 3.4 Release Series
|
4183 |
|
|
Changes, New Features, and Fixes
|
4184 |
|
|
|
4185 |
|
|
The final release in the 3.4 release series is [1]GCC 3.4.6. The series
|
4186 |
|
|
is now closed.
|
4187 |
|
|
|
4188 |
|
|
GCC 3.4 has [2]many improvements in the C++ frontend. Before reporting
|
4189 |
|
|
a bug, please make sure it's really GCC, and not your code, that is
|
4190 |
|
|
broken.
|
4191 |
|
|
|
4192 |
|
|
Caveats
|
4193 |
|
|
|
4194 |
|
|
* GNU Make is now required to build GCC.
|
4195 |
|
|
* With -nostdinc the preprocessor used to ignore both standard
|
4196 |
|
|
include paths and include paths contained in environment variables.
|
4197 |
|
|
It was neither documented nor intended that environment variable
|
4198 |
|
|
paths be ignored, so this has been corrected.
|
4199 |
|
|
* GCC no longer accepts the options -fvolatile, -fvolatile-global and
|
4200 |
|
|
-fvolatile-static. It is unlikely that they worked correctly in any
|
4201 |
|
|
3.x release.
|
4202 |
|
|
* GCC no longer ships . Use instead.
|
4203 |
|
|
* Support for all the systems [3]obsoleted in GCC 3.3 has been
|
4204 |
|
|
removed from GCC 3.4. See below for a [4]list of systems which are
|
4205 |
|
|
obsoleted in this release.
|
4206 |
|
|
* GCC now requires an ISO C90 (ANSI C89) C compiler to build. K&R C
|
4207 |
|
|
compilers will not work.
|
4208 |
|
|
* The implementation of the [5]MIPS ABIs has changed. As a result,
|
4209 |
|
|
the code generated for certain MIPS targets will not be binary
|
4210 |
|
|
compatible with earlier releases.
|
4211 |
|
|
* In previous releases, the MIPS port had a fake "hilo" register with
|
4212 |
|
|
the user-visible name accum. This register has been removed.
|
4213 |
|
|
* The implementation of the [6]SPARC ABIs has changed. As a result,
|
4214 |
|
|
the code generated will not be binary compatible with earlier
|
4215 |
|
|
releases in certain cases.
|
4216 |
|
|
* The configure option --enable-threads=pthreads has been removed;
|
4217 |
|
|
use --enable-threads=posix instead, which should have the same
|
4218 |
|
|
effect.
|
4219 |
|
|
* Code size estimates used by inlining heuristics for C, Objective-C,
|
4220 |
|
|
C++ and Java have been redesigned significantly. As a result the
|
4221 |
|
|
parameters of -finline-insns, --param max-inline-insns-single and
|
4222 |
|
|
--param max-inline-insns-auto need to be reconsidered.
|
4223 |
|
|
* --param max-inline-slope and --param min-inline-insns have been
|
4224 |
|
|
removed; they are not needed for the new bottom-up inlining
|
4225 |
|
|
heuristics.
|
4226 |
|
|
* The new unit-at-a-time compilation scheme has several compatibility
|
4227 |
|
|
issues:
|
4228 |
|
|
+ The order in which functions, variables, and top-level asm
|
4229 |
|
|
statements are emitted may have changed. Code relying on some
|
4230 |
|
|
particular ordering needs to be updated. The majority of such
|
4231 |
|
|
top-level asm statements can be replaced by section
|
4232 |
|
|
attributes.
|
4233 |
|
|
+ Unreferenced static variables and functions are removed. This
|
4234 |
|
|
may result in undefined references when an asm statement
|
4235 |
|
|
refers to the variable/function directly. In that case either
|
4236 |
|
|
the variable/function shall be listed in asm statement operand
|
4237 |
|
|
or in the case of top-level asm statements the attribute used
|
4238 |
|
|
shall be used to force function/variable to be always output
|
4239 |
|
|
and considered as a possibly used by unknown code.
|
4240 |
|
|
For variables the attribute is accepted only by GCC 3.4 and
|
4241 |
|
|
newer, while for earlier versions it is sufficient to use
|
4242 |
|
|
unused to silence warnings about the variables not being
|
4243 |
|
|
referenced. To keep code portable across different GCC
|
4244 |
|
|
versions, you can use appropriate preprocessor conditionals.
|
4245 |
|
|
+ Static functions now can use non-standard passing conventions
|
4246 |
|
|
that may break asm statements calling functions directly.
|
4247 |
|
|
Again the attribute used shall be used to prevent this
|
4248 |
|
|
behavior.
|
4249 |
|
|
As a temporary workaround, -fno-unit-at-a-time can be used, but
|
4250 |
|
|
this scheme may not be supported by future releases of GCC.
|
4251 |
|
|
* GCC 3.4 automatically places zero-initialized variables in the .bss
|
4252 |
|
|
section on some operating systems. Versions of GNU Emacs up to (and
|
4253 |
|
|
including) 21.3 will not work correctly when using this
|
4254 |
|
|
optimization; you can use -fno-zero-initialized-in-bss to disable
|
4255 |
|
|
it.
|
4256 |
|
|
* If GCC 3.4 is configured with --enable-threads=posix (the default
|
4257 |
|
|
on most targets that support pthreads) then _REENTRANT will be
|
4258 |
|
|
defined unconditionally by some libstdc++ headers. C++ code which
|
4259 |
|
|
relies on that macro to detect whether multi-threaded code is being
|
4260 |
|
|
compiled might change in meaning, possibly resulting in linker
|
4261 |
|
|
errors for single-threaded programs. Affected users of [7]Boost
|
4262 |
|
|
should compile single-threaded code with -DBOOST_DISABLE_THREADS.
|
4263 |
|
|
See Bugzilla for [8]more information.
|
4264 |
|
|
|
4265 |
|
|
General Optimizer Improvements
|
4266 |
|
|
|
4267 |
|
|
* Usability of the profile feedback and coverage testing has been
|
4268 |
|
|
improved.
|
4269 |
|
|
+ Performance of profiled programs has been improved by faster
|
4270 |
|
|
profile merging code.
|
4271 |
|
|
+ Better use of the profile feedback for optimization (loop
|
4272 |
|
|
unrolling and loop peeling).
|
4273 |
|
|
+ File locking support allowing fork() calls and parallel runs
|
4274 |
|
|
of profiled programs.
|
4275 |
|
|
+ Coverage file format has been redesigned.
|
4276 |
|
|
+ gcov coverage tool has been improved.
|
4277 |
|
|
+ make profiledbootstrap available to build a faster compiler.
|
4278 |
|
|
Experiments made on i386 hardware showed an 11% speedup on -O0
|
4279 |
|
|
and a 7.5% speedup on -O2 compilation of a [9]large C++
|
4280 |
|
|
testcase.
|
4281 |
|
|
+ New value profiling pass enabled via -fprofile-values
|
4282 |
|
|
+ New value profile transformations pass enabled via -fvpt aims
|
4283 |
|
|
to optimize some code sequences by exploiting knowledge about
|
4284 |
|
|
value ranges or other properties of the operands. At the
|
4285 |
|
|
moment a conversion of expensive divisions into cheaper
|
4286 |
|
|
operations has been implemented.
|
4287 |
|
|
+ New -fprofile-generate and -fprofile-use command-line options
|
4288 |
|
|
to simplify the use of profile feedback.
|
4289 |
|
|
* A new unit-at-a-time compilation scheme for C, Objective-C, C++ and
|
4290 |
|
|
Java which is enabled via -funit-at-a-time (and implied by -O2). In
|
4291 |
|
|
this scheme a whole file is parsed first and optimized later. The
|
4292 |
|
|
following basic inter-procedural optimizations are implemented:
|
4293 |
|
|
+ Removal of unreachable functions and variables
|
4294 |
|
|
+ Discovery of local functions (functions with static linkage
|
4295 |
|
|
whose address is never taken)
|
4296 |
|
|
+ On i386, these local functions use register parameter passing
|
4297 |
|
|
conventions.
|
4298 |
|
|
+ Reordering of functions in topological order of the call graph
|
4299 |
|
|
to enable better propagation of optimizing hints (such as the
|
4300 |
|
|
stack alignments needed by functions) in the back end.
|
4301 |
|
|
+ Call graph based out-of-order inlining heuristics which allows
|
4302 |
|
|
to limit overall compilation unit growth (--param
|
4303 |
|
|
inline-unit-growth).
|
4304 |
|
|
Overall, the unit-at-a-time scheme produces a 1.3% improvement for
|
4305 |
|
|
the SPECint2000 benchmark on the i386 architecture (AMD Athlon
|
4306 |
|
|
CPU).
|
4307 |
|
|
* More realistic code size estimates used by inlining for C,
|
4308 |
|
|
Objective-C, C++ and Java. The growth of large functions can now be
|
4309 |
|
|
limited via --param large-function-insns and --param
|
4310 |
|
|
large-function-growth.
|
4311 |
|
|
* A new cfg-level loop optimizer pass replaces the old loop unrolling
|
4312 |
|
|
pass and adds two other loop transformations -- loop peeling and
|
4313 |
|
|
loop unswitching -- and also uses the profile feedback to limit
|
4314 |
|
|
code growth. (The three optimizations are enabled by
|
4315 |
|
|
-funroll-loops, -fpeel-loops and -funswitch-loops flags,
|
4316 |
|
|
respectively).
|
4317 |
|
|
The old loop unroller still can be enabled by -fold-unroll-loops
|
4318 |
|
|
and may produce better code in some cases, especially when the
|
4319 |
|
|
webizer optimization pass is not run.
|
4320 |
|
|
* A new web construction pass enabled via -fweb (and implied by -O3)
|
4321 |
|
|
improves the quality of register allocation, CSE, first scheduling
|
4322 |
|
|
pass and some other optimization passes by avoiding re-use of
|
4323 |
|
|
pseudo registers with non-overlapping live ranges. The pass almost
|
4324 |
|
|
always improves code quality but does make debugging difficult and
|
4325 |
|
|
thus is not enabled by default by -O2
|
4326 |
|
|
The pass is especially effective as cleanup after code duplication
|
4327 |
|
|
passes, such as the loop unroller or the tracer.
|
4328 |
|
|
* Experimental implementations of superblock or trace scheduling in
|
4329 |
|
|
the second scheduling pass can be enabled via
|
4330 |
|
|
-fsched2-use-superblocks and -fsched2-use-traces, respectively.
|
4331 |
|
|
|
4332 |
|
|
New Languages and Language specific improvements
|
4333 |
|
|
|
4334 |
|
|
Ada
|
4335 |
|
|
|
4336 |
|
|
* The Ada front end has been updated to include numerous bug fixes
|
4337 |
|
|
and enhancements. These include:
|
4338 |
|
|
+ Improved project file support
|
4339 |
|
|
+ Additional set of warnings about potential wrong code
|
4340 |
|
|
+ Improved error messages
|
4341 |
|
|
+ Improved code generation
|
4342 |
|
|
+ Improved cross reference information
|
4343 |
|
|
+ Improved inlining
|
4344 |
|
|
+ Better run-time check elimination
|
4345 |
|
|
+ Better error recovery
|
4346 |
|
|
+ More efficient implementation of unbounded strings
|
4347 |
|
|
+ Added features in GNAT.Sockets, GNAT.OS_Lib, GNAT.Debug_Pools,
|
4348 |
|
|
...
|
4349 |
|
|
+ New GNAT.xxxx packages (e.g. GNAT.Strings,
|
4350 |
|
|
GNAT.Exception_Action)
|
4351 |
|
|
+ New pragmas
|
4352 |
|
|
+ New -gnatS switch replacing gnatpsta
|
4353 |
|
|
+ Implementation of new Ada features (in particular limited
|
4354 |
|
|
with, limited aggregates)
|
4355 |
|
|
|
4356 |
|
|
C/Objective-C/C++
|
4357 |
|
|
|
4358 |
|
|
* Precompiled headers are now supported. Precompiled headers can
|
4359 |
|
|
dramatically speed up compilation of some projects. There are some
|
4360 |
|
|
known defects in the current precompiled header implementation that
|
4361 |
|
|
will result in compiler crashes in relatively rare situations.
|
4362 |
|
|
Therefore, precompiled headers should be considered a "technology
|
4363 |
|
|
preview" in this release. Read the manual for details about how to
|
4364 |
|
|
use precompiled headers.
|
4365 |
|
|
* File handling in the preprocessor has been rewritten. GCC no longer
|
4366 |
|
|
gets confused by symlinks and hardlinks, and now has a correct
|
4367 |
|
|
implementation of #import and #pragma once. These two directives
|
4368 |
|
|
have therefore been un-deprecated.
|
4369 |
|
|
* The undocumented extension that allowed C programs to have a label
|
4370 |
|
|
at the end of a compound statement, which has been deprecated since
|
4371 |
|
|
GCC 3.0, has been removed.
|
4372 |
|
|
* The cast-as-lvalue extension has been removed for C++ and
|
4373 |
|
|
deprecated for C and Objective-C. In particular, code like this:
|
4374 |
|
|
int i;
|
4375 |
|
|
(char) i = 5;
|
4376 |
|
|
|
4377 |
|
|
or this:
|
4378 |
|
|
char *p;
|
4379 |
|
|
((int *) p)++;
|
4380 |
|
|
|
4381 |
|
|
is no longer accepted for C++ and will not be accepted for C and
|
4382 |
|
|
Objective-C in a future version.
|
4383 |
|
|
* The conditional-expression-as-lvalue extension has been deprecated
|
4384 |
|
|
for C and Objective-C. In particular, code like this:
|
4385 |
|
|
int a, b, c;
|
4386 |
|
|
(a ? b : c) = 2;
|
4387 |
|
|
|
4388 |
|
|
will not be accepted for C and Objective-C in a future version.
|
4389 |
|
|
* The compound-expression-as-lvalue extension has been deprecated for
|
4390 |
|
|
C and Objective-C. In particular, code like this:
|
4391 |
|
|
int a, b;
|
4392 |
|
|
(a, b) = 2;
|
4393 |
|
|
|
4394 |
|
|
will not be accepted for C and Objective-C in a future version. A
|
4395 |
|
|
possible non-intrusive workaround is the following:
|
4396 |
|
|
(*(a, &b)) = 2;
|
4397 |
|
|
|
4398 |
|
|
* Several [10]built-in functions such as __builtin_popcount for
|
4399 |
|
|
counting bits, finding the highest and lowest bit in a word, and
|
4400 |
|
|
parity have been added.
|
4401 |
|
|
* The -fwritable-strings option has been deprecated and will be
|
4402 |
|
|
removed.
|
4403 |
|
|
* Many C math library functions are now recognized as built-ins and
|
4404 |
|
|
optimized.
|
4405 |
|
|
* The C, C++, and Objective-C compilers can now handle source files
|
4406 |
|
|
written in any character encoding supported by the host C library.
|
4407 |
|
|
The default input character set is taken from the current locale,
|
4408 |
|
|
and may be overridden with the -finput-charset command line option.
|
4409 |
|
|
In the future we will add support for inline encoding markers.
|
4410 |
|
|
|
4411 |
|
|
C++
|
4412 |
|
|
|
4413 |
|
|
* G++ is now much closer to full conformance to the ISO/ANSI C++
|
4414 |
|
|
standard. This means, among other things, that a lot of invalid
|
4415 |
|
|
constructs which used to be accepted in previous versions will now
|
4416 |
|
|
be rejected. It is very likely that existing C++ code will need to
|
4417 |
|
|
be fixed. This document lists some of the most common issues.
|
4418 |
|
|
* A hand-written recursive-descent C++ parser has replaced the
|
4419 |
|
|
YACC-derived C++ parser from previous GCC releases. The new parser
|
4420 |
|
|
contains much improved infrastructure needed for better parsing of
|
4421 |
|
|
C++ source codes, handling of extensions, and clean separation
|
4422 |
|
|
(where possible) between proper semantics analysis and parsing. The
|
4423 |
|
|
new parser fixes many bugs that were found in the old parser.
|
4424 |
|
|
* You must now use the typename and template keywords to disambiguate
|
4425 |
|
|
dependent names, as required by the C++ standard.
|
4426 |
|
|
struct K {
|
4427 |
|
|
typedef int mytype_t;
|
4428 |
|
|
};
|
4429 |
|
|
|
4430 |
|
|
template struct A {
|
4431 |
|
|
template struct B {
|
4432 |
|
|
void callme(void);
|
4433 |
|
|
};
|
4434 |
|
|
|
4435 |
|
|
template void bar(void)
|
4436 |
|
|
{
|
4437 |
|
|
// Use 'typename' to tell the parser that T1::mytype_t names
|
4438 |
|
|
// a type. This is needed because the name is dependent (in
|
4439 |
|
|
// this case, on template parameter T1).
|
4440 |
|
|
typename T1::mytype_t x;
|
4441 |
|
|
x = 0;
|
4442 |
|
|
}
|
4443 |
|
|
};
|
4444 |
|
|
|
4445 |
|
|
template void template_func(void)
|
4446 |
|
|
{
|
4447 |
|
|
// Use 'template' to prefix member templates within
|
4448 |
|
|
// dependent types (a has type A, which depends on
|
4449 |
|
|
// the template parameter T).
|
4450 |
|
|
A a;
|
4451 |
|
|
a.template bar<0>();
|
4452 |
|
|
|
4453 |
|
|
// Use 'template' to tell the parser that B is a nested
|
4454 |
|
|
// template class (dependent on template parameter T), and
|
4455 |
|
|
// 'typename' because the whole A::B is
|
4456 |
|
|
// the name of a type (again, dependent).
|
4457 |
|
|
typename A::template B b;
|
4458 |
|
|
b.callme();
|
4459 |
|
|
}
|
4460 |
|
|
|
4461 |
|
|
void non_template_func(void)
|
4462 |
|
|
{
|
4463 |
|
|
// Outside of any template class or function, no names can be
|
4464 |
|
|
// dependent, so the use of the keyword 'typename' and 'template'
|
4465 |
|
|
// is not needed (and actually forbidden).
|
4466 |
|
|
A a;
|
4467 |
|
|
a.bar<0>();
|
4468 |
|
|
A::B b;
|
4469 |
|
|
b.callme();
|
4470 |
|
|
}
|
4471 |
|
|
* In a template definition, unqualified names will no longer find
|
4472 |
|
|
members of a dependent base (as specified by [temp.dep]/3 in the
|
4473 |
|
|
C++ standard). For example,
|
4474 |
|
|
template struct B {
|
4475 |
|
|
int m;
|
4476 |
|
|
int n;
|
4477 |
|
|
int f ();
|
4478 |
|
|
int g ();
|
4479 |
|
|
};
|
4480 |
|
|
int n;
|
4481 |
|
|
int g ();
|
4482 |
|
|
template struct C : B {
|
4483 |
|
|
void h ()
|
4484 |
|
|
{
|
4485 |
|
|
m = 0; // error
|
4486 |
|
|
f (); // error
|
4487 |
|
|
n = 0; // ::n is modified
|
4488 |
|
|
g (); // ::g is called
|
4489 |
|
|
}
|
4490 |
|
|
};
|
4491 |
|
|
You must make the names dependent, e.g. by prefixing them with
|
4492 |
|
|
this->. Here is the corrected definition of C::h,
|
4493 |
|
|
template void C::h ()
|
4494 |
|
|
{
|
4495 |
|
|
this->m = 0;
|
4496 |
|
|
this->f ();
|
4497 |
|
|
this->n = 0
|
4498 |
|
|
this->g ();
|
4499 |
|
|
}
|
4500 |
|
|
As an alternative solution (unfortunately not backwards compatible
|
4501 |
|
|
with GCC 3.3), you may use using declarations instead of this->:
|
4502 |
|
|
template struct C : B {
|
4503 |
|
|
using B::m;
|
4504 |
|
|
using B::f;
|
4505 |
|
|
using B::n;
|
4506 |
|
|
using B::g;
|
4507 |
|
|
void h ()
|
4508 |
|
|
{
|
4509 |
|
|
m = 0;
|
4510 |
|
|
f ();
|
4511 |
|
|
n = 0;
|
4512 |
|
|
g ();
|
4513 |
|
|
}
|
4514 |
|
|
};
|
4515 |
|
|
* In templates, all non-dependent names are now looked up and bound
|
4516 |
|
|
at definition time (while parsing the code), instead of later when
|
4517 |
|
|
the template is instantiated. For instance:
|
4518 |
|
|
void foo(int);
|
4519 |
|
|
|
4520 |
|
|
template struct A {
|
4521 |
|
|
static void bar(void){
|
4522 |
|
|
foo('a');
|
4523 |
|
|
}
|
4524 |
|
|
};
|
4525 |
|
|
|
4526 |
|
|
void foo(char);
|
4527 |
|
|
|
4528 |
|
|
int main()
|
4529 |
|
|
{
|
4530 |
|
|
A<0>::bar(); // Calls foo(int), used to call foo(char).
|
4531 |
|
|
}
|
4532 |
|
|
|
4533 |
|
|
* In an explicit instantiation of a class template, you must use
|
4534 |
|
|
class or struct before the template-id:
|
4535 |
|
|
template
|
4536 |
|
|
class A {};
|
4537 |
|
|
|
4538 |
|
|
template A<0>; // error, not accepted anymore
|
4539 |
|
|
template class A<0>; // OK
|
4540 |
|
|
* The "named return value" and "implicit typename" extensions have
|
4541 |
|
|
been removed.
|
4542 |
|
|
* Default arguments in function types have been deprecated and will
|
4543 |
|
|
be removed.
|
4544 |
|
|
* ARM-style name-injection of friend declarations has been deprecated
|
4545 |
|
|
and will be removed. For example: struct S { friend void f(); };
|
4546 |
|
|
void g() { f(); } will not be accepted by future versions of G++;
|
4547 |
|
|
instead a declaration of "f" will need to be present outside of the
|
4548 |
|
|
scope of "S".
|
4549 |
|
|
* Covariant returns are implemented for all but varadic functions
|
4550 |
|
|
that require an adjustment.
|
4551 |
|
|
* When -pedantic is used, G++ now issues errors about spurious
|
4552 |
|
|
semicolons. For example,
|
4553 |
|
|
namespace N {}; // Invalid semicolon.
|
4554 |
|
|
void f() {}; // Invalid semicolon.
|
4555 |
|
|
* G++ no longer accepts attributes for a declarator after the
|
4556 |
|
|
initializer associated with that declarator. For example,
|
4557 |
|
|
X x(1) __attribute__((...));
|
4558 |
|
|
is no longer accepted. Instead, use:
|
4559 |
|
|
X x __attribute__((...)) (1);
|
4560 |
|
|
* Inside the scope of a template class, the name of the class itself
|
4561 |
|
|
can be treated as either a class or a template. So GCC used to
|
4562 |
|
|
accept the class name as argument of type template, and template
|
4563 |
|
|
template parameter. However this is not C++ standard compliant. Now
|
4564 |
|
|
the name is not treated as a valid template template argument
|
4565 |
|
|
unless you qualify the name by its scope. For example, the code
|
4566 |
|
|
below no longer compiles.
|
4567 |
|
|
template class TT> class X {};
|
4568 |
|
|
template class Y {
|
4569 |
|
|
X x; // Invalid, Y is always a type template parameter.
|
4570 |
|
|
};
|
4571 |
|
|
The valid code for the above example is
|
4572 |
|
|
X< ::Y> x; // Valid.
|
4573 |
|
|
(Notice the space between < and : to prevent GCC to interpret this
|
4574 |
|
|
as a digraph for [.)
|
4575 |
|
|
* Friend declarations that refer to template specializations are
|
4576 |
|
|
rejected if the template has not already been declared. For
|
4577 |
|
|
example,
|
4578 |
|
|
template
|
4579 |
|
|
class C {
|
4580 |
|
|
friend void f<> (C&);
|
4581 |
|
|
};
|
4582 |
|
|
is rejected. You must first declare f as a template,
|
4583 |
|
|
template
|
4584 |
|
|
void f(T);
|
4585 |
|
|
* In case of friend declarations, every name used in the friend
|
4586 |
|
|
declaration must be accessible at the point of that declaration.
|
4587 |
|
|
Previous versions of G++ used to be less strict about this and
|
4588 |
|
|
allowed friend declarations for private class members, for example.
|
4589 |
|
|
See the ISO C++ Standard Committee's [11]defect report #209 for
|
4590 |
|
|
details.
|
4591 |
|
|
* Declaration of member functions of class templates as friends are
|
4592 |
|
|
supported. For example,
|
4593 |
|
|
template struct A {
|
4594 |
|
|
void f();
|
4595 |
|
|
};
|
4596 |
|
|
class C {
|
4597 |
|
|
template friend void A::f();
|
4598 |
|
|
};
|
4599 |
|
|
* You must use template <> to introduce template specializations, as
|
4600 |
|
|
required by the standard. For example,
|
4601 |
|
|
template
|
4602 |
|
|
struct S;
|
4603 |
|
|
|
4604 |
|
|
struct S { };
|
4605 |
|
|
is rejected. You must write,
|
4606 |
|
|
template <> struct S {};
|
4607 |
|
|
* G++ used to accept code like this,
|
4608 |
|
|
struct S {
|
4609 |
|
|
int h();
|
4610 |
|
|
void f(int i = g());
|
4611 |
|
|
int g(int i = h());
|
4612 |
|
|
};
|
4613 |
|
|
This behavior is not mandated by the standard. Now G++ issues an
|
4614 |
|
|
error about this code. To avoid the error, you must move the
|
4615 |
|
|
declaration of g before the declaration of f. The default arguments
|
4616 |
|
|
for g must be visible at the point where it is called.
|
4617 |
|
|
* The C++ ABI Section 3.3.3 specifications for the array construction
|
4618 |
|
|
routines __cxa_vec_new2 and __cxa_vec_new3 were changed to return
|
4619 |
|
|
NULL when the allocator argument returns NULL. These changes are
|
4620 |
|
|
incorporated into the libstdc++ runtime library.
|
4621 |
|
|
* Using a name introduced by a typedef in a friend declaration or in
|
4622 |
|
|
an explicit instantiation is now rejected, as specified by the ISO
|
4623 |
|
|
C++ standard.
|
4624 |
|
|
class A;
|
4625 |
|
|
typedef A B;
|
4626 |
|
|
class C {
|
4627 |
|
|
friend class B; // error, no typedef name here
|
4628 |
|
|
friend B; // error, friend always needs class/struct/enum
|
4629 |
|
|
friend class A; // OK
|
4630 |
|
|
};
|
4631 |
|
|
|
4632 |
|
|
template class Q {};
|
4633 |
|
|
typedef Q<0> R;
|
4634 |
|
|
template class R; // error, no typedef name here
|
4635 |
|
|
template class Q<0>; // OK
|
4636 |
|
|
* When allocating an array with a new expression, GCC used to allow
|
4637 |
|
|
parentheses around the type name. This is actually ill-formed and
|
4638 |
|
|
it is now rejected:
|
4639 |
|
|
int* a = new (int)[10]; // error, not accepted anymore
|
4640 |
|
|
int* a = new int[10]; // OK
|
4641 |
|
|
* When binding an rvalue of class type to a reference, the copy
|
4642 |
|
|
constructor of the class must be accessible. For instance, consider
|
4643 |
|
|
the following code:
|
4644 |
|
|
class A
|
4645 |
|
|
{
|
4646 |
|
|
public:
|
4647 |
|
|
A();
|
4648 |
|
|
|
4649 |
|
|
private:
|
4650 |
|
|
A(const A&); // private copy ctor
|
4651 |
|
|
};
|
4652 |
|
|
|
4653 |
|
|
A makeA(void);
|
4654 |
|
|
void foo(const A&);
|
4655 |
|
|
|
4656 |
|
|
void bar(void)
|
4657 |
|
|
{
|
4658 |
|
|
foo(A()); // error, copy ctor is not accessible
|
4659 |
|
|
foo(makeA()); // error, copy ctor is not accessible
|
4660 |
|
|
|
4661 |
|
|
A a1;
|
4662 |
|
|
foo(a1); // OK, a1 is a lvalue
|
4663 |
|
|
}
|
4664 |
|
|
This might be surprising at first sight, especially since most
|
4665 |
|
|
popular compilers do not correctly implement this rule ([12]further
|
4666 |
|
|
details).
|
4667 |
|
|
* When forming a pointer to member or a pointer to member function,
|
4668 |
|
|
access checks for class visibility (public, protected, private) are
|
4669 |
|
|
now performed using the qualifying scope of the name itself. This
|
4670 |
|
|
is better explained with an example:
|
4671 |
|
|
class A
|
4672 |
|
|
{
|
4673 |
|
|
public:
|
4674 |
|
|
void pub_func();
|
4675 |
|
|
protected:
|
4676 |
|
|
void prot_func();
|
4677 |
|
|
private:
|
4678 |
|
|
void priv_func();
|
4679 |
|
|
};
|
4680 |
|
|
|
4681 |
|
|
class B : public A
|
4682 |
|
|
{
|
4683 |
|
|
public:
|
4684 |
|
|
void foo()
|
4685 |
|
|
{
|
4686 |
|
|
&A::pub_func; // OK, pub_func is accessible through A
|
4687 |
|
|
&A::prot_func; // error, cannot access prot_func through A
|
4688 |
|
|
&A::priv_func; // error, cannot access priv_func through A
|
4689 |
|
|
|
4690 |
|
|
&B::pub_func; // OK, pub_func is accessible through B
|
4691 |
|
|
&B::prot_func; // OK, can access prot_func through B (within B)
|
4692 |
|
|
&B::priv_func; // error, cannot access priv_func through B
|
4693 |
|
|
}
|
4694 |
|
|
};
|
4695 |
|
|
|
4696 |
|
|
Runtime Library (libstdc++)
|
4697 |
|
|
|
4698 |
|
|
* Optimization work:
|
4699 |
|
|
+ Streamlined streambuf, filebuf, separate synched with C
|
4700 |
|
|
Standard I/O streambuf.
|
4701 |
|
|
+ All formatted I/O now uses cached locale information.
|
4702 |
|
|
+ STL optimizations (memory/speed for list, red-black trees as
|
4703 |
|
|
used by sets and maps).
|
4704 |
|
|
+ More use of GCC builtins.
|
4705 |
|
|
+ String optimizations (avoid contention on
|
4706 |
|
|
increment/decrement-and-test of the reference count in the
|
4707 |
|
|
empty-string object, constructor from input_iterators
|
4708 |
|
|
speedup).
|
4709 |
|
|
* Static linkage size reductions.
|
4710 |
|
|
* Large File Support (files larger than 2 GB on 32-bit systems).
|
4711 |
|
|
* Wide character and variable encoding filebuf work (UTF-8, Unicode).
|
4712 |
|
|
* Generic character traits.
|
4713 |
|
|
* Also support wchar_t specializations on Mac OS 10.3.x, FreeBSD 5.x,
|
4714 |
|
|
Solaris 2.7 and above, AIX 5.x, Irix 6.5.
|
4715 |
|
|
* The allocator class is now standard-conformant, and two additional
|
4716 |
|
|
extension allocators have been added, mt_alloc and
|
4717 |
|
|
bitmap_allocator.
|
4718 |
|
|
* PCH support: -include bits/stdc++.h (2x compile speedup).
|
4719 |
|
|
* Rewrote __cxa_demangle with support for C++ style allocators.
|
4720 |
|
|
* New debug modes for STL containers and iterators.
|
4721 |
|
|
* Testsuite rewrite: five times as many tests, plus increasingly
|
4722 |
|
|
sophisticated tests, including I/O, MT, multi-locale, wide and
|
4723 |
|
|
narrow characters.
|
4724 |
|
|
* Use current versions of GNU "autotools" for build/configuration.
|
4725 |
|
|
|
4726 |
|
|
Objective-C
|
4727 |
|
|
|
4728 |
|
|
* The Objective-C front end has been updated to include the numerous
|
4729 |
|
|
bug fixes and enhancements previously available only in Apple's
|
4730 |
|
|
version of GCC. These include:
|
4731 |
|
|
+ Structured exception (@try... @catch... @finally, @throw) and
|
4732 |
|
|
synchronization (@synchronized) support. These are accessible
|
4733 |
|
|
via the -fobjc-exceptions switch; as of this writing, they may
|
4734 |
|
|
only be used in conjunction with -fnext-runtime on Mac OS X
|
4735 |
|
|
10.3 and later. See [13]Options Controlling Objective-C
|
4736 |
|
|
Dialect for more information.
|
4737 |
|
|
+ An overhaul of @encode logic. The C99 _Bool and C++ bool type
|
4738 |
|
|
may now be encoded as 'B'. In addition, the back-end/codegen
|
4739 |
|
|
dependencies have been removed.
|
4740 |
|
|
+ An overhaul of message dispatch construction, ensuring that
|
4741 |
|
|
the various receiver types (and casts thereof) are handled
|
4742 |
|
|
properly, and that correct diagnostics are issued.
|
4743 |
|
|
+ Support for "Zero-Link" (-fzero-link) and "Fix-and-Continue"
|
4744 |
|
|
(-freplace-objc-classes) debugging modes, currently available
|
4745 |
|
|
on Mac OS X 10.3 and later. See [14]Options Controlling
|
4746 |
|
|
Objective-C Dialect for more information.
|
4747 |
|
|
+ Access to optimized runtime entry points (-fno-nil-receivers )
|
4748 |
|
|
on the assumption that message receivers are never nil. This
|
4749 |
|
|
is currently available on Mac OS X 10.3 and later. See
|
4750 |
|
|
[15]Options Controlling Objective-C Dialect for more
|
4751 |
|
|
information.
|
4752 |
|
|
|
4753 |
|
|
Java
|
4754 |
|
|
|
4755 |
|
|
* Compiling a .jar file will now cause non-.class entries to be
|
4756 |
|
|
automatically compiled as resources.
|
4757 |
|
|
* libgcj has been ported to Darwin.
|
4758 |
|
|
* Jeff Sturm has adapted Jan Hubicka's call graph optimization code
|
4759 |
|
|
to gcj.
|
4760 |
|
|
* libgcj has a new gcjlib URL type; this lets URLClassLoader load
|
4761 |
|
|
code from shared libraries.
|
4762 |
|
|
* libgcj has been much more completely merged with [16]GNU Classpath.
|
4763 |
|
|
* Class loading is now much more correct; in particular the caller's
|
4764 |
|
|
class loader is now used when that is required.
|
4765 |
|
|
* [17]Eclipse 2.x will run out of the box using gij.
|
4766 |
|
|
* Parts of java.nio have been implemented. Direct and indirect
|
4767 |
|
|
buffers work, as do fundamental file and socket operations.
|
4768 |
|
|
* java.awt has been improved, though it is still not ready for
|
4769 |
|
|
general use.
|
4770 |
|
|
* The HTTP protocol handler now uses HTTP/1.1 and can handle the POST
|
4771 |
|
|
method.
|
4772 |
|
|
* The MinGW port has matured. Enhancements include socket timeout
|
4773 |
|
|
support, thread interruption, improved Runtime.exec() handling and
|
4774 |
|
|
support for accented characters in filenames.
|
4775 |
|
|
|
4776 |
|
|
Fortran
|
4777 |
|
|
|
4778 |
|
|
* Fortran improvements are listed in the [18]Fortran documentation.
|
4779 |
|
|
|
4780 |
|
|
New Targets and Target Specific Improvements
|
4781 |
|
|
|
4782 |
|
|
Alpha
|
4783 |
|
|
|
4784 |
|
|
* Several [19]built-in functions have been added such as
|
4785 |
|
|
__builtin_alpha_zap to allow utilizing the more obscure
|
4786 |
|
|
instructions of the CPU.
|
4787 |
|
|
* Parameter passing of complex arguments has changed to match the
|
4788 |
|
|
[20]ABI. This change is incompatible with previous GCC versions,
|
4789 |
|
|
but does fix compatibility with the Tru64 compiler and several
|
4790 |
|
|
corner cases where GCC was incompatible with itself.
|
4791 |
|
|
|
4792 |
|
|
ARM
|
4793 |
|
|
|
4794 |
|
|
* Nicolas Pitre has contributed his hand-coded floating-point support
|
4795 |
|
|
code for ARM. It is both significantly smaller and faster than the
|
4796 |
|
|
existing C-based implementation, even when building applications
|
4797 |
|
|
for Thumb. The arm-elf configuration has been converted to use the
|
4798 |
|
|
new code.
|
4799 |
|
|
* Support for the Intel's iWMMXt architecture, a second generation
|
4800 |
|
|
XScale processor, has been added. Enabled at run time with the
|
4801 |
|
|
-mcpu=iwmmxt command line switch.
|
4802 |
|
|
* A new ARM target has been added: arm-wince-pe. This is similar to
|
4803 |
|
|
the arm-pe target, but it defaults to using the APCS32 ABI.
|
4804 |
|
|
* The existing ARM pipeline description has been converted to the use
|
4805 |
|
|
the [21]DFA processor pipeline model. There is not much change in
|
4806 |
|
|
code performance, but the description is now [22]easier to
|
4807 |
|
|
understand.
|
4808 |
|
|
* Support for the Cirrus EP9312 Maverick floating point co-processor
|
4809 |
|
|
added. Enabled at run time with the -mcpu=ep9312 command line
|
4810 |
|
|
switch. Note however that the multilibs to support this chip are
|
4811 |
|
|
currently disabled in gcc/config/arm/t-arm-elf, so if you want to
|
4812 |
|
|
enable their production you will have to uncomment the entries in
|
4813 |
|
|
that file.
|
4814 |
|
|
|
4815 |
|
|
H8/300
|
4816 |
|
|
|
4817 |
|
|
* Support for long long has been added.
|
4818 |
|
|
* Support for saveall attribute has been added.
|
4819 |
|
|
* Pavel Pisa contributed hand-written 32-bit-by-32-bit division code
|
4820 |
|
|
for H8/300H and H8S, which is much faster than the previous
|
4821 |
|
|
implementation.
|
4822 |
|
|
* A lot of small performance improvements.
|
4823 |
|
|
|
4824 |
|
|
IA-32/AMD64 (x86-64)
|
4825 |
|
|
|
4826 |
|
|
* Tuning for K8 (AMD Opteron/Athlon64) core is available via
|
4827 |
|
|
-march=k8 and -mcpu=k8.
|
4828 |
|
|
* Scalar SSE code generation carefully avoids reformatting penalties,
|
4829 |
|
|
hidden dependencies and minimizes the number of uops generated on
|
4830 |
|
|
both Intel and AMD CPUs.
|
4831 |
|
|
* Vector MMX and SSE operands are now passed in registers to improve
|
4832 |
|
|
performance and match the argument passing convention used by the
|
4833 |
|
|
Intel C++ Compiler. As a result it is not possible to call
|
4834 |
|
|
functions accepting vector arguments compiled by older GCC version.
|
4835 |
|
|
* Conditional jump elimination is now more aggressive on modern CPUs.
|
4836 |
|
|
* The Athlon ports has been converted to use the DFA processor
|
4837 |
|
|
pipeline description.
|
4838 |
|
|
* Optimization of indirect tail calls is now possible in a similar
|
4839 |
|
|
fashion as direct sibcall optimization.
|
4840 |
|
|
* Further small performance improvements.
|
4841 |
|
|
* -m128bit-long-double is now less buggy.
|
4842 |
|
|
* __float128 support in 64-bit compilation.
|
4843 |
|
|
* Support for data structures exceeding 2GB in 64-bit mode.
|
4844 |
|
|
* -mcpu has been renamed to -mtune.
|
4845 |
|
|
|
4846 |
|
|
IA-64
|
4847 |
|
|
|
4848 |
|
|
* Tuning code for the Itanium 2 processor has been added. The
|
4849 |
|
|
generation of code tuned for Itanium 2 (option -mtune=itanium2) is
|
4850 |
|
|
enabled by default now. To generate code tuned for Itanium 1 the
|
4851 |
|
|
option -mtune=itanium1 should be used.
|
4852 |
|
|
* [23]DFA processor pipeline descriptions for the IA-64 processors
|
4853 |
|
|
have been added. This resulted in about 3% improvement on the
|
4854 |
|
|
SPECInt2000 benchmark for Itanium 2.
|
4855 |
|
|
* Instruction bundling for the IA-64 processors has been rewritten
|
4856 |
|
|
using the DFA pipeline hazard recognizer. It resulted in about 60%
|
4857 |
|
|
compiler speedup on the SPECInt2000 C programs.
|
4858 |
|
|
|
4859 |
|
|
M32R
|
4860 |
|
|
|
4861 |
|
|
* Support for the M32R/2 processor has been added by Renesas.
|
4862 |
|
|
* Support for an M32R Linux target and PIC code generation has been
|
4863 |
|
|
added by Renesas.
|
4864 |
|
|
|
4865 |
|
|
M68000
|
4866 |
|
|
|
4867 |
|
|
* Bernardo Innocenti (Develer S.r.l.) has contributed the
|
4868 |
|
|
m68k-uclinux target, based on former work done by Paul Dale
|
4869 |
|
|
(SnapGear Inc.). Code generation for the ColdFire processors family
|
4870 |
|
|
has been enhanced and extended to support the MCF 53xx and MCF 54xx
|
4871 |
|
|
cores, integrating former work done by Peter Barada (Motorola).
|
4872 |
|
|
|
4873 |
|
|
MIPS
|
4874 |
|
|
|
4875 |
|
|
Processor-specific changes
|
4876 |
|
|
|
4877 |
|
|
* Support for the RM7000 and RM9000 processors has been added. It can
|
4878 |
|
|
be selected using the -march compiler option and should work with
|
4879 |
|
|
any MIPS I (mips-*) or MIPS III (mips64-*) configuration.
|
4880 |
|
|
* Support for revision 2 of the MIPS32 ISA has been added. It can be
|
4881 |
|
|
selected with the command-line option -march=mips32r2.
|
4882 |
|
|
* There is a new option, -mfix-sb1, to work around certain SB-1
|
4883 |
|
|
errata.
|
4884 |
|
|
|
4885 |
|
|
Configuration
|
4886 |
|
|
|
4887 |
|
|
* It is possible to customize GCC using the following configure-time
|
4888 |
|
|
options:
|
4889 |
|
|
+ --with-arch, which specifies the default value of the -march
|
4890 |
|
|
option.
|
4891 |
|
|
+ --with-tune, which specifies the default value of the -mtune
|
4892 |
|
|
option.
|
4893 |
|
|
+ --with-abi, which specifies the default ABI.
|
4894 |
|
|
+ --with-float=soft, which tells GCC to use software floating
|
4895 |
|
|
point by default.
|
4896 |
|
|
+ --with-float=hard, which tells GCC to use hardware floating
|
4897 |
|
|
point by default.
|
4898 |
|
|
* A 64-bit GNU/Linux port has been added. The associated
|
4899 |
|
|
configurations are mips64-linux-gnu and mips64el-linux-gnu.
|
4900 |
|
|
* The 32-bit GNU/Linux port now supports Java.
|
4901 |
|
|
* The IRIX 6 configuration now supports the o32 ABI and will build
|
4902 |
|
|
o32 multilibs by default. This support is compatible with both
|
4903 |
|
|
binutils and the SGI tools, but note that several features,
|
4904 |
|
|
including debugging information and DWARF2 exception handling, are
|
4905 |
|
|
only available when using the GNU assembler. Use of the GNU
|
4906 |
|
|
assembler and linker (version 2.15 or above) is strongly
|
4907 |
|
|
recommended.
|
4908 |
|
|
* The IRIX 6 configuration now supports 128-bit long doubles.
|
4909 |
|
|
* There are two new RTEMS-specific configurations, mips-rtems and
|
4910 |
|
|
mipsel-rtems.
|
4911 |
|
|
* There are two new *-elf configurations, mipsisa32r2-elf and
|
4912 |
|
|
mipsisa32r2el-elf.
|
4913 |
|
|
|
4914 |
|
|
General
|
4915 |
|
|
|
4916 |
|
|
* Several [24]ABI bugs have been fixed. Unfortunately, these changes
|
4917 |
|
|
will break binary compatibility with earlier releases.
|
4918 |
|
|
* GCC can now use explicit relocation operators when generating
|
4919 |
|
|
-mabicalls code. This behavior is controlled by -mexplicit-relocs
|
4920 |
|
|
and can have several performance benefits. For example:
|
4921 |
|
|
+ It allows for more optimization of GOT accesses, including
|
4922 |
|
|
better scheduling and redundancy elimination.
|
4923 |
|
|
+ It allows sibling calls to be implemented as jumps.
|
4924 |
|
|
+ n32 and n64 leaf functions can use a call-clobbered global
|
4925 |
|
|
pointer instead of $28.
|
4926 |
|
|
+ The code to set up $gp can be removed from functions that
|
4927 |
|
|
don't need it.
|
4928 |
|
|
* A new option, -mxgot, allows the GOT to be bigger than 64k. This
|
4929 |
|
|
option is equivalent to the assembler's -xgot option and should be
|
4930 |
|
|
used instead of -Wa,-xgot.
|
4931 |
|
|
* Frame pointer elimination is now supported when generating 64-bit
|
4932 |
|
|
MIPS16 code.
|
4933 |
|
|
* Inline block moves have been optimized to take more account of
|
4934 |
|
|
alignment information.
|
4935 |
|
|
* Many internal changes have been made to the MIPS port, mostly aimed
|
4936 |
|
|
at reducing the reliance on assembler macros.
|
4937 |
|
|
|
4938 |
|
|
PowerPC
|
4939 |
|
|
|
4940 |
|
|
* GCC 3.4 releases have a number of fixes for PowerPC and PowerPC64
|
4941 |
|
|
[25]ABI incompatibilities regarding the way parameters are passed
|
4942 |
|
|
during functions calls. These changes may result in incompatibility
|
4943 |
|
|
between code compiled with GCC 3.3 and GCC 3.4.
|
4944 |
|
|
|
4945 |
|
|
PowerPC Darwin
|
4946 |
|
|
|
4947 |
|
|
* Support for shared/dylib gcc libraries has been added. It is
|
4948 |
|
|
enabled by default on powerpc-apple-darwin7.0.0 and up.
|
4949 |
|
|
* Libgcj is enabled by default. On systems older than
|
4950 |
|
|
powerpc-apple-darwin7.0.0 you need to install dlcompat.
|
4951 |
|
|
* 128-bit IBM extended precision format support added for long
|
4952 |
|
|
double.
|
4953 |
|
|
|
4954 |
|
|
PowerPC64 GNU/Linux
|
4955 |
|
|
|
4956 |
|
|
* By default, PowerPC64 GNU/Linux now uses natural alignment of
|
4957 |
|
|
structure elements. The old four byte alignment for double, with
|
4958 |
|
|
special rules for a struct starting with a double, can be chosen
|
4959 |
|
|
with -malign-power. This change may result in incompatibility
|
4960 |
|
|
between code compiled with GCC 3.3 and GCC 3.4.
|
4961 |
|
|
* -mabi=altivec is now the default rather than -mabi=no-altivec.
|
4962 |
|
|
* 128-bit IBM extended precision format support added for long
|
4963 |
|
|
double.
|
4964 |
|
|
|
4965 |
|
|
S/390 and zSeries
|
4966 |
|
|
|
4967 |
|
|
* New command-line options allow to specify the intended execution
|
4968 |
|
|
environment for generated code:
|
4969 |
|
|
+ -mesa/-mzarch allows to specify whether to generate code
|
4970 |
|
|
running in ESA/390 mode or in z/Architecture mode (this is
|
4971 |
|
|
applicable to 31-bit code only).
|
4972 |
|
|
+ -march allows to specify a minimum processor architecture
|
4973 |
|
|
level (g5, g6, z900, or z990).
|
4974 |
|
|
+ -mtune allows to specify which processor to tune for.
|
4975 |
|
|
* It is possible to customize GCC using the following configure-time
|
4976 |
|
|
options:
|
4977 |
|
|
+ --with-mode, which specifies whether to default to assuming
|
4978 |
|
|
ESA/390 or z/Architecture mode.
|
4979 |
|
|
+ --with-arch, which specifies the default value of the -march
|
4980 |
|
|
option.
|
4981 |
|
|
+ --with-tune, which specifies the default value of the -mtune
|
4982 |
|
|
option.
|
4983 |
|
|
* Support for the z990 processor has been added, and can be selected
|
4984 |
|
|
using -march=z990 or -mtune=z990. This includes instruction
|
4985 |
|
|
scheduling tuned for the superscalar instruction pipeline of the
|
4986 |
|
|
z990 processor as well as support for all new instructions provided
|
4987 |
|
|
by the long-displacement facility.
|
4988 |
|
|
* Support to generate 31-bit code optimized for zSeries processors
|
4989 |
|
|
(running in ESA/390 or in z/Architecture mode) has been added. This
|
4990 |
|
|
can be selected using -march=z900 and -mzarch respectively.
|
4991 |
|
|
* Instruction scheduling for the z900 and z990 processors now uses
|
4992 |
|
|
the DFA pipeline hazard recognizer.
|
4993 |
|
|
* GCC no longer generates code to maintain a stack backchain,
|
4994 |
|
|
previously used to generate stack backtraces for debugging
|
4995 |
|
|
purposes. As replacement that does not incur runtime overhead,
|
4996 |
|
|
DWARF-2 call frame information is provided by GCC; this is
|
4997 |
|
|
supported by GDB 6.1. The old behavior can be restored using the
|
4998 |
|
|
-mbackchain option.
|
4999 |
|
|
* The stack frame size of functions may now exceed 2 GB in 64-bit
|
5000 |
|
|
code.
|
5001 |
|
|
* A port for the 64-bit IBM TPF operating system has been added; the
|
5002 |
|
|
configuration is s390x-ibm-tpf. This configuration is supported as
|
5003 |
|
|
cross-compilation target only.
|
5004 |
|
|
* Various changes to improve the generated code have been
|
5005 |
|
|
implemented, including:
|
5006 |
|
|
+ GCC now uses the MULTIPLY AND ADD and MULTIPLY AND SUBTRACT
|
5007 |
|
|
instructions to significantly speed up many floating-point
|
5008 |
|
|
applications.
|
5009 |
|
|
+ GCC now uses the ADD LOGICAL WITH CARRY and SUBTRACT LOGICAL
|
5010 |
|
|
WITH BORROW instructions to speed up long long arithmetic.
|
5011 |
|
|
+ GCC now uses the SEARCH STRING instruction to implement
|
5012 |
|
|
strlen().
|
5013 |
|
|
+ In many cases, function call overhead for 31-bit code has been
|
5014 |
|
|
reduced by placing the literal pool after the function code
|
5015 |
|
|
instead of after the function prolog.
|
5016 |
|
|
+ Register 14 is no longer reserved in 64-bit code.
|
5017 |
|
|
+ Handling of global register variables has been improved.
|
5018 |
|
|
|
5019 |
|
|
SPARC
|
5020 |
|
|
|
5021 |
|
|
* The option -mflat is deprecated.
|
5022 |
|
|
* Support for large (> 2GB) frames has been added to the 64-bit port.
|
5023 |
|
|
* Several [26]ABI bugs have been fixed. Unfortunately, these changes
|
5024 |
|
|
will break binary compatibility with earlier releases.
|
5025 |
|
|
* The default debugging format has been switched from STABS to
|
5026 |
|
|
DWARF-2 for 32-bit code on Solaris 7 and later. DWARF-2 is already
|
5027 |
|
|
the default debugging format for 64-bit code on Solaris.
|
5028 |
|
|
|
5029 |
|
|
SuperH
|
5030 |
|
|
|
5031 |
|
|
* Support for the SH2E processor has been added. Enabled at run time
|
5032 |
|
|
with the -m2e command line switch, or at configure time by
|
5033 |
|
|
specifying sh2e as the machine part of the target triple.
|
5034 |
|
|
|
5035 |
|
|
V850
|
5036 |
|
|
|
5037 |
|
|
* Support for the Mitsubishi V850E1 processor has been added. This is
|
5038 |
|
|
a variant of the V850E processor with some additional debugging
|
5039 |
|
|
instructions.
|
5040 |
|
|
|
5041 |
|
|
Xtensa
|
5042 |
|
|
|
5043 |
|
|
* Several ABI bugs have been fixed. Unfortunately, these changes
|
5044 |
|
|
break binary compatibility with earlier releases.
|
5045 |
|
|
+ For big-endian processors, the padding of aggregate return
|
5046 |
|
|
values larger than a word has changed. If the size of an
|
5047 |
|
|
aggregate return value is not a multiple of 32 bits, previous
|
5048 |
|
|
versions of GCC inserted padding in the most-significant bytes
|
5049 |
|
|
of the first return value register. Aggregates larger than a
|
5050 |
|
|
word are now padded in the least-significant bytes of the last
|
5051 |
|
|
return value register used. Aggregates smaller than a word are
|
5052 |
|
|
still padded in the most-significant bytes. The return value
|
5053 |
|
|
padding has not changed for little-endian processors.
|
5054 |
|
|
+ Function arguments with 16-byte alignment are now properly
|
5055 |
|
|
aligned.
|
5056 |
|
|
+ The implementation of the va_list type has changed. A va_list
|
5057 |
|
|
value created by va_start from a previous release cannot be
|
5058 |
|
|
used with va_arg from this release, or vice versa.
|
5059 |
|
|
* More processor configuration options for Xtensa processors are
|
5060 |
|
|
supported:
|
5061 |
|
|
+ the ABS instruction is now optional;
|
5062 |
|
|
+ the ADDX* and SUBX* instructions are now optional;
|
5063 |
|
|
+ an experimental CONST16 instruction can be used to synthesize
|
5064 |
|
|
constants instead of loading them from constant pools.
|
5065 |
|
|
These and other Xtensa processor configuration options can no
|
5066 |
|
|
longer be enabled or disabled by command-line options; the
|
5067 |
|
|
processor configuration must be specified by the xtensa-config.h
|
5068 |
|
|
header file when building GCC. Additionally, the
|
5069 |
|
|
-mno-serialize-volatile option is no longer supported.
|
5070 |
|
|
|
5071 |
|
|
Obsolete Systems
|
5072 |
|
|
|
5073 |
|
|
Support for a number of older systems has been declared obsolete in GCC
|
5074 |
|
|
3.4. Unless there is activity to revive them, the next release of GCC
|
5075 |
|
|
will have their sources permanently removed.
|
5076 |
|
|
|
5077 |
|
|
All configurations of the following processor architectures have been
|
5078 |
|
|
declared obsolete:
|
5079 |
|
|
* Mitsubishi D30V, d30v-*
|
5080 |
|
|
* AT&T DSP1600 and DSP1610, dsp16xx-*
|
5081 |
|
|
* Intel 80960, i960
|
5082 |
|
|
|
5083 |
|
|
Also, some individual systems have been obsoleted:
|
5084 |
|
|
* ARM Family
|
5085 |
|
|
+ Support for generating code for operation in APCS/26 mode
|
5086 |
|
|
(-mapcs-26).
|
5087 |
|
|
* IBM ESA/390
|
5088 |
|
|
+ "Bigfoot" port, i370-*. (The other port, s390-*, is actively
|
5089 |
|
|
maintained and supported.)
|
5090 |
|
|
* Intel 386 family
|
5091 |
|
|
+ MOSS, i?86-moss-msdos and i?86-*-moss*
|
5092 |
|
|
+ NCR 3000 running System V r.4, i?86-ncr-sysv4*
|
5093 |
|
|
+ FreeBSD with a.out object format, i?86-*-freebsd*aout* and
|
5094 |
|
|
i?86-*-freebsd2*
|
5095 |
|
|
+ Linux with a.out object format, i?86-linux*aout*
|
5096 |
|
|
+ Linux with libc5, a.k.a. glibc1, i?86-linux*libc1*
|
5097 |
|
|
+ Interix versions before Interix 3, i?86-*-interix
|
5098 |
|
|
+ Mach microkernel, i?86-mach*
|
5099 |
|
|
+ SCO UnixWare with UDK, i?86-*-udk*
|
5100 |
|
|
+ Generic System V releases 1, 2, and 3, i?86-*-sysv[123]*
|
5101 |
|
|
+ VSTa microkernel, i386-*-vsta
|
5102 |
|
|
* Motorola M68000 family
|
5103 |
|
|
+ HPUX, m68k-hp-hpux* and m68000-hp-hpux*
|
5104 |
|
|
+ NetBSD with a.out object format (before NetBSD 1.4),
|
5105 |
|
|
m68k-*-*-netbsd* except m68k-*-*-netbsdelf*
|
5106 |
|
|
+ Generic System V r.4, m68k-*-sysv4*
|
5107 |
|
|
* VAX
|
5108 |
|
|
+ Generic VAX, vax-*-* (This is generic VAX only; we have not
|
5109 |
|
|
obsoleted any VAX triples for specific operating systems.)
|
5110 |
|
|
|
5111 |
|
|
Documentation improvements
|
5112 |
|
|
|
5113 |
|
|
Other significant improvements
|
5114 |
|
|
|
5115 |
|
|
* The build system has undergone several significant cleanups.
|
5116 |
|
|
Subdirectories will only be configured if they are being built, and
|
5117 |
|
|
all subdirectory configures are run from the make command. The top
|
5118 |
|
|
level has been autoconfiscated.
|
5119 |
|
|
* Building GCC no longer writes to its source directory. This should
|
5120 |
|
|
help those wishing to share a read-only source directory over NFS
|
5121 |
|
|
or build from a CD. The exceptions to this feature are if you
|
5122 |
|
|
configure with either --enable-maintainer-mode or
|
5123 |
|
|
--enable-generated-files-in-srcdir.
|
5124 |
|
|
* The -W warning option has been renamed to -Wextra, which is more
|
5125 |
|
|
easily understood. The older spelling will be retained for
|
5126 |
|
|
backwards compatibility.
|
5127 |
|
|
* Substantial improvements in compile time have been made,
|
5128 |
|
|
particularly for non-optimizing compilations.
|
5129 |
|
|
__________________________________________________________________
|
5130 |
|
|
|
5131 |
|
|
GCC 3.4.0
|
5132 |
|
|
|
5133 |
|
|
Bug Fixes
|
5134 |
|
|
|
5135 |
|
|
A vast number of bugs have been fixed in 3.4.0, too many to publish a
|
5136 |
|
|
complete list here. [27]Follow this link to query the Bugzilla database
|
5137 |
|
|
for the list of over 900 bugs fixed in 3.4.0. This is the list of all
|
5138 |
|
|
bugs marked as resolved and fixed in 3.4.0 that are not flagged as 3.4
|
5139 |
|
|
regressions.
|
5140 |
|
|
__________________________________________________________________
|
5141 |
|
|
|
5142 |
|
|
GCC 3.4.1
|
5143 |
|
|
|
5144 |
|
|
Bug Fixes
|
5145 |
|
|
|
5146 |
|
|
This section lists the problem reports (PRs) from GCC's bug tracking
|
5147 |
|
|
system that are known to be fixed in the 3.4.1 release. This list might
|
5148 |
|
|
not be complete (that is, it is possible that some PRs that have been
|
5149 |
|
|
fixed are not listed here).
|
5150 |
|
|
|
5151 |
|
|
Bootstrap failures
|
5152 |
|
|
|
5153 |
|
|
* [28]10129 Ada bootstrap fails on PPC-Darwin - invalid assembler
|
5154 |
|
|
emitted - PIC related
|
5155 |
|
|
* [29]14576 [ARM] ICE in libiberty when building gcc-3.4 for arm-elf
|
5156 |
|
|
* [30]14760 A bug in configure.in prevents using both
|
5157 |
|
|
--program-suffix and --program-prefix
|
5158 |
|
|
* [31]14671 [hppa64] bootstrap fails: ICE in
|
5159 |
|
|
save_call_clobbered_regs, in caller_save.c
|
5160 |
|
|
* [32]15093 [alpha][Java] make bootstrap fails to configure libffi on
|
5161 |
|
|
Alpha
|
5162 |
|
|
* [33]15178 Solaris 9/x86 fails linking after stage 3
|
5163 |
|
|
|
5164 |
|
|
Multi-platform internal compiler errors (ICEs)
|
5165 |
|
|
|
5166 |
|
|
* [34]12753 (preprocessor) Memory corruption in preprocessor on bad
|
5167 |
|
|
input
|
5168 |
|
|
* [35]13985 ICE in gcc.c-torture/compile/930621-1.c
|
5169 |
|
|
* [36]14810 (c++) tree check failures with invalid code involving
|
5170 |
|
|
templates
|
5171 |
|
|
* [37]14883 (c++) ICE on invalid code, in cp_parser_lookup_name, in
|
5172 |
|
|
cp/parser.c
|
5173 |
|
|
* [38]15044 (c++) ICE on syntax error, template header
|
5174 |
|
|
* [39]15057 (c++) Compiling of conditional value throw constructs
|
5175 |
|
|
cause a segmentation violation
|
5176 |
|
|
* [40]15064 (c++) typeid of template parameter gives ICE
|
5177 |
|
|
* [41]15142 (c++) ICE when passing a string where a char* is expected
|
5178 |
|
|
in a throw statement
|
5179 |
|
|
* [42]15159 ICE in rtl_verify_flow_info_1
|
5180 |
|
|
* [43]15165 (c++) ICE in instantiate_template
|
5181 |
|
|
* [44]15193 Unary minus using pointer to V4SF vector causes
|
5182 |
|
|
-fforce-mem to exhaust all memory
|
5183 |
|
|
* [45]15209 (c++) Runs out of memory with packed structs
|
5184 |
|
|
* [46]15227 (c++) Trouble with invalid function definition
|
5185 |
|
|
* [47]15285 (c++) instantiate_type ICE when forming pointer to
|
5186 |
|
|
template function
|
5187 |
|
|
* [48]15299 (c++) ICE in resolve_overloaded_unification
|
5188 |
|
|
* [49]15329 (c++) ICE on constructor of member template
|
5189 |
|
|
* [50]15550 ICE in extract_insn, in recog.c
|
5190 |
|
|
* [51]15554 (c++) ICE in tsubst_copy, in cp/pt.c
|
5191 |
|
|
* [52]15640 (c++) ICE on invalid code in arg_assoc, in
|
5192 |
|
|
cp/name-lookup.c
|
5193 |
|
|
* [53]15666 [unit-at-a-time] Gcc abort on valid code
|
5194 |
|
|
* [54]15696 (c++) ICE with bad pointer-to-member code
|
5195 |
|
|
* [55]15701 (c++) ICE with friends and template template parameter
|
5196 |
|
|
* [56]15761 ICE in do_SUBST, in combine.c
|
5197 |
|
|
* [57]15829 (c++) ICE on Botan-1.3.13 due to -funroll-loops
|
5198 |
|
|
|
5199 |
|
|
Ada
|
5200 |
|
|
|
5201 |
|
|
* [58]14538 All RTEMS targets broken for gnat
|
5202 |
|
|
|
5203 |
|
|
C front end
|
5204 |
|
|
|
5205 |
|
|
* [59]12391 missing warning about assigning to an incomplete type
|
5206 |
|
|
* [60]14649 atan(1.0) should not be a constant expression
|
5207 |
|
|
* [61]15004 [unit-at-a-time] no warning for unused paramater in
|
5208 |
|
|
static function
|
5209 |
|
|
* [62]15749 --pedantic-errors behaves differently from --pedantic
|
5210 |
|
|
with C-compiler on GNU/Linux
|
5211 |
|
|
|
5212 |
|
|
C++ compiler and library
|
5213 |
|
|
|
5214 |
|
|
* [63]10646 non-const reference is incorrectly matched in a "const T"
|
5215 |
|
|
partial specialization
|
5216 |
|
|
* [64]12077 wcin.rdbuf()->in_avail() return value too high
|
5217 |
|
|
* [65]13598 enc_filebuf doesn't work
|
5218 |
|
|
* [66]14211 const_cast returns lvalue but should be rvalue
|
5219 |
|
|
* [67]14220 num_put::do_put() undesired float/double behavior
|
5220 |
|
|
* [68]14245 problem with user-defined allocators in std::basic_string
|
5221 |
|
|
* [69]14340 libstdc++ Debug mode: failure to convert iterator to
|
5222 |
|
|
const_iterator
|
5223 |
|
|
* [70]14600 __gnu_cxx::stdio_sync_filebuf should expose internal
|
5224 |
|
|
FILE*
|
5225 |
|
|
* [71]14668 no warning anymore for reevaluation of declaration
|
5226 |
|
|
* [72]14775 LFS (large file support) tests missing
|
5227 |
|
|
* [73]14821 Duplicate namespace alias declaration should not conflict
|
5228 |
|
|
* [74]14930 Friend declaration ignored
|
5229 |
|
|
* [75]14932 cannot use offsetof to get offsets of array elements in
|
5230 |
|
|
g++ 3.4.0
|
5231 |
|
|
* [76]14950 [non unit-at-a-time] always_inline does not mix with
|
5232 |
|
|
templates and -O0
|
5233 |
|
|
* [77]14962 g++ ignores #pragma redefine_extname
|
5234 |
|
|
* [78]14975 Segfault on low-level write error during imbue
|
5235 |
|
|
* [79]15002 Linewise stream input is unusably slow (std::string slow)
|
5236 |
|
|
* [80]15025 compiler accepts redeclaration of template as
|
5237 |
|
|
non-template
|
5238 |
|
|
* [81]15046 [arm] Math functions misdetected by cross configuration
|
5239 |
|
|
* [82]15069 a bit test on a variable of enum type is miscompiled
|
5240 |
|
|
* [83]15074 g++ -lsupc++ still links against libstdc++
|
5241 |
|
|
* [84]15083 spurious "statement has no effect" warning
|
5242 |
|
|
* [85]15096 parse error with templates and pointer to const member
|
5243 |
|
|
* [86]15287 combination of operator[] and operator .* fails in
|
5244 |
|
|
templates
|
5245 |
|
|
* [87]15317 __attribute__ unused in first parameter of constructor
|
5246 |
|
|
gives error
|
5247 |
|
|
* [88]15337 sizeof on incomplete type diagnostic
|
5248 |
|
|
* [89]15361 bitset<>::_Find_next fails
|
5249 |
|
|
* [90]15412 _GLIBCXX_ symbols symbols defined and used in different
|
5250 |
|
|
namespaces
|
5251 |
|
|
* [91]15427 valid code results in incomplete type error
|
5252 |
|
|
* [92]15471 Incorrect member pointer offsets in anonymous
|
5253 |
|
|
structs/unions
|
5254 |
|
|
* [93]15503 nested template problem
|
5255 |
|
|
* [94]15507 compiler hangs while laying out union
|
5256 |
|
|
* [95]15542 operator & and template definitions
|
5257 |
|
|
* [96]15565 SLES9: leading + sign for unsigned int with showpos
|
5258 |
|
|
* [97]15625 friend defined inside a template fails to find static
|
5259 |
|
|
function
|
5260 |
|
|
* [98]15629 Function templates, overloads, and friend name injection
|
5261 |
|
|
* [99]15742 'noreturn' attribute ignored in method of template
|
5262 |
|
|
functions.
|
5263 |
|
|
* [100]15775 Allocator::pointer consistently ignored
|
5264 |
|
|
* [101]15821 Duplicate namespace alias within namespace rejected
|
5265 |
|
|
* [102]15862 'enum yn' fails (confict with undeclared builtin)
|
5266 |
|
|
* [103]15875 rejects pointer to member in template
|
5267 |
|
|
* [104]15877 valid code using templates and anonymous enums is
|
5268 |
|
|
rejected
|
5269 |
|
|
* [105]15947 Puzzling error message for wrong destructor declaration
|
5270 |
|
|
in template class
|
5271 |
|
|
* [106]16020 cannot copy __gnu_debug::bitset
|
5272 |
|
|
* [107]16154 input iterator concept too restrictive
|
5273 |
|
|
* [108]16174 deducing top-level consts
|
5274 |
|
|
|
5275 |
|
|
Java
|
5276 |
|
|
|
5277 |
|
|
* [109]14315 Java compiler is not parallel make safe
|
5278 |
|
|
|
5279 |
|
|
Fortran
|
5280 |
|
|
|
5281 |
|
|
* [110]15151 [g77] incorrect logical i/o in 64-bit mode
|
5282 |
|
|
|
5283 |
|
|
Objective-C
|
5284 |
|
|
|
5285 |
|
|
* [111]7993 private variables cannot be shadowed in subclasses
|
5286 |
|
|
|
5287 |
|
|
Optimization bugs
|
5288 |
|
|
|
5289 |
|
|
* [112]15228 useless copies of floating point operands
|
5290 |
|
|
* [113]15345 [non-unit-at-a-time] unreferenced nested inline
|
5291 |
|
|
functions not optimized away
|
5292 |
|
|
* [114]15945 Incorrect floating point optimization
|
5293 |
|
|
* [115]15526 ftrapv aborts on 0 * (-1)
|
5294 |
|
|
* [116]14690 Miscompiled POOMA tests
|
5295 |
|
|
* [117]15112 GCC generates code to write to unchanging memory
|
5296 |
|
|
|
5297 |
|
|
Preprocessor
|
5298 |
|
|
|
5299 |
|
|
* [118]15067 Minor glitch in the source of cpp
|
5300 |
|
|
|
5301 |
|
|
Main driver program bugs
|
5302 |
|
|
|
5303 |
|
|
* [119]1963 collect2 interprets -oldstyle_liblookup as -o
|
5304 |
|
|
ldstyle_liblookup
|
5305 |
|
|
|
5306 |
|
|
x86-specific (Intel/AMD)
|
5307 |
|
|
|
5308 |
|
|
* [120]15717 Error: can't resolve `L0' {*ABS* section} - `xx' {*UND*
|
5309 |
|
|
section}
|
5310 |
|
|
|
5311 |
|
|
HPPA-specific
|
5312 |
|
|
|
5313 |
|
|
* [121]14782 GCC produces an unaligned data access at -O2
|
5314 |
|
|
* [122]14828 FAIL: gcc.c-torture/execute/20030408-1.c execution, -O2
|
5315 |
|
|
* [123]15202 ICE in reload_cse_simplify_operands, in postreload.c
|
5316 |
|
|
|
5317 |
|
|
IA64-specific
|
5318 |
|
|
|
5319 |
|
|
* [124]14610 __float80 constants incorrectly emitted
|
5320 |
|
|
* [125]14813 init_array sections are initialized in the wrong order
|
5321 |
|
|
* [126]14857 GCC segfault on duplicated asm statement
|
5322 |
|
|
* [127]15598 Gcc 3.4 ICE on valid code
|
5323 |
|
|
* [128]15653 Gcc 3.4 ICE on valid code
|
5324 |
|
|
|
5325 |
|
|
MIPS-specific
|
5326 |
|
|
|
5327 |
|
|
* [129]15189 wrong filling of delay slot with -march=mips1 -G0
|
5328 |
|
|
-mno-split-addresses -mno-explicit-relocs
|
5329 |
|
|
* [130]15331 Assembler error building gnatlib on IRIX 6.5 with GNU as
|
5330 |
|
|
2.14.91
|
5331 |
|
|
* [131]16144 Bogus reference to __divdf3 when -O1
|
5332 |
|
|
* [132]16176 Miscompilation of unaligned data in MIPS backend
|
5333 |
|
|
|
5334 |
|
|
PowerPC-specific
|
5335 |
|
|
|
5336 |
|
|
* [133]11591 ICE in gcc.dg/altivec-5.c
|
5337 |
|
|
* [134]12028 powerpc-eabispe produces bad sCOND operation
|
5338 |
|
|
* [135]14478 rs6000 geu/ltu patterns generate incorrect code
|
5339 |
|
|
* [136]14567 long double and va_arg complex args
|
5340 |
|
|
* [137]14715 Altivec stack layout may overlap gpr save with stack
|
5341 |
|
|
temps
|
5342 |
|
|
* [138]14902 (libstdc++) Stream checking functions fail when -pthread
|
5343 |
|
|
option is used.
|
5344 |
|
|
* [139]14924 Compiler ICE on valid code
|
5345 |
|
|
* [140]14960 -maltivec affects vector return with -mabi=no-altivec
|
5346 |
|
|
* [141]15106 vector varargs failure passing from altivec to
|
5347 |
|
|
non-altivec code for -m32
|
5348 |
|
|
* [142]16026 ICE in function.c:4804, assign_parms, when -mpowerpc64 &
|
5349 |
|
|
half-word operation
|
5350 |
|
|
* [143]15191 -maltivec -mabi=no-altivec results in mis-aligned lvx
|
5351 |
|
|
and stvx
|
5352 |
|
|
* [144]15662 Segmentation fault when an exception is thrown - even if
|
5353 |
|
|
try and catch are specified
|
5354 |
|
|
|
5355 |
|
|
s390-specific
|
5356 |
|
|
|
5357 |
|
|
* [145]15054 Bad code due to overlapping stack temporaries
|
5358 |
|
|
|
5359 |
|
|
SPARC-specific
|
5360 |
|
|
|
5361 |
|
|
* [146]15783 ICE with union assignment in 64-bit mode
|
5362 |
|
|
* [147]15626 GCC 3.4 emits "ld: warning: relocation error:
|
5363 |
|
|
R_SPARC_UA32"
|
5364 |
|
|
|
5365 |
|
|
x86-64-specific
|
5366 |
|
|
|
5367 |
|
|
* [148]14326 boehm-gc hardcodes to 3DNow! prefetch for x86_64
|
5368 |
|
|
* [149]14723 Backported -march=nocona from mainline
|
5369 |
|
|
* [150]15290 __float128 failed to pass to function properly
|
5370 |
|
|
|
5371 |
|
|
Cygwin/Mingw32-specific
|
5372 |
|
|
|
5373 |
|
|
* [151]15250 Option -mms-bitfields support on GCC 3.4 is not
|
5374 |
|
|
conformant to MS layout
|
5375 |
|
|
* [152]15551 -mtune=pentium4 -O2 with sjlj EH breaks stack probe
|
5376 |
|
|
worker on windows32 targets
|
5377 |
|
|
|
5378 |
|
|
Bugs specific to embedded processors
|
5379 |
|
|
|
5380 |
|
|
* [153]8309 [m68k] -m5200 produces erroneous SImode set of short
|
5381 |
|
|
varaible on stack
|
5382 |
|
|
* [154]13250 [SH] Gcc code for rotation clobbers the register, but
|
5383 |
|
|
gcc continues to use the register as if it was not clobbered
|
5384 |
|
|
* [155]13803 [coldfire] movqi operand constraints too restrictivefor
|
5385 |
|
|
TARGET_COLDFIRE
|
5386 |
|
|
* [156]14093 [SH] ICE for code when using -mhitachi option in SH
|
5387 |
|
|
* [157]14457 [m6811hc] ICE with simple c++ source
|
5388 |
|
|
* [158]14542 [m6811hc] ICE on simple source
|
5389 |
|
|
* [159]15100 [SH] cc1plus got hang-up on
|
5390 |
|
|
libstdc++-v3/testsuite/abi_check.cc
|
5391 |
|
|
* [160]15296 [CRIS] Delayed branch scheduling causing invalid code on
|
5392 |
|
|
cris-*
|
5393 |
|
|
* [161]15396 [SH] ICE with -O2 -fPIC
|
5394 |
|
|
* [162]15782 [coldfire] m68k_output_mi_thunk emits wrong code for
|
5395 |
|
|
ColdFire
|
5396 |
|
|
|
5397 |
|
|
Testsuite problems (compiler not affected)
|
5398 |
|
|
|
5399 |
|
|
* [163]11610 libstdc++ testcases 27_io/* don't work properly remotely
|
5400 |
|
|
* [164]15488 (libstdc++) possibly insufficient file permissions for
|
5401 |
|
|
executing test suite
|
5402 |
|
|
* [165]15489 (libstdc++) testsuite_files determined incorrectly
|
5403 |
|
|
|
5404 |
|
|
Documentation bugs
|
5405 |
|
|
|
5406 |
|
|
* [166]13928 (libstdc++) no whatis info in some man pages generated
|
5407 |
|
|
by doxygen
|
5408 |
|
|
* [167]14150 Ada documentation out of date
|
5409 |
|
|
* [168]14949 (c++) Need to document method visibility changes
|
5410 |
|
|
* [169]15123 libstdc++-doc: Allocators.3 manpage is empty
|
5411 |
|
|
__________________________________________________________________
|
5412 |
|
|
|
5413 |
|
|
GCC 3.4.2
|
5414 |
|
|
|
5415 |
|
|
Bug Fixes
|
5416 |
|
|
|
5417 |
|
|
This section lists the problem reports (PRs) from GCC's bug tracking
|
5418 |
|
|
system that are known to be fixed in the 3.4.2 release. This list might
|
5419 |
|
|
not be complete (that is, it is possible that some PRs that have been
|
5420 |
|
|
fixed are not listed here).
|
5421 |
|
|
|
5422 |
|
|
Bootstrap failures and issues
|
5423 |
|
|
|
5424 |
|
|
* [170]16469 [mips-sgi-irix5.3] bootstrap fails in
|
5425 |
|
|
libstdc++-v3/testsuite
|
5426 |
|
|
* [171]16344 [hppa-linux-gnu] libstdc++'s PCH built by
|
5427 |
|
|
profiledbootstrap does not work with the built compiler
|
5428 |
|
|
* [172]16842 [Solaris/x86] mkheaders can not find mkheaders.conf
|
5429 |
|
|
|
5430 |
|
|
Multi-platform internal compiler errors (ICEs)
|
5431 |
|
|
|
5432 |
|
|
* [173]12608 (c++) ICE: expected class 't', have 'x' (error_mark) in
|
5433 |
|
|
cp_parser_class_specifier, in cp/parser.c
|
5434 |
|
|
* [174]14492 ICE in loc_descriptor_from_tree, in dwarf2out.c
|
5435 |
|
|
* [175]15461 (c++) ICE due to NRV and inlining
|
5436 |
|
|
* [176]15890 (c++) ICE in c_expand_expr, in c-common.c
|
5437 |
|
|
* [177]16180 ICE: segmentation fault in RTL optimization
|
5438 |
|
|
* [178]16224 (c++) ICE in write_unscoped_name (template/namespace)
|
5439 |
|
|
* [179]16408 ICE: in delete_insn, in cfgrtl.c
|
5440 |
|
|
* [180]16529 (c++) ICE for: namespace-alias shall not be declared as
|
5441 |
|
|
the name of any other entity
|
5442 |
|
|
* [181]16698 (c++) ICE with exceptions and declaration of __cxa_throw
|
5443 |
|
|
* [182]16706 (c++) ICE in finish_member_declaration, in
|
5444 |
|
|
cp/semantics.c
|
5445 |
|
|
* [183]16810 (c++) Legal C++ program with cast gives ICE in
|
5446 |
|
|
build_ptrmemfunc
|
5447 |
|
|
* [184]16851 (c++) ICE when throwing a comma expression
|
5448 |
|
|
* [185]16870 (c++) Boost.Spirit causes ICE in tsubst, in cp/pt.c
|
5449 |
|
|
* [186]16904 (c++) ICE in finish_class_member_access_expr, in
|
5450 |
|
|
cp/typeck.c
|
5451 |
|
|
* [187]16905 (c++) ICE (segfault) with exceptions
|
5452 |
|
|
* [188]16964 (c++) ICE in cp_parser_class_specifier due to
|
5453 |
|
|
redefinition
|
5454 |
|
|
* [189]17068 (c++) ICE: tree check: expected class 'd', have 'x'
|
5455 |
|
|
(identifier_node) in dependent_template_p, in cp/pt.c
|
5456 |
|
|
|
5457 |
|
|
Preprocessor bugs
|
5458 |
|
|
|
5459 |
|
|
* [190]16366 Preprocessor option -remap causes memory corruption
|
5460 |
|
|
|
5461 |
|
|
Optimization
|
5462 |
|
|
|
5463 |
|
|
* [191]15345 unreferenced nested inline functions not optimized away
|
5464 |
|
|
* [192]16590 Incorrect execution when compiling with -O2
|
5465 |
|
|
* [193]16693 Bitwise AND is lost when used within a cast to an enum
|
5466 |
|
|
of the same precision
|
5467 |
|
|
* [194]17078 Jump into if(0) substatement fails
|
5468 |
|
|
|
5469 |
|
|
Problems in generated debug information
|
5470 |
|
|
|
5471 |
|
|
* [195]13956 incorrect stabs for nested local variables
|
5472 |
|
|
|
5473 |
|
|
C front end bugs
|
5474 |
|
|
|
5475 |
|
|
* [196]16684 GCC should not warn about redundant redeclarations of
|
5476 |
|
|
built-ins
|
5477 |
|
|
|
5478 |
|
|
C++ compiler and library
|
5479 |
|
|
|
5480 |
|
|
* [197]12658 Thread safety problems in locale::global() and
|
5481 |
|
|
locale::locale()
|
5482 |
|
|
* [198]13092 g++ accepts invalid pointer-to-member conversion
|
5483 |
|
|
* [199]15320 Excessive memory consumption
|
5484 |
|
|
* [200]16246 Incorrect template argument deduction
|
5485 |
|
|
* [201]16273 Memory exhausted when using nested classes and virtual
|
5486 |
|
|
functions
|
5487 |
|
|
* [202]16401 ostringstream in gcc 3.4.x very slow for big data
|
5488 |
|
|
* [203]16411 undefined reference to
|
5489 |
|
|
__gnu_cxx::stdio_sync_filebuf
|
5490 |
|
|
>::file()
|
5491 |
|
|
* [204]16489 G++ incorrectly rejects use of a null constant integral
|
5492 |
|
|
expression as a null constant pointer
|
5493 |
|
|
* [205]16618 offsetof fails with constant member
|
5494 |
|
|
* [206]16637 syntax error reported for valid input code
|
5495 |
|
|
* [207]16717 __attribute__((constructor)) broken in C++
|
5496 |
|
|
* [208]16813 compiler error in DEBUG version of range insertion
|
5497 |
|
|
std::map::insert
|
5498 |
|
|
* [209]16853 pointer-to-member initialization from incompatible one
|
5499 |
|
|
accepted
|
5500 |
|
|
* [210]16889 ambiguity is not detected
|
5501 |
|
|
* [211]16959 Segmentation fault in ios_base::sync_with_stdio
|
5502 |
|
|
|
5503 |
|
|
Java compiler and library
|
5504 |
|
|
|
5505 |
|
|
* [212]7587 direct threaded interpreter not thread-safe
|
5506 |
|
|
* [213]16473 ServerSocket accept() leaks file descriptors
|
5507 |
|
|
* [214]16478 Hash synchronization deadlock with finalizers
|
5508 |
|
|
|
5509 |
|
|
Alpha-specific
|
5510 |
|
|
|
5511 |
|
|
* [215]10695 ICE in dwarf2out_frame_debug_expr, in dwarf2out.c
|
5512 |
|
|
* [216]16974 could not split insn (ice in final_scan_insn, in
|
5513 |
|
|
final.c)
|
5514 |
|
|
|
5515 |
|
|
x86-specific
|
5516 |
|
|
|
5517 |
|
|
* [217]16298 ICE in output_operand
|
5518 |
|
|
* [218]17113 ICE with SSE2 intrinsics
|
5519 |
|
|
|
5520 |
|
|
x86-64 specific
|
5521 |
|
|
|
5522 |
|
|
* [219]14697 libstdc++ couldn't find 32bit libgcc_s
|
5523 |
|
|
|
5524 |
|
|
MIPS-specific
|
5525 |
|
|
|
5526 |
|
|
* [220]15869 [mips64] No NOP after LW (with -mips1 -O0)
|
5527 |
|
|
* [221]16325 [mips64] value profiling clobbers gp on mips
|
5528 |
|
|
* [222]16357 [mipsisa64-elf] ICE copying 7 bytes between extern
|
5529 |
|
|
char[]s
|
5530 |
|
|
* [223]16380 [mips64] Use of uninitialised register after dbra
|
5531 |
|
|
conversion
|
5532 |
|
|
* [224]16407 [mips64] Unaligned access to local variables
|
5533 |
|
|
* [225]16643 [mips64] verify_local_live_at_start ICE after
|
5534 |
|
|
crossjumping & cfgcleanup
|
5535 |
|
|
|
5536 |
|
|
ARM-specific
|
5537 |
|
|
|
5538 |
|
|
* [226]15927 THUMB -O2: strength-reduced iteration variable ends up
|
5539 |
|
|
off by 1
|
5540 |
|
|
* [227]15948 THUMB: ICE with non-commutative cbranch
|
5541 |
|
|
* [228]17019 THUMB: bad switch statement in md code for
|
5542 |
|
|
addsi3_cbranch_scratch
|
5543 |
|
|
|
5544 |
|
|
IA64-specific
|
5545 |
|
|
|
5546 |
|
|
* [229]16130 ICE on valid code: in bundling, in config/ia64/ia64.c
|
5547 |
|
|
(-mtune=merced)
|
5548 |
|
|
* [230]16142 ICE on valid code: in bundling, in config/ia64/ia64.c
|
5549 |
|
|
(-mtune=itanium)
|
5550 |
|
|
* [231]16278 Gcc failed to build Linux kernel with -mtune=merced
|
5551 |
|
|
* [232]16414 ICE on valid code: typo in comparison of asm_noperands
|
5552 |
|
|
result
|
5553 |
|
|
* [233]16445 ICE on valid code: don't count ignored insns
|
5554 |
|
|
* [234]16490 ICE (segfault) while compiling with -fprofile-use
|
5555 |
|
|
* [235]16683 ia64 does not honor SUBTARGET_EXTRA_SPECS
|
5556 |
|
|
|
5557 |
|
|
PowerPC-specific
|
5558 |
|
|
|
5559 |
|
|
* [236]16195 (ppc64): Miscompilation of GCC 3.3.x by 3.4.x
|
5560 |
|
|
* [237]16239 ICE on ppc64 (mozilla 1.7 compile, -O1 -fno-exceptions
|
5561 |
|
|
issue)
|
5562 |
|
|
|
5563 |
|
|
SPARC-specific
|
5564 |
|
|
|
5565 |
|
|
* [238]16199 ICE while compiling apache 2.0.49
|
5566 |
|
|
* [239]16416 -m64 doesn't imply -mcpu=v9 anymore
|
5567 |
|
|
* [240]16430 ICE when returning non-C aggregates larger than 16 bytes
|
5568 |
|
|
|
5569 |
|
|
Bugs specific to embedded processors
|
5570 |
|
|
|
5571 |
|
|
* [241]16379 [m32r] can't output large model function call of memcpy
|
5572 |
|
|
* [242]17093 [m32r] ICE with -msdata=use -O0
|
5573 |
|
|
* [243]17119 [m32r] ICE at switch case 0x8000
|
5574 |
|
|
|
5575 |
|
|
DJGPP-specific
|
5576 |
|
|
|
5577 |
|
|
* [244]15928 libstdc++ in 3.4.x doesn't cross-compile for djgpp
|
5578 |
|
|
|
5579 |
|
|
Alpha Tru64-specific
|
5580 |
|
|
|
5581 |
|
|
* [245]16210 libstdc++ gratuitously omits "long long" I/O
|
5582 |
|
|
|
5583 |
|
|
Testsuite, documentation issues (compiler is not affected):
|
5584 |
|
|
|
5585 |
|
|
* [246]15488 (libstdc++) possibly insufficient file permissions for
|
5586 |
|
|
executing test suite
|
5587 |
|
|
* [247]16250 ada/doctools runs makeinfo even in release tarball
|
5588 |
|
|
__________________________________________________________________
|
5589 |
|
|
|
5590 |
|
|
GCC 3.4.3
|
5591 |
|
|
|
5592 |
|
|
This is the [248]list of problem reports (PRs) from GCC's bug tracking
|
5593 |
|
|
system that are known to be fixed in the 3.4.3 release. This list might
|
5594 |
|
|
not be complete (that is, it is possible that some PRs that have been
|
5595 |
|
|
fixed are not listed here).
|
5596 |
|
|
|
5597 |
|
|
Bootstrap failures
|
5598 |
|
|
|
5599 |
|
|
* [249]17369 [ia64] Bootstrap failure with binutils-2.15.90.0.1.1
|
5600 |
|
|
* [250]17850 [arm-elf] bootstrap failure - libstdc++ uses strtold
|
5601 |
|
|
when undeclared
|
5602 |
|
|
|
5603 |
|
|
Internal compiler errors (ICEs) affecting multiple platforms
|
5604 |
|
|
|
5605 |
|
|
* [251]13948 (java) GCJ segmentation fault while compiling GL4Java
|
5606 |
|
|
.class files
|
5607 |
|
|
* [252]14492 ICE in loc_descriptor_from_tree, in dwarf2out.c
|
5608 |
|
|
* [253]16301 (c++) ICE when "strong" attribute is attached to a using
|
5609 |
|
|
directive
|
5610 |
|
|
* [254]16566 ICE with flexible arrays
|
5611 |
|
|
* [255]17023 ICE with nested functions in parameter declaration
|
5612 |
|
|
* [256]17027 ICE with noreturn function in loop at -O2
|
5613 |
|
|
* [257]17524 ICE in grokdeclarator, in cp/decl.c
|
5614 |
|
|
* [258]17826 (c++) ICE in cp_tree_equal
|
5615 |
|
|
|
5616 |
|
|
C and optimization bugs
|
5617 |
|
|
|
5618 |
|
|
* [259]15526 -ftrapv aborts on 0 * (-1)
|
5619 |
|
|
* [260]16999 #ident stopped working
|
5620 |
|
|
* [261]17503 quadratic behaviour in invalid_mode_change_p
|
5621 |
|
|
* [262]17581 Long long arithmetic fails inside a switch/case
|
5622 |
|
|
statement when compiled with -O2
|
5623 |
|
|
* [263]18129 -fwritable-strings doesn't work
|
5624 |
|
|
|
5625 |
|
|
C++ compiler and library bugs
|
5626 |
|
|
|
5627 |
|
|
* [264]10975 incorrect initial ostringstream::tellp()
|
5628 |
|
|
* [265]11722 Unbuffered filebuf::sgetn is slow
|
5629 |
|
|
* [266]14534 Unrecognizing static function as a template parameter
|
5630 |
|
|
when its return value is also templated
|
5631 |
|
|
* [267]15172 Copy constructor optimization in aggregate
|
5632 |
|
|
initialization
|
5633 |
|
|
* [268]15786 Bad error message for frequently occuring error.
|
5634 |
|
|
* [269]16162 Rejects valid member-template-definition
|
5635 |
|
|
* [270]16612 empty basic_strings can't live in shared memory
|
5636 |
|
|
* [271]16715 std::basic_iostream is instantiated when used, even
|
5637 |
|
|
though instantiations are already contained in libstdc++
|
5638 |
|
|
* [272]16848 code in /ext/demangle.h appears broken
|
5639 |
|
|
* [273]17132 GCC fails to eliminate function template specialization
|
5640 |
|
|
when argument deduction fails
|
5641 |
|
|
* [274]17259 One more _S_leaf incorrectly qualified with _RopeRep::
|
5642 |
|
|
in ropeimpl.h
|
5643 |
|
|
* [275]17327 use of `enumeral_type' in template type unification
|
5644 |
|
|
* [276]17393 "unused variable '._0'" warning with -Wall
|
5645 |
|
|
* [277]17501 Confusion with member templates
|
5646 |
|
|
* [278]17537 g++ not passing -lstdc++ to linker when all command line
|
5647 |
|
|
arguments are libraries
|
5648 |
|
|
* [279]17585 usage of unqualified name of static member from within
|
5649 |
|
|
class not allowed
|
5650 |
|
|
* [280]17821 Poor diagnostic for using "." instead of "->"
|
5651 |
|
|
* [281]17829 wrong error: call of overloaded function is ambiguous
|
5652 |
|
|
* [282]17851 Misleading diagnostic for invalid function declarations
|
5653 |
|
|
with undeclared types
|
5654 |
|
|
* [283]17976 Destructor is called twice
|
5655 |
|
|
* [284]18020 rejects valid definition of enum value in template
|
5656 |
|
|
* [285]18093 bogus conflict in namespace aliasing
|
5657 |
|
|
* [286]18140 C++ parser bug when using >> in templates
|
5658 |
|
|
|
5659 |
|
|
Fortran
|
5660 |
|
|
|
5661 |
|
|
* [287]17541 data statements with double precision constants fail
|
5662 |
|
|
|
5663 |
|
|
x86-specific
|
5664 |
|
|
|
5665 |
|
|
* [288]17853 -O2 ICE for MMX testcase
|
5666 |
|
|
|
5667 |
|
|
SPARC-specific
|
5668 |
|
|
|
5669 |
|
|
* [289]17245 ICE compiling gsl-1.5 statistics/lag1.c
|
5670 |
|
|
|
5671 |
|
|
Darwin-specific
|
5672 |
|
|
|
5673 |
|
|
* [290]17167 FATAL:Symbol L_foo$stub already defined.
|
5674 |
|
|
|
5675 |
|
|
AIX-specific
|
5676 |
|
|
|
5677 |
|
|
* [291]17277 could not catch an exception when specified -maix64
|
5678 |
|
|
|
5679 |
|
|
Solaris-specific
|
5680 |
|
|
|
5681 |
|
|
* [292]17505 calls acosf(), ceilf(), and other functions
|
5682 |
|
|
missing from system libraries
|
5683 |
|
|
|
5684 |
|
|
HP/UX specific:
|
5685 |
|
|
|
5686 |
|
|
* [293]17684 /usr/ccs/bin/ld: Can't create libgcc_s.sl
|
5687 |
|
|
|
5688 |
|
|
ARM-specific
|
5689 |
|
|
|
5690 |
|
|
* [294]17384 ICE with mode attribute on structures
|
5691 |
|
|
|
5692 |
|
|
MIPS-specific
|
5693 |
|
|
|
5694 |
|
|
* [295]17770 No NOP after LWL with -mips1
|
5695 |
|
|
|
5696 |
|
|
Other embedded target specific
|
5697 |
|
|
|
5698 |
|
|
* [296]11476 [arc-elf] gcc ICE on newlib's vfprintf.c
|
5699 |
|
|
* [297]14064 [avr-elf] -fdata-sections triggers ICE
|
5700 |
|
|
* [298]14678 [m68hc11-elf] gcc ICE
|
5701 |
|
|
* [299]15583 [powerpc-rtems] powerpc-rtems lacks __USE_INIT_FINI__
|
5702 |
|
|
* [300]15790 [i686-coff] Alignment error building gcc with i686-coff
|
5703 |
|
|
target
|
5704 |
|
|
* [301]15886 [SH] Miscompilation with -O2 -fPIC
|
5705 |
|
|
* [302]16884 [avr-elf] [fweb related] bug while initializing
|
5706 |
|
|
variables
|
5707 |
|
|
|
5708 |
|
|
Bugs relating to debugger support
|
5709 |
|
|
|
5710 |
|
|
* [303]13841 missing debug info for _Complex function arguments
|
5711 |
|
|
* [304]15860 [big-endian targets] No DW_AT_location debug info is
|
5712 |
|
|
emitted for formal arguments to a function that uses "register"
|
5713 |
|
|
qualifiers
|
5714 |
|
|
|
5715 |
|
|
Testsuite issues (compiler not affected)
|
5716 |
|
|
|
5717 |
|
|
* [305]17465 Testsuite in libffi overrides LD_LIBRARY_PATH
|
5718 |
|
|
* [306]17469 Testsuite in libstdc++ overrides LD_LIBRARY_PATH
|
5719 |
|
|
* [307]18138 [mips-sgi-irix6.5] libgcc_s.so.1 not found by 64-bit
|
5720 |
|
|
testsuite
|
5721 |
|
|
|
5722 |
|
|
Documentation
|
5723 |
|
|
|
5724 |
|
|
* [308]15498 typo in gcc manual: non-existing locale example en_UK,
|
5725 |
|
|
should be en_GB
|
5726 |
|
|
* [309]15747 [mips-sgi-irix5.3] /bin/sh hangs during bootstrap:
|
5727 |
|
|
document broken shell
|
5728 |
|
|
* [310]16406 USE_LD_AS_NEEDED undocumented
|
5729 |
|
|
__________________________________________________________________
|
5730 |
|
|
|
5731 |
|
|
GCC 3.4.4
|
5732 |
|
|
|
5733 |
|
|
This is the [311]list of problem reports (PRs) from GCC's bug tracking
|
5734 |
|
|
system that are known to be fixed in the 3.4.4 release. This list might
|
5735 |
|
|
not be complete (that is, it is possible that some PRs that have been
|
5736 |
|
|
fixed are not listed here).
|
5737 |
|
|
__________________________________________________________________
|
5738 |
|
|
|
5739 |
|
|
GCC 3.4.5
|
5740 |
|
|
|
5741 |
|
|
This is the [312]list of problem reports (PRs) from GCC's bug tracking
|
5742 |
|
|
system that are known to be fixed in the 3.4.5 release. This list might
|
5743 |
|
|
not be complete (that is, it is possible that some PRs that have been
|
5744 |
|
|
fixed are not listed here).
|
5745 |
|
|
|
5746 |
|
|
Bootstrap issues
|
5747 |
|
|
|
5748 |
|
|
* [313]24688 sco_math fixincl breaks math.h
|
5749 |
|
|
|
5750 |
|
|
C compiler bugs
|
5751 |
|
|
|
5752 |
|
|
* [314]17188 struct Foo { } redefinition
|
5753 |
|
|
* [315]20187 wrong code for ((unsigned char)(unsigned long
|
5754 |
|
|
long)((a?a:1)&(a*b)))?0:1)
|
5755 |
|
|
* [316]21873 infinite warning loop on bad array initializer
|
5756 |
|
|
* [317]21899 enum definition accepts values to be overriden
|
5757 |
|
|
* [318]22061 ICE in find_function_data, in function.c
|
5758 |
|
|
* [319]22308 Failure to diagnose violation of constraint 6.516p2
|
5759 |
|
|
* [320]22458 ICE on missing brace
|
5760 |
|
|
* [321]22589 ICE casting to long long
|
5761 |
|
|
* [322]24101 Segfault with preprocessed source
|
5762 |
|
|
|
5763 |
|
|
C++ compiler and library bugs
|
5764 |
|
|
|
5765 |
|
|
* [323]10611 operations on vector mode not recognized in C++
|
5766 |
|
|
* [324]13377 unexpected behavior of namespace usage directive
|
5767 |
|
|
* [325]16002 Strange error message with new parser
|
5768 |
|
|
* [326]17413 local classes as template argument
|
5769 |
|
|
* [327]17609 spurious error message after using keyword
|
5770 |
|
|
* [328]17618 ICE in cp_convert_to_pointer, in cp/cvt.c
|
5771 |
|
|
* [329]18124 ICE with invalid template template parameter
|
5772 |
|
|
* [330]18155 typedef in template declaration not rejected
|
5773 |
|
|
* [331]18177 ICE with const_cast for undeclared variable
|
5774 |
|
|
* [332]18368 C++ error message regression
|
5775 |
|
|
* [333]16378 ICE when returning a copy of a packed member
|
5776 |
|
|
* [334]18466 int ::i; accepted
|
5777 |
|
|
* [335]18512 ICE on invalid usage of template base class
|
5778 |
|
|
* [336]18454 ICE when returning undefined type
|
5779 |
|
|
* [337]18738 typename not allowed with non-dependent qualified name
|
5780 |
|
|
* [338]18803 rejects access to operator() in template
|
5781 |
|
|
* [339]19004 ICE in uses_template_parms, in cp/pt.c
|
5782 |
|
|
* [340]19208 Spurious error about variably modified type
|
5783 |
|
|
* [341]18253 bad error message / ICE for invalid template parameter
|
5784 |
|
|
* [342]19608 ICE after friend function definition in local class
|
5785 |
|
|
* [343]19884 ICE on explicit instantiation of a non-template
|
5786 |
|
|
constructor
|
5787 |
|
|
* [344]20153 ICE when C++ template function contains anonymous union
|
5788 |
|
|
* [345]20563 Infinite loop in diagnostic (and ice after error
|
5789 |
|
|
message)
|
5790 |
|
|
* [346]20789 ICE with incomplete type in template
|
5791 |
|
|
* [347]21336 Internal compiler error when using custom new operators
|
5792 |
|
|
* [348]21768 ICE in error message due to violation of coding
|
5793 |
|
|
conventions
|
5794 |
|
|
* [349]21853 constness of pointer to data member ignored
|
5795 |
|
|
* [350]21903 Default argument of template function causes a
|
5796 |
|
|
compile-time error
|
5797 |
|
|
* [351]21983 multiple diagnostics
|
5798 |
|
|
* [352]21987 New testsuite failure
|
5799 |
|
|
g++.dg/warn/conversion-function-1.C
|
5800 |
|
|
* [353]22153 ICE on invalid template specialization
|
5801 |
|
|
* [354]22172 Internal compiler error, seg fault.
|
5802 |
|
|
* [355]21286 filebuf::xsgetn vs pipes
|
5803 |
|
|
* [356]22233 ICE with wrong number of template parameters
|
5804 |
|
|
* [357]22508 ICE after invalid operator new
|
5805 |
|
|
* [358]22545 ICE with pointer to class member & user defined
|
5806 |
|
|
conversion operator
|
5807 |
|
|
* [359]23528 Wrong default allocator in ext/hash_map
|
5808 |
|
|
* [360]23550 char_traits requirements/1.cc test bad math
|
5809 |
|
|
* [361]23586 Bad diagnostic for invalid namespace-name
|
5810 |
|
|
* [362]23624 ICE in invert_truthvalue, in fold-const.c
|
5811 |
|
|
* [363]23639 Bad error message: not a member of ''
|
5812 |
|
|
* [364]23797 ICE on typename outside template
|
5813 |
|
|
* [365]23965 Bogus error message: no matching function for call to
|
5814 |
|
|
'foo()'
|
5815 |
|
|
* [366]24052 `label_decl' not supported by dump_expr#
|
5816 |
|
|
error>
|
5817 |
|
|
* [367]24580 virtual base class cause exception not to be caught
|
5818 |
|
|
|
5819 |
|
|
Problems in generated debug information
|
5820 |
|
|
|
5821 |
|
|
* [368]24267 Bad DWARF for altivec vectors
|
5822 |
|
|
|
5823 |
|
|
Optimizations issues
|
5824 |
|
|
|
5825 |
|
|
* [369]17810 ICE in verify_local_live_at_start
|
5826 |
|
|
* [370]17860 Wrong generated code for loop with varying bound
|
5827 |
|
|
* [371]21709 ICE on compile-time complex NaN
|
5828 |
|
|
* [372]21964 broken tail call at -O2 or more
|
5829 |
|
|
* [373]22167 Strange optimization bug when using -Os
|
5830 |
|
|
* [374]22619 Compilation failure for real_const_1.f and
|
5831 |
|
|
real_const_2.f90
|
5832 |
|
|
* [375]23241 Invalid code generated for comparison of uchar to 255
|
5833 |
|
|
* [376]23478 Miscompilation due to reloading of a var that is also
|
5834 |
|
|
used in EH pad
|
5835 |
|
|
* [377]24470 segmentation fault in cc1plus when compiling with -O
|
5836 |
|
|
* [378]24950 ICE in operand_subword_force
|
5837 |
|
|
|
5838 |
|
|
Precompiled headers problems
|
5839 |
|
|
|
5840 |
|
|
* [379]14400 Cannot compile qt-x11-free-3.3.0
|
5841 |
|
|
* [380]14940 PCH largefile test fails on various platforms
|
5842 |
|
|
|
5843 |
|
|
Preprocessor bugs
|
5844 |
|
|
|
5845 |
|
|
* [381]20239 ICE on empty preprocessed input
|
5846 |
|
|
* [382]15220 "gcc -E -MM -MG" reports missing system headers in
|
5847 |
|
|
source directory
|
5848 |
|
|
|
5849 |
|
|
Testsuite issues
|
5850 |
|
|
|
5851 |
|
|
* [383]19275 gcc.dg/20020919-1.c fails with -fpic/-fPIC on
|
5852 |
|
|
i686-pc-linux-gnu
|
5853 |
|
|
|
5854 |
|
|
Alpha specific
|
5855 |
|
|
|
5856 |
|
|
* [384]21888 bootstrap failure with linker relaxation enabled
|
5857 |
|
|
|
5858 |
|
|
ARM specific
|
5859 |
|
|
|
5860 |
|
|
* [385]15342 [arm-linux]: ICE in verify_local_live_at_start
|
5861 |
|
|
* [386]23985 Memory aliasing information incorrect in inlined memcpy
|
5862 |
|
|
|
5863 |
|
|
ColdFile specific
|
5864 |
|
|
|
5865 |
|
|
* [387]16719 Illegal move of byte into address register causes
|
5866 |
|
|
compiler to ICE
|
5867 |
|
|
|
5868 |
|
|
HPPA specific
|
5869 |
|
|
|
5870 |
|
|
* [388]21723 ICE while building libgfortran
|
5871 |
|
|
* [389]21841 -mhp-ld/-mgnu-ld documentation
|
5872 |
|
|
|
5873 |
|
|
IA-64 specific
|
5874 |
|
|
|
5875 |
|
|
* [390]23644 IA-64 hardware models and configuration options
|
5876 |
|
|
documentation error
|
5877 |
|
|
* [391]24718 Shared libgcc not used for linking by default
|
5878 |
|
|
|
5879 |
|
|
M68000 specific
|
5880 |
|
|
|
5881 |
|
|
* [392]18421 ICE in reload_cse_simplify_operands, in postreload.c
|
5882 |
|
|
|
5883 |
|
|
MIPS specific
|
5884 |
|
|
|
5885 |
|
|
* [393]20621 ICE in change_address_1, in emit-rtl.c
|
5886 |
|
|
|
5887 |
|
|
PowerPC and PowerPC64 specific
|
5888 |
|
|
|
5889 |
|
|
* [394]18583 error on valid code: const
|
5890 |
|
|
__attribute__((altivec(vector__))) doesn't work in arrays
|
5891 |
|
|
* [395]20191 ICE in reload_cse_simplify_operands
|
5892 |
|
|
* [396]22083 AIX: TARGET_C99_FUNCTIONS is wrongly defined
|
5893 |
|
|
* [397]23070 CALL_V4_CLEAR_FP_ARGS flag not properly set
|
5894 |
|
|
* [398]23404 gij trashes args of functions with more than 8 fp args
|
5895 |
|
|
* [399]23539 C & C++ compiler generating misaligned references
|
5896 |
|
|
regardless of compiler flags
|
5897 |
|
|
* [400]24102 floatdisf2_internal2 broken
|
5898 |
|
|
* [401]24465 -mminimal-toc miscompilation of __thread vars
|
5899 |
|
|
|
5900 |
|
|
Solaris specific
|
5901 |
|
|
|
5902 |
|
|
* [402]19933 Problem with define of HUGE_VAL in math_c99
|
5903 |
|
|
* [403]21889 Native Solaris assembler cannot grok DTP-relative debug
|
5904 |
|
|
symbols
|
5905 |
|
|
|
5906 |
|
|
SPARC specific
|
5907 |
|
|
|
5908 |
|
|
* [404]19300 PCH failures on sparc-linux
|
5909 |
|
|
* [405]20301 Assembler labels have a leading "-"
|
5910 |
|
|
* [406]20673 C PCH testsuite assembly comparison failure
|
5911 |
|
|
|
5912 |
|
|
x86 and x86_64 specific
|
5913 |
|
|
|
5914 |
|
|
* [407]18582 ICE with arrays of type V2DF
|
5915 |
|
|
* [408]19340 Compilation SEGFAULTs with -O1 -fschedule-insns2
|
5916 |
|
|
-fsched2-use-traces
|
5917 |
|
|
* [409]21716 ICE in reg-stack.c's swap_rtx_condition
|
5918 |
|
|
* [410]24315 amd64 fails -fpeephole2
|
5919 |
|
|
__________________________________________________________________
|
5920 |
|
|
|
5921 |
|
|
GCC 3.4.6
|
5922 |
|
|
|
5923 |
|
|
This is the [411]list of problem reports (PRs) from GCC's bug tracking
|
5924 |
|
|
system that are known to be fixed in the 3.4.6 release. This list might
|
5925 |
|
|
not be complete (that is, it is possible that some PRs that have been
|
5926 |
|
|
fixed are not listed here).
|
5927 |
|
|
|
5928 |
|
|
Please send FSF & GNU inquiries & questions to [412]gnu@gnu.org. There
|
5929 |
|
|
are also [413]other ways to contact the FSF.
|
5930 |
|
|
|
5931 |
|
|
These pages are [414]maintained by the GCC team.
|
5932 |
|
|
|
5933 |
|
|
|
5934 |
|
|
For questions related to the use of GCC, please consult these web
|
5935 |
|
|
pages and the [415]GCC manuals. If that fails, the
|
5936 |
|
|
[416]gcc-help@gcc.gnu.org mailing list might help.
|
5937 |
|
|
Please send comments on these web pages and the development of GCC to
|
5938 |
|
|
our developer mailing list at [417]gcc@gnu.org or
|
5939 |
|
|
[418]gcc@gcc.gnu.org. All of our lists have [419]public archives.
|
5940 |
|
|
|
5941 |
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth
|
5942 |
|
|
Floor, Boston, MA 02110, USA.
|
5943 |
|
|
|
5944 |
|
|
Verbatim copying and distribution of this entire article is permitted
|
5945 |
|
|
in any medium, provided this notice is preserved.
|
5946 |
|
|
Last modified 2010-07-11 [420]Valid XHTML 1.0
|
5947 |
|
|
|
5948 |
|
|
References
|
5949 |
|
|
|
5950 |
|
|
1. http://gcc.gnu.org/gcc-3.4/changes.html#3.4.6
|
5951 |
|
|
2. http://gcc.gnu.org/gcc-3.4/changes.html#cplusplus
|
5952 |
|
|
3. http://gcc.gnu.org/gcc-3.3/changes.html#obsolete_systems
|
5953 |
|
|
4. http://gcc.gnu.org/gcc-3.4/changes.html#obsolete_systems
|
5954 |
|
|
5. http://gcc.gnu.org/gcc-3.4/mips-abi.html
|
5955 |
|
|
6. http://gcc.gnu.org/gcc-3.4/sparc-abi.html
|
5956 |
|
|
7. http://www.boost.org/
|
5957 |
|
|
8. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=11953
|
5958 |
|
|
9. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=8361
|
5959 |
|
|
10. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Other-Builtins.html#Other%20Builtins
|
5960 |
|
|
11. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_closed.html#209
|
5961 |
|
|
12. http://gcc.gnu.org/bugs/#cxx_rvalbind
|
5962 |
|
|
13. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html
|
5963 |
|
|
14. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html
|
5964 |
|
|
15. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Objective-C-Dialect-Options.html
|
5965 |
|
|
16. http://www.gnu.org/software/classpath/
|
5966 |
|
|
17. http://www.eclipse.org/
|
5967 |
|
|
18. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/g77/News.html
|
5968 |
|
|
19. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Alpha-Built-in-Functions.html
|
5969 |
|
|
20. http://h30097.www3.hp.com/docs/base_doc/DOCUMENTATION/V51A_HTML/ARH9MBTE/DTMNPLTN.HTM#normal-argument-list-structure
|
5970 |
|
|
21. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gccint/Processor-pipeline-description.html
|
5971 |
|
|
22. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gccint/Comparison-of-the-two-descriptions.html
|
5972 |
|
|
23. http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gccint/Processor-pipeline-description.html
|
5973 |
|
|
24. http://gcc.gnu.org/gcc-3.4/mips-abi.html
|
5974 |
|
|
25. http://gcc.gnu.org/gcc-3.4/powerpc-abi.html
|
5975 |
|
|
26. http://gcc.gnu.org/gcc-3.4/sparc-abi.html
|
5976 |
|
|
27. http://gcc.gnu.org/bugzilla/buglist.cgi?short_desc_type=notregexp&short_desc=%5C%5B3%5C.4.*%5BRr%5Degression&target_milestone=3.4.0&bug_status=RESOLVED&resolution=FIXED
|
5977 |
|
|
28. http://gcc.gnu.org/PR10129
|
5978 |
|
|
29. http://gcc.gnu.org/PR14576
|
5979 |
|
|
30. http://gcc.gnu.org/PR14760
|
5980 |
|
|
31. http://gcc.gnu.org/PR14671
|
5981 |
|
|
32. http://gcc.gnu.org/PR15093
|
5982 |
|
|
33. http://gcc.gnu.org/PR15178
|
5983 |
|
|
34. http://gcc.gnu.org/PR12753
|
5984 |
|
|
35. http://gcc.gnu.org/PR13985
|
5985 |
|
|
36. http://gcc.gnu.org/PR14810
|
5986 |
|
|
37. http://gcc.gnu.org/PR14883
|
5987 |
|
|
38. http://gcc.gnu.org/PR15044
|
5988 |
|
|
39. http://gcc.gnu.org/PR15057
|
5989 |
|
|
40. http://gcc.gnu.org/PR15064
|
5990 |
|
|
41. http://gcc.gnu.org/PR15142
|
5991 |
|
|
42. http://gcc.gnu.org/PR15159
|
5992 |
|
|
43. http://gcc.gnu.org/PR15165
|
5993 |
|
|
44. http://gcc.gnu.org/PR15193
|
5994 |
|
|
45. http://gcc.gnu.org/PR15209
|
5995 |
|
|
46. http://gcc.gnu.org/PR15227
|
5996 |
|
|
47. http://gcc.gnu.org/PR15285
|
5997 |
|
|
48. http://gcc.gnu.org/PR15299
|
5998 |
|
|
49. http://gcc.gnu.org/PR15329
|
5999 |
|
|
50. http://gcc.gnu.org/PR15550
|
6000 |
|
|
51. http://gcc.gnu.org/PR15554
|
6001 |
|
|
52. http://gcc.gnu.org/PR15640
|
6002 |
|
|
53. http://gcc.gnu.org/PR15666
|
6003 |
|
|
54. http://gcc.gnu.org/PR15696
|
6004 |
|
|
55. http://gcc.gnu.org/PR15701
|
6005 |
|
|
56. http://gcc.gnu.org/PR15761
|
6006 |
|
|
57. http://gcc.gnu.org/PR15829
|
6007 |
|
|
58. http://gcc.gnu.org/PR14538
|
6008 |
|
|
59. http://gcc.gnu.org/PR12391
|
6009 |
|
|
60. http://gcc.gnu.org/PR14649
|
6010 |
|
|
61. http://gcc.gnu.org/PR15004
|
6011 |
|
|
62. http://gcc.gnu.org/PR15749
|
6012 |
|
|
63. http://gcc.gnu.org/PR10646
|
6013 |
|
|
64. http://gcc.gnu.org/PR12077
|
6014 |
|
|
65. http://gcc.gnu.org/PR13598
|
6015 |
|
|
66. http://gcc.gnu.org/PR14211
|
6016 |
|
|
67. http://gcc.gnu.org/PR14220
|
6017 |
|
|
68. http://gcc.gnu.org/PR14245
|
6018 |
|
|
69. http://gcc.gnu.org/PR14340
|
6019 |
|
|
70. http://gcc.gnu.org/PR14600
|
6020 |
|
|
71. http://gcc.gnu.org/PR14668
|
6021 |
|
|
72. http://gcc.gnu.org/PR14775
|
6022 |
|
|
73. http://gcc.gnu.org/PR14821
|
6023 |
|
|
74. http://gcc.gnu.org/PR14930
|
6024 |
|
|
75. http://gcc.gnu.org/PR14932
|
6025 |
|
|
76. http://gcc.gnu.org/PR14950
|
6026 |
|
|
77. http://gcc.gnu.org/PR14962
|
6027 |
|
|
78. http://gcc.gnu.org/PR14975
|
6028 |
|
|
79. http://gcc.gnu.org/PR15002
|
6029 |
|
|
80. http://gcc.gnu.org/PR15025
|
6030 |
|
|
81. http://gcc.gnu.org/PR15046
|
6031 |
|
|
82. http://gcc.gnu.org/PR15069
|
6032 |
|
|
83. http://gcc.gnu.org/PR15074
|
6033 |
|
|
84. http://gcc.gnu.org/PR15083
|
6034 |
|
|
85. http://gcc.gnu.org/PR15096
|
6035 |
|
|
86. http://gcc.gnu.org/PR15287
|
6036 |
|
|
87. http://gcc.gnu.org/PR15317
|
6037 |
|
|
88. http://gcc.gnu.org/PR15337
|
6038 |
|
|
89. http://gcc.gnu.org/PR15361
|
6039 |
|
|
90. http://gcc.gnu.org/PR15412
|
6040 |
|
|
91. http://gcc.gnu.org/PR15427
|
6041 |
|
|
92. http://gcc.gnu.org/PR15471
|
6042 |
|
|
93. http://gcc.gnu.org/PR15503
|
6043 |
|
|
94. http://gcc.gnu.org/PR15507
|
6044 |
|
|
95. http://gcc.gnu.org/PR15542
|
6045 |
|
|
96. http://gcc.gnu.org/PR15565
|
6046 |
|
|
97. http://gcc.gnu.org/PR15625
|
6047 |
|
|
98. http://gcc.gnu.org/PR15629
|
6048 |
|
|
99. http://gcc.gnu.org/PR15742
|
6049 |
|
|
100. http://gcc.gnu.org/PR15775
|
6050 |
|
|
101. http://gcc.gnu.org/PR15821
|
6051 |
|
|
102. http://gcc.gnu.org/PR15862
|
6052 |
|
|
103. http://gcc.gnu.org/PR15875
|
6053 |
|
|
104. http://gcc.gnu.org/PR15877
|
6054 |
|
|
105. http://gcc.gnu.org/PR15947
|
6055 |
|
|
106. http://gcc.gnu.org/PR16020
|
6056 |
|
|
107. http://gcc.gnu.org/PR16154
|
6057 |
|
|
108. http://gcc.gnu.org/PR16174
|
6058 |
|
|
109. http://gcc.gnu.org/PR14315
|
6059 |
|
|
110. http://gcc.gnu.org/PR15151
|
6060 |
|
|
111. http://gcc.gnu.org/PR7993
|
6061 |
|
|
112. http://gcc.gnu.org/PR15228
|
6062 |
|
|
113. http://gcc.gnu.org/PR15345
|
6063 |
|
|
114. http://gcc.gnu.org/PR15945
|
6064 |
|
|
115. http://gcc.gnu.org/PR15526
|
6065 |
|
|
116. http://gcc.gnu.org/PR14690
|
6066 |
|
|
117. http://gcc.gnu.org/PR15112
|
6067 |
|
|
118. http://gcc.gnu.org/PR15067
|
6068 |
|
|
119. http://gcc.gnu.org/PR1963
|
6069 |
|
|
120. http://gcc.gnu.org/PR15717
|
6070 |
|
|
121. http://gcc.gnu.org/PR14782
|
6071 |
|
|
122. http://gcc.gnu.org/PR14828
|
6072 |
|
|
123. http://gcc.gnu.org/PR15202
|
6073 |
|
|
124. http://gcc.gnu.org/PR14610
|
6074 |
|
|
125. http://gcc.gnu.org/PR14813
|
6075 |
|
|
126. http://gcc.gnu.org/PR14857
|
6076 |
|
|
127. http://gcc.gnu.org/PR15598
|
6077 |
|
|
128. http://gcc.gnu.org/PR15653
|
6078 |
|
|
129. http://gcc.gnu.org/PR15189
|
6079 |
|
|
130. http://gcc.gnu.org/PR15331
|
6080 |
|
|
131. http://gcc.gnu.org/PR16144
|
6081 |
|
|
132. http://gcc.gnu.org/PR16176
|
6082 |
|
|
133. http://gcc.gnu.org/PR11591
|
6083 |
|
|
134. http://gcc.gnu.org/PR12028
|
6084 |
|
|
135. http://gcc.gnu.org/PR14478
|
6085 |
|
|
136. http://gcc.gnu.org/PR14567
|
6086 |
|
|
137. http://gcc.gnu.org/PR14715
|
6087 |
|
|
138. http://gcc.gnu.org/PR14902
|
6088 |
|
|
139. http://gcc.gnu.org/PR14924
|
6089 |
|
|
140. http://gcc.gnu.org/PR14960
|
6090 |
|
|
141. http://gcc.gnu.org/PR15106
|
6091 |
|
|
142. http://gcc.gnu.org/PR16026
|
6092 |
|
|
143. http://gcc.gnu.org/PR15191
|
6093 |
|
|
144. http://gcc.gnu.org/PR15662
|
6094 |
|
|
145. http://gcc.gnu.org/PR15054
|
6095 |
|
|
146. http://gcc.gnu.org/PR15783
|
6096 |
|
|
147. http://gcc.gnu.org/PR15626
|
6097 |
|
|
148. http://gcc.gnu.org/PR14326
|
6098 |
|
|
149. http://gcc.gnu.org/PR14723
|
6099 |
|
|
150. http://gcc.gnu.org/PR15290
|
6100 |
|
|
151. http://gcc.gnu.org/PR15250
|
6101 |
|
|
152. http://gcc.gnu.org/PR15551
|
6102 |
|
|
153. http://gcc.gnu.org/PR8309
|
6103 |
|
|
154. http://gcc.gnu.org/PR13250
|
6104 |
|
|
155. http://gcc.gnu.org/PR13803
|
6105 |
|
|
156. http://gcc.gnu.org/PR14093
|
6106 |
|
|
157. http://gcc.gnu.org/PR14457
|
6107 |
|
|
158. http://gcc.gnu.org/PR14542
|
6108 |
|
|
159. http://gcc.gnu.org/PR15100
|
6109 |
|
|
160. http://gcc.gnu.org/PR15296
|
6110 |
|
|
161. http://gcc.gnu.org/PR15396
|
6111 |
|
|
162. http://gcc.gnu.org/PR15782
|
6112 |
|
|
163. http://gcc.gnu.org/PR11610
|
6113 |
|
|
164. http://gcc.gnu.org/PR15488
|
6114 |
|
|
165. http://gcc.gnu.org/PR15489
|
6115 |
|
|
166. http://gcc.gnu.org/PR13928
|
6116 |
|
|
167. http://gcc.gnu.org/PR14150
|
6117 |
|
|
168. http://gcc.gnu.org/PR14949
|
6118 |
|
|
169. http://gcc.gnu.org/PR15123
|
6119 |
|
|
170. http://gcc.gnu.org/PR16469
|
6120 |
|
|
171. http://gcc.gnu.org/PR16344
|
6121 |
|
|
172. http://gcc.gnu.org/PR16842
|
6122 |
|
|
173. http://gcc.gnu.org/PR12608
|
6123 |
|
|
174. http://gcc.gnu.org/PR14492
|
6124 |
|
|
175. http://gcc.gnu.org/PR15461
|
6125 |
|
|
176. http://gcc.gnu.org/PR15890
|
6126 |
|
|
177. http://gcc.gnu.org/PR16180
|
6127 |
|
|
178. http://gcc.gnu.org/PR16224
|
6128 |
|
|
179. http://gcc.gnu.org/PR16408
|
6129 |
|
|
180. http://gcc.gnu.org/PR16529
|
6130 |
|
|
181. http://gcc.gnu.org/PR16698
|
6131 |
|
|
182. http://gcc.gnu.org/PR16706
|
6132 |
|
|
183. http://gcc.gnu.org/PR16810
|
6133 |
|
|
184. http://gcc.gnu.org/PR16851
|
6134 |
|
|
185. http://gcc.gnu.org/PR16870
|
6135 |
|
|
186. http://gcc.gnu.org/PR16904
|
6136 |
|
|
187. http://gcc.gnu.org/PR16905
|
6137 |
|
|
188. http://gcc.gnu.org/PR16964
|
6138 |
|
|
189. http://gcc.gnu.org/PR17068
|
6139 |
|
|
190. http://gcc.gnu.org/PR16366
|
6140 |
|
|
191. http://gcc.gnu.org/PR15345
|
6141 |
|
|
192. http://gcc.gnu.org/PR16590
|
6142 |
|
|
193. http://gcc.gnu.org/PR16693
|
6143 |
|
|
194. http://gcc.gnu.org/PR17078
|
6144 |
|
|
195. http://gcc.gnu.org/PR13956
|
6145 |
|
|
196. http://gcc.gnu.org/PR16684
|
6146 |
|
|
197. http://gcc.gnu.org/PR12658
|
6147 |
|
|
198. http://gcc.gnu.org/PR13092
|
6148 |
|
|
199. http://gcc.gnu.org/PR15320
|
6149 |
|
|
200. http://gcc.gnu.org/PR16246
|
6150 |
|
|
201. http://gcc.gnu.org/PR16273
|
6151 |
|
|
202. http://gcc.gnu.org/PR16401
|
6152 |
|
|
203. http://gcc.gnu.org/PR16411
|
6153 |
|
|
204. http://gcc.gnu.org/PR16489
|
6154 |
|
|
205. http://gcc.gnu.org/PR16618
|
6155 |
|
|
206. http://gcc.gnu.org/PR16637
|
6156 |
|
|
207. http://gcc.gnu.org/PR16717
|
6157 |
|
|
208. http://gcc.gnu.org/PR16813
|
6158 |
|
|
209. http://gcc.gnu.org/PR16853
|
6159 |
|
|
210. http://gcc.gnu.org/PR16889
|
6160 |
|
|
211. http://gcc.gnu.org/PR16959
|
6161 |
|
|
212. http://gcc.gnu.org/PR7587
|
6162 |
|
|
213. http://gcc.gnu.org/PR16473
|
6163 |
|
|
214. http://gcc.gnu.org/PR16478
|
6164 |
|
|
215. http://gcc.gnu.org/PR10695
|
6165 |
|
|
216. http://gcc.gnu.org/PR16974
|
6166 |
|
|
217. http://gcc.gnu.org/PR16298
|
6167 |
|
|
218. http://gcc.gnu.org/PR17113
|
6168 |
|
|
219. http://gcc.gnu.org/PR14697
|
6169 |
|
|
220. http://gcc.gnu.org/PR15869
|
6170 |
|
|
221. http://gcc.gnu.org/PR16325
|
6171 |
|
|
222. http://gcc.gnu.org/PR16357
|
6172 |
|
|
223. http://gcc.gnu.org/PR16380
|
6173 |
|
|
224. http://gcc.gnu.org/PR16407
|
6174 |
|
|
225. http://gcc.gnu.org/PR16643
|
6175 |
|
|
226. http://gcc.gnu.org/PR15927
|
6176 |
|
|
227. http://gcc.gnu.org/PR15948
|
6177 |
|
|
228. http://gcc.gnu.org/PR17019
|
6178 |
|
|
229. http://gcc.gnu.org/PR16130
|
6179 |
|
|
230. http://gcc.gnu.org/PR16142
|
6180 |
|
|
231. http://gcc.gnu.org/PR16278
|
6181 |
|
|
232. http://gcc.gnu.org/PR16414
|
6182 |
|
|
233. http://gcc.gnu.org/PR16445
|
6183 |
|
|
234. http://gcc.gnu.org/PR16490
|
6184 |
|
|
235. http://gcc.gnu.org/PR16683
|
6185 |
|
|
236. http://gcc.gnu.org/PR16195
|
6186 |
|
|
237. http://gcc.gnu.org/PR16239
|
6187 |
|
|
238. http://gcc.gnu.org/PR16199
|
6188 |
|
|
239. http://gcc.gnu.org/PR16416
|
6189 |
|
|
240. http://gcc.gnu.org/PR16430
|
6190 |
|
|
241. http://gcc.gnu.org/PR16379
|
6191 |
|
|
242. http://gcc.gnu.org/PR17093
|
6192 |
|
|
243. http://gcc.gnu.org/PR17119
|
6193 |
|
|
244. http://gcc.gnu.org/PR15928
|
6194 |
|
|
245. http://gcc.gnu.org/PR16210
|
6195 |
|
|
246. http://gcc.gnu.org/PR15488
|
6196 |
|
|
247. http://gcc.gnu.org/PR16250
|
6197 |
|
|
248. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.4.3
|
6198 |
|
|
249. http://gcc.gnu.org/PR17369
|
6199 |
|
|
250. http://gcc.gnu.org/PR17850
|
6200 |
|
|
251. http://gcc.gnu.org/PR13948
|
6201 |
|
|
252. http://gcc.gnu.org/PR14492
|
6202 |
|
|
253. http://gcc.gnu.org/PR16301
|
6203 |
|
|
254. http://gcc.gnu.org/PR16566
|
6204 |
|
|
255. http://gcc.gnu.org/PR17023
|
6205 |
|
|
256. http://gcc.gnu.org/PR17027
|
6206 |
|
|
257. http://gcc.gnu.org/PR17524
|
6207 |
|
|
258. http://gcc.gnu.org/PR17826
|
6208 |
|
|
259. http://gcc.gnu.org/PR15526
|
6209 |
|
|
260. http://gcc.gnu.org/PR16999
|
6210 |
|
|
261. http://gcc.gnu.org/PR17503
|
6211 |
|
|
262. http://gcc.gnu.org/PR17581
|
6212 |
|
|
263. http://gcc.gnu.org/PR18129
|
6213 |
|
|
264. http://gcc.gnu.org/PR10975
|
6214 |
|
|
265. http://gcc.gnu.org/PR11722
|
6215 |
|
|
266. http://gcc.gnu.org/PR14534
|
6216 |
|
|
267. http://gcc.gnu.org/PR15172
|
6217 |
|
|
268. http://gcc.gnu.org/PR15786
|
6218 |
|
|
269. http://gcc.gnu.org/PR16162
|
6219 |
|
|
270. http://gcc.gnu.org/PR16612
|
6220 |
|
|
271. http://gcc.gnu.org/PR16715
|
6221 |
|
|
272. http://gcc.gnu.org/PR16848
|
6222 |
|
|
273. http://gcc.gnu.org/PR17132
|
6223 |
|
|
274. http://gcc.gnu.org/PR17259
|
6224 |
|
|
275. http://gcc.gnu.org/PR17327
|
6225 |
|
|
276. http://gcc.gnu.org/PR17393
|
6226 |
|
|
277. http://gcc.gnu.org/PR17501
|
6227 |
|
|
278. http://gcc.gnu.org/PR17537
|
6228 |
|
|
279. http://gcc.gnu.org/PR17585
|
6229 |
|
|
280. http://gcc.gnu.org/PR17821
|
6230 |
|
|
281. http://gcc.gnu.org/PR17829
|
6231 |
|
|
282. http://gcc.gnu.org/PR17851
|
6232 |
|
|
283. http://gcc.gnu.org/PR17976
|
6233 |
|
|
284. http://gcc.gnu.org/PR18020
|
6234 |
|
|
285. http://gcc.gnu.org/PR18093
|
6235 |
|
|
286. http://gcc.gnu.org/PR18140
|
6236 |
|
|
287. http://gcc.gnu.org/PR17541
|
6237 |
|
|
288. http://gcc.gnu.org/PR17853
|
6238 |
|
|
289. http://gcc.gnu.org/PR17245
|
6239 |
|
|
290. http://gcc.gnu.org/PR17167
|
6240 |
|
|
291. http://gcc.gnu.org/PR17277
|
6241 |
|
|
292. http://gcc.gnu.org/PR17505
|
6242 |
|
|
293. http://gcc.gnu.org/PR17684
|
6243 |
|
|
294. http://gcc.gnu.org/PR17384
|
6244 |
|
|
295. http://gcc.gnu.org/PR17770
|
6245 |
|
|
296. http://gcc.gnu.org/PR11476
|
6246 |
|
|
297. http://gcc.gnu.org/PR14064
|
6247 |
|
|
298. http://gcc.gnu.org/PR14678
|
6248 |
|
|
299. http://gcc.gnu.org/PR15583
|
6249 |
|
|
300. http://gcc.gnu.org/PR15790
|
6250 |
|
|
301. http://gcc.gnu.org/PR15886
|
6251 |
|
|
302. http://gcc.gnu.org/PR16884
|
6252 |
|
|
303. http://gcc.gnu.org/PR13841
|
6253 |
|
|
304. http://gcc.gnu.org/PR15860
|
6254 |
|
|
305. http://gcc.gnu.org/PR17465
|
6255 |
|
|
306. http://gcc.gnu.org/PR17469
|
6256 |
|
|
307. http://gcc.gnu.org/PR18138
|
6257 |
|
|
308. http://gcc.gnu.org/PR15498
|
6258 |
|
|
309. http://gcc.gnu.org/PR15747
|
6259 |
|
|
310. http://gcc.gnu.org/PR16406
|
6260 |
|
|
311. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.4.4
|
6261 |
|
|
312. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.4.5
|
6262 |
|
|
313. http://gcc.gnu.org/PR24688
|
6263 |
|
|
314. http://gcc.gnu.org/PR17188
|
6264 |
|
|
315. http://gcc.gnu.org/PR20187
|
6265 |
|
|
316. http://gcc.gnu.org/PR21873
|
6266 |
|
|
317. http://gcc.gnu.org/PR21899
|
6267 |
|
|
318. http://gcc.gnu.org/PR22061
|
6268 |
|
|
319. http://gcc.gnu.org/PR22208
|
6269 |
|
|
320. http://gcc.gnu.org/PR22458
|
6270 |
|
|
321. http://gcc.gnu.org/PR22589
|
6271 |
|
|
322. http://gcc.gnu.org/PR24101
|
6272 |
|
|
323. http://gcc.gnu.org/PR10611
|
6273 |
|
|
324. http://gcc.gnu.org/PR13377
|
6274 |
|
|
325. http://gcc.gnu.org/PR16002
|
6275 |
|
|
326. http://gcc.gnu.org/PR17413
|
6276 |
|
|
327. http://gcc.gnu.org/PR17609
|
6277 |
|
|
328. http://gcc.gnu.org/PR17618
|
6278 |
|
|
329. http://gcc.gnu.org/PR18124
|
6279 |
|
|
330. http://gcc.gnu.org/PR18155
|
6280 |
|
|
331. http://gcc.gnu.org/PR18177
|
6281 |
|
|
332. http://gcc.gnu.org/PR18368
|
6282 |
|
|
333. http://gcc.gnu.org/PR18378
|
6283 |
|
|
334. http://gcc.gnu.org/PR18466
|
6284 |
|
|
335. http://gcc.gnu.org/PR18512
|
6285 |
|
|
336. http://gcc.gnu.org/PR18545
|
6286 |
|
|
337. http://gcc.gnu.org/PR18738
|
6287 |
|
|
338. http://gcc.gnu.org/PR18803
|
6288 |
|
|
339. http://gcc.gnu.org/PR19004
|
6289 |
|
|
340. http://gcc.gnu.org/PR19208
|
6290 |
|
|
341. http://gcc.gnu.org/PR19253
|
6291 |
|
|
342. http://gcc.gnu.org/PR19608
|
6292 |
|
|
343. http://gcc.gnu.org/PR19884
|
6293 |
|
|
344. http://gcc.gnu.org/PR20153
|
6294 |
|
|
345. http://gcc.gnu.org/PR20563
|
6295 |
|
|
346. http://gcc.gnu.org/PR20789
|
6296 |
|
|
347. http://gcc.gnu.org/PR21336
|
6297 |
|
|
348. http://gcc.gnu.org/PR21768
|
6298 |
|
|
349. http://gcc.gnu.org/PR21853
|
6299 |
|
|
350. http://gcc.gnu.org/PR21903
|
6300 |
|
|
351. http://gcc.gnu.org/PR21983
|
6301 |
|
|
352. http://gcc.gnu.org/PR21987
|
6302 |
|
|
353. http://gcc.gnu.org/PR22153
|
6303 |
|
|
354. http://gcc.gnu.org/PR22172
|
6304 |
|
|
355. http://gcc.gnu.org/PR21286
|
6305 |
|
|
356. http://gcc.gnu.org/PR22233
|
6306 |
|
|
357. http://gcc.gnu.org/PR22508
|
6307 |
|
|
358. http://gcc.gnu.org/PR22545
|
6308 |
|
|
359. http://gcc.gnu.org/PR23528
|
6309 |
|
|
360. http://gcc.gnu.org/PR23550
|
6310 |
|
|
361. http://gcc.gnu.org/PR23586
|
6311 |
|
|
362. http://gcc.gnu.org/PR23624
|
6312 |
|
|
363. http://gcc.gnu.org/PR23639
|
6313 |
|
|
364. http://gcc.gnu.org/PR23797
|
6314 |
|
|
365. http://gcc.gnu.org/PR23965
|
6315 |
|
|
366. http://gcc.gnu.org/PR24052
|
6316 |
|
|
367. http://gcc.gnu.org/PR24580
|
6317 |
|
|
368. http://gcc.gnu.org/PR24267
|
6318 |
|
|
369. http://gcc.gnu.org/PR17810
|
6319 |
|
|
370. http://gcc.gnu.org/PR17860
|
6320 |
|
|
371. http://gcc/gnu.org/PR21709
|
6321 |
|
|
372. http://gcc.gnu.org/PR21964
|
6322 |
|
|
373. http://gcc.gnu.org/PR22167
|
6323 |
|
|
374. http://gcc.gnu.org/PR22619
|
6324 |
|
|
375. http://gcc.gnu.org/PR23241
|
6325 |
|
|
376. http://gcc.gnu.org/PR23478
|
6326 |
|
|
377. http://gcc.gnu.org/PR24470
|
6327 |
|
|
378. http://gcc.gnu.org/PR24950
|
6328 |
|
|
379. http://gcc.gnu.org/PR14400
|
6329 |
|
|
380. http://gcc.gnu.org/PR14940
|
6330 |
|
|
381. http://gcc.gnu.org/PR20239
|
6331 |
|
|
382. http://gcc.gnu.org/PR15220
|
6332 |
|
|
383. http://gcc.gnu.org/PR19275
|
6333 |
|
|
384. http://gcc.gnu.org/PR21888
|
6334 |
|
|
385. http://gcc.gnu.org/PR15342
|
6335 |
|
|
386. http://gcc.gnu.org/PR23985
|
6336 |
|
|
387. http://gcc.gnu.org/PR16719
|
6337 |
|
|
388. http://gcc.gnu.org/PR21723
|
6338 |
|
|
389. http://gcc.gnu.org/PR21841
|
6339 |
|
|
390. http://gcc.gnu.org/PR23644
|
6340 |
|
|
391. http://gcc.gnu.org/PR24718
|
6341 |
|
|
392. http://gcc.gnu.org/PR18421
|
6342 |
|
|
393. http://gcc.gnu.org/PR20621
|
6343 |
|
|
394. http://gcc.gnu.org/PR18583
|
6344 |
|
|
395. http://gcc.gnu.org/PR20191
|
6345 |
|
|
396. http://gcc.gnu.org/PR22083
|
6346 |
|
|
397. http://gcc.gnu.org/PR23070
|
6347 |
|
|
398. http://gcc.gnu.org/PR23404
|
6348 |
|
|
399. http://gcc.gnu.org/PR23539
|
6349 |
|
|
400. http://gcc.gnu.org/PR24102
|
6350 |
|
|
401. http://gcc.gnu.org/PR24465
|
6351 |
|
|
402. http://gcc.gnu.org/PR19933
|
6352 |
|
|
403. http://gcc.gnu.org/PR21889
|
6353 |
|
|
404. http://gcc.gnu.org/PR19300
|
6354 |
|
|
405. http://gcc.gnu.org/PR20301
|
6355 |
|
|
406. http://gcc.gnu.org/PR20673
|
6356 |
|
|
407. http://gcc.gnu.org/PR18582
|
6357 |
|
|
408. http://gcc.gnu.org/PR19340
|
6358 |
|
|
409. http://gcc.gnu.org/PR21716
|
6359 |
|
|
410. http://gcc.gnu.org/PR24315
|
6360 |
|
|
411. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.4.6
|
6361 |
|
|
412. mailto:gnu@gnu.org
|
6362 |
|
|
413. http://www.gnu.org/home.html#ContactInfo
|
6363 |
|
|
414. http://gcc.gnu.org/about.html
|
6364 |
|
|
415. http://gcc.gnu.org/onlinedocs/
|
6365 |
|
|
416. mailto:gcc-help@gcc.gnu.org
|
6366 |
|
|
417. mailto:gcc@gnu.org
|
6367 |
|
|
418. mailto:gcc@gcc.gnu.org
|
6368 |
|
|
419. http://gcc.gnu.org/lists.html
|
6369 |
|
|
420. http://validator.w3.org/check/referer
|
6370 |
|
|
======================================================================
|
6371 |
|
|
http://gcc.gnu.org/gcc-3.3/index.html
|
6372 |
|
|
|
6373 |
|
|
GCC 3.3 Release Series
|
6374 |
|
|
|
6375 |
|
|
May 03, 2005
|
6376 |
|
|
|
6377 |
|
|
The [1]GNU project and the GCC developers are pleased to announce the
|
6378 |
|
|
release of GCC 3.3.6.
|
6379 |
|
|
|
6380 |
|
|
This release is a bug-fix release, containing fixes for regressions in
|
6381 |
|
|
GCC 3.3.5 relative to previous releases of GCC.
|
6382 |
|
|
|
6383 |
|
|
This release is the last of the series 3.3.x.
|
6384 |
|
|
|
6385 |
|
|
The GCC 3.3 release series includes numerous [2]new features,
|
6386 |
|
|
improvements, bug fixes, and other changes, thanks to an [3]amazing
|
6387 |
|
|
group of volunteers.
|
6388 |
|
|
|
6389 |
|
|
Release History
|
6390 |
|
|
|
6391 |
|
|
GCC 3.3.6
|
6392 |
|
|
May 3, 2005 ([4]changes)
|
6393 |
|
|
|
6394 |
|
|
GCC 3.3.5
|
6395 |
|
|
September 30, 2004 ([5]changes)
|
6396 |
|
|
|
6397 |
|
|
GCC 3.3.4
|
6398 |
|
|
May 31, 2004 ([6]changes)
|
6399 |
|
|
|
6400 |
|
|
GCC 3.3.3
|
6401 |
|
|
February 14, 2004 ([7]changes)
|
6402 |
|
|
|
6403 |
|
|
GCC 3.3.2
|
6404 |
|
|
October 16, 2003 ([8]changes)
|
6405 |
|
|
|
6406 |
|
|
GCC 3.3.1
|
6407 |
|
|
August 8, 2003 ([9]changes)
|
6408 |
|
|
|
6409 |
|
|
GCC 3.3
|
6410 |
|
|
May 14, 2003 ([10]changes)
|
6411 |
|
|
|
6412 |
|
|
References and Acknowledgements
|
6413 |
|
|
|
6414 |
|
|
GCC used to stand for the GNU C Compiler, but since the compiler
|
6415 |
|
|
supports several other languages aside from C, it now stands for the
|
6416 |
|
|
GNU Compiler Collection.
|
6417 |
|
|
|
6418 |
|
|
A list of [11]successful builds is updated as new information becomes
|
6419 |
|
|
available.
|
6420 |
|
|
|
6421 |
|
|
The GCC developers would like to thank the numerous people that have
|
6422 |
|
|
contributed new features, improvements, bug fixes, and other changes as
|
6423 |
|
|
well as test results to GCC. This [12]amazing group of volunteers is
|
6424 |
|
|
what makes GCC successful.
|
6425 |
|
|
|
6426 |
|
|
For additional information about GCC please refer to the [13]GCC
|
6427 |
|
|
project web site or contact the [14]GCC development mailing list.
|
6428 |
|
|
|
6429 |
|
|
To obtain GCC please use [15]our mirror sites, or our CVS server.
|
6430 |
|
|
|
6431 |
|
|
Please send FSF & GNU inquiries & questions to [16]gnu@gnu.org. There
|
6432 |
|
|
are also [17]other ways to contact the FSF.
|
6433 |
|
|
|
6434 |
|
|
These pages are [18]maintained by the GCC team.
|
6435 |
|
|
|
6436 |
|
|
|
6437 |
|
|
For questions related to the use of GCC, please consult these web
|
6438 |
|
|
pages and the [19]GCC manuals. If that fails, the
|
6439 |
|
|
[20]gcc-help@gcc.gnu.org mailing list might help.
|
6440 |
|
|
Please send comments on these web pages and the development of GCC to
|
6441 |
|
|
our developer mailing list at [21]gcc@gnu.org or [22]gcc@gcc.gnu.org.
|
6442 |
|
|
All of our lists have [23]public archives.
|
6443 |
|
|
|
6444 |
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth
|
6445 |
|
|
Floor, Boston, MA 02110, USA.
|
6446 |
|
|
|
6447 |
|
|
Verbatim copying and distribution of this entire article is permitted
|
6448 |
|
|
in any medium, provided this notice is preserved.
|
6449 |
|
|
Last modified 2010-07-01 [24]Valid XHTML 1.0
|
6450 |
|
|
|
6451 |
|
|
References
|
6452 |
|
|
|
6453 |
|
|
1. http://www.gnu.org/
|
6454 |
|
|
2. http://gcc.gnu.org/gcc-3.3/changes.html
|
6455 |
|
|
3. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
|
6456 |
|
|
4. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.6
|
6457 |
|
|
5. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.5
|
6458 |
|
|
6. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.4
|
6459 |
|
|
7. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.3
|
6460 |
|
|
8. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.2
|
6461 |
|
|
9. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.1
|
6462 |
|
|
10. http://gcc.gnu.org/gcc-3.3/changes.html
|
6463 |
|
|
11. http://gcc.gnu.org/gcc-3.3/buildstat.html
|
6464 |
|
|
12. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
|
6465 |
|
|
13. http://gcc.gnu.org/index.html
|
6466 |
|
|
14. mailto:gcc@gcc.gnu.org
|
6467 |
|
|
15. http://gcc.gnu.org/mirrors.html
|
6468 |
|
|
16. mailto:gnu@gnu.org
|
6469 |
|
|
17. http://www.gnu.org/home.html#ContactInfo
|
6470 |
|
|
18. http://gcc.gnu.org/about.html
|
6471 |
|
|
19. http://gcc.gnu.org/onlinedocs/
|
6472 |
|
|
20. mailto:gcc-help@gcc.gnu.org
|
6473 |
|
|
21. mailto:gcc@gnu.org
|
6474 |
|
|
22. mailto:gcc@gcc.gnu.org
|
6475 |
|
|
23. http://gcc.gnu.org/lists.html
|
6476 |
|
|
24. http://validator.w3.org/check/referer
|
6477 |
|
|
======================================================================
|
6478 |
|
|
http://gcc.gnu.org/gcc-3.3/changes.html
|
6479 |
|
|
|
6480 |
|
|
GCC 3.3 Release Series
|
6481 |
|
|
Changes, New Features, and Fixes
|
6482 |
|
|
|
6483 |
|
|
The latest release in the 3.3 release series is [1]GCC 3.3.6.
|
6484 |
|
|
|
6485 |
|
|
Caveats
|
6486 |
|
|
|
6487 |
|
|
* The preprocessor no longer accepts multi-line string literals. They
|
6488 |
|
|
were deprecated in 3.0, 3.1, and 3.2.
|
6489 |
|
|
* The preprocessor no longer supports the -A- switch when appearing
|
6490 |
|
|
alone. -A- followed by an assertion is still supported.
|
6491 |
|
|
* Support for all the systems [2]obsoleted in GCC 3.1 has been
|
6492 |
|
|
removed from GCC 3.3. See below for a [3]list of systems which are
|
6493 |
|
|
obsoleted in this release.
|
6494 |
|
|
* Checking for null format arguments has been decoupled from the rest
|
6495 |
|
|
of the format checking mechanism. Programs which use the format
|
6496 |
|
|
attribute may regain this functionality by using the new [4]nonnull
|
6497 |
|
|
function attribute. Note that all functions for which GCC has a
|
6498 |
|
|
built-in format attribute, an appropriate built-in nonnull
|
6499 |
|
|
attribute is also applied.
|
6500 |
|
|
* The DWARF (version 1) debugging format has been deprecated and will
|
6501 |
|
|
be removed in a future version of GCC. Version 2 of the DWARF
|
6502 |
|
|
debugging format will continue to be supported for the foreseeable
|
6503 |
|
|
future.
|
6504 |
|
|
* The C and Objective-C compilers no longer accept the "Naming Types"
|
6505 |
|
|
extension (typedef foo = bar); it was already unavailable in C++.
|
6506 |
|
|
Code which uses it will need to be changed to use the "typeof"
|
6507 |
|
|
extension instead: typedef typeof(bar) foo. (We have removed this
|
6508 |
|
|
extension without a period of deprecation because it has caused the
|
6509 |
|
|
compiler to crash since version 3.0 and no one noticed until very
|
6510 |
|
|
recently. Thus we conclude it is not in widespread use.)
|
6511 |
|
|
* The -traditional C compiler option has been removed. It was
|
6512 |
|
|
deprecated in 3.1 and 3.2. (Traditional preprocessing remains
|
6513 |
|
|
available.) The header, used for writing variadic
|
6514 |
|
|
functions in traditional C, still exists but will produce an error
|
6515 |
|
|
message if used.
|
6516 |
|
|
* GCC 3.3.1 automatically places zero-initialized variables in the
|
6517 |
|
|
.bss section on some operating systems. Versions of GNU Emacs up to
|
6518 |
|
|
(and including) 21.3 will not work correctly when using this
|
6519 |
|
|
optimization; you can use -fno-zero-initialized-in-bss to disable
|
6520 |
|
|
it.
|
6521 |
|
|
|
6522 |
|
|
General Optimizer Improvements
|
6523 |
|
|
|
6524 |
|
|
* A new scheme for accurately describing processor pipelines, the
|
6525 |
|
|
[5]DFA scheduler, has been added.
|
6526 |
|
|
* Pavel Nejedly, Charles University Prague, has contributed new file
|
6527 |
|
|
format used by the edge coverage profiler (-fprofile-arcs).
|
6528 |
|
|
The new format is robust and diagnoses common mistakes where
|
6529 |
|
|
profiles from different versions (or compilations) of the program
|
6530 |
|
|
are combined resulting in nonsensical profiles and slow code to
|
6531 |
|
|
produced with profile feedback. Additionally this format allows
|
6532 |
|
|
extra data to be gathered. Currently, overall statistics are
|
6533 |
|
|
produced helping optimizers to identify hot spots of a program
|
6534 |
|
|
globally replacing the old intra-procedural scheme and resulting in
|
6535 |
|
|
better code. Note that the gcov tool from older GCC versions will
|
6536 |
|
|
not be able to parse the profiles generated by GCC 3.3 and vice
|
6537 |
|
|
versa.
|
6538 |
|
|
* Jan Hubicka, SuSE Labs, has contributed a new superblock formation
|
6539 |
|
|
pass enabled using -ftracer. This pass simplifies the control flow
|
6540 |
|
|
of functions allowing other optimizations to do better job.
|
6541 |
|
|
He also contributed the function reordering pass
|
6542 |
|
|
(-freorder-functions) to optimize function placement using profile
|
6543 |
|
|
feedback.
|
6544 |
|
|
|
6545 |
|
|
New Languages and Language specific improvements
|
6546 |
|
|
|
6547 |
|
|
C/ObjC/C++
|
6548 |
|
|
|
6549 |
|
|
* The preprocessor now accepts directives within macro arguments. It
|
6550 |
|
|
processes them just as if they had not been within macro arguments.
|
6551 |
|
|
* The separate ISO and traditional preprocessors have been completely
|
6552 |
|
|
removed. The front end handles either type of preprocessed output
|
6553 |
|
|
if necessary.
|
6554 |
|
|
* In C99 mode preprocessor arithmetic is done in the precision of the
|
6555 |
|
|
target's intmax_t, as required by that standard.
|
6556 |
|
|
* The preprocessor can now copy comments inside macros to the output
|
6557 |
|
|
file when the macro is expanded. This feature, enabled using the
|
6558 |
|
|
-CC option, is intended for use by applications which place
|
6559 |
|
|
metadata or directives inside comments, such as lint.
|
6560 |
|
|
* The method of constructing the list of directories to be searched
|
6561 |
|
|
for header files has been revised. If a directory named by a -I
|
6562 |
|
|
option is a standard system include directory, the option is
|
6563 |
|
|
ignored to ensure that the default search order for system
|
6564 |
|
|
directories and the special treatment of system header files are
|
6565 |
|
|
not defeated.
|
6566 |
|
|
* A few more [6]ISO C99 features now work correctly.
|
6567 |
|
|
* A new function attribute, nonnull, has been added which allows
|
6568 |
|
|
pointer arguments to functions to be specified as requiring a
|
6569 |
|
|
non-null value. The compiler currently uses this information to
|
6570 |
|
|
issue a warning when it detects a null value passed in such an
|
6571 |
|
|
argument slot.
|
6572 |
|
|
* A new type attribute, may_alias, has been added. Accesses to
|
6573 |
|
|
objects with types with this attribute are not subjected to
|
6574 |
|
|
type-based alias analysis, but are instead assumed to be able to
|
6575 |
|
|
alias any other type of objects, just like the char type.
|
6576 |
|
|
|
6577 |
|
|
C++
|
6578 |
|
|
|
6579 |
|
|
* Type based alias analysis has been implemented for C++ aggregate
|
6580 |
|
|
types.
|
6581 |
|
|
|
6582 |
|
|
Objective-C
|
6583 |
|
|
|
6584 |
|
|
* Generate an error if Objective-C objects are passed by value in
|
6585 |
|
|
function and method calls.
|
6586 |
|
|
* When -Wselector is used, check the whole list of selectors at the
|
6587 |
|
|
end of compilation, and emit a warning if a @selector() is not
|
6588 |
|
|
known.
|
6589 |
|
|
* Define __NEXT_RUNTIME__ when compiling for the NeXT runtime.
|
6590 |
|
|
* No longer need to include objc/objc-class.h to compile self calls
|
6591 |
|
|
in class methods (NeXT runtime only).
|
6592 |
|
|
* New -Wundeclared-selector option.
|
6593 |
|
|
* Removed selector bloating which was causing object files to be 10%
|
6594 |
|
|
bigger on average (GNU runtime only).
|
6595 |
|
|
* Using at run time @protocol() objects has been fixed in certain
|
6596 |
|
|
situations (GNU runtime only).
|
6597 |
|
|
* Type checking has been fixed and improved in many situations
|
6598 |
|
|
involving protocols.
|
6599 |
|
|
|
6600 |
|
|
Java
|
6601 |
|
|
|
6602 |
|
|
* The java.sql and javax.sql packages now implement the JDBC 3.0 (JDK
|
6603 |
|
|
1.4) API.
|
6604 |
|
|
* The JDK 1.4 assert facility has been implemented.
|
6605 |
|
|
* The bytecode interpreter is now direct threaded and thus faster.
|
6606 |
|
|
|
6607 |
|
|
Fortran
|
6608 |
|
|
|
6609 |
|
|
* Fortran improvements are listed in [7]the Fortran documentation.
|
6610 |
|
|
|
6611 |
|
|
Ada
|
6612 |
|
|
|
6613 |
|
|
* Ada tasking now works with glibc 2.3.x threading libraries.
|
6614 |
|
|
|
6615 |
|
|
New Targets and Target Specific Improvements
|
6616 |
|
|
|
6617 |
|
|
* The following changes have been made to the HP-PA port:
|
6618 |
|
|
+ The port now defaults to scheduling for the PA8000 series of
|
6619 |
|
|
processors.
|
6620 |
|
|
+ Scheduling support for the PA7300 processor has been added.
|
6621 |
|
|
+ The 32-bit port now supports weak symbols under HP-UX 11.
|
6622 |
|
|
+ The handling of initializers and finalizers has been improved
|
6623 |
|
|
under HP-UX 11. The 64-bit port no longer uses collect2.
|
6624 |
|
|
+ Dwarf2 EH support has been added to the 32-bit linux port.
|
6625 |
|
|
+ ABI fixes to correct the passing of small structures by value.
|
6626 |
|
|
* The SPARC, HP-PA, SH4, and x86/pentium ports have been converted to
|
6627 |
|
|
use the DFA processor pipeline description.
|
6628 |
|
|
* The following NetBSD configurations for the SuperH processor family
|
6629 |
|
|
have been added:
|
6630 |
|
|
+ SH3, big-endian, sh-*-netbsdelf*
|
6631 |
|
|
+ SH3, little-endian, shle-*-netbsdelf*
|
6632 |
|
|
+ SH5, SHmedia, big-endian, 32-bit default, sh5-*-netbsd*
|
6633 |
|
|
+ SH5, SHmedia, little-endian, 32-bit default, sh5le-*-netbsd*
|
6634 |
|
|
+ SH5, SHmedia, big-endian, 64-bit default, sh64-*-netbsd*
|
6635 |
|
|
+ SH5, SHmedia, little-endian, 64-bit default, sh64le-*-netbsd*
|
6636 |
|
|
* The following changes have been made to the IA-32/x86-64 port:
|
6637 |
|
|
+ SSE2 and 3dNOW! intrinsics are now supported.
|
6638 |
|
|
+ Support for thread local storage has been added to the IA-32
|
6639 |
|
|
and x86-64 ports.
|
6640 |
|
|
+ The x86-64 port has been significantly improved.
|
6641 |
|
|
* The following changes have been made to the MIPS port:
|
6642 |
|
|
+ All configurations now accept the -mabi switch. Note that you
|
6643 |
|
|
will need appropriate multilibs for this option to work
|
6644 |
|
|
properly.
|
6645 |
|
|
+ ELF configurations will always pass an ABI flag to the
|
6646 |
|
|
assembler, except when the MIPS EABI is selected.
|
6647 |
|
|
+ -mabi=64 no longer selects MIPS IV code.
|
6648 |
|
|
+ The -mcpu option, which was deprecated in 3.1 and 3.2, has
|
6649 |
|
|
been removed from this release.
|
6650 |
|
|
+ -march now changes the core ISA level. In previous releases,
|
6651 |
|
|
it would change the use of processor-specific extensions, but
|
6652 |
|
|
would leave the core ISA unchanged. For example, mips64-elf
|
6653 |
|
|
-march=r8000 will now generate MIPS IV code.
|
6654 |
|
|
+ Under most configurations, -mipsN now acts as a synonym for
|
6655 |
|
|
-march.
|
6656 |
|
|
+ There are some new preprocessor macros to describe the -march
|
6657 |
|
|
and -mtune settings. See the documentation of those options
|
6658 |
|
|
for details.
|
6659 |
|
|
+ Support for the NEC VR-Series processors has been added. This
|
6660 |
|
|
includes the 54xx, 5500, and 41xx series.
|
6661 |
|
|
+ Support for the Sandcraft sr71k processor has been added.
|
6662 |
|
|
* The following changes have been made to the S/390 port:
|
6663 |
|
|
+ Support to build the Java runtime libraries has been added.
|
6664 |
|
|
Java is now enabled by default on s390-*-linux* and
|
6665 |
|
|
s390x-*-linux* targets.
|
6666 |
|
|
+ Multilib support for the s390x-*-linux* target has been added;
|
6667 |
|
|
this allows to build 31-bit binaries using the -m31 option.
|
6668 |
|
|
+ Support for thread local storage has been added.
|
6669 |
|
|
+ Inline assembler code may now use the 'Q' constraint to
|
6670 |
|
|
specify memory operands without index register.
|
6671 |
|
|
+ Various platform-specific performance improvements have been
|
6672 |
|
|
implemented; in particular, the compiler now uses the BRANCH
|
6673 |
|
|
ON COUNT family of instructions and makes more frequent use of
|
6674 |
|
|
the TEST UNDER MASK family of instructions.
|
6675 |
|
|
* The following changes have been made to the PowerPC port:
|
6676 |
|
|
+ Support for IBM Power4 processor added.
|
6677 |
|
|
+ Support for Motorola e500 SPE added.
|
6678 |
|
|
+ Support for AIX 5.2 added.
|
6679 |
|
|
+ Function and Data sections now supported on AIX.
|
6680 |
|
|
+ Sibcall optimizations added.
|
6681 |
|
|
* The support for H8 Tiny is added to the H8/300 port with -mn.
|
6682 |
|
|
|
6683 |
|
|
Obsolete Systems
|
6684 |
|
|
|
6685 |
|
|
Support for a number of older systems has been declared obsolete in GCC
|
6686 |
|
|
3.3. Unless there is activity to revive them, the next release of GCC
|
6687 |
|
|
will have their sources permanently removed.
|
6688 |
|
|
|
6689 |
|
|
All configurations of the following processor architectures have been
|
6690 |
|
|
declared obsolete:
|
6691 |
|
|
* Matsushita MN10200, mn10200-*-*
|
6692 |
|
|
* Motorola 88000, m88k-*-*
|
6693 |
|
|
* IBM ROMP, romp-*-*
|
6694 |
|
|
|
6695 |
|
|
Also, some individual systems have been obsoleted:
|
6696 |
|
|
* Alpha
|
6697 |
|
|
+ Interix, alpha*-*-interix*
|
6698 |
|
|
+ Linux libc1, alpha*-*-linux*libc1*
|
6699 |
|
|
+ Linux ECOFF, alpha*-*-linux*ecoff*
|
6700 |
|
|
* ARM
|
6701 |
|
|
+ Generic a.out, arm*-*-aout*
|
6702 |
|
|
+ Conix, arm*-*-conix*
|
6703 |
|
|
+ "Old ABI," arm*-*-oabi
|
6704 |
|
|
+ StrongARM/COFF, strongarm-*-coff*
|
6705 |
|
|
* HPPA (PA-RISC)
|
6706 |
|
|
+ Generic OSF, hppa1.0-*-osf*
|
6707 |
|
|
+ Generic BSD, hppa1.0-*-bsd*
|
6708 |
|
|
+ HP/UX versions 7, 8, and 9, hppa1.[01]-*-hpux[789]*
|
6709 |
|
|
+ HiUX, hppa*-*-hiux*
|
6710 |
|
|
+ Mach Lites, hppa*-*-lites*
|
6711 |
|
|
* Intel 386 family
|
6712 |
|
|
+ Windows NT 3.x, i?86-*-win32
|
6713 |
|
|
* MC68000 family
|
6714 |
|
|
+ HP systems, m68000-hp-bsd* and m68k-hp-bsd*
|
6715 |
|
|
+ Sun systems, m68000-sun-sunos*, m68k-sun-sunos*, and
|
6716 |
|
|
m68k-sun-mach*
|
6717 |
|
|
+ AT&T systems, m68000-att-sysv*
|
6718 |
|
|
+ Atari systems, m68k-atari-sysv*
|
6719 |
|
|
+ Motorola systems, m68k-motorola-sysv*
|
6720 |
|
|
+ NCR systems, m68k-ncr-sysv*
|
6721 |
|
|
+ Plexus systems, m68k-plexus-sysv*
|
6722 |
|
|
+ Commodore systems, m68k-cbm-sysv*
|
6723 |
|
|
+ Citicorp TTI, m68k-tti-*
|
6724 |
|
|
+ Unos, m68k-crds-unos*
|
6725 |
|
|
+ Concurrent RTU, m68k-ccur-rtu*
|
6726 |
|
|
+ Linux a.out, m68k-*-linux*aout*
|
6727 |
|
|
+ Linux libc1, m68k-*-linux*libc1*
|
6728 |
|
|
+ pSOS, m68k-*-psos*
|
6729 |
|
|
* MIPS
|
6730 |
|
|
+ Generic ECOFF, mips*-*-ecoff*
|
6731 |
|
|
+ SINIX, mips-sni-sysv4
|
6732 |
|
|
+ Orion RTEMS, mips64orion-*-rtems*
|
6733 |
|
|
* National Semiconductor 32000
|
6734 |
|
|
+ OpenBSD, ns32k-*-openbsd*
|
6735 |
|
|
* POWER (aka RS/6000) and PowerPC
|
6736 |
|
|
+ AIX versions 1, 2, and 3, rs6000-ibm-aix[123]*
|
6737 |
|
|
+ Bull BOSX, rs6000-bull-bosx
|
6738 |
|
|
+ Generic Mach, rs6000-*-mach*
|
6739 |
|
|
+ Generic SysV, powerpc*-*-sysv*
|
6740 |
|
|
+ Linux libc1, powerpc*-*-linux*libc1*
|
6741 |
|
|
* Sun SPARC
|
6742 |
|
|
+ Generic a.out, sparc-*-aout*, sparclet-*-aout*,
|
6743 |
|
|
sparclite-*-aout*, and sparc86x-*-aout*
|
6744 |
|
|
+ NetBSD a.out, sparc-*-netbsd*aout*
|
6745 |
|
|
+ Generic BSD, sparc-*-bsd*
|
6746 |
|
|
+ ChorusOS, sparc-*-chorusos*
|
6747 |
|
|
+ Linux a.out, sparc-*-linux*aout*
|
6748 |
|
|
+ Linux libc1, sparc-*-linux*libc1*
|
6749 |
|
|
+ LynxOS, sparc-*-lynxos*
|
6750 |
|
|
+ Solaris on HAL hardware, sparc-hal-solaris2*
|
6751 |
|
|
+ SunOS versions 3 and 4, sparc-*-sunos[34]*
|
6752 |
|
|
* NEC V850
|
6753 |
|
|
+ RTEMS, v850-*-rtems*
|
6754 |
|
|
* VAX
|
6755 |
|
|
+ VMS, vax-*-vms*
|
6756 |
|
|
|
6757 |
|
|
Documentation improvements
|
6758 |
|
|
|
6759 |
|
|
Other significant improvements
|
6760 |
|
|
|
6761 |
|
|
* Almost all front-end dependencies in the compiler have been
|
6762 |
|
|
separated out into a set of language hooks. This should make adding
|
6763 |
|
|
a new front end clearer and easier.
|
6764 |
|
|
* One effect of removing the separate preprocessor is a small
|
6765 |
|
|
increase in the robustness of the compiler in general, and the
|
6766 |
|
|
maintainability of target descriptions. Previously target-specific
|
6767 |
|
|
built-in macros and others, such as __FAST_MATH__, had to be
|
6768 |
|
|
handled with so-called specs that were hard to maintain. Often they
|
6769 |
|
|
would fail to behave properly when conflicting options were
|
6770 |
|
|
supplied on the command line, and define macros in the user's
|
6771 |
|
|
namespace even when strict ISO compliance was requested.
|
6772 |
|
|
Integrating the preprocessor has cleanly solved these issues.
|
6773 |
|
|
* The Makefile suite now supports redirection of make install by
|
6774 |
|
|
means of the variable DESTDIR.
|
6775 |
|
|
__________________________________________________________________
|
6776 |
|
|
|
6777 |
|
|
GCC 3.3
|
6778 |
|
|
|
6779 |
|
|
Detailed release notes for the GCC 3.3 release follow.
|
6780 |
|
|
|
6781 |
|
|
Bug Fixes
|
6782 |
|
|
|
6783 |
|
|
bootstrap failures
|
6784 |
|
|
|
6785 |
|
|
* [8]10140 cross compiler build failures: missing __mempcpy (DUP:
|
6786 |
|
|
[9]10198,[10]10338)
|
6787 |
|
|
|
6788 |
|
|
Internal compiler errors (multi-platform)
|
6789 |
|
|
|
6790 |
|
|
* [11]3581 large string causes segmentation fault in cc1
|
6791 |
|
|
* [12]4382 __builtin_{set,long}jmp with -O3 can crash the compiler
|
6792 |
|
|
* [13]5533 (c++) ICE when processing std::accumulate(begin, end,
|
6793 |
|
|
init, invalid_op)
|
6794 |
|
|
* [14]6387 -fpic -gdwarf-2 -g1 combination gives ICE in dwarf2out
|
6795 |
|
|
* [15]6412 (c++) ICE in retrieve_specialization
|
6796 |
|
|
* [16]6620 (c++) partial template specialization causes an ICE
|
6797 |
|
|
(segmentation fault)
|
6798 |
|
|
* [17]6663 (c++) ICE with attribute aligned
|
6799 |
|
|
* [18]7068 ICE with incomplete types
|
6800 |
|
|
* [19]7083 (c++) ICE using -gstabs with dodgy class derivation
|
6801 |
|
|
* [20]7647 (c++) ICE when data member has the name of the enclosing
|
6802 |
|
|
class
|
6803 |
|
|
* [21]7675 ICE in fixup_var_refs_1
|
6804 |
|
|
* [22]7718 'complex' template instantiation causes ICE
|
6805 |
|
|
* [23]8116 (c++) ICE in member template function
|
6806 |
|
|
* [24]8358 (ada) Ada compiler accesses freed memory, crashes
|
6807 |
|
|
* [25]8511 (c++) ICE: (hopefully) reproducible cc1plus segmentation
|
6808 |
|
|
fault
|
6809 |
|
|
* [26]8564 (c++) ICE in find_function_data, in function.c
|
6810 |
|
|
* [27]8660 (c++) template overloading ICE in tsubst_expr, in cp/pt.c
|
6811 |
|
|
* [28]8766 (c++) ICE after failed initialization of static template
|
6812 |
|
|
variable
|
6813 |
|
|
* [29]8803 ICE in instantiate_virtual_regs_1, in function.c
|
6814 |
|
|
* [30]8846 (c++) ICE after diagnostic if fr_FR@euro locale is set
|
6815 |
|
|
* [31]8906 (c++) ICE (Segmentation fault) when parsing nested-class
|
6816 |
|
|
definition
|
6817 |
|
|
* [32]9216 (c++) ICE on missing template parameter
|
6818 |
|
|
* [33]9261 (c++) ICE in arg_assoc, in cp/decl2.c
|
6819 |
|
|
* [34]9263 (fortran) ICE caused by invalid PARAMETER in implied DO
|
6820 |
|
|
loop
|
6821 |
|
|
* [35]9429 (c++) ICE in template instantiation with a pointered new
|
6822 |
|
|
operator
|
6823 |
|
|
* [36]9516 Internal error when using a big array
|
6824 |
|
|
* [37]9600 (c++) ICE with typedefs in template class
|
6825 |
|
|
* [38]9629 (c++) virtual inheritance segfault
|
6826 |
|
|
* [39]9672 (c++) ICE: Error reporting routines re-entered
|
6827 |
|
|
* [40]9749 (c++) ICE in write_expression on invalid function
|
6828 |
|
|
prototype
|
6829 |
|
|
* [41]9794 (fortran) ICE: floating point exception during constant
|
6830 |
|
|
folding
|
6831 |
|
|
* [42]9829 (c++) Missing colon in nested namespace usage causes ICE
|
6832 |
|
|
* [43]9916 (c++) ICE with noreturn function in ?: statement
|
6833 |
|
|
* [44]9936 ICE with local function and variable-length 2d array
|
6834 |
|
|
* [45]10262 (c++) cc1plus crashes with large generated code
|
6835 |
|
|
* [46]10278 (c++) ICE in parser for invalid code
|
6836 |
|
|
* [47]10446 (c++) ICE on definition of nonexistent member function of
|
6837 |
|
|
nested class in a class template
|
6838 |
|
|
* [48]10451 (c++) ICE in grokdeclarator on spurious mutable
|
6839 |
|
|
declaration
|
6840 |
|
|
* [49]10506 (c++) ICE in build_new at cp/init.c with
|
6841 |
|
|
-fkeep-inline-functions and multiple inheritance
|
6842 |
|
|
* [50]10549 (c++) ICE in store_bit_field on bitfields that exceed the
|
6843 |
|
|
precision of the declared type
|
6844 |
|
|
|
6845 |
|
|
Optimization bugs
|
6846 |
|
|
|
6847 |
|
|
* [51]2001 Inordinately long compile times in reload CSE regs
|
6848 |
|
|
* [52]2391 Exponential compilation time explosion in combine
|
6849 |
|
|
* [53]2960 Duplicate loop conditions even with -Os
|
6850 |
|
|
* [54]4046 redundant conditional branch
|
6851 |
|
|
* [55]6405 Loop-unrolling related performance regressions
|
6852 |
|
|
* [56]6798 very long compile time with large case-statement
|
6853 |
|
|
* [57]6871 const objects shouldn't be moved to .bss
|
6854 |
|
|
* [58]6909 problem w/ -Os on modified loop-2c.c test case
|
6855 |
|
|
* [59]7189 gcc -O2 -Wall does not print ``control reaches end of
|
6856 |
|
|
non-void function'' warning
|
6857 |
|
|
* [60]7642 optimization problem with signbit()
|
6858 |
|
|
* [61]8634 incorrect code for inlining of memcpy under -O2
|
6859 |
|
|
* [62]8750 Cygwin prolog generation erroneously emitting __alloca as
|
6860 |
|
|
regular function call
|
6861 |
|
|
|
6862 |
|
|
C front end
|
6863 |
|
|
|
6864 |
|
|
* [63]2161 long if-else cascade overflows parser stack
|
6865 |
|
|
* [64]4319 short accepted on typedef'd char
|
6866 |
|
|
* [65]8602 incorrect line numbers in warning messages when using
|
6867 |
|
|
inline functions
|
6868 |
|
|
* [66]9177 -fdump-translation-unit: C front end deletes function_decl
|
6869 |
|
|
AST nodes and breaks debugging dumps
|
6870 |
|
|
* [67]9853 miscompilation of non-constant structure initializer
|
6871 |
|
|
|
6872 |
|
|
c++ compiler and library
|
6873 |
|
|
|
6874 |
|
|
* [68]45 legal template specialization code is rejected (DUP:
|
6875 |
|
|
[69]3784)
|
6876 |
|
|
* [70]764 lookup failure: friend operator and dereferencing a pointer
|
6877 |
|
|
and templates (DUP: [71]5116)
|
6878 |
|
|
* [72]2862 gcc accepts invalid explicit instantiation syntax (DUP:
|
6879 |
|
|
2863)
|
6880 |
|
|
* [73]3663 G++ doesn't check access control during template
|
6881 |
|
|
instantiation
|
6882 |
|
|
* [74]3797 gcc fails to emit explicit specialization of a template
|
6883 |
|
|
member
|
6884 |
|
|
* [75]3948 Two destructors are called when no copy destructor is
|
6885 |
|
|
defined (ABI change)
|
6886 |
|
|
* [76]4137 Conversion operator within template is not accepted
|
6887 |
|
|
* [77]4361 bogus ambiguity taking the address of a member template
|
6888 |
|
|
* [78]4802 g++ accepts illegal template code (access to private
|
6889 |
|
|
member; DUP: [79]5837)
|
6890 |
|
|
* [80]4803 inline function is used but never defined, and g++ does
|
6891 |
|
|
not object
|
6892 |
|
|
* [81]5094 Partial specialization cannot be friend?
|
6893 |
|
|
* [82]5730 complex::norm() -- huge slowdown from egcs-2.91.66
|
6894 |
|
|
* [83]6713 Regression wrt 3.0.4: g++ -O2 leads to seg fault at run
|
6895 |
|
|
time
|
6896 |
|
|
* [84]7015 certain __asm__ constructs rejected
|
6897 |
|
|
* [85]7086 compile time regression (quadratic behavior in
|
6898 |
|
|
fixup_var_refs)
|
6899 |
|
|
* [86]7099 G++ doesn't set the noreturn attribute on std::exit and
|
6900 |
|
|
std::abort
|
6901 |
|
|
* [87]7247 copy constructor missing when inlining enabled (invalid
|
6902 |
|
|
optimization?)
|
6903 |
|
|
* [88]7441 string array initialization compilation time regression
|
6904 |
|
|
from seconds to minutes
|
6905 |
|
|
* [89]7768 __PRETTY_FUNCTION__ for template destructor is wrong
|
6906 |
|
|
* [90]7804 bad printing of floating point constant in warning message
|
6907 |
|
|
* [91]8099 Friend classes and template specializations
|
6908 |
|
|
* [92]8117 member function pointers and multiple inheritance
|
6909 |
|
|
* [93]8205 using declaration and multiple inheritance
|
6910 |
|
|
* [94]8645 unnecessary non-zero checks in stl_tree.h
|
6911 |
|
|
* [95]8724 explicit destructor call for incomplete class allowed
|
6912 |
|
|
* [96]8805 compile time regression with many member variables
|
6913 |
|
|
* [97]8691 -O3 and -fno-implicit-templates are incompatible
|
6914 |
|
|
* [98]8700 unhelpful error message for binding temp to reference
|
6915 |
|
|
* [99]8724 explicit destructor call for incomplete class allowed
|
6916 |
|
|
* [100]8949 numeric_limits<>::denorm_min() and is_iec559 problems
|
6917 |
|
|
* [101]9016 Failure to consistently constant fold "constant" C++
|
6918 |
|
|
objects
|
6919 |
|
|
* [102]9053 g++ confused about ambiguity of overloaded function
|
6920 |
|
|
templates
|
6921 |
|
|
* [103]9152 undefined virtual thunks
|
6922 |
|
|
* [104]9182 basic_filebuf<> does not report errors in codecvt<>::out
|
6923 |
|
|
* [105]9297 data corruption due to codegen bug (when copying.)
|
6924 |
|
|
* [106]9318 i/ostream::operator>>/<<(streambuf*) broken
|
6925 |
|
|
* [107]9320 Incorrect usage of traits_type::int_type in stdio_filebuf
|
6926 |
|
|
* [108]9400 bogus -Wshadow warning: shadowed declaration of this in
|
6927 |
|
|
local classes
|
6928 |
|
|
* [109]9424 i/ostream::operator>>/<<(streambuf*) drops characters
|
6929 |
|
|
* [110]9425 filebuf::pbackfail broken (DUP: [111]9439)
|
6930 |
|
|
* [112]9474 GCC freezes in compiling a weird code mixing
|
6931 |
|
|
and
|
6932 |
|
|
* [113]9548 Incorrect results from setf(ios::fixed) and precision(-1)
|
6933 |
|
|
[114][DR 231]
|
6934 |
|
|
* [115]9555 ostream inserters fail to set badbit on exception
|
6935 |
|
|
* [116]9561 ostream inserters rethrow exception of wrong type
|
6936 |
|
|
* [117]9563 ostream::sentry returns true after a failed preparation
|
6937 |
|
|
* [118]9582 one-definition rule violation in std::allocator
|
6938 |
|
|
* [119]9622 __PRETTY_FUNCTION__ incorrect in template destructors
|
6939 |
|
|
* [120]9683 bug in initialization chains for static const variables
|
6940 |
|
|
from template classes
|
6941 |
|
|
* [121]9791 -Woverloaded-virtual reports hiding of destructor
|
6942 |
|
|
* [122]9817 collate::compare doesn't handle nul characters
|
6943 |
|
|
* [123]9825 filebuf::sputbackc breaks sbumpc
|
6944 |
|
|
* [124]9826 operator>>(basic_istream, basic_string) fails to compile
|
6945 |
|
|
with custom traits
|
6946 |
|
|
* [125]9924 Multiple using statements for builtin functions not
|
6947 |
|
|
allowed
|
6948 |
|
|
* [126]9946 destructor is not called for temporary object
|
6949 |
|
|
* [127]9964 filebuf::close() sometimes fails to close file
|
6950 |
|
|
* [128]9988 filebuf::overflow writes EOF to file
|
6951 |
|
|
* [129]10033 optimization breaks polymorphic references w/ typeid
|
6952 |
|
|
operator
|
6953 |
|
|
* [130]10097 filebuf::underflow drops characters
|
6954 |
|
|
* [131]10132 filebuf destructor can throw exceptions
|
6955 |
|
|
* [132]10180 gcc fails to warn about non-inlined function
|
6956 |
|
|
* [133]10199 method parametrized by template does not work everywhere
|
6957 |
|
|
* [134]10300 use of array-new (nothrow) in segfaults on NULL return
|
6958 |
|
|
* [135]10427 Stack corruption with variable-length automatic arrays
|
6959 |
|
|
and virtual destructors
|
6960 |
|
|
* [136]10503 Compilation never stops in fixed_type_or_null
|
6961 |
|
|
|
6962 |
|
|
Objective-C
|
6963 |
|
|
|
6964 |
|
|
* [137]5956 selectors aren't matched properly when added to the
|
6965 |
|
|
selector table
|
6966 |
|
|
|
6967 |
|
|
Fortran compiler and library
|
6968 |
|
|
|
6969 |
|
|
* [138]1832 list directed i/o overflow hangs, -fbounds-check doesn't
|
6970 |
|
|
detect
|
6971 |
|
|
* [139]3924 g77 generates code that is rejected by GAS if COFF debug
|
6972 |
|
|
info requested
|
6973 |
|
|
* [140]5634 doc: explain that configure --prefix=~/... does not work
|
6974 |
|
|
* [141]6367 multiple repeat counts confuse namelist read into array
|
6975 |
|
|
* [142]6491 Logical operations error on logicals when using
|
6976 |
|
|
-fugly-logint
|
6977 |
|
|
* [143]6742 Generation of C++ Prototype for FORTRAN and extern "C"
|
6978 |
|
|
* [144]7113 Failure of g77.f-torture/execute/f90-intrinsic-bit.f -Os
|
6979 |
|
|
on irix6.5
|
6980 |
|
|
* [145]7236 OPEN(...,RECL=nnn,...) without ACCESS='DIRECT' should
|
6981 |
|
|
assume a direct access file
|
6982 |
|
|
* [146]7278 g77 "bug"; the executable misbehaves (with -O2
|
6983 |
|
|
-fno-automatic)
|
6984 |
|
|
* [147]7384 DATE_AND_TIME milliseconds field inactive on Windows
|
6985 |
|
|
* [148]7388 Incorrect output with 0-based array of characters
|
6986 |
|
|
* [149]8587 Double complex zero ** double precision number -> NaN
|
6987 |
|
|
instead of zero
|
6988 |
|
|
* [150]9038 -ffixed-line-length-none -x f77-cpp-input gives: Warning:
|
6989 |
|
|
unknown register name line-length-none
|
6990 |
|
|
* [151]10197 Direct access files not unformatted by default
|
6991 |
|
|
|
6992 |
|
|
Java compiler and library
|
6993 |
|
|
|
6994 |
|
|
* [152]6005 gcj fails to build rhug on alpha
|
6995 |
|
|
* [153]6389 System.getProperty("") should always throw an
|
6996 |
|
|
IllegalArgumentException
|
6997 |
|
|
* [154]6576 java.util.ResourceBundle.getResource ignores locale
|
6998 |
|
|
* [155]6652 new java.io.File("").getCanonicalFile() throws exception
|
6999 |
|
|
* [156]7060 getMethod() doesn't search super interface
|
7000 |
|
|
* [157]7073 bytecode interpreter gives wrong answer for interface
|
7001 |
|
|
getSuperclass()
|
7002 |
|
|
* [158]7180 possible bug in
|
7003 |
|
|
javax.naming.spi.NamingManager.getPlusPath()
|
7004 |
|
|
* [159]7416 java.security startup refs "GNU libgcj.security"
|
7005 |
|
|
* [160]7570 Runtime.exec with null envp: child doesn't inherit parent
|
7006 |
|
|
env (DUP: [161]7578)
|
7007 |
|
|
* [162]7611 Internal error while compiling libjava with -O
|
7008 |
|
|
* [163]7709 NullPointerException in _Jv_ResolvePoolEntry
|
7009 |
|
|
* [164]7766 ZipInputStream.available returns 0 immediately after
|
7010 |
|
|
construction
|
7011 |
|
|
* [165]7785 Calendar.getTimeInMillis/setTimeInMillis should be public
|
7012 |
|
|
* [166]7786 TimeZone.getDSTSavings() from JDK1.4 not implemented
|
7013 |
|
|
* [167]8142 '$' in class names vs. dlopen 'dynamic string tokens'
|
7014 |
|
|
* [168]8234 ZipInputStream chokes when InputStream.read() returns
|
7015 |
|
|
small chunks
|
7016 |
|
|
* [169]8415 reflection bug: exception info for Method
|
7017 |
|
|
* [170]8481 java.Random.nextInt(int) may return negative
|
7018 |
|
|
* [171]8593 Error reading GZIPped files with BufferedReader
|
7019 |
|
|
* [172]8759 java.beans.Introspector has no flushCaches() or
|
7020 |
|
|
flushFromCaches() methods
|
7021 |
|
|
* [173]8997 spin() calls Thread.sleep
|
7022 |
|
|
* [174]9253 on win32, java.io.File.listFiles("C:\\") returns pwd
|
7023 |
|
|
instead of the root content of C:
|
7024 |
|
|
* [175]9254 java::lang::Object::wait(), threads-win32.cc returns
|
7025 |
|
|
wrong return codes
|
7026 |
|
|
* [176]9271 Severe bias in java.security.SecureRandom
|
7027 |
|
|
|
7028 |
|
|
Ada compiler and library
|
7029 |
|
|
|
7030 |
|
|
* [177]6767 make gnatlib-shared fails on -laddr2line
|
7031 |
|
|
* [178]9911 gnatmake fails to link when GCC configured with
|
7032 |
|
|
--with-sjlj-exceptions=yes
|
7033 |
|
|
* [179]10020 Can't bootstrap gcc on AIX with Ada enabled
|
7034 |
|
|
* [180]10546 Ada tasking not working on Red Hat 9
|
7035 |
|
|
|
7036 |
|
|
preprocessor
|
7037 |
|
|
|
7038 |
|
|
* [181]7029 preprocessor should ignore #warning with -M
|
7039 |
|
|
|
7040 |
|
|
ARM-specific
|
7041 |
|
|
|
7042 |
|
|
* [182]2903 [arm] Optimization bug with long long arithmetic
|
7043 |
|
|
* [183]7873 arm-linux-gcc fails when assigning address to a bit field
|
7044 |
|
|
|
7045 |
|
|
FreeBSD-specific
|
7046 |
|
|
|
7047 |
|
|
* [184]7680 float functions undefined in math.h/cmath with #define
|
7048 |
|
|
_XOPEN_SOURCE
|
7049 |
|
|
|
7050 |
|
|
HP-UX or HP-PA-specific
|
7051 |
|
|
|
7052 |
|
|
* [185]8705 [HP-PA] ICE in emit_move_insn_1, in expr.c
|
7053 |
|
|
* [186]9986 [HP-UX] Incorrect transformation of fputs_unlocked to
|
7054 |
|
|
fputc_unlocked
|
7055 |
|
|
* [187]10056 [HP-PA] ICE at -O2 when building c++ code from doxygen
|
7056 |
|
|
|
7057 |
|
|
m68hc11-specific
|
7058 |
|
|
|
7059 |
|
|
* [188]6744 Bad assembler code generated: reference to pseudo
|
7060 |
|
|
register z
|
7061 |
|
|
* [189]7361 Internal compiler error in reload_cse_simplify_operands,
|
7062 |
|
|
in reload1.c
|
7063 |
|
|
|
7064 |
|
|
MIPS-specific
|
7065 |
|
|
|
7066 |
|
|
* [190]9496 [mips-linux] bug in optimizer?
|
7067 |
|
|
|
7068 |
|
|
PowerPC-specific
|
7069 |
|
|
|
7070 |
|
|
* [191]7067 -Os with -mcpu=powerpc optimizes for speed (?) instead of
|
7071 |
|
|
space
|
7072 |
|
|
* [192]8480 reload ICEs for LAPACK code on powerpc64-linux
|
7073 |
|
|
* [193]8784 [AIX] Internal compiler error in simplify_gen_subreg
|
7074 |
|
|
* [194]10315 [powerpc] ICE: in extract_insn, in recog.c
|
7075 |
|
|
|
7076 |
|
|
SPARC-specific
|
7077 |
|
|
|
7078 |
|
|
* [195]10267 (documentation) Wrong build instructions for
|
7079 |
|
|
*-*-solaris2*
|
7080 |
|
|
|
7081 |
|
|
x86-specific (Intel/AMD)
|
7082 |
|
|
|
7083 |
|
|
* [196]7916 ICE in instantiate_virtual_register_1
|
7084 |
|
|
* [197]7926 (c++) i486 instructions in header files make c++ programs
|
7085 |
|
|
crash on i386
|
7086 |
|
|
* [198]8555 ICE in gen_split_1231
|
7087 |
|
|
* [199]8994 ICE with -O -march=pentium4
|
7088 |
|
|
* [200]9426 ICE with -fssa -funroll-loops -fprofile-arcs
|
7089 |
|
|
* [201]9806 ICE in inline assembly with -fPIC flag
|
7090 |
|
|
* [202]10077 gcc -msse2 generates movd to move dwords between xmm
|
7091 |
|
|
regs
|
7092 |
|
|
* [203]10233 64-bit comparison only comparing bottom 32-bits
|
7093 |
|
|
* [204]10286 type-punning doesn't work with __m64 and -O
|
7094 |
|
|
* [205]10308 [x86] ICE with -O -fgcse or -O2
|
7095 |
|
|
__________________________________________________________________
|
7096 |
|
|
|
7097 |
|
|
GCC 3.3.1
|
7098 |
|
|
|
7099 |
|
|
Bug Fixes
|
7100 |
|
|
|
7101 |
|
|
This section lists the problem reports (PRs) from GCC's bug tracking
|
7102 |
|
|
system that are known to be fixed in the 3.3.1 release. This list might
|
7103 |
|
|
not be complete (that is, it is possible that some PRs that have been
|
7104 |
|
|
fixed are not listed here).
|
7105 |
|
|
|
7106 |
|
|
Bootstrap failures
|
7107 |
|
|
|
7108 |
|
|
* [206]11272 [Solaris] make bootstrap fails while building libstdc++
|
7109 |
|
|
|
7110 |
|
|
Internal compiler errors (multi-platform)
|
7111 |
|
|
|
7112 |
|
|
* [207]5754 ICE on invalid nested template class
|
7113 |
|
|
* [208]6597 ICE in set_mem_alias_set compiling Qt with -O2 on ia64
|
7114 |
|
|
and --enable-checking
|
7115 |
|
|
* [209]6949 (c++) ICE in tsubst_decl, in cp/pt.c
|
7116 |
|
|
* [210]7053 (c++) ICE when declaring a function already defined as a
|
7117 |
|
|
friend method of a template class
|
7118 |
|
|
* [211]8164 (c++) ICE when using different const expressions as
|
7119 |
|
|
template parameter
|
7120 |
|
|
* [212]8384 (c++) ICE in is_base_type, in dwarf2out.c
|
7121 |
|
|
* [213]9559 (c++) ICE with invalid initialization of a static const
|
7122 |
|
|
* [214]9649 (c++) ICE in finish_member_declaration, in cp/semantics.c
|
7123 |
|
|
when redeclaring a static member variable
|
7124 |
|
|
* [215]9864 (fortran) ICE in add_abstract_origin_attribute, in
|
7125 |
|
|
dwarfout.c with -g -O -finline-functions
|
7126 |
|
|
* [216]10432 (c++) ICE in poplevel, in cp/decl.c
|
7127 |
|
|
* [217]10475 ICE in subreg_highpart_offset for code with long long
|
7128 |
|
|
* [218]10635 (c++) ICE when dereferencing an incomplete type casted
|
7129 |
|
|
from a void pointer
|
7130 |
|
|
* [219]10661 (c++) ICE in instantiate_decl, in cp/pt.c while
|
7131 |
|
|
instantiating static member variables
|
7132 |
|
|
* [220]10700 ICE in copy_to_mode_reg on 64-bit targets
|
7133 |
|
|
* [221]10712 (c++) ICE in constructor_name_full, in cp/decl2.c
|
7134 |
|
|
* [222]10796 (c++) ICE when defining an enum with two values: -1 and
|
7135 |
|
|
MAX_INT_64BIT
|
7136 |
|
|
* [223]10890 ICE in merge_assigned_reloads building Linux 2.4.2x
|
7137 |
|
|
sched.c
|
7138 |
|
|
* [224]10939 (c++) ICE with template code
|
7139 |
|
|
* [225]10956 (c++) ICE when specializing a template member function
|
7140 |
|
|
of a template class, in tsubst, in cp/pt.c
|
7141 |
|
|
* [226]11041 (c++) ICE: const myclass &x = *x; (when operator*()
|
7142 |
|
|
defined)
|
7143 |
|
|
* [227]11059 (c++) ICE with empty union
|
7144 |
|
|
* [228]11083 (c++) ICE in commit_one_edge_insertion, in cfgrtl.c with
|
7145 |
|
|
-O2 -fnon-call-exceptions
|
7146 |
|
|
* [229]11105 (c++) ICE in mangle_conv_op_name_for_type
|
7147 |
|
|
* [230]11149 (c++) ICE on error when instantiation with call function
|
7148 |
|
|
of a base type
|
7149 |
|
|
* [231]11228 (c++) ICE on new-expression using array operator new and
|
7150 |
|
|
default-initialization
|
7151 |
|
|
* [232]11282 (c++) Infinite memory usage after syntax error
|
7152 |
|
|
* [233]11301 (fortran) ICE with -fno-globals
|
7153 |
|
|
* [234]11308 (c++) ICE when using an enum type name as if it were a
|
7154 |
|
|
class or namespace
|
7155 |
|
|
* [235]11473 (c++) ICE with -gstabs when empty struct inherits from
|
7156 |
|
|
an empty struct
|
7157 |
|
|
* [236]11503 (c++) ICE when instantiating template with ADDR_EXPR
|
7158 |
|
|
* [237]11513 (c++) ICE in push_template_decl_real, in cp/pt.c:
|
7159 |
|
|
template member functions
|
7160 |
|
|
|
7161 |
|
|
Optimization bugs
|
7162 |
|
|
|
7163 |
|
|
* [238]11198 -O2 -frename-registers generates wrong code (aliasing
|
7164 |
|
|
problem)
|
7165 |
|
|
* [239]11304 Wrong code production with -fomit-frame-pointer
|
7166 |
|
|
* [240]11381 volatile memory access optimized away
|
7167 |
|
|
* [241]11536 [strength-reduce] -O2 optimization produces wrong code
|
7168 |
|
|
* [242]11557 constant folding bug generates wrong code
|
7169 |
|
|
|
7170 |
|
|
C front end
|
7171 |
|
|
|
7172 |
|
|
* [243]5897 No warning for statement after return
|
7173 |
|
|
* [244]11279 DWARF-2 output mishandles large enums
|
7174 |
|
|
|
7175 |
|
|
Preprocessor bugs
|
7176 |
|
|
|
7177 |
|
|
* [245]11022 no warning for non-compatible macro redefinition
|
7178 |
|
|
|
7179 |
|
|
C++ compiler and library
|
7180 |
|
|
|
7181 |
|
|
* [246]2330 static_cast<>() to a private base is allowed
|
7182 |
|
|
* [247]5388 Incorrect message "operands to ?: have different types"
|
7183 |
|
|
* [248]5390 Libiberty fails to demangle multi-digit template
|
7184 |
|
|
parameters
|
7185 |
|
|
* [249]7877 Incorrect parameter passing to specializations of member
|
7186 |
|
|
function templates
|
7187 |
|
|
* [250]9393 Anonymous namespaces and compiling the same file twice
|
7188 |
|
|
* [251]10032 -pedantic converts some errors to warnings
|
7189 |
|
|
* [252]10468 const typeof(x) is non-const, but only in templates
|
7190 |
|
|
* [253]10527 confused error message with "new int()" parameter
|
7191 |
|
|
initializer
|
7192 |
|
|
* [254]10679 parameter MIN_INLINE_INSNS is not honored
|
7193 |
|
|
* [255]10682 gcc chokes on a typedef for an enum inside a class
|
7194 |
|
|
template
|
7195 |
|
|
* [256]10689 pow(std::complex(0),1/3) returns (nan, nan) instead of
|
7196 |
|
|
0.
|
7197 |
|
|
* [257]10845 template member function (with nested template as
|
7198 |
|
|
parameter) cannot be called anymore if another unrelated template
|
7199 |
|
|
member function is defined
|
7200 |
|
|
* [258]10849 Cannot define an out-of-class specialization of a
|
7201 |
|
|
private nested template class
|
7202 |
|
|
* [259]10888 Suppress -Winline warnings for system headers
|
7203 |
|
|
* [260]10929 -Winline warns about functions for which no definition
|
7204 |
|
|
is visible
|
7205 |
|
|
* [261]10931 valid conversion static_cast
|
7206 |
|
|
int&>(lvalue-of-type-int) is rejected
|
7207 |
|
|
* [262]10940 Bad code with explicit specialization
|
7208 |
|
|
* [263]10968 If member function implicitly instantiated, explicit
|
7209 |
|
|
instantiation of class fails to instantiate it
|
7210 |
|
|
* [264]10990 Cannot convert with dynamic_cast<> to a private base
|
7211 |
|
|
class from within a member function
|
7212 |
|
|
* [265]11039 Bad interaction between implicit typename deprecation
|
7213 |
|
|
and friendship
|
7214 |
|
|
* [266]11062 (libstdc++) avoid __attribute__ ((unused)); say
|
7215 |
|
|
"__unused__" instead
|
7216 |
|
|
* [267]11095 C++ iostream manipulator causes segfault when called
|
7217 |
|
|
with negative argument
|
7218 |
|
|
* [268]11098 g++ doesn't emit complete debugging information for
|
7219 |
|
|
local variables in destructors
|
7220 |
|
|
* [269]11137 Linux shared library constructors not called unless
|
7221 |
|
|
there's one global object
|
7222 |
|
|
* [270]11154 spurious ambiguity report for template class
|
7223 |
|
|
specialization
|
7224 |
|
|
* [271]11329 Compiler cannot find user defined implicit typecast
|
7225 |
|
|
* [272]11332 Spurious error with casts in ?: expression
|
7226 |
|
|
* [273]11431 static_cast behavior with subclasses when default
|
7227 |
|
|
constructor available
|
7228 |
|
|
* [274]11528 money_get facet does not accept "$.00" as valid
|
7229 |
|
|
* [275]11546 Type lookup problems in out-of-line definition of a
|
7230 |
|
|
class doubly nested from a template class
|
7231 |
|
|
* [276]11567 C++ code containing templated member function with same
|
7232 |
|
|
name as pure virtual member function results in linking failure
|
7233 |
|
|
* [277]11645 Failure to deal with using and private inheritance
|
7234 |
|
|
|
7235 |
|
|
Java compiler and library
|
7236 |
|
|
|
7237 |
|
|
* [278]5179 Qualified static field access doesn't initialize its
|
7238 |
|
|
class
|
7239 |
|
|
* [279]8204 gcj -O2 to native reorders certain instructions
|
7240 |
|
|
improperly
|
7241 |
|
|
* [280]10838 java.io.ObjectInputStream syntax error
|
7242 |
|
|
* [281]10886 The RMI registry that comes with GCJ does not work
|
7243 |
|
|
correctly
|
7244 |
|
|
* [282]11349 JNDI URL context factories not located correctly
|
7245 |
|
|
|
7246 |
|
|
x86-specific (Intel/AMD)
|
7247 |
|
|
|
7248 |
|
|
* [283]4823 ICE on inline assembly code
|
7249 |
|
|
* [284]8878 miscompilation with -O and SSE
|
7250 |
|
|
* [285]9815 (c++ library) atomicity.h - fails to compile with -O3
|
7251 |
|
|
-masm=intel
|
7252 |
|
|
* [286]10402 (inline assembly) [x86] ICE in merge_assigned_reloads,
|
7253 |
|
|
in reload1.c
|
7254 |
|
|
* [287]10504 ICE with SSE2 code and -O3 -mcpu=pentium4 -msse2
|
7255 |
|
|
* [288]10673 ICE for x86-64 on freebsd libc vfprintf.c source
|
7256 |
|
|
* [289]11044 [x86] out of range loop instructions for FP code on K6
|
7257 |
|
|
* [290]11089 ICE: instantiate_virtual_regs_lossage while using SSE
|
7258 |
|
|
built-ins
|
7259 |
|
|
* [291]11420 [x86_64] gcc generates invalid asm code when "-O -fPIC"
|
7260 |
|
|
is used
|
7261 |
|
|
|
7262 |
|
|
SPARC- or Solaris- specific
|
7263 |
|
|
|
7264 |
|
|
* [292]9362 solaris 'as' dies when fed .s and "-gstabs"
|
7265 |
|
|
* [293]10142 [SPARC64] gcc produces wrong code when passing
|
7266 |
|
|
structures by value
|
7267 |
|
|
* [294]10663 New configure check aborts with Sun tools.
|
7268 |
|
|
* [295]10835 combinatorial explosion in scheduler on HyperSPARC
|
7269 |
|
|
* [296]10876 ICE in calculate_giv_inc when building KDE
|
7270 |
|
|
* [297]10955 wrong code at -O3 for structure argument in context of
|
7271 |
|
|
structure return
|
7272 |
|
|
* [298]11018 -mcpu=ultrasparc busts tar-1.13.25
|
7273 |
|
|
* [299]11556 [sparc64] ICE in gen_reg_rtx() while compiling 2.6.x
|
7274 |
|
|
Linux kernel
|
7275 |
|
|
|
7276 |
|
|
ia64 specific
|
7277 |
|
|
|
7278 |
|
|
* [300]10907 gcc violates the ia64 ABI (GP must be preserved)
|
7279 |
|
|
* [301]11320 scheduler bug (in machine depended reorganization pass)
|
7280 |
|
|
* [302]11599 bug with conditional and __builtin_prefetch
|
7281 |
|
|
|
7282 |
|
|
PowerPC specific
|
7283 |
|
|
|
7284 |
|
|
* [303]9745 [powerpc] gcc mis-compiles libmcrypt (alias problem
|
7285 |
|
|
during loop)
|
7286 |
|
|
* [304]10871 error in rs6000_stack_info save_size computation
|
7287 |
|
|
* [305]11440 gcc mis-compiles c++ code (libkhtml) with -O2, -fno-gcse
|
7288 |
|
|
cures it
|
7289 |
|
|
|
7290 |
|
|
m68k-specific
|
7291 |
|
|
|
7292 |
|
|
* [306]7594 [m68k] ICE on legal code associated with simplify-rtx
|
7293 |
|
|
* [307]10557 [m68k] ICE in subreg_offset_representable_p
|
7294 |
|
|
* [308]11054 [m68k] ICE in reg_overlap_mentioned_p
|
7295 |
|
|
|
7296 |
|
|
ARM-specific
|
7297 |
|
|
|
7298 |
|
|
* [309]10834 [arm] GCC 3.3 still generates incorrect instructions for
|
7299 |
|
|
functions with __attribute__ ((interrupt ("IRQ")))
|
7300 |
|
|
* [310]10842 [arm] Clobbered link register is copied to pc under
|
7301 |
|
|
certain circumstances
|
7302 |
|
|
* [311]11052 [arm] noce_process_if_block() can lose REG_INC notes
|
7303 |
|
|
* [312]11183 [arm] ICE in change_address_1 (3.3) / subreg_hard_regno
|
7304 |
|
|
(3.4)
|
7305 |
|
|
|
7306 |
|
|
MIPS-specific
|
7307 |
|
|
|
7308 |
|
|
* [313]11084 ICE in propagate_one_insn, in flow.c
|
7309 |
|
|
|
7310 |
|
|
SH-specific
|
7311 |
|
|
|
7312 |
|
|
* [314]10331 can't compile c++ part of gcc cross compiler for sh-elf
|
7313 |
|
|
* [315]10413 [SH] ICE in reload_cse_simplify_operands, in reload1.c
|
7314 |
|
|
* [316]11096 i686-linux to sh-linux cross compiler fails to compile
|
7315 |
|
|
C++ files
|
7316 |
|
|
|
7317 |
|
|
GNU/Linux (or Hurd?) specific
|
7318 |
|
|
|
7319 |
|
|
* [317]2873 Bogus fixinclude of stdio.h from glibc 2.2.3
|
7320 |
|
|
|
7321 |
|
|
UnixWare specific
|
7322 |
|
|
|
7323 |
|
|
* [318]3163 configure bug: gcc/aclocal.m4 mmap test fails on UnixWare
|
7324 |
|
|
7.1.1
|
7325 |
|
|
|
7326 |
|
|
Cygwin (or mingw) specific
|
7327 |
|
|
|
7328 |
|
|
* [319]5287 ICE with dllimport attribute
|
7329 |
|
|
* [320]10148 [MingW/CygWin] Compiler dumps core
|
7330 |
|
|
|
7331 |
|
|
DJGPP specific
|
7332 |
|
|
|
7333 |
|
|
* [321]8787 GCC fails to emit .intel_syntax when invoked with
|
7334 |
|
|
-masm=intel on DJGPP
|
7335 |
|
|
|
7336 |
|
|
Darwin (and MacOS X) specific
|
7337 |
|
|
|
7338 |
|
|
* [322]10900 trampolines crash
|
7339 |
|
|
|
7340 |
|
|
Documentation
|
7341 |
|
|
|
7342 |
|
|
* [323]1607 (c++) Format attributes on methods undocumented
|
7343 |
|
|
* [324]4252 Invalid option `-fdump-translation-unit'
|
7344 |
|
|
* [325]4490 Clarify restrictions on -m96bit-long-double,
|
7345 |
|
|
-m128bit-long-double
|
7346 |
|
|
* [326]10355 document an issue with regparm attribute on some systems
|
7347 |
|
|
(e.g. Solaris)
|
7348 |
|
|
* [327]10726 (fortran) Documentation for function "IDate Intrinsic
|
7349 |
|
|
(Unix)" is wrong
|
7350 |
|
|
* [328]10805 document bug in old version of Sun assembler
|
7351 |
|
|
* [329]10815 warn against GNU binutils on AIX
|
7352 |
|
|
* [330]10877 document need for newer binutils on i?86-*-linux-gnu
|
7353 |
|
|
* [331]11280 Manual incorrect with respect to -freorder-blocks
|
7354 |
|
|
* [332]11466 Document -mlittle-endian and its restrictions for the
|
7355 |
|
|
sparc64 port
|
7356 |
|
|
|
7357 |
|
|
Testsuite bugs (compiler itself is not affected)
|
7358 |
|
|
|
7359 |
|
|
* [333]10737 newer bison causes g++.dg/parse/crash2.C to incorrectly
|
7360 |
|
|
report failure
|
7361 |
|
|
* [334]10810 gcc-3.3 fails make check: buffer overrun in
|
7362 |
|
|
test_demangle.c
|
7363 |
|
|
__________________________________________________________________
|
7364 |
|
|
|
7365 |
|
|
GCC 3.3.2
|
7366 |
|
|
|
7367 |
|
|
Bug Fixes
|
7368 |
|
|
|
7369 |
|
|
This section lists the problem reports (PRs) from [335]GCC's bug
|
7370 |
|
|
tracking system that are known to be fixed in the 3.3.2 release. This
|
7371 |
|
|
list might not be complete (that is, it is possible that some PRs that
|
7372 |
|
|
have been fixed are not listed here).
|
7373 |
|
|
|
7374 |
|
|
Bootstrap failures and problems
|
7375 |
|
|
|
7376 |
|
|
* [336]8336 [SCO5] bootstrap config still tries to use COFF options
|
7377 |
|
|
* [337]9330 [alpha-osf] Bootstrap failure on Compaq Tru64 with
|
7378 |
|
|
--enable-threads=posix
|
7379 |
|
|
* [338]9631 [hppa64-linux] gcc-3.3 fails to bootstrap
|
7380 |
|
|
* [339]9877 fixincludes makes a bad sys/byteorder.h on svr5 (UnixWare
|
7381 |
|
|
7.1.1)
|
7382 |
|
|
* [340]11687 xstormy16-elf build fails in libf2c
|
7383 |
|
|
* [341]12263 [SGI IRIX] bootstrap fails during compile of
|
7384 |
|
|
libf2c/libI77/backspace.c
|
7385 |
|
|
* [342]12490 buffer overflow in scan-decls.c (during Solaris 9
|
7386 |
|
|
fix-header processing)
|
7387 |
|
|
|
7388 |
|
|
Internal compiler errors (multi-platform)
|
7389 |
|
|
|
7390 |
|
|
* [343]7277 Casting integers to vector types causes ICE
|
7391 |
|
|
* [344]7939 (c++) ICE on invalid function template specialization
|
7392 |
|
|
* [345]11063 (c++) ICE on parsing initialization list of const array
|
7393 |
|
|
member
|
7394 |
|
|
* [346]11207 ICE with negative index in array element designator
|
7395 |
|
|
* [347]11522 (fortran) g77 dwarf-2 ICE in
|
7396 |
|
|
add_abstract_origin_attribute
|
7397 |
|
|
* [348]11595 (c++) ICE on duplicate label definition
|
7398 |
|
|
* [349]11646 (c++) ICE in commit_one_edge_insertion with
|
7399 |
|
|
-fnon-call-exceptions -fgcse -O
|
7400 |
|
|
* [350]11665 ICE in struct initializer when taking address
|
7401 |
|
|
* [351]11852 (c++) ICE with bad struct initializer.
|
7402 |
|
|
* [352]11878 (c++) ICE in cp_expr_size
|
7403 |
|
|
* [353]11883 ICE with any -O on mercury-generated C code
|
7404 |
|
|
* [354]11991 (c++) ICE in cxx_incomplete_type_diagnostic, in
|
7405 |
|
|
cp/typeck2.c when applying typeid operator to template template
|
7406 |
|
|
parameter
|
7407 |
|
|
* [355]12146 ICE in lookup_template_function, in cp/pt.c
|
7408 |
|
|
* [356]12215 ICE in make_label_edge with -fnon-call-exceptions
|
7409 |
|
|
-fno-gcse -O2
|
7410 |
|
|
* [357]12369 (c++) ICE with templates and friends
|
7411 |
|
|
* [358]12446 ICE in emit_move_insn on complicated array reference
|
7412 |
|
|
* [359]12510 ICE in final_scan_insn
|
7413 |
|
|
* [360]12544 ICE with large parameters used in nested functions
|
7414 |
|
|
|
7415 |
|
|
C and optimization bugs
|
7416 |
|
|
|
7417 |
|
|
* [361]9862 spurious warnings with -W -finline-functions
|
7418 |
|
|
* [362]10962 lookup_field is a linear search on a linked list (can be
|
7419 |
|
|
slow if large struct)
|
7420 |
|
|
* [363]11370 -Wunreachable-code gives false complaints
|
7421 |
|
|
* [364]11637 invalid assembly with -fnon-call-exceptions
|
7422 |
|
|
* [365]11885 Problem with bitfields in packed structs
|
7423 |
|
|
* [366]12082 Inappropriate unreachable code warnings
|
7424 |
|
|
* [367]12180 Inline optimization fails for variadic function
|
7425 |
|
|
* [368]12340 loop unroller + gcse produces wrong code
|
7426 |
|
|
|
7427 |
|
|
C++ compiler and library
|
7428 |
|
|
|
7429 |
|
|
* [369]3907 nested template parameter collides with member name
|
7430 |
|
|
* [370]5293 confusing message when binding a temporary to a reference
|
7431 |
|
|
* [371]5296 [DR115] Pointers to functions and to template functions
|
7432 |
|
|
behave differently in deduction
|
7433 |
|
|
* [372]7939 ICE on function template specialization
|
7434 |
|
|
* [373]8656 Unable to assign function with __attribute__ and pointer
|
7435 |
|
|
return type to an appropriate variable
|
7436 |
|
|
* [374]10147 Confusing error message for invalid template function
|
7437 |
|
|
argument
|
7438 |
|
|
* [375]11400 std::search_n() makes assumptions about Size parameter
|
7439 |
|
|
* [376]11409 issues with using declarations, overloading, and
|
7440 |
|
|
built-in functions
|
7441 |
|
|
* [377]11740 ctype::do_is(mask, wchar_t) doesn't handle
|
7442 |
|
|
multiple bits in mask
|
7443 |
|
|
* [378]11786 operator() call on variable in other namespace not
|
7444 |
|
|
recognized
|
7445 |
|
|
* [379]11867 static_cast ignores ambiguity
|
7446 |
|
|
* [380]11928 bug with conversion operators that are typedefs
|
7447 |
|
|
* [381]12114 Uninitialized memory accessed in dtor
|
7448 |
|
|
* [382]12163 static_cast + explicit constructor regression
|
7449 |
|
|
* [383]12181 Wrong code with comma operator and c++
|
7450 |
|
|
* [384]12236 regparm and fastcall messes up parameters
|
7451 |
|
|
* [385]12266 incorrect instantiation of unneeded template during
|
7452 |
|
|
overload resolution
|
7453 |
|
|
* [386]12296 istream::peek() doesn't set eofbit
|
7454 |
|
|
* [387]12298 [sjlj exceptions] Stack unwind destroys
|
7455 |
|
|
not-yet-constructed object
|
7456 |
|
|
* [388]12369 ICE with templates and friends
|
7457 |
|
|
* [389]12337 apparently infinite loop in g++
|
7458 |
|
|
* [390]12344 stdcall attribute ignored if function returns a pointer
|
7459 |
|
|
* [391]12451 missing(late) class forward declaration in cxxabi.h
|
7460 |
|
|
* [392]12486 g++ accepts invalid use of a qualified name
|
7461 |
|
|
|
7462 |
|
|
x86 specific (Intel/AMD)
|
7463 |
|
|
|
7464 |
|
|
* [393]8869 [x86 MMX] ICE with const variable optimization and MMX
|
7465 |
|
|
builtins
|
7466 |
|
|
* [394]9786 ICE in fixup_abnormal_edges with -fnon-call-exceptions
|
7467 |
|
|
-O2
|
7468 |
|
|
* [395]11689 g++3.3 emits un-assembleable code for k6 architecture
|
7469 |
|
|
* [396]12116 [k6] Invalid assembly output values with X-MAME code
|
7470 |
|
|
* [397]12070 ICE converting between double and long double with
|
7471 |
|
|
-msoft-float
|
7472 |
|
|
|
7473 |
|
|
ia64-specific
|
7474 |
|
|
|
7475 |
|
|
* [398]11184 [ia64 hpux] ICE on __builtin_apply building libobjc
|
7476 |
|
|
* [399]11535 __builtin_return_address may not work on ia64
|
7477 |
|
|
* [400]11693 [ia64] ICE in gen_nop_type
|
7478 |
|
|
* [401]12224 [ia64] Thread-local storage doesn't work
|
7479 |
|
|
|
7480 |
|
|
PowerPC-specific
|
7481 |
|
|
|
7482 |
|
|
* [402]11087 [powerpc64-linux] GCC miscompiles raid1.c from linux
|
7483 |
|
|
kernel
|
7484 |
|
|
* [403]11319 loop miscompiled on ppc32
|
7485 |
|
|
* [404]11949 ICE Compiler segfault with ffmpeg -maltivec code
|
7486 |
|
|
|
7487 |
|
|
SPARC-specific
|
7488 |
|
|
|
7489 |
|
|
* [405]11662 wrong code for expr. with cast to long long and
|
7490 |
|
|
exclusive or
|
7491 |
|
|
* [406]11965 invalid assembler code for a shift < 32 operation
|
7492 |
|
|
* [407]12301 (c++) stack corruption when a returned expression throws
|
7493 |
|
|
an exception
|
7494 |
|
|
|
7495 |
|
|
Alpha-specific
|
7496 |
|
|
|
7497 |
|
|
* [408]11717 [alpha-linux] unrecognizable insn compiling for.c of
|
7498 |
|
|
kernel 2.4.22-pre8
|
7499 |
|
|
|
7500 |
|
|
HPUX-specific
|
7501 |
|
|
|
7502 |
|
|
* [409]11313 problem with #pragma weak and static inline functions
|
7503 |
|
|
* [410]11712 __STDC_EXT__ not defined for C++ by default anymore?
|
7504 |
|
|
|
7505 |
|
|
Solaris specific
|
7506 |
|
|
|
7507 |
|
|
* [411]12166 Profiled programs crash if PROFDIR is set
|
7508 |
|
|
|
7509 |
|
|
Solaris-x86 specific
|
7510 |
|
|
|
7511 |
|
|
* [412]12101 i386 Solaris no longer works with GNU as?
|
7512 |
|
|
|
7513 |
|
|
Miscellaneous embedded target-specific bugs
|
7514 |
|
|
|
7515 |
|
|
* [413]10988 [m32r-elf] wrong blockmove code with -O3
|
7516 |
|
|
* [414]11805 [h8300-unknown-coff] [H8300] ICE for simple code with
|
7517 |
|
|
-O2
|
7518 |
|
|
* [415]11902 [sh4] spec file improperly inserts rpath even when none
|
7519 |
|
|
needed
|
7520 |
|
|
* [416]11903 [sh4] -pthread fails to link due to error in spec file
|
7521 |
|
|
on sh4
|
7522 |
|
|
__________________________________________________________________
|
7523 |
|
|
|
7524 |
|
|
GCC 3.3.3
|
7525 |
|
|
|
7526 |
|
|
Minor features
|
7527 |
|
|
|
7528 |
|
|
In addition to the bug fixes documented below, this release contains
|
7529 |
|
|
few minor features such as:
|
7530 |
|
|
* Support for --with-sysroot
|
7531 |
|
|
* Support for automatic detection of executable stacks
|
7532 |
|
|
* Support for SSE3 instructions
|
7533 |
|
|
* Support for thread local storage debugging under GDB on S390
|
7534 |
|
|
|
7535 |
|
|
Bug Fixes
|
7536 |
|
|
|
7537 |
|
|
This section lists the problem reports (PRs) from [417]GCC's bug
|
7538 |
|
|
tracking system that are known to be fixed in the 3.3.3 release. This
|
7539 |
|
|
list might not be complete (that is, it is possible that some PRs that
|
7540 |
|
|
have been fixed are not listed here).
|
7541 |
|
|
|
7542 |
|
|
Bootstrap failures and issues
|
7543 |
|
|
|
7544 |
|
|
* [418]11890 Building cross gcc-3.3.1 for sparc-sun-solaris2.6 fails
|
7545 |
|
|
* [419]12399 boehm-gc fails (when building a cross compiler): libtool
|
7546 |
|
|
unable to infer tagged configuration
|
7547 |
|
|
* [420]13068 mklibgcc.in doesn't handle multi-level multilib
|
7548 |
|
|
subdirectories properly
|
7549 |
|
|
|
7550 |
|
|
Internal compiler errors (multi-platform)
|
7551 |
|
|
|
7552 |
|
|
* [421]10060 ICE (stack overflow) on huge file (300k lines) due to
|
7553 |
|
|
recursive behaviour of copy_rtx_if_shared, in emit_rtl.c
|
7554 |
|
|
* [422]10555 (c++) ICE on undefined template argument
|
7555 |
|
|
* [423]10706 (c++) ICE in mangle_class_name_for_template
|
7556 |
|
|
* [424]11496 (fortran) error in flow_loops_find when -funroll-loops
|
7557 |
|
|
active
|
7558 |
|
|
* [425]11741 ICE in pre_insert_copy_insn, in gcse.c
|
7559 |
|
|
* [426]12440 GCC crashes during compilation of quicktime4linux 2.0.0
|
7560 |
|
|
* [427]12632 (fortran) -fbounds-check ICE
|
7561 |
|
|
* [428]12712 (c++) ICE on short legit C++ code fragment with gcc
|
7562 |
|
|
3.3.2
|
7563 |
|
|
* [429]12726 (c++) ICE (segfault) on trivial code
|
7564 |
|
|
* [430]12890 (c++) ICE on compilation of class with throwing method
|
7565 |
|
|
* [431]12900 (c++) ICE in rtl_verify_flow_info_1
|
7566 |
|
|
* [432]13060 (fortran) ICE in fixup_var_refs_1, in function.c on
|
7567 |
|
|
correct code with -O2 -fno-force-mem
|
7568 |
|
|
* [433]13289 (c++) ICE in regenerate_decl_from_template on recursive
|
7569 |
|
|
template
|
7570 |
|
|
* [434]13318 ICE: floating point exception in the loop optimizer
|
7571 |
|
|
* [435]13392 (c++) ICE in convert_from_eh_region_ranges_1, in
|
7572 |
|
|
except.c
|
7573 |
|
|
* [436]13574 (c++) invalid array default initializer in class lets
|
7574 |
|
|
gcc consume all memory and die
|
7575 |
|
|
* [437]13475 ICE on SIMD variables with partial value initialization
|
7576 |
|
|
* [438]13797 (c++) ICE on invalid template parameter
|
7577 |
|
|
* [439]13824 (java) gcj SEGV with simple .java program
|
7578 |
|
|
|
7579 |
|
|
C and optimization bugs
|
7580 |
|
|
|
7581 |
|
|
* [440]8776 loop invariants are not removed (most likely)
|
7582 |
|
|
* [441]10339 [sparc,ppc,ppc64] Invalid optimization: replacing
|
7583 |
|
|
strncmp by memcmp
|
7584 |
|
|
* [442]11350 undefined labels with -Os -fPIC
|
7585 |
|
|
* [443]12826 Optimizer removes reference through volatile pointer
|
7586 |
|
|
* [444]12500 stabs debug info: void no longer a predefined / builtin
|
7587 |
|
|
type
|
7588 |
|
|
* [445]12941 builtin-bitops-1.c miscompilation (latent bug)
|
7589 |
|
|
* [446]12953 tree inliner bug (in inline_forbidden_p) and fix
|
7590 |
|
|
* [447]13041 linux-2.6/sound/core/oss/rate.c miscompiled
|
7591 |
|
|
* [448]13507 spurious printf format warning
|
7592 |
|
|
* [449]13382 Type information for const pointer disappears during
|
7593 |
|
|
optimization.
|
7594 |
|
|
* [450]13394 noreturn attribute ignored on recursive invokation
|
7595 |
|
|
* [451]13400 Compiled code crashes storing to read-only location
|
7596 |
|
|
* [452]13521 Endless loop in calculate_global_regs_live
|
7597 |
|
|
|
7598 |
|
|
C++ compiler and library
|
7599 |
|
|
|
7600 |
|
|
Some of the bug fixes in this list were made to implement decisions
|
7601 |
|
|
that the ISO C++ standards committee has made concerning several defect
|
7602 |
|
|
reports (DRs). Links in the list below point to detailed discussion of
|
7603 |
|
|
the relevant defect report.
|
7604 |
|
|
* [453]2094 unimplemented: use of `ptrmem_cst' in template type
|
7605 |
|
|
unification
|
7606 |
|
|
* [454]2294 using declaration confusion
|
7607 |
|
|
* [455]5050 template instantiation depth exceeds limit: recursion
|
7608 |
|
|
problem?
|
7609 |
|
|
* [456]9371 Bad exception handling in
|
7610 |
|
|
i/ostream::operator>>/<<(streambuf*)
|
7611 |
|
|
* [457]9546 bad exception handling in ostream members
|
7612 |
|
|
* [458]10081 basic_ios::_M_cache_locale leaves NULL members in the
|
7613 |
|
|
face of unknown locales
|
7614 |
|
|
* [459]10093 [460][DR 61] Setting failbit in exceptions doesn't work
|
7615 |
|
|
* [461]10095 istream::operator>>(int&) sets ios::badbit when
|
7616 |
|
|
ios::failbit is set.
|
7617 |
|
|
* [462]11554 Warning about reordering of initializers doesn't mention
|
7618 |
|
|
location of constructor
|
7619 |
|
|
* [463]12297 istream::sentry::sentry() handles eof() incorrectly.
|
7620 |
|
|
* [464]12352 Exception safety problems in src/localename.cc
|
7621 |
|
|
* [465]12438 Memory leak in locale::combine()
|
7622 |
|
|
* [466]12540 Memory leak in locale::locale(const char*)
|
7623 |
|
|
* [467]12594 DRs [468]60 [TC] and [469]63 [TC] not implemented
|
7624 |
|
|
* [470]12657 Resolution of [471]DR 292 (WP) still unimplemented
|
7625 |
|
|
* [472]12696 memory eating infinite loop in diagnostics (error
|
7626 |
|
|
recovery problem)
|
7627 |
|
|
* [473]12815 Code compiled with optimization behaves unexpectedly
|
7628 |
|
|
* [474]12862 Conflicts between typedefs/enums and namespace member
|
7629 |
|
|
declarations
|
7630 |
|
|
* [475]12926 Wrong value after assignment in initialize list using
|
7631 |
|
|
bit-fields
|
7632 |
|
|
* [476]12967 Resolution of [477]DR 300 [WP] still unimplemented
|
7633 |
|
|
* [478]12971 Resolution of [479]DR 328 [WP] still unimplemented
|
7634 |
|
|
* [480]13007 basic_streambuf::pubimbue, imbue wrong
|
7635 |
|
|
* [481]13009 Implicitly-defined assignment operator writes to wrong
|
7636 |
|
|
memory
|
7637 |
|
|
* [482]13057 regparm attribute not applied to destructor
|
7638 |
|
|
* [483]13070 -Wformat option ignored in g++
|
7639 |
|
|
* [484]13081 forward template declarations in let inlining
|
7640 |
|
|
fail
|
7641 |
|
|
* [485]13239 Assertion does not seem to work correctly anymore
|
7642 |
|
|
* [486]13262 "xxx is private within this context" when initializing a
|
7643 |
|
|
self-contained template class
|
7644 |
|
|
* [487]13290 simple typo in concept checking for std::generate_n
|
7645 |
|
|
* [488]13323 Template code does not compile in presence of typedef
|
7646 |
|
|
* [489]13369 __verify_grouping (and __add_grouping?) not correct
|
7647 |
|
|
* [490]13371 infinite loop with packed struct and inlining
|
7648 |
|
|
* [491]13445 Template argument replacement "dereferences" a typedef
|
7649 |
|
|
* [492]13461 Fails to access protected-ctor from public constant
|
7650 |
|
|
* [493]13462 Non-standard-conforming type set::pointer
|
7651 |
|
|
* [494]13478 gcc uses wrong constructor to initialize a const
|
7652 |
|
|
reference
|
7653 |
|
|
* [495]13544 "conflicting types" for enums in different scopes
|
7654 |
|
|
* [496]13650 string::compare should not (always) use
|
7655 |
|
|
traits_type::length()
|
7656 |
|
|
* [497]13683 bogus warning about passing non-PODs through ellipsis
|
7657 |
|
|
* [498]13688 Derived class is denied access to protected base class
|
7658 |
|
|
member class
|
7659 |
|
|
* [499]13774 Member variable cleared in virtual multiple inheritance
|
7660 |
|
|
class
|
7661 |
|
|
* [500]13884 Protect sstream.tcc from extern template use
|
7662 |
|
|
|
7663 |
|
|
Java compiler and library
|
7664 |
|
|
|
7665 |
|
|
* [501]10746 [win32] garbage collection crash in GCJ
|
7666 |
|
|
|
7667 |
|
|
Objective-C compiler and library
|
7668 |
|
|
|
7669 |
|
|
* [502]11433 Crash due to dereferencing null pointer when querying
|
7670 |
|
|
protocol
|
7671 |
|
|
|
7672 |
|
|
Fortran compiler and library
|
7673 |
|
|
|
7674 |
|
|
* [503]12633 logical expression gives incorrect result with
|
7675 |
|
|
-fugly-logint option
|
7676 |
|
|
* [504]13037 [gcse-lm] g77 generates incorrect code
|
7677 |
|
|
* [505]13213 Hex constant problem when compiling with -fugly-logint
|
7678 |
|
|
and -ftypeless-boz
|
7679 |
|
|
|
7680 |
|
|
x86-specific (Intel/AMD)
|
7681 |
|
|
|
7682 |
|
|
* [506]4490 ICE with -m128bit-long-double
|
7683 |
|
|
* [507]12292 [x86_64] ICE: RTL check: expected code `const_int', have
|
7684 |
|
|
`reg' in make_field_assignment, in combine.c
|
7685 |
|
|
* [508]12441 ICE: can't find a register to spill
|
7686 |
|
|
* [509]12943 array static-init failure under -fpic, -fPIC
|
7687 |
|
|
* [510]13608 Incorrect code with -O3 -ffast-math
|
7688 |
|
|
|
7689 |
|
|
PowerPC-specific
|
7690 |
|
|
|
7691 |
|
|
* [511]11598 testcase gcc.dg/20020118-1.c fails runtime check of
|
7692 |
|
|
__attribute__((aligned(16)))
|
7693 |
|
|
* [512]11793 ICE in extract_insn, in recog.c (const_vector's)
|
7694 |
|
|
* [513]12467 vmsumubm emitted when vmsummbm appropriate (typo in
|
7695 |
|
|
altivec.md)
|
7696 |
|
|
* [514]12537 g++ generates writeable text sections
|
7697 |
|
|
|
7698 |
|
|
SPARC-specific
|
7699 |
|
|
|
7700 |
|
|
* [515]12496 wrong result for __atomic_add(&value, -1) when using -O0
|
7701 |
|
|
-m64
|
7702 |
|
|
* [516]12865 mprotect call to make trampoline executable may fail
|
7703 |
|
|
* [517]13354 ICE in sparc_emit_set_const32
|
7704 |
|
|
|
7705 |
|
|
ARM-specific
|
7706 |
|
|
|
7707 |
|
|
* [518]10467 [arm] ICE in pre_insert_copy_insn,
|
7708 |
|
|
|
7709 |
|
|
ia64-specific
|
7710 |
|
|
|
7711 |
|
|
* [519]11226 ICE passing struct arg with two floats
|
7712 |
|
|
* [520]11227 ICE for _Complex float, _Complex long double args
|
7713 |
|
|
* [521]12644 GCC 3.3.2 fails to compile glibc on ia64
|
7714 |
|
|
* [522]13149 build gcc-3.3.2 1305 error:unrecognizable insn
|
7715 |
|
|
* Various fixes for libunwind
|
7716 |
|
|
|
7717 |
|
|
Alpha-specific
|
7718 |
|
|
|
7719 |
|
|
* [523]12654 Incorrect comparison code generated for Alpha
|
7720 |
|
|
* [524]12965 SEGV+ICE in cc1plus on alpha-linux with -O2
|
7721 |
|
|
* [525]13031 ICE (unrecognizable insn) when building gnome-libs-1.4.2
|
7722 |
|
|
|
7723 |
|
|
HPPA-specific
|
7724 |
|
|
|
7725 |
|
|
* [526]11634 [hppa] ICE in verify_local_live_at_start, in flow.c
|
7726 |
|
|
* [527]12158 [hppa] compilation does not terminate at -O1
|
7727 |
|
|
|
7728 |
|
|
S390-specific
|
7729 |
|
|
|
7730 |
|
|
* [528]11992 Wrong built-in code for memcmp with length 1<<24: only
|
7731 |
|
|
(1<<24)-1 possible for CLCL-Instruction
|
7732 |
|
|
|
7733 |
|
|
SH-specific
|
7734 |
|
|
|
7735 |
|
|
* [529]9365 segfault in gen_far_branch (config/sh/sh.c)
|
7736 |
|
|
* [530]10392 optimizer generates faulty array indexing
|
7737 |
|
|
* [531]11322 SH profiler outputs multiple definitions of symbol
|
7738 |
|
|
* [532]13069 gcc/config/sh/rtems.h broken
|
7739 |
|
|
* [533]13302 Putting a va_list in a struct causes seg fault
|
7740 |
|
|
* [534]13585 Incorrect optimization of call to sfunc
|
7741 |
|
|
* Fix inappropriately exported libgcc functions from the shared
|
7742 |
|
|
library
|
7743 |
|
|
|
7744 |
|
|
Other embedded target specific
|
7745 |
|
|
|
7746 |
|
|
* [535]8916 [mcore] unsigned char assign gets hosed.
|
7747 |
|
|
* [536]11576 [h8300] ICE in change_address_1, in emit-rtl.c
|
7748 |
|
|
* [537]13122 [h8300] local variable gets corrupted by function call
|
7749 |
|
|
when -fomit-frame-pointer is given
|
7750 |
|
|
* [538]13256 [cris] strict_low_part mistreated in delay slots
|
7751 |
|
|
* [539]13373 [mcore] optimization with -frerun-cse-after-loop
|
7752 |
|
|
-fexpensive-optimizations produces wrong code on mcore
|
7753 |
|
|
|
7754 |
|
|
GNU HURD-specific
|
7755 |
|
|
|
7756 |
|
|
* [540]12561 gcc/config/t-gnu needs updating to work with
|
7757 |
|
|
--with-sysroot
|
7758 |
|
|
|
7759 |
|
|
Tru64 Unix specific
|
7760 |
|
|
|
7761 |
|
|
* [541]6243 testsuite fails almost all tests due to no libintl in
|
7762 |
|
|
LD_LIBRARY_PATH during test.
|
7763 |
|
|
* [542]11397 weak aliases broken on Tru64 UNIX
|
7764 |
|
|
|
7765 |
|
|
AIX-specific
|
7766 |
|
|
|
7767 |
|
|
* [543]12505 build failure due to defines of uchar in cpphash.h and
|
7768 |
|
|
sys/types.h
|
7769 |
|
|
* [544]13150 WEAK symbols not exported by collect2
|
7770 |
|
|
|
7771 |
|
|
IRIX-specific
|
7772 |
|
|
|
7773 |
|
|
* [545]12666 fixincludes problem on IRIX 6.5.19m
|
7774 |
|
|
|
7775 |
|
|
Solaris-specific
|
7776 |
|
|
|
7777 |
|
|
* [546]12969 Including sys/byteorder.h breaks configure checks
|
7778 |
|
|
|
7779 |
|
|
Testsuite problems (compiler is not affected)
|
7780 |
|
|
|
7781 |
|
|
* [547]10819 testsuite creates CR+LF on compiler version lines in
|
7782 |
|
|
test summary files
|
7783 |
|
|
* [548]11612 abi_check not finding correct libgcc_s.so.1
|
7784 |
|
|
|
7785 |
|
|
Miscellaneous
|
7786 |
|
|
|
7787 |
|
|
* [549]13211 using -###, incorrect warnings about unused linker file
|
7788 |
|
|
are produced
|
7789 |
|
|
__________________________________________________________________
|
7790 |
|
|
|
7791 |
|
|
GCC 3.3.4
|
7792 |
|
|
|
7793 |
|
|
This is the [550]list of problem reports (PRs) from GCC's bug tracking
|
7794 |
|
|
system that are known to be fixed in the 3.3.4 release. This list might
|
7795 |
|
|
not be complete (that is, it is possible that some PRs that have been
|
7796 |
|
|
fixed are not listed here).
|
7797 |
|
|
__________________________________________________________________
|
7798 |
|
|
|
7799 |
|
|
GCC 3.3.5
|
7800 |
|
|
|
7801 |
|
|
This is the [551]list of problem reports (PRs) from GCC's bug tracking
|
7802 |
|
|
system that are known to be fixed in the 3.3.5 release. This list might
|
7803 |
|
|
not be complete (that is, it is possible that some PRs that have been
|
7804 |
|
|
fixed are not listed here).
|
7805 |
|
|
__________________________________________________________________
|
7806 |
|
|
|
7807 |
|
|
GCC 3.3.6
|
7808 |
|
|
|
7809 |
|
|
This is the [552]list of problem reports (PRs) from GCC's bug tracking
|
7810 |
|
|
system that are known to be fixed in the 3.3.6 release. This list might
|
7811 |
|
|
not be complete (that is, it is possible that some PRs that have been
|
7812 |
|
|
fixed are not listed here).
|
7813 |
|
|
|
7814 |
|
|
Please send FSF & GNU inquiries & questions to [553]gnu@gnu.org. There
|
7815 |
|
|
are also [554]other ways to contact the FSF.
|
7816 |
|
|
|
7817 |
|
|
These pages are [555]maintained by the GCC team.
|
7818 |
|
|
|
7819 |
|
|
|
7820 |
|
|
For questions related to the use of GCC, please consult these web
|
7821 |
|
|
pages and the [556]GCC manuals. If that fails, the
|
7822 |
|
|
[557]gcc-help@gcc.gnu.org mailing list might help.
|
7823 |
|
|
Please send comments on these web pages and the development of GCC to
|
7824 |
|
|
our developer mailing list at [558]gcc@gnu.org or
|
7825 |
|
|
[559]gcc@gcc.gnu.org. All of our lists have [560]public archives.
|
7826 |
|
|
|
7827 |
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth
|
7828 |
|
|
Floor, Boston, MA 02110, USA.
|
7829 |
|
|
|
7830 |
|
|
Verbatim copying and distribution of this entire article is permitted
|
7831 |
|
|
in any medium, provided this notice is preserved.
|
7832 |
|
|
Last modified 2010-07-11 [561]Valid XHTML 1.0
|
7833 |
|
|
|
7834 |
|
|
References
|
7835 |
|
|
|
7836 |
|
|
1. http://gcc.gnu.org/gcc-3.3/changes.html#3.3.6
|
7837 |
|
|
2. http://gcc.gnu.org/gcc-3.1/changes.html#obsolete_systems
|
7838 |
|
|
3. http://gcc.gnu.org/gcc-3.3/changes.html#obsolete_systems
|
7839 |
|
|
4. http://gcc.gnu.org/gcc-3.3/changes.html#nonnull_attribute
|
7840 |
|
|
5. http://gcc.gnu.org/news/dfa.html
|
7841 |
|
|
6. http://gcc.gnu.org/gcc-3.3/c99status.html
|
7842 |
|
|
7. http://gcc.gnu.org/onlinedocs/gcc-3.3.6/g77/News.html
|
7843 |
|
|
8. http://gcc.gnu.org/PR10140
|
7844 |
|
|
9. http://gcc.gnu.org/PR10198
|
7845 |
|
|
10. http://gcc.gnu.org/PR10338
|
7846 |
|
|
11. http://gcc.gnu.org/PR3581
|
7847 |
|
|
12. http://gcc.gnu.org/PR4382
|
7848 |
|
|
13. http://gcc.gnu.org/PR5533
|
7849 |
|
|
14. http://gcc.gnu.org/PR6387
|
7850 |
|
|
15. http://gcc.gnu.org/PR6412
|
7851 |
|
|
16. http://gcc.gnu.org/PR6620
|
7852 |
|
|
17. http://gcc.gnu.org/PR6663
|
7853 |
|
|
18. http://gcc.gnu.org/PR7068
|
7854 |
|
|
19. http://gcc.gnu.org/PR7083
|
7855 |
|
|
20. http://gcc.gnu.org/PR7647
|
7856 |
|
|
21. http://gcc.gnu.org/PR7675
|
7857 |
|
|
22. http://gcc.gnu.org/PR7718
|
7858 |
|
|
23. http://gcc.gnu.org/PR8116
|
7859 |
|
|
24. http://gcc.gnu.org/PR8358
|
7860 |
|
|
25. http://gcc.gnu.org/PR8511
|
7861 |
|
|
26. http://gcc.gnu.org/PR8564
|
7862 |
|
|
27. http://gcc.gnu.org/PR8660
|
7863 |
|
|
28. http://gcc.gnu.org/PR8766
|
7864 |
|
|
29. http://gcc.gnu.org/PR8803
|
7865 |
|
|
30. http://gcc.gnu.org/PR8846
|
7866 |
|
|
31. http://gcc.gnu.org/PR8906
|
7867 |
|
|
32. http://gcc.gnu.org/PR9216
|
7868 |
|
|
33. http://gcc.gnu.org/PR9261
|
7869 |
|
|
34. http://gcc.gnu.org/PR9263
|
7870 |
|
|
35. http://gcc.gnu.org/PR9429
|
7871 |
|
|
36. http://gcc.gnu.org/PR9516
|
7872 |
|
|
37. http://gcc.gnu.org/PR9600
|
7873 |
|
|
38. http://gcc.gnu.org/PR9629
|
7874 |
|
|
39. http://gcc.gnu.org/PR9672
|
7875 |
|
|
40. http://gcc.gnu.org/PR9749
|
7876 |
|
|
41. http://gcc.gnu.org/PR9794
|
7877 |
|
|
42. http://gcc.gnu.org/PR9829
|
7878 |
|
|
43. http://gcc.gnu.org/PR9916
|
7879 |
|
|
44. http://gcc.gnu.org/PR9936
|
7880 |
|
|
45. http://gcc.gnu.org/PR10262
|
7881 |
|
|
46. http://gcc.gnu.org/PR10278
|
7882 |
|
|
47. http://gcc.gnu.org/PR10446
|
7883 |
|
|
48. http://gcc.gnu.org/PR10451
|
7884 |
|
|
49. http://gcc.gnu.org/PR10506
|
7885 |
|
|
50. http://gcc.gnu.org/PR10549
|
7886 |
|
|
51. http://gcc.gnu.org/PR2001
|
7887 |
|
|
52. http://gcc.gnu.org/PR2391
|
7888 |
|
|
53. http://gcc.gnu.org/PR2960
|
7889 |
|
|
54. http://gcc.gnu.org/PR4046
|
7890 |
|
|
55. http://gcc.gnu.org/PR6405
|
7891 |
|
|
56. http://gcc.gnu.org/PR6798
|
7892 |
|
|
57. http://gcc.gnu.org/PR6871
|
7893 |
|
|
58. http://gcc.gnu.org/PR6909
|
7894 |
|
|
59. http://gcc.gnu.org/PR7189
|
7895 |
|
|
60. http://gcc.gnu.org/PR7642
|
7896 |
|
|
61. http://gcc.gnu.org/PR8634
|
7897 |
|
|
62. http://gcc.gnu.org/PR8750
|
7898 |
|
|
63. http://gcc.gnu.org/PR2161
|
7899 |
|
|
64. http://gcc.gnu.org/PR4319
|
7900 |
|
|
65. http://gcc.gnu.org/PR8602
|
7901 |
|
|
66. http://gcc.gnu.org/PR9177
|
7902 |
|
|
67. http://gcc.gnu.org/PR9853
|
7903 |
|
|
68. http://gcc.gnu.org/PR45
|
7904 |
|
|
69. http://gcc.gnu.org/PR3784
|
7905 |
|
|
70. http://gcc.gnu.org/PR764
|
7906 |
|
|
71. http://gcc.gnu.org/PR5116
|
7907 |
|
|
72. http://gcc.gnu.org/PR2862
|
7908 |
|
|
73. http://gcc.gnu.org/PR3663
|
7909 |
|
|
74. http://gcc.gnu.org/PR3797
|
7910 |
|
|
75. http://gcc.gnu.org/PR3948
|
7911 |
|
|
76. http://gcc.gnu.org/PR4137
|
7912 |
|
|
77. http://gcc.gnu.org/PR4361
|
7913 |
|
|
78. http://gcc.gnu.org/PR4802
|
7914 |
|
|
79. http://gcc.gnu.org/PR5837
|
7915 |
|
|
80. http://gcc.gnu.org/PR4803
|
7916 |
|
|
81. http://gcc.gnu.org/PR5094
|
7917 |
|
|
82. http://gcc.gnu.org/PR5730
|
7918 |
|
|
83. http://gcc.gnu.org/PR6713
|
7919 |
|
|
84. http://gcc.gnu.org/PR7015
|
7920 |
|
|
85. http://gcc.gnu.org/PR7086
|
7921 |
|
|
86. http://gcc.gnu.org/PR7099
|
7922 |
|
|
87. http://gcc.gnu.org/PR7247
|
7923 |
|
|
88. http://gcc.gnu.org/PR7441
|
7924 |
|
|
89. http://gcc.gnu.org/PR7768
|
7925 |
|
|
90. http://gcc.gnu.org/PR7804
|
7926 |
|
|
91. http://gcc.gnu.org/PR8099
|
7927 |
|
|
92. http://gcc.gnu.org/PR8117
|
7928 |
|
|
93. http://gcc.gnu.org/PR8205
|
7929 |
|
|
94. http://gcc.gnu.org/PR8645
|
7930 |
|
|
95. http://gcc.gnu.org/PR8724
|
7931 |
|
|
96. http://gcc.gnu.org/PR8805
|
7932 |
|
|
97. http://gcc.gnu.org/PR8691
|
7933 |
|
|
98. http://gcc.gnu.org/PR8700
|
7934 |
|
|
99. http://gcc.gnu.org/PR8724
|
7935 |
|
|
100. http://gcc.gnu.org/PR8949
|
7936 |
|
|
101. http://gcc.gnu.org/PR9016
|
7937 |
|
|
102. http://gcc.gnu.org/PR9053
|
7938 |
|
|
103. http://gcc.gnu.org/PR9152
|
7939 |
|
|
104. http://gcc.gnu.org/PR9182
|
7940 |
|
|
105. http://gcc.gnu.org/PR9297
|
7941 |
|
|
106. http://gcc.gnu.org/PR9318
|
7942 |
|
|
107. http://gcc.gnu.org/PR9320
|
7943 |
|
|
108. http://gcc.gnu.org/PR9400
|
7944 |
|
|
109. http://gcc.gnu.org/PR9424
|
7945 |
|
|
110. http://gcc.gnu.org/PR9425
|
7946 |
|
|
111. http://gcc.gnu.org/PR9439
|
7947 |
|
|
112. http://gcc.gnu.org/PR9474
|
7948 |
|
|
113. http://gcc.gnu.org/PR9548
|
7949 |
|
|
114. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#231
|
7950 |
|
|
115. http://gcc.gnu.org/PR9555
|
7951 |
|
|
116. http://gcc.gnu.org/PR9561
|
7952 |
|
|
117. http://gcc.gnu.org/PR9563
|
7953 |
|
|
118. http://gcc.gnu.org/PR9582
|
7954 |
|
|
119. http://gcc.gnu.org/PR9622
|
7955 |
|
|
120. http://gcc.gnu.org/PR9683
|
7956 |
|
|
121. http://gcc.gnu.org/PR9791
|
7957 |
|
|
122. http://gcc.gnu.org/PR9817
|
7958 |
|
|
123. http://gcc.gnu.org/PR9825
|
7959 |
|
|
124. http://gcc.gnu.org/PR9826
|
7960 |
|
|
125. http://gcc.gnu.org/PR9924
|
7961 |
|
|
126. http://gcc.gnu.org/PR9946
|
7962 |
|
|
127. http://gcc.gnu.org/PR9964
|
7963 |
|
|
128. http://gcc.gnu.org/PR9988
|
7964 |
|
|
129. http://gcc.gnu.org/PR10033
|
7965 |
|
|
130. http://gcc.gnu.org/PR10097
|
7966 |
|
|
131. http://gcc.gnu.org/PR10132
|
7967 |
|
|
132. http://gcc.gnu.org/PR10180
|
7968 |
|
|
133. http://gcc.gnu.org/PR10199
|
7969 |
|
|
134. http://gcc.gnu.org/PR10300
|
7970 |
|
|
135. http://gcc.gnu.org/PR10427
|
7971 |
|
|
136. http://gcc.gnu.org/PR10503
|
7972 |
|
|
137. http://gcc.gnu.org/PR5956
|
7973 |
|
|
138. http://gcc.gnu.org/PR1832
|
7974 |
|
|
139. http://gcc.gnu.org/PR3924
|
7975 |
|
|
140. http://gcc.gnu.org/PR5634
|
7976 |
|
|
141. http://gcc.gnu.org/PR6367
|
7977 |
|
|
142. http://gcc.gnu.org/PR6491
|
7978 |
|
|
143. http://gcc.gnu.org/PR6742
|
7979 |
|
|
144. http://gcc.gnu.org/PR7113
|
7980 |
|
|
145. http://gcc.gnu.org/PR7236
|
7981 |
|
|
146. http://gcc.gnu.org/PR7278
|
7982 |
|
|
147. http://gcc.gnu.org/PR7384
|
7983 |
|
|
148. http://gcc.gnu.org/PR7388
|
7984 |
|
|
149. http://gcc.gnu.org/PR8587
|
7985 |
|
|
150. http://gcc.gnu.org/PR9038
|
7986 |
|
|
151. http://gcc.gnu.org/PR10197
|
7987 |
|
|
152. http://gcc.gnu.org/PR6005
|
7988 |
|
|
153. http://gcc.gnu.org/PR6389
|
7989 |
|
|
154. http://gcc.gnu.org/PR6576
|
7990 |
|
|
155. http://gcc.gnu.org/PR6652
|
7991 |
|
|
156. http://gcc.gnu.org/PR7060
|
7992 |
|
|
157. http://gcc.gnu.org/PR7073
|
7993 |
|
|
158. http://gcc.gnu.org/PR7180
|
7994 |
|
|
159. http://gcc.gnu.org/PR7416
|
7995 |
|
|
160. http://gcc.gnu.org/PR7570
|
7996 |
|
|
161. http://gcc.gnu.org/PR7578
|
7997 |
|
|
162. http://gcc.gnu.org/PR7611
|
7998 |
|
|
163. http://gcc.gnu.org/PR7709
|
7999 |
|
|
164. http://gcc.gnu.org/PR7766
|
8000 |
|
|
165. http://gcc.gnu.org/PR7785
|
8001 |
|
|
166. http://gcc.gnu.org/PR7786
|
8002 |
|
|
167. http://gcc.gnu.org/PR8142
|
8003 |
|
|
168. http://gcc.gnu.org/PR8234
|
8004 |
|
|
169. http://gcc.gnu.org/PR8415
|
8005 |
|
|
170. http://gcc.gnu.org/PR8481
|
8006 |
|
|
171. http://gcc.gnu.org/PR8593
|
8007 |
|
|
172. http://gcc.gnu.org/PR8759
|
8008 |
|
|
173. http://gcc.gnu.org/PR8997
|
8009 |
|
|
174. http://gcc.gnu.org/PR9253
|
8010 |
|
|
175. http://gcc.gnu.org/PR9254
|
8011 |
|
|
176. http://gcc.gnu.org/PR9271
|
8012 |
|
|
177. http://gcc.gnu.org/PR6767
|
8013 |
|
|
178. http://gcc.gnu.org/PR9911
|
8014 |
|
|
179. http://gcc.gnu.org/PR10020
|
8015 |
|
|
180. http://gcc.gnu.org/PR10546
|
8016 |
|
|
181. http://gcc.gnu.org/PR7029
|
8017 |
|
|
182. http://gcc.gnu.org/PR2903
|
8018 |
|
|
183. http://gcc.gnu.org/PR7873
|
8019 |
|
|
184. http://gcc.gnu.org/PR7680
|
8020 |
|
|
185. http://gcc.gnu.org/PR8705
|
8021 |
|
|
186. http://gcc.gnu.org/PR9986
|
8022 |
|
|
187. http://gcc.gnu.org/PR10056
|
8023 |
|
|
188. http://gcc.gnu.org/PR6744
|
8024 |
|
|
189. http://gcc.gnu.org/PR7361
|
8025 |
|
|
190. http://gcc.gnu.org/PR9496
|
8026 |
|
|
191. http://gcc.gnu.org/PR7067
|
8027 |
|
|
192. http://gcc.gnu.org/PR8480
|
8028 |
|
|
193. http://gcc.gnu.org/PR8784
|
8029 |
|
|
194. http://gcc.gnu.org/PR10315
|
8030 |
|
|
195. http://gcc.gnu.org/PR10267
|
8031 |
|
|
196. http://gcc.gnu.org/PR7916
|
8032 |
|
|
197. http://gcc.gnu.org/PR7926
|
8033 |
|
|
198. http://gcc.gnu.org/PR8555
|
8034 |
|
|
199. http://gcc.gnu.org/PR8994
|
8035 |
|
|
200. http://gcc.gnu.org/PR9426
|
8036 |
|
|
201. http://gcc.gnu.org/PR9806
|
8037 |
|
|
202. http://gcc.gnu.org/PR10077
|
8038 |
|
|
203. http://gcc.gnu.org/PR10233
|
8039 |
|
|
204. http://gcc.gnu.org/PR10286
|
8040 |
|
|
205. http://gcc.gnu.org/PR10308
|
8041 |
|
|
206. http://gcc.gnu.org/PR11272
|
8042 |
|
|
207. http://gcc.gnu.org/PR5754
|
8043 |
|
|
208. http://gcc.gnu.org/PR6597
|
8044 |
|
|
209. http://gcc.gnu.org/PR6949
|
8045 |
|
|
210. http://gcc.gnu.org/PR7053
|
8046 |
|
|
211. http://gcc.gnu.org/PR8164
|
8047 |
|
|
212. http://gcc.gnu.org/PR8384
|
8048 |
|
|
213. http://gcc.gnu.org/PR9559
|
8049 |
|
|
214. http://gcc.gnu.org/PR9649
|
8050 |
|
|
215. http://gcc.gnu.org/PR9864
|
8051 |
|
|
216. http://gcc.gnu.org/PR10432
|
8052 |
|
|
217. http://gcc.gnu.org/PR10475
|
8053 |
|
|
218. http://gcc.gnu.org/PR10635
|
8054 |
|
|
219. http://gcc.gnu.org/PR10661
|
8055 |
|
|
220. http://gcc.gnu.org/PR10700
|
8056 |
|
|
221. http://gcc.gnu.org/PR10712
|
8057 |
|
|
222. http://gcc.gnu.org/PR10796
|
8058 |
|
|
223. http://gcc.gnu.org/PR10890
|
8059 |
|
|
224. http://gcc.gnu.org/PR10939
|
8060 |
|
|
225. http://gcc.gnu.org/PR10956
|
8061 |
|
|
226. http://gcc.gnu.org/PR11041
|
8062 |
|
|
227. http://gcc.gnu.org/PR11059
|
8063 |
|
|
228. http://gcc.gnu.org/PR11083
|
8064 |
|
|
229. http://gcc.gnu.org/PR11105
|
8065 |
|
|
230. http://gcc.gnu.org/PR11149
|
8066 |
|
|
231. http://gcc.gnu.org/PR11228
|
8067 |
|
|
232. http://gcc.gnu.org/PR11282
|
8068 |
|
|
233. http://gcc.gnu.org/PR11301
|
8069 |
|
|
234. http://gcc.gnu.org/PR11308
|
8070 |
|
|
235. http://gcc.gnu.org/PR11473
|
8071 |
|
|
236. http://gcc.gnu.org/PR11503
|
8072 |
|
|
237. http://gcc.gnu.org/PR11513
|
8073 |
|
|
238. http://gcc.gnu.org/PR11198
|
8074 |
|
|
239. http://gcc.gnu.org/PR11304
|
8075 |
|
|
240. http://gcc.gnu.org/PR11381
|
8076 |
|
|
241. http://gcc.gnu.org/PR11536
|
8077 |
|
|
242. http://gcc.gnu.org/PR11557
|
8078 |
|
|
243. http://gcc.gnu.org/PR5897
|
8079 |
|
|
244. http://gcc.gnu.org/PR11279
|
8080 |
|
|
245. http://gcc.gnu.org/PR11022
|
8081 |
|
|
246. http://gcc.gnu.org/PR2330
|
8082 |
|
|
247. http://gcc.gnu.org/PR5388
|
8083 |
|
|
248. http://gcc.gnu.org/PR5390
|
8084 |
|
|
249. http://gcc.gnu.org/PR7877
|
8085 |
|
|
250. http://gcc.gnu.org/PR9393
|
8086 |
|
|
251. http://gcc.gnu.org/PR10032
|
8087 |
|
|
252. http://gcc.gnu.org/PR10468
|
8088 |
|
|
253. http://gcc.gnu.org/PR10527
|
8089 |
|
|
254. http://gcc.gnu.org/PR10679
|
8090 |
|
|
255. http://gcc.gnu.org/PR10682
|
8091 |
|
|
256. http://gcc.gnu.org/PR10689
|
8092 |
|
|
257. http://gcc.gnu.org/PR10845
|
8093 |
|
|
258. http://gcc.gnu.org/PR10849
|
8094 |
|
|
259. http://gcc.gnu.org/PR10888
|
8095 |
|
|
260. http://gcc.gnu.org/PR10929
|
8096 |
|
|
261. http://gcc.gnu.org/PR10931
|
8097 |
|
|
262. http://gcc.gnu.org/PR10940
|
8098 |
|
|
263. http://gcc.gnu.org/PR10968
|
8099 |
|
|
264. http://gcc.gnu.org/PR10990
|
8100 |
|
|
265. http://gcc.gnu.org/PR11039
|
8101 |
|
|
266. http://gcc.gnu.org/PR11062
|
8102 |
|
|
267. http://gcc.gnu.org/PR11095
|
8103 |
|
|
268. http://gcc.gnu.org/PR11098
|
8104 |
|
|
269. http://gcc.gnu.org/PR11137
|
8105 |
|
|
270. http://gcc.gnu.org/PR11154
|
8106 |
|
|
271. http://gcc.gnu.org/PR11329
|
8107 |
|
|
272. http://gcc.gnu.org/PR11332
|
8108 |
|
|
273. http://gcc.gnu.org/PR11431
|
8109 |
|
|
274. http://gcc.gnu.org/PR11528
|
8110 |
|
|
275. http://gcc.gnu.org/PR11546
|
8111 |
|
|
276. http://gcc.gnu.org/PR11567
|
8112 |
|
|
277. http://gcc.gnu.org/PR11645
|
8113 |
|
|
278. http://gcc.gnu.org/PR5179
|
8114 |
|
|
279. http://gcc.gnu.org/PR8204
|
8115 |
|
|
280. http://gcc.gnu.org/PR10838
|
8116 |
|
|
281. http://gcc.gnu.org/PR10886
|
8117 |
|
|
282. http://gcc.gnu.org/PR11349
|
8118 |
|
|
283. http://gcc.gnu.org/PR4823
|
8119 |
|
|
284. http://gcc.gnu.org/PR8878
|
8120 |
|
|
285. http://gcc.gnu.org/PR9815
|
8121 |
|
|
286. http://gcc.gnu.org/PR10402
|
8122 |
|
|
287. http://gcc.gnu.org/PR10504
|
8123 |
|
|
288. http://gcc.gnu.org/PR10673
|
8124 |
|
|
289. http://gcc.gnu.org/PR11044
|
8125 |
|
|
290. http://gcc.gnu.org/PR11089
|
8126 |
|
|
291. http://gcc.gnu.org/PR11420
|
8127 |
|
|
292. http://gcc.gnu.org/PR9362
|
8128 |
|
|
293. http://gcc.gnu.org/PR10142
|
8129 |
|
|
294. http://gcc.gnu.org/PR10663
|
8130 |
|
|
295. http://gcc.gnu.org/PR10835
|
8131 |
|
|
296. http://gcc.gnu.org/PR10876
|
8132 |
|
|
297. http://gcc.gnu.org/PR10955
|
8133 |
|
|
298. http://gcc.gnu.org/PR11018
|
8134 |
|
|
299. http://gcc.gnu.org/PR11556
|
8135 |
|
|
300. http://gcc.gnu.org/PR10907
|
8136 |
|
|
301. http://gcc.gnu.org/PR11320
|
8137 |
|
|
302. http://gcc.gnu.org/PR11599
|
8138 |
|
|
303. http://gcc.gnu.org/PR9745
|
8139 |
|
|
304. http://gcc.gnu.org/PR10871
|
8140 |
|
|
305. http://gcc.gnu.org/PR11440
|
8141 |
|
|
306. http://gcc.gnu.org/PR7594
|
8142 |
|
|
307. http://gcc.gnu.org/PR10557
|
8143 |
|
|
308. http://gcc.gnu.org/PR11054
|
8144 |
|
|
309. http://gcc.gnu.org/PR10834
|
8145 |
|
|
310. http://gcc.gnu.org/PR10842
|
8146 |
|
|
311. http://gcc.gnu.org/PR11052
|
8147 |
|
|
312. http://gcc.gnu.org/PR11183
|
8148 |
|
|
313. http://gcc.gnu.org/PR11084
|
8149 |
|
|
314. http://gcc.gnu.org/PR10331
|
8150 |
|
|
315. http://gcc.gnu.org/PR10413
|
8151 |
|
|
316. http://gcc.gnu.org/PR11096
|
8152 |
|
|
317. http://gcc.gnu.org/PR2873
|
8153 |
|
|
318. http://gcc.gnu.org/PR3163
|
8154 |
|
|
319. http://gcc.gnu.org/PR5287
|
8155 |
|
|
320. http://gcc.gnu.org/PR10148
|
8156 |
|
|
321. http://gcc.gnu.org/PR8787
|
8157 |
|
|
322. http://gcc.gnu.org/PR10900
|
8158 |
|
|
323. http://gcc.gnu.org/PR1607
|
8159 |
|
|
324. http://gcc.gnu.org/PR4252
|
8160 |
|
|
325. http://gcc.gnu.org/PR4490
|
8161 |
|
|
326. http://gcc.gnu.org/PR10355
|
8162 |
|
|
327. http://gcc.gnu.org/PR10726
|
8163 |
|
|
328. http://gcc.gnu.org/PR10805
|
8164 |
|
|
329. http://gcc.gnu.org/PR10815
|
8165 |
|
|
330. http://gcc.gnu.org/PR10877
|
8166 |
|
|
331. http://gcc.gnu.org/PR11280
|
8167 |
|
|
332. http://gcc.gnu.org/PR11466
|
8168 |
|
|
333. http://gcc.gnu.org/PR10737
|
8169 |
|
|
334. http://gcc.gnu.org/PR10810
|
8170 |
|
|
335. http://gcc.gnu.org/bugzilla/
|
8171 |
|
|
336. http://gcc.gnu.org/PR8336
|
8172 |
|
|
337. http://gcc.gnu.org/PR9330
|
8173 |
|
|
338. http://gcc.gnu.org/PR9631
|
8174 |
|
|
339. http://gcc.gnu.org/PR9877
|
8175 |
|
|
340. http://gcc.gnu.org/PR11687
|
8176 |
|
|
341. http://gcc.gnu.org/PR12263
|
8177 |
|
|
342. http://gcc.gnu.org/PR12490
|
8178 |
|
|
343. http://gcc.gnu.org/PR7277
|
8179 |
|
|
344. http://gcc.gnu.org/PR7939
|
8180 |
|
|
345. http://gcc.gnu.org/PR11063
|
8181 |
|
|
346. http://gcc.gnu.org/PR11207
|
8182 |
|
|
347. http://gcc.gnu.org/PR11522
|
8183 |
|
|
348. http://gcc.gnu.org/PR11595
|
8184 |
|
|
349. http://gcc.gnu.org/PR11646
|
8185 |
|
|
350. http://gcc.gnu.org/PR11665
|
8186 |
|
|
351. http://gcc.gnu.org/PR11852
|
8187 |
|
|
352. http://gcc.gnu.org/PR11878
|
8188 |
|
|
353. http://gcc.gnu.org/PR11883
|
8189 |
|
|
354. http://gcc.gnu.org/PR11991
|
8190 |
|
|
355. http://gcc.gnu.org/PR12146
|
8191 |
|
|
356. http://gcc.gnu.org/PR12215
|
8192 |
|
|
357. http://gcc.gnu.org/PR12369
|
8193 |
|
|
358. http://gcc.gnu.org/PR12446
|
8194 |
|
|
359. http://gcc.gnu.org/PR12510
|
8195 |
|
|
360. http://gcc.gnu.org/PR12544
|
8196 |
|
|
361. http://gcc.gnu.org/PR9862
|
8197 |
|
|
362. http://gcc.gnu.org/PR10962
|
8198 |
|
|
363. http://gcc.gnu.org/PR11370
|
8199 |
|
|
364. http://gcc.gnu.org/PR11637
|
8200 |
|
|
365. http://gcc.gnu.org/PR11885
|
8201 |
|
|
366. http://gcc.gnu.org/PR12082
|
8202 |
|
|
367. http://gcc.gnu.org/PR12180
|
8203 |
|
|
368. http://gcc.gnu.org/PR12340
|
8204 |
|
|
369. http://gcc.gnu.org/PR3907
|
8205 |
|
|
370. http://gcc.gnu.org/PR5293
|
8206 |
|
|
371. http://gcc.gnu.org/PR5296
|
8207 |
|
|
372. http://gcc.gnu.org/PR7939
|
8208 |
|
|
373. http://gcc.gnu.org/PR8656
|
8209 |
|
|
374. http://gcc.gnu.org/PR10147
|
8210 |
|
|
375. http://gcc.gnu.org/PR11400
|
8211 |
|
|
376. http://gcc.gnu.org/PR11409
|
8212 |
|
|
377. http://gcc.gnu.org/PR11740
|
8213 |
|
|
378. http://gcc.gnu.org/PR11786
|
8214 |
|
|
379. http://gcc.gnu.org/PR11867
|
8215 |
|
|
380. http://gcc.gnu.org/PR11928
|
8216 |
|
|
381. http://gcc.gnu.org/PR12114
|
8217 |
|
|
382. http://gcc.gnu.org/PR12163
|
8218 |
|
|
383. http://gcc.gnu.org/PR12181
|
8219 |
|
|
384. http://gcc.gnu.org/PR12236
|
8220 |
|
|
385. http://gcc.gnu.org/PR12266
|
8221 |
|
|
386. http://gcc.gnu.org/PR12296
|
8222 |
|
|
387. http://gcc.gnu.org/PR12298
|
8223 |
|
|
388. http://gcc.gnu.org/PR12369
|
8224 |
|
|
389. http://gcc.gnu.org/PR12337
|
8225 |
|
|
390. http://gcc.gnu.org/PR12344
|
8226 |
|
|
391. http://gcc.gnu.org/PR12451
|
8227 |
|
|
392. http://gcc.gnu.org/PR12486
|
8228 |
|
|
393. http://gcc.gnu.org/PR8869
|
8229 |
|
|
394. http://gcc.gnu.org/PR9786
|
8230 |
|
|
395. http://gcc.gnu.org/PR11689
|
8231 |
|
|
396. http://gcc.gnu.org/PR12116
|
8232 |
|
|
397. http://gcc.gnu.org/PR12070
|
8233 |
|
|
398. http://gcc.gnu.org/PR11184
|
8234 |
|
|
399. http://gcc.gnu.org/PR11535
|
8235 |
|
|
400. http://gcc.gnu.org/PR11693
|
8236 |
|
|
401. http://gcc.gnu.org/PR12224
|
8237 |
|
|
402. http://gcc.gnu.org/PR11087
|
8238 |
|
|
403. http://gcc.gnu.org/PR11319
|
8239 |
|
|
404. http://gcc.gnu.org/PR11949
|
8240 |
|
|
405. http://gcc.gnu.org/PR11662
|
8241 |
|
|
406. http://gcc.gnu.org/PR11965
|
8242 |
|
|
407. http://gcc.gnu.org/PR12301
|
8243 |
|
|
408. http://gcc.gnu.org/PR11717
|
8244 |
|
|
409. http://gcc.gnu.org/PR11313
|
8245 |
|
|
410. http://gcc.gnu.org/PR11712
|
8246 |
|
|
411. http://gcc.gnu.org/PR12166
|
8247 |
|
|
412. http://gcc.gnu.org/PR12101
|
8248 |
|
|
413. http://gcc.gnu.org/PR10988
|
8249 |
|
|
414. http://gcc.gnu.org/PR11805
|
8250 |
|
|
415. http://gcc.gnu.org/PR11902
|
8251 |
|
|
416. http://gcc.gnu.org/PR11903
|
8252 |
|
|
417. http://gcc.gnu.org/bugzilla/
|
8253 |
|
|
418. http://gcc.gnu.org/PR11890
|
8254 |
|
|
419. http://gcc.gnu.org/PR12399
|
8255 |
|
|
420. http://gcc.gnu.org/PR13068
|
8256 |
|
|
421. http://gcc.gnu.org/PR10060
|
8257 |
|
|
422. http://gcc.gnu.org/PR10555
|
8258 |
|
|
423. http://gcc.gnu.org/PR10706
|
8259 |
|
|
424. http://gcc.gnu.org/PR11496
|
8260 |
|
|
425. http://gcc.gnu.org/PR11741
|
8261 |
|
|
426. http://gcc.gnu.org/PR12440
|
8262 |
|
|
427. http://gcc.gnu.org/PR12632
|
8263 |
|
|
428. http://gcc.gnu.org/PR12712
|
8264 |
|
|
429. http://gcc.gnu.org/PR12726
|
8265 |
|
|
430. http://gcc.gnu.org/PR12890
|
8266 |
|
|
431. http://gcc.gnu.org/PR12900
|
8267 |
|
|
432. http://gcc.gnu.org/PR13060
|
8268 |
|
|
433. http://gcc.gnu.org/PR13289
|
8269 |
|
|
434. http://gcc.gnu.org/PR13318
|
8270 |
|
|
435. http://gcc.gnu.org/PR13392
|
8271 |
|
|
436. http://gcc.gnu.org/PR13574
|
8272 |
|
|
437. http://gcc.gnu.org/PR13475
|
8273 |
|
|
438. http://gcc.gnu.org/PR13797
|
8274 |
|
|
439. http://gcc.gnu.org/PR13824
|
8275 |
|
|
440. http://gcc.gnu.org/PR8776
|
8276 |
|
|
441. http://gcc.gnu.org/PR10339
|
8277 |
|
|
442. http://gcc.gnu.org/PR11350
|
8278 |
|
|
443. http://gcc.gnu.org/PR12826
|
8279 |
|
|
444. http://gcc.gnu.org/PR12500
|
8280 |
|
|
445. http://gcc.gnu.org/PR12941
|
8281 |
|
|
446. http://gcc.gnu.org/PR12953
|
8282 |
|
|
447. http://gcc.gnu.org/PR13041
|
8283 |
|
|
448. http://gcc.gnu.org/PR13507
|
8284 |
|
|
449. http://gcc.gnu.org/PR13382
|
8285 |
|
|
450. http://gcc.gnu.org/PR13394
|
8286 |
|
|
451. http://gcc.gnu.org/PR13400
|
8287 |
|
|
452. http://gcc.gnu.org/PR13521
|
8288 |
|
|
453. http://gcc.gnu.org/PR2094
|
8289 |
|
|
454. http://gcc.gnu.org/PR2294
|
8290 |
|
|
455. http://gcc.gnu.org/PR5050
|
8291 |
|
|
456. http://gcc.gnu.org/PR9371
|
8292 |
|
|
457. http://gcc.gnu.org/PR9546
|
8293 |
|
|
458. http://gcc.gnu.org/PR10081
|
8294 |
|
|
459. http://gcc.gnu.org/PR10093
|
8295 |
|
|
460. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#61
|
8296 |
|
|
461. http://gcc.gnu.org/PR10095
|
8297 |
|
|
462. http://gcc.gnu.org/PR11554
|
8298 |
|
|
463. http://gcc.gnu.org/PR12297
|
8299 |
|
|
464. http://gcc.gnu.org/PR12352
|
8300 |
|
|
465. http://gcc.gnu.org/PR12438
|
8301 |
|
|
466. http://gcc.gnu.org/PR12540
|
8302 |
|
|
467. http://gcc.gnu.org/PR12594
|
8303 |
|
|
468. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#60
|
8304 |
|
|
469. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#63
|
8305 |
|
|
470. http://gcc.gnu.org/PR12657
|
8306 |
|
|
471. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#292
|
8307 |
|
|
472. http://gcc.gnu.org/PR12696
|
8308 |
|
|
473. http://gcc.gnu.org/PR12815
|
8309 |
|
|
474. http://gcc.gnu.org/PR12862
|
8310 |
|
|
475. http://gcc.gnu.org/PR12926
|
8311 |
|
|
476. http://gcc.gnu.org/PR12967
|
8312 |
|
|
477. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html
|
8313 |
|
|
478. http://gcc.gnu.org/PR12971
|
8314 |
|
|
479. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html#328
|
8315 |
|
|
480. http://gcc.gnu.org/PR13007
|
8316 |
|
|
481. http://gcc.gnu.org/PR13009
|
8317 |
|
|
482. http://gcc.gnu.org/PR13057
|
8318 |
|
|
483. http://gcc.gnu.org/PR13070
|
8319 |
|
|
484. http://gcc.gnu.org/PR13081
|
8320 |
|
|
485. http://gcc.gnu.org/PR13239
|
8321 |
|
|
486. http://gcc.gnu.org/PR13262
|
8322 |
|
|
487. http://gcc.gnu.org/PR13290
|
8323 |
|
|
488. http://gcc.gnu.org/PR13323
|
8324 |
|
|
489. http://gcc.gnu.org/PR13369
|
8325 |
|
|
490. http://gcc.gnu.org/PR13371
|
8326 |
|
|
491. http://gcc.gnu.org/PR13445
|
8327 |
|
|
492. http://gcc.gnu.org/PR13461
|
8328 |
|
|
493. http://gcc.gnu.org/PR13462
|
8329 |
|
|
494. http://gcc.gnu.org/PR13478
|
8330 |
|
|
495. http://gcc.gnu.org/PR13544
|
8331 |
|
|
496. http://gcc.gnu.org/PR13650
|
8332 |
|
|
497. http://gcc.gnu.org/PR13683
|
8333 |
|
|
498. http://gcc.gnu.org/PR13688
|
8334 |
|
|
499. http://gcc.gnu.org/PR13774
|
8335 |
|
|
500. http://gcc.gnu.org/PR13884
|
8336 |
|
|
501. http://gcc.gnu.org/PR10746
|
8337 |
|
|
502. http://gcc.gnu.org/PR11433
|
8338 |
|
|
503. http://gcc.gnu.org/PR12633
|
8339 |
|
|
504. http://gcc.gnu.org/PR13037
|
8340 |
|
|
505. http://gcc.gnu.org/PR13213
|
8341 |
|
|
506. http://gcc.gnu.org/PR4490
|
8342 |
|
|
507. http://gcc.gnu.org/PR12292
|
8343 |
|
|
508. http://gcc.gnu.org/PR12441
|
8344 |
|
|
509. http://gcc.gnu.org/PR12943
|
8345 |
|
|
510. http://gcc.gnu.org/PR13608
|
8346 |
|
|
511. http://gcc.gnu.org/PR11598
|
8347 |
|
|
512. http://gcc.gnu.org/PR11793
|
8348 |
|
|
513. http://gcc.gnu.org/PR12467
|
8349 |
|
|
514. http://gcc.gnu.org/PR12537
|
8350 |
|
|
515. http://gcc.gnu.org/PR12496
|
8351 |
|
|
516. http://gcc.gnu.org/PR12865
|
8352 |
|
|
517. http://gcc.gnu.org/PR13354
|
8353 |
|
|
518. http://gcc.gnu.org/PR10467
|
8354 |
|
|
519. http://gcc.gnu.org/PR11226
|
8355 |
|
|
520. http://gcc.gnu.org/PR11227
|
8356 |
|
|
521. http://gcc.gnu.org/PR12644
|
8357 |
|
|
522. http://gcc.gnu.org/PR13149
|
8358 |
|
|
523. http://gcc.gnu.org/PR12654
|
8359 |
|
|
524. http://gcc.gnu.org/PR12965
|
8360 |
|
|
525. http://gcc.gnu.org/PR13031
|
8361 |
|
|
526. http://gcc.gnu.org/PR11634
|
8362 |
|
|
527. http://gcc.gnu.org/PR12158
|
8363 |
|
|
528. http://gcc.gnu.org/PR11992
|
8364 |
|
|
529. http://gcc.gnu.org/PR9365
|
8365 |
|
|
530. http://gcc.gnu.org/PR10392
|
8366 |
|
|
531. http://gcc.gnu.org/PR11322
|
8367 |
|
|
532. http://gcc.gnu.org/PR13069
|
8368 |
|
|
533. http://gcc.gnu.org/PR13302
|
8369 |
|
|
534. http://gcc.gnu.org/PR13585
|
8370 |
|
|
535. http://gcc.gnu.org/PR8916
|
8371 |
|
|
536. http://gcc.gnu.org/PR11576
|
8372 |
|
|
537. http://gcc.gnu.org/PR13122
|
8373 |
|
|
538. http://gcc.gnu.org/PR13256
|
8374 |
|
|
539. http://gcc.gnu.org/PR13373
|
8375 |
|
|
540. http://gcc.gnu.org/PR12561
|
8376 |
|
|
541. http://gcc.gnu.org/PR6243
|
8377 |
|
|
542. http://gcc.gnu.org/PR11397
|
8378 |
|
|
543. http://gcc.gnu.org/PR12505
|
8379 |
|
|
544. http://gcc.gnu.org/PR13150
|
8380 |
|
|
545. http://gcc.gnu.org/PR12666
|
8381 |
|
|
546. http://gcc.gnu.org/PR12969
|
8382 |
|
|
547. http://gcc.gnu.org/PR10819
|
8383 |
|
|
548. http://gcc.gnu.org/PR11612
|
8384 |
|
|
549. http://gcc.gnu.org/PR13211
|
8385 |
|
|
550. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.3.4
|
8386 |
|
|
551. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.3.5
|
8387 |
|
|
552. http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=3.3.6
|
8388 |
|
|
553. mailto:gnu@gnu.org
|
8389 |
|
|
554. http://www.gnu.org/home.html#ContactInfo
|
8390 |
|
|
555. http://gcc.gnu.org/about.html
|
8391 |
|
|
556. http://gcc.gnu.org/onlinedocs/
|
8392 |
|
|
557. mailto:gcc-help@gcc.gnu.org
|
8393 |
|
|
558. mailto:gcc@gnu.org
|
8394 |
|
|
559. mailto:gcc@gcc.gnu.org
|
8395 |
|
|
560. http://gcc.gnu.org/lists.html
|
8396 |
|
|
561. http://validator.w3.org/check/referer
|
8397 |
|
|
======================================================================
|
8398 |
|
|
http://gcc.gnu.org/gcc-3.2/index.html
|
8399 |
|
|
|
8400 |
|
|
GCC 3.2 Release Series
|
8401 |
|
|
|
8402 |
|
|
April 25, 2003
|
8403 |
|
|
|
8404 |
|
|
The [1]GNU project and the GCC developers are pleased to announce the
|
8405 |
|
|
release of GCC 3.2.3.
|
8406 |
|
|
|
8407 |
|
|
The purpose of the GCC 3.2 release series is to provide a stable
|
8408 |
|
|
platform for OS distributors to use building their next releases. A
|
8409 |
|
|
primary objective was to stabilize the C++ ABI; we believe that the
|
8410 |
|
|
interface to the compiler and the C++ standard library are now
|
8411 |
|
|
relatively stable.
|
8412 |
|
|
|
8413 |
|
|
Be aware that C++ code compiled by GCC 3.2.x will (in general) not
|
8414 |
|
|
interoperate with code compiled by GCC 3.1.1 or earlier.
|
8415 |
|
|
|
8416 |
|
|
Please refer to our [2]detailed list of news, caveats, and bug-fixes
|
8417 |
|
|
for further information.
|
8418 |
|
|
|
8419 |
|
|
Release History
|
8420 |
|
|
|
8421 |
|
|
GCC 3.2.3
|
8422 |
|
|
April 25, 2003 ([3]changes)
|
8423 |
|
|
|
8424 |
|
|
GCC 3.2.2
|
8425 |
|
|
February 5, 2003 ([4]changes)
|
8426 |
|
|
|
8427 |
|
|
GCC 3.2.1
|
8428 |
|
|
November 19, 2002 ([5]changes)
|
8429 |
|
|
|
8430 |
|
|
GCC 3.2
|
8431 |
|
|
August 14, 2002 ([6]changes)
|
8432 |
|
|
|
8433 |
|
|
References and Acknowledgements
|
8434 |
|
|
|
8435 |
|
|
GCC used to stand for the GNU C Compiler, but since the compiler
|
8436 |
|
|
supports several other languages aside from C, it now stands for the
|
8437 |
|
|
GNU Compiler Collection.
|
8438 |
|
|
|
8439 |
|
|
A list of [7]successful builds is updated as new information becomes
|
8440 |
|
|
available.
|
8441 |
|
|
|
8442 |
|
|
The GCC developers would like to thank the numerous people that have
|
8443 |
|
|
contributed new features, improvements, bug fixes, and other changes as
|
8444 |
|
|
well as test results to GCC. This [8]amazing group of volunteers is
|
8445 |
|
|
what makes GCC successful.
|
8446 |
|
|
|
8447 |
|
|
For additional information about GCC please refer to the [9]GCC project
|
8448 |
|
|
web site or contact the [10]GCC development mailing list.
|
8449 |
|
|
|
8450 |
|
|
To obtain GCC please use [11]our mirror sites, or our CVS server.
|
8451 |
|
|
|
8452 |
|
|
Please send FSF & GNU inquiries & questions to [12]gnu@gnu.org. There
|
8453 |
|
|
are also [13]other ways to contact the FSF.
|
8454 |
|
|
|
8455 |
|
|
These pages are [14]maintained by the GCC team.
|
8456 |
|
|
|
8457 |
|
|
|
8458 |
|
|
For questions related to the use of GCC, please consult these web
|
8459 |
|
|
pages and the [15]GCC manuals. If that fails, the
|
8460 |
|
|
[16]gcc-help@gcc.gnu.org mailing list might help.
|
8461 |
|
|
Please send comments on these web pages and the development of GCC to
|
8462 |
|
|
our developer mailing list at [17]gcc@gnu.org or [18]gcc@gcc.gnu.org.
|
8463 |
|
|
All of our lists have [19]public archives.
|
8464 |
|
|
|
8465 |
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth
|
8466 |
|
|
Floor, Boston, MA 02110, USA.
|
8467 |
|
|
|
8468 |
|
|
Verbatim copying and distribution of this entire article is permitted
|
8469 |
|
|
in any medium, provided this notice is preserved.
|
8470 |
|
|
Last modified 2010-07-01 [20]Valid XHTML 1.0
|
8471 |
|
|
|
8472 |
|
|
References
|
8473 |
|
|
|
8474 |
|
|
1. http://www.gnu.org/
|
8475 |
|
|
2. http://gcc.gnu.org/gcc-3.2/changes.html
|
8476 |
|
|
3. http://gcc.gnu.org/gcc-3.2/changes.html#3.2.3
|
8477 |
|
|
4. http://gcc.gnu.org/gcc-3.2/changes.html#3.2.2
|
8478 |
|
|
5. http://gcc.gnu.org/gcc-3.2/changes.html#3.2.1
|
8479 |
|
|
6. http://gcc.gnu.org/gcc-3.2/changes.html#3.2
|
8480 |
|
|
7. http://gcc.gnu.org/gcc-3.2/buildstat.html
|
8481 |
|
|
8. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
|
8482 |
|
|
9. http://gcc.gnu.org/index.html
|
8483 |
|
|
10. mailto:gcc@gcc.gnu.org
|
8484 |
|
|
11. http://gcc.gnu.org/mirrors.html
|
8485 |
|
|
12. mailto:gnu@gnu.org
|
8486 |
|
|
13. http://www.gnu.org/home.html#ContactInfo
|
8487 |
|
|
14. http://gcc.gnu.org/about.html
|
8488 |
|
|
15. http://gcc.gnu.org/onlinedocs/
|
8489 |
|
|
16. mailto:gcc-help@gcc.gnu.org
|
8490 |
|
|
17. mailto:gcc@gnu.org
|
8491 |
|
|
18. mailto:gcc@gcc.gnu.org
|
8492 |
|
|
19. http://gcc.gnu.org/lists.html
|
8493 |
|
|
20. http://validator.w3.org/check/referer
|
8494 |
|
|
======================================================================
|
8495 |
|
|
http://gcc.gnu.org/gcc-3.2/changes.html
|
8496 |
|
|
|
8497 |
|
|
GCC 3.2 Release Series
|
8498 |
|
|
Changes, New Features, and Fixes
|
8499 |
|
|
|
8500 |
|
|
The latest release in the 3.2 release series is [1]GCC 3.2.3.
|
8501 |
|
|
|
8502 |
|
|
Caveats and New Features
|
8503 |
|
|
|
8504 |
|
|
Caveats
|
8505 |
|
|
|
8506 |
|
|
* The C++ compiler does not correctly zero-initialize
|
8507 |
|
|
pointers-to-data members. You must explicitly initialize them. For
|
8508 |
|
|
example: int S::*m(0); will work, but depending on
|
8509 |
|
|
default-initialization to zero will not work. This bug cannot be
|
8510 |
|
|
fixed in GCC 3.2 without inducing unacceptable risks. It will be
|
8511 |
|
|
fixed in GCC 3.3.
|
8512 |
|
|
* This GCC release is based on the GCC 3.1 sourcebase, and thus has
|
8513 |
|
|
all the [2]changes in the GCC 3.1 series. In addition, GCC 3.2 has
|
8514 |
|
|
a number of C++ ABI fixes which make its C++ compiler generate
|
8515 |
|
|
binary code which is incompatible with the C++ compilers found in
|
8516 |
|
|
earlier GCC releases, including GCC 3.1 and GCC 3.1.1.
|
8517 |
|
|
|
8518 |
|
|
Frontend Enhancements
|
8519 |
|
|
|
8520 |
|
|
C/C++/Objective-C
|
8521 |
|
|
|
8522 |
|
|
* The method of constructing the list of directories to be searched
|
8523 |
|
|
for header files has been revised. If a directory named by a -I
|
8524 |
|
|
option is a standard system include directory, the option is
|
8525 |
|
|
ignored to ensure that the default search order for system
|
8526 |
|
|
directories and the special treatment of system header files are
|
8527 |
|
|
not defeated.
|
8528 |
|
|
* The C and Objective-C compilers no longer accept the "Naming Types"
|
8529 |
|
|
extension (typedef foo = bar); it was already unavailable in C++.
|
8530 |
|
|
Code which uses it will need to be changed to use the "typeof"
|
8531 |
|
|
extension instead: typedef typeof(bar) foo. (We have removed this
|
8532 |
|
|
extension without a period of deprecation because it has caused the
|
8533 |
|
|
compiler to crash since version 3.0 and no one noticed until very
|
8534 |
|
|
recently. Thus we conclude it is not in widespread use.)
|
8535 |
|
|
|
8536 |
|
|
C++
|
8537 |
|
|
|
8538 |
|
|
* GCC 3.2 fixed serveral differences between the C++ ABI implemented
|
8539 |
|
|
in GCC and the multi-vendor standard, but more have been found
|
8540 |
|
|
since the release. 3.2.1 adds a new warning, -Wabi, to warn about
|
8541 |
|
|
code which is affected by these bugs. We will fix these bugs in
|
8542 |
|
|
some future release, once we are confident that all have been
|
8543 |
|
|
found; until then, it is our intention to make changes to the ABI
|
8544 |
|
|
only if they are necessary for correct compilation of C++, as
|
8545 |
|
|
opposed to conformance to the ABI documents.
|
8546 |
|
|
* For details on how to build an ABI compliant compiler for GNU/Linux
|
8547 |
|
|
systems, check the [3]common C++ ABI page.
|
8548 |
|
|
|
8549 |
|
|
New Targets and Target Specific Improvements
|
8550 |
|
|
|
8551 |
|
|
IA-32
|
8552 |
|
|
|
8553 |
|
|
* Fixed a number of bugs in SSE and MMX intrinsics.
|
8554 |
|
|
* Fixed common compiler crashes with SSE instruction set enabled
|
8555 |
|
|
(implied by -march=pentium3, pentium4, athlon-xp)
|
8556 |
|
|
* __m128 and __m128i is not 128bit aligned when used in structures.
|
8557 |
|
|
|
8558 |
|
|
x86-64
|
8559 |
|
|
|
8560 |
|
|
* A bug whereby the compiler could generate bad code for bzero has
|
8561 |
|
|
been fixed.
|
8562 |
|
|
* ABI fixes (implying ABI incompatibilities with previous version in
|
8563 |
|
|
some corner cases)
|
8564 |
|
|
* Fixed prefetch code generation
|
8565 |
|
|
__________________________________________________________________
|
8566 |
|
|
|
8567 |
|
|
GCC 3.2.3
|
8568 |
|
|
|
8569 |
|
|
3.2.3 is a bug fix release only; there are no new features that were
|
8570 |
|
|
not present in GCC 3.2.2.
|
8571 |
|
|
|
8572 |
|
|
Bug Fixes
|
8573 |
|
|
|
8574 |
|
|
This section lists the problem reports (PRs) from GCC's bug tracking
|
8575 |
|
|
system that are known to be fixed in the 3.2.3 release. This list might
|
8576 |
|
|
not be complete (that is, it is possible that some PRs that have been
|
8577 |
|
|
fixed are not listed here), and some of the titles have been changed to
|
8578 |
|
|
make them more clear.
|
8579 |
|
|
|
8580 |
|
|
Internal Compiler Errors (multi-platform)
|
8581 |
|
|
|
8582 |
|
|
* [4]3782: (c++) -quiet -fstats produces a segmentation fault in
|
8583 |
|
|
cc1plus
|
8584 |
|
|
* [5]6440: (c++) template specializations cause ICE
|
8585 |
|
|
* [6]7050: (c++) ICE on: (i ? get_string() : throw)
|
8586 |
|
|
* [7]7741: ICE on conflicting types (make_decl_rtl in varasm.c)
|
8587 |
|
|
* [8]7982: (c++) ICE due to infinite recursion (using STL set)
|
8588 |
|
|
* [9]8068: exceedingly high (infinite) memory usage
|
8589 |
|
|
* [10]8178: ICE with __builtin_ffs
|
8590 |
|
|
* [11]8396: ICE in copy_to_mode_reg, in explow.c
|
8591 |
|
|
* [12]8674: (c++) ICE in cp_expr_size, in cp/cp-lang.c
|
8592 |
|
|
* [13]9768: ICE when optimizing inline code at -O2
|
8593 |
|
|
* [14]9798: (c++) Infinite recursion (segfault) in
|
8594 |
|
|
cp/decl.c:push_using_directive with recursive using directives
|
8595 |
|
|
* [15]9799: mismatching structure initializer with nested flexible
|
8596 |
|
|
array member: ICE
|
8597 |
|
|
* [16]9928: ICE on duplicate enum declaration
|
8598 |
|
|
* [17]10114: ICE in mem_loc_descriptor, in dwarf2out.c (affects
|
8599 |
|
|
sparc, alpha)
|
8600 |
|
|
* [18]10352: ICE in find_reloads_toplev
|
8601 |
|
|
* [19]10336: ICE with -Wunreachable-code
|
8602 |
|
|
|
8603 |
|
|
C/optimizer bugs:
|
8604 |
|
|
|
8605 |
|
|
* [20]8224: Incorrect joining of signed and unsigned division
|
8606 |
|
|
* [21]8613: -O2 produces wrong code with builtin strlen and
|
8607 |
|
|
postincrements
|
8608 |
|
|
* [22]8828: gcc reports some code is unreachable when it is not
|
8609 |
|
|
* [23]9226: GCSE breaking argument passing
|
8610 |
|
|
* [24]9853: miscompilation of non-constant structure initializer
|
8611 |
|
|
* [25]9797: C99-style struct initializers are miscompiled
|
8612 |
|
|
* [26]9967: Some standard C function calls should not be replaced
|
8613 |
|
|
when optimizing for size
|
8614 |
|
|
* [27]10116: ce2: invalid merge of join_bb in the context of switch
|
8615 |
|
|
statements
|
8616 |
|
|
* [28]10171: wrong code for inlined function
|
8617 |
|
|
* [29]10175: -Wunreachable-code doesn't work for single lines
|
8618 |
|
|
|
8619 |
|
|
C++ compiler and library:
|
8620 |
|
|
|
8621 |
|
|
* [30]8316: Confusing diagnostic for code that misuses conversion
|
8622 |
|
|
operators
|
8623 |
|
|
* [31]9169: filebuf output fails if codecvt<>::out returns noconv
|
8624 |
|
|
* [32]9420: incomplete type incorrectly reported
|
8625 |
|
|
* [33]9459: typeof in return type specification of template not
|
8626 |
|
|
supported
|
8627 |
|
|
* [34]9507: filebuf::open handles ios_base::ate incorrectly
|
8628 |
|
|
* [35]9538: Out-of-bounds memory access in streambuf::sputbackc
|
8629 |
|
|
* [36]9602: Total confusion about template/friend/virtual/abstract
|
8630 |
|
|
* [37]9993: destructor not called for local object created within and
|
8631 |
|
|
returned from infinite loop
|
8632 |
|
|
* [38]10167: ieee_1003.1-2001 locale specialisations on a glibc-2.3.2
|
8633 |
|
|
system
|
8634 |
|
|
|
8635 |
|
|
Java compiler and library:
|
8636 |
|
|
|
8637 |
|
|
* [39]9652: libgcj build fails on irix6.5.1[78]
|
8638 |
|
|
* [40]10144: gas on solaris complains about bad .stabs lines for
|
8639 |
|
|
java, native as unaffected
|
8640 |
|
|
|
8641 |
|
|
x86-specific (Intel/AMD):
|
8642 |
|
|
|
8643 |
|
|
* [41]8746: gcc miscompiles Linux kernel ppa driver on x86
|
8644 |
|
|
* [42]9888: -mcpu=k6 -Os produces out of range loop instructions
|
8645 |
|
|
* [43]9638: Cross-build for target i386-elf and i586-pc-linux-gnu
|
8646 |
|
|
failed
|
8647 |
|
|
* [44]9954: Cross-build for target i586-pc-linux-gnu (--with-newlib)
|
8648 |
|
|
failed
|
8649 |
|
|
|
8650 |
|
|
SPARC-specific:
|
8651 |
|
|
|
8652 |
|
|
* [45]7784: [Sparc] ICE in extract_insn, in recog.c
|
8653 |
|
|
* [46]7796: sparc extra failure with -m64 on execute/930921-1.c in
|
8654 |
|
|
unroll.c
|
8655 |
|
|
* [47]8281: ICE when compiling with -O2 -fPIC for Ultrasparc
|
8656 |
|
|
* [48]8366: [Sparc] C testsuite failure with -m64 -fpic -O in
|
8657 |
|
|
execute/loop-2d.c
|
8658 |
|
|
* [49]8726: gcc -O2 miscompiles Samba 2.2.7 on 32-bit sparc
|
8659 |
|
|
* [50]9414: Scheduling bug on Ultrasparc
|
8660 |
|
|
* [51]10067: GCC-3.2.2 outputs invalid asm on sparc64
|
8661 |
|
|
|
8662 |
|
|
m68k-specific:
|
8663 |
|
|
|
8664 |
|
|
* [52]7248: broken "inclusive or" code
|
8665 |
|
|
* [53]8343: m68k-elf/rtems ICE at instantiate_virtual_regs_1
|
8666 |
|
|
|
8667 |
|
|
PowerPC-specific:
|
8668 |
|
|
|
8669 |
|
|
* [54]9732: Wrong code with -O2 -fPIC
|
8670 |
|
|
* [55]10073: ICE: powerpc cannot split insn
|
8671 |
|
|
|
8672 |
|
|
Alpha-specific:
|
8673 |
|
|
|
8674 |
|
|
* [56]7702: optimization problem on a DEC alpha under OSF1
|
8675 |
|
|
* [57]9671: gcc.3.2.2 does not build on a HP Tru64 Unix v5.1B system
|
8676 |
|
|
|
8677 |
|
|
HP-specific:
|
8678 |
|
|
|
8679 |
|
|
* [58]8694: breaks on HP-UX 10.20 (DUP: 9275)
|
8680 |
|
|
* [59]9953: (ada) gcc 3.2.x can't build 3.3-branch ada on HP-UX 10
|
8681 |
|
|
(missing symbol)
|
8682 |
|
|
* [60]10271: Floating point args don't get reloaded across function
|
8683 |
|
|
calls with -O2
|
8684 |
|
|
|
8685 |
|
|
MIPS specific:
|
8686 |
|
|
|
8687 |
|
|
* [61]6362: mips-irix6 gcc-3.1 C testsuite failure with -mips4 in
|
8688 |
|
|
compile/920501-4.c
|
8689 |
|
|
|
8690 |
|
|
CRIS specific:
|
8691 |
|
|
|
8692 |
|
|
* [62]10377: gcc-3.2.2 creates bad assembler code for cris
|
8693 |
|
|
|
8694 |
|
|
Miscellaneous and minor bugs:
|
8695 |
|
|
|
8696 |
|
|
* [63]6955: collect2 says "core dumped" when there is no core
|
8697 |
|
|
__________________________________________________________________
|
8698 |
|
|
|
8699 |
|
|
GCC 3.2.2
|
8700 |
|
|
|
8701 |
|
|
Beginning with 3.2.2, GCC's Makefile suite supports redirection of make
|
8702 |
|
|
install by means of the DESTDIR variable. Parts of the GCC tree have
|
8703 |
|
|
featured that support long before, but now it is available even from
|
8704 |
|
|
the top level.
|
8705 |
|
|
|
8706 |
|
|
Other than that, GCC 3.2.2 is a bug fix release only; there are no new
|
8707 |
|
|
features that were not present in GCC 3.2.1.
|
8708 |
|
|
|
8709 |
|
|
Bug Fixes
|
8710 |
|
|
|
8711 |
|
|
On the following i386-based systems GCC 3.2.1 broke the C ABI wrt.
|
8712 |
|
|
functions returning structures: Cygwin, FreeBSD (GCC 3.2.1 as shipped
|
8713 |
|
|
with FreeBSD 5.0 does not have this problem), Interix, a.out-based
|
8714 |
|
|
Linux and NetBSD, OpenBSD, and Darwin. GCC 3.2.2 reverts this ABI
|
8715 |
|
|
change, and thus restores ABI-compatibility with previous releases
|
8716 |
|
|
(except GCC 3.2.1) on these platforms.
|
8717 |
|
|
|
8718 |
|
|
This section lists the problem reports (PRs) from GCC's bug tracking
|
8719 |
|
|
system that are known to be fixed in the 3.2.2 release. This list might
|
8720 |
|
|
not be complete (that is, it is possible that some PRs that have been
|
8721 |
|
|
fixed are not listed here) and some of the titles have been changed to
|
8722 |
|
|
make them more clear.
|
8723 |
|
|
|
8724 |
|
|
Internal Compiler Errors (multi-platform)
|
8725 |
|
|
|
8726 |
|
|
* [64]5919: (c++) ICE when passing variable array to template
|
8727 |
|
|
function
|
8728 |
|
|
* [65]7129: (c++) ICE with min/max assignment operators (= and >?=)
|
8729 |
|
|
* [66]7507: ICE with -O2 when address of called function is a
|
8730 |
|
|
complicated expression
|
8731 |
|
|
* [67]7622: ICE with nested inline functions if function's address is
|
8732 |
|
|
taken
|
8733 |
|
|
* [68]7681: (fortran) ICE in compensate_edge, in reg-stack.c (also PR
|
8734 |
|
|
[69]9258)
|
8735 |
|
|
* [70]8031: (c++) ICE in code comparing typeids and casting from
|
8736 |
|
|
virtual base
|
8737 |
|
|
* [71]8275: ICE in simplify_subreg
|
8738 |
|
|
* [72]8332: (c++) builtin strlen/template interaction causes ICE
|
8739 |
|
|
* [73]8372: (c++) ICE on explicit call of destructor
|
8740 |
|
|
* [74]8439: (c, not c++) empty struct causes ICE
|
8741 |
|
|
* [75]8442: (c++) ICE with nested template classes
|
8742 |
|
|
* [76]8518: ICE when compiling mplayer ("extern inline" issue)
|
8743 |
|
|
* [77]8615: (c++) ICE with out-of-range character constant template
|
8744 |
|
|
argument
|
8745 |
|
|
* [78]8663: (c++) ICE in cp_expr_size, at cp-lang.c:307
|
8746 |
|
|
* [79]8799: (c++) ICE: error reporting routines re-entered
|
8747 |
|
|
* [80]9328: (c++) ICE with typeof(X) for overloaded X
|
8748 |
|
|
* [81]9465: (preprocessor) cpp -traditional ICE on null bytes
|
8749 |
|
|
|
8750 |
|
|
C++ (compiler and library) bugs
|
8751 |
|
|
|
8752 |
|
|
* [82]47: scoping in nested classes is broken
|
8753 |
|
|
* [83]6745: problems with iostream rdbuf() member function
|
8754 |
|
|
* [84]8214: conversion from const char* const to char* sometimes
|
8755 |
|
|
accepted illegally
|
8756 |
|
|
* [85]8493: builtin strlen and overload resolution (same bug as
|
8757 |
|
|
[86]8332)
|
8758 |
|
|
* [87]8503: strange behaviour of function types
|
8759 |
|
|
* [88]8727: compiler confused by inheritance from an anonymous struct
|
8760 |
|
|
* [89]7445: poor performance of std::locale::classic() in
|
8761 |
|
|
multi-threaded applications
|
8762 |
|
|
* [90]8230: mishandling of overflow in vector::resize
|
8763 |
|
|
* [91]8399: sync_with_stdio(false) breaks unformatted input
|
8764 |
|
|
* [92]8662: illegal access of private member of unnamed class is
|
8765 |
|
|
accepted
|
8766 |
|
|
* [93]8707: "make distclean" fails in libstdc++-v3 directory
|
8767 |
|
|
* [94]8708: __USE_MALLOC doesn't work
|
8768 |
|
|
* [95]8790: Use of non-thread-safe strtok in src/localename.cc
|
8769 |
|
|
* [96]8887: Bug in date formats with --enable-clocale=generic
|
8770 |
|
|
* [97]9076: Call Frame Instructions are not handled correctly during
|
8771 |
|
|
unwind operation
|
8772 |
|
|
* [98]9151: std::setprecision limited to 16 digits when outputting a
|
8773 |
|
|
double to a stream
|
8774 |
|
|
* [99]9168: codecvt overwrites output buffers
|
8775 |
|
|
* [100]9269: libstdc++ headers: explicit specialization of function
|
8776 |
|
|
must precede its first use
|
8777 |
|
|
* [101]9322: return value of basic_streambuf<>::getloc affected by
|
8778 |
|
|
locale::global
|
8779 |
|
|
* [102]9433: segfault in runtime support for dynamic_cast
|
8780 |
|
|
|
8781 |
|
|
C and optimizer bugs
|
8782 |
|
|
|
8783 |
|
|
* [103]8032: GCC incorrectly initializes static structs that have
|
8784 |
|
|
flexible arrays
|
8785 |
|
|
* [104]8639: simple arithmetic expression broken
|
8786 |
|
|
* [105]8794: optimization improperly eliminates certain expressions
|
8787 |
|
|
* [106]8832: traditional "asm volatile" code is illegally optimized
|
8788 |
|
|
* [107]8988: loop optimizer bug: with -O2, code is generated that
|
8789 |
|
|
segfaults (found on i386, bug present for all platforms)
|
8790 |
|
|
* [108]9492: structure copy clobbers subsequent stores to structure
|
8791 |
|
|
|
8792 |
|
|
Objective-C bugs
|
8793 |
|
|
|
8794 |
|
|
* [109]9267: Objective-C parser won't build with newer bison versions
|
8795 |
|
|
(e.g. 1.875)
|
8796 |
|
|
|
8797 |
|
|
Ada bugs
|
8798 |
|
|
|
8799 |
|
|
* [110]8344: Ada build problem due to conflict between gcc/final.o,
|
8800 |
|
|
gcc/ada/final.o
|
8801 |
|
|
|
8802 |
|
|
Preprocessor bugs
|
8803 |
|
|
|
8804 |
|
|
* [111]8524: _Pragma within macros is improperly expanded
|
8805 |
|
|
* [112]8880: __WCHAR_TYPE__ macro incorrectly set to "long int" with
|
8806 |
|
|
-fshort-wchar
|
8807 |
|
|
|
8808 |
|
|
ARM-specific
|
8809 |
|
|
|
8810 |
|
|
* [113]9090: arm ICE with >= -O2; regression from gcc-2.95
|
8811 |
|
|
|
8812 |
|
|
x86-specific (Intel/AMD)
|
8813 |
|
|
|
8814 |
|
|
* [114]8588: ICE in extract_insn, at recog.c:NNNN (shift instruction)
|
8815 |
|
|
* [115]8599: loop unroll bug with -march=k6-3
|
8816 |
|
|
* [116]9506: ABI breakage in structure return (affects BSD and
|
8817 |
|
|
Cygwin, but not GNU/Linux)
|
8818 |
|
|
|
8819 |
|
|
FreeBSD 5.0 specific
|
8820 |
|
|
|
8821 |
|
|
* [117]9484: GCC 3.2.1 Bootstrap failure on FreeBSD 5.0
|
8822 |
|
|
|
8823 |
|
|
RTEMS-specific
|
8824 |
|
|
|
8825 |
|
|
* [118]9292: hppa1.1-rtems configurery problems
|
8826 |
|
|
* [119]9293: [m68k-elf/rtems] config/m68k/t-crtstuff bug
|
8827 |
|
|
* [120]9295: [mips-rtems] config/mips/rtems.h init/fini issue
|
8828 |
|
|
* [121]9296: gthr-rtems regression
|
8829 |
|
|
* [122]9316: powerpc-rtems: extending multilibs
|
8830 |
|
|
|
8831 |
|
|
HP-PA specific
|
8832 |
|
|
|
8833 |
|
|
* [123]9493: ICE with -O2 when building a simple function
|
8834 |
|
|
|
8835 |
|
|
Documentation
|
8836 |
|
|
|
8837 |
|
|
* [124]7341: hyperlink to gcov in GCC documentation doesn't work
|
8838 |
|
|
* [125]8947: Please add a warning about "-malign-double" in docs
|
8839 |
|
|
* [126]7448, [127]8882: typo cleanups
|
8840 |
|
|
__________________________________________________________________
|
8841 |
|
|
|
8842 |
|
|
GCC 3.2.1
|
8843 |
|
|
|
8844 |
|
|
3.2.1 adds a new warning, -Wabi. This option warns when GNU C++
|
8845 |
|
|
generates code that is known not to be binary-compatible with the
|
8846 |
|
|
vendor-neutral ia32/ia64 ABI. Please consult the GCC manual, included
|
8847 |
|
|
in the distribution, for details.
|
8848 |
|
|
|
8849 |
|
|
This release also removes an old GCC extension, "naming types", and the
|
8850 |
|
|
documentation now directs users to use a different GCC extension,
|
8851 |
|
|
__typeof__, instead. The feature had evidently been broken for a while.
|
8852 |
|
|
|
8853 |
|
|
Otherwise, 3.2.1 is a bug fix release only; other than bug fixes and
|
8854 |
|
|
the new warning there are no new features that were not present in GCC
|
8855 |
|
|
3.2.
|
8856 |
|
|
|
8857 |
|
|
In addition, the previous fix for [128]PR 7445 (poor performance of
|
8858 |
|
|
std::locale::classic() in multi-threaded applications) was reverted
|
8859 |
|
|
("unfixed"), because the "fix" was not thread-safe.
|
8860 |
|
|
|
8861 |
|
|
Bug Fixes
|
8862 |
|
|
|
8863 |
|
|
This section lists the problem reports (PRs) from GCC's bug tracking
|
8864 |
|
|
system that are known to be fixed in the 3.2.1 release. This list might
|
8865 |
|
|
not be complete (that is, it is possible that some PRs that have been
|
8866 |
|
|
fixed are not listed here). As you can see, the number of bug fixes is
|
8867 |
|
|
quite large, so it is strongly recommended that users of earlier GCC
|
8868 |
|
|
3.x releases upgrade to GCC 3.2.1.
|
8869 |
|
|
|
8870 |
|
|
Internal Compiler Errors (multi-platform)
|
8871 |
|
|
|
8872 |
|
|
* [129]2521: (c++) ICE in build_ptrmemfunc, in cp/typeck.c
|
8873 |
|
|
* [130]5661: (c++) ICE instantiating template on array of unknown
|
8874 |
|
|
size (bad code)
|
8875 |
|
|
* [131]6419: (c++) ICE in make_decl_rtl for "longest" attribute on
|
8876 |
|
|
64-bit platforms
|
8877 |
|
|
* [132]6994: (c++) ICE in find_function_data
|
8878 |
|
|
* [133]7150: preprocessor: GCC -dM -E gives an ICE
|
8879 |
|
|
* [134]7160: ICE when optimizing branches without a return value
|
8880 |
|
|
* [135]7228: (c++) ICE when using member template and template
|
8881 |
|
|
function
|
8882 |
|
|
* [136]7266: (c++) ICE with -pedantic on missing typename
|
8883 |
|
|
* [137]7353: ICE from use of "Naming Types" extension, see above
|
8884 |
|
|
* [138]7411: ICE in instantiate_virtual_regs_1, in function.c
|
8885 |
|
|
* [139]7478: (c++) ICE on static_cast inside template
|
8886 |
|
|
* [140]7526: preprocessor core dump when _Pragma implies #pragma
|
8887 |
|
|
dependency
|
8888 |
|
|
* [141]7721: (c++) ICE on simple (but incorrect) template ([142]7803
|
8889 |
|
|
is a duplicate)
|
8890 |
|
|
* [143]7754: (c++) ICE on union with template parameter
|
8891 |
|
|
* [144]7788: (c++) redeclaring a definition as an incomplete class
|
8892 |
|
|
causes ICE
|
8893 |
|
|
* [145]8031: (c++) ICE in comptypes, in cp/typeck.c
|
8894 |
|
|
* [146]8055: preprocessor dies with SIG11 when building FreeBSD
|
8895 |
|
|
kernel
|
8896 |
|
|
* [147]8067: (c++) ICE due to mishandling of __FUNCTION__ and related
|
8897 |
|
|
variables
|
8898 |
|
|
* [148]8134: (c++) ICE in force_store_init_value on legal code
|
8899 |
|
|
* [149]8149: (c++) ICE on incomplete type
|
8900 |
|
|
* [150]8160: (c++) ICE in build_modify_expr, in cp/typeck.c: array
|
8901 |
|
|
initialization
|
8902 |
|
|
|
8903 |
|
|
C++ (compiler and library) bugs
|
8904 |
|
|
|
8905 |
|
|
* [151]5607: No pointer adjustment in covariant return types
|
8906 |
|
|
* [152]6579: Infinite loop with statement expressions in member
|
8907 |
|
|
initialization
|
8908 |
|
|
* [153]6803: Default copy constructor bug in GCC 3.1
|
8909 |
|
|
* [154]7176: g++ confused by friend and static member with same name
|
8910 |
|
|
* [155]7188: Segfault with template class and recursive (incorrect)
|
8911 |
|
|
initializer list
|
8912 |
|
|
* [156]7306: Regression: GCC 3.x fails to compile code with virtual
|
8913 |
|
|
inheritance if a method has a variable number of arguments
|
8914 |
|
|
* [157]7461: ctype::classic_table() returns offset array on
|
8915 |
|
|
Cygwin
|
8916 |
|
|
* [158]7524: f(const float arg[3]) fails
|
8917 |
|
|
* [159]7584: Erroneous ambiguous base error on using declaration
|
8918 |
|
|
* [160]7676: Member template overloading problem
|
8919 |
|
|
* [161]7679: infinite loop when a right parenthesis is missing
|
8920 |
|
|
* [162]7811: default locale not taken from environment
|
8921 |
|
|
* [163]7961: compare( char *) implemented incorrectly in
|
8922 |
|
|
basic_string<>
|
8923 |
|
|
* [164]8071: basic_ostream::operator<<(streambuf*) loops forever if
|
8924 |
|
|
streambuf::underflow() leaves gptr() NULL (dups: [165]8127,
|
8925 |
|
|
[166]6745)
|
8926 |
|
|
* [167]8096: deque::at() throws std::range_error instead of
|
8927 |
|
|
std::out_of_range
|
8928 |
|
|
* [168]8127: cout << cin.rdbuf() infinite loop
|
8929 |
|
|
* [169]8218: Excessively large memory consumed for classes with large
|
8930 |
|
|
array members
|
8931 |
|
|
* [170]8287: GCC 3.2: Destructor called for non-constructed local
|
8932 |
|
|
object
|
8933 |
|
|
* [171]8347: empty vector range used in string construction causes
|
8934 |
|
|
core dump
|
8935 |
|
|
* [172]8348: fail() flag is set in istringstream when eof() flag is
|
8936 |
|
|
set
|
8937 |
|
|
* [173]8391: regression: infinite loop in cp/decl2.c(finish_file)
|
8938 |
|
|
|
8939 |
|
|
C and optimizer bugs
|
8940 |
|
|
|
8941 |
|
|
* [174]6627: -fno-align-functions doesn't seem to disable function
|
8942 |
|
|
alignment
|
8943 |
|
|
* [175]6631: life_analysis misoptimizes code to initialize fields of
|
8944 |
|
|
a structure
|
8945 |
|
|
* [176]7102: unsigned char division results in floating exception
|
8946 |
|
|
* [177]7120: Run once loop should *always* be unrolled
|
8947 |
|
|
(pessimization)
|
8948 |
|
|
* [178]7209: Bug involving array referencing and ?: operator
|
8949 |
|
|
* [179]7515: invalid inlining of global function with -O3
|
8950 |
|
|
* [180]7814: incorrect scheduling for glibc-2.2.92 strcpy test
|
8951 |
|
|
* [181]8467: bug in sibling call optimization
|
8952 |
|
|
|
8953 |
|
|
Preprocessor bugs
|
8954 |
|
|
|
8955 |
|
|
* [182]4890: incorrect line markers from the traditional preprocessor
|
8956 |
|
|
* [183]7357: -M option omits system headers files (making it the same
|
8957 |
|
|
as -MM)
|
8958 |
|
|
* [184]7358: Changes to Sun's make Dependencies
|
8959 |
|
|
* [185]7602: C++ header files found in CPLUS_INCLUDE_PATH treated as
|
8960 |
|
|
C headers
|
8961 |
|
|
* [186]7862: Interrupting GCC -MD removes .d file but not .o
|
8962 |
|
|
* [187]8190: Failed compilation deletes -MD dependency file
|
8963 |
|
|
* [188]8524: _Pragma within macro is improperly expanded
|
8964 |
|
|
|
8965 |
|
|
x86 specific (Intel/AMD)
|
8966 |
|
|
|
8967 |
|
|
* [189]5351: (i686-only) function pass-by-value structure copy
|
8968 |
|
|
corrupts stack ([190]7591 is a duplicate)
|
8969 |
|
|
* [191]6845, [192]7034, [193]7124, [194]7174: ICE's with
|
8970 |
|
|
-march=pentium3/pentium2/athlon (these are all the same underlying
|
8971 |
|
|
bug, in MMX register use)
|
8972 |
|
|
* [195]7134, [196]7375, [197]7390: ICE with -march=athlon (maybe same
|
8973 |
|
|
as above?)
|
8974 |
|
|
* [198]6890: xmmintrin.h, _MM_TRANSPOSE4_PS is broken
|
8975 |
|
|
* [199]6981: wrong code in 64-bit manipulation on x86
|
8976 |
|
|
* [200]7242: GCC -mcpu=pentium[23] doesn't define __tune_pentiumpro__
|
8977 |
|
|
macro
|
8978 |
|
|
* [201]7396: ix86: cmpgt_ss, cmpge_ss, cmpngt_ss, and cmpnge_ss SSE
|
8979 |
|
|
intrinsics are broken
|
8980 |
|
|
* [202]7630: GCC 3.2 breaks on Mozilla 1.0's JS sources with
|
8981 |
|
|
-march=pentium4
|
8982 |
|
|
* [203]7693: Typo in i386 mmintrin.h header
|
8983 |
|
|
* [204]7723: ICE - Pentium3 sse - GCC 3.2
|
8984 |
|
|
* [205]7951: ICE on -march=pentium4 -O2 -mfpmath=sse
|
8985 |
|
|
* [206]8146: (i686 only) gcc 3.2 miscompiles gcc 2.95.3
|
8986 |
|
|
|
8987 |
|
|
PowerPC specific
|
8988 |
|
|
|
8989 |
|
|
* [207]5967: GCC bug when profiling nested functions on powerpc
|
8990 |
|
|
* [208]6984: wrong code generated with -O2, -O3, -Os for do-while
|
8991 |
|
|
loop on PowerPC
|
8992 |
|
|
* [209]7114: PowerPC: ICE building strcoll.op from glibc-2.2.5
|
8993 |
|
|
* [210]7130: miscompiled code for GCC-3.1 in powerpc linux with
|
8994 |
|
|
-funroll-all-loops
|
8995 |
|
|
* [211]7133: PowerPC ICE: unrecognizable insn
|
8996 |
|
|
* [212]7380: ICE in extract_insn, at recog.c:2148
|
8997 |
|
|
* [213]8252: ICE on Altivec code with optimization turned on
|
8998 |
|
|
* [214]8451: Altivec ICE in GCC 3.2
|
8999 |
|
|
|
9000 |
|
|
HP/PA specific
|
9001 |
|
|
|
9002 |
|
|
* [215]7250: __ashrdi3 returns wrong value on 32 bit hppa
|
9003 |
|
|
|
9004 |
|
|
SPARC specific
|
9005 |
|
|
|
9006 |
|
|
* [216]6668: when using --disable-multilib, libgcc_s.so is installed
|
9007 |
|
|
in the wrong place on sparc-solaris
|
9008 |
|
|
* [217]7151: ICE when compiling for UltraSPARC
|
9009 |
|
|
* [218]7335: SPARC: ICE in verify_wide_reg (flow.c:557) with long
|
9010 |
|
|
double and -O1
|
9011 |
|
|
* [219]7842: [REGRESSION] SPARC code gen bug
|
9012 |
|
|
|
9013 |
|
|
ARM specific
|
9014 |
|
|
|
9015 |
|
|
* [220]7856: [arm] invalid offset in constant pool reference
|
9016 |
|
|
* [221]7967: optimization produces wrong code (ARM)
|
9017 |
|
|
|
9018 |
|
|
Alpha specific
|
9019 |
|
|
|
9020 |
|
|
* [222]7374: __builtin_fabsl broken on alpha
|
9021 |
|
|
|
9022 |
|
|
IBM s390 specific
|
9023 |
|
|
|
9024 |
|
|
* [223]7370: ICE in fixup_var_refs_1 on s390x
|
9025 |
|
|
* [224]7409: loop optimization bug on s390x-linux-gnu
|
9026 |
|
|
* [225]8232: s390x: ICE when using bcmp with int length argument
|
9027 |
|
|
|
9028 |
|
|
SCO specific
|
9029 |
|
|
|
9030 |
|
|
* [226]7623: SCO OpenServer build fails with machmode.def: undefined
|
9031 |
|
|
symbol: BITS_PER_UNIT
|
9032 |
|
|
|
9033 |
|
|
m68k/Coldfire specific
|
9034 |
|
|
|
9035 |
|
|
* [227]8314: crtbegin, crtend need to be multilib'ed for this
|
9036 |
|
|
platform
|
9037 |
|
|
|
9038 |
|
|
Documentation
|
9039 |
|
|
|
9040 |
|
|
* [228]761: Document some undocumented options
|
9041 |
|
|
* [229]5610: Fix documentation about invoking SSE instructions
|
9042 |
|
|
(-mfpmath=sse)
|
9043 |
|
|
* [230]7484: List -Wmissing-declarations as C-only option
|
9044 |
|
|
* [231]7531: -mcmodel not documented for x86-64
|
9045 |
|
|
* [232]8120: Update documentation of bad use of ##
|
9046 |
|
|
__________________________________________________________________
|
9047 |
|
|
|
9048 |
|
|
GCC 3.2
|
9049 |
|
|
|
9050 |
|
|
3.2 is a small bug fix release, but there is a change to the
|
9051 |
|
|
application binary interface (ABI), hence the change to the second part
|
9052 |
|
|
of the version number.
|
9053 |
|
|
|
9054 |
|
|
The main purpose of the 3.2 release is to correct a couple of problems
|
9055 |
|
|
in the C++ ABI, with the intention of providing a stable interface
|
9056 |
|
|
going forward. Accordingly, 3.2 is only a small change to 3.1.1.
|
9057 |
|
|
|
9058 |
|
|
Bug Fixes
|
9059 |
|
|
|
9060 |
|
|
C++
|
9061 |
|
|
|
9062 |
|
|
* [233]7320: g++ 3.2 relocation problem
|
9063 |
|
|
* [234]7470: vtable: virtual function pointers not in declaration
|
9064 |
|
|
order
|
9065 |
|
|
|
9066 |
|
|
libstdc++
|
9067 |
|
|
|
9068 |
|
|
* [235]6410: Trouble with non-ASCII monetary symbols and wchar_t
|
9069 |
|
|
* [236]6503, [237]6642, [238]7186: Problems with comparing or
|
9070 |
|
|
subtracting various types of const and non-const iterators
|
9071 |
|
|
* [239]7216: ambiguity with basic_iostream::traits_type
|
9072 |
|
|
* [240]7220: problem with basic_istream::ignore(0,delimiter)
|
9073 |
|
|
* [241]7222: locale::operator==() doesn't work on std::locale("")
|
9074 |
|
|
* [242]7286: placement operator delete issue
|
9075 |
|
|
* [243]7442: cxxabi.h does not match the C++ ABI
|
9076 |
|
|
* [244]7445: poor performance of std::locale::classic() in
|
9077 |
|
|
multi-threaded applications
|
9078 |
|
|
|
9079 |
|
|
x86-64 specific
|
9080 |
|
|
|
9081 |
|
|
* [245]7291: off-by-one in generated inline bzero code for x86-64
|
9082 |
|
|
|
9083 |
|
|
Please send FSF & GNU inquiries & questions to [246]gnu@gnu.org. There
|
9084 |
|
|
are also [247]other ways to contact the FSF.
|
9085 |
|
|
|
9086 |
|
|
These pages are [248]maintained by the GCC team.
|
9087 |
|
|
|
9088 |
|
|
|
9089 |
|
|
For questions related to the use of GCC, please consult these web
|
9090 |
|
|
pages and the [249]GCC manuals. If that fails, the
|
9091 |
|
|
[250]gcc-help@gcc.gnu.org mailing list might help.
|
9092 |
|
|
Please send comments on these web pages and the development of GCC to
|
9093 |
|
|
our developer mailing list at [251]gcc@gnu.org or
|
9094 |
|
|
[252]gcc@gcc.gnu.org. All of our lists have [253]public archives.
|
9095 |
|
|
|
9096 |
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth
|
9097 |
|
|
Floor, Boston, MA 02110, USA.
|
9098 |
|
|
|
9099 |
|
|
Verbatim copying and distribution of this entire article is permitted
|
9100 |
|
|
in any medium, provided this notice is preserved.
|
9101 |
|
|
Last modified 2010-07-01 [254]Valid XHTML 1.0
|
9102 |
|
|
|
9103 |
|
|
References
|
9104 |
|
|
|
9105 |
|
|
1. http://gcc.gnu.org/gcc-3.2/changes.html#3.2.3
|
9106 |
|
|
2. http://gcc.gnu.org/gcc-3.1/changes.html
|
9107 |
|
|
3. http://gcc.gnu.org/gcc-3.2/c++-abi.html
|
9108 |
|
|
4. http://gcc.gnu.org/PR3782
|
9109 |
|
|
5. http://gcc.gnu.org/PR6440
|
9110 |
|
|
6. http://gcc.gnu.org/PR7050
|
9111 |
|
|
7. http://gcc.gnu.org/PR7741
|
9112 |
|
|
8. http://gcc.gnu.org/PR7982
|
9113 |
|
|
9. http://gcc.gnu.org/PR8068
|
9114 |
|
|
10. http://gcc.gnu.org/PR8178
|
9115 |
|
|
11. http://gcc.gnu.org/PR8396
|
9116 |
|
|
12. http://gcc.gnu.org/PR8674
|
9117 |
|
|
13. http://gcc.gnu.org/PR9768
|
9118 |
|
|
14. http://gcc.gnu.org/PR9798
|
9119 |
|
|
15. http://gcc.gnu.org/PR9799
|
9120 |
|
|
16. http://gcc.gnu.org/PR9928
|
9121 |
|
|
17. http://gcc.gnu.org/PR10114
|
9122 |
|
|
18. http://gcc.gnu.org/PR10352
|
9123 |
|
|
19. http://gcc.gnu.org/PR10336
|
9124 |
|
|
20. http://gcc.gnu.org/PR8224
|
9125 |
|
|
21. http://gcc.gnu.org/PR8613
|
9126 |
|
|
22. http://gcc.gnu.org/PR8828
|
9127 |
|
|
23. http://gcc.gnu.org/PR9226
|
9128 |
|
|
24. http://gcc.gnu.org/PR9853
|
9129 |
|
|
25. http://gcc.gnu.org/PR9797
|
9130 |
|
|
26. http://gcc.gnu.org/PR9967
|
9131 |
|
|
27. http://gcc.gnu.org/PR10116
|
9132 |
|
|
28. http://gcc.gnu.org/PR10171
|
9133 |
|
|
29. http://gcc.gnu.org/PR10175
|
9134 |
|
|
30. http://gcc.gnu.org/PR8316
|
9135 |
|
|
31. http://gcc.gnu.org/PR9169
|
9136 |
|
|
32. http://gcc.gnu.org/PR9420
|
9137 |
|
|
33. http://gcc.gnu.org/PR9459
|
9138 |
|
|
34. http://gcc.gnu.org/PR9507
|
9139 |
|
|
35. http://gcc.gnu.org/PR9538
|
9140 |
|
|
36. http://gcc.gnu.org/PR9602
|
9141 |
|
|
37. http://gcc.gnu.org/PR9993
|
9142 |
|
|
38. http://gcc.gnu.org/PR10167
|
9143 |
|
|
39. http://gcc.gnu.org/PR9652
|
9144 |
|
|
40. http://gcc.gnu.org/PR10144
|
9145 |
|
|
41. http://gcc.gnu.org/PR8746
|
9146 |
|
|
42. http://gcc.gnu.org/PR9888
|
9147 |
|
|
43. http://gcc.gnu.org/PR9638
|
9148 |
|
|
44. http://gcc.gnu.org/PR9954
|
9149 |
|
|
45. http://gcc.gnu.org/PR7784
|
9150 |
|
|
46. http://gcc.gnu.org/PR7796
|
9151 |
|
|
47. http://gcc.gnu.org/PR8281
|
9152 |
|
|
48. http://gcc.gnu.org/PR8366
|
9153 |
|
|
49. http://gcc.gnu.org/PR8726
|
9154 |
|
|
50. http://gcc.gnu.org/PR9414
|
9155 |
|
|
51. http://gcc.gnu.org/PR10067
|
9156 |
|
|
52. http://gcc.gnu.org/PR7248
|
9157 |
|
|
53. http://gcc.gnu.org/PR8343
|
9158 |
|
|
54. http://gcc.gnu.org/PR9732
|
9159 |
|
|
55. http://gcc.gnu.org/PR10073
|
9160 |
|
|
56. http://gcc.gnu.org/PR7702
|
9161 |
|
|
57. http://gcc.gnu.org/PR9671
|
9162 |
|
|
58. http://gcc.gnu.org/PR8694
|
9163 |
|
|
59. http://gcc.gnu.org/PR9953
|
9164 |
|
|
60. http://gcc.gnu.org/PR10271
|
9165 |
|
|
61. http://gcc.gnu.org/PR6362
|
9166 |
|
|
62. http://gcc.gnu.org/PR10377
|
9167 |
|
|
63. http://gcc.gnu.org/PR6955
|
9168 |
|
|
64. http://gcc.gnu.org/PR5919
|
9169 |
|
|
65. http://gcc.gnu.org/PR7129
|
9170 |
|
|
66. http://gcc.gnu.org/PR7507
|
9171 |
|
|
67. http://gcc.gnu.org/PR7622
|
9172 |
|
|
68. http://gcc.gnu.org/PR7681
|
9173 |
|
|
69. http://gcc.gnu.org/PR9528
|
9174 |
|
|
70. http://gcc.gnu.org/PR8031
|
9175 |
|
|
71. http://gcc.gnu.org/PR8275
|
9176 |
|
|
72. http://gcc.gnu.org/PR8332
|
9177 |
|
|
73. http://gcc.gnu.org/PR8372
|
9178 |
|
|
74. http://gcc.gnu.org/PR8439
|
9179 |
|
|
75. http://gcc.gnu.org/PR8442
|
9180 |
|
|
76. http://gcc.gnu.org/PR8518
|
9181 |
|
|
77. http://gcc.gnu.org/PR8615
|
9182 |
|
|
78. http://gcc.gnu.org/PR8663
|
9183 |
|
|
79. http://gcc.gnu.org/PR8799
|
9184 |
|
|
80. http://gcc.gnu.org/PR9328
|
9185 |
|
|
81. http://gcc.gnu.org/PR9465
|
9186 |
|
|
82. http://gcc.gnu.org/PR47
|
9187 |
|
|
83. http://gcc.gnu.org/PR6745
|
9188 |
|
|
84. http://gcc.gnu.org/PR8214
|
9189 |
|
|
85. http://gcc.gnu.org/PR8493
|
9190 |
|
|
86. http://gcc.gnu.org/PR8332
|
9191 |
|
|
87. http://gcc.gnu.org/PR8503
|
9192 |
|
|
88. http://gcc.gnu.org/PR8727
|
9193 |
|
|
89. http://gcc.gnu.org/PR7445
|
9194 |
|
|
90. http://gcc.gnu.org/PR8230
|
9195 |
|
|
91. http://gcc.gnu.org/PR8399
|
9196 |
|
|
92. http://gcc.gnu.org/PR8662
|
9197 |
|
|
93. http://gcc.gnu.org/PR8707
|
9198 |
|
|
94. http://gcc.gnu.org/PR8708
|
9199 |
|
|
95. http://gcc.gnu.org/PR8790
|
9200 |
|
|
96. http://gcc.gnu.org/PR8887
|
9201 |
|
|
97. http://gcc.gnu.org/PR9076
|
9202 |
|
|
98. http://gcc.gnu.org/PR9151
|
9203 |
|
|
99. http://gcc.gnu.org/PR9168
|
9204 |
|
|
100. http://gcc.gnu.org/PR9269
|
9205 |
|
|
101. http://gcc.gnu.org/PR9322
|
9206 |
|
|
102. http://gcc.gnu.org/PR9433
|
9207 |
|
|
103. http://gcc.gnu.org/PR8032
|
9208 |
|
|
104. http://gcc.gnu.org/PR8639
|
9209 |
|
|
105. http://gcc.gnu.org/PR8794
|
9210 |
|
|
106. http://gcc.gnu.org/PR8832
|
9211 |
|
|
107. http://gcc.gnu.org/PR8988
|
9212 |
|
|
108. http://gcc.gnu.org/PR9492
|
9213 |
|
|
109. http://gcc.gnu.org/PR9267
|
9214 |
|
|
110. http://gcc.gnu.org/PR8344
|
9215 |
|
|
111. http://gcc.gnu.org/PR8524
|
9216 |
|
|
112. http://gcc.gnu.org/PR8880
|
9217 |
|
|
113. http://gcc.gnu.org/PR9090
|
9218 |
|
|
114. http://gcc.gnu.org/PR8588
|
9219 |
|
|
115. http://gcc.gnu.org/PR8599
|
9220 |
|
|
116. http://gcc.gnu.org/PR9506
|
9221 |
|
|
117. http://gcc.gnu.org/PR9484
|
9222 |
|
|
118. http://gcc.gnu.org/PR9292
|
9223 |
|
|
119. http://gcc.gnu.org/PR9293
|
9224 |
|
|
120. http://gcc.gnu.org/PR9295
|
9225 |
|
|
121. http://gcc.gnu.org/PR9296
|
9226 |
|
|
122. http://gcc.gnu.org/PR9316
|
9227 |
|
|
123. http://gcc.gnu.org/PR9493
|
9228 |
|
|
124. http://gcc.gnu.org/PR7341
|
9229 |
|
|
125. http://gcc.gnu.org/PR8947
|
9230 |
|
|
126. http://gcc.gnu.org/PR7448
|
9231 |
|
|
127. http://gcc.gnu.org/PR8882
|
9232 |
|
|
128. http://gcc.gnu.org/PR7445
|
9233 |
|
|
129. http://gcc.gnu.org/PR2521
|
9234 |
|
|
130. http://gcc.gnu.org/PR5661
|
9235 |
|
|
131. http://gcc.gnu.org/PR6419
|
9236 |
|
|
132. http://gcc.gnu.org/PR6994
|
9237 |
|
|
133. http://gcc.gnu.org/PR7150
|
9238 |
|
|
134. http://gcc.gnu.org/PR7160
|
9239 |
|
|
135. http://gcc.gnu.org/PR7228
|
9240 |
|
|
136. http://gcc.gnu.org/PR7266
|
9241 |
|
|
137. http://gcc.gnu.org/PR7353
|
9242 |
|
|
138. http://gcc.gnu.org/PR7411
|
9243 |
|
|
139. http://gcc.gnu.org/PR7478
|
9244 |
|
|
140. http://gcc.gnu.org/PR7526
|
9245 |
|
|
141. http://gcc.gnu.org/PR7721
|
9246 |
|
|
142. http://gcc.gnu.org/PR7803
|
9247 |
|
|
143. http://gcc.gnu.org/PR7754
|
9248 |
|
|
144. http://gcc.gnu.org/PR7788
|
9249 |
|
|
145. http://gcc.gnu.org/PR8031
|
9250 |
|
|
146. http://gcc.gnu.org/PR8055
|
9251 |
|
|
147. http://gcc.gnu.org/PR8067
|
9252 |
|
|
148. http://gcc.gnu.org/PR8134
|
9253 |
|
|
149. http://gcc.gnu.org/PR8149
|
9254 |
|
|
150. http://gcc.gnu.org/PR8160
|
9255 |
|
|
151. http://gcc.gnu.org/PR5607
|
9256 |
|
|
152. http://gcc.gnu.org/PR6579
|
9257 |
|
|
153. http://gcc.gnu.org/PR6803
|
9258 |
|
|
154. http://gcc.gnu.org/PR7176
|
9259 |
|
|
155. http://gcc.gnu.org/PR7188
|
9260 |
|
|
156. http://gcc.gnu.org/PR7306
|
9261 |
|
|
157. http://gcc.gnu.org/PR7461
|
9262 |
|
|
158. http://gcc.gnu.org/PR7524
|
9263 |
|
|
159. http://gcc.gnu.org/PR7584
|
9264 |
|
|
160. http://gcc.gnu.org/PR7676
|
9265 |
|
|
161. http://gcc.gnu.org/PR7679
|
9266 |
|
|
162. http://gcc.gnu.org/PR7811
|
9267 |
|
|
163. http://gcc.gnu.org/PR7961
|
9268 |
|
|
164. http://gcc.gnu.org/PR8071
|
9269 |
|
|
165. http://gcc.gnu.org/PR8127
|
9270 |
|
|
166. http://gcc.gnu.org/PR6745
|
9271 |
|
|
167. http://gcc.gnu.org/PR8096
|
9272 |
|
|
168. http://gcc.gnu.org/PR8127
|
9273 |
|
|
169. http://gcc.gnu.org/PR8218
|
9274 |
|
|
170. http://gcc.gnu.org/PR8287
|
9275 |
|
|
171. http://gcc.gnu.org/PR8347
|
9276 |
|
|
172. http://gcc.gnu.org/PR8348
|
9277 |
|
|
173. http://gcc.gnu.org/PR8391
|
9278 |
|
|
174. http://gcc.gnu.org/PR6627
|
9279 |
|
|
175. http://gcc.gnu.org/PR6631
|
9280 |
|
|
176. http://gcc.gnu.org/PR7102
|
9281 |
|
|
177. http://gcc.gnu.org/PR7120
|
9282 |
|
|
178. http://gcc.gnu.org/PR7209
|
9283 |
|
|
179. http://gcc.gnu.org/PR7515
|
9284 |
|
|
180. http://gcc.gnu.org/PR7814
|
9285 |
|
|
181. http://gcc.gnu.org/PR8467
|
9286 |
|
|
182. http://gcc.gnu.org/PR4890
|
9287 |
|
|
183. http://gcc.gnu.org/PR7357
|
9288 |
|
|
184. http://gcc.gnu.org/PR7358
|
9289 |
|
|
185. http://gcc.gnu.org/PR7602
|
9290 |
|
|
186. http://gcc.gnu.org/PR7862
|
9291 |
|
|
187. http://gcc.gnu.org/PR8190
|
9292 |
|
|
188. http://gcc.gnu.org/PR8524
|
9293 |
|
|
189. http://gcc.gnu.org/PR5351
|
9294 |
|
|
190. http://gcc.gnu.org/PR7591
|
9295 |
|
|
191. http://gcc.gnu.org/PR6845
|
9296 |
|
|
192. http://gcc.gnu.org/PR7034
|
9297 |
|
|
193. http://gcc.gnu.org/PR7124
|
9298 |
|
|
194. http://gcc.gnu.org/PR7174
|
9299 |
|
|
195. http://gcc.gnu.org/PR7134
|
9300 |
|
|
196. http://gcc.gnu.org/PR7375
|
9301 |
|
|
197. http://gcc.gnu.org/PR7390
|
9302 |
|
|
198. http://gcc.gnu.org/PR6890
|
9303 |
|
|
199. http://gcc.gnu.org/PR6981
|
9304 |
|
|
200. http://gcc.gnu.org/PR7242
|
9305 |
|
|
201. http://gcc.gnu.org/PR7396
|
9306 |
|
|
202. http://gcc.gnu.org/PR7630
|
9307 |
|
|
203. http://gcc.gnu.org/PR7693
|
9308 |
|
|
204. http://gcc.gnu.org/PR7723
|
9309 |
|
|
205. http://gcc.gnu.org/PR7951
|
9310 |
|
|
206. http://gcc.gnu.org/PR8146
|
9311 |
|
|
207. http://gcc.gnu.org/PR5967
|
9312 |
|
|
208. http://gcc.gnu.org/PR6984
|
9313 |
|
|
209. http://gcc.gnu.org/PR7114
|
9314 |
|
|
210. http://gcc.gnu.org/PR7130
|
9315 |
|
|
211. http://gcc.gnu.org/PR7133
|
9316 |
|
|
212. http://gcc.gnu.org/PR7380
|
9317 |
|
|
213. http://gcc.gnu.org/PR8252
|
9318 |
|
|
214. http://gcc.gnu.org/PR8451
|
9319 |
|
|
215. http://gcc.gnu.org/PR7250
|
9320 |
|
|
216. http://gcc.gnu.org/PR6668
|
9321 |
|
|
217. http://gcc.gnu.org/PR7151
|
9322 |
|
|
218. http://gcc.gnu.org/PR7335
|
9323 |
|
|
219. http://gcc.gnu.org/PR7842
|
9324 |
|
|
220. http://gcc.gnu.org/PR7856
|
9325 |
|
|
221. http://gcc.gnu.org/PR7967
|
9326 |
|
|
222. http://gcc.gnu.org/PR7374
|
9327 |
|
|
223. http://gcc.gnu.org/PR7370
|
9328 |
|
|
224. http://gcc.gnu.org/PR7409
|
9329 |
|
|
225. http://gcc.gnu.org/PR8232
|
9330 |
|
|
226. http://gcc.gnu.org/PR7623
|
9331 |
|
|
227. http://gcc.gnu.org/PR8314
|
9332 |
|
|
228. http://gcc.gnu.org/PR761
|
9333 |
|
|
229. http://gcc.gnu.org/PR5610
|
9334 |
|
|
230. http://gcc.gnu.org/PR7484
|
9335 |
|
|
231. http://gcc.gnu.org/PR7531
|
9336 |
|
|
232. http://gcc.gnu.org/PR8120
|
9337 |
|
|
233. http://gcc.gnu.org/PR7320
|
9338 |
|
|
234. http://gcc.gnu.org/PR7470
|
9339 |
|
|
235. http://gcc.gnu.org/PR6410
|
9340 |
|
|
236. http://gcc.gnu.org/PR6503
|
9341 |
|
|
237. http://gcc.gnu.org/PR6642
|
9342 |
|
|
238. http://gcc.gnu.org/PR7186
|
9343 |
|
|
239. http://gcc.gnu.org/PR7216
|
9344 |
|
|
240. http://gcc.gnu.org/PR7220
|
9345 |
|
|
241. http://gcc.gnu.org/PR7222
|
9346 |
|
|
242. http://gcc.gnu.org/PR7286
|
9347 |
|
|
243. http://gcc.gnu.org/PR7442
|
9348 |
|
|
244. http://gcc.gnu.org/PR7445
|
9349 |
|
|
245. http://gcc.gnu.org/PR7291
|
9350 |
|
|
246. mailto:gnu@gnu.org
|
9351 |
|
|
247. http://www.gnu.org/home.html#ContactInfo
|
9352 |
|
|
248. http://gcc.gnu.org/about.html
|
9353 |
|
|
249. http://gcc.gnu.org/onlinedocs/
|
9354 |
|
|
250. mailto:gcc-help@gcc.gnu.org
|
9355 |
|
|
251. mailto:gcc@gnu.org
|
9356 |
|
|
252. mailto:gcc@gcc.gnu.org
|
9357 |
|
|
253. http://gcc.gnu.org/lists.html
|
9358 |
|
|
254. http://validator.w3.org/check/referer
|
9359 |
|
|
======================================================================
|
9360 |
|
|
http://gcc.gnu.org/gcc-3.1/index.html
|
9361 |
|
|
|
9362 |
|
|
GCC 3.1
|
9363 |
|
|
|
9364 |
|
|
July 27, 2002
|
9365 |
|
|
|
9366 |
|
|
The [1]GNU project and the GCC developers are pleased to announce the
|
9367 |
|
|
release of GCC 3.1.1.
|
9368 |
|
|
|
9369 |
|
|
The links below still apply to GCC 3.1.1.
|
9370 |
|
|
|
9371 |
|
|
May 15, 2002
|
9372 |
|
|
|
9373 |
|
|
The [2]GNU project and the GCC developers are pleased to announce the
|
9374 |
|
|
release of GCC 3.1.
|
9375 |
|
|
|
9376 |
|
|
GCC used to stand for the GNU C Compiler, but since the compiler
|
9377 |
|
|
supports several other languages aside from C, it now stands for the
|
9378 |
|
|
GNU Compiler Collection.
|
9379 |
|
|
|
9380 |
|
|
A list of [3]successful builds is updated as new information becomes
|
9381 |
|
|
available.
|
9382 |
|
|
|
9383 |
|
|
The GCC developers would like to thank the numerous people that have
|
9384 |
|
|
contributed [4]new features, improvements, bug fixes, and other changes
|
9385 |
|
|
as well as test results to GCC. This [5]amazing group of volunteers is
|
9386 |
|
|
what makes GCC successful.
|
9387 |
|
|
|
9388 |
|
|
For additional information about GCC please refer to the [6]GCC project
|
9389 |
|
|
web site or contact the [7]GCC development mailing list.
|
9390 |
|
|
|
9391 |
|
|
To obtain GCC please use [8]our mirror sites, or our CVS server.
|
9392 |
|
|
__________________________________________________________________
|
9393 |
|
|
|
9394 |
|
|
Please send FSF & GNU inquiries & questions to [9]gnu@gnu.org. There
|
9395 |
|
|
are also [10]other ways to contact the FSF.
|
9396 |
|
|
|
9397 |
|
|
These pages are [11]maintained by the GCC team.
|
9398 |
|
|
|
9399 |
|
|
|
9400 |
|
|
For questions related to the use of GCC, please consult these web
|
9401 |
|
|
pages and the [12]GCC manuals. If that fails, the
|
9402 |
|
|
[13]gcc-help@gcc.gnu.org mailing list might help.
|
9403 |
|
|
Please send comments on these web pages and the development of GCC to
|
9404 |
|
|
our developer mailing list at [14]gcc@gnu.org or [15]gcc@gcc.gnu.org.
|
9405 |
|
|
All of our lists have [16]public archives.
|
9406 |
|
|
|
9407 |
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth
|
9408 |
|
|
Floor, Boston, MA 02110, USA.
|
9409 |
|
|
|
9410 |
|
|
Verbatim copying and distribution of this entire article is permitted
|
9411 |
|
|
in any medium, provided this notice is preserved.
|
9412 |
|
|
Last modified 2010-07-01 [17]Valid XHTML 1.0
|
9413 |
|
|
|
9414 |
|
|
References
|
9415 |
|
|
|
9416 |
|
|
1. http://www.gnu.org/
|
9417 |
|
|
2. http://www.gnu.org/
|
9418 |
|
|
3. http://gcc.gnu.org/gcc-3.1/buildstat.html
|
9419 |
|
|
4. http://gcc.gnu.org/gcc-3.1/changes.html
|
9420 |
|
|
5. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
|
9421 |
|
|
6. http://gcc.gnu.org/index.html
|
9422 |
|
|
7. mailto:gcc@gcc.gnu.org
|
9423 |
|
|
8. http://gcc.gnu.org/mirrors.html
|
9424 |
|
|
9. mailto:gnu@gnu.org
|
9425 |
|
|
10. http://www.gnu.org/home.html#ContactInfo
|
9426 |
|
|
11. http://gcc.gnu.org/about.html
|
9427 |
|
|
12. http://gcc.gnu.org/onlinedocs/
|
9428 |
|
|
13. mailto:gcc-help@gcc.gnu.org
|
9429 |
|
|
14. mailto:gcc@gnu.org
|
9430 |
|
|
15. mailto:gcc@gcc.gnu.org
|
9431 |
|
|
16. http://gcc.gnu.org/lists.html
|
9432 |
|
|
17. http://validator.w3.org/check/referer
|
9433 |
|
|
======================================================================
|
9434 |
|
|
http://gcc.gnu.org/gcc-3.1/changes.html
|
9435 |
|
|
|
9436 |
|
|
GCC 3.1 Release Series
|
9437 |
|
|
Changes, New Features, and Fixes
|
9438 |
|
|
|
9439 |
|
|
Additional changes in GCC 3.1.1
|
9440 |
|
|
|
9441 |
|
|
* A bug related to how structures and unions are returned has been
|
9442 |
|
|
fixed for powerpc-*-netbsd*.
|
9443 |
|
|
* An important bug in the implementation of -fprefetch-loop-arrays
|
9444 |
|
|
has been fixed. Previously the optimization prefetched random
|
9445 |
|
|
blocks of memory for most targets except for i386.
|
9446 |
|
|
* The Java compiler now compiles Java programs much faster and also
|
9447 |
|
|
works with parallel make.
|
9448 |
|
|
* Nested functions have been fixed for mips*-*-netbsd*.
|
9449 |
|
|
* Some missing floating point support routines have beed added for
|
9450 |
|
|
mips*-*-netbsd*.
|
9451 |
|
|
* This [1]message gives additional information about the bugs fixed
|
9452 |
|
|
in this release.
|
9453 |
|
|
|
9454 |
|
|
Caveats
|
9455 |
|
|
|
9456 |
|
|
* The -traditional C compiler option has been deprecated and will be
|
9457 |
|
|
removed in GCC 3.3. (It remains possible to preprocess non-C code
|
9458 |
|
|
with the traditional preprocessor.)
|
9459 |
|
|
* The default debugging format for most ELF platforms (including
|
9460 |
|
|
GNU/Linux and FreeBSD; notable exception is Solaris) has changed
|
9461 |
|
|
from stabs to DWARF2. This requires GDB 5.1.1 or later.
|
9462 |
|
|
|
9463 |
|
|
General Optimizer Improvements
|
9464 |
|
|
|
9465 |
|
|
* Jan Hubicka, SuSE Labs, together with Richard Henderson, Red Hat,
|
9466 |
|
|
and Andreas Jaeger, SuSE Labs, has contributed [2]infrastructure
|
9467 |
|
|
for profile driven optimizations.
|
9468 |
|
|
Options -fprofile-arcs and -fbranch-probabilities can now be used
|
9469 |
|
|
to improve speed of the generated code by profiling the actual
|
9470 |
|
|
program behaviour on typical runs. In the absence of profile info
|
9471 |
|
|
the compiler attempts to guess the profile statically.
|
9472 |
|
|
* [3]SPEC2000 and SPEC95 benchmark suites are now used daily to
|
9473 |
|
|
monitor performance of the generated code.
|
9474 |
|
|
According to the SPECInt2000 results on an AMD Athlon CPU, the code
|
9475 |
|
|
generated by GCC 3.1 is 6% faster on the average (8.2% faster with
|
9476 |
|
|
profile feedback) compared to GCC 3.0. The code produced by GCC 3.0
|
9477 |
|
|
is about 2.1% faster compared to 2.95.3. Tests were done using the
|
9478 |
|
|
-O2 -march=athlon command-line options.
|
9479 |
|
|
* Alexandre Oliva, of Red Hat, has generalized the tree inlining
|
9480 |
|
|
infrastructure developed by CodeSourcery, LLC for the C++ front
|
9481 |
|
|
end, so that it is now used in the C front end too. Inlining
|
9482 |
|
|
functions as trees exposes them earlier to the compiler, giving it
|
9483 |
|
|
more opportunities for optimization.
|
9484 |
|
|
* Support for data prefetching instructions has been added to the GCC
|
9485 |
|
|
back end and several targets. A new __builtin_prefetch intrinsic is
|
9486 |
|
|
available to explicitly insert prefetch instructions and
|
9487 |
|
|
experimental support for loop array prefetching has been added (see
|
9488 |
|
|
-fprefetch-loop-array documentation).
|
9489 |
|
|
* Support for emitting debugging information for macros has been
|
9490 |
|
|
added for DWARF2. It is activated using -g3.
|
9491 |
|
|
|
9492 |
|
|
New Languages and Language specific improvements
|
9493 |
|
|
|
9494 |
|
|
C/C++
|
9495 |
|
|
|
9496 |
|
|
* A few more [4]ISO C99 features.
|
9497 |
|
|
* The preprocessor is 10-50% faster than the preprocessor in GCC 3.0.
|
9498 |
|
|
* The preprocessor's symbol table has been merged with the symbol
|
9499 |
|
|
table of the C, C++ and Objective-C front ends.
|
9500 |
|
|
* The preprocessor consumes less memory than the preprocessor in GCC
|
9501 |
|
|
3.0, often significantly so. On normal input files, it typically
|
9502 |
|
|
consumes less memory than pre-3.0 cccp-based GCC, too.
|
9503 |
|
|
|
9504 |
|
|
C++
|
9505 |
|
|
|
9506 |
|
|
* -fhonor-std and -fno-honor-std have been removed. -fno-honor-std
|
9507 |
|
|
was a workaround to allow std compliant code to work with the
|
9508 |
|
|
non-std compliant libstdc++-v2. libstdc++-v3 is std compliant.
|
9509 |
|
|
* The C++ ABI has been fixed so that void (A::*)() const is mangled
|
9510 |
|
|
as "M1AKFvvE", rather than "MK1AFvvE" as before. This change only
|
9511 |
|
|
affects pointer to cv-qualified member function types.
|
9512 |
|
|
* The C++ ABI has been changed to correctly handle this code:
|
9513 |
|
|
struct A {
|
9514 |
|
|
void operator delete[] (void *, size_t);
|
9515 |
|
|
};
|
9516 |
|
|
|
9517 |
|
|
struct B : public A {
|
9518 |
|
|
};
|
9519 |
|
|
|
9520 |
|
|
new B[10];
|
9521 |
|
|
|
9522 |
|
|
The amount of storage allocated for the array will be greater than
|
9523 |
|
|
it was in 3.0, in order to store the number of elements in the
|
9524 |
|
|
array, so that the correct size can be passed to operator delete[]
|
9525 |
|
|
when the array is deleted. Previously, the value passed to operator
|
9526 |
|
|
delete[] was unpredictable.
|
9527 |
|
|
This change will only affect code that declares a two-argument
|
9528 |
|
|
operator delete[] with a second parameter of type size_t in a base
|
9529 |
|
|
class, and does not override that definition in a derived class.
|
9530 |
|
|
* The C++ ABI has been changed so that:
|
9531 |
|
|
struct A {
|
9532 |
|
|
void operator delete[] (void *, size_t);
|
9533 |
|
|
void operator delete[] (void *);
|
9534 |
|
|
};
|
9535 |
|
|
|
9536 |
|
|
does not cause unnecessary storage to be allocated when an array of
|
9537 |
|
|
A objects is allocated.
|
9538 |
|
|
This change will only affect code that declares both of these forms
|
9539 |
|
|
of operator delete[], and declared the two-argument form before the
|
9540 |
|
|
one-argument form.
|
9541 |
|
|
* The C++ ABI has been changed so that when a parameter is passed by
|
9542 |
|
|
value, any cleanup for that parameter is performed in the caller,
|
9543 |
|
|
as specified by the ia64 C++ ABI, rather than the called function
|
9544 |
|
|
as before. As a result, classes with a non-trivial destructor but a
|
9545 |
|
|
trivial copy constructor will be passed and returned by invisible
|
9546 |
|
|
reference, rather than by bitwise copy as before.
|
9547 |
|
|
* G++ now supports the "named return value optimization": for code
|
9548 |
|
|
like
|
9549 |
|
|
A f () {
|
9550 |
|
|
A a;
|
9551 |
|
|
...
|
9552 |
|
|
return a;
|
9553 |
|
|
}
|
9554 |
|
|
|
9555 |
|
|
G++ will allocate a in the return value slot, so that the return
|
9556 |
|
|
becomes a no-op. For this to work, all return statements in the
|
9557 |
|
|
function must return the same variable.
|
9558 |
|
|
* Improvements to the C++ library are listed in [5]the libstdc++-v3
|
9559 |
|
|
FAQ.
|
9560 |
|
|
|
9561 |
|
|
Objective-C
|
9562 |
|
|
|
9563 |
|
|
* Annoying linker warnings (due to incorrect code being generated)
|
9564 |
|
|
have been fixed.
|
9565 |
|
|
* If a class method cannot be found, the compiler no longer issues a
|
9566 |
|
|
warning if a corresponding instance method exists in the root
|
9567 |
|
|
class.
|
9568 |
|
|
* Forward @protocol declarations have been fixed.
|
9569 |
|
|
* Loading of categories has been fixed in certain situations (GNU run
|
9570 |
|
|
time only).
|
9571 |
|
|
* The class lookup in the run-time library has been rewritten so that
|
9572 |
|
|
class method dispatch is more than twice as fast as it used to be
|
9573 |
|
|
(GNU run time only).
|
9574 |
|
|
|
9575 |
|
|
Java
|
9576 |
|
|
|
9577 |
|
|
* libgcj now includes RMI, java.lang.ref.*, javax.naming, and
|
9578 |
|
|
javax.transaction.
|
9579 |
|
|
* Property files and other system resources can be compiled into
|
9580 |
|
|
executables which use libgcj using the new gcj --resource feature.
|
9581 |
|
|
* libgcj has been ported to more platforms. In particular there is
|
9582 |
|
|
now a mostly-functional mingw32 (Windows) target port.
|
9583 |
|
|
* JNI and CNI invocation interfaces were implemented, so gcj-compiled
|
9584 |
|
|
Java code can now be called from a C/C++ application.
|
9585 |
|
|
* gcj can now use builtin functions for certain known methods, for
|
9586 |
|
|
instance Math.cos.
|
9587 |
|
|
* gcj can now automatically remove redundant array-store checks in
|
9588 |
|
|
some common cases.
|
9589 |
|
|
* The --no-store-checks optimization option was added. This can be
|
9590 |
|
|
used to omit runtime store checks for code which is known not to
|
9591 |
|
|
throw ArrayStoreException
|
9592 |
|
|
* The following third party interface standards were added to libgcj:
|
9593 |
|
|
org.w3c.dom and org.xml.sax.
|
9594 |
|
|
* java.security has been merged with GNU Classpath. The new package
|
9595 |
|
|
is now JDK 1.2 compliant, and much more complete.
|
9596 |
|
|
* A bytecode verifier was added to the libgcj interpreter.
|
9597 |
|
|
* java.lang.Character was rewritten to comply with the Unicode 3.0
|
9598 |
|
|
standard, and improve performance.
|
9599 |
|
|
* Partial support for many more locales was added to libgcj.
|
9600 |
|
|
* Socket timeouts have been implemented.
|
9601 |
|
|
* libgcj has been merged into a single shared library. There are no
|
9602 |
|
|
longer separate shared libraries for the garbage collector and
|
9603 |
|
|
zlib.
|
9604 |
|
|
* Several performance improvements were made to gcj and libgcj:
|
9605 |
|
|
+ Hash synchronization (thin locks)
|
9606 |
|
|
+ A special allocation path for finalizer-free objects
|
9607 |
|
|
+ Thread-local allocation
|
9608 |
|
|
+ Parallel GC, and other GC tweaks
|
9609 |
|
|
|
9610 |
|
|
Fortran
|
9611 |
|
|
|
9612 |
|
|
Fortran improvements are listed in [6]the Fortran documentation.
|
9613 |
|
|
|
9614 |
|
|
Ada
|
9615 |
|
|
|
9616 |
|
|
[7]Ada Core Technologies, Inc, has contributed its GNAT Ada 95 front
|
9617 |
|
|
end and associated tools. The GNAT compiler fully implements the Ada
|
9618 |
|
|
language as defined by the ISO/IEC 8652 standard.
|
9619 |
|
|
|
9620 |
|
|
Please note that the integration of the Ada front end is still work in
|
9621 |
|
|
progress.
|
9622 |
|
|
|
9623 |
|
|
New Targets and Target Specific Improvements
|
9624 |
|
|
|
9625 |
|
|
* Hans-Peter Nilsson has contributed a port to [8]MMIX, the CPU
|
9626 |
|
|
architecture used in new editions of Donald E. Knuth's The Art of
|
9627 |
|
|
Computer Programming.
|
9628 |
|
|
* [9]Axis Communications has contributed its port to the CRIS CPU
|
9629 |
|
|
architecture, used in the ETRAX system-on-a-chip series. See
|
9630 |
|
|
[10]Axis' developer site for technical information.
|
9631 |
|
|
* Alexandre Oliva, of Red Hat, has contributed a port to the
|
9632 |
|
|
[11]SuperH SH5 64-bit RISC microprocessor architecture, extending
|
9633 |
|
|
the existing SH port.
|
9634 |
|
|
* UltraSPARC is fully supported in 64-bit mode. The option -m64
|
9635 |
|
|
enables it.
|
9636 |
|
|
* For compatibility with the Sun compiler #pragma redefine_extname
|
9637 |
|
|
has been implemented on Solaris.
|
9638 |
|
|
* The x86 back end has had some noticeable work done to it.
|
9639 |
|
|
+ SuSE Labs developers Jan Hubicka, Bo Thorsen and Andreas
|
9640 |
|
|
Jaeger have contributed a port to the AMD x86-64 architecture.
|
9641 |
|
|
For more information on x86-64 see [12]http://www.x86-64.org.
|
9642 |
|
|
+ The compiler now supports MMX, 3DNow!, SSE, and SSE2
|
9643 |
|
|
instructions. Options -mmmx, -m3dnow, -msse, and -msse2 will
|
9644 |
|
|
enable the respective instruction sets. Intel C++ compatible
|
9645 |
|
|
MMX/3DNow!/SSE intrinsics are implemented. SSE2 intrinsics
|
9646 |
|
|
will be added in next major release.
|
9647 |
|
|
+ Following those improvements, targets for Pentium MMX, K6-2,
|
9648 |
|
|
K6-3, Pentium III, Pentium 4, and Athlon 4 Mobile/XP/MP were
|
9649 |
|
|
added. Refer to the documentation on -march= and -mcpu=
|
9650 |
|
|
options for details.
|
9651 |
|
|
+ For those targets that support it, -mfpmath=sse will cause the
|
9652 |
|
|
compiler to generate SSE/SSE2 instructions for floating point
|
9653 |
|
|
math instead of x87 instructions. Usually, this will lead to
|
9654 |
|
|
quicker code -- especially on the Pentium 4. Note that only
|
9655 |
|
|
scalar floating point instructions are used and GCC does not
|
9656 |
|
|
exploit SIMD features yet.
|
9657 |
|
|
+ Prefetch support has been added to the Pentium III, Pentium 4,
|
9658 |
|
|
K6-2, K6-3, and Athlon series.
|
9659 |
|
|
+ Code generated for floating point to integer conversions has
|
9660 |
|
|
been improved leading to better performance of many 3D
|
9661 |
|
|
applications.
|
9662 |
|
|
* The PowerPC back end has added 64-bit PowerPC GNU/Linux support.
|
9663 |
|
|
* C++ support for AIX has been improved.
|
9664 |
|
|
* Aldy Hernandez, of Red Hat, Inc, has contributed extensions to the
|
9665 |
|
|
PowerPC port supporting the AltiVec programming model (SIMD). The
|
9666 |
|
|
support, though presently useful, is experimental and is expected
|
9667 |
|
|
to stabilize for 3.2. The support is written to conform to
|
9668 |
|
|
Motorola's AltiVec specs. See -maltivec.
|
9669 |
|
|
|
9670 |
|
|
Obsolete Systems
|
9671 |
|
|
|
9672 |
|
|
Support for a number of older systems has been declared obsolete in GCC
|
9673 |
|
|
3.1. Unless there is activity to revive them, the next release of GCC
|
9674 |
|
|
will have their sources permanently removed.
|
9675 |
|
|
|
9676 |
|
|
All configurations of the following processor architectures have been
|
9677 |
|
|
declared obsolete:
|
9678 |
|
|
* MIL-STD-1750A, 1750a-*-*
|
9679 |
|
|
* AMD A29k, a29k-*-*
|
9680 |
|
|
* Convex, c*-convex-*
|
9681 |
|
|
* Clipper, clipper-*-*
|
9682 |
|
|
* Elxsi, elxsi-*-*
|
9683 |
|
|
* Intel i860, i860-*-*
|
9684 |
|
|
* Sun picoJava, pj-*-* and pjl-*-*
|
9685 |
|
|
* Western Electric 32000, we32k-*-*
|
9686 |
|
|
|
9687 |
|
|
Most configurations of the following processor architectures have been
|
9688 |
|
|
declared obsolete, but we are preserving a few systems which may have
|
9689 |
|
|
active developers. It is unlikely that the remaining systems will
|
9690 |
|
|
survive much longer unless we see definite signs of port activity.
|
9691 |
|
|
* Motorola 88000 except
|
9692 |
|
|
+ Generic a.out, m88k-*-aout*
|
9693 |
|
|
+ Generic SVR4, m88k-*-sysv4
|
9694 |
|
|
+ OpenBSD, m88k-*-openbsd*
|
9695 |
|
|
* NS32k except
|
9696 |
|
|
+ NetBSD, ns32k-*-netbsd*
|
9697 |
|
|
+ OpenBSD, ns32k-*-openbsd*.
|
9698 |
|
|
* ROMP except
|
9699 |
|
|
+ OpenBSD, romp-*-openbsd*.
|
9700 |
|
|
|
9701 |
|
|
Finally, only some configurations of these processor architectures are
|
9702 |
|
|
being obsoleted.
|
9703 |
|
|
* Alpha:
|
9704 |
|
|
+ OSF/1, alpha*-*-osf[123]*. (Digital Unix and Tru64 Unix, aka
|
9705 |
|
|
alpha*-*-osf[45], are still supported.)
|
9706 |
|
|
* ARM:
|
9707 |
|
|
+ RISCiX, arm-*-riscix*.
|
9708 |
|
|
* i386:
|
9709 |
|
|
+ 386BSD, i?86-*-bsd*
|
9710 |
|
|
+ Chorus, i?86-*-chorusos*
|
9711 |
|
|
+ DG/UX, i?86-*-dgux*
|
9712 |
|
|
+ FreeBSD 1.x, i?86-*-freebsd1.*
|
9713 |
|
|
+ IBM AIX, i?86-*-aix*
|
9714 |
|
|
+ ISC UNIX, i?86-*-isc*
|
9715 |
|
|
+ Linux with pre-BFD linker, i?86-*-linux*oldld*
|
9716 |
|
|
+ NEXTstep, i?86-next-*
|
9717 |
|
|
+ OSF UNIX, i?86-*-osf1* and i?86-*-osfrose*
|
9718 |
|
|
+ RTEMS/coff, i?86-*-rtemscoff*
|
9719 |
|
|
+ RTEMS/go32, i?86-go32-rtems*
|
9720 |
|
|
+ Sequent/BSD, i?86-sequent-bsd*
|
9721 |
|
|
+ Sequent/ptx before version 3, i?86-sequent-ptx[12]* and
|
9722 |
|
|
i?86-sequent-sysv3*
|
9723 |
|
|
+ SunOS, i?86-*-sunos*
|
9724 |
|
|
* Motorola 68000:
|
9725 |
|
|
+ Altos, m68[k0]*-altos-*
|
9726 |
|
|
+ Apollo, m68[k0]*-apollo-*
|
9727 |
|
|
+ Apple A/UX, m68[k0]*-apple-*
|
9728 |
|
|
+ Bull, m68[k0]*-bull-*
|
9729 |
|
|
+ Convergent, m68[k0]*-convergent-*
|
9730 |
|
|
+ Generic SVR3, m68[k0]*-*-sysv3*
|
9731 |
|
|
+ ISI, m68[k0]*-isi-*
|
9732 |
|
|
+ LynxOS, m68[k0]*-*-lynxos*
|
9733 |
|
|
+ NEXT, m68[k0]*-next-*
|
9734 |
|
|
+ RTEMS/coff, m68[k0]*-*-rtemscoff*
|
9735 |
|
|
+ Sony, m68[k0]*-sony-*
|
9736 |
|
|
* MIPS:
|
9737 |
|
|
+ DEC Ultrix, mips-*-ultrix* and mips-dec-*
|
9738 |
|
|
+ Generic BSD, mips-*-bsd*
|
9739 |
|
|
+ Generic System V, mips-*-sysv*
|
9740 |
|
|
+ IRIX before version 5, mips-sgi-irix[1234]*
|
9741 |
|
|
+ RiscOS, mips-*-riscos*
|
9742 |
|
|
+ Sony, mips-sony-*
|
9743 |
|
|
+ Tandem, mips-tandem-*
|
9744 |
|
|
* SPARC:
|
9745 |
|
|
+ RTEMS/a.out, sparc-*-rtemsaout*.
|
9746 |
|
|
|
9747 |
|
|
Documentation improvements
|
9748 |
|
|
|
9749 |
|
|
* The old manual ("Using and Porting the GNU Compiler Collection")
|
9750 |
|
|
has been replaced by a users manual ("Using the GNU Compiler
|
9751 |
|
|
Collection") and a separate internals reference manual ("GNU
|
9752 |
|
|
Compiler Collection Internals").
|
9753 |
|
|
* More complete and much improved documentation about GCC's internal
|
9754 |
|
|
representation used by the C and C++ front ends.
|
9755 |
|
|
* Many cleanups and improvements in general.
|
9756 |
|
|
|
9757 |
|
|
Please send FSF & GNU inquiries & questions to [13]gnu@gnu.org. There
|
9758 |
|
|
are also [14]other ways to contact the FSF.
|
9759 |
|
|
|
9760 |
|
|
These pages are [15]maintained by the GCC team.
|
9761 |
|
|
|
9762 |
|
|
|
9763 |
|
|
For questions related to the use of GCC, please consult these web
|
9764 |
|
|
pages and the [16]GCC manuals. If that fails, the
|
9765 |
|
|
[17]gcc-help@gcc.gnu.org mailing list might help.
|
9766 |
|
|
Please send comments on these web pages and the development of GCC to
|
9767 |
|
|
our developer mailing list at [18]gcc@gnu.org or [19]gcc@gcc.gnu.org.
|
9768 |
|
|
All of our lists have [20]public archives.
|
9769 |
|
|
|
9770 |
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth
|
9771 |
|
|
Floor, Boston, MA 02110, USA.
|
9772 |
|
|
|
9773 |
|
|
Verbatim copying and distribution of this entire article is permitted
|
9774 |
|
|
in any medium, provided this notice is preserved.
|
9775 |
|
|
Last modified 2010-07-11 [21]Valid XHTML 1.0
|
9776 |
|
|
|
9777 |
|
|
References
|
9778 |
|
|
|
9779 |
|
|
1. http://gcc.gnu.org/ml/gcc/2002-07/msg01208.html
|
9780 |
|
|
2. http://gcc.gnu.org/news/profiledriven.html
|
9781 |
|
|
3. http://gcc.gnu.org/benchmarks/
|
9782 |
|
|
4. http://gcc.gnu.org/gcc-3.1/c99status.html
|
9783 |
|
|
5. http://gcc.gnu.org/onlinedocs/libstdc++/faq.html
|
9784 |
|
|
6. http://gcc.gnu.org/onlinedocs/gcc-3.1.1/g77/News.html
|
9785 |
|
|
7. http://www.adacore.com/home/
|
9786 |
|
|
8. http://www-cs-faculty.stanford.edu/~knuth/mmix.html
|
9787 |
|
|
9. http://www.axis.com/
|
9788 |
|
|
10. http://developer.axis.com/
|
9789 |
|
|
11. http://www.superh.com/
|
9790 |
|
|
12. http://www.x86-64.org/
|
9791 |
|
|
13. mailto:gnu@gnu.org
|
9792 |
|
|
14. http://www.gnu.org/home.html#ContactInfo
|
9793 |
|
|
15. http://gcc.gnu.org/about.html
|
9794 |
|
|
16. http://gcc.gnu.org/onlinedocs/
|
9795 |
|
|
17. mailto:gcc-help@gcc.gnu.org
|
9796 |
|
|
18. mailto:gcc@gnu.org
|
9797 |
|
|
19. mailto:gcc@gcc.gnu.org
|
9798 |
|
|
20. http://gcc.gnu.org/lists.html
|
9799 |
|
|
21. http://validator.w3.org/check/referer
|
9800 |
|
|
======================================================================
|
9801 |
|
|
http://gcc.gnu.org/gcc-3.0/gcc-3.0.html
|
9802 |
|
|
|
9803 |
|
|
GCC 3.0.4
|
9804 |
|
|
|
9805 |
|
|
February 20, 2002
|
9806 |
|
|
|
9807 |
|
|
The [1]GNU project and the GCC developers are pleased to announce the
|
9808 |
|
|
release of GCC 3.0.4, which is a bug-fix release for the GCC 3.0
|
9809 |
|
|
series.
|
9810 |
|
|
|
9811 |
|
|
GCC used to stand for the GNU C Compiler, but since the compiler
|
9812 |
|
|
supports several other languages aside from C, it now stands for the
|
9813 |
|
|
GNU Compiler Collection.
|
9814 |
|
|
|
9815 |
|
|
GCC 3.0.x has several new optimizations, new targets, new languages and
|
9816 |
|
|
many other new features, relative to GCC 2.95.x. See the [2]new
|
9817 |
|
|
features page for a more complete list.
|
9818 |
|
|
|
9819 |
|
|
A list of [3]successful builds is updated as new information becomes
|
9820 |
|
|
available.
|
9821 |
|
|
|
9822 |
|
|
The GCC developers would like to thank the numerous people that have
|
9823 |
|
|
contributed new features, test results, bug fixes, etc to GCC. This
|
9824 |
|
|
[4]amazing group of volunteers is what makes GCC successful.
|
9825 |
|
|
|
9826 |
|
|
And finally, we can't in good conscience fail to mention some
|
9827 |
|
|
[5]caveats to using GCC 3.0.x.
|
9828 |
|
|
|
9829 |
|
|
For additional information about GCC please refer to the [6]GCC project
|
9830 |
|
|
web site or contact the [7]GCC development mailing list.
|
9831 |
|
|
|
9832 |
|
|
To obtain GCC please use [8]our mirror sites, or our CVS server.
|
9833 |
|
|
__________________________________________________________________
|
9834 |
|
|
|
9835 |
|
|
Previous 3.0.x Releases
|
9836 |
|
|
|
9837 |
|
|
December 20, 2001: GCC 3.0.3 has been released.
|
9838 |
|
|
October 25, 2001: GCC 3.0.2 has been released.
|
9839 |
|
|
August 20, 2001: GCC 3.0.1 has been released.
|
9840 |
|
|
June 18, 2001: GCC 3.0 has been released.
|
9841 |
|
|
|
9842 |
|
|
Please send FSF & GNU inquiries & questions to [9]gnu@gnu.org. There
|
9843 |
|
|
are also [10]other ways to contact the FSF.
|
9844 |
|
|
|
9845 |
|
|
These pages are [11]maintained by the GCC team.
|
9846 |
|
|
|
9847 |
|
|
|
9848 |
|
|
For questions related to the use of GCC, please consult these web
|
9849 |
|
|
pages and the [12]GCC manuals. If that fails, the
|
9850 |
|
|
[13]gcc-help@gcc.gnu.org mailing list might help.
|
9851 |
|
|
Please send comments on these web pages and the development of GCC to
|
9852 |
|
|
our developer mailing list at [14]gcc@gnu.org or [15]gcc@gcc.gnu.org.
|
9853 |
|
|
All of our lists have [16]public archives.
|
9854 |
|
|
|
9855 |
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth
|
9856 |
|
|
Floor, Boston, MA 02110, USA.
|
9857 |
|
|
|
9858 |
|
|
Verbatim copying and distribution of this entire article is permitted
|
9859 |
|
|
in any medium, provided this notice is preserved.
|
9860 |
|
|
Last modified 2010-07-01 [17]Valid XHTML 1.0
|
9861 |
|
|
|
9862 |
|
|
References
|
9863 |
|
|
|
9864 |
|
|
1. http://www.gnu.org/
|
9865 |
|
|
2. http://gcc.gnu.org/gcc-3.0/features.html
|
9866 |
|
|
3. http://gcc.gnu.org/gcc-3.0/buildstat.html
|
9867 |
|
|
4. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
|
9868 |
|
|
5. http://gcc.gnu.org/gcc-3.0/caveats.html
|
9869 |
|
|
6. http://gcc.gnu.org/index.html
|
9870 |
|
|
7. mailto:gcc@gcc.gnu.org
|
9871 |
|
|
8. http://gcc.gnu.org/mirrors.html
|
9872 |
|
|
9. mailto:gnu@gnu.org
|
9873 |
|
|
10. http://www.gnu.org/home.html#ContactInfo
|
9874 |
|
|
11. http://gcc.gnu.org/about.html
|
9875 |
|
|
12. http://gcc.gnu.org/onlinedocs/
|
9876 |
|
|
13. mailto:gcc-help@gcc.gnu.org
|
9877 |
|
|
14. mailto:gcc@gnu.org
|
9878 |
|
|
15. mailto:gcc@gcc.gnu.org
|
9879 |
|
|
16. http://gcc.gnu.org/lists.html
|
9880 |
|
|
17. http://validator.w3.org/check/referer
|
9881 |
|
|
======================================================================
|
9882 |
|
|
http://gcc.gnu.org/gcc-3.0/features.html
|
9883 |
|
|
|
9884 |
|
|
GCC 3.0 New Features
|
9885 |
|
|
|
9886 |
|
|
Additional changes in GCC 3.0.4
|
9887 |
|
|
|
9888 |
|
|
* GCC 3.0 now supports newer versions of the [1]NetBSD operating
|
9889 |
|
|
system, which use the ELF object file format, on x86 processors.
|
9890 |
|
|
* Correct debugging information is generated from functions that have
|
9891 |
|
|
lines from multiple files (e.g. yacc output).
|
9892 |
|
|
* A fix for whitespace handling in the -traditional preprocessor,
|
9893 |
|
|
which can affect Fortran.
|
9894 |
|
|
* Fixes to the exception handling runtime.
|
9895 |
|
|
* More fixes for bad code generation in C++.
|
9896 |
|
|
* A fix for shared library generation under AIX 4.3.
|
9897 |
|
|
* Documentation updates.
|
9898 |
|
|
* Port of GCC to Tensilica's Xtensa processor contributed.
|
9899 |
|
|
* A fix for compiling the PPC Linux kernel (FAT fs wouldn't link).
|
9900 |
|
|
|
9901 |
|
|
Additional changes in GCC 3.0.3
|
9902 |
|
|
|
9903 |
|
|
* A fix to correct an accidental change to the PowerPC ABI.
|
9904 |
|
|
* Fixes for bad code generation on a variety of architectures.
|
9905 |
|
|
* Improvements to the debugging information generated for C++
|
9906 |
|
|
classes.
|
9907 |
|
|
* Fixes for bad code generation in C++.
|
9908 |
|
|
* A fix to avoid crashes in the C++ demangler.
|
9909 |
|
|
* A fix to the C++ standard library to avoid buffer overflows.
|
9910 |
|
|
* Miscellaneous improvements for a variety of architectures.
|
9911 |
|
|
|
9912 |
|
|
Additional changes in GCC 3.0.2
|
9913 |
|
|
|
9914 |
|
|
* Fixes for bad code generation during loop unrolling.
|
9915 |
|
|
* Fixes for bad code generation by the sibling call optimization.
|
9916 |
|
|
* Minor improvements to x86 code generation.
|
9917 |
|
|
* Implementation of function descriptors in C++ vtables for IA64.
|
9918 |
|
|
* Numerous minor bug-fixes.
|
9919 |
|
|
|
9920 |
|
|
Additional changes in GCC 3.0.1
|
9921 |
|
|
|
9922 |
|
|
* C++ fixes for incorrect code-generation.
|
9923 |
|
|
* Improved cross-compiling support for the C++ standard library.
|
9924 |
|
|
* Fixes for some embedded targets that worked in GCC 2.95.3, but not
|
9925 |
|
|
in GCC 3.0.
|
9926 |
|
|
* Fixes for various exception-handling bugs.
|
9927 |
|
|
* A port to the S/390 architecture.
|
9928 |
|
|
|
9929 |
|
|
General Optimizer Improvements
|
9930 |
|
|
|
9931 |
|
|
* [2]Basic block reordering pass.
|
9932 |
|
|
* New if-conversion pass with support for conditional (predicated)
|
9933 |
|
|
execution.
|
9934 |
|
|
* New tail call and sibling call elimination optimizations.
|
9935 |
|
|
* New register renaming pass.
|
9936 |
|
|
* New (experimental) [3]static single assignment (SSA) representation
|
9937 |
|
|
support.
|
9938 |
|
|
* New dead-code elimination pass implemented using the SSA
|
9939 |
|
|
representation.
|
9940 |
|
|
* [4]Global null pointer test elimination.
|
9941 |
|
|
* [5]Global code hoisting/unification.
|
9942 |
|
|
* More builtins and optimizations for stdio.h, string.h and old BSD
|
9943 |
|
|
functions, as well as for ISO C99 functions.
|
9944 |
|
|
* New builtin __builtin_expect for giving hints to the branch
|
9945 |
|
|
predictor.
|
9946 |
|
|
|
9947 |
|
|
New Languages and Language specific improvements
|
9948 |
|
|
|
9949 |
|
|
* The GNU Compiler for the Java(TM) language (GCJ) is now integrated
|
9950 |
|
|
and supported, including the run-time library containing most
|
9951 |
|
|
common non-GUI Java classes, a bytecode interpreter, and the Boehm
|
9952 |
|
|
conservative garbage collector. Many bugs have been fixed. GCJ can
|
9953 |
|
|
compile Java source or Java bytecodes to either native code or Java
|
9954 |
|
|
class files, and supports native methods written in either the
|
9955 |
|
|
standard JNI or the more efficient and convenient CNI.
|
9956 |
|
|
* Here is a [6]partial list of C++ improvements, both new features
|
9957 |
|
|
and those no longer supported.
|
9958 |
|
|
* New C++ ABI. On the IA-64 platform GCC is capable of
|
9959 |
|
|
inter-operating with other IA-64 compilers.
|
9960 |
|
|
* The new ABI also significantly reduces the size of symbol and debug
|
9961 |
|
|
information.
|
9962 |
|
|
* New [7]C++ support library and many C++ bug fixes, vastly improving
|
9963 |
|
|
our conformance to the ISO C++ standard.
|
9964 |
|
|
* New [8]inliner for C++.
|
9965 |
|
|
* Rewritten C preprocessor, integrated into the C, C++ and Objective
|
9966 |
|
|
C compilers, with very many improvements including ISO C99 support
|
9967 |
|
|
and [9]improvements to dependency generation.
|
9968 |
|
|
* Support for more [10]ISO C99 features.
|
9969 |
|
|
* Many improvements to support for checking calls to format functions
|
9970 |
|
|
such as printf and scanf, including support for ISO C99 format
|
9971 |
|
|
features, extensions from the Single Unix Specification and GNU
|
9972 |
|
|
libc 2.2, checking of strfmon formats and features to assist in
|
9973 |
|
|
auditing for format string security bugs.
|
9974 |
|
|
* New warnings for C code that may have undefined semantics because
|
9975 |
|
|
of violations of sequence point rules in the C standard (such as a
|
9976 |
|
|
= a++;, a[n] = b[n++]; and a[i++] = i;), included in -Wall.
|
9977 |
|
|
* Additional warning option -Wfloat-equal.
|
9978 |
|
|
* Improvements to -Wtraditional.
|
9979 |
|
|
* Fortran improvements are listed in [11]the Fortran documentation.
|
9980 |
|
|
|
9981 |
|
|
New Targets and Target Specific Improvements
|
9982 |
|
|
|
9983 |
|
|
* New x86 back-end, generating much improved code.
|
9984 |
|
|
* Support for a generic i386-elf target contributed.
|
9985 |
|
|
* New option to emit x86 assembly code using Intel style syntax
|
9986 |
|
|
(-mintel-syntax).
|
9987 |
|
|
* HPUX 11 support contributed.
|
9988 |
|
|
* Improved PowerPC code generation, including scheduled prologue and
|
9989 |
|
|
epilogue.
|
9990 |
|
|
* Port of GCC to Intel's IA-64 processor contributed.
|
9991 |
|
|
* Port of GCC to Motorola's MCore 210 and 340 contributed.
|
9992 |
|
|
* New unified back-end for Arm, Thumb and StrongArm contributed.
|
9993 |
|
|
* Port of GCC to Intel's XScale processor contributed.
|
9994 |
|
|
* Port of GCC to Atmel's AVR microcontrollers contributed.
|
9995 |
|
|
* Port of GCC to Mitsubishi's D30V processor contributed.
|
9996 |
|
|
* Port of GCC to Matsushita's AM33 processor (a member of the MN10300
|
9997 |
|
|
processor family) contributed.
|
9998 |
|
|
* Port of GCC to Fujitsu's FR30 processor contributed.
|
9999 |
|
|
* Port of GCC to Motorola's 68HC11 and 68HC12 processors contributed.
|
10000 |
|
|
* Port of GCC to Sun's picoJava processor core contributed.
|
10001 |
|
|
|
10002 |
|
|
Documentation improvements
|
10003 |
|
|
|
10004 |
|
|
* Substantially rewritten and improved C preprocessor manual.
|
10005 |
|
|
* Many improvements to other documentation.
|
10006 |
|
|
* Manpages for gcc, cpp and gcov are now generated automatically from
|
10007 |
|
|
the master Texinfo manual, eliminating the problem of manpages
|
10008 |
|
|
being out of date. (The generated manpages are only extracts from
|
10009 |
|
|
the full manual, which is provided in Texinfo form, from which
|
10010 |
|
|
info, HTML, other formats and a printed manual can be generated.)
|
10011 |
|
|
* Generated info files are included in the release tarballs alongside
|
10012 |
|
|
their Texinfo sources, avoiding problems on some platforms with
|
10013 |
|
|
building makeinfo as part of the GCC distribution.
|
10014 |
|
|
|
10015 |
|
|
Other significant improvements
|
10016 |
|
|
|
10017 |
|
|
* Garbage collection used internally by the compiler for most memory
|
10018 |
|
|
allocation instead of obstacks.
|
10019 |
|
|
* Lengauer and Tarjan algorithm used for computing dominators in the
|
10020 |
|
|
CFG. This algorithm can be significantly faster and more space
|
10021 |
|
|
efficient than our older algorithm.
|
10022 |
|
|
* gccbug script provided to assist in submitting bug reports to our
|
10023 |
|
|
bug tracking system. (Bug reports previously submitted directly to
|
10024 |
|
|
our mailing lists, for which you received no bug tracking number,
|
10025 |
|
|
should be submitted again using gccbug if you can reproduce the
|
10026 |
|
|
problem with GCC 3.0.)
|
10027 |
|
|
* The internal libgcc library is [12]built as a shared library on
|
10028 |
|
|
systems that support it.
|
10029 |
|
|
* Extensive testsuite included with GCC, with many new tests. In
|
10030 |
|
|
addition to tests for GCC bugs that have been fixed, many tests
|
10031 |
|
|
have been added for language features, compiler warnings and
|
10032 |
|
|
builtin functions.
|
10033 |
|
|
* Additional language-independent warning options -Wpacked, -Wpadded,
|
10034 |
|
|
-Wunreachable-code and -Wdisabled-optimization.
|
10035 |
|
|
* Target-independent options -falign-functions, -falign-loops and
|
10036 |
|
|
-falign-jumps.
|
10037 |
|
|
|
10038 |
|
|
Plus a great many bug fixes and almost all the [13]features found in
|
10039 |
|
|
GCC 2.95.
|
10040 |
|
|
|
10041 |
|
|
Please send FSF & GNU inquiries & questions to [14]gnu@gnu.org. There
|
10042 |
|
|
are also [15]other ways to contact the FSF.
|
10043 |
|
|
|
10044 |
|
|
These pages are [16]maintained by the GCC team.
|
10045 |
|
|
|
10046 |
|
|
|
10047 |
|
|
For questions related to the use of GCC, please consult these web
|
10048 |
|
|
pages and the [17]GCC manuals. If that fails, the
|
10049 |
|
|
[18]gcc-help@gcc.gnu.org mailing list might help.
|
10050 |
|
|
Please send comments on these web pages and the development of GCC to
|
10051 |
|
|
our developer mailing list at [19]gcc@gnu.org or [20]gcc@gcc.gnu.org.
|
10052 |
|
|
All of our lists have [21]public archives.
|
10053 |
|
|
|
10054 |
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth
|
10055 |
|
|
Floor, Boston, MA 02110, USA.
|
10056 |
|
|
|
10057 |
|
|
Verbatim copying and distribution of this entire article is permitted
|
10058 |
|
|
in any medium, provided this notice is preserved.
|
10059 |
|
|
Last modified 2010-07-01 [22]Valid XHTML 1.0
|
10060 |
|
|
|
10061 |
|
|
References
|
10062 |
|
|
|
10063 |
|
|
1. http://www.netbsd.org/
|
10064 |
|
|
2. http://gcc.gnu.org/news/reorder.html
|
10065 |
|
|
3. http://gcc.gnu.org/news/ssa.html
|
10066 |
|
|
4. http://gcc.gnu.org/news/null.html
|
10067 |
|
|
5. http://gcc.gnu.org/news/unify.html
|
10068 |
|
|
6. http://gcc.gnu.org/gcc-3.0/c++features.html
|
10069 |
|
|
7. http://gcc.gnu.org/libstdc++/
|
10070 |
|
|
8. http://gcc.gnu.org/news/inlining.html
|
10071 |
|
|
9. http://gcc.gnu.org/news/dependencies.html
|
10072 |
|
|
10. http://gcc.gnu.org/gcc-3.0/c99status.html
|
10073 |
|
|
11. http://gcc.gnu.org/onlinedocs/gcc-3.4.6/g77/News.html
|
10074 |
|
|
12. http://gcc.gnu.org/gcc-3.0/libgcc.html
|
10075 |
|
|
13. http://gcc.gnu.org/gcc-2.95/features.html
|
10076 |
|
|
14. mailto:gnu@gnu.org
|
10077 |
|
|
15. http://www.gnu.org/home.html#ContactInfo
|
10078 |
|
|
16. http://gcc.gnu.org/about.html
|
10079 |
|
|
17. http://gcc.gnu.org/onlinedocs/
|
10080 |
|
|
18. mailto:gcc-help@gcc.gnu.org
|
10081 |
|
|
19. mailto:gcc@gnu.org
|
10082 |
|
|
20. mailto:gcc@gcc.gnu.org
|
10083 |
|
|
21. http://gcc.gnu.org/lists.html
|
10084 |
|
|
22. http://validator.w3.org/check/referer
|
10085 |
|
|
======================================================================
|
10086 |
|
|
http://gcc.gnu.org/gcc-3.0/caveats.html
|
10087 |
|
|
|
10088 |
|
|
GCC 3.0 Caveats
|
10089 |
|
|
|
10090 |
|
|
* -fstrict-aliasing is now part of -O2 and higher optimization
|
10091 |
|
|
levels. This allows the compiler to assume the strictest aliasing
|
10092 |
|
|
rules applicable to the language being compiled. For C and C++,
|
10093 |
|
|
this activates optimizations based on the type of expressions. This
|
10094 |
|
|
optimization may thus break old, non-compliant code.
|
10095 |
|
|
* Enumerations are now properly promoted to int in function
|
10096 |
|
|
parameters and function returns. Normally this change is not
|
10097 |
|
|
visible, but when using -fshort-enums this is an ABI change.
|
10098 |
|
|
* The undocumented extension that allowed C programs to have a label
|
10099 |
|
|
at the end of a compound statement has been deprecated and may be
|
10100 |
|
|
removed in a future version. Programs that now generate a warning
|
10101 |
|
|
about this may be fixed by adding a null statement (a single
|
10102 |
|
|
semicolon) after the label.
|
10103 |
|
|
* The poorly documented extension that allowed string constants in C,
|
10104 |
|
|
C++ and Objective C to contain unescaped newlines has been
|
10105 |
|
|
deprecated and may be removed in a future version. Programs using
|
10106 |
|
|
this extension may be fixed in several ways: the bare newline may
|
10107 |
|
|
be replaced by \n, or preceded by \n\, or string concatenation may
|
10108 |
|
|
be used with the bare newline preceded by \n" and " placed at the
|
10109 |
|
|
start of the next line.
|
10110 |
|
|
* The Chill compiler is not included in GCC 3.0, because of the lack
|
10111 |
|
|
of a volunteer to convert it to use garbage collection.
|
10112 |
|
|
* Certain non-standard iostream methods from earlier versions of
|
10113 |
|
|
libstdc++ are not included in libstdc++ v3, i.e. filebuf::attach,
|
10114 |
|
|
ostream::form, and istream::gets.
|
10115 |
|
|
* The new C++ ABI is not yet fully supported by current (as of
|
10116 |
|
|
2001-07-01) releases and development versions of GDB, or any
|
10117 |
|
|
earlier versions. There is a problem setting breakpoints by line
|
10118 |
|
|
number, and other related issues that have been fixed in GCC 3.0
|
10119 |
|
|
but not yet handled in GDB:
|
10120 |
|
|
[1]http://gcc.gnu.org/ml/gcc-bugs/2001-06/msg00421.html
|
10121 |
|
|
|
10122 |
|
|
Please send FSF & GNU inquiries & questions to [2]gnu@gnu.org. There
|
10123 |
|
|
are also [3]other ways to contact the FSF.
|
10124 |
|
|
|
10125 |
|
|
These pages are [4]maintained by the GCC team.
|
10126 |
|
|
|
10127 |
|
|
|
10128 |
|
|
For questions related to the use of GCC, please consult these web
|
10129 |
|
|
pages and the [5]GCC manuals. If that fails, the
|
10130 |
|
|
[6]gcc-help@gcc.gnu.org mailing list might help.
|
10131 |
|
|
Please send comments on these web pages and the development of GCC to
|
10132 |
|
|
our developer mailing list at [7]gcc@gnu.org or [8]gcc@gcc.gnu.org.
|
10133 |
|
|
All of our lists have [9]public archives.
|
10134 |
|
|
|
10135 |
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth
|
10136 |
|
|
Floor, Boston, MA 02110, USA.
|
10137 |
|
|
|
10138 |
|
|
Verbatim copying and distribution of this entire article is permitted
|
10139 |
|
|
in any medium, provided this notice is preserved.
|
10140 |
|
|
Last modified 2010-07-01 [10]Valid XHTML 1.0
|
10141 |
|
|
|
10142 |
|
|
References
|
10143 |
|
|
|
10144 |
|
|
1. http://gcc.gnu.org/ml/gcc-bugs/2001-06/msg00421.html
|
10145 |
|
|
2. mailto:gnu@gnu.org
|
10146 |
|
|
3. http://www.gnu.org/home.html#ContactInfo
|
10147 |
|
|
4. http://gcc.gnu.org/about.html
|
10148 |
|
|
5. http://gcc.gnu.org/onlinedocs/
|
10149 |
|
|
6. mailto:gcc-help@gcc.gnu.org
|
10150 |
|
|
7. mailto:gcc@gnu.org
|
10151 |
|
|
8. mailto:gcc@gcc.gnu.org
|
10152 |
|
|
9. http://gcc.gnu.org/lists.html
|
10153 |
|
|
10. http://validator.w3.org/check/referer
|
10154 |
|
|
======================================================================
|
10155 |
|
|
http://gcc.gnu.org/gcc-2.95/index.html
|
10156 |
|
|
|
10157 |
|
|
GCC 2.95
|
10158 |
|
|
|
10159 |
|
|
March 16, 2001: The GNU project and the GCC developers are pleased to
|
10160 |
|
|
announce the release of GCC version 2.95.3.
|
10161 |
|
|
|
10162 |
|
|
Release History
|
10163 |
|
|
|
10164 |
|
|
GCC 2.95.3
|
10165 |
|
|
March 16, 2001
|
10166 |
|
|
|
10167 |
|
|
GCC 2.95.2
|
10168 |
|
|
October 27, 1999
|
10169 |
|
|
|
10170 |
|
|
GCC 2.95.1
|
10171 |
|
|
August 19, 1999
|
10172 |
|
|
|
10173 |
|
|
GCC 2.95
|
10174 |
|
|
July 31, 1999. This is the first release of GCC since the April
|
10175 |
|
|
1999 GCC/EGCS reunification and includes nearly a year's worth
|
10176 |
|
|
of new development and bugfixes.
|
10177 |
|
|
|
10178 |
|
|
References and Acknowledgements
|
10179 |
|
|
|
10180 |
|
|
GCC used to stand for the GNU C Compiler, but since the compiler
|
10181 |
|
|
supports several other languages aside from C, it now stands for the
|
10182 |
|
|
GNU Compiler Collection.
|
10183 |
|
|
|
10184 |
|
|
The whole suite has been extensively [1]regression tested and
|
10185 |
|
|
[2]package tested. It should be reliable and suitable for widespread
|
10186 |
|
|
use.
|
10187 |
|
|
|
10188 |
|
|
The compiler has several new optimizations, new targets, new languages
|
10189 |
|
|
and other new features. See the [3]new features page for a more
|
10190 |
|
|
complete list of new features found in the GCC 2.95 releases.
|
10191 |
|
|
|
10192 |
|
|
The sources include installation instructions in both HTML and
|
10193 |
|
|
plaintext forms in the install directory in the distribution. However,
|
10194 |
|
|
the most up to date [4]installation instructions and [5]build/test
|
10195 |
|
|
status are on the web pages. We will update those pages as new
|
10196 |
|
|
information becomes available.
|
10197 |
|
|
|
10198 |
|
|
The GCC developers would like to thank the numerous people that have
|
10199 |
|
|
contributed new features, test results, bugfixes, etc to GCC. This
|
10200 |
|
|
[6]amazing group of volunteers is what makes GCC successful.
|
10201 |
|
|
|
10202 |
|
|
And finally, we can't in good conscience fail to mention some
|
10203 |
|
|
[7]caveats to using GCC 2.95.
|
10204 |
|
|
|
10205 |
|
|
Download GCC 2.95 from one of our many [8]mirror sites.
|
10206 |
|
|
|
10207 |
|
|
For additional information about GCC please see the [9]GCC project web
|
10208 |
|
|
server or contact the [10]GCC development mailing list.
|
10209 |
|
|
|
10210 |
|
|
Please send FSF & GNU inquiries & questions to [11]gnu@gnu.org. There
|
10211 |
|
|
are also [12]other ways to contact the FSF.
|
10212 |
|
|
|
10213 |
|
|
These pages are [13]maintained by the GCC team.
|
10214 |
|
|
|
10215 |
|
|
|
10216 |
|
|
For questions related to the use of GCC, please consult these web
|
10217 |
|
|
pages and the [14]GCC manuals. If that fails, the
|
10218 |
|
|
[15]gcc-help@gcc.gnu.org mailing list might help.
|
10219 |
|
|
Please send comments on these web pages and the development of GCC to
|
10220 |
|
|
our developer mailing list at [16]gcc@gnu.org or [17]gcc@gcc.gnu.org.
|
10221 |
|
|
All of our lists have [18]public archives.
|
10222 |
|
|
|
10223 |
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth
|
10224 |
|
|
Floor, Boston, MA 02110, USA.
|
10225 |
|
|
|
10226 |
|
|
Verbatim copying and distribution of this entire article is permitted
|
10227 |
|
|
in any medium, provided this notice is preserved.
|
10228 |
|
|
Last modified 2010-07-01 [19]Valid XHTML 1.0
|
10229 |
|
|
|
10230 |
|
|
References
|
10231 |
|
|
|
10232 |
|
|
1. http://gcc.gnu.org/gcc-2.95/regress.html
|
10233 |
|
|
2. http://gcc.gnu.org/gcc-2.95/othertest.html
|
10234 |
|
|
3. http://gcc.gnu.org/gcc-2.95/features.html
|
10235 |
|
|
4. http://gcc.gnu.org/install/
|
10236 |
|
|
5. http://gcc.gnu.org/gcc-2.95/buildstat.html
|
10237 |
|
|
6. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
|
10238 |
|
|
7. http://gcc.gnu.org/gcc-2.95/caveats.html
|
10239 |
|
|
8. http://gcc.gnu.org/mirrors.html
|
10240 |
|
|
9. http://gcc.gnu.org/index.html
|
10241 |
|
|
10. mailto:gcc@gcc.gnu.org
|
10242 |
|
|
11. mailto:gnu@gnu.org
|
10243 |
|
|
12. http://www.gnu.org/home.html#ContactInfo
|
10244 |
|
|
13. http://gcc.gnu.org/about.html
|
10245 |
|
|
14. http://gcc.gnu.org/onlinedocs/
|
10246 |
|
|
15. mailto:gcc-help@gcc.gnu.org
|
10247 |
|
|
16. mailto:gcc@gnu.org
|
10248 |
|
|
17. mailto:gcc@gcc.gnu.org
|
10249 |
|
|
18. http://gcc.gnu.org/lists.html
|
10250 |
|
|
19. http://validator.w3.org/check/referer
|
10251 |
|
|
======================================================================
|
10252 |
|
|
http://gcc.gnu.org/gcc-2.95/features.html
|
10253 |
|
|
|
10254 |
|
|
GCC 2.95 New Features
|
10255 |
|
|
|
10256 |
|
|
* General Optimizer Improvements:
|
10257 |
|
|
+ [1]Localized register spilling to improve speed and code
|
10258 |
|
|
density especially on small register class machines.
|
10259 |
|
|
+ [2]Global CSE using lazy code motion algorithms.
|
10260 |
|
|
+ [3]Improved global constant/copy propagation.
|
10261 |
|
|
+ [4]Improved control flow graph analysis and manipulation.
|
10262 |
|
|
+ [5]Local dead store elimination.
|
10263 |
|
|
+ [6]Memory Load hoisting/store sinking in loops.
|
10264 |
|
|
+ [7]Type based alias analysis is enabled by default. Note this
|
10265 |
|
|
feature will expose bugs in the Linux kernel. Please refer to
|
10266 |
|
|
the FAQ (as shipped with GCC 2.95) for additional information
|
10267 |
|
|
on this issue.
|
10268 |
|
|
+ Major revamp of GIV detection, combination and simplification
|
10269 |
|
|
to improve loop performance.
|
10270 |
|
|
+ Major improvements to register allocation and reloading.
|
10271 |
|
|
* New Languages and Language specific improvements
|
10272 |
|
|
+ [8]Many C++ improvements.
|
10273 |
|
|
+ [9]Many Fortran improvements.
|
10274 |
|
|
+ [10]Java front-end has been integrated. [11]runtime library is
|
10275 |
|
|
available separately.
|
10276 |
|
|
+ [12]ISO C99 support
|
10277 |
|
|
+ [13]Chill front-end and runtime has been integrated.
|
10278 |
|
|
+ Boehm garbage collector support in libobjc.
|
10279 |
|
|
+ More support for various pragmas which appear in vendor
|
10280 |
|
|
include files
|
10281 |
|
|
* New Targets and Target Specific Improvements
|
10282 |
|
|
+ [14]SPARC backend rewrite.
|
10283 |
|
|
+ -mschedule=8000 will optimize code for PA8000 class
|
10284 |
|
|
processors; -mpa-risc-2-0 will generate code for PA2.0
|
10285 |
|
|
processors
|
10286 |
|
|
+ Various micro-optimizations for the ia32 port. K6
|
10287 |
|
|
optimizations
|
10288 |
|
|
+ Compiler will attempt to align doubles in the stack on the
|
10289 |
|
|
ia32 port
|
10290 |
|
|
+ Alpha EV6 support
|
10291 |
|
|
+ PowerPC 750
|
10292 |
|
|
+ RS6000/PowerPC: -mcpu=401 was added as an alias for -mcpu=403.
|
10293 |
|
|
-mcpu=e603e was added to do -mcpu=603e and -msoft-float.
|
10294 |
|
|
+ c3x, c4x
|
10295 |
|
|
+ HyperSPARC
|
10296 |
|
|
+ SparcLite86x
|
10297 |
|
|
+ sh4
|
10298 |
|
|
+ Support for new systems (OpenBSD, FreeBSD, UWIN, Interix,
|
10299 |
|
|
arm-linux)
|
10300 |
|
|
+ vxWorks targets include support for vxWorks threads
|
10301 |
|
|
+ StrongARM 110 and ARM9 support added. ARM Scheduling
|
10302 |
|
|
parameters rewritten.
|
10303 |
|
|
+ Various changes to the MIPS port to avoid assembler macros,
|
10304 |
|
|
which in turn improves performance
|
10305 |
|
|
+ Various performance improvements to the i960 port.
|
10306 |
|
|
+ Major rewrite of ns32k port
|
10307 |
|
|
* Other significant improvements
|
10308 |
|
|
+ [15]Ability to dump cfg information and display it using vcg.
|
10309 |
|
|
+ The new faster scheme for fixing vendor header files is
|
10310 |
|
|
enabled by default.
|
10311 |
|
|
+ Experimental internationalization support.
|
10312 |
|
|
+ multibyte character support
|
10313 |
|
|
+ Some compile-time speedups for pathological problems
|
10314 |
|
|
+ Better support for complex types
|
10315 |
|
|
* Plus the usual mountain of bugfixes
|
10316 |
|
|
* Core compiler is based on the gcc2 development tree from Sept 30,
|
10317 |
|
|
1998, so we have all of the [16]features found in GCC 2.8.
|
10318 |
|
|
|
10319 |
|
|
Additional Changes in GCC 2.95.1
|
10320 |
|
|
|
10321 |
|
|
* Generic bugfixes and improvements
|
10322 |
|
|
+ Various documentation fixes related to the GCC/EGCS merger.
|
10323 |
|
|
+ Fix memory management bug which could lead to spurious aborts,
|
10324 |
|
|
core dumps or random parsing errors in the compiler.
|
10325 |
|
|
+ Fix a couple bugs in the dwarf1 and dwarf2 debug record
|
10326 |
|
|
support.
|
10327 |
|
|
+ Fix infinite loop in the CSE optimizer.
|
10328 |
|
|
+ Avoid undefined behavior in compiler FP emulation code
|
10329 |
|
|
+ Fix install problem when prefix is overridden on the make
|
10330 |
|
|
install command.
|
10331 |
|
|
+ Fix problem with unwanted installation of assert.h on some
|
10332 |
|
|
systems.
|
10333 |
|
|
+ Fix problem with finding the wrong assembler in a single tree
|
10334 |
|
|
build.
|
10335 |
|
|
+ Avoid increasing the known alignment of a register that is
|
10336 |
|
|
already known to be a pointer.
|
10337 |
|
|
* Platform specific bugfixes and improvements
|
10338 |
|
|
+ Codegen bugfix for prologue/epilogue for cpu32 target.
|
10339 |
|
|
+ Fix long long code generation bug for the Coldfire target.
|
10340 |
|
|
+ Fix various aborts in the SH compiler.
|
10341 |
|
|
+ Fix bugs in libgcc support library for the SH.
|
10342 |
|
|
+ Fix alpha ev6 code generation bug.
|
10343 |
|
|
+ Fix problems with EXIT_SUCCESS/EXIT_FAILURE redefinitions on
|
10344 |
|
|
AIX platforms.
|
10345 |
|
|
+ Fix -fpic code generation bug for rs6000/ppc svr4 targets.
|
10346 |
|
|
+ Fix varargs/stdarg code generation bug for rs6000/ppc svr4
|
10347 |
|
|
targets.
|
10348 |
|
|
+ Fix weak symbol handling for rs6000/ppc svr4 targets.
|
10349 |
|
|
+ Fix various problems with 64bit code generation for the
|
10350 |
|
|
rs6000/ppc port.
|
10351 |
|
|
+ Fix codegen bug which caused tetex to be mis-compiled on the
|
10352 |
|
|
x86.
|
10353 |
|
|
+ Fix compiler abort in new cfg code exposed by x86 port.
|
10354 |
|
|
+ Fix out of range array reference in code convert flat
|
10355 |
|
|
registers to the x87 stacked FP register file.
|
10356 |
|
|
+ Fix minor vxworks configuration bug.
|
10357 |
|
|
+ Fix return type of bsearch for SunOS 4.x.
|
10358 |
|
|
* Language & Runtime specific fixes.
|
10359 |
|
|
+ The G++ signature extension has been deprecated. It will be
|
10360 |
|
|
removed in the next major release of G++. Use of signatures
|
10361 |
|
|
will result in a warning from the compiler.
|
10362 |
|
|
+ Several bugs relating to templates and namespaces were fixed.
|
10363 |
|
|
+ A bug that caused crashes when combining templates with -g on
|
10364 |
|
|
DWARF1 platforms was fixed.
|
10365 |
|
|
+ Pointers-to-members, virtual functions, and multiple
|
10366 |
|
|
inheritance should now work together correctly.
|
10367 |
|
|
+ Some code-generation bugs relating to function try blocks were
|
10368 |
|
|
fixed.
|
10369 |
|
|
+ G++ is a little bit more lenient with certain archaic
|
10370 |
|
|
constructs than in GCC 2.95.
|
10371 |
|
|
+ Fix to prevent shared library version #s from bring truncated
|
10372 |
|
|
to 1 digit
|
10373 |
|
|
+ Fix missing std:: in the libstdc++ library.
|
10374 |
|
|
+ Fix stream locking problems in libio.
|
10375 |
|
|
+ Fix problem in java compiler driver.
|
10376 |
|
|
|
10377 |
|
|
Additional Changes in GCC 2.95.2
|
10378 |
|
|
|
10379 |
|
|
The -fstrict-aliasing is not enabled by default for GCC 2.95.2. While
|
10380 |
|
|
the optimizations performed by -fstrict-aliasing are valid according to
|
10381 |
|
|
the C and C++ standards, the optimization have caused some problems,
|
10382 |
|
|
particularly with old non-conforming code.
|
10383 |
|
|
|
10384 |
|
|
The GCC developers are experimenting with ways to warn users about code
|
10385 |
|
|
which violates the C/C++ standards, but those warnings are not ready
|
10386 |
|
|
for widespread use at this time. Rather than wait for those warnings
|
10387 |
|
|
the GCC developers have chosen to disable -fstrict-aliasing by default
|
10388 |
|
|
for the GCC 2.95.2 release.
|
10389 |
|
|
|
10390 |
|
|
We strongly encourage developers to find and fix code which violates
|
10391 |
|
|
the C/C++ standards as -fstrict-aliasing may be enabled by default in
|
10392 |
|
|
future releases. Use the option -fstrict-aliasing to re-enable these
|
10393 |
|
|
optimizations.
|
10394 |
|
|
* Generic bugfixes and improvements
|
10395 |
|
|
+ Fix incorrectly optimized memory reference in global common
|
10396 |
|
|
subexpression elimination (GCSE) optimization pass.
|
10397 |
|
|
+ Fix code generation bug in regmove.c in which it could
|
10398 |
|
|
incorrectly change a "const" value.
|
10399 |
|
|
+ Fix bug in optimization of conditionals involving volatile
|
10400 |
|
|
memory references.
|
10401 |
|
|
+ Avoid over-allocation of stack space for some procedures.
|
10402 |
|
|
+ Fixed bug in the compiler which caused incorrect optimization
|
10403 |
|
|
of an obscure series of bit manipulations, shifts and
|
10404 |
|
|
arithmetic.
|
10405 |
|
|
+ Fixed register allocator bug which caused teTeX to be
|
10406 |
|
|
mis-compiled on SPARC targets.
|
10407 |
|
|
+ Avoid incorrect optimization of degenerate case statements for
|
10408 |
|
|
certain targets such as the ARM.
|
10409 |
|
|
+ Fix out of range memory reference in the jump optimizer.
|
10410 |
|
|
+ Avoid dereferencing null pointer in fix-header.
|
10411 |
|
|
+ Fix test for GCC specific features so that it is possible to
|
10412 |
|
|
bootstrap with gcc-2.6.2 and older versions of GCC.
|
10413 |
|
|
+ Fix typo in scheduler which could potentially cause out of
|
10414 |
|
|
range memory accesses.
|
10415 |
|
|
+ Avoid incorrect loop reversal which caused incorrect code for
|
10416 |
|
|
certain loops on PowerPC targets.
|
10417 |
|
|
+ Avoid incorrect optimization of switch statements on certain
|
10418 |
|
|
targets (for example the ARM).
|
10419 |
|
|
* Platform specific bugfixes and improvements
|
10420 |
|
|
+ Work around bug in Sun V5.0 compilers which caused bootstrap
|
10421 |
|
|
comparison failures on SPARC targets.
|
10422 |
|
|
+ Fix SPARC backend bug which caused aborts in final.c.
|
10423 |
|
|
+ Fix sparc-hal-solaris2* configuration fragments.
|
10424 |
|
|
+ Fix bug in sparc block profiling.
|
10425 |
|
|
+ Fix obscure code generation bug for the PARISC targets.
|
10426 |
|
|
+ Define __STDC_EXT__ for HPUX configurations.
|
10427 |
|
|
+ Various POWERPC64 code generation bugfixes.
|
10428 |
|
|
+ Fix abort for PPC targets using ELF (ex GNU/Linux).
|
10429 |
|
|
+ Fix collect2 problems for AIX targets.
|
10430 |
|
|
+ Correct handling of .file directive for PPC targets.
|
10431 |
|
|
+ Fix bug in fix_trunc x86 patterns.
|
10432 |
|
|
+ Fix x86 port to correctly pop the FP stack for functions that
|
10433 |
|
|
return structures in memory.
|
10434 |
|
|
+ Fix minor bug in strlen x86 pattern.
|
10435 |
|
|
+ Use stabs debugging instead of dwarf1 for x86-solaris targets.
|
10436 |
|
|
+ Fix template repository code to handle leading underscore in
|
10437 |
|
|
mangled names.
|
10438 |
|
|
+ Fix weak/weak alias support for OpenBSD.
|
10439 |
|
|
+ GNU/Linux for the ARM has C++ compatible include files.
|
10440 |
|
|
* Language & Runtime specific fixes.
|
10441 |
|
|
+ Fix handling of constructor attribute in the C front-end which
|
10442 |
|
|
caused problems building the Chill runtime library on some
|
10443 |
|
|
targets.
|
10444 |
|
|
+ Fix minor problem merging type qualifiers in the C front-end.
|
10445 |
|
|
+ Fix aliasing bug for pointers and references (C/C++).
|
10446 |
|
|
+ Fix incorrect "non-constant initializer bug" when -traditional
|
10447 |
|
|
or -fwritable-strings is enabled.
|
10448 |
|
|
+ Fix build error for Chill front-end on SunOS.
|
10449 |
|
|
+ Do not complain about duplicate instantiations when using
|
10450 |
|
|
-frepo (C++).
|
10451 |
|
|
+ Fix array bounds handling in C++ front-end which caused
|
10452 |
|
|
problems with dwarf debugging information in some
|
10453 |
|
|
circumstances.
|
10454 |
|
|
+ Fix minor namespace problem.
|
10455 |
|
|
+ Fix problem linking java programs.
|
10456 |
|
|
|
10457 |
|
|
Additional Changes in GCC 2.95.3
|
10458 |
|
|
|
10459 |
|
|
* Generic bugfixes and improvements
|
10460 |
|
|
+ Fix numerous problems that caused incorrect optimization in
|
10461 |
|
|
the register reloading code.
|
10462 |
|
|
+ Fix numerous problems that caused incorrect optimization in
|
10463 |
|
|
the loop optimizer.
|
10464 |
|
|
+ Fix aborts in the functions build_insn_chain and scan_loops
|
10465 |
|
|
under some circumstances.
|
10466 |
|
|
+ Fix an alias analysis bug.
|
10467 |
|
|
+ Fix an infinite compilation bug in the combiner.
|
10468 |
|
|
+ A few problems with complex number support have been fixed.
|
10469 |
|
|
+ It is no longer possible for gcc to act as a fork bomb when
|
10470 |
|
|
installed incorrectly.
|
10471 |
|
|
+ The -fpack-struct option should be recognized now.
|
10472 |
|
|
+ Fixed a bug that caused incorrect code to be generated due to
|
10473 |
|
|
a lost stack adjustment.
|
10474 |
|
|
* Platform specific bugfixes and improvements
|
10475 |
|
|
+ Support building ARM toolchains hosted on Windows.
|
10476 |
|
|
+ Fix attribute calculations in ARM toolchains.
|
10477 |
|
|
+ arm-linux support has been improved.
|
10478 |
|
|
+ Fix a PIC failure on sparc targets.
|
10479 |
|
|
+ On ix86 targets, the regparm attribute should now work
|
10480 |
|
|
reliably.
|
10481 |
|
|
+ Several updates for the h8300 port.
|
10482 |
|
|
+ Fix problem building libio with glibc 2.2.
|
10483 |
|
|
|
10484 |
|
|
Please send FSF & GNU inquiries & questions to [17]gnu@gnu.org. There
|
10485 |
|
|
are also [18]other ways to contact the FSF.
|
10486 |
|
|
|
10487 |
|
|
These pages are [19]maintained by the GCC team.
|
10488 |
|
|
|
10489 |
|
|
|
10490 |
|
|
For questions related to the use of GCC, please consult these web
|
10491 |
|
|
pages and the [20]GCC manuals. If that fails, the
|
10492 |
|
|
[21]gcc-help@gcc.gnu.org mailing list might help.
|
10493 |
|
|
Please send comments on these web pages and the development of GCC to
|
10494 |
|
|
our developer mailing list at [22]gcc@gnu.org or [23]gcc@gcc.gnu.org.
|
10495 |
|
|
All of our lists have [24]public archives.
|
10496 |
|
|
|
10497 |
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth
|
10498 |
|
|
Floor, Boston, MA 02110, USA.
|
10499 |
|
|
|
10500 |
|
|
Verbatim copying and distribution of this entire article is permitted
|
10501 |
|
|
in any medium, provided this notice is preserved.
|
10502 |
|
|
Last modified 2010-07-01 [25]Valid XHTML 1.0
|
10503 |
|
|
|
10504 |
|
|
References
|
10505 |
|
|
|
10506 |
|
|
1. http://gcc.gnu.org/news/spill.html
|
10507 |
|
|
2. http://gcc.gnu.org/news/lcm.html
|
10508 |
|
|
3. http://gcc.gnu.org/news/cprop.html
|
10509 |
|
|
4. http://gcc.gnu.org/news/cfg.html
|
10510 |
|
|
5. http://gcc.gnu.org/news/dse.html
|
10511 |
|
|
6. http://gcc.gnu.org/news/hoist.html
|
10512 |
|
|
7. http://gcc.gnu.org/news/alias.html
|
10513 |
|
|
8. http://gcc.gnu.org/gcc-2.95/c++features.html
|
10514 |
|
|
9. http://gcc.gnu.org/onlinedocs/gcc-3.4.6/g77/News.html
|
10515 |
|
|
10. http://gcc.gnu.org/java/gcj-announce.txt
|
10516 |
|
|
11. http://gcc.gnu.org/news/javaannounce.html
|
10517 |
|
|
12. http://gcc.gnu.org/c99status.html
|
10518 |
|
|
13. http://gcc.gnu.org/news/chill.html
|
10519 |
|
|
14. http://gcc.gnu.org/news/sparc.html
|
10520 |
|
|
15. http://gcc.gnu.org/news/egcs-vcg.html
|
10521 |
|
|
16. http://gcc.gnu.org/egcs-1.0/features-2.8.html
|
10522 |
|
|
17. mailto:gnu@gnu.org
|
10523 |
|
|
18. http://www.gnu.org/home.html#ContactInfo
|
10524 |
|
|
19. http://gcc.gnu.org/about.html
|
10525 |
|
|
20. http://gcc.gnu.org/onlinedocs/
|
10526 |
|
|
21. mailto:gcc-help@gcc.gnu.org
|
10527 |
|
|
22. mailto:gcc@gnu.org
|
10528 |
|
|
23. mailto:gcc@gcc.gnu.org
|
10529 |
|
|
24. http://gcc.gnu.org/lists.html
|
10530 |
|
|
25. http://validator.w3.org/check/referer
|
10531 |
|
|
======================================================================
|
10532 |
|
|
http://gcc.gnu.org/gcc-2.95/caveats.html
|
10533 |
|
|
|
10534 |
|
|
GCC 2.95 Caveats
|
10535 |
|
|
|
10536 |
|
|
* GCC 2.95 will issue an error for invalid asm statements that had
|
10537 |
|
|
been silently accepted by earlier versions of the compiler. This is
|
10538 |
|
|
particularly noticeable when compiling older versions of the Linux
|
10539 |
|
|
kernel (2.0.xx). Please refer to the FAQ (as shipped with GCC 2.95)
|
10540 |
|
|
for more information on this issue.
|
10541 |
|
|
* GCC 2.95 implements type based alias analysis to disambiguate
|
10542 |
|
|
memory references. Some programs, particularly the Linux kernel
|
10543 |
|
|
violate ANSI/ISO aliasing rules and therefore may not operate
|
10544 |
|
|
correctly when compiled with GCC 2.95. Please refer to the FAQ (as
|
10545 |
|
|
shipped with GCC 2.95) for more information on this issue.
|
10546 |
|
|
* GCC 2.95 has a known bug in its handling of complex variables for
|
10547 |
|
|
64bit targets. Instead of silently generating incorrect code, GCC
|
10548 |
|
|
2.95 will issue a fatal error for situations it can not handle.
|
10549 |
|
|
This primarily affects the Fortran community as Fortran makes more
|
10550 |
|
|
use of complex variables than C or C++.
|
10551 |
|
|
* GCC 2.95 has an integrated libstdc++, but does not have an
|
10552 |
|
|
integrated libg++. Furthermore old libg++ releases will not work
|
10553 |
|
|
with GCC 2.95. You can retrieve a recent copy of libg++ from the
|
10554 |
|
|
[1]GCC ftp server.
|
10555 |
|
|
Note most C++ programs only need libstdc++.
|
10556 |
|
|
* Exception handling may not work with shared libraries, particularly
|
10557 |
|
|
on alphas, hppas, rs6000/powerpc and mips based platforms.
|
10558 |
|
|
Exception handling is known to work on x86 GNU/Linux platforms with
|
10559 |
|
|
shared libraries.
|
10560 |
|
|
* In general, GCC 2.95 is more rigorous about rejecting invalid C++
|
10561 |
|
|
code or deprecated C++ constructs than G++ 2.7, G++ 2.8, EGCS 1.0,
|
10562 |
|
|
or EGCS 1.1. As a result it may be necessary to fix C++ code before
|
10563 |
|
|
it will compile with GCC 2.95.
|
10564 |
|
|
* G++ is also converting toward the ISO C++ standard; as a result
|
10565 |
|
|
code which was previously valid (and thus accepted by other
|
10566 |
|
|
compilers and older versions of g++) may no longer be accepted. The
|
10567 |
|
|
flag -fpermissive may allow some non-conforming code to compile
|
10568 |
|
|
with GCC 2.95.
|
10569 |
|
|
* GCC 2.95 compiled C++ code is not binary compatible with EGCS
|
10570 |
|
|
1.1.x, EGCS 1.0.x or GCC 2.8.x.
|
10571 |
|
|
* GCC 2.95 does not have changes from the GCC 2.8 tree that were made
|
10572 |
|
|
between Sept 30, 1998 and April 30, 1999 (the official end of the
|
10573 |
|
|
GCC 2.8 project). Future GCC releases will include all the changes
|
10574 |
|
|
from the defunct GCC 2.8 sources.
|
10575 |
|
|
|
10576 |
|
|
Please send FSF & GNU inquiries & questions to [2]gnu@gnu.org. There
|
10577 |
|
|
are also [3]other ways to contact the FSF.
|
10578 |
|
|
|
10579 |
|
|
These pages are [4]maintained by the GCC team.
|
10580 |
|
|
|
10581 |
|
|
|
10582 |
|
|
For questions related to the use of GCC, please consult these web
|
10583 |
|
|
pages and the [5]GCC manuals. If that fails, the
|
10584 |
|
|
[6]gcc-help@gcc.gnu.org mailing list might help.
|
10585 |
|
|
Please send comments on these web pages and the development of GCC to
|
10586 |
|
|
our developer mailing list at [7]gcc@gnu.org or [8]gcc@gcc.gnu.org.
|
10587 |
|
|
All of our lists have [9]public archives.
|
10588 |
|
|
|
10589 |
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth
|
10590 |
|
|
Floor, Boston, MA 02110, USA.
|
10591 |
|
|
|
10592 |
|
|
Verbatim copying and distribution of this entire article is permitted
|
10593 |
|
|
in any medium, provided this notice is preserved.
|
10594 |
|
|
Last modified 2010-07-01 [10]Valid XHTML 1.0
|
10595 |
|
|
|
10596 |
|
|
References
|
10597 |
|
|
|
10598 |
|
|
1. ftp://gcc.gnu.org/pub/gcc/infrastructure/libg++-2.8.1.3.tar.gz
|
10599 |
|
|
2. mailto:gnu@gnu.org
|
10600 |
|
|
3. http://www.gnu.org/home.html#ContactInfo
|
10601 |
|
|
4. http://gcc.gnu.org/about.html
|
10602 |
|
|
5. http://gcc.gnu.org/onlinedocs/
|
10603 |
|
|
6. mailto:gcc-help@gcc.gnu.org
|
10604 |
|
|
7. mailto:gcc@gnu.org
|
10605 |
|
|
8. mailto:gcc@gcc.gnu.org
|
10606 |
|
|
9. http://gcc.gnu.org/lists.html
|
10607 |
|
|
10. http://validator.w3.org/check/referer
|
10608 |
|
|
======================================================================
|
10609 |
|
|
http://gcc.gnu.org/egcs-1.1/index.html
|
10610 |
|
|
|
10611 |
|
|
EGCS 1.1
|
10612 |
|
|
|
10613 |
|
|
September 3, 1998: We are pleased to announce the release of EGCS 1.1.
|
10614 |
|
|
December 1, 1998: We are pleased to announce the release of EGCS 1.1.1.
|
10615 |
|
|
March 15, 1999: We are pleased to announce the release of EGCS 1.1.2.
|
10616 |
|
|
|
10617 |
|
|
EGCS is a free software project to further the development of the GNU
|
10618 |
|
|
compilers using an open development environment.
|
10619 |
|
|
|
10620 |
|
|
EGCS 1.1 is a major new release of the EGCS compiler system. It has
|
10621 |
|
|
been [1]extensively tested and is believed to be stable and suitable
|
10622 |
|
|
for widespread use.
|
10623 |
|
|
|
10624 |
|
|
EGCS 1.1 is based on an June 6, 1998 snapshot of the GCC 2.8
|
10625 |
|
|
development sources; it contains all of the new features found in GCC
|
10626 |
|
|
2.8.1 as well as all new development from GCC up to June 6, 1998.
|
10627 |
|
|
|
10628 |
|
|
EGCS 1.1 also contains many improvements and features not found in GCC
|
10629 |
|
|
or in older versions of EGCS:
|
10630 |
|
|
* Global common subexpression elimination and global constant/copy
|
10631 |
|
|
propagation (aka [2]gcse)
|
10632 |
|
|
* Ongoing improvements to the [3]alias analysis support to allow for
|
10633 |
|
|
better optimizations throughout the compiler.
|
10634 |
|
|
* Vastly improved [4]C++ compiler and integrated C++ runtime
|
10635 |
|
|
libraries.
|
10636 |
|
|
* Fixes for the /tmp symlink race security problems.
|
10637 |
|
|
* New targets including mips16, arm-thumb and 64 bit PowerPC.
|
10638 |
|
|
* Improvements to GNU Fortran (g77) compiler and runtime library made
|
10639 |
|
|
since g77 version 0.5.23.
|
10640 |
|
|
|
10641 |
|
|
See the [5]new features page for a more complete list of new features
|
10642 |
|
|
found in EGCS 1.1 releases.
|
10643 |
|
|
|
10644 |
|
|
EGCS 1.1.1 is a minor update to fix several serious problems in EGCS
|
10645 |
|
|
1.1:
|
10646 |
|
|
* General improvements and fixes
|
10647 |
|
|
+ Avoid some stack overflows when compiling large functions.
|
10648 |
|
|
+ Avoid incorrect loop invariant code motions.
|
10649 |
|
|
+ Fix some core dumps on Linux kernel code.
|
10650 |
|
|
+ Bring back the imake -Di386 and friends fix from EGCS 1.0.2.
|
10651 |
|
|
+ Fix code generation problem in gcse.
|
10652 |
|
|
+ Various documentation related fixes.
|
10653 |
|
|
* g++/libstdc++ improvements and fixes
|
10654 |
|
|
+ MT safe EH fix for setjmp/longjmp based exception handling.
|
10655 |
|
|
+ Fix a few bad interactions between optimization and exception
|
10656 |
|
|
handling.
|
10657 |
|
|
+ Fixes for demangling of template names starting with "__".
|
10658 |
|
|
+ Fix a bug that would fail to run destructors in some cases
|
10659 |
|
|
with -O2.
|
10660 |
|
|
+ Fix 'new' of classes with virtual bases.
|
10661 |
|
|
+ Fix crash building Qt on the Alpha.
|
10662 |
|
|
+ Fix failure compiling WIFEXITED macro on GNU/Linux.
|
10663 |
|
|
+ Fix some -frepo failures.
|
10664 |
|
|
* g77 and libf2c improvements and fixes
|
10665 |
|
|
+ Various documentation fixes.
|
10666 |
|
|
+ Avoid compiler crash on RAND intrinsic.
|
10667 |
|
|
+ Fix minor bugs in makefiles exposed by BSD make programs.
|
10668 |
|
|
+ Define _XOPEN_SOURCE for libI77 build to avoid potential
|
10669 |
|
|
problems on some 64-bit systems.
|
10670 |
|
|
+ Fix problem with implicit endfile on rewind.
|
10671 |
|
|
+ Fix spurious recursive I/O errors.
|
10672 |
|
|
* platform specific improvements and fixes
|
10673 |
|
|
+ Match all versions of UnixWare7.
|
10674 |
|
|
+ Do not assume x86 SVR4 or UnixWare targets can handle stabs.
|
10675 |
|
|
+ Fix PPC/RS6000 LEGITIMIZE_ADDRESS macro and bug in conversion
|
10676 |
|
|
from unsigned ints to double precision floats.
|
10677 |
|
|
+ Fix ARM ABI issue with NetBSD.
|
10678 |
|
|
+ Fix a few arm code generation bugs.
|
10679 |
|
|
+ Fixincludes will fix additional broken SCO OpenServer header
|
10680 |
|
|
files.
|
10681 |
|
|
+ Fix a m68k backend bug which caused invalid offsets in reg+d
|
10682 |
|
|
addresses.
|
10683 |
|
|
+ Fix problems with 64bit AIX 4.3 support.
|
10684 |
|
|
+ Fix handling of long longs for varargs/stdarg functions on the
|
10685 |
|
|
ppc.
|
10686 |
|
|
+ Minor fixes to CPP predefines for Windows.
|
10687 |
|
|
+ Fix code generation problems with gpr<->fpr copies for 64bit
|
10688 |
|
|
ppc.
|
10689 |
|
|
+ Fix a few coldfire code generation bugs.
|
10690 |
|
|
+ Fix some more header file problems on SunOS 4.x.
|
10691 |
|
|
+ Fix assert.h handling for RTEMS.
|
10692 |
|
|
+ Fix Windows handling of TREE_SYMBOL_REFERENCED.
|
10693 |
|
|
+ Fix x86 compiler abort in reg-stack pass.
|
10694 |
|
|
+ Fix cygwin/windows problem with section attributes.
|
10695 |
|
|
+ Fix Alpha code generation problem exposed by SMP Linux
|
10696 |
|
|
kernels.
|
10697 |
|
|
+ Fix typo in m68k 32->64bit integer conversion.
|
10698 |
|
|
+ Make sure target libraries build with -fPIC for PPC & Alpha
|
10699 |
|
|
targets.
|
10700 |
|
|
|
10701 |
|
|
EGCS 1.1.2 is a minor update to fix several serious problems in EGCS
|
10702 |
|
|
1.1.1:
|
10703 |
|
|
* General improvements and fixes
|
10704 |
|
|
+ Fix bug in loop optimizer which caused the SPARC (and
|
10705 |
|
|
potentially other) ports to segfault.
|
10706 |
|
|
+ Fix infinite recursion in alias analysis and combiner code.
|
10707 |
|
|
+ Fix bug in regclass preferencing.
|
10708 |
|
|
+ Fix incorrect loop reversal which caused incorrect code to be
|
10709 |
|
|
generated for several targets.
|
10710 |
|
|
+ Fix return value for builtin memcpy.
|
10711 |
|
|
+ Reduce compile time for certain loops which exposed quadratic
|
10712 |
|
|
behavior in the loop optimizer.
|
10713 |
|
|
+ Fix bug which caused volatile memory to be written multiple
|
10714 |
|
|
times when only one write was needed/desired.
|
10715 |
|
|
+ Fix compiler abort in caller-save.c
|
10716 |
|
|
+ Fix combiner bug which caused incorrect code generation for
|
10717 |
|
|
certain division by constant operations.
|
10718 |
|
|
+ Fix incorrect code generation due to a bug in range check
|
10719 |
|
|
optimizations.
|
10720 |
|
|
+ Fix incorrect code generation due to mis-handling of clobbered
|
10721 |
|
|
values in CSE.
|
10722 |
|
|
+ Fix compiler abort/segfault due to incorrect register
|
10723 |
|
|
splitting when unrolling loops.
|
10724 |
|
|
+ Fix code generation involving autoincremented addresses with
|
10725 |
|
|
ternary operators.
|
10726 |
|
|
+ Work around bug in the scheduler which caused qt to be
|
10727 |
|
|
mis-compiled on some platforms.
|
10728 |
|
|
+ Fix code generation problems with -fshort-enums.
|
10729 |
|
|
+ Tighten security for temporary files.
|
10730 |
|
|
+ Improve compile time for codes which make heavy use of
|
10731 |
|
|
overloaded functions.
|
10732 |
|
|
+ Fix multiply defined constructor/destructor symbol problems.
|
10733 |
|
|
+ Avoid setting bogus RPATH environment variable during
|
10734 |
|
|
bootstrap.
|
10735 |
|
|
+ Avoid GNU-make dependencies in the texinfo subdir.
|
10736 |
|
|
+ Install CPP wrapper script in $(prefix)/bin if --enable-cpp.
|
10737 |
|
|
--enable-cpp= can be used to specify an additional
|
10738 |
|
|
install directory for the cpp wrapper script.
|
10739 |
|
|
+ Fix CSE bug which caused incorrect label-label refs to appear
|
10740 |
|
|
on some platforms.
|
10741 |
|
|
+ Avoid linking in EH routines from libgcc if they are not
|
10742 |
|
|
needed.
|
10743 |
|
|
+ Avoid obscure bug in aliasing code.
|
10744 |
|
|
+ Fix bug in weak symbol handling.
|
10745 |
|
|
* Platform-specific improvements and fixes
|
10746 |
|
|
+ Fix detection of PPro/PII on Unixware 7.
|
10747 |
|
|
+ Fix compiler segfault when building spec99 and other programs
|
10748 |
|
|
for SPARC targets.
|
10749 |
|
|
+ Fix code-generation bugs for integer and floating point
|
10750 |
|
|
conditional move instructions on the PPro/PII.
|
10751 |
|
|
+ Use fixincludes to fix byteorder problems on i?86-*-sysv.
|
10752 |
|
|
+ Fix build failure for the arc port.
|
10753 |
|
|
+ Fix floating point format configuration for i?86-gnu port.
|
10754 |
|
|
+ Fix problems with hppa1.0-hp-hpux10.20 configuration when
|
10755 |
|
|
threads are enabled.
|
10756 |
|
|
+ Fix coldfire code generation bugs.
|
10757 |
|
|
+ Fix "unrecognized insn" problems for Alpha and PPC ports.
|
10758 |
|
|
+ Fix h8/300 code generation problem with floating point values
|
10759 |
|
|
in memory.
|
10760 |
|
|
+ Fix unrecognized insn problems for the m68k port.
|
10761 |
|
|
+ Fix namespace-pollution problem for the x86 port.
|
10762 |
|
|
+ Fix problems with old assembler on x86 NeXT systems.
|
10763 |
|
|
+ Fix PIC code-generation problems for the SPARC port.
|
10764 |
|
|
+ Fix minor bug with LONG_CALLS in PowerPC SVR4 support.
|
10765 |
|
|
+ Fix minor ISO namespace violation in Alpha varargs/stdarg
|
10766 |
|
|
support.
|
10767 |
|
|
+ Fix incorrect "braf" instruction usage for the SH port.
|
10768 |
|
|
+ Fix minor bug in va-sh which prevented its use with -ansi.
|
10769 |
|
|
+ Fix problems recognizing and supporting FreeBSD.
|
10770 |
|
|
+ Handle OpenBSD systems correctly.
|
10771 |
|
|
+ Minor fixincludes fix for Digital UNIX 4.0B.
|
10772 |
|
|
+ Fix problems with ctors/dtors in SCO shared libraries.
|
10773 |
|
|
+ Abort instead of generating incorrect code for PPro/PII
|
10774 |
|
|
floating point conditional moves.
|
10775 |
|
|
+ Avoid multiply defined symbols on Linux/GNU systems using
|
10776 |
|
|
libc-5.4.xx.
|
10777 |
|
|
+ Fix abort in alpha compiler.
|
10778 |
|
|
* Fortran-specific fixes
|
10779 |
|
|
+ Fix the IDate intrinsic (VXT) (in libg2c) so the returned year
|
10780 |
|
|
is in the documented, non-Y2K-compliant range of 0-99, instead
|
10781 |
|
|
of being returned as 100 in the year 2000.
|
10782 |
|
|
+ Fix the `Date_and_Time' intrinsic (in libg2c) to return the
|
10783 |
|
|
milliseconds value properly in Values(8).
|
10784 |
|
|
+ Fix the `LStat' intrinsic (in libg2c) to return device-ID
|
10785 |
|
|
information properly in SArray(7).
|
10786 |
|
|
|
10787 |
|
|
Each release includes installation instructions in both HTML and
|
10788 |
|
|
plaintext forms (see the INSTALL directory in the toplevel directory of
|
10789 |
|
|
the distribution). However, we also keep the most up to date
|
10790 |
|
|
[6]installation instructions and [7]build/test status on our web page.
|
10791 |
|
|
We will update those pages as new information becomes available.
|
10792 |
|
|
|
10793 |
|
|
The EGCS project would like to thank the numerous people that have
|
10794 |
|
|
contributed new features, test results, bugfixes, etc. This [8]amazing
|
10795 |
|
|
group of volunteers is what makes EGCS successful.
|
10796 |
|
|
|
10797 |
|
|
And finally, we can't in good conscience fail to mention some
|
10798 |
|
|
[9]caveats to using EGCS 1.1.
|
10799 |
|
|
|
10800 |
|
|
Download EGCS from egcs.cygnus.com (USA California).
|
10801 |
|
|
|
10802 |
|
|
The EGCS 1.1 release is also available on many mirror sites.
|
10803 |
|
|
[10]Goto mirror list to find a closer site.
|
10804 |
|
|
|
10805 |
|
|
Please send FSF & GNU inquiries & questions to [11]gnu@gnu.org. There
|
10806 |
|
|
are also [12]other ways to contact the FSF.
|
10807 |
|
|
|
10808 |
|
|
These pages are [13]maintained by the GCC team.
|
10809 |
|
|
|
10810 |
|
|
|
10811 |
|
|
For questions related to the use of GCC, please consult these web
|
10812 |
|
|
pages and the [14]GCC manuals. If that fails, the
|
10813 |
|
|
[15]gcc-help@gcc.gnu.org mailing list might help.
|
10814 |
|
|
Please send comments on these web pages and the development of GCC to
|
10815 |
|
|
our developer mailing list at [16]gcc@gnu.org or [17]gcc@gcc.gnu.org.
|
10816 |
|
|
All of our lists have [18]public archives.
|
10817 |
|
|
|
10818 |
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth
|
10819 |
|
|
Floor, Boston, MA 02110, USA.
|
10820 |
|
|
|
10821 |
|
|
Verbatim copying and distribution of this entire article is permitted
|
10822 |
|
|
in any medium, provided this notice is preserved.
|
10823 |
|
|
Last modified 2010-07-01 [19]Valid XHTML 1.0
|
10824 |
|
|
|
10825 |
|
|
References
|
10826 |
|
|
|
10827 |
|
|
1. http://gcc.gnu.org/egcs-1.1/egcs-1.1-test.html
|
10828 |
|
|
2. http://gcc.gnu.org/news/gcse.html
|
10829 |
|
|
3. http://gcc.gnu.org/news/alias.html
|
10830 |
|
|
4. http://gcc.gnu.org/egcs-1.1/c++features.html
|
10831 |
|
|
5. http://gcc.gnu.org/egcs-1.1/features.html
|
10832 |
|
|
6. http://gcc.gnu.org/install/
|
10833 |
|
|
7. http://gcc.gnu.org/egcs-1.1/buildstat.html
|
10834 |
|
|
8. http://gcc.gnu.org/onlinedocs/gcc/Contributors.html
|
10835 |
|
|
9. http://gcc.gnu.org/egcs-1.1/caveats.html
|
10836 |
|
|
10. http://gcc.gnu.org/mirrors.html
|
10837 |
|
|
11. mailto:gnu@gnu.org
|
10838 |
|
|
12. http://www.gnu.org/home.html#ContactInfo
|
10839 |
|
|
13. http://gcc.gnu.org/about.html
|
10840 |
|
|
14. http://gcc.gnu.org/onlinedocs/
|
10841 |
|
|
15. mailto:gcc-help@gcc.gnu.org
|
10842 |
|
|
16. mailto:gcc@gnu.org
|
10843 |
|
|
17. mailto:gcc@gcc.gnu.org
|
10844 |
|
|
18. http://gcc.gnu.org/lists.html
|
10845 |
|
|
19. http://validator.w3.org/check/referer
|
10846 |
|
|
======================================================================
|
10847 |
|
|
http://gcc.gnu.org/egcs-1.1/features.html
|
10848 |
|
|
|
10849 |
|
|
EGCS 1.1 new features
|
10850 |
|
|
|
10851 |
|
|
* Integrated GNU Fortran (g77) compiler and runtime library with
|
10852 |
|
|
improvements, based on g77 version 0.5.23.
|
10853 |
|
|
* Vast improvements in the C++ compiler; so many they have [1]page of
|
10854 |
|
|
their own!
|
10855 |
|
|
* Compiler implements [2]global common subexpression elimination and
|
10856 |
|
|
global copy/constant propagation.
|
10857 |
|
|
* More major improvements in the [3]alias analysis code.
|
10858 |
|
|
* More major improvements in the exception handling code to improve
|
10859 |
|
|
performance, lower static overhead and provide the infrastructure
|
10860 |
|
|
for future improvements.
|
10861 |
|
|
* The infamous /tmp symlink race security problems have been fixed.
|
10862 |
|
|
* The regmove optimization pass has been nearly completely rewritten
|
10863 |
|
|
to improve performance of generated code.
|
10864 |
|
|
* The compiler now recomputes register usage information before local
|
10865 |
|
|
register allocation. By providing more accurate information to the
|
10866 |
|
|
priority based allocator, we get better register allocation.
|
10867 |
|
|
* The register reloading phase of the compiler optimizes spill code
|
10868 |
|
|
much better than in previous releases.
|
10869 |
|
|
* Some bad interactions between the register allocator and
|
10870 |
|
|
instruction scheduler have been fixed, resulting in much better
|
10871 |
|
|
code for certain programs. Additionally, we have tuned the
|
10872 |
|
|
scheduler in various ways to improve performance of generated code
|
10873 |
|
|
for some architectures.
|
10874 |
|
|
* The compiler's branch shortening algorithms have been significantly
|
10875 |
|
|
improved to work better on targets which align jump targets.
|
10876 |
|
|
* The compiler now supports -Os to prefer optimizing for code space
|
10877 |
|
|
over optimizing for code speed.
|
10878 |
|
|
* The compiler will now totally eliminate library calls which compute
|
10879 |
|
|
constant values. This primarily helps targets with no integer
|
10880 |
|
|
div/mul support and targets without floating point support.
|
10881 |
|
|
* The compiler now supports an extensive "--help" option.
|
10882 |
|
|
* cpplib has been greatly improved and may be suitable for limited
|
10883 |
|
|
use.
|
10884 |
|
|
* Memory footprint for the compiler has been significantly reduced
|
10885 |
|
|
for some pathological cases.
|
10886 |
|
|
* The time to build EGCS has been improved for certain targets
|
10887 |
|
|
(particularly the alpha and mips platforms).
|
10888 |
|
|
* Many infrastructure improvements throughout the compiler, plus the
|
10889 |
|
|
usual mountain of bugfixes and minor improvements.
|
10890 |
|
|
* Target dependent improvements:
|
10891 |
|
|
+ SPARC port now includes V8 plus and V9 support as well as
|
10892 |
|
|
performance tuning for Ultra class machines. The SPARC port
|
10893 |
|
|
now uses the Haifa scheduler.
|
10894 |
|
|
+ Alpha port has been tuned for the EV6 processor and has an
|
10895 |
|
|
optimized expansion of memcpy/bzero. The Alpha port now uses
|
10896 |
|
|
the Haifa scheduler.
|
10897 |
|
|
+ RS6000/PowerPC: support for the Power64 architecture and AIX
|
10898 |
|
|
4.3. The RS6000/PowerPC port now uses the Haifa scheduler.
|
10899 |
|
|
+ x86: Alignment of static store data and jump targets is per
|
10900 |
|
|
Intel recommendations now. Various improvements throughout the
|
10901 |
|
|
x86 port to improve performance on Pentium processors
|
10902 |
|
|
(including improved epilogue sequences for Pentium chips and
|
10903 |
|
|
backend improvements which should help register allocation on
|
10904 |
|
|
all x86 variants. Conditional move support has been fixed and
|
10905 |
|
|
enabled for PPro processors. The x86 port also better supports
|
10906 |
|
|
64bit operations now. Unixware 7, a System V Release 5 target,
|
10907 |
|
|
is now supported and SCO OpenServer targets can support GAS.
|
10908 |
|
|
+ MIPS has improved multiply/multiply-add support and now
|
10909 |
|
|
includes mips16 ISA support.
|
10910 |
|
|
+ M68k has many micro-optimizations and Coldfire fixes.
|
10911 |
|
|
* Core compiler is based on the GCC development tree from June 9,
|
10912 |
|
|
1998, so we have all of the [4]features found in GCC 2.8.
|
10913 |
|
|
|
10914 |
|
|
Please send FSF & GNU inquiries & questions to [5]gnu@gnu.org. There
|
10915 |
|
|
are also [6]other ways to contact the FSF.
|
10916 |
|
|
|
10917 |
|
|
These pages are [7]maintained by the GCC team.
|
10918 |
|
|
|
10919 |
|
|
|
10920 |
|
|
For questions related to the use of GCC, please consult these web
|
10921 |
|
|
pages and the [8]GCC manuals. If that fails, the
|
10922 |
|
|
[9]gcc-help@gcc.gnu.org mailing list might help.
|
10923 |
|
|
Please send comments on these web pages and the development of GCC to
|
10924 |
|
|
our developer mailing list at [10]gcc@gnu.org or [11]gcc@gcc.gnu.org.
|
10925 |
|
|
All of our lists have [12]public archives.
|
10926 |
|
|
|
10927 |
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth
|
10928 |
|
|
Floor, Boston, MA 02110, USA.
|
10929 |
|
|
|
10930 |
|
|
Verbatim copying and distribution of this entire article is permitted
|
10931 |
|
|
in any medium, provided this notice is preserved.
|
10932 |
|
|
Last modified 2010-07-01 [13]Valid XHTML 1.0
|
10933 |
|
|
|
10934 |
|
|
References
|
10935 |
|
|
|
10936 |
|
|
1. http://gcc.gnu.org/egcs-1.1/c++features.html
|
10937 |
|
|
2. http://gcc.gnu.org/news/gcse.html
|
10938 |
|
|
3. http://gcc.gnu.org/news/alias.html
|
10939 |
|
|
4. http://gcc.gnu.org/egcs-1.0/features-2.8.html
|
10940 |
|
|
5. mailto:gnu@gnu.org
|
10941 |
|
|
6. http://www.gnu.org/home.html#ContactInfo
|
10942 |
|
|
7. http://gcc.gnu.org/about.html
|
10943 |
|
|
8. http://gcc.gnu.org/onlinedocs/
|
10944 |
|
|
9. mailto:gcc-help@gcc.gnu.org
|
10945 |
|
|
10. mailto:gcc@gnu.org
|
10946 |
|
|
11. mailto:gcc@gcc.gnu.org
|
10947 |
|
|
12. http://gcc.gnu.org/lists.html
|
10948 |
|
|
13. http://validator.w3.org/check/referer
|
10949 |
|
|
======================================================================
|
10950 |
|
|
http://gcc.gnu.org/egcs-1.1/caveats.html
|
10951 |
|
|
|
10952 |
|
|
EGCS 1.1 Caveats
|
10953 |
|
|
|
10954 |
|
|
* EGCS has an integrated libstdc++, but does not have an integrated
|
10955 |
|
|
libg++. Furthermore old libg++ releases will not work with EGCS; HJ
|
10956 |
|
|
Lu has made a libg++-2.8.1.2 snapshot available which may work with
|
10957 |
|
|
EGCS.
|
10958 |
|
|
Note most C++ programs only need libstdc++.
|
10959 |
|
|
* Exception handling may not work with shared libraries, particularly
|
10960 |
|
|
on alphas, hppas, rs6000/powerpc and mips based platforms.
|
10961 |
|
|
Exception handling is known to work on x86-linux platforms with
|
10962 |
|
|
shared libraries.
|
10963 |
|
|
* Some versions of the Linux kernel have bugs which prevent them from
|
10964 |
|
|
being compiled or from running when compiled by EGCS. See the FAQ
|
10965 |
|
|
(as shipped with EGCS 1.1) for additional information.
|
10966 |
|
|
* In general, EGCS is more rigorous about rejecting invalid C++ code
|
10967 |
|
|
or deprecated C++ constructs than g++-2.7, g++-2.8 or EGCS 1.0. As
|
10968 |
|
|
a result it may be necessary to fix C++ code before it will compile
|
10969 |
|
|
with EGCS.
|
10970 |
|
|
* G++ is also converting toward the ISO C++ standard; as a result
|
10971 |
|
|
code which was previously valid (and thus accepted by other
|
10972 |
|
|
compilers and older versions of g++) may no longer be accepted.
|
10973 |
|
|
* EGCS 1.1 compiled C++ code is not binary compatible with EGCS 1.0.x
|
10974 |
|
|
or GCC 2.8.x due to changes necessary to support thread safe
|
10975 |
|
|
exception handling.
|
10976 |
|
|
|
10977 |
|
|
Please send FSF & GNU inquiries & questions to [1]gnu@gnu.org. There
|
10978 |
|
|
are also [2]other ways to contact the FSF.
|
10979 |
|
|
|
10980 |
|
|
These pages are [3]maintained by the GCC team.
|
10981 |
|
|
|
10982 |
|
|
|
10983 |
|
|
For questions related to the use of GCC, please consult these web
|
10984 |
|
|
pages and the [4]GCC manuals. If that fails, the
|
10985 |
|
|
[5]gcc-help@gcc.gnu.org mailing list might help.
|
10986 |
|
|
Please send comments on these web pages and the development of GCC to
|
10987 |
|
|
our developer mailing list at [6]gcc@gnu.org or [7]gcc@gcc.gnu.org.
|
10988 |
|
|
All of our lists have [8]public archives.
|
10989 |
|
|
|
10990 |
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth
|
10991 |
|
|
Floor, Boston, MA 02110, USA.
|
10992 |
|
|
|
10993 |
|
|
Verbatim copying and distribution of this entire article is permitted
|
10994 |
|
|
in any medium, provided this notice is preserved.
|
10995 |
|
|
Last modified 2010-07-01 [9]Valid XHTML 1.0
|
10996 |
|
|
|
10997 |
|
|
References
|
10998 |
|
|
|
10999 |
|
|
1. mailto:gnu@gnu.org
|
11000 |
|
|
2. http://www.gnu.org/home.html#ContactInfo
|
11001 |
|
|
3. http://gcc.gnu.org/about.html
|
11002 |
|
|
4. http://gcc.gnu.org/onlinedocs/
|
11003 |
|
|
5. mailto:gcc-help@gcc.gnu.org
|
11004 |
|
|
6. mailto:gcc@gnu.org
|
11005 |
|
|
7. mailto:gcc@gcc.gnu.org
|
11006 |
|
|
8. http://gcc.gnu.org/lists.html
|
11007 |
|
|
9. http://validator.w3.org/check/referer
|
11008 |
|
|
======================================================================
|
11009 |
|
|
http://gcc.gnu.org/egcs-1.0/index.html
|
11010 |
|
|
|
11011 |
|
|
EGCS 1.0
|
11012 |
|
|
|
11013 |
|
|
December 3, 1997: We are pleased to announce the release of EGCS 1.0.
|
11014 |
|
|
January 6, 1998: We are pleased to announce the release of EGCS 1.0.1.
|
11015 |
|
|
March 16, 1998: We are pleased to announce the release of EGCS 1.0.2.
|
11016 |
|
|
May 15, 1998 We are pleased to announce the release of EGCS 1.0.3.
|
11017 |
|
|
|
11018 |
|
|
EGCS is a collaborative effort involving several groups of hackers
|
11019 |
|
|
using an open development model to accelerate development and testing
|
11020 |
|
|
of GNU compilers and runtime libraries.
|
11021 |
|
|
|
11022 |
|
|
An important goal of EGCS is to allow wide scale testing of
|
11023 |
|
|
experimental features and optimizations; therefore, EGCS contains some
|
11024 |
|
|
features and optimizations which are still under development. However,
|
11025 |
|
|
EGCS has been carefully tested and should be comparable in quality to
|
11026 |
|
|
most GCC releases.
|
11027 |
|
|
|
11028 |
|
|
EGCS 1.0 is based on an August 2, 1997 snapshot of the GCC 2.8
|
11029 |
|
|
development sources; it contains nearly all of the new features found
|
11030 |
|
|
in GCC 2.8.
|
11031 |
|
|
|
11032 |
|
|
EGCS 1.0 also contains many improvements and features not found in GCC
|
11033 |
|
|
2.7 and even the GCC 2.8 series (which was released after the original
|
11034 |
|
|
EGCS 1.0 release).
|
11035 |
|
|
* Integrated C++ runtime libraries, including support for most major
|
11036 |
|
|
GNU/Linux systems!
|
11037 |
|
|
* The integrated libstdc++ library includes a verbatim copy of SGI's
|
11038 |
|
|
STL release.
|
11039 |
|
|
* Integrated GNU Fortran compiler.
|
11040 |
|
|
* New instruction scheduler.
|
11041 |
|
|
* New alias analysis code.
|
11042 |
|
|
|
11043 |
|
|
See the [1]new features page for a more complete list of new features.
|
11044 |
|
|
|
11045 |
|
|
EGCS 1.0.1 is a minor update to the EGCS 1.0 compiler to fix a few
|
11046 |
|
|
critical bugs and add support for Red Hat 5.0 Linux. Changes since the
|
11047 |
|
|
EGCS 1.0 release:
|
11048 |
|
|
* Add support for Red Hat 5.0 Linux and better support for Linux
|
11049 |
|
|
systems using glibc2.
|
11050 |
|
|
Many programs failed to link when compiled with EGCS 1.0 on Red Hat
|
11051 |
|
|
5.0 or on systems with newer versions of glibc2. EGCS 1.0.1 should
|
11052 |
|
|
fix these problems.
|
11053 |
|
|
* Compatibility with both EGCS 1.0 and GCC 2.8 libgcc exception
|
11054 |
|
|
handling interfaces.
|
11055 |
|
|
To avoid future compatibility problems, we strongly urge anyone who
|
11056 |
|
|
is planning on distributing shared libraries that contain C++ code
|
11057 |
|
|
to upgrade to EGCS 1.0.1 first.
|
11058 |
|
|
Soon after EGCS 1.0 was released, the GCC developers made some
|
11059 |
|
|
incompatible changes in libgcc's exception handling interfaces.
|
11060 |
|
|
These changes were needed to solve problems on some platforms. This
|
11061 |
|
|
means that GCC 2.8.0, when released, will not be seamlessly
|
11062 |
|
|
compatible with shared libraries built by EGCS 1.0. The reason is
|
11063 |
|
|
that the libgcc.a in GCC 2.8.0 will not contain a function needed
|
11064 |
|
|
by the old interface.
|
11065 |
|
|
The result of this is that there may be compatibility problems with
|
11066 |
|
|
shared libraries built by EGCS 1.0 when used with GCC 2.8.0.
|
11067 |
|
|
With EGCS 1.0.1, generated code uses the new (GCC 2.8.0) interface,
|
11068 |
|
|
and libgcc.a has the support routines for both the old and the new
|
11069 |
|
|
interfaces (so EGCS 1.0.1 and EGCS 1.0 code can be freely mixed,
|
11070 |
|
|
and EGCS 1.0.1 and GCC 2.8.0 code can be freely mixed).
|
11071 |
|
|
The maintainers of GCC 2.x have decided against including seamless
|
11072 |
|
|
support for the old interface in 2.8.0, since it was never
|
11073 |
|
|
"official", so to avoid future compatibility problems we recommend
|
11074 |
|
|
against distributing any shared libraries built by EGCS 1.0 that
|
11075 |
|
|
contain C++ code (upgrade to 1.0.1 and use that).
|
11076 |
|
|
* Various bugfixes in the x86, hppa, mips, and rs6000/ppc backends.
|
11077 |
|
|
The x86 changes fix code generation errors exposed when building
|
11078 |
|
|
glibc2 and the Linux dynamic linker (ld.so).
|
11079 |
|
|
The hppa change fixes a compiler abort when configured for use with
|
11080 |
|
|
RTEMS.
|
11081 |
|
|
The MIPS changes fix problems with the definition of LONG_MAX on
|
11082 |
|
|
newer systems, allow for command line selection of the target ABI,
|
11083 |
|
|
and fix one code generation problem.
|
11084 |
|
|
The rs6000/ppc change fixes some problems with passing structures
|
11085 |
|
|
to varargs/stdarg functions.
|
11086 |
|
|
* A few machine independent bugfixes, mostly to fix code generation
|
11087 |
|
|
errors when building Linux kernels or glibc.
|
11088 |
|
|
* Fix a few critical exception handling and template bugs in the C++
|
11089 |
|
|
compiler.
|
11090 |
|
|
* Fix Fortran namelist bug on alphas.
|
11091 |
|
|
* Fix build problems on x86-solaris systems.
|
11092 |
|
|
|
11093 |
|
|
EGCS 1.0.2 is a minor update to the EGCS 1.0.1 compiler to fix several
|
11094 |
|
|
serious problems in EGCS 1.0.1.
|
11095 |
|
|
* General improvements and fixes
|
11096 |
|
|
+ Memory consumption significantly reduced, especially for
|
11097 |
|
|
templates and inline functions.
|
11098 |
|
|
+ Fix various problems with glibc2.1.
|
11099 |
|
|
+ Fix loop optimization bug exposed by rs6000/ppc port.
|
11100 |
|
|
+ Fix to avoid potential code generation problems in jump.c.
|
11101 |
|
|
+ Fix some undefined symbol problems in dwarf1 debug support.
|
11102 |
|
|
* g++/libstdc++ improvements and fixes
|
11103 |
|
|
+ libstdc++ in the EGCS release has been updated and should be
|
11104 |
|
|
link compatible with libstdc++-2.8.
|
11105 |
|
|
+ Various fixes in libio/libstdc++ to work better on Linux
|
11106 |
|
|
systems.
|
11107 |
|
|
+ Fix problems with duplicate symbols on systems that do not
|
11108 |
|
|
support weak symbols.
|
11109 |
|
|
+ Memory corruption bug and undefined symbols in bastring have
|
11110 |
|
|
been fixed.
|
11111 |
|
|
+ Various exception handling fixes.
|
11112 |
|
|
+ Fix compiler abort for very long thunk names.
|
11113 |
|
|
* g77 improvements and fixes
|
11114 |
|
|
+ Fix compiler crash for omitted bound in Fortran CASE
|
11115 |
|
|
statement.
|
11116 |
|
|
+ Add missing entries to g77 lang-options.
|
11117 |
|
|
+ Fix problem with -fpedantic in the g77 compiler.
|
11118 |
|
|
+ Fix "backspace" problem with g77 on alphas.
|
11119 |
|
|
+ Fix x86 backend problem with Fortran literals and -fpic.
|
11120 |
|
|
+ Fix some of the problems with negative subscripts for g77 on
|
11121 |
|
|
alphas.
|
11122 |
|
|
+ Fixes for Fortran builds on cygwin32/mingw32.
|
11123 |
|
|
* platform specific improvements and fixes
|
11124 |
|
|
+ Fix long double problems on x86 (exposed by glibc).
|
11125 |
|
|
+ x86 ports define i386 again to keep imake happy.
|
11126 |
|
|
+ Fix exception handling support on NetBSD ports.
|
11127 |
|
|
+ Several changes to collect2 to fix many problems with AIX.
|
11128 |
|
|
+ Define __ELF__ for rs6000/linux.
|
11129 |
|
|
+ Fix -mcall-linux problem on rs6000/linux.
|
11130 |
|
|
+ Fix stdarg/vararg problem for rs6000/linux.
|
11131 |
|
|
+ Allow autoconf to select a proper install problem on AIX 3.1.
|
11132 |
|
|
+ m68k port support includes -mcpu32 option as well as cpu32
|
11133 |
|
|
multilibs.
|
11134 |
|
|
+ Fix stdarg bug for irix6.
|
11135 |
|
|
+ Allow EGCS to build on irix5 without the gnu assembler.
|
11136 |
|
|
+ Fix problem with static linking on sco5.
|
11137 |
|
|
+ Fix bootstrap on sco5 with native compiler.
|
11138 |
|
|
+ Fix for abort building newlib on H8 target.
|
11139 |
|
|
+ Fix fixincludes handling of math.h on SunOS.
|
11140 |
|
|
+ Minor fix for Motorola 3300 m68k systems.
|
11141 |
|
|
|
11142 |
|
|
EGCS 1.0.3 is a minor update to the EGCS 1.0.2 compiler to fix a few
|
11143 |
|
|
problems reported by Red Hat for builds of Red Hat 5.1.
|
11144 |
|
|
* Generic bugfixes:
|
11145 |
|
|
+ Fix a typo in the libio library which resulted in incorrect
|
11146 |
|
|
behavior of istream::get.
|
11147 |
|
|
+ Fix the Fortran negative array index problem.
|
11148 |
|
|
+ Fix a major problem with the ObjC runtime thread support
|
11149 |
|
|
exposed by glibc2.
|
11150 |
|
|
+ Reduce memory consumption of the Haifa scheduler.
|
11151 |
|
|
* Target specific bugfixes:
|
11152 |
|
|
+ Fix one x86 floating point code generation bug exposed by
|
11153 |
|
|
glibc2 builds.
|
11154 |
|
|
+ Fix one x86 internal compiler error exposed by glibc2 builds.
|
11155 |
|
|
+ Fix profiling bugs on the Alpha.
|
11156 |
|
|
+ Fix ImageMagick & emacs 20.2 build problems on the Alpha.
|
11157 |
|
|
+ Fix rs6000/ppc bug when converting values from integer types
|
11158 |
|
|
to floating point types.
|
11159 |
|
|
|
11160 |
|
|
The EGCS 1.0 releases include installation instructions in both HTML
|
11161 |
|
|
and plaintext forms (see the INSTALL directory in the toplevel
|
11162 |
|
|
directory of the distribution). However, we also keep the most up to
|
11163 |
|
|
date [2]installation instructions and [3]build/test status on our web
|
11164 |
|
|
page. We will update those pages as new information becomes available.
|
11165 |
|
|
|
11166 |
|
|
And, we can't in good conscience fail to mention some [4]caveats to
|
11167 |
|
|
using EGCS.
|
11168 |
|
|
|
11169 |
|
|
Update: Big thanks to Stanford for providing a high speed link for
|
11170 |
|
|
downloading EGCS (go.cygnus.com)!
|
11171 |
|
|
|
11172 |
|
|
Download EGCS from ftp.cygnus.com (USA California) or go.cygnus.com
|
11173 |
|
|
(USA California -- High speed link provided by Stanford).
|
11174 |
|
|
|
11175 |
|
|
The EGCS 1.0 release is also available many mirror sites.
|
11176 |
|
|
[5]Goto mirror list to find a closer site
|
11177 |
|
|
|
11178 |
|
|
We'd like to thank the numerous people that have contributed new
|
11179 |
|
|
features, test results, bugfixes, etc. Unfortunately, they're far too
|
11180 |
|
|
numerous to mention by name.
|
11181 |
|
|
|
11182 |
|
|
Please send FSF & GNU inquiries & questions to [6]gnu@gnu.org. There
|
11183 |
|
|
are also [7]other ways to contact the FSF.
|
11184 |
|
|
|
11185 |
|
|
These pages are [8]maintained by the GCC team.
|
11186 |
|
|
|
11187 |
|
|
|
11188 |
|
|
For questions related to the use of GCC, please consult these web
|
11189 |
|
|
pages and the [9]GCC manuals. If that fails, the
|
11190 |
|
|
[10]gcc-help@gcc.gnu.org mailing list might help.
|
11191 |
|
|
Please send comments on these web pages and the development of GCC to
|
11192 |
|
|
our developer mailing list at [11]gcc@gnu.org or [12]gcc@gcc.gnu.org.
|
11193 |
|
|
All of our lists have [13]public archives.
|
11194 |
|
|
|
11195 |
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth
|
11196 |
|
|
Floor, Boston, MA 02110, USA.
|
11197 |
|
|
|
11198 |
|
|
Verbatim copying and distribution of this entire article is permitted
|
11199 |
|
|
in any medium, provided this notice is preserved.
|
11200 |
|
|
Last modified 2010-07-01 [14]Valid XHTML 1.0
|
11201 |
|
|
|
11202 |
|
|
References
|
11203 |
|
|
|
11204 |
|
|
1. http://gcc.gnu.org/egcs-1.0/features.html
|
11205 |
|
|
2. http://gcc.gnu.org/install/
|
11206 |
|
|
3. http://gcc.gnu.org/egcs-1.0/buildstat.html
|
11207 |
|
|
4. http://gcc.gnu.org/egcs-1.0/caveats.html
|
11208 |
|
|
5. http://gcc.gnu.org/mirrors.html
|
11209 |
|
|
6. mailto:gnu@gnu.org
|
11210 |
|
|
7. http://www.gnu.org/home.html#ContactInfo
|
11211 |
|
|
8. http://gcc.gnu.org/about.html
|
11212 |
|
|
9. http://gcc.gnu.org/onlinedocs/
|
11213 |
|
|
10. mailto:gcc-help@gcc.gnu.org
|
11214 |
|
|
11. mailto:gcc@gnu.org
|
11215 |
|
|
12. mailto:gcc@gcc.gnu.org
|
11216 |
|
|
13. http://gcc.gnu.org/lists.html
|
11217 |
|
|
14. http://validator.w3.org/check/referer
|
11218 |
|
|
======================================================================
|
11219 |
|
|
http://gcc.gnu.org/egcs-1.0/features.html
|
11220 |
|
|
|
11221 |
|
|
EGCS 1.0 features
|
11222 |
|
|
|
11223 |
|
|
* Core compiler is based on the gcc2 development tree from Aug 2,
|
11224 |
|
|
1997, so we have most of the [1]features found in GCC 2.8.
|
11225 |
|
|
* Integrated GNU Fortran compiler based on g77-0.5.22-19970929.
|
11226 |
|
|
* Vast improvements in the C++ compiler; so many they have [2]page of
|
11227 |
|
|
their own!
|
11228 |
|
|
* Integrated C++ runtime libraries, including support for most major
|
11229 |
|
|
linux systems!
|
11230 |
|
|
* New instruction scheduler from IBM Haifa which includes support for
|
11231 |
|
|
function wide instruction scheduling as well as superscalar
|
11232 |
|
|
scheduling.
|
11233 |
|
|
* Significantly improved alias analysis code.
|
11234 |
|
|
* Improved register allocation for two address machines.
|
11235 |
|
|
* Significant code generation improvements for Fortran code on
|
11236 |
|
|
Alphas.
|
11237 |
|
|
* Various optimizations from the g77 project as well as improved loop
|
11238 |
|
|
optimizations.
|
11239 |
|
|
* Dwarf2 debug format support for some targets.
|
11240 |
|
|
* egcs libstdc++ includes the SGI STL implementation without changes.
|
11241 |
|
|
* As a result of these and other changes, egcs libstc++ is not binary
|
11242 |
|
|
compatible with previous releases of libstdc++.
|
11243 |
|
|
* Various new ports -- UltraSPARC, Irix6.2 & Irix6.3 support, The SCO
|
11244 |
|
|
Openserver 5 family (5.0.{0,2,4} and Internet FastStart 1.0 and
|
11245 |
|
|
1.1), Support for RTEMS on several embedded targets, Support for
|
11246 |
|
|
arm-linux, Mitsubishi M32R, Hitachi H8/S, Matsushita MN102 and
|
11247 |
|
|
MN103, NEC V850, Sparclet, Solaris & Linux on PowerPCs, etc.
|
11248 |
|
|
* Integrated testsuites for gcc, g++, g77, libstdc++ and libio.
|
11249 |
|
|
* RS6000/PowerPC ports generate code which can run on all
|
11250 |
|
|
RS6000/PowerPC variants by default.
|
11251 |
|
|
* -mcpu= and -march= switches for the x86 port to allow better
|
11252 |
|
|
control over how the x86 port generates code.
|
11253 |
|
|
* Includes the template repository patch (aka repo patch); note the
|
11254 |
|
|
new template code makes repo obsolete for ELF systems using gnu-ld
|
11255 |
|
|
such as Linux.
|
11256 |
|
|
* Plus the usual assortment of bugfixes and improvements.
|
11257 |
|
|
|
11258 |
|
|
Please send FSF & GNU inquiries & questions to [3]gnu@gnu.org. There
|
11259 |
|
|
are also [4]other ways to contact the FSF.
|
11260 |
|
|
|
11261 |
|
|
These pages are [5]maintained by the GCC team.
|
11262 |
|
|
|
11263 |
|
|
|
11264 |
|
|
For questions related to the use of GCC, please consult these web
|
11265 |
|
|
pages and the [6]GCC manuals. If that fails, the
|
11266 |
|
|
[7]gcc-help@gcc.gnu.org mailing list might help.
|
11267 |
|
|
Please send comments on these web pages and the development of GCC to
|
11268 |
|
|
our developer mailing list at [8]gcc@gnu.org or [9]gcc@gcc.gnu.org.
|
11269 |
|
|
All of our lists have [10]public archives.
|
11270 |
|
|
|
11271 |
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth
|
11272 |
|
|
Floor, Boston, MA 02110, USA.
|
11273 |
|
|
|
11274 |
|
|
Verbatim copying and distribution of this entire article is permitted
|
11275 |
|
|
in any medium, provided this notice is preserved.
|
11276 |
|
|
Last modified 2010-07-01 [11]Valid XHTML 1.0
|
11277 |
|
|
|
11278 |
|
|
References
|
11279 |
|
|
|
11280 |
|
|
1. http://gcc.gnu.org/egcs-1.0/features-2.8.html
|
11281 |
|
|
2. http://gcc.gnu.org/egcs-1.0/c++features.html
|
11282 |
|
|
3. mailto:gnu@gnu.org
|
11283 |
|
|
4. http://www.gnu.org/home.html#ContactInfo
|
11284 |
|
|
5. http://gcc.gnu.org/about.html
|
11285 |
|
|
6. http://gcc.gnu.org/onlinedocs/
|
11286 |
|
|
7. mailto:gcc-help@gcc.gnu.org
|
11287 |
|
|
8. mailto:gcc@gnu.org
|
11288 |
|
|
9. mailto:gcc@gcc.gnu.org
|
11289 |
|
|
10. http://gcc.gnu.org/lists.html
|
11290 |
|
|
11. http://validator.w3.org/check/referer
|
11291 |
|
|
======================================================================
|
11292 |
|
|
http://gcc.gnu.org/egcs-1.0/caveats.html
|
11293 |
|
|
|
11294 |
|
|
EGCS 1.0 Caveats
|
11295 |
|
|
|
11296 |
|
|
* EGCS has an integrated libstdc++, but does not have an integrated
|
11297 |
|
|
libg++. Furthermore old libg++ releases will not work with egc; HJ
|
11298 |
|
|
Lu has made a libg++-2.8.1.2 available which may work with EGCS.
|
11299 |
|
|
Note most C++ programs only need libstdc++.
|
11300 |
|
|
* Note that using -pedantic or -Wreturn-type can cause an explosion
|
11301 |
|
|
in the amount of memory needed for template-heavy C++ code, such as
|
11302 |
|
|
code that uses STL. Also note that -Wall includes -Wreturn-type, so
|
11303 |
|
|
if you use -Wall you will need to specify -Wno-return-type to turn
|
11304 |
|
|
it off.
|
11305 |
|
|
* Exception handling may not work with shared libraries, particularly
|
11306 |
|
|
on alphas, hppas, and mips based platforms. Exception handling is
|
11307 |
|
|
known to work on x86-linux platforms with shared libraries.
|
11308 |
|
|
* Some versions of the Linux kernel have bugs which prevent them from
|
11309 |
|
|
being compiled or from running when compiled by EGCS. See the FAQ
|
11310 |
|
|
(as shipped with EGCS 1.0) for additional information.
|
11311 |
|
|
* In general, EGCS is more rigorous about rejecting invalid C++ code
|
11312 |
|
|
or deprecated C++ constructs than G++ 2.7. As a result it may be
|
11313 |
|
|
necessary to fix C++ code before it will compile with EGCS.
|
11314 |
|
|
* G++ is also aggressively tracking the C++ standard; as a result
|
11315 |
|
|
code which was previously valid (and thus accepted by other
|
11316 |
|
|
compilers and older versions of G++) may no longer be accepted.
|
11317 |
|
|
* EGCS 1.0 may not work with Red Hat Linux 5.0 on all targets. EGCS
|
11318 |
|
|
1.0.x and later releases should work with Red Hat Linux 5.0.
|
11319 |
|
|
|
11320 |
|
|
Please send FSF & GNU inquiries & questions to [1]gnu@gnu.org. There
|
11321 |
|
|
are also [2]other ways to contact the FSF.
|
11322 |
|
|
|
11323 |
|
|
These pages are [3]maintained by the GCC team.
|
11324 |
|
|
|
11325 |
|
|
|
11326 |
|
|
For questions related to the use of GCC, please consult these web
|
11327 |
|
|
pages and the [4]GCC manuals. If that fails, the
|
11328 |
|
|
[5]gcc-help@gcc.gnu.org mailing list might help.
|
11329 |
|
|
Please send comments on these web pages and the development of GCC to
|
11330 |
|
|
our developer mailing list at [6]gcc@gnu.org or [7]gcc@gcc.gnu.org.
|
11331 |
|
|
All of our lists have [8]public archives.
|
11332 |
|
|
|
11333 |
|
|
Copyright (C) Free Software Foundation, Inc., 51 Franklin St, Fifth
|
11334 |
|
|
Floor, Boston, MA 02110, USA.
|
11335 |
|
|
|
11336 |
|
|
Verbatim copying and distribution of this entire article is permitted
|
11337 |
|
|
in any medium, provided this notice is preserved.
|
11338 |
|
|
Last modified 2010-07-01 [9]Valid XHTML 1.0
|
11339 |
|
|
|
11340 |
|
|
References
|
11341 |
|
|
|
11342 |
|
|
1. mailto:gnu@gnu.org
|
11343 |
|
|
2. http://www.gnu.org/home.html#ContactInfo
|
11344 |
|
|
3. http://gcc.gnu.org/about.html
|
11345 |
|
|
4. http://gcc.gnu.org/onlinedocs/
|
11346 |
|
|
5. mailto:gcc-help@gcc.gnu.org
|
11347 |
|
|
6. mailto:gcc@gnu.org
|
11348 |
|
|
7. mailto:gcc@gcc.gnu.org
|
11349 |
|
|
8. http://gcc.gnu.org/lists.html
|
11350 |
|
|
9. http://validator.w3.org/check/referer
|
11351 |
|
|
======================================================================
|