Sprout from AC-branch 2005-01-15 14:41:53 UTC Jakub Bogusz <qboosh@pld-linux.org> '- release 2'
Delete:
gcc-ada-link-new-libgnat.patch
gcc-amd64-thunk.patch
gcc-bug12491.patch
gcc-cmpi.patch
gcc-cse-find_best_addr.patch
gcc-ffi64.patch
gcc-info.patch
gcc-nodebug.patch
gcc-nolocalefiles.patch
gcc-paths.patch
gcc32-ada-link.patch
gcc32-boehm-gc-libs.patch
gcc32-bogus-inline.patch
gcc32-c++-nrv-test.patch
gcc32-c++-tsubst-asm.patch
gcc32-debug-pr7241.patch
gcc32-duplicate-decl.patch
gcc32-dwarf2-pr6381.patch
gcc32-dwarf2-pr6436-test.patch
gcc32-fde-merge-compat.patch
gcc32-i386-memtest-test.patch
gcc32-inline-label.patch
gcc32-java-no-rpath.patch
gcc32-test-rh65771.patch
gcc32-test-rotate.patch
+++ /dev/null
---- gcc-3.3/gcc/ada/Make-lang.in~ Fri May 16 15:14:53 2003
-+++ gcc-3.3/gcc/ada/Make-lang.in Fri May 16 15:18:07 2003
-@@ -347,7 +347,7 @@
- ada/doctools/xgnatug : ada/xgnatug.adb
- -$(MKDIR) ada/doctools
- cp $^ ada/doctools
-- cd ada/doctools && gnatmake -q xgnatug
-+ cd ada/doctools && gnatmake -q xgnatug -aO../rts
-
- $(srcdir)/ada/gnat_ug_unx.texi : ada/doctools/xgnatug \
- $(srcdir)/ada/gnat_ug.texi $(srcdir)/ada/ug_words
-@@ -871,27 +871,27 @@
- ada/treeprs.ads : ada/treeprs.adt ada/sinfo.ads ada/xtreeprs.adb
- -$(MKDIR) ada/bldtools
- $(CP) $^ ada/bldtools
-- (cd ada/bldtools; gnatmake -q xtreeprs ; ./xtreeprs ../treeprs.ads )
-+ (cd ada/bldtools; gnatmake -q xtreeprs -aO../rts ; ./xtreeprs ../treeprs.ads )
-
- ada/einfo.h : ada/einfo.ads ada/einfo.adb ada/xeinfo.adb
- -$(MKDIR) ada/bldtools
- $(CP) $^ ada/bldtools
-- (cd ada/bldtools; gnatmake -q xeinfo ; ./xeinfo ../einfo.h )
-+ (cd ada/bldtools; gnatmake -q xeinfo -aO../rts ; ./xeinfo ../einfo.h )
-
- ada/sinfo.h : ada/sinfo.ads ada/xsinfo.adb
- -$(MKDIR) ada/bldtools
- $(CP) $^ ada/bldtools
-- (cd ada/bldtools; gnatmake -q xsinfo ; ./xsinfo ../sinfo.h )
-+ (cd ada/bldtools; gnatmake -q xsinfo -aO../rts ; ./xsinfo ../sinfo.h )
-
- ada/nmake.adb : ada/sinfo.ads ada/nmake.adt ada/xnmake.adb
- -$(MKDIR) ada/bldtools
- $(CP) $^ ada/bldtools
-- (cd ada/bldtools; gnatmake -q xnmake ; ./xnmake -b ../nmake.adb )
-+ (cd ada/bldtools; gnatmake -q xnmake -aO../rts ; ./xnmake -b ../nmake.adb )
-
- ada/nmake.ads : ada/sinfo.ads ada/nmake.adt ada/xnmake.adb
- -$(MKDIR) ada/bldtools
- $(CP) $^ ada/bldtools
-- (cd ada/bldtools; gnatmake -q xnmake ; ./xnmake -s ../nmake.ads )
-+ (cd ada/bldtools; gnatmake -q xnmake -aO../rts ; ./xnmake -s ../nmake.ads )
-
- update-sources : ada/treeprs.ads ada/einfo.h ada/sinfo.h ada/nmake.adb \
- ada/nmake.ads
+++ /dev/null
-PR target/16092 fix backport from gcc 3.4.0
---- gcc-3.3.4/gcc/config/i386/i386.c.orig 2004-05-18 07:07:52.000000000 +0200
-+++ gcc-3.3.4/gcc/config/i386/i386.c 2004-06-20 19:17:22.244016950 +0200
-@@ -14673,15 +14673,14 @@
- output_asm_insn ("mov{l}\t{%0, %1|%1, %0}", xops);
- }
-
-- xops[0] = DECL_RTL (function);
-+ xops[0] = XEXP (DECL_RTL (function), 0);
- if (TARGET_64BIT)
- {
- if (!flag_pic || (*targetm.binds_local_p) (function))
- output_asm_insn ("jmp\t%P0", xops);
- else
- {
-- tmp = XEXP (xops[0], 0);
-- tmp = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, tmp), UNSPEC_GOTPCREL);
-+ tmp = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, xops[0]), UNSPEC_GOTPCREL);
- tmp = gen_rtx_CONST (Pmode, tmp);
- tmp = gen_rtx_MEM (QImode, tmp);
- xops[0] = tmp;
+++ /dev/null
-diff -urN gcc-3.3.4.orig/gcc/except.c gcc-3.3.4/gcc/except.c
---- gcc-3.3.4.orig/gcc/except.c 2004-03-17 18:07:30.000000000 +0000
-+++ gcc-3.3.4/gcc/except.c 2004-08-31 14:01:32.000000000 +0000
-@@ -186,6 +186,7 @@
- struct eh_region_u_fixup {
- tree cleanup_exp;
- struct eh_region *real_region;
-+ bool resolved;
- } GTY ((tag ("ERT_FIXUP"))) fixup;
- } GTY ((desc ("%0.type"))) u;
-
-@@ -912,29 +913,48 @@
- }
-
- static void
-+resolve_one_fixup_region (struct eh_region *fixup)
-+{
-+ struct eh_region *cleanup, *real;
-+ int j, n;
-+
-+ n = cfun->eh->last_region_number;
-+ cleanup = 0;
-+
-+ for (j = 1; j <= n; ++j)
-+ {
-+ cleanup = cfun->eh->region_array[j];
-+ if (cleanup && cleanup->type == ERT_CLEANUP
-+ && cleanup->u.cleanup.exp == fixup->u.fixup.cleanup_exp)
-+ break;
-+ }
-+ if (j > n)
-+ abort ();
-+
-+ real = cleanup->outer;
-+ if (real && real->type == ERT_FIXUP)
-+ {
-+ if (!real->u.fixup.resolved)
-+ resolve_one_fixup_region (real);
-+ real = real->u.fixup.real_region;
-+ }
-+
-+ fixup->u.fixup.real_region = real;
-+ fixup->u.fixup.resolved = true;
-+}
-+
-+static void
- resolve_fixup_regions ()
- {
-- int i, j, n = cfun->eh->last_region_number;
-+ int i, n = cfun->eh->last_region_number;
-
- for (i = 1; i <= n; ++i)
- {
- struct eh_region *fixup = cfun->eh->region_array[i];
-- struct eh_region *cleanup = 0;
-
-- if (! fixup || fixup->type != ERT_FIXUP)
-+ if (!fixup || fixup->type != ERT_FIXUP || fixup->u.fixup.resolved)
- continue;
--
-- for (j = 1; j <= n; ++j)
-- {
-- cleanup = cfun->eh->region_array[j];
-- if (cleanup->type == ERT_CLEANUP
-- && cleanup->u.cleanup.exp == fixup->u.fixup.cleanup_exp)
-- break;
-- }
-- if (j > n)
-- abort ();
--
-- fixup->u.fixup.real_region = cleanup->outer;
-+
- }
- }
-
-diff -urN gcc-3.3.4.orig/gcc/testsuite/g++.dg/eh/cleanup2.C gcc-3.3.4/gcc/testsuite/g++.dg/eh/cleanup2.C
---- gcc-3.3.4.orig/gcc/testsuite/g++.dg/eh/cleanup2.C 1970-01-01 00:00:00.000000000 +0000
-+++ gcc-3.3.4/gcc/testsuite/g++.dg/eh/cleanup2.C 2004-08-31 14:03:41.000000000 +0000
-@@ -0,0 +1,46 @@
-+// PR c++/12491
-+// { dg-do compile }
-+// { dg-options "-O2" }
-+
-+// The return statements are necessary to trigger this bug.
-+
-+class Object
-+{
-+public:
-+ virtual ~Object (void) { return; }
-+};
-+
-+class AutoPtr
-+{
-+public:
-+ ~AutoPtr (void) { delete m_rep; return; }
-+private:
-+ const Object *m_rep;
-+};
-+
-+class Handle
-+{
-+public:
-+ ~Handle (void) { return; }
-+private:
-+ AutoPtr m_rep;
-+};
-+
-+class HandleOf:public Handle
-+{
-+public:
-+ ~HandleOf (void) { return; }
-+};
-+
-+class Error
-+{
-+public:
-+ ~Error (void);
-+private:
-+ HandleOf m_hndl;
-+};
-+
-+Error::~Error (void)
-+{
-+ return;
-+}
+++ /dev/null
---- gcc-3.3.5/gcc/config/rs6000/eabi.asm~ Fri Oct 8 15:13:48 2004
-+++ gcc-3.3.5/gcc/config/rs6000/eabi.asm Fri Oct 8 15:13:48 2004
-@@ -252,7 +252,7 @@
-
- .Lcvt:
- lwzu 6,4(3) /* pointer to convert */
-- cmpi 0,6,0
-+ cmpwi 0,6,0
- beq- .Lcvt2 /* if pointer is null, don't convert */
-
- add 6,6,12 /* convert pointer */
+++ /dev/null
-> On Thu, Jun 19, 2003 at 08:31:03AM +0200, Jan Hubicka wrote:
-> > > Nathan Myers <ncm-nospam@cantrip.org> writes:
-> > >
-> > > > gnu/include/c++/3.4/x86_64-unknown-linux-gnu/bits/atomicity.h: In
-> > > > function `int main()':
-> > > > /amd/ncm/gnu/include/c++/3.4/x86_64-unknown-linux-gnu/bits/atomicity.h:43: error: inconsistent
-> > > > operand constraints in an `asm'
-> > >
-> > > Honza, isn't this the bug in gcse that you're hunting down?
-> > Yes, that looks like the same CSE problem. I will try to give it
-> > priority this afternoon so it gets fixed.
->
-> I take it, then, that this is a core compiler bug and not a std headers bug?
-This patch should fix the problem. (at least it fixes it for the
-similar testcase that comes from proprietary program. Do you think you
-can simplify your code into small enought testcase for testsuite?)
-
-Bootstrap passed on x86-64, regtest in progress, OK if it suceeds?
-
-Honza
-
-Sat Jun 21 14:51:44 CEST 2003 Jan Hubicka <jh@suse.cz>
- * cse.c (find_best_addr): Fold the best address discovered.
-Index: cse.c
-===================================================================
-RCS file: /cvs/gcc/gcc/gcc/cse.c,v
-retrieving revision 1.243.2.4
-diff -c -3 -p -r1.243.2.4 cse.c
-*** gcc/gcc/cse.c 6 Jun 2003 10:09:09 -0000 1.243.2.4
---- gcc/gcc/cse.c 21 Jun 2003 12:49:18 -0000
-*************** find_best_addr (insn, loc, mode)
-*** 3021,3029 ****
-
- if (found_better)
- {
-! if (validate_change (insn, loc,
-! canon_reg (copy_rtx (best_elt->exp),
-! NULL_RTX), 0))
- return;
- else
- best_elt->flag = 1;
---- 3021,3049 ----
-
- if (found_better)
- {
-! /* Avoid find_best_addr from touching this address again:
-! at the beggining of this function we attempt to fold
-! the address. Do it now as well. Not doing so would mean
-! that we will create multiple versions of the address in the
-! insn chain that may result in "+m" ASM constraint from not
-! being matched. */
-!
-! rtx best = canon_reg (copy_rtx (best_elt->exp), NULL_RTX);
-! rtx folded = fold_rtx (copy_rtx (best), NULL_RTX);
-! int addr_folded_cost = address_cost (folded, mode);
-! int addr_cost = address_cost (best, mode);
-!
-! if ((addr_folded_cost < addr_cost
-! || (addr_folded_cost == addr_cost
-! /* ??? The rtx_cost comparison is left over from an
-! older version of this code. It is probably no
-! longer helpful. */
-! && (rtx_cost (folded, MEM) > rtx_cost (addr, MEM)
-! || (approx_reg_cost (folded)
-! < approx_reg_cost (addr)))))
-! && validate_change (insn, loc, folded, 0))
-! return;
-! if (validate_change (insn, loc, best, 0))
- return;
- else
- best_elt->flag = 1;
+++ /dev/null
---- gcc/gcc/libffi/src/x86/ffi64.c 2004/01/21 06:11:08 1.6
-+++ gcc/gcc/libffi/src/x86/ffi64.c 2004/10/12 16:47:26 1.6.6.1
-@@ -341,6 +341,8 @@
- {
- /* Pass this argument in memory. */
- argp = (void *)ALIGN(argp, (*p_arg)->alignment);
-+ /* Stack arguments are *always* at least 8 byte aligned. */
-+ argp = (void *)ALIGN(argp, 8);
- memcpy (argp, *p_argv, (*p_arg)->size);
- argp += (*p_arg)->size;
- }
+++ /dev/null
-Note: gnat_ug.texi is postprocessed by some tool - so it may not
-contain tab characters - spaces must be used instead.
-In other *.texi we can use tabs.
-
---- gcc-3.2/gcc/doc/cpp.texi.orig Fri Nov 1 22:58:48 2002
-+++ gcc-3.2/gcc/doc/cpp.texi Fri Nov 1 23:03:38 2002
-@@ -53,9 +53,9 @@
- @set cppmanual
-
- @ifinfo
--@dircategory Programming
-+@dircategory Programming Languages:
- @direntry
--* Cpp: (cpp). The GNU C preprocessor.
-+* Cpp: (cpp). The GNU C preprocessor
- @end direntry
- @end ifinfo
-
---- gcc-3.2/gcc/doc/cppinternals.texi.orig Mon Jan 7 20:03:36 2002
-+++ gcc-3.2/gcc/doc/cppinternals.texi Fri Nov 1 23:04:42 2002
-@@ -3,9 +3,9 @@
- @settitle The GNU C Preprocessor Internals
-
- @ifinfo
--@dircategory Programming
-+@dircategory Programming Languages:
- @direntry
--* Cpplib: (cppinternals). Cpplib internals.
-+* Cpplib: (cppinternals). Cpplib internals
- @end direntry
- @end ifinfo
-
---- gcc-3.2/gcc/doc/gcc.texi.orig Fri Nov 1 22:58:48 2002
-+++ gcc-3.2/gcc/doc/gcc.texi Fri Nov 1 23:06:12 2002
-@@ -65,9 +65,9 @@
- 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
- @end macro
- @ifnottex
--@dircategory Programming
-+@dircategory Programming Languages:
- @direntry
--* gcc: (gcc). The GNU Compiler Collection.
-+* gcc: (gcc). The GNU Compiler Collection
- @end direntry
- This file documents the use of the GNU compilers.
- @sp 1
---- gcc-3.2/gcc/doc/gccint.texi.orig Wed Jan 23 18:30:28 2002
-+++ gcc-3.2/gcc/doc/gccint.texi Fri Nov 1 23:06:57 2002
-@@ -51,9 +51,9 @@
- 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
- @end macro
- @ifnottex
--@dircategory Programming
-+@dircategory Programming Languages:
- @direntry
--* gccint: (gccint). Internals of the GNU Compiler Collection.
-+* gccint: (gccint). Internals of the GNU Compiler Collection
- @end direntry
- This file documents the internals of the GNU compilers.
- @sp 1
---- gcc-3.2/gcc/ada/gnat-style.texi.orig Sun Dec 23 12:23:14 2001
-+++ gcc-3.2/gcc/ada/gnat-style.texi Fri Nov 1 23:08:50 2002
-@@ -25,9 +25,9 @@
-
- @setfilename gnat-style.info
- @settitle GNAT Coding Style
--@dircategory Programming
-+@dircategory Programming Languages:
- @direntry
--* gnat-style: (gnat-style). GNAT Coding Style
-+* gnat-style: (gnat-style). GNAT Coding Style
- @end direntry
-
- @macro syntax{element}
---- gcc-3.3/gcc/ada/gnat_rm.texi.orig 2003-02-04 02:55:38.000000000 +0100
-+++ gcc-3.3/gcc/ada/gnat_rm.texi 2003-05-17 08:40:07.000000000 +0200
-@@ -24,9 +24,9 @@
-
- @include gcc-common.texi
-
--@dircategory GNU Ada tools
-+@dircategory Programming Languages:
- @direntry
--* GNAT Reference Manual: (gnat_rm). Reference Manual for GNU Ada tools.
-+* GNAT Reference Manual: (gnat_rm). Reference Manual for GNU Ada tools
- @end direntry
-
- @copying
---- gcc-3.2/gcc/ada/gnat_ug.texi.orig Fri Nov 1 22:58:52 2002
-+++ gcc-3.2/gcc/ada/gnat_ug.texi Fri Nov 1 23:10:20 2002
-@@ -75,6 +75,11 @@
- @syncodeindex fn cp
- @c %**end of header
-
-+@dircategory Programming Languages:
-+@direntry
-+* gnat_ug: (gnat_ug). GNAT User's Guide
-+@end direntry
-+
- @titlepage
-
- @ifset vms
---- gcc-3.2/gcc/f/g77.texi.orig Mon Apr 29 09:58:32 2002
-+++ gcc-3.2/gcc/f/g77.texi Fri Nov 1 23:11:56 2002
-@@ -90,9 +90,9 @@
- @c @end tex
-
- @ifinfo
--@dircategory Programming
-+@dircategory Programming Languages:
- @direntry
--* g77: (g77). The GNU Fortran compiler.
-+* g77: (g77). The GNU Fortran compiler
- @end direntry
- @ifset INTERNALS
- @ifset USING
---- gcc-3.2/gcc/java/gcj.texi.orig Sun Aug 4 18:55:55 2002
-+++ gcc-3.2/gcc/java/gcj.texi Fri Nov 1 23:16:39 2002
-@@ -20,26 +20,20 @@
-
- @ifinfo
- @format
--@dircategory Programming
-+@dircategory Programming Languages:
- @direntry
--* Gcj: (gcj). Ahead-of-time compiler for the Java language
-+* Gcj: (gcj). Ahead-of-time compiler for the Java language
- @end direntry
-
--@dircategory Individual utilities
-+@dircategory Programming tools:
- @direntry
--* gcjh: (gcj)Invoking gcjh.
-- Generate header files from Java class files
--* jv-scan: (gcj)Invoking jv-scan.
-- Print information about Java source files
--* jcf-dump: (gcj)Invoking jcf-dump.
-- Print information about Java class files
--* gij: (gcj)Invoking gij. GNU interpreter for Java bytecode
--* jv-convert: (gcj)Invoking jv-convert.
-- Convert file from one encoding to another
--* rmic: (gcj)Invoking rmic.
-- Generate stubs for Remote Method Invocation.
--* rmiregistry: (gcj)Invoking rmiregistry.
-- The remote object registry.
-+* gcjh: (gcj)gcjh. Generate header files from Java class files
-+* jv-scan: (gcj)jv-scan. Print information about Java source files
-+* jcf-dump: (gcj)jcf-dump. Print information about Java class files
-+* gij: (gcj)gij. GNU interpreter for Java bytecode
-+* jv-convert: (gcj)jv-convert. Convert file from one encoding to another
-+* rmic: (gcj)rmic. Generate stubs for Remote Method Invocation.
-+* rmiregistry: (gcj)rmiregistry. The remote object registry
- @end direntry
- @end format
-
-@@ -120,15 +114,15 @@
- * Copying:: The GNU General Public License
- * GNU Free Documentation License::
- How you can share and copy this manual
--* Invoking gcj:: Compiler options supported by @command{gcj}
-+* gcj:: Compiler options supported by @command{gcj}
- * Compatibility:: Compatibility between gcj and other tools for Java
--* Invoking gcjh:: Generate header files from class files
--* Invoking jv-scan:: Print information about source files
--* Invoking jcf-dump:: Print information about class files
--* Invoking gij:: Interpreting Java bytecodes
--* Invoking jv-convert:: Converting from one encoding to another
--* Invoking rmic:: Generate stubs for Remote Method Invocation.
--* Invoking rmiregistry:: The remote object registry.
-+* gcjh:: Generate header files from class files
-+* jv-scan:: Print information about source files
-+* jcf-dump:: Print information about class files
-+* gij:: Interpreting Java bytecodes
-+* jv-convert:: Converting from one encoding to another
-+* rmic:: Generate stubs for Remote Method Invocation.
-+* rmiregistry:: The remote object registry.
- * About CNI:: Description of the Cygnus Native Interface
- * Resources:: Where to look for more information
- @end menu
-@@ -139,7 +133,7 @@
- @include fdl.texi
-
-
--@node Invoking gcj
-+@node gcj
- @chapter Invoking gcj
-
- @c man title gcj Ahead-of-time compiler for the Java language
-@@ -506,7 +500,7 @@
- @end itemize
-
-
--@node Invoking gcjh
-+@node gcjh
- @chapter Invoking gcjh
-
- @c man title gcjh generate header files from Java class files
-@@ -607,7 +601,7 @@
-
- @c man end
-
--@node Invoking jv-scan
-+@node jv-scan
- @chapter Invoking jv-scan
-
- @c man title jv-scan print information about Java source file
-@@ -665,7 +659,7 @@
-
- @c man end
-
--@node Invoking jcf-dump
-+@node jcf-dump
- @chapter Invoking jcf-dump
-
- @c man title jcf-dump print information about Java class files
-@@ -720,7 +714,7 @@
-
- @c man end
-
--@node Invoking gij
-+@node gij
- @chapter Invoking gij
-
- @c man title gij GNU interpreter for Java bytecode
-@@ -798,7 +792,7 @@
-
- @c man end
-
--@node Invoking jv-convert
-+@node jv-convert
- @chapter Invoking jv-convert
-
- @c man title jv-convert Convert file from one encoding to another
-@@ -857,7 +851,7 @@
-
- @c man end
-
--@node Invoking rmic
-+@node rmic
- @chapter Invoking rmic
-
- @c man title rmic Generate stubs for Remote Method Invocation
-@@ -936,7 +930,7 @@
- @c man end
-
-
--@node Invoking rmiregistry
-+@node rmiregistry
- @chapter Invoking rmiregistry
-
- @c man title rmiregistry Remote object registry
---- gcc-3.2/gcc/ksi/doc/ksi.texi.orig Sat Jul 20 22:48:08 2002
-+++ gcc-3.2/gcc/ksi/doc/ksi.texi Fri Nov 1 23:19:39 2002
-@@ -15,7 +15,7 @@
- @contents
-
- @ifnottex
--@dircategory Programming tools:
-+@dircategory Programming Languages:
- @direntry
- * ksi: (ksi). Ksi Language and Compiler Manual
- @end direntry
+++ /dev/null
---- gcc-3.3.3/gcc/Makefile.in.orig 2004-02-16 18:57:42.824016056 +0100
-+++ gcc-3.3.3/gcc/Makefile.in 2004-02-16 18:59:52.167352880 +0100
-@@ -65,9 +65,9 @@
- # TCFLAGS is used for compilations with the GCC just built.
- XCFLAGS =
- TCFLAGS =
--CFLAGS = -g
--STAGE1_CFLAGS = -g @stage1_cflags@
--BOOT_CFLAGS = -g -O2
-+CFLAGS =
-+STAGE1_CFLAGS = @stage1_cflags@
-+BOOT_CFLAGS = -O2
-
- # Flags to determine code coverage. When coverage is disabled, this will
- # contain the optimization flags, as you normally want code coverage
-@@ -390,7 +390,7 @@
-
- # Options to use when compiling libgcc2.a.
- #
--LIBGCC2_DEBUG_CFLAGS = -g
-+LIBGCC2_DEBUG_CFLAGS =
- LIBGCC2_CFLAGS = -O2 $(LIBGCC2_INCLUDES) $(GCC_CFLAGS) $(TARGET_LIBGCC2_CFLAGS) $(LIBGCC2_DEBUG_CFLAGS) $(GTHREAD_FLAGS) -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED @inhibit_libc@
-
- # Additional options to use when compiling libgcc2.a.
---- gcc-3.3.3/gcc/ada/Makefile.in.orig 2004-02-16 08:29:33.000000000 +0100
-+++ gcc-3.3.3/gcc/ada/Makefile.in 2004-02-16 19:04:55.708207656 +0100
-@@ -73,7 +73,7 @@
- # to the stage2 and stage3 compilations
- # XCFLAGS is used for most compilations but not when using the GCC just built.
- XCFLAGS =
--CFLAGS = -g
-+CFLAGS =
- BOOT_CFLAGS = -O $(CFLAGS)
- # These exists to be overridden by the x-* and t-* files, respectively.
- X_CFLAGS =
-@@ -127,7 +127,7 @@
- SOME_ADAFLAGS =-gnata
- FORCE_DEBUG_ADAFLAGS = -g
- GNATLIBFLAGS = -gnatpg
--GNATLIBCFLAGS = -g -O2
-+GNATLIBCFLAGS = -O2
- GNATLIBCFLAGS_FOR_C = $(GNATLIBCFLAGS) $(TARGET_LIBGCC2_CFLAGS) -fexceptions \
- -DIN_RTS
- ALL_ADA_CFLAGS = $(X_ADA_CFLAGS) $(T_ADA_CFLAGS) $(ADA_CFLAGS)
---- gcc-3.3.3/libjava/Makefile.am.orig 2004-02-16 08:29:34.000000000 +0100
-+++ gcc-3.3.3/libjava/Makefile.am 2004-02-16 19:02:25.582030304 +0100
-@@ -95,7 +95,7 @@
- AM_CFLAGS = @LIBGCJ_CFLAGS@
- endif
-
--JCFLAGS = -g
-+JCFLAGS =
- JC1FLAGS = @LIBGCJ_JAVAFLAGS@ $(GCJFLAGS)
-
- LIBFFIINCS = @LIBFFIINCS@
---- gcc-3.3.3/libjava/Makefile.in.orig 2004-02-16 08:29:34.000000000 +0100
-+++ gcc-3.3.3/libjava/Makefile.in 2004-02-16 19:02:31.196176824 +0100
-@@ -180,7 +180,7 @@
- @USING_GCC_TRUE@AM_CFLAGS = @USING_GCC_TRUE@@LIBGCJ_CFLAGS@ $(WARNINGS)
- @USING_GCC_FALSE@AM_CFLAGS = @USING_GCC_FALSE@@LIBGCJ_CFLAGS@
-
--JCFLAGS = -g
-+JCFLAGS =
- JC1FLAGS = @LIBGCJ_JAVAFLAGS@ $(GCJFLAGS)
-
- LIBFFIINCS = @LIBFFIINCS@
+++ /dev/null
---- gcc-3.2/libstdc++-v3/configure.orig Sat Jul 27 01:23:04 2002
-+++ gcc-3.2/libstdc++-v3/configure Thu Aug 22 08:03:18 2002
-@@ -2957,7 +2957,7 @@
- int j;
- __locale_t loc;
- __locale_t loc_dup;
-- loc = __newlocale(1 << LC_ALL, "de_DE", 0);
-+ loc = __newlocale(1 << LC_ALL, "C", 0);
- loc_dup = __duplocale(loc);
- i = __strcoll_l(__one, __two, loc);
- j = __strcoll_l(__one, __two, loc_dup);
+++ /dev/null
---- gcc-3.3.3/gcc/gcc.c Sat Dec 22 01:40:45 2001
-+++ gcc-3.3.3/gcc/gcc.c.new Sun Dec 23 18:43:36 2001
-@@ -1160,13 +1160,13 @@
- /* Supply defaults for the standard prefixes. */
-
- #ifndef STANDARD_EXEC_PREFIX
--#define STANDARD_EXEC_PREFIX "/usr/local/lib/gcc-lib/"
-+#define STANDARD_EXEC_PREFIX "/usr/lib/gcc-lib/"
- #endif
- #ifndef TOOLDIR_BASE_PREFIX
--#define TOOLDIR_BASE_PREFIX "/usr/local/"
-+#define TOOLDIR_BASE_PREFIX "/usr/"
- #endif
- #ifndef STANDARD_BINDIR_PREFIX
--#define STANDARD_BINDIR_PREFIX "/usr/local/bin"
-+#define STANDARD_BINDIR_PREFIX "/usr/bin"
- #endif
-
- static const char *standard_exec_prefix = STANDARD_EXEC_PREFIX;
+++ /dev/null
-diff -Nur gcc-3.2.2/gcc/ada/link.c gcc-3.2.2-20030218/gcc/ada/link.c
---- gcc-3.2.2/gcc/ada/link.c Sat May 4 05:28:18 2002
-+++ gcc-3.2.2-20030218/gcc/ada/link.c Tue Sep 24 15:07:49 2002
-@@ -158,11 +158,11 @@
-
- #elif defined (linux)
- const char *object_file_option = "";
--const char *run_path_option = "-Wl,-rpath,";
--char shared_libgnat_default = STATIC;
-+const char *run_path_option = "";
-+char shared_libgnat_default = SHARED;
- int link_max = 2147483647;
- unsigned char objlist_file_supported = 0;
--unsigned char using_gnu_linker = 0;
-+unsigned char using_gnu_linker = 1;
- const char *object_library_extension = ".a";
-
- #elif defined (__svr4__) && defined (i386)
-diff -Nur gcc-3.2.2/gcc/ada/Makefile.in gcc-3.2.2-20030218/gcc/ada/Makefile.in
---- gcc-3.2.2/gcc/ada/Makefile.in Wed Jan 29 18:34:08 2003
-+++ gcc-3.2.2-20030218/gcc/ada/Makefile.in Tue Feb 18 17:05:26 2003
-@@ -134,7 +134,7 @@
- objext = .o
- exeext =
- arext = .a
--soext = .so
-+soext = .so.1
- shext =
-
- HOST_CC=$(CC)
-@@ -1214,6 +1214,69 @@
- endif
- endif
-
-+ifeq ($(strip $(filter-out alpha% linux%,$(arch) $(osys))),)
-+ MLIB_TGT=5lml-tgt
-+ MISCLIB=
-+ THREADSLIB=-lpthread
-+ GNATLIB_SHARED=gnatlib-shared-dual
-+ GMEM_LIB=gmemlib
-+ LIBRARY_VERSION := $(strip $(shell grep Library_Version $(fsrcpfx)gnatvsn.ads | sed -e 's/.*GNAT Lib v\(.*\)[ "].*/\1/'))
-+endif
-+
-+ifeq ($(strip $(filter-out sparc% linux%,$(arch) $(osys))),)
-+ MLIB_TGT=5lml-tgt
-+ MISCLIB=
-+ THREADSLIB=-lpthread
-+ GNATLIB_SHARED=gnatlib-shared-dual
-+ GMEM_LIB=gmemlib
-+ LIBRARY_VERSION := $(strip $(shell grep Library_Version $(fsrcpfx)gnatvsn.ads | sed -e 's/.*GNAT Lib v\(.*\)[ "].*/\1/'))
-+endif
-+
-+ifeq ($(strip $(filter-out ia64 linux%,$(arch) $(osys))),)
-+ MLIB_TGT=5lml-tgt
-+ MISCLIB=
-+ THREADSLIB=-lpthread
-+ GNATLIB_SHARED=gnatlib-shared-dual
-+ GMEM_LIB=gmemlib
-+ LIBRARY_VERSION := $(strip $(shell grep Library_Version $(fsrcpfx)gnatvsn.ads | sed -e 's/.*GNAT Lib v\(.*\)[ "].*/\1/'))
-+endif
-+
-+ifeq ($(strip $(filter-out x86_64 linux%,$(arch) $(osys))),)
-+ MLIB_TGT=5lml-tgt
-+ MISCLIB=
-+ THREADSLIB=-lpthread
-+ GNATLIB_SHARED=gnatlib-shared-dual
-+ GMEM_LIB=gmemlib
-+ LIBRARY_VERSION := $(strip $(shell grep Library_Version $(fsrcpfx)gnatvsn.ads | sed -e 's/.*GNAT Lib v\(.*\)[ "].*/\1/'))
-+endif
-+
-+ifeq ($(strip $(filter-out powerpc linux%,$(arch) $(osys))),)
-+ MLIB_TGT=5lml-tgt
-+ MISCLIB=
-+ THREADSLIB=-lpthread
-+ GNATLIB_SHARED=gnatlib-shared-dual
-+ GMEM_LIB=gmemlib
-+ LIBRARY_VERSION := $(strip $(shell grep Library_Version $(fsrcpfx)gnatvsn.ads | sed -e 's/.*GNAT Lib v\(.*\)[ "].*/\1/'))
-+endif
-+
-+ifeq ($(strip $(filter-out s390 linux%,$(arch) $(osys))),)
-+ MLIB_TGT=5lml-tgt
-+ MISCLIB=
-+ THREADSLIB=-lpthread
-+ GNATLIB_SHARED=gnatlib-shared-dual
-+ GMEM_LIB=gmemlib
-+ LIBRARY_VERSION := $(strip $(shell grep Library_Version $(fsrcpfx)gnatvsn.ads | sed -e 's/.*GNAT Lib v\(.*\)[ "].*/\1/'))
-+endif
-+
-+ifeq ($(strip $(filter-out s390x linux%,$(arch) $(osys))),)
-+ MLIB_TGT=5lml-tgt
-+ MISCLIB=
-+ THREADSLIB=-lpthread
-+ GNATLIB_SHARED=gnatlib-shared-dual
-+ GMEM_LIB=gmemlib
-+ LIBRARY_VERSION := $(strip $(shell grep Library_Version $(fsrcpfx)gnatvsn.ads | sed -e 's/.*GNAT Lib v\(.*\)[ "].*/\1/'))
-+endif
-+
- ifeq ($(strip $(filter-out mips sgi irix%,$(targ))),)
- ifeq ($(strip $(filter-out mips sgi irix6%,$(targ))),)
- LIBGNAT_TARGET_PAIRS = \
-@@ -2179,6 +2242,9 @@
-
- gnatlib: ../stamp-gnatlib1 ../stamp-gnatlib2
- # ../xgcc -B../ -dD -E ../tconfig.h $(INCLUDES) > rts/tconfig.h
-+ $(RMDIR) save
-+ $(MKDIR) save
-+ $(MV) *.o save/
- $(MAKE) -C rts CC="../../xgcc -B../../" \
- INCLUDES="$(INCLUDES_FOR_SUBDIR) -I./../.." \
- CFLAGS="$(GNATLIBCFLAGS) $(TARGET_LIBGCC2_CFLAGS) -DIN_RTS" \
-@@ -2192,6 +2258,8 @@
- srcdir=$(fsrcdir) \
- -f ../Makefile \
- $(GNATRTL_OBJS)
-+ $(MV) save/*.o .
-+ $(RMDIR) save
- $(RM) rts/libgnat$(arext) rts/libgnarl$(arext)
- $(AR) $(AR_FLAGS) rts/libgnat$(arext) \
- $(addprefix rts/,$(GNATRTL_NONTASKING_OBJS) $(LIBGNAT_OBJS))
-@@ -2041,6 +2041,7 @@
- cd rts; ../../xgcc -B../../ -shared $(TARGET_LIBGCC2_CFLAGS) \
- -o libgnarl-$(LIBRARY_VERSION)$(soext) \
- $(GNATRTL_TASKING_OBJS) \
-+ ./libgnat-$(LIBRARY_VERSION)$(soext) \
- $(SO_OPTS)libgnarl-$(LIBRARY_VERSION)$(soext) $(THREADSLIB)
- cd rts; $(LN_S) libgnat-$(LIBRARY_VERSION)$(soext) libgnat$(soext)
- cd rts; $(LN_S) libgnarl-$(LIBRARY_VERSION)$(soext) libgnarl$(soext)
+++ /dev/null
-diff -urN boehm-gc.org/Makefile.am boehm-gc/Makefile.am
---- boehm-gc.org/Makefile.am Sat Oct 18 12:32:07 2003
-+++ boehm-gc/Makefile.am Sat Oct 18 12:32:55 2003
-@@ -39,7 +39,8 @@
- # linuxthread semaphore functions get linked:
- libgcjgc_la_LIBADD = @addobjs@ $(THREADLIBS)
- libgcjgc_la_DEPENDENCIES = @addobjs@
--libgcjgc_la_LDFLAGS = -version-info 1:1:0 -rpath $(toolexeclibdir)
-+libgcjgc_la_LDFLAGS = @LIBGCJGC_EXTRA_LDFLAGS@ -version-info 1:1:0 \
-+ -rpath $(toolexeclibdir)
-
- libgcjgc_convenience_la_LIBADD = @addobjs@
- libgcjgc_convenience_la_DEPENDENCIES = @addobjs@
-diff -urN boehm-gc.org/Makefile.in boehm-gc/Makefile.in
---- boehm-gc.org/Makefile.in Thu Oct 16 22:10:48 2003
-+++ boehm-gc/Makefile.in Sat Oct 18 12:32:55 2003
-@@ -133,7 +133,8 @@
- # linuxthread semaphore functions get linked:
- libgcjgc_la_LIBADD = @addobjs@ $(THREADLIBS)
- libgcjgc_la_DEPENDENCIES = @addobjs@
--libgcjgc_la_LDFLAGS = -version-info 1:1:0 -rpath $(toolexeclibdir)
-+libgcjgc_la_LDFLAGS = @LIBGCJGC_EXTRA_LDFLAGS@ -version-info 1:1:0 \
-+ -rpath $(toolexeclibdir)
-
- libgcjgc_convenience_la_LIBADD = @addobjs@
- libgcjgc_convenience_la_DEPENDENCIES = @addobjs@
-diff -urN boehm-gc.org/configure boehm-gc/configure
---- boehm-gc.org/configure Sat Oct 18 12:32:07 2003
-+++ boehm-gc/configure Sat Oct 18 12:33:48 2003
-@@ -2717,11 +2717,57 @@
- fi
-
-
-+echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
-+echo "configure:2635: checking for dlopen in -ldl" >&5
-+ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
-+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-+ echo $ac_n "(cached) $ac_c" 1>&6
-+else
-+ ac_save_LIBS="$LIBS"
-+LIBS="-ldl $LIBS"
-+cat > conftest.$ac_ext <<EOF
-+#line 2643 "configure"
-+#include "confdefs.h"
-+/* Override any gcc2 internal prototype to avoid an error. */
-+/* We use char because int might match the return type of a gcc2
-+ builtin and then its argument prototype would still apply. */
-+char dlopen();
-+
-+int main() {
-+dlopen()
-+; return 0; }
-+EOF
-+if { (eval echo configure:2654: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+ rm -rf conftest*
-+ eval "ac_cv_lib_$ac_lib_var=yes"
-+else
-+ echo "configure: failed program was:" >&5
-+ cat conftest.$ac_ext >&5
-+ rm -rf conftest*
-+ eval "ac_cv_lib_$ac_lib_var=no"
-+fi
-+rm -f conftest*
-+LIBS="$ac_save_LIBS"
-+
-+fi
-+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-+ echo "$ac_t""yes" 1>&6
-+
-+EXTRA_TEST_LIBS="$EXTRA_TEST_LIBS -ldl"
-+LIBGCJGC_EXTRA_LDFLAGS="-ldl"
-+
-+else
-+ echo "$ac_t""no" 1>&6
-+fi
-+
-+
-+
- INCLUDES=-I${srcdir}/include
- THREADLIBS=
- case "$THREADS" in
- no | none | single)
- THREADS=none
-+ LIBGCJGC_EXTRA_LDFLAGS=
- ;;
- posix | pthreads)
- THREADS=posix
-@@ -2806,6 +2852,7 @@
- ;;
- *-*-cygwin*)
- THREADLIBS=
-+ LIBGCJGC_EXTRA_LDFLAGS=
- ;;
- esac
- ;;
-@@ -2834,48 +2881,6 @@
- esac
-
-
--echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
--echo "configure:2839: checking for dlopen in -ldl" >&5
--ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
--if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-- echo $ac_n "(cached) $ac_c" 1>&6
--else
-- ac_save_LIBS="$LIBS"
--LIBS="-ldl $LIBS"
--cat > conftest.$ac_ext <<EOF
--#line 2847 "configure"
--#include "confdefs.h"
--/* Override any gcc2 internal prototype to avoid an error. */
--/* We use char because int might match the return type of a gcc2
-- builtin and then its argument prototype would still apply. */
--char dlopen();
--
--int main() {
--dlopen()
--; return 0; }
--EOF
--if { (eval echo configure:2858: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-- rm -rf conftest*
-- eval "ac_cv_lib_$ac_lib_var=yes"
--else
-- echo "configure: failed program was:" >&5
-- cat conftest.$ac_ext >&5
-- rm -rf conftest*
-- eval "ac_cv_lib_$ac_lib_var=no"
--fi
--rm -f conftest*
--LIBS="$ac_save_LIBS"
--
--fi
--if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-- echo "$ac_t""yes" 1>&6
-- EXTRA_TEST_LIBS="$EXTRA_TEST_LIBS -ldl"
--else
-- echo "$ac_t""no" 1>&6
--fi
--
--
--
- target_all=libgcjgc.la
-
-
-@@ -3295,8 +3300,9 @@
- s%@STRIP@%$STRIP%g
- s%@LIBTOOL@%$LIBTOOL%g
- s%@CXXCPP@%$CXXCPP%g
--s%@THREADLIBS@%$THREADLIBS%g
- s%@EXTRA_TEST_LIBS@%$EXTRA_TEST_LIBS%g
-+s%@THREADLIBS@%$THREADLIBS%g
-+s%@LIBGCJGC_EXTRA_LDFLAGS@%$LIBGCJGC_EXTRA_LDFLAGS%g
- s%@target_all@%$target_all%g
- s%@INCLUDES@%$INCLUDES%g
- s%@CXXINCLUDES@%$CXXINCLUDES%g
-diff -urN boehm-gc.org/configure.in boehm-gc/configure.in
---- boehm-gc.org/configure.in Sat Oct 18 12:32:07 2003
-+++ boehm-gc/configure.in Sat Oct 18 12:32:55 2003
-@@ -63,11 +63,18 @@
- esac]
- )
-
-+AC_CHECK_LIB(dl, dlopen, [
-+EXTRA_TEST_LIBS="$EXTRA_TEST_LIBS -ldl"
-+LIBGCJGC_EXTRA_LDFLAGS="-ldl"
-+])
-+AC_SUBST(EXTRA_TEST_LIBS)
-+
- INCLUDES=-I${srcdir}/include
- THREADLIBS=
- case "$THREADS" in
- no | none | single)
- THREADS=none
-+ LIBGCJGC_EXTRA_LDFLAGS=
- ;;
- posix | pthreads)
- THREADS=posix
-@@ -110,6 +117,7 @@
- ;;
- *-*-cygwin*)
- THREADLIBS=
-+ LIBGCJGC_EXTRA_LDFLAGS=
- ;;
- esac
- ;;
-@@ -128,9 +136,7 @@
- ;;
- esac
- AC_SUBST(THREADLIBS)
--
--AC_CHECK_LIB(dl, dlopen, EXTRA_TEST_LIBS="$EXTRA_TEST_LIBS -ldl")
--AC_SUBST(EXTRA_TEST_LIBS)
-+AC_SUBST(LIBGCJGC_EXTRA_LDFLAGS)
-
- target_all=libgcjgc.la
- AC_SUBST(target_all)
+++ /dev/null
-2001-10-12 Jakub Jelinek <jakub@redhat.com>
-
- * tree-inline.c (initialize_inlined_parameters): Fail if less
- arguments are passed than expected.
- (expand_call_inline): Cleanup if initialize_inlined_parameters
- fails.
-
- * g++.dg/other/inline1.C: New test.
-
---- gcc/tree-inline.c.jj Tue Oct 9 16:03:13 2001
-+++ gcc/tree-inline.c Fri Oct 12 17:08:23 2001
-@@ -474,20 +474,28 @@ initialize_inlined_parameters (id, args,
-
- /* Loop through the parameter declarations, replacing each with an
- equivalent VAR_DECL, appropriately initialized. */
-- for (p = parms, a = args; p;
-- a = a ? TREE_CHAIN (a) : a, p = TREE_CHAIN (p))
-+ for (p = parms, a = args; p; a = TREE_CHAIN (a), p = TREE_CHAIN (p))
- {
- #ifndef INLINER_FOR_JAVA
- tree init_stmt;
- tree cleanup;
- #endif /* not INLINER_FOR_JAVA */
- tree var;
- tree value;
- tree var_sub;
-
-+ if (a == NULL_TREE)
-+ {
-+ pop_srcloc ();
-+ /* If less arguments were passed than actually required,
-+ issue warning and avoid inlining. */
-+ warning ("too few arguments passed to inline function, suppressing inlining");
-+ return error_mark_node;
-+ }
-+
- /* Find the initializer. */
- value = (*lang_hooks.tree_inlining.convert_parm_for_inlining)
-- (p, a ? TREE_VALUE (a) : NULL_TREE, fn);
-+ (p, TREE_VALUE (a), fn);
-
- /* If the parameter is never assigned to, we may not need to
- create a new variable here at all. Instead, we may be able
-@@ -863,6 +871,14 @@ expand_call_inline (tp, walk_subtrees, d
-
- /* Initialize the parameters. */
- arg_inits = initialize_inlined_parameters (id, TREE_OPERAND (t, 1), fn);
-+ if (arg_inits == error_mark_node)
-+ {
-+ /* Clean up. */
-+ splay_tree_delete (id->decl_map);
-+ id->decl_map = st;
-+ return NULL_TREE;
-+ }
-+
- /* Expand any inlined calls in the initializers. Do this before we
- push FN on the stack of functions we are inlining; we want to
- inline calls to FN that appear in the initializers for the
---- gcc/testsuite/g++.dg/other/inline1.C.jj Fri Oct 12 16:54:05 2001
-+++ gcc/testsuite/g++.dg/other/inline1.C Fri Oct 12 17:14:35 2001
-@@ -0,0 +1,38 @@
-+// { dg-do compile { target i?86-*-* } }
-+// { dg-options -O }
-+
-+typedef unsigned int u4;
-+typedef unsigned long long u8;
-+typedef u8 (*u8tou8)(u8);
-+
-+struct C {
-+ static inline u8 a(u4 x, u4 y);
-+ static inline u8 b(unsigned char *p) { return c(*(u8 *)p); }
-+ static inline u8 c(u8 x) { // { dg-warning "too few arguments" "too few" }
-+ return ((u8tou8)a)(x);
-+ }
-+};
-+
-+inline u8 C::a(u4 x, u4 y) {
-+ return x + y;
-+}
-+
-+u8 n = 0x123456789abcdef;
-+
-+struct B {
-+ unsigned char *e;
-+ B() { e = (unsigned char *) &n; }
-+ u8 f() {
-+ return C::b(e);
-+ }
-+};
-+
-+struct A {
-+ B *g;
-+ void foo ();
-+};
-+
-+void A::foo ()
-+{
-+ g->f();
-+}
+++ /dev/null
-2002-07-11 Jakub Jelinek <jakub@redhat.com>
-
- * g++.dg/opt/nrv5.C: New test.
-
-2002-07-05 Jason Merrill <jason@redhat.com>
-
- * g++.dg/opt/nrv4.C: New test.
-
-2002-04-09 Jason Merrill <jason@redhat.com>
-
- * g++.dg/opt/nrv3.C: New test.
-
---- gcc/testsuite/g++.dg/opt/nrv3.C.jj Thu Apr 11 16:25:15 2002
-+++ gcc/testsuite/g++.dg/opt/nrv3.C Tue Apr 9 19:02:43 2002
-@@ -0,0 +1,24 @@
-+// PR optimization/6189
-+// Bug: we forgot about foo's nrv after writing it out.
-+// { dg-options -O3 }
-+// { dg-do run }
-+
-+struct A
-+{
-+ int i;
-+};
-+
-+
-+A foo ()
-+{
-+ A a;
-+ a.i = 42;
-+ return a;
-+}
-+
-+
-+int main()
-+{
-+ A b = foo();
-+ return b.i != 42;
-+}
---- gcc/testsuite/g++.dg/opt/nrv4.C.jj Thu Apr 11 16:25:15 2002
-+++ gcc/testsuite/g++.dg/opt/nrv4.C Fri Jul 5 17:16:56 2002
-@@ -0,0 +1,23 @@
-+// PR optimization/7145
-+// Bug: The NRV optimization caused us to lose the initializer for 'ret'.
-+// { dg-options -O }
-+// { dg-do run }
-+
-+struct GdkColor {
-+ long pixel;
-+ short red;
-+ short green;
-+ short blue;
-+};
-+
-+inline GdkColor mkcolor() {
-+ GdkColor ret={0,1,2,3};
-+ return ret;
-+}
-+
-+int
-+main()
-+{
-+ GdkColor col=mkcolor();
-+ return (col.pixel != 0 || col.red != 1 || col.green != 2 || col.blue != 3);
-+}
---- gcc/testsuite/g++.dg/opt/nrv5.C.jj Thu Apr 11 16:25:15 2002
-+++ gcc/testsuite/g++.dg/opt/nrv5.C Thu Jul 11 11:29:33 2002
-@@ -0,0 +1,52 @@
-+// Test for the named return value optimization with inlining.
-+// Contributed by Jakub Jelinek <jakub@redhat.com>.
-+// { dg-do run }
-+// { dg-options -O2 }
-+
-+enum E { E0, E1, E2, E3 };
-+
-+struct S
-+{
-+ E s0 : 2;
-+ bool s1 : 1, s2 : 1, s3 : 1, s4 : 1, s5 : 1, s6 : 1;
-+ S () : s1 (true), s2 (false), s0 (E1), s3 (true), s4 (false), s5 (true), s6 (false) {}
-+ void foo (E x) { this->s0 = x; }
-+};
-+
-+inline S foo ()
-+{
-+ S s;
-+ s.foo (E0);
-+ return s;
-+}
-+
-+inline S bar ()
-+{
-+ S s;
-+ s.foo (E2);
-+ return s;
-+}
-+
-+void check (S &s, bool isfoo);
-+
-+void test (bool isfoo)
-+{
-+ S a = isfoo ? foo () : bar ();
-+ check (a, isfoo);
-+}
-+
-+extern "C" void abort ();
-+
-+void check (S &s, bool isfoo)
-+{
-+ if (! s.s1 || s.s2 || ! s.s3 || s.s4 || ! s.s5 || s.s6)
-+ abort ();
-+ if (s.s0 != (isfoo ? E0 : E2))
-+ abort ();
-+}
-+
-+int main ()
-+{
-+ test (true);
-+ test (false);
-+}
+++ /dev/null
-2002-05-09 Jason Merrill <jason@redhat.com>
-
- * g++.dg/ext/asm2.C: New test.
-
---- gcc/testsuite/g++.dg/ext/asm2.C.jj Wed May 15 13:51:22 2002
-+++ gcc/testsuite/g++.dg/ext/asm2.C Sun May 12 11:25:45 2002
-@@ -0,0 +1,12 @@
-+// Bug: in a template, we forgot that this was a simple asm, and decided
-+// that %edi was a malformed operand specifier.
-+
-+template <class T> class I {
-+public:
-+ void f() { asm ("# mov %edi, %esi" ); }
-+};
-+
-+int main () {
-+ I<int> x;
-+ x.f();
-+}
+++ /dev/null
-2002-07-11 Jakub Jelinek <jakub@redhat.com>
-
- PR debug/7241
- * dwarf2out.c (base_type_die): Use DW_ATE_*_char even if main
- variant is char_type_node and type name is char.
-
---- gcc/dwarf2out.c.jj Wed Jun 19 15:09:56 2002
-+++ gcc/dwarf2out.c Thu Jul 11 20:47:52 2002
-@@ -7335,9 +7335,11 @@ base_type_die (type)
- /* Carefully distinguish the C character types, without messing
- up if the language is not C. Note that we check only for the names
- that contain spaces; other names might occur by coincidence in other
-- languages. */
-+ languages, so we only check if main variant is char_type_node. */
- if (! (TYPE_PRECISION (type) == CHAR_TYPE_SIZE
- && (type == char_type_node
-+ || (TYPE_MAIN_VARIANT (type) == char_type_node
-+ && ! strcmp (type_name, "char"))
- || ! strcmp (type_name, "signed char")
- || ! strcmp (type_name, "unsigned char"))))
- {
+++ /dev/null
-2002-01-25 Jakub Jelinek <jakub@redhat.com>
-
- * g++.dg/other/redecl1.C: New test.
-
---- gcc/testsuite/g++.dg/other/redecl1.C.jj Fri Jan 25 00:19:22 2002
-+++ gcc/testsuite/g++.dg/other/redecl1.C Fri Jan 25 00:23:33 2002
-@@ -0,0 +1,10 @@
-+// PR c++/5857
-+// This testcase failed because during duplicate_decls the type was promoted
-+// to int.
-+
-+// { dg-do compile }
-+
-+typedef char baz;
-+extern const char foo[];
-+const baz foo[] = "xyz";
-+const char bar[] = "abc";
+++ /dev/null
-2002-05-08 Jason Merrill <jason@redhat.com>
-
- * g++.dg/debug/const1.C: New test.
-
---- gcc/testsuite/g++.dg/debug/const1.C.jj Thu Aug 30 22:30:55 2001
-+++ gcc/testsuite/g++.dg/debug/const1.C Wed May 8 17:33:04 2002
-@@ -0,0 +1,11 @@
-+// PR c++/6381
-+// Bug: we were emitting the initializer for bar, which referenced foo,
-+// which was not emitted.
-+
-+// { dg-options "-O" }
-+// { dg-do link }
-+
-+static const int foo[] = { 0 };
-+static const int * const bar[] = { foo };
-+
-+int main() {}
+++ /dev/null
-2002-04-30 Jakub Jelinek <jakub@redhat.com>
-
- * g++.dg/debug/typedef1.C: New test.
-
---- gcc/testsuite/g++.dg/debug/typedef1.C.jj Thu Aug 30 22:30:55 2001
-+++ gcc/testsuite/g++.dg/debug/typedef1.C Tue Apr 30 19:50:12 2002
-@@ -0,0 +1,17 @@
-+// PR debug/6436
-+// { dg-do compile }
-+
-+typedef struct
-+{
-+ unsigned int a0, a1;
-+} A __attribute__ ((aligned(8)));
-+
-+typedef struct
-+{
-+ A a;
-+} B;
-+
-+struct C
-+{
-+ B *bp;
-+};
+++ /dev/null
-2001-10-31 Jakub Jelinek <jakub@redhat.com>
-
- * frame.c (fde_merge): Choose just one from FDEs for the
- same function in erratic array.
-
---- gcc/unwind-dw2-fde.c.jj Fri Jan 11 14:01:21 2002
-+++ gcc/unwind-dw2-fde.c Tue Jan 15 15:58:27 2002
-@@ -535,7 +535,7 @@ fde_merge (struct object *ob, fde_compar
- struct fde_vector *v1, struct fde_vector *v2)
- {
- size_t i1, i2;
-- fde * fde2;
-+ fde * fde2 = NULL;
-
- i2 = v2->count;
- if (i2 > 0)
-@@ -544,6 +544,17 @@ fde_merge (struct object *ob, fde_compar
- do
- {
- i2--;
-+ if (fde2 != NULL && fde_compare (ob, v2->array[i2], fde2) == 0)
-+ {
-+ /* Some linkers (e.g. 2.10.91.0.2 or 2.11.92.0.8) resolve
-+ section relative relocations against removed linkonce
-+ section to corresponding location in the output linkonce
-+ section. Always use the earliest fde in that case. */
-+ fde2 = v2->array[i2];
-+ v1->array[i1+i2+1] = fde2;
-+ v1->array[i1+i2] = fde2;
-+ continue;
-+ }
- fde2 = v2->array[i2];
- while (i1 > 0 && fde_compare (ob, v1->array[i1-1], fde2) > 0)
- {
+++ /dev/null
-2002-05-20 Jakub Jelinek <jakub@redhat.com>
-
- * gcc.dg/20020525-1.c: New test.
-
---- gcc/testsuite/gcc.dg/20020525-1.c.jj Thu Aug 30 22:30:55 2001
-+++ gcc/testsuite/gcc.dg/20020525-1.c Sat May 25 10:45:13 2002
-@@ -0,0 +1,24 @@
-+/* PR optimization/6703
-+ Origin: Glen Nakamura <glen@imodulo.com> */
-+/* { dg-do run } */
-+/* { dg-options "-O2" } */
-+
-+extern void abort (void);
-+extern void exit (int);
-+
-+void foo (int *x, int y)
-+{
-+ __builtin_memset (x, 0, y);
-+}
-+
-+int main ()
-+{
-+ int x[2] = { 0x5a5a5a5a, 0x5a5a5a5a };
-+
-+ if (x[1] != 0x5a5a5a5a)
-+ abort ();
-+ foo (x, sizeof (int) + 1);
-+ if (x[1] == 0x5a5a5a5a)
-+ abort ();
-+ exit (0);
-+}
+++ /dev/null
-2002-08-07 Jakub Jelinek <jakub@redhat.com>
-
- * tree-inline.c (remap_decl): Make sure DECL_TOO_LATE is clear for
- remapped labels.
-
- * gcc.c-torture/compile/20020807-1.c: New test.
-
---- gcc/tree-inline.c.jj 2002-04-17 15:35:57.000000000 +0200
-+++ gcc/tree-inline.c 2002-08-07 14:53:14.000000000 +0200
-@@ -145,6 +145,9 @@ remap_decl (decl, id)
- t = copy_decl_for_inlining (decl, fn,
- VARRAY_TREE (id->fns, 0));
-
-+ if (TREE_CODE (t) == LABEL_DECL)
-+ DECL_TOO_LATE (t) = 0;
-+
- /* The decl T could be a dynamic array or other variable size type,
- in which case some fields need to be remapped because they may
- contain SAVE_EXPRs. */
---- gcc/testsuite/gcc.c-torture/compile/20020807-1.c.jj 2002-08-07 14:55:26.000000000 +0200
-+++ gcc/testsuite/gcc.c-torture/compile/20020807-1.c 2002-08-07 14:22:07.000000000 +0200
-@@ -0,0 +1,33 @@
-+int x;
-+
-+static int
-+__attribute__ ((noinline))
-+foo (void)
-+{
-+ return 0;
-+}
-+
-+static void
-+__attribute__ ((noinline))
-+bar (void)
-+{
-+}
-+
-+static inline void
-+baz (void)
-+{
-+ char arr[x];
-+
-+lab:
-+ if (foo () == -1)
-+ {
-+ bar ();
-+ goto lab;
-+ }
-+}
-+
-+void
-+test (void)
-+{
-+ baz ();
-+}
+++ /dev/null
---- libjava/Makefile.am.jj Tue Jun 4 20:41:44 2002
-+++ libjava/Makefile.am Wed Jun 5 15:20:30 2002
-@@ -111,6 +111,8 @@ INCLUDES = -I$(top_srcdir) -Iinclude -I$
-
- ## ################################################################
-
-+rpath_def = $(shell if test "$(toolexeclibdir)" != /usr/lib; then echo -rpath $(toolexeclibdir); fi)
-+
- ##
- ## How to build libgcj.a and libgcj.jar
- ##
-@@ -410,7 +412,7 @@ EXTRA_jv_convert_SOURCES = $(convert_sou
- ## need this because we are explicitly using libtool to link using the
- ## `.la' file.
- jv_convert_LDFLAGS = --main=gnu.gcj.convert.Convert \
-- -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS)
-+ $(rpath_def) -shared-libgcc $(THREADLDFLAGS)
- jv_convert_LINK = $(GCJLINK)
- ## We don't explicitly link in the libraries we need; libgcj.la brings
- ## in all dependencies. We need the -L so that gcj can find libgcj
-@@ -429,7 +431,7 @@ gij_SOURCES = gij.cc
- ## We need -nodefaultlibs because we want to avoid gcj's `-lgcj'. We
- ## need this because we are explicitly using libtool to link using the
- ## `.la' file.
--gij_LDFLAGS = -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS)
-+gij_LDFLAGS = $(rpath_def) -shared-libgcc $(THREADLDFLAGS)
- gij_LINK = $(GCJLINK)
- ## See jv_convert_LDADD.
- gij_LDADD = -L$(here)/.libs libgcj.la
-@@ -441,7 +443,7 @@ rmic_SOURCES =
- ## This is a dummy definition.
- EXTRA_rmic_SOURCES = $(rmi_java_source_files)
- rmic_LDFLAGS = --main=gnu.java.rmi.rmic.RMIC \
-- -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS)
-+ $(rpath_def) -shared-libgcc $(THREADLDFLAGS)
- rmic_LINK = $(GCJLINK)
- ## See jv_convert_LDADD.
- rmic_LDADD = -L$(here)/.libs libgcj.la
-@@ -453,7 +455,7 @@ rmiregistry_SOURCES =
- ## This is a dummy definition.
- EXTRA_rmiregistry_SOURCES = $(rmi_java_source_files)
- rmiregistry_LDFLAGS = --main=gnu.java.rmi.registry.RegistryImpl \
-- -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS)
-+ $(rpath_def) -shared-libgcc $(THREADLDFLAGS)
- rmiregistry_LINK = $(GCJLINK)
- ## See jv_convert_LDADD.
- rmiregistry_LDADD = -L$(here)/.libs libgcj.la
---- libjava/Makefile.in.jj Tue Jun 4 23:25:56 2002
-+++ libjava/Makefile.in Wed Jun 5 15:21:59 2002
-@@ -184,6 +184,7 @@ INCLUDES = -I$(top_srcdir) -Iinclude -I$
- $(GCINCS) $(THREADINCS) $(INCLTDL) \
- $(GCC_UNWIND_INCLUDE) $(ZINCS) $(LIBFFIINCS)
-
-+rpath_def = $(shell if test "$(toolexeclibdir)" != /usr/lib; then echo -rpath $(toolexeclibdir); fi)
-
- nat_files = $(nat_source_files:.cc=.lo)
- x_nat_files = $(x_nat_source_files:.cc=.lo)
-@@ -263,7 +264,7 @@ CONVERT_DIR = gnu/gcj/convert
- jv_convert_SOURCES =
- EXTRA_jv_convert_SOURCES = $(convert_source_files)
- jv_convert_LDFLAGS = --main=gnu.gcj.convert.Convert \
-- -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS)
-+ $(rpath_def) -shared-libgcc $(THREADLDFLAGS)
-
- jv_convert_LINK = $(GCJLINK)
- jv_convert_LDADD = -L$(here)/.libs libgcj.la
-@@ -272,7 +273,7 @@ jv_convert_DEPENDENCIES = $(convert_sour
-
-
- gij_SOURCES = gij.cc
--gij_LDFLAGS = -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS)
-+gij_LDFLAGS = $(rpath_def) -shared-libgcc $(THREADLDFLAGS)
- gij_LINK = $(GCJLINK)
- gij_LDADD = -L$(here)/.libs libgcj.la
- gij_DEPENDENCIES = libgcj.la libgcj.spec
-@@ -280,7 +281,7 @@ gij_DEPENDENCIES = libgcj.la libgcj.spec
- rmic_SOURCES =
- EXTRA_rmic_SOURCES = $(rmi_java_source_files)
- rmic_LDFLAGS = --main=gnu.java.rmi.rmic.RMIC \
-- -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS)
-+ $(rpath_def) -shared-libgcc $(THREADLDFLAGS)
-
- rmic_LINK = $(GCJLINK)
- rmic_LDADD = -L$(here)/.libs libgcj.la
-@@ -289,7 +290,7 @@ rmic_DEPENDENCIES = libgcj.la libgcj.spe
- rmiregistry_SOURCES =
- EXTRA_rmiregistry_SOURCES = $(rmi_java_source_files)
- rmiregistry_LDFLAGS = --main=gnu.java.rmi.registry.RegistryImpl \
-- -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS)
-+ $(rpath_def) -shared-libgcc $(THREADLDFLAGS)
-
- rmiregistry_LINK = $(GCJLINK)
- rmiregistry_LDADD = -L$(here)/.libs libgcj.la
+++ /dev/null
-2002-06-04 Jakub Jelinek <jakub@redhat.com>
-
- * gcc.c-torture/compile/20020604-1.c: New test.
-
---- gcc/testsuite/gcc.c-torture/compile/20020604-1.c.jj Thu Apr 11 16:25:15 2002
-+++ gcc/testsuite/gcc.c-torture/compile/20020604-1.c Mon Jun 3 17:43:12 2002
-@@ -0,0 +1,86 @@
-+/* This testcase ICEd at -O2 on IA-32, because
-+ (insn 141 139 142 (set (subreg:SF (reg:QI 72) 0)
-+ (plus:SF (reg:SF 73)
-+ (reg:SF 76))) 525 {*fop_sf_comm_nosse} (insn_list 134 (nil))
-+ (expr_list:REG_DEAD (reg:SF 73) (nil)))
-+ couldn't be reloaded. */
-+
-+void
-+foo (unsigned int n, int x, int y, unsigned char *z)
-+{
-+ int a, b;
-+ float c[2048][4];
-+
-+ switch (x)
-+ {
-+ case 0x1906:
-+ a = b = -1;
-+ break;
-+ case 0x190A:
-+ a = b = -1;
-+ break;
-+ case 0x8049:
-+ a = b = -1;
-+ break;
-+ case 0x1907:
-+ a = 1;
-+ b = 2;
-+ break;
-+ default:
-+ return;
-+ }
-+
-+ if (a >= 0)
-+ {
-+ unsigned char *d = z;
-+ unsigned int i;
-+ for (i = 0; i < n; i++)
-+ {
-+ do
-+ {
-+ union
-+ {
-+ float r;
-+ unsigned int i;
-+ }
-+ e;
-+ e.r = c[i][1];
-+ d[a] =
-+ ((e.i >= 0x3f7f0000) ? ((int) e.i <
-+ 0) ? (unsigned char) 0
-+ : (unsigned char) 255 : (e.r =
-+ e.r * (255.0F / 256.0F) +
-+ 32768.0F, (unsigned char) e.i));
-+ }
-+ while (0);
-+ d += y;
-+ }
-+ }
-+
-+ if (b >= 0)
-+ {
-+ unsigned char *d = z;
-+ unsigned int i;
-+ for (i = 0; i < n; i++)
-+ {
-+ do
-+ {
-+ union
-+ {
-+ float r;
-+ unsigned int i;
-+ }
-+ e;
-+ e.r = c[i][2];
-+ d[b] =
-+ ((e.i >= 0x3f7f0000) ? ((int) e.i <
-+ 0) ? (unsigned char) 0
-+ : (unsigned char) 255 : (e.r =
-+ e.r * (255.0F / 256.0F) +
-+ 32768.0F, (unsigned char) e.i));
-+ }
-+ while (0);
-+ d += y;
-+ }
-+ }
-+}
+++ /dev/null
-2002-05-08 Tom Rix <trix@redhat.com>
-
- * gcc.c-torture/execute/20020508-1.c: New test.
- * gcc.c-torture/execute/20020508-2.c: New test.
- * gcc.c-torture/execute/20020508-3.c: New test.
-
---- gcc/testsuite/gcc.c-torture/execute/20020508-1.c.jj Wed May 15 14:22:47 2002
-+++ gcc/testsuite/gcc.c-torture/execute/20020508-1.c Wed May 15 14:22:47 2002
-@@ -0,0 +1,104 @@
-+/* This tests the rotate patterns that some machines support. */
-+
-+#include <limits.h>
-+
-+#ifndef CHAR_BIT
-+#define CHAR_BIT 8
-+#endif
-+
-+#define ROR(a,b) (((a) >> (b)) | ((a) << ((sizeof (a) * CHAR_BIT) - (b))))
-+#define ROL(a,b) (((a) << (b)) | ((a) >> ((sizeof (a) * CHAR_BIT) - (b))))
-+
-+#define CHAR_VALUE ((unsigned char)0xf234U)
-+#define SHORT_VALUE ((unsigned short)0xf234U)
-+#define INT_VALUE 0xf234U
-+#define LONG_VALUE 0xf2345678LU
-+#define LL_VALUE 0xf2345678abcdef0LLU
-+
-+#define SHIFT1 4
-+#define SHIFT2 ((sizeof (long long) * CHAR_BIT) - SHIFT1)
-+
-+unsigned char uc = CHAR_VALUE;
-+unsigned short us = SHORT_VALUE;
-+unsigned int ui = INT_VALUE;
-+unsigned long ul = LONG_VALUE;
-+unsigned long long ull = LL_VALUE;
-+int shift1 = SHIFT1;
-+int shift2 = SHIFT2;
-+
-+main ()
-+{
-+ if (ROR (uc, shift1) != ROR (CHAR_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROR (uc, SHIFT1) != ROR (CHAR_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROR (us, shift1) != ROR (SHORT_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROR (us, SHIFT1) != ROR (SHORT_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROR (ui, shift1) != ROR (INT_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROR (ui, SHIFT1) != ROR (INT_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROR (ul, shift1) != ROR (LONG_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROR (ul, SHIFT1) != ROR (LONG_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROR (ull, shift1) != ROR (LL_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROR (ull, SHIFT1) != ROR (LL_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROR (ull, shift2) != ROR (LL_VALUE, SHIFT2))
-+ abort ();
-+
-+ if (ROR (ull, SHIFT2) != ROR (LL_VALUE, SHIFT2))
-+ abort ();
-+
-+ if (ROL (uc, shift1) != ROL (CHAR_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROL (uc, SHIFT1) != ROL (CHAR_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROL (us, shift1) != ROL (SHORT_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROL (us, SHIFT1) != ROL (SHORT_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROL (ui, shift1) != ROL (INT_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROL (ui, SHIFT1) != ROL (INT_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROL (ul, shift1) != ROL (LONG_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROL (ul, SHIFT1) != ROL (LONG_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROL (ull, shift1) != ROL (LL_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROL (ull, SHIFT1) != ROL (LL_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROL (ull, shift2) != ROL (LL_VALUE, SHIFT2))
-+ abort ();
-+
-+ if (ROL (ull, SHIFT2) != ROL (LL_VALUE, SHIFT2))
-+ abort ();
-+
-+ exit (0);
-+}
---- gcc/testsuite/gcc.c-torture/execute/20020508-2.c.jj Wed May 15 14:22:47 2002
-+++ gcc/testsuite/gcc.c-torture/execute/20020508-2.c Wed May 15 14:22:47 2002
-@@ -0,0 +1,102 @@
-+#include <limits.h>
-+
-+#ifndef CHAR_BIT
-+#define CHAR_BIT 8
-+#endif
-+
-+#define ROR(a,b) (((a) >> (b)) | ((a) << ((sizeof (a) * CHAR_BIT) - (b))))
-+#define ROL(a,b) (((a) << (b)) | ((a) >> ((sizeof (a) * CHAR_BIT) - (b))))
-+
-+#define CHAR_VALUE ((char)0x1234)
-+#define SHORT_VALUE ((short)0x1234)
-+#define INT_VALUE ((int)0x1234)
-+#define LONG_VALUE ((long)0x12345678L)
-+#define LL_VALUE ((long long)0x12345678abcdef0LL)
-+
-+#define SHIFT1 4
-+#define SHIFT2 ((sizeof (long long) * CHAR_BIT) - SHIFT1)
-+
-+char c = CHAR_VALUE;
-+short s = SHORT_VALUE;
-+int i = INT_VALUE;
-+long l = LONG_VALUE;
-+long long ll = LL_VALUE;
-+int shift1 = SHIFT1;
-+int shift2 = SHIFT2;
-+
-+main ()
-+{
-+ if (ROR (c, shift1) != ROR (CHAR_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROR (c, SHIFT1) != ROR (CHAR_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROR (s, shift1) != ROR (SHORT_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROR (s, SHIFT1) != ROR (SHORT_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROR (i, shift1) != ROR (INT_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROR (i, SHIFT1) != ROR (INT_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROR (l, shift1) != ROR (LONG_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROR (l, SHIFT1) != ROR (LONG_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROR (ll, shift1) != ROR (LL_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROR (ll, SHIFT1) != ROR (LL_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROR (ll, shift2) != ROR (LL_VALUE, SHIFT2))
-+ abort ();
-+
-+ if (ROR (ll, SHIFT2) != ROR (LL_VALUE, SHIFT2))
-+ abort ();
-+
-+ if (ROL (c, shift1) != ROL (CHAR_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROL (c, SHIFT1) != ROL (CHAR_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROL (s, shift1) != ROL (SHORT_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROL (s, SHIFT1) != ROL (SHORT_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROL (i, shift1) != ROL (INT_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROL (i, SHIFT1) != ROL (INT_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROL (l, shift1) != ROL (LONG_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROL (l, SHIFT1) != ROL (LONG_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROL (ll, shift1) != ROL (LL_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROL (ll, SHIFT1) != ROL (LL_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROL (ll, shift2) != ROL (LL_VALUE, SHIFT2))
-+ abort ();
-+
-+ if (ROL (ll, SHIFT2) != ROL (LL_VALUE, SHIFT2))
-+ abort ();
-+
-+ exit (0);
-+}
---- gcc/testsuite/gcc.c-torture/execute/20020508-3.c.jj Wed May 15 14:22:47 2002
-+++ gcc/testsuite/gcc.c-torture/execute/20020508-3.c Wed May 15 14:22:47 2002
-@@ -0,0 +1,102 @@
-+#include <limits.h>
-+
-+#ifndef CHAR_BIT
-+#define CHAR_BIT 8
-+#endif
-+
-+#define ROR(a,b) (((a) >> (b)) | ((a) << ((sizeof (a) * CHAR_BIT) - (b))))
-+#define ROL(a,b) (((a) << (b)) | ((a) >> ((sizeof (a) * CHAR_BIT) - (b))))
-+
-+#define CHAR_VALUE ((char)0xf234)
-+#define SHORT_VALUE ((short)0xf234)
-+#define INT_VALUE ((int)0xf234)
-+#define LONG_VALUE ((long)0xf2345678L)
-+#define LL_VALUE ((long long)0xf2345678abcdef0LL)
-+
-+#define SHIFT1 4
-+#define SHIFT2 ((sizeof (long long) * CHAR_BIT) - SHIFT1)
-+
-+char c = CHAR_VALUE;
-+short s = SHORT_VALUE;
-+int i = INT_VALUE;
-+long l = LONG_VALUE;
-+long long ll = LL_VALUE;
-+int shift1 = SHIFT1;
-+int shift2 = SHIFT2;
-+
-+main ()
-+{
-+ if (ROR (c, shift1) != ROR (CHAR_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROR (c, SHIFT1) != ROR (CHAR_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROR (s, shift1) != ROR (SHORT_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROR (s, SHIFT1) != ROR (SHORT_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROR (i, shift1) != ROR (INT_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROR (i, SHIFT1) != ROR (INT_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROR (l, shift1) != ROR (LONG_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROR (l, SHIFT1) != ROR (LONG_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROR (ll, shift1) != ROR (LL_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROR (ll, SHIFT1) != ROR (LL_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROR (ll, shift2) != ROR (LL_VALUE, SHIFT2))
-+ abort ();
-+
-+ if (ROR (ll, SHIFT2) != ROR (LL_VALUE, SHIFT2))
-+ abort ();
-+
-+ if (ROL (c, shift1) != ROL (CHAR_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROL (c, SHIFT1) != ROL (CHAR_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROL (s, shift1) != ROL (SHORT_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROL (s, SHIFT1) != ROL (SHORT_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROL (i, shift1) != ROL (INT_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROL (i, SHIFT1) != ROL (INT_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROL (l, shift1) != ROL (LONG_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROL (l, SHIFT1) != ROL (LONG_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROL (ll, shift1) != ROL (LL_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROL (ll, SHIFT1) != ROL (LL_VALUE, SHIFT1))
-+ abort ();
-+
-+ if (ROL (ll, shift2) != ROL (LL_VALUE, SHIFT2))
-+ abort ();
-+
-+ if (ROL (ll, SHIFT2) != ROL (LL_VALUE, SHIFT2))
-+ abort ();
-+
-+ exit (0);
-+}