Annotation of gcc/NEWS, revision 1.1.1.1

1.1       root        1: Noteworthy GCC changes in version 2.4.4:
                      2: 
                      3:   A crash building g++ on various hosts (including m68k) has been
                      4:   fixed.  Also the g++ compiler no longer reports incorrect
                      5:   ambiguities in some situations where they do not exist, and
                      6:   const template member functions are now being found properly.
                      7: 
                      8: Noteworthy GCC changes in version 2.4:
                      9: 
                     10: * On each target, the default is now to return short structures
                     11: compatibly with the "usual" compiler on that target.
                     12: 
                     13: For most targets, this means the default is to return all structures
                     14: in memory, like long structures, in whatever way is used on that
                     15: target.  Use -freg-struct-return to enable returning short structures
                     16: (and unions) in registers.
                     17: 
                     18: This change means that newly compiled binaries are incompatible with
                     19: binaries compiled with previous versions of GCC.
                     20: 
                     21: On some targets, GCC is itself the usual compiler.  On these targets,
                     22: the default way to return short structures is still in registers.
                     23: Use -fpcc-struct-return to tell GCC to return them in memory.
                     24: 
                     25: * There is now a floating point emulator which can imitate the way all
                     26: supported target machines do floating point arithmetic.
                     27: 
                     28: This makes it possible to have cross compilation to and from the VAX,
                     29: and between machines of different endianness.  However, this works
                     30: only when the target machine description is updated to use the new
                     31: facilities, and not all have been updated.
                     32: 
                     33: This also makes possible support for longer floating point types.
                     34: GCC 2.4 supports extended format on the 68K if you use `long double',
                     35: for targets that have a 68881.  (When we have run time library
                     36: routines for extended floating point, then `long double' will use
                     37: extended format on all 68K targets.)
                     38: 
                     39: We expect to support extended floating point on the i386 and Sparc in
                     40: future versions.
                     41: 
                     42: * Building GCC now automatically fixes the system's header files.
                     43: This should require no attention.
                     44: 
                     45: * GCC now installs an unsigned data type as size_t when it fixes the
                     46: header files (on all but a handful of old target machines).
                     47: Therefore, the bug that size_t failed to be unsigned is fixed.
                     48: 
                     49: * Building and installation are now completely separate.
                     50: All new files are constructed during the build process; 
                     51: installation just copies them.
                     52: 
                     53: * New targets supported: Clipper, Hitachi SH, Hitachi 8300, and Sparc
                     54: Lite.
                     55: 
                     56: * A totally new and much better Objective C run time system is included.
                     57: 
                     58: * Objective C supports many new features.  Alas, I can't describe them
                     59: since I don't use that language; however, they are the same ones 
                     60: supported in recent versions of the NeXT operating system.
                     61: 
                     62: * The builtin functions __builtin_apply_args, __builtin_apply and
                     63: __builtin_return let you record the arguments and returned
                     64: value of a function without knowing their number or type.
                     65: 
                     66: * The builtin string variables __FUNCTION__ and __PRETTY_FUNCTION__
                     67: give the name of the function in the source, and a pretty-printed
                     68: version of the name.  The two are the same in C, but differ in C++.
                     69: 
                     70: * Casts to union types do not yield lvalues.
                     71: 
                     72: * ## before an empty rest argument discards the preceding sequence
                     73: of non-whitespace characters from the macro definition.
                     74: (This feature is subject to change.)
                     75: 
                     76: 
                     77: New features specific to C++:
                     78: 
                     79: * The manual contains a new section ``Common Misunderstandings with
                     80: GNU C++'' that C++ users should read.
                     81: 
                     82: * #pragma interface and #pragma implementation let you use the same
                     83: C++ source file for both interface and implementation.
                     84: However, this mechanism is still in transition.
                     85: 
                     86: * Named returned values let you avoid an extra constructor call
                     87: when a function result has a class type.
                     88: 
                     89: * The C++ operators <? and >? yield min and max, respectively.
                     90: 
                     91: * C++ gotos can exit a block safely even if the block has
                     92: aggregates that require destructors.
                     93: 
                     94: * gcc defines the macro __GNUG__ when compiling C++ programs.
                     95: 
                     96: * GNU C++ now correctly distinguishes between the prefix and postfix
                     97: forms of overloaded operator ++ and --.  To avoid breaking old
                     98: code, if a class defines only the prefix form, the compiler
                     99: accepts either ++obj or obj++, unless -pedantic is used.
                    100: 
                    101: * If you are using version 2.3 of libg++, you need to rebuild it with
                    102: `make CC=gcc' to avoid mismatches in the definition of `size_t'.
                    103: 
                    104: 
                    105: Newly documented compiler options:
                    106: 
                    107: -fnostartfiles
                    108:        Omit the standard system startup files when linking.
                    109: 
                    110: -fvolatile-global
                    111:        Consider memory references to extern and global data items to
                    112:        be volatile.
                    113: 
                    114: -idirafter DIR
                    115:        Add DIR to the second include path.
                    116: 
                    117: -iprefix PREFIX
                    118:        Specify PREFIX for later -iwithprefix options.
                    119: 
                    120: -iwithprefix DIR
                    121:        Add PREFIX/DIR to the second include path.
                    122: 
                    123: -mv8
                    124:        Emit Sparc v8 code (with integer multiply and divide).
                    125: -msparclite
                    126:        Emit Sparclite code (roughly v7.5).
                    127: 
                    128: -print-libgcc-file-name
                    129:        Search for the libgcc.a file, print its absolute file name, and exit.
                    130: 
                    131: -Woverloaded-virtual
                    132:        Warn when a derived class function declaration may be an error
                    133:        in defining a C++ virtual function. 
                    134: 
                    135: -Wtemplate-debugging
                    136:        When using templates in a C++ program, warn if debugging is
                    137:        not yet fully available.
                    138: 
                    139: +eN
                    140:        Control how C++ virtual function definitions are used
                    141:        (like cfront 1.x).

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.