rpms/gcc/devel gcc41-pr27761.patch, NONE, 1.1 gcc41-pr30110.patch, NONE, 1.1 protoize.1, NONE, 1.1 gcc41-pr25874.patch, 1.1, 1.2 gcc41-tests.patch, 1.3, 1.4 gcc41.spec, 1.127, 1.128 gcc41-pr29949.patch, 1.1, NONE gcc41-pr29965.patch, 1.2, NONE

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Fri Dec 8 20:46:47 UTC 2006


Author: jakub

Update of /cvs/dist/rpms/gcc/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv20428

Modified Files:
	gcc41-pr25874.patch gcc41-tests.patch gcc41.spec 
Added Files:
	gcc41-pr27761.patch gcc41-pr30110.patch protoize.1 
Removed Files:
	gcc41-pr29949.patch gcc41-pr29965.patch 
Log Message:
4.1.1-45

gcc41-pr27761.patch:
 combine.c |   27 +++++++++++++++++----------
 1 files changed, 17 insertions(+), 10 deletions(-)

--- NEW FILE gcc41-pr27761.patch ---
2006-12-08  Jim Wilson  <wilson at specifix.com>
	    Jakub Jelinek  <jakub at redhat.com>

	PR rtl-optimization/27761
	* combine.c (try_combine): Don't create a useless garbage SET
	if PATTERN (i2) is a PARALLEL.  If added_sets_1, save
	PATTERN (i1) resp. SET from i1src to i1dest in i1pat
	and use it to prevent accidental modification of i1src.

--- gcc/combine.c.jj	2006-11-17 09:55:14.000000000 +0100
+++ gcc/combine.c	2006-12-07 15:33:37.000000000 +0100
@@ -1819,8 +1819,8 @@ try_combine (rtx i3, rtx i2, rtx i1, int
   rtx i3dest_killed = 0;
   /* SET_DEST and SET_SRC of I2 and I1.  */
   rtx i2dest, i2src, i1dest = 0, i1src = 0;
-  /* PATTERN (I2), or a copy of it in certain cases.  */
-  rtx i2pat;
+  /* PATTERN (I1) and PATTERN (I2), or a copy of it in certain cases.  */
+  rtx i1pat = 0, i2pat = 0;
   /* Indicates if I2DEST or I1DEST is in I2SRC or I1_SRC.  */
   int i2dest_in_i2src = 0, i1dest_in_i1src = 0, i2dest_in_i1src = 0;
   int i2dest_killed = 0, i1dest_killed = 0;
@@ -2218,12 +2218,21 @@ try_combine (rtx i3, rtx i2, rtx i1, int
      rtx.  If I2 is a PARALLEL, we just need the piece that assigns I2SRC to
      I2DEST.  */
 
-  i2pat = (GET_CODE (PATTERN (i2)) == PARALLEL
-	   ? gen_rtx_SET (VOIDmode, i2dest, i2src)
-	   : PATTERN (i2));
-
   if (added_sets_2)
-    i2pat = copy_rtx (i2pat);
+    {
+      if (GET_CODE (PATTERN (i2)) == PARALLEL)
+	i2pat = gen_rtx_SET (VOIDmode, i2dest, copy_rtx (i2src));
+      else
+	i2pat = copy_rtx (PATTERN (i2));
+    }
+
+  if (added_sets_1)
+    {
+      if (GET_CODE (PATTERN (i1)) == PARALLEL)
+	i1pat = gen_rtx_SET (VOIDmode, i1dest, copy_rtx (i1src));
+      else
+	i1pat = copy_rtx (PATTERN (i1));
+    }
 
   combine_merges++;
 
@@ -2418,9 +2427,7 @@ try_combine (rtx i3, rtx i2, rtx i1, int
 	}
 
       if (added_sets_1)
-	XVECEXP (newpat, 0, --total_sets)
-	  = (GET_CODE (PATTERN (i1)) == PARALLEL
-	     ? gen_rtx_SET (VOIDmode, i1dest, i1src) : PATTERN (i1));
+	XVECEXP (newpat, 0, --total_sets) = i1pat;
 
       if (added_sets_2)
 	{

gcc41-pr30110.patch:
 0 files changed

--- NEW FILE gcc41-pr30110.patch ---
2006-12-08  Ben Konrath  <bkonrath at redhat.com>

	PR libgcj/30110:
	* Makefile.am: Add contents of classpath/external to src.zip.
	* Makefile.in: Regenerate.

--- libjava/Makefile.am	(revision 119663)
+++ libjava/Makefile.am	(revision 119664)
@@ -913,6 +913,27 @@ src.zip:
 	    echo $(srcdir)/classpath; \
 	    echo $$file; \
 	  done ); \
+	  ( cd $(srcdir)/classpath/external/sax; \
+	  find org -name '*.java' -print | \
+	  while read file; do \
+	    echo "x-C" | sed -e 's/^.//'; \
+	    echo $(srcdir)/classpath/external/sax; \
+	    echo $$file; \
+	  done ); \
+	  ( cd $(srcdir)/classpath/external/relaxngDatatype; \
+	  find org -name '*.java' -print | \
+	  while read file; do \
+	    echo "x-C" | sed -e 's/^.//'; \
+	    echo $(srcdir)/classpath/external/relaxngDatatype; \
+	    echo $$file; \
+	  done ); \
+	  ( cd $(srcdir)/classpath/external/w3c_dom; \
+	  find org -name '*.java' -print | \
+	  while read file; do \
+	    echo "x-C" | sed -e 's/^.//'; \
+	    echo $(srcdir)/classpath/external/w3c_dom; \
+	    echo $$file; \
+	  done ); \
 ## Now the build tree.
 	  ( cd classpath; \
 	    find gnu java -name '*.java' -print | \
--- libjava/Makefile.in	(revision 119663)
+++ libjava/Makefile.in	(revision 119664)
@@ -11864,6 +11864,27 @@ src.zip:
 	    echo $(srcdir)/classpath; \
 	    echo $$file; \
 	  done ); \
+	  ( cd $(srcdir)/classpath/external/sax; \
+	  find org -name '*.java' -print | \
+	  while read file; do \
+	    echo "x-C" | sed -e 's/^.//'; \
+	    echo $(srcdir)/classpath/external/sax; \
+	    echo $$file; \
+	  done ); \
+	  ( cd $(srcdir)/classpath/external/relaxngDatatype; \
+	  find org -name '*.java' -print | \
+	  while read file; do \
+	    echo "x-C" | sed -e 's/^.//'; \
+	    echo $(srcdir)/classpath/external/relaxngDatatype; \
+	    echo $$file; \
+	  done ); \
+	  ( cd $(srcdir)/classpath/external/w3c_dom; \
+	  find org -name '*.java' -print | \
+	  while read file; do \
+	    echo "x-C" | sed -e 's/^.//'; \
+	    echo $(srcdir)/classpath/external/w3c_dom; \
+	    echo $$file; \
+	  done ); \
 	  ( cd classpath; \
 	    find gnu java -name '*.java' -print | \
 	    while read file; do \


--- NEW FILE protoize.1 ---
.\" Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation
.\" See section COPYING for conditions for redistribution
.\"
.TH protoize 1 "8 December 2006" "GCC" "GNU"
.SH NAME
protoize, unprotoize \- automatically add or remove function prototypes
.SH SYNOPSIS
.HP 7
\fBprotoize\fR [\-CfgklNnqv] [\-B \fIDIRECTORY\fR] [\-c \fICOMPILATION-OPTIONS\fR] [\-d \fIDIRECTORY\fR] [\-i \fISTRING\fR] [\-p \fIPROGRAM\fR] [\-x \fIFILE\fR] [\fIFILE\fR...]
.HP 7
\fBunprotoize\fR [\-fkNnqv] [\-c \fICOMPILATION-OPTIONS\fR] [\-d \fIDIRECTORY\fR] [\-i \fISTRING\fR] [\-p \fIPROGRAM\fR] [\-x \fIFILE\fR] [\fIFILE\fR...]
.SH DESCRIPTION
.PP
\fBprotoize\fR is an optional part of GCC.
You can use it to add prototypes to a program,
thus converting the program to ANSI C in one respect.
The companion program
\fBunprotoize\fR does the reverse: it removes argument types from any prototypes that are found.
.PP
When you run these programs, you must specify a set of source files
as command line arguments.
The conversion programs start out by compiling these files
to see what functions they define.
The information gathered about a file
\fIFOO\fR is saved in a file named \fIFOO.X\fR.
.PP
After scanning comes the actual conversion.
The specified files are all eligible to be converted;
any files they include (whether sources or just headers) are eligible as well.
.PP
But not all the eligible files are converted.
By default,
\fBprotoize\fR and \fBunprotoize\fR
convert only source and header files in the current directory.
You can specify additional directories whose files
should be converted with the
\fB\-d\fR \fIDIRECTORY\fR option.
You can also specify particular files to exclude with the
\fB\-x\fR \fIFILE\fR option.
A file is converted if it is eligible, its directory name matches one of the
specified directory names, and its name within the directory has not
been excluded.
.PP
Basic conversion with
\fBprotoize\fR consists of rewriting most function definitions and function declarations
to specify the types of the arguments.
The only ones not rewritten are those for varargs functions.
.PP
\fBprotoize\fR optionally inserts prototype declarations at the beginning of the source file,
to make them available for any calls that precede the function's definition.
Or it can insert prototype declarations with block scope
in the blocks where undeclared functions are called.
.PP
Basic conversion with
\fBunprotoize\fR
consists of rewriting most function declarations to remove any argument types,
and rewriting function definitions to the old-style pre-ANSI form.
.PP
Both conversion programs print a warning for any function
declaration or definition that they can't convert.
You can suppress these warnings with the
\fB\-q\fR option.
.PP
The output from
\fBprotoize\fR or \fBunprotoize\fR
replaces the original source file.
The original file is renamed to a name ending with
\fI.save\fR.
If the \fI.save\fR file already exists, then the source file is simply discarded.
.PP
\fBprotoize\fR and \fBunprotoize\fR both depend on
\fBgcc\fR\|(1) to scan the program and collect information about the functions it uses.
.PP
The options are as follows:
.TP
\fB\-B\fR \fIDIRECTORY\fR
Look for the file
\fISYSCALLS.c.X\fR in \fIdirectory\fR,
instead of the usual directory (normally \fI/usr/local/lib\fR).
This file contains prototype information about standard system functions.
This option applies only to \fBprotoize\fR.
.TP
\fB\-C\fR
Rename files to end in
\fI.C\fR instead of \fI.c\fR.
This is convenient if you are converting a C program to C++.
This option applies only to
\fBprotoize\fR.
.TP
\fB\-c\fR \fICOMPILATION-OPTIONS\fR
Use \fICOMPILATION-OPTIONS\fR as the options when running \fBgcc\fR\|(1) to produce the
\fI.X\fR files.
The special option \fB\-aux-info\fR is always passed in addition, to tell gcc to write a
\fI.X\fR file.
Note that the compilation options must be given as a single argument to
\fBprotoize\fR or \fBunprotoize\fR.
If you want to specify several gcc options, you must quote the entire set of
compilation options to make them a single word in the shell.
There are certain gcc arguments that you cannot use, because they
would produce the wrong kind of output.
These include
\fB\-g\fR, \fB\-O\fR, \fB\-c\fR, \fB\-S\fR,\fB\-o\fR.
If you include these in the \fICOMPILATION-OPTIONS\fR, they are ignored.
.TP
\fB\-d\fR \fIDIRECTORY\fR
Specify additional directories whose files should be converted.
.TP
\fB\-g\fR
Add explicit global declarations.
This means inserting explicit declarations at the beginning of each
source file for each function that is called in the file and was not declared.
These declarations precede the first function definition that contains a
call to an undeclared function.
This option applies only to
.\fBprotoize\fR.
.TP
\fB\-i\fR \fISTRING\fR
Indent old-style parameter declarations with the string
\fISTRING\fR.
This option applies only to
\fBprotoize\fR.
\fBunprotoize\fR converts prototyped function definitions to old-style
function definitions, where the arguments are declared between the
argument list and the initial
\fB{\fR.
By default,
\fBunprotoize\fR uses five spaces as the indentation.
If you want to indent with just one space instead, use
\fB\-i " "\fR.
.TP
\fB\-k\fR
Keep the
\fI.X\fR files.
Normally, they are deleted after conversion is finished.
.TP
\fB\-l\fR
Add explicit local declarations.
\fBprotoize\fR with
\fB\-l\fR inserts a prototype declaration for each function in each block which calls
the function without any declaration.
This option applies only to
\fBprotoize\fR.
.TP
\fB\-N\fR
Make no \fI.save\fR files.
The original files are simply deleted.
Use this option with caution.
.TP
\fB\-n\fR
Make no real changes.
This mode just prints information about the conversions
that would have been done without
\fB\-n\fR.
.TP
\fB\-p\fR \fIPROGRAM\fR
Use the program
\fBPROGRAM\fR as the compiler.
Normally, the name
\fBgcc\fR is used.
.TP
\fB\-q\fR
Work quietly.
Most warnings are suppressed.
.TP
\fB\-v\fR
Print the version number, just like
\fB\-v\fR for gcc.
.TP
\fB\-x\fR \fBFILE\fR
List of files to exclude from the conversion process.
.PP
If you need special compiler options to compile one of your program's
source files, then you should generate that file's
\fI.X\fR file specially, by running gcc on that source file with
the appropriate options and the option
\fB\-aux-info\fR.
Then run
\fBprotoize\fR on the entire set of files.
\fBprotoize\fR will use the existing
\fI.X\fR file because it is newer than the source file.
For example:
.PP
.DL $ gcc -Dfoo=bar file1.c -aux-info
.DL $ protoize *.c
.PP
You need to include the special files along with the rest in the
\fBprotoize\fR command, even though their
\fI.X\fR files already exist, because otherwise they won't get converted.
.PP
.SH SEE ALSO
\fBgcc\fR\|(1), and the Info entry for \fBgcc\fR, particularly
\fBRunning protoize\fR section.
.SH HISTORY
Ron Guilmette implemented the
\fBprotoize\fR and \fBunprotoize\fR tools.
.SH AUTHORS
See the GCC manual for the contributors to GCC.
.SH CAVEATS
The conversion programs \fBprotoize\fR and \fBunprotoize\fR
can sometimes change a source file in a way that won't work
unless you rearrange it.
.PP
\fBprotoize\fR can insert references to a type name or type tag before
the definition, or in a file where they are not defined.
.PP
If this happens, compiler error messages should indicate where the
new references are, so fixing the file by hand is straightforward.
.PP
There are some C constructs which \fBprotoize\fR
cannot figure out.
For example, it can't determine argument types for declaring a
pointer-to-function variable; this must be done by hand.  \fBprotoize\fR
inserts a comment containing \fB???\fR each time it finds such a variable;
all such variables can be found by searching for this string.
ANSI C does not require declaring the argument types of
pointer-to-function types.
.PP
Using \fBunprotoize\fR can easily introduce bugs.
If the program relied on prototypes to bring about conversion of arguments,
these conversions will not take place in the program without prototypes.
One case in which you can be sure \fBunprotoize\fR
is safe is when you are removing prototypes that were made with
\fBprotoize\fR; if the program worked before without any prototypes,
it will work again without them.
.PP
You can find all the places where this problem might occur by
compiling the program with the \fB\-Wconversion\fR option.
It prints a warning whenever an argument is converted.
.PP
Both conversion programs can be confused if there are macro calls
in and around the text to be converted.
In other words, the standard syntax for a declaration or definition
must not result from expanding a macro.
This problem is inherent in the design of C and cannot be fixed.
If only a few functions have confusing macro calls,
you can easily convert them manually.
.PP
\fBprotoize\fR cannot get the argument types for a function whose definition was not
actually compiled due to preprocessing conditionals.
When this happens, \fBprotoize\fR changes nothing in regard to such a function.
\fBprotoize\fR tries to detect such instances and warn about them.
.PP
You can generally work around this problem by using
\fBprotoize\fR step by step, each time specifying a different set of
\fB\-D\fR options for compilation, until all of the functions have been converted.
There is no automatic way to verify that you have got them all, however.
.PP
Confusion may result if there is an occasion to convert a function
declaration or definition in a region of source code where there
is more than one formal parameter list present.
Thus, attempts to convert code containing multiple (conditionally compiled)
versions of a single function header (in the same vicinity)
may not produce the desired (or expected) results.
.PP
If you plan on converting source files which contain such code,
it is recommended that you first make sure that each conditionally
compiled region of source code which contains an alternative
function header also contains at least one additional follower
token (past the final right parenthesis of the function header).
This should circumvent the problem.
.PP
\fBunprotoize\fR can become confused when trying to convert a function
definition or declaration which contains a declaration for a
pointer-to-function formal argument which has the same name as the
function being defined or declared.
We recommand you avoid such choices of formal parameter names.
.PP
It might be necessary to correct some of the indentation by hand and
break long lines.
(The conversion programs don't write lines longer than eighty characters
in any case.)
.SH BUGS
For instructions on reporting bugs, see the GCC manual.
.SH COPYING
Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
.PP
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
are preserved on all copies.
.PP
Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the
entire resulting derived work is distributed under the terms of a
permission notice identical to this one.
.PP
Permission is granted to copy and distribute translations of this
manual into another language, under the above conditions for modified
versions, except that this permission notice may be included in
translations approved by the Free Software Foundation instead of in
the original English.

gcc41-pr25874.patch:
 omp-low.c                       |   10 ++++++++++
 testsuite/g++.dg/gomp/pr25874.C |    2 ++
 testsuite/gcc.dg/gomp/pr25874.c |    2 ++
 3 files changed, 14 insertions(+)

Index: gcc41-pr25874.patch
===================================================================
RCS file: /cvs/dist/rpms/gcc/devel/gcc41-pr25874.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- gcc41-pr25874.patch	20 Apr 2006 13:50:21 -0000	1.1
+++ gcc41-pr25874.patch	8 Dec 2006 20:46:45 -0000	1.2
@@ -9,7 +9,7 @@
 
 --- gcc/omp-low.c.jj	2006-04-18 13:31:18.000000000 +0200
 +++ gcc/omp-low.c	2006-04-18 13:57:03.000000000 +0200
-@@ -2278,6 +2278,7 @@ expand_omp_parallel (struct omp_region *
+@@ -2421,6 +2421,7 @@ expand_omp_parallel (struct omp_region *
    block_stmt_iterator si;
    tree entry_stmt;
    edge e;
@@ -17,15 +17,15 @@
  
    entry_stmt = last_stmt (region->entry);
    child_fn = OMP_PARALLEL_FN (entry_stmt);
-@@ -2310,6 +2311,7 @@ expand_omp_parallel (struct omp_region *
-       new_bb = entry_bb;
-       remove_edge (entry_succ_e);
-       make_edge (new_bb, exit_succ_e->dest, EDGE_FALLTHRU);
+@@ -2456,6 +2457,7 @@ expand_omp_parallel (struct omp_region *
+ 	  exit_succ_e = single_succ_edge (exit_bb);
+ 	  make_edge (new_bb, exit_succ_e->dest, EDGE_FALLTHRU);
+ 	}
 +      do_cleanup_cfg = true;
      }
    else
      {
-@@ -2385,6 +2387,14 @@ expand_omp_parallel (struct omp_region *
+@@ -2546,6 +2548,14 @@ expand_omp_parallel (struct omp_region *
  
    /* Emit a library call to launch the children threads.  */
    expand_parallel_call (region, new_bb, entry_stmt, ws_args);

gcc41-tests.patch:
 g++.dg/debug/vartrack1.C           |   99 +++++++++++++++++++++++++++++++++++++
 g++.dg/opt/ifcvt1.C                |   17 ++++++
 g++.dg/opt/pr15054-2.C             |   39 ++++++++++++++
 g++.dg/template/array17.C          |   23 ++++++++
 gcc.c-torture/execute/20060412-1.c |   33 ++++++++++++
 gcc.c-torture/execute/20060420-1.c |   71 ++++++++++++++++++++++++++
 gcc.dg/20060425-2.c                |   10 +++
 gcc.dg/tls/opt-13.c                |   16 +++++
 gcc.target/powerpc/altivec-23.c    |   25 +++++++++
 9 files changed, 333 insertions(+)

Index: gcc41-tests.patch
===================================================================
RCS file: /cvs/dist/rpms/gcc/devel/gcc41-tests.patch,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- gcc41-tests.patch	30 Sep 2006 19:13:59 -0000	1.3
+++ gcc41-tests.patch	8 Dec 2006 20:46:45 -0000	1.4
@@ -1,3 +1,13 @@
+2006-12-08  Jakub Jelinek  <jakub at redhat.com>
+
+	* g++.dg/debug/vartrack1.C: New test.
+
+	* g++.dg/opt/ifcvt1.C: New test.
+
+2006-12-08  Alexandre Oliva  <aoliva at redhat.com>
+
+	* g++.dg/template/array17.C: New test.
+
 2006-05-05  Jakub Jelinek  <jakub at redhat.com>
 
 	* gcc.dg/tls/opt-13.c: New test.
@@ -232,3 +242,151 @@
 +  __builtin_strcpy (thr.b, "abcd");
 +  return 0;
 +}
+--- gcc/testsuite/g++.dg/debug/vartrack1.C	2004-06-24 14:04:38.000000000 -0400
++++ gcc/testsuite/g++.dg/debug/vartrack1.C	2006-12-08 05:29:41.000000000 -0500
+@@ -0,0 +1,99 @@
++// This testcase used to hang the compiler in vt_find_locations.
++// { dg-do compile }
++// { dg-options "-O2 -g" }
++
++struct S
++{
++  int a;
++  S *b, *c, *d;
++};
++
++struct T
++{
++  void f1 (S *x);
++  void f2 (S *x);
++  void f3 (S *x, S *y);
++  S *e;
++};
++
++void
++T::f3 (S *x, S *y)
++{
++  while (x != this->e && (!x || x->a == 1))
++    {
++      if (x == y->c)
++	{
++	  S *w = y->d;
++	  if (w && w->a == 0)
++	    {
++	      w->a = 1;
++	      y->a = 0;
++	      f2 (y);
++	      w = y->d;
++	    }
++	  if (w && (!w->c || w->c->a == 1) && (!w->d || w->d->a == 1))
++	    {
++	      w->a = 0;
++	      x = y;
++	      y = x->b;
++	    }
++	  else
++	    {
++	      if (w && (!w->d || w->d->a == 1))
++		{
++		  if (w->c)
++		    w->c->a = 1;
++		  w->a = 0;
++		  f1 (w);
++		  w = y->d;
++		}
++	      if (w)
++		{
++		  w->a = y->a;
++		  if (w->d)
++		    w->d->a = 1;
++		}
++	      y->a = 1;
++	      f2 (y);
++	      x = e;
++	    }
++	}
++      else
++	{
++	  S *w = y->c;
++	  if (w && w->a == 0)
++	    {
++	      w->a = 1;
++	      y->a = 0;
++	      f1 (y);
++	      w = y->c;
++	    }
++	  if (w && (!w->c || w->c->a == 1) && (!w->d || w->d->a == 1))
++	    {
++	      w->a = 0;
++	      x = y;
++	      y = x->b;
++	    }
++	  else
++	    {
++	      if (w && (!w->c || w->c->a == 1))
++		{
++		  w->a = 0;
++		  if (w->d)
++		    w->d->a = 1;
++		  f2 (w);
++		  w = y->c;
++		}
++	      if (w)
++		{
++		  w->a = y->a;
++		  if (w->c)
++		    w->c->a = 1;
++		}
++	      y->a = 1;
++	      f1 (y);
++	      x = e;
++	    }
++	}
++    }
++}
+--- gcc/testsuite/g++.dg/opt/ifcvt1.C	2006-10-04 16:28:56.502613000 +0200
++++ gcc/testsuite/g++.dg/opt/ifcvt1.C	2006-12-08 12:23:23.000000000 +0100
+@@ -0,0 +1,17 @@
++// { dg-do compile }
++// { dg-options "-O2 -fnon-call-exceptions" }
++
++struct S { ~S () throw () {} };
++double bar ();
++
++int
++foo ()
++{
++  S a;
++  int i = 0;
++  double c = bar ();
++  c = c < 0 ? -c : c;
++  if (c <= 1.e-8)
++    i += 24;
++  return i;
++}
+--- gcc/testsuite/g++.dg/template/array17.C	2006-10-04 16:28:56.502613000 +0200
++++ gcc/testsuite/g++.dg/template/array17.C	2006-12-08 12:38:27.000000000 +0100
+@@ -0,0 +1,23 @@
++// { dg-do compile }
++
++template <typename T>
++struct V {
++  T& operator[](int);
++};
++
++struct S {
++  S operator +(int);
++  template <typename T> T value();
++};
++
++template <typename T>
++void R (T v)
++{
++  v[(S() + 0).template value<int>()][0] = 0;
++}
++
++int
++main ()
++{
++  R(V<V<int> >());
++}


Index: gcc41.spec
===================================================================
RCS file: /cvs/dist/rpms/gcc/devel/gcc41.spec,v
retrieving revision 1.127
retrieving revision 1.128
diff -u -r1.127 -r1.128
--- gcc41.spec	1 Dec 2006 16:52:40 -0000	1.127
+++ gcc41.spec	8 Dec 2006 20:46:45 -0000	1.128
@@ -1,6 +1,6 @@
-%define DATE 20061130
+%define DATE 20061208
 %define gcc_version 4.1.1
-%define gcc_release 44
+%define gcc_release 45
 %define _unpackaged_files_terminate_build 0
 %define multilib_64_archs sparc64 ppc64 s390x x86_64
 %ifarch %{ix86} x86_64 ia64
@@ -30,6 +30,7 @@
 Source0: gcc-%{version}-%{DATE}.tar.bz2
 Source1: libgcc_post_upgrade.c
 Source2: README.libgcjwebplugin.so
+Source3: protoize.1
 URL: http://gcc.gnu.org
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
 # Need binutils with -pie support >= 2.14.90.0.4-4
@@ -137,8 +138,8 @@
 Patch30: gcc41-pr29299.patch
 Patch31: gcc41-libjava-anonverscript.patch
 Patch32: gcc41-ppc64-libffi-unwind.patch
-Patch33: gcc41-pr29965.patch
-Patch34: gcc41-pr29949.patch
+Patch33: gcc41-pr27761.patch
+Patch34: gcc41-pr30110.patch
 
 %define _gnu %{nil}
 %ifarch sparc
@@ -447,8 +448,8 @@
 %patch30 -p0 -b .pr29299~
 %patch31 -p0 -b .libjava-anonverscript~
 %patch32 -p0 -b .ppc64-libffi-unwind~
-%patch33 -p0 -b .pr29965~
-%patch34 -p0 -b .pr29949~
+%patch33 -p0 -b .pr27761~
+%patch34 -p0 -b .pr30110~
 
 sed -i -e 's/4\.1\.2/4.1.1/' gcc/BASE-VER gcc/version.c
 sed -i -e 's/" (Red Hat[^)]*)"/" (Red Hat %{version}-%{gcc_release})"/' gcc/version.c
@@ -975,6 +976,10 @@
 touch $RPM_BUILD_ROOT%{_prefix}/%{_lib}/gcj-%{version}/classmap.db
 %endif
 
+install -m644 %{SOURCE3} $RPM_BUILD_ROOT%{_mandir}/man1/protoize.1
+echo '.so man1/protoize.1' > $RPM_BUILD_ROOT%{_mandir}/man1/unprotoize.1
+chmod 644 $RPM_BUILD_ROOT%{_mandir}/man1/unprotoize.1
+
 %clean
 rm -rf $RPM_BUILD_ROOT
 
@@ -1099,6 +1104,8 @@
 %{_prefix}/bin/%{gcc_target_platform}-gcc
 %{_mandir}/man1/gcc.1*
 %{_mandir}/man1/gcov.1*
+%{_mandir}/man1/protoize.1*
+%{_mandir}/man1/unprotoize.1*
 %{_infodir}/gcc*
 %dir %{_prefix}/lib/gcc
 %dir %{_prefix}/lib/gcc/%{gcc_target_platform}
@@ -1508,8 +1515,16 @@
 %doc rpm.doc/changelogs/libmudflap/ChangeLog*
 
 %changelog
+* Fri Dec  8 2006 Jakub Jelinek <jakub at redhat.com> 4.1.1-45
+- update from gcc-4_1-branch (-r119343:119654)
+  - PRs c++/14329, c++/28284, c++/29632, c++/29728, c++/29729, c++/29730,
+	c++/29733, c++/30022, libfortran/29810
+- add protoize.1 and unprotoize.1 man pages (#188914)
+- fix RTL sharing problem in combine (#218603, PR rtl-optimization/27761)
+- additions to libgcj-src (Ben Konrath, PR libgcj/30110)
+
 * Fri Dec  1 2006 Jakub Jelinek <jakub at redhat.com> 4.1.1-44
-- fix OpenMP loops with 0 iterations (PR libgomp/29949)
+- fix OpenMP loops with 0 iterations (PR libgomp/29947)
 
 * Thu Nov 30 2006 Jakub Jelinek <jakub at redhat.com> 4.1.1-43
 - update from gcc-4_1-branch (-r119167:119343)


--- gcc41-pr29949.patch DELETED ---


--- gcc41-pr29965.patch DELETED ---




More information about the fedora-cvs-commits mailing list