Re: cloog(-parma) 0.16 and ppl 0.11 in infrastructure?

2011-01-02 Thread Richard Guenther
On Fri, Dec 31, 2010 at 12:40 AM, Jack Howarth howa...@bromo.med.uc.edu wrote:
 Sebastian,
    It appears that the official tarballs are now posted at 
 http://www.cloog.org/
 for cloog and cloog-parma 0.16. Do you plan on placing those both in the 
 infrastructure
 directory at gcc.gnu.org's ftp site? If so, the newer ppl 0.11 tarball should 
 be added
 as well. If those files are updated, we should be set to switch gcc trunk to 
 require
 ppl = 0.11, cloog = 0.16 and the default cloog backend from legacy 
 cloog-ppl to
 cloog-isl.

I don't think this is a very good idea at this point.

Richard.

          Jack




Re: [wwwdocs] PATCH for Re: rsync'd repo size

2011-01-02 Thread Richard Guenther
On Fri, Dec 31, 2010 at 8:07 PM, Mike Stump mikest...@comcast.net wrote:
 On Dec 31, 2010, at 8:27 AM, Gerald Pfeifer wrote:
 On Wed, 8 Dec 2010, DJ Delorie wrote:
 http://gcc.gnu.org/rsync.html says 17 Gb.

 I just did it, and it's up to 22 Gb.

 Thanks for the heads up, DJ!  I had a look, and it is, in fact,
 184 Gb as of today, or 23 GB.  (SCNR. :-)

 You can replace it with a equation that has a year in it, that way, you don't 
 have to fix it as often...  :-)

Or just use a date instead of today.  Or say more than 23 GB which also
stays true ;)

Richard.


development stage timeline

2011-01-02 Thread Ralf Wildenhues
Is there an expected date for when stage 3 should end, or some other
measure of pressure?  The 4.6.0 status report link on gcc.gnu.org does
not seem to tell (and I'm not sure whether it usually does or not).

It would be good to get Libtool updated before, but I'm not sure I can
finish it this weekend.

Thanks (and sorry for not following irc, and happy gnu year!),
Ralf


Re: Behavior change of driver on multiple input assembly files

2011-01-02 Thread Richard Guenther
On Fri, Dec 31, 2010 at 9:40 PM, H.J. Lu hjl.to...@gmail.com wrote:
 On Fri, Dec 31, 2010 at 5:08 AM, Jie Zhang j...@codesourcery.com wrote:
 On 12/31/2010 01:07 PM, Jie Zhang wrote:

 I just found a behavior change of driver on multiple input assembly
 files. Previously (before r164357), for the command line

 gcc -o t t1.s t2.s

 , the driver will call assembler twice, once for t1.s and once for t2.s.
 After r164357, the driver will only call assembler once for t1.s and
 t2.s. Then if t1.s and t2.s have same symbol, assembler will report an
 error, like:

 t2.s: Assembler messages:
 t2.s:1: Error: symbol `.L1' is already defined

 I read the discussion on the mailing list starting by the patch email of
 r164357.[1] It seems that this behavior change is not the intention of
 that patch. And I think the previous behavior is more useful than the
 current behavior. So it's good to restore the previous behavior, isn't?

 For a minimal fix, I propose to change combinable fields of assembly
 languages in default_compilers[] to 0. See the attached patch
 gcc-not-combine-assembly-inputs.diff. I don't know why the combinable
 fields were set to 1 when --combine option was introduced. There is no
 explanation about that in that patch email.[2] Does anyone still remember?

 For an aggressive fix, how about removing the combinable field from
 struct compiler? If we change combinable fields of assembly languages
 in default_compilers[] to 0, only .go and @cpp-output set combinable
 to 1. I don't see any reason for difference between @cpp-output and
 .i. So if we can set combinable to 0 for .go, we have 0 for all
 compilers in default_compilers[], thus we can remove that field. Is
 there a reason to set 1 for .go?

 I also attached the aggressive patch gcc-remove-combinable-field.diff.
 Either patch is not tested. Which way should we go?

 The minimal fix has no regressions. But the aggressive one has a lot of
 regressions.

 [1] http://gcc.gnu.org/ml/gcc-patches/2010-09/msg01322.html
 [2] http://gcc.gnu.org/ml/gcc-patches/2004-03/msg01880.html


 I opened:

 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47137

 This simple patch also works for me.

 --
 H.J.
 ---
 diff --git a/gcc/gcc.c b/gcc/gcc.c
 index 69bf033..0d633a4 100644
 --- a/gcc/gcc.c
 +++ b/gcc/gcc.c
 @@ -6582,7 +6582,7 @@ warranty; not even for MERCHANTABILITY or
 FITNESS FOR A PARTICULAR PURPOSE.\n\n

   explicit_link_files = XCNEWVEC (char, n_infiles);

 -  combine_inputs = have_o || flag_wpa;
 +  combine_inputs = flag_wpa;

That probably fails with -flto-partition=none (thus, old -flto mode).

Combining .s files might be necessary when continuing a -save-temps
LTO compile with the assembly output of the compiler (thus assembler
files with LTO object code).

Richard.

   for (i = 0; (int) i  n_infiles; i++)
     {



Re: development stage timeline

2011-01-02 Thread Richard Guenther
On Sun, Jan 2, 2011 at 5:01 PM, Ralf Wildenhues ralf.wildenh...@gmx.de wrote:
 Is there an expected date for when stage 3 should end, or some other
 measure of pressure?  The 4.6.0 status report link on gcc.gnu.org does
 not seem to tell (and I'm not sure whether it usually does or not).

 It would be good to get Libtool updated before, but I'm not sure I can
 finish it this weekend.

It's expected to end as soon as one of the RMs manages to do a status
report.  Which means very likely (early) this week.

Richard.

 Thanks (and sorry for not following irc, and happy gnu year!),
 Ralf



Re: cloog(-parma) 0.16 and ppl 0.11 in infrastructure?

2011-01-02 Thread Dennis Clarke

 On Fri, Dec 31, 2010 at 12:40 AM, Jack Howarth howa...@bromo.med.uc.edu
 wrote:
 Sebastian,
    It appears that the official tarballs are now posted at
 http://www.cloog.org/
 for cloog and cloog-parma 0.16. Do you plan on placing those both in the
 infrastructure
 directory at gcc.gnu.org's ftp site? If so, the newer ppl 0.11 tarball
 should be added
 as well. If those files are updated, we should be set to switch gcc
 trunk to require
 ppl = 0.11, cloog = 0.16 and the default cloog backend from legacy
 cloog-ppl to
 cloog-isl.

 I don't think this is a very good idea at this point.

I think ppl is in a stae of change and between releases. I have not yet
seen it compile cleanly once with any version of GCC on Solaris. It
certainly never passes its own testsuites without a coredump or some
significant failure. Roberto Bagnara is aware of this and I am going to
work with him on this to get something valid in the POSIX/UNIX world and
hopefully a new release of ppl will come out that is solid for integration
into GCC. As for ClooG, I have no data at this time. This is merely an
observation from someone that tries to be very very careful with testing
and with testsuite results.

-- 
Dennis Clarke
dcla...@opensolaris.ca  - Email related to the open source Solaris
dcla...@blastwave.org   - Email related to open source for Solaris

ps: thus far GCC 4.5.2 is beautiful on Solaris however on Debian Squeeze
it seems to be a nightmare. Testsuite has been running for three days on
Intel i7 with many many failures. I'll report data when I have it.



Re: Behavior change of driver on multiple input assembly files

2011-01-02 Thread H.J. Lu
On Sun, Jan 2, 2011 at 8:03 AM, Richard Guenther
richard.guent...@gmail.com wrote:
 On Fri, Dec 31, 2010 at 9:40 PM, H.J. Lu hjl.to...@gmail.com wrote:
 On Fri, Dec 31, 2010 at 5:08 AM, Jie Zhang j...@codesourcery.com wrote:
 On 12/31/2010 01:07 PM, Jie Zhang wrote:

 I just found a behavior change of driver on multiple input assembly
 files. Previously (before r164357), for the command line

 gcc -o t t1.s t2.s

 , the driver will call assembler twice, once for t1.s and once for t2.s.
 After r164357, the driver will only call assembler once for t1.s and
 t2.s. Then if t1.s and t2.s have same symbol, assembler will report an
 error, like:

 t2.s: Assembler messages:
 t2.s:1: Error: symbol `.L1' is already defined

 I read the discussion on the mailing list starting by the patch email of
 r164357.[1] It seems that this behavior change is not the intention of
 that patch. And I think the previous behavior is more useful than the
 current behavior. So it's good to restore the previous behavior, isn't?

 For a minimal fix, I propose to change combinable fields of assembly
 languages in default_compilers[] to 0. See the attached patch
 gcc-not-combine-assembly-inputs.diff. I don't know why the combinable
 fields were set to 1 when --combine option was introduced. There is no
 explanation about that in that patch email.[2] Does anyone still remember?

 For an aggressive fix, how about removing the combinable field from
 struct compiler? If we change combinable fields of assembly languages
 in default_compilers[] to 0, only .go and @cpp-output set combinable
 to 1. I don't see any reason for difference between @cpp-output and
 .i. So if we can set combinable to 0 for .go, we have 0 for all
 compilers in default_compilers[], thus we can remove that field. Is
 there a reason to set 1 for .go?

 I also attached the aggressive patch gcc-remove-combinable-field.diff.
 Either patch is not tested. Which way should we go?

 The minimal fix has no regressions. But the aggressive one has a lot of
 regressions.

 [1] http://gcc.gnu.org/ml/gcc-patches/2010-09/msg01322.html
 [2] http://gcc.gnu.org/ml/gcc-patches/2004-03/msg01880.html


 I opened:

 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47137

 This simple patch also works for me.

 --
 H.J.
 ---
 diff --git a/gcc/gcc.c b/gcc/gcc.c
 index 69bf033..0d633a4 100644
 --- a/gcc/gcc.c
 +++ b/gcc/gcc.c
 @@ -6582,7 +6582,7 @@ warranty; not even for MERCHANTABILITY or
 FITNESS FOR A PARTICULAR PURPOSE.\n\n

   explicit_link_files = XCNEWVEC (char, n_infiles);

 -  combine_inputs = have_o || flag_wpa;
 +  combine_inputs = flag_wpa;

 That probably fails with -flto-partition=none (thus, old -flto mode).

 Combining .s files might be necessary when continuing a -save-temps
 LTO compile with the assembly output of the compiler (thus assembler
 files with LTO object code).


Well, how does it work without -o foo, i.e., with the default output, a.out?


-- 
H.J.


Re: Behavior change of driver on multiple input assembly files

2011-01-02 Thread H.J. Lu
On Sun, Jan 2, 2011 at 8:31 AM, H.J. Lu hjl.to...@gmail.com wrote:
 On Sun, Jan 2, 2011 at 8:03 AM, Richard Guenther
 richard.guent...@gmail.com wrote:
 On Fri, Dec 31, 2010 at 9:40 PM, H.J. Lu hjl.to...@gmail.com wrote:
 On Fri, Dec 31, 2010 at 5:08 AM, Jie Zhang j...@codesourcery.com wrote:
 On 12/31/2010 01:07 PM, Jie Zhang wrote:

 I just found a behavior change of driver on multiple input assembly
 files. Previously (before r164357), for the command line

 gcc -o t t1.s t2.s

 , the driver will call assembler twice, once for t1.s and once for t2.s.
 After r164357, the driver will only call assembler once for t1.s and
 t2.s. Then if t1.s and t2.s have same symbol, assembler will report an
 error, like:

 t2.s: Assembler messages:
 t2.s:1: Error: symbol `.L1' is already defined

 I read the discussion on the mailing list starting by the patch email of
 r164357.[1] It seems that this behavior change is not the intention of
 that patch. And I think the previous behavior is more useful than the
 current behavior. So it's good to restore the previous behavior, isn't?

 For a minimal fix, I propose to change combinable fields of assembly
 languages in default_compilers[] to 0. See the attached patch
 gcc-not-combine-assembly-inputs.diff. I don't know why the combinable
 fields were set to 1 when --combine option was introduced. There is no
 explanation about that in that patch email.[2] Does anyone still remember?

 For an aggressive fix, how about removing the combinable field from
 struct compiler? If we change combinable fields of assembly languages
 in default_compilers[] to 0, only .go and @cpp-output set combinable
 to 1. I don't see any reason for difference between @cpp-output and
 .i. So if we can set combinable to 0 for .go, we have 0 for all
 compilers in default_compilers[], thus we can remove that field. Is
 there a reason to set 1 for .go?

 I also attached the aggressive patch gcc-remove-combinable-field.diff.
 Either patch is not tested. Which way should we go?

 The minimal fix has no regressions. But the aggressive one has a lot of
 regressions.

 [1] http://gcc.gnu.org/ml/gcc-patches/2010-09/msg01322.html
 [2] http://gcc.gnu.org/ml/gcc-patches/2004-03/msg01880.html


 I opened:

 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47137

 This simple patch also works for me.

 --
 H.J.
 ---
 diff --git a/gcc/gcc.c b/gcc/gcc.c
 index 69bf033..0d633a4 100644
 --- a/gcc/gcc.c
 +++ b/gcc/gcc.c
 @@ -6582,7 +6582,7 @@ warranty; not even for MERCHANTABILITY or
 FITNESS FOR A PARTICULAR PURPOSE.\n\n

   explicit_link_files = XCNEWVEC (char, n_infiles);

 -  combine_inputs = have_o || flag_wpa;
 +  combine_inputs = flag_wpa;

 That probably fails with -flto-partition=none (thus, old -flto mode).

 Combining .s files might be necessary when continuing a -save-temps
 LTO compile with the assembly output of the compiler (thus assembler
 files with LTO object code).


 Well, how does it work without -o foo, i.e., with the default output, a.out?


If you can show me a real usage for -save-temps and LTO, I can find a way
to make it work.


-- 
H.J.


Re: Behavior change of driver on multiple input assembly files

2011-01-02 Thread Richard Guenther
On Sun, Jan 2, 2011 at 5:31 PM, H.J. Lu hjl.to...@gmail.com wrote:
 On Sun, Jan 2, 2011 at 8:03 AM, Richard Guenther
 richard.guent...@gmail.com wrote:
 On Fri, Dec 31, 2010 at 9:40 PM, H.J. Lu hjl.to...@gmail.com wrote:
 On Fri, Dec 31, 2010 at 5:08 AM, Jie Zhang j...@codesourcery.com wrote:
 On 12/31/2010 01:07 PM, Jie Zhang wrote:

 I just found a behavior change of driver on multiple input assembly
 files. Previously (before r164357), for the command line

 gcc -o t t1.s t2.s

 , the driver will call assembler twice, once for t1.s and once for t2.s.
 After r164357, the driver will only call assembler once for t1.s and
 t2.s. Then if t1.s and t2.s have same symbol, assembler will report an
 error, like:

 t2.s: Assembler messages:
 t2.s:1: Error: symbol `.L1' is already defined

 I read the discussion on the mailing list starting by the patch email of
 r164357.[1] It seems that this behavior change is not the intention of
 that patch. And I think the previous behavior is more useful than the
 current behavior. So it's good to restore the previous behavior, isn't?

 For a minimal fix, I propose to change combinable fields of assembly
 languages in default_compilers[] to 0. See the attached patch
 gcc-not-combine-assembly-inputs.diff. I don't know why the combinable
 fields were set to 1 when --combine option was introduced. There is no
 explanation about that in that patch email.[2] Does anyone still remember?

 For an aggressive fix, how about removing the combinable field from
 struct compiler? If we change combinable fields of assembly languages
 in default_compilers[] to 0, only .go and @cpp-output set combinable
 to 1. I don't see any reason for difference between @cpp-output and
 .i. So if we can set combinable to 0 for .go, we have 0 for all
 compilers in default_compilers[], thus we can remove that field. Is
 there a reason to set 1 for .go?

 I also attached the aggressive patch gcc-remove-combinable-field.diff.
 Either patch is not tested. Which way should we go?

 The minimal fix has no regressions. But the aggressive one has a lot of
 regressions.

 [1] http://gcc.gnu.org/ml/gcc-patches/2010-09/msg01322.html
 [2] http://gcc.gnu.org/ml/gcc-patches/2004-03/msg01880.html


 I opened:

 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47137

 This simple patch also works for me.

 --
 H.J.
 ---
 diff --git a/gcc/gcc.c b/gcc/gcc.c
 index 69bf033..0d633a4 100644
 --- a/gcc/gcc.c
 +++ b/gcc/gcc.c
 @@ -6582,7 +6582,7 @@ warranty; not even for MERCHANTABILITY or
 FITNESS FOR A PARTICULAR PURPOSE.\n\n

   explicit_link_files = XCNEWVEC (char, n_infiles);

 -  combine_inputs = have_o || flag_wpa;
 +  combine_inputs = flag_wpa;

 That probably fails with -flto-partition=none (thus, old -flto mode).

 Combining .s files might be necessary when continuing a -save-temps
 LTO compile with the assembly output of the compiler (thus assembler
 files with LTO object code).


 Well, how does it work without -o foo, i.e., with the default output, a.out?

I don't know.  The driver is quite a mess.  (but it does work, and I didn't
try your patch, it just looks that the above is incomplete - maybe have_o
is set to a.out?)

Richard.


 --
 H.J.



Re: Behavior change of driver on multiple input assembly files

2011-01-02 Thread H.J. Lu
On Sun, Jan 2, 2011 at 8:37 AM, Richard Guenther
richard.guent...@gmail.com wrote:
 On Sun, Jan 2, 2011 at 5:31 PM, H.J. Lu hjl.to...@gmail.com wrote:
 On Sun, Jan 2, 2011 at 8:03 AM, Richard Guenther
 richard.guent...@gmail.com wrote:
 On Fri, Dec 31, 2010 at 9:40 PM, H.J. Lu hjl.to...@gmail.com wrote:
 On Fri, Dec 31, 2010 at 5:08 AM, Jie Zhang j...@codesourcery.com wrote:
 On 12/31/2010 01:07 PM, Jie Zhang wrote:

 I just found a behavior change of driver on multiple input assembly
 files. Previously (before r164357), for the command line

 gcc -o t t1.s t2.s

 , the driver will call assembler twice, once for t1.s and once for t2.s.
 After r164357, the driver will only call assembler once for t1.s and
 t2.s. Then if t1.s and t2.s have same symbol, assembler will report an
 error, like:

 t2.s: Assembler messages:
 t2.s:1: Error: symbol `.L1' is already defined

 I read the discussion on the mailing list starting by the patch email of
 r164357.[1] It seems that this behavior change is not the intention of
 that patch. And I think the previous behavior is more useful than the
 current behavior. So it's good to restore the previous behavior, isn't?

 For a minimal fix, I propose to change combinable fields of assembly
 languages in default_compilers[] to 0. See the attached patch
 gcc-not-combine-assembly-inputs.diff. I don't know why the combinable
 fields were set to 1 when --combine option was introduced. There is no
 explanation about that in that patch email.[2] Does anyone still 
 remember?

 For an aggressive fix, how about removing the combinable field from
 struct compiler? If we change combinable fields of assembly languages
 in default_compilers[] to 0, only .go and @cpp-output set combinable
 to 1. I don't see any reason for difference between @cpp-output and
 .i. So if we can set combinable to 0 for .go, we have 0 for all
 compilers in default_compilers[], thus we can remove that field. Is
 there a reason to set 1 for .go?

 I also attached the aggressive patch gcc-remove-combinable-field.diff.
 Either patch is not tested. Which way should we go?

 The minimal fix has no regressions. But the aggressive one has a lot of
 regressions.

 [1] http://gcc.gnu.org/ml/gcc-patches/2010-09/msg01322.html
 [2] http://gcc.gnu.org/ml/gcc-patches/2004-03/msg01880.html


 I opened:

 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47137

 This simple patch also works for me.

 --
 H.J.
 ---
 diff --git a/gcc/gcc.c b/gcc/gcc.c
 index 69bf033..0d633a4 100644
 --- a/gcc/gcc.c
 +++ b/gcc/gcc.c
 @@ -6582,7 +6582,7 @@ warranty; not even for MERCHANTABILITY or
 FITNESS FOR A PARTICULAR PURPOSE.\n\n

   explicit_link_files = XCNEWVEC (char, n_infiles);

 -  combine_inputs = have_o || flag_wpa;
 +  combine_inputs = flag_wpa;

 That probably fails with -flto-partition=none (thus, old -flto mode).

 Combining .s files might be necessary when continuing a -save-temps
 LTO compile with the assembly output of the compiler (thus assembler
 files with LTO object code).


 Well, how does it work without -o foo, i.e., with the default output, 
 a.out?

 I don't know.  The driver is quite a mess.  (but it does work, and I didn't
 try your patch, it just looks that the above is incomplete - maybe have_o
 is set to a.out?)


No, it doesn't. See:

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47137

That is how I found the problem.


-- 
H.J.


Re: Behavior change of driver on multiple input assembly files

2011-01-02 Thread Richard Guenther
On Sun, Jan 2, 2011 at 5:41 PM, H.J. Lu hjl.to...@gmail.com wrote:
 On Sun, Jan 2, 2011 at 8:37 AM, Richard Guenther
 richard.guent...@gmail.com wrote:
 On Sun, Jan 2, 2011 at 5:31 PM, H.J. Lu hjl.to...@gmail.com wrote:
 On Sun, Jan 2, 2011 at 8:03 AM, Richard Guenther
 richard.guent...@gmail.com wrote:
 On Fri, Dec 31, 2010 at 9:40 PM, H.J. Lu hjl.to...@gmail.com wrote:
 On Fri, Dec 31, 2010 at 5:08 AM, Jie Zhang j...@codesourcery.com wrote:
 On 12/31/2010 01:07 PM, Jie Zhang wrote:

 I just found a behavior change of driver on multiple input assembly
 files. Previously (before r164357), for the command line

 gcc -o t t1.s t2.s

 , the driver will call assembler twice, once for t1.s and once for t2.s.
 After r164357, the driver will only call assembler once for t1.s and
 t2.s. Then if t1.s and t2.s have same symbol, assembler will report an
 error, like:

 t2.s: Assembler messages:
 t2.s:1: Error: symbol `.L1' is already defined

 I read the discussion on the mailing list starting by the patch email of
 r164357.[1] It seems that this behavior change is not the intention of
 that patch. And I think the previous behavior is more useful than the
 current behavior. So it's good to restore the previous behavior, isn't?

 For a minimal fix, I propose to change combinable fields of assembly
 languages in default_compilers[] to 0. See the attached patch
 gcc-not-combine-assembly-inputs.diff. I don't know why the combinable
 fields were set to 1 when --combine option was introduced. There is no
 explanation about that in that patch email.[2] Does anyone still 
 remember?

 For an aggressive fix, how about removing the combinable field from
 struct compiler? If we change combinable fields of assembly languages
 in default_compilers[] to 0, only .go and @cpp-output set combinable
 to 1. I don't see any reason for difference between @cpp-output and
 .i. So if we can set combinable to 0 for .go, we have 0 for all
 compilers in default_compilers[], thus we can remove that field. Is
 there a reason to set 1 for .go?

 I also attached the aggressive patch gcc-remove-combinable-field.diff.
 Either patch is not tested. Which way should we go?

 The minimal fix has no regressions. But the aggressive one has a lot of
 regressions.

 [1] http://gcc.gnu.org/ml/gcc-patches/2010-09/msg01322.html
 [2] http://gcc.gnu.org/ml/gcc-patches/2004-03/msg01880.html


 I opened:

 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47137

 This simple patch also works for me.

 --
 H.J.
 ---
 diff --git a/gcc/gcc.c b/gcc/gcc.c
 index 69bf033..0d633a4 100644
 --- a/gcc/gcc.c
 +++ b/gcc/gcc.c
 @@ -6582,7 +6582,7 @@ warranty; not even for MERCHANTABILITY or
 FITNESS FOR A PARTICULAR PURPOSE.\n\n

   explicit_link_files = XCNEWVEC (char, n_infiles);

 -  combine_inputs = have_o || flag_wpa;
 +  combine_inputs = flag_wpa;

 That probably fails with -flto-partition=none (thus, old -flto mode).

 Combining .s files might be necessary when continuing a -save-temps
 LTO compile with the assembly output of the compiler (thus assembler
 files with LTO object code).


 Well, how does it work without -o foo, i.e., with the default output, 
 a.out?

 I don't know.  The driver is quite a mess.  (but it does work, and I didn't
 try your patch, it just looks that the above is incomplete - maybe have_o
 is set to a.out?)


 No, it doesn't. See:

 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47137

 That is how I found the problem.

Hm, well.  I left the combine_inputs thing in as LTO re-uses it.

Your small patch removing have_o || is ok I guess.

Thanks,
Richard.


 --
 H.J.



gcc-4.3-20110102 is now available

2011-01-02 Thread gccadmin
Snapshot gcc-4.3-20110102 is now available on
  ftp://gcc.gnu.org/pub/gcc/snapshots/4.3-20110102/
and on various mirrors, see http://gcc.gnu.org/mirrors.html for details.

This snapshot has been generated from the GCC 4.3 SVN branch
with the following options: svn://gcc.gnu.org/svn/gcc/branches/gcc-4_3-branch 
revision 168407

You'll find:

 gcc-4.3-20110102.tar.bz2 Complete GCC (includes all of below)

  MD5=03f96256c175836d6e4420a9e03e707f
  SHA1=567fc8cb89f04c0770838f999a01e3ff5f92544b

 gcc-core-4.3-20110102.tar.bz2C front end and core compiler

  MD5=50fcd9d6c6efb5add23d5b2f378150a8
  SHA1=a85a2ff41697929bd1cc0ec0db06a1c25152594f

 gcc-ada-4.3-20110102.tar.bz2 Ada front end and runtime

  MD5=9cf1967bb4c2bdd26799535ee2971e2b
  SHA1=f9cb3fb5aa86fa182da12ddc21e1b3003f381b0f

 gcc-fortran-4.3-20110102.tar.bz2 Fortran front end and runtime

  MD5=df38e5930b0ebdcdbc62bba5a01c6627
  SHA1=36b7d83b2521d392e7186f9c7a4219b6a8e36147

 gcc-g++-4.3-20110102.tar.bz2 C++ front end and runtime

  MD5=d3c7d47f229465cfcf6b6a5ed46e4f66
  SHA1=23bcd028d357d2543cc1c4677d90b85f441bd84a

 gcc-go-4.3-20110102.tar.bz2  Go front end and runtime

  MD5=86e7cfa204401a42ba7404904bb323eb
  SHA1=029552da024d30b89b279ae78e1c75fc4e70a683

 gcc-java-4.3-20110102.tar.bz2Java front end and runtime

  MD5=6f6f165153d9785a77907e7d9db0e08e
  SHA1=967e9f4edea3fcb9822067de9f05f2238e662320

 gcc-objc-4.3-20110102.tar.bz2Objective-C front end and runtime

  MD5=2f181b35a422545fe5a4fd470b25b7e0
  SHA1=45d4bee14b268a0f5417cb3bbcb71df3f52e168c

 gcc-testsuite-4.3-20110102.tar.bz2   The GCC testsuite

  MD5=8f74fc58a618da7c8e2927944e42b4d0
  SHA1=b39c409a552cc88856b065daf619f6ad3c12f043

Diffs from 4.3-20101226 are available in the diffs/ subdirectory.

When a particular snapshot is ready for public consumption the LATEST-4.3
link is updated and a message is sent to the gcc list.  Please do not use
a snapshot before it has been announced that way.


Re: kfreebsd-gnu etc. issues

2011-01-02 Thread Robert Millan
Hi Joseph,

2011/1/1 Joseph S. Myers jos...@codesourcery.com:
 I'm trying to stop non-Linux GCC targets from using config/linux.h and
 other headers whose names indicate they relate to the Linux kernel,
 separating GNU-userspace and Linux-kernel configuration more cleanly.
 http://gcc.gnu.org/ml/gcc-patches/2010-12/msg02055.html is the
 initial patch in this series, and in the course of working on the
 corresponding changes for i386/linux.h and i386/linux64.h

Thank you for doing this.  As the person who introduced this
kind of use, I intended to propose something along these
lines myself, but never got the time to do it.

 I found
 several possible problems with the configurations for *-kfreebsd-gnu,
 *-knetbsd-gnu and *-kopensolaris-gnu.

 [...]

I can't review these problems right now, but I'll have a bit more
time in 1 or 2 weeks.  I'll get back to you.

-- 
Robert Millan


Re: Behavior change of driver on multiple input assembly files

2011-01-02 Thread Ian Lance Taylor
Richard Guenther richard.guent...@gmail.com writes:

 Your small patch removing have_o || is ok I guess.

Wait.  That will change the behaviour of
gcc -o foo.o -c f1.c f2.c f3.c
Is that what we want?

Also, right now the gccgo driver depends on the -o behaviour to combine
inputs.  If that changes, the driver will need to provide some other way
to let the frontend force inputs to be combined.

Ian


Re: cloog(-parma) 0.16 and ppl 0.11 in infrastructure?

2011-01-02 Thread Jack Howarth
On Sun, Jan 02, 2011 at 04:55:09PM +0100, Richard Guenther wrote:
 On Fri, Dec 31, 2010 at 12:40 AM, Jack Howarth howa...@bromo.med.uc.edu 
 wrote:
  Sebastian,
     It appears that the official tarballs are now posted at 
  http://www.cloog.org/
  for cloog and cloog-parma 0.16. Do you plan on placing those both in the 
  infrastructure
  directory at gcc.gnu.org's ftp site? If so, the newer ppl 0.11 tarball 
  should be added
  as well. If those files are updated, we should be set to switch gcc trunk 
  to require
  ppl = 0.11, cloog = 0.16 and the default cloog backend from legacy 
  cloog-ppl to
  cloog-isl.
 
 I don't think this is a very good idea at this point.

Richard,
   My understanding is the Sebastian intended to at least switch graphite from 
legacy
cloog-ppl to cloog.org (cloog-isl) for gcc 4.6. This has the advantage of 
decoupling
cloog from ppl and thus elimimating the problem of the ppl 0.11 ABI change. 
I've confirmed
on darwin that if gcc's graphite is built under the older 0.10.4 ABI and cloog 
is built
against the newer ppl 0.11 ABI that there is graphite testsuite breakage. Using 
cloog.org eliminates
this issue entirely since the cloog-isl is in use (eliminating the need to 
synchronize
which ppl is in use for graphite and cloog).
 Jack

 
 Richard.
 
           Jack
 
 


Re: Behavior change of driver on multiple input assembly files

2011-01-02 Thread Richard Guenther
On Sun, Jan 2, 2011 at 9:24 PM, Ian Lance Taylor i...@google.com wrote:
 Richard Guenther richard.guent...@gmail.com writes:

 Your small patch removing have_o || is ok I guess.

 Wait.  That will change the behaviour of
    gcc -o foo.o -c f1.c f2.c f3.c
 Is that what we want?

Does it?  I don't think so.  Most of the combine handling was removed by
the patch that caused the regression, so -o and -c doesn't combine anymore
(with multiple sources).

 Also, right now the gccgo driver depends on the -o behaviour to combine
 inputs.  If that changes, the driver will need to provide some other way
 to let the frontend force inputs to be combined.

For go it isn't equivalent to do gcgo -c t1.go; gcgo -c t2.go; gcgo t1.o t2.o
compared to gcgo t1.go t2.go?

Richard.

 Ian



Re: Behavior change of driver on multiple input assembly files

2011-01-02 Thread H.J. Lu
On Sun, Jan 2, 2011 at 12:24 PM, Ian Lance Taylor i...@google.com wrote:
 Richard Guenther richard.guent...@gmail.com writes:

 Your small patch removing have_o || is ok I guess.

 Wait.  That will change the behaviour of
    gcc -o foo.o -c f1.c f2.c f3.c
 Is that what we want?


No.  We always do

[i...@gnu-1 gcc]$ gcc -o foo.o -c t1.c t2.c
gcc: cannot specify -o with -c, -S or -E with multiple files
[i...@gnu-1 gcc]$ ./xgcc -B./ -o foo.o -c t1.c t2.c
xgcc: fatal error: cannot specify -o with -c, -S or -E with multiple files
compilation terminated.
[i...@gnu-1 gcc]$


-- 
H.J.


Re: Behavior change of driver on multiple input assembly files

2011-01-02 Thread Ian Lance Taylor
Richard Guenther richard.guent...@gmail.com writes:

 On Sun, Jan 2, 2011 at 9:24 PM, Ian Lance Taylor i...@google.com wrote:
 Richard Guenther richard.guent...@gmail.com writes:

 Your small patch removing have_o || is ok I guess.

 Wait.  That will change the behaviour of
    gcc -o foo.o -c f1.c f2.c f3.c
 Is that what we want?

 Does it?  I don't think so.  Most of the combine handling was removed by
 the patch that caused the regression, so -o and -c doesn't combine anymore
 (with multiple sources).

Sorry, you're right.  The difference is that @c has 0 for the combinable
field, and @assembler has 1.  Before H.J.'s change, this worked
gcc -c -o f.o f1.s f2.s
After his change, it does not.  That is probably not a big deal.

I wonder why @assembler has 1 for combinable?  It seems to have been set
to 1 when the combinable field was added in 2004-04-05 with -combine.
Now that -combine has been removed, if the combinable field for
@assembler were 0, it seems to me that H.J.'s problem would also be
fixed.  And it seems to me that it should be 0.


 Also, right now the gccgo driver depends on the -o behaviour to combine
 inputs.  If that changes, the driver will need to provide some other way
 to let the frontend force inputs to be combined.

 For go it isn't equivalent to do gcgo -c t1.go; gcgo -c t2.go; gcgo t1.o t2.o
 compared to gcgo t1.go t2.go?

No, it is not.  All .go input files must be passed to go1 at once.
H.J.'s patch has indeed broken gccgo.

Ian


Re: Behavior change of driver on multiple input assembly files

2011-01-02 Thread Basile Starynkevitch
On Sun, 02 Jan 2011 13:18:22 -0800
Ian Lance Taylor i...@google.com wrote:

 No, it is not.  All .go input files must be passed to go1 at once.
 H.J.'s patch has indeed broken gccgo.

I can confirm that. I just tried to svn merge trunk 168407 into the GCC MELT 
branch (which, appart from the MELT stuff, is exactly the trunk), and I've got

libtool: compile:  /usr/src/Lang/_Obj_Gcc_Melt/./gcc/gccgo 
-B/usr/src/Lang/_Obj_Gcc_Melt/./gcc/ -B/usr/local/x86_64-unknown-linux-gnu/bin/ 
-B/usr/local/x86_64-unknown-linux-gnu/lib/ -isystem 
/usr/local/x86_64-unknown-linux-gnu/include -isystem 
/usr/local/x86_64-unknown-linux-gnu/sys-include -minline-all-stringops -O2 -g 
-I . -c -fgo-prefix=libgo_runtime 
/usr/src/Lang/basile-melt-gcc/libgo/go/runtime/debug.go 
/usr/src/Lang/basile-melt-gcc/libgo/go/runtime/error.go 
/usr/src/Lang/basile-melt-gcc/libgo/go/runtime/extern.go 
/usr/src/Lang/basile-melt-gcc/libgo/go/runtime/sig.go 
/usr/src/Lang/basile-melt-gcc/libgo/go/runtime/softfloat64.go 
/usr/src/Lang/basile-melt-gcc/libgo/go/runtime/type.go version.go  -fPIC -o 
runtime/.libs/libruntime.a.o
gccgo: fatal error: cannot specify -o with -c, -S or -E with multiple files
compilation terminated.
make[4]: *** [runtime/libruntime.a] Error 1
make[4]: Leaving directory 
`/usr/src/Lang/_Obj_Gcc_Melt/x86_64-unknown-linux-gnu/libgo'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory 
`/usr/src/Lang/_Obj_Gcc_Melt/x86_64-unknown-linux-gnu/libgo'
make[2]: *** [all] Error 2
make[2]: Leaving directory 
`/usr/src/Lang/_Obj_Gcc_Melt/x86_64-unknown-linux-gnu/libgo'
make[1]: *** [all-target-libgo] Error 2
make[1]: Leaving directory `/usr/src/Lang/_Obj_Gcc_Melt'
make: *** [all] Error 2

BTW, I will try the same merge -from trunk to MELT- tomorrow.

Cheers, and happy new year to every one!


-- 
Basile STARYNKEVITCH http://starynkevitch.net/Basile/
email: basileatstarynkevitchdotnet mobile: +33 6 8501 2359
8, rue de la Faiencerie, 92340 Bourg La Reine, France
*** opinions {are only mine, sont seulement les miennes} ***


Re: Behavior change of driver on multiple input assembly files

2011-01-02 Thread H.J. Lu
On Sun, Jan 2, 2011 at 1:18 PM, Ian Lance Taylor i...@google.com wrote:
 Richard Guenther richard.guent...@gmail.com writes:

 On Sun, Jan 2, 2011 at 9:24 PM, Ian Lance Taylor i...@google.com wrote:
 Richard Guenther richard.guent...@gmail.com writes:

 Your small patch removing have_o || is ok I guess.

 Wait.  That will change the behaviour of
    gcc -o foo.o -c f1.c f2.c f3.c
 Is that what we want?

 Does it?  I don't think so.  Most of the combine handling was removed by
 the patch that caused the regression, so -o and -c doesn't combine anymore
 (with multiple sources).

 Sorry, you're right.  The difference is that @c has 0 for the combinable
 field, and @assembler has 1.  Before H.J.'s change, this worked
    gcc -c -o f.o f1.s f2.s
 After his change, it does not.  That is probably not a big deal.

 I wonder why @assembler has 1 for combinable?  It seems to have been set
 to 1 when the combinable field was added in 2004-04-05 with -combine.
 Now that -combine has been removed, if the combinable field for
 @assembler were 0, it seems to me that H.J.'s problem would also be
 fixed.  And it seems to me that it should be 0.


 Also, right now the gccgo driver depends on the -o behaviour to combine
 inputs.  If that changes, the driver will need to provide some other way
 to let the frontend force inputs to be combined.

 For go it isn't equivalent to do gcgo -c t1.go; gcgo -c t2.go; gcgo t1.o t2.o
 compared to gcgo t1.go t2.go?

 No, it is not.  All .go input files must be passed to go1 at once.
 H.J.'s patch has indeed broken gccgo.


Can you try this patch?

Thanks.


-- 
H.J.
---
diff --git a/gcc/gcc.c b/gcc/gcc.c
index 0d633a4..d0b2c96 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -6582,7 +6582,20 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A P
ARTICULAR PURPOSE.\n\n

   explicit_link_files = XCNEWVEC (char, n_infiles);

+  /* Check if we should combine inputs.  */
   combine_inputs = flag_wpa;
+  if (!combine_inputs)
+for (i = 1; i  decoded_options_count; i++)
+  {
+   if (decoded_options[i].opt_index == OPT_x)
+ {
+   struct compiler *compiler
+ = lookup_compiler (NULL, 0, decoded_options[i].arg);
+   if (compiler)
+ combine_inputs = compiler-combinable;
+   break;
+ }
+  }

   for (i = 0; (int) i  n_infiles; i++)
 {


Re: Behavior change of driver on multiple input assembly files

2011-01-02 Thread Richard Guenther
On Sun, Jan 2, 2011 at 10:18 PM, Ian Lance Taylor i...@google.com wrote:
 Richard Guenther richard.guent...@gmail.com writes:

 On Sun, Jan 2, 2011 at 9:24 PM, Ian Lance Taylor i...@google.com wrote:
 Richard Guenther richard.guent...@gmail.com writes:

 Your small patch removing have_o || is ok I guess.

 Wait.  That will change the behaviour of
    gcc -o foo.o -c f1.c f2.c f3.c
 Is that what we want?

 Does it?  I don't think so.  Most of the combine handling was removed by
 the patch that caused the regression, so -o and -c doesn't combine anymore
 (with multiple sources).

 Sorry, you're right.  The difference is that @c has 0 for the combinable
 field, and @assembler has 1.  Before H.J.'s change, this worked
    gcc -c -o f.o f1.s f2.s
 After his change, it does not.  That is probably not a big deal.

 I wonder why @assembler has 1 for combinable?  It seems to have been set
 to 1 when the combinable field was added in 2004-04-05 with -combine.
 Now that -combine has been removed, if the combinable field for
 @assembler were 0, it seems to me that H.J.'s problem would also be
 fixed.  And it seems to me that it should be 0.

That was another proposed patch.  I wondered if that would break

gcc -o t -flto -flto-partition=none t1.c t2.c -save-temps -v
(repeating the generation of t1.s, we overwrite this with lto1 output ...)

gcc -o t -flto -flto-partition=none t1.s t2.s

where t1.s and t2.s contain LTO bytecode from the -save-temps
invocation (thus the driver is expected to assemble both files
and then combine the resulting objects).  flag_wpa is not set
at any time for -flto-partition=none (only flag_lto is, but that is
set a well at compile-time).

trying the above it doesn't seem to work, we exit with

xgcc: fatal error: cannot specify -o with -c, -S or -E with multiple files

because flag_wpa isn't set now either.  xgcc invoked with

-xlto
-c
-B
.
-flto-partition=none
-v
-save-temps
-mtune=generic
-march=pentiumpro
-dumpdir
./
-dumpbase
t
-o
/tmp/ccZPZLA0.lto.o
t1.o
t2.o

So that's sth to fix as well (HJs change is the cause for the appearant
problem but before his patch we tried to combine the .s files resulting
in assembler errors).  So maybe the patch removing combinable .s
is the better fix after all.

 Also, right now the gccgo driver depends on the -o behaviour to combine
 inputs.  If that changes, the driver will need to provide some other way
 to let the frontend force inputs to be combined.

 For go it isn't equivalent to do gcgo -c t1.go; gcgo -c t2.go; gcgo t1.o t2.o
 compared to gcgo t1.go t2.go?

 No, it is not.  All .go input files must be passed to go1 at once.
 H.J.'s patch has indeed broken gccgo.

Interesting.  Do we have a testcase that is now broken?  It seems to me
that gcgo should force combining sources, even if no output file is
given (and a.out is the default output).

Thanks,
Richard.


Re: Behavior change of driver on multiple input assembly files

2011-01-02 Thread H.J. Lu
On Sun, Jan 2, 2011 at 2:40 PM, Richard Guenther
richard.guent...@gmail.com wrote:

 Interesting.  Do we have a testcase that is now broken?  It seems to me

See:

http://gcc.gnu.org/ml/gcc-regression/2011-01/msg00011.html

-- 
H.J.


Re: Behavior change of driver on multiple input assembly files

2011-01-02 Thread H.J. Lu
On Sun, Jan 2, 2011 at 2:05 PM, H.J. Lu hjl.to...@gmail.com wrote:
 On Sun, Jan 2, 2011 at 1:18 PM, Ian Lance Taylor i...@google.com wrote:
 Richard Guenther richard.guent...@gmail.com writes:

 On Sun, Jan 2, 2011 at 9:24 PM, Ian Lance Taylor i...@google.com wrote:
 Richard Guenther richard.guent...@gmail.com writes:

 Your small patch removing have_o || is ok I guess.

 Wait.  That will change the behaviour of
    gcc -o foo.o -c f1.c f2.c f3.c
 Is that what we want?

 Does it?  I don't think so.  Most of the combine handling was removed by
 the patch that caused the regression, so -o and -c doesn't combine anymore
 (with multiple sources).

 Sorry, you're right.  The difference is that @c has 0 for the combinable
 field, and @assembler has 1.  Before H.J.'s change, this worked
    gcc -c -o f.o f1.s f2.s
 After his change, it does not.  That is probably not a big deal.

 I wonder why @assembler has 1 for combinable?  It seems to have been set
 to 1 when the combinable field was added in 2004-04-05 with -combine.
 Now that -combine has been removed, if the combinable field for
 @assembler were 0, it seems to me that H.J.'s problem would also be
 fixed.  And it seems to me that it should be 0.


 Also, right now the gccgo driver depends on the -o behaviour to combine
 inputs.  If that changes, the driver will need to provide some other way
 to let the frontend force inputs to be combined.

 For go it isn't equivalent to do gcgo -c t1.go; gcgo -c t2.go; gcgo t1.o 
 t2.o
 compared to gcgo t1.go t2.go?

 No, it is not.  All .go input files must be passed to go1 at once.
 H.J.'s patch has indeed broken gccgo.


 Can you try this patch?

 Thanks.


 --
 H.J.
 ---
 diff --git a/gcc/gcc.c b/gcc/gcc.c
 index 0d633a4..d0b2c96 100644
 --- a/gcc/gcc.c
 +++ b/gcc/gcc.c
 @@ -6582,7 +6582,20 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR 
 A P
 ARTICULAR PURPOSE.\n\n

   explicit_link_files = XCNEWVEC (char, n_infiles);

 +  /* Check if we should combine inputs.  */
   combine_inputs = flag_wpa;
 +  if (!combine_inputs)
 +    for (i = 1; i  decoded_options_count; i++)
 +      {
 +       if (decoded_options[i].opt_index == OPT_x)
 +         {
 +           struct compiler *compiler
 +             = lookup_compiler (NULL, 0, decoded_options[i].arg);
 +           if (compiler)
 +             combine_inputs = compiler-combinable;
 +           break;
 +         }
 +      }

   for (i = 0; (int) i  n_infiles; i++)
     {


This doesn't work for go since -xgo isn't used with gccgo. Is there
a way to tell what the default language is for a gcc driver?

-- 
H.J.


Re: Behavior change of driver on multiple input assembly files

2011-01-02 Thread H.J. Lu
On Sun, Jan 2, 2011 at 3:03 PM, H.J. Lu hjl.to...@gmail.com wrote:
 On Sun, Jan 2, 2011 at 2:05 PM, H.J. Lu hjl.to...@gmail.com wrote:
 On Sun, Jan 2, 2011 at 1:18 PM, Ian Lance Taylor i...@google.com wrote:
 Richard Guenther richard.guent...@gmail.com writes:

 On Sun, Jan 2, 2011 at 9:24 PM, Ian Lance Taylor i...@google.com wrote:
 Richard Guenther richard.guent...@gmail.com writes:

 Your small patch removing have_o || is ok I guess.

 Wait.  That will change the behaviour of
    gcc -o foo.o -c f1.c f2.c f3.c
 Is that what we want?

 Does it?  I don't think so.  Most of the combine handling was removed by
 the patch that caused the regression, so -o and -c doesn't combine anymore
 (with multiple sources).

 Sorry, you're right.  The difference is that @c has 0 for the combinable
 field, and @assembler has 1.  Before H.J.'s change, this worked
    gcc -c -o f.o f1.s f2.s
 After his change, it does not.  That is probably not a big deal.

 I wonder why @assembler has 1 for combinable?  It seems to have been set
 to 1 when the combinable field was added in 2004-04-05 with -combine.
 Now that -combine has been removed, if the combinable field for
 @assembler were 0, it seems to me that H.J.'s problem would also be
 fixed.  And it seems to me that it should be 0.


 Also, right now the gccgo driver depends on the -o behaviour to combine
 inputs.  If that changes, the driver will need to provide some other way
 to let the frontend force inputs to be combined.

 For go it isn't equivalent to do gcgo -c t1.go; gcgo -c t2.go; gcgo t1.o 
 t2.o
 compared to gcgo t1.go t2.go?

 No, it is not.  All .go input files must be passed to go1 at once.
 H.J.'s patch has indeed broken gccgo.


 Can you try this patch?

 Thanks.


 --
 H.J.
 ---
 diff --git a/gcc/gcc.c b/gcc/gcc.c
 index 0d633a4..d0b2c96 100644
 --- a/gcc/gcc.c
 +++ b/gcc/gcc.c
 @@ -6582,7 +6582,20 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR 
 A P
 ARTICULAR PURPOSE.\n\n

   explicit_link_files = XCNEWVEC (char, n_infiles);

 +  /* Check if we should combine inputs.  */
   combine_inputs = flag_wpa;
 +  if (!combine_inputs)
 +    for (i = 1; i  decoded_options_count; i++)
 +      {
 +       if (decoded_options[i].opt_index == OPT_x)
 +         {
 +           struct compiler *compiler
 +             = lookup_compiler (NULL, 0, decoded_options[i].arg);
 +           if (compiler)
 +             combine_inputs = compiler-combinable;
 +           break;
 +         }
 +      }

   for (i = 0; (int) i  n_infiles; i++)
     {


 This doesn't work for go since -xgo isn't used with gccgo. Is there
 a way to tell what the default language is for a gcc driver?


I am testing this patch with Go and LTO.


-- 
H.J.
---
diff --git a/gcc/gcc.c b/gcc/gcc.c
index 0d633a4..6e26b1d 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -2817,6 +2817,10 @@ static int n_infiles_alloc;

 static bool combine_inputs;

+/* Default language.  */
+
+static struct cl_decoded_option *default_language;
+
 /* This counts the number of libraries added by lang_specific_driver, so that
we can tell if there were any user supplied any files or libraries.  */

@@ -3714,6 +3718,9 @@ process_command (unsigned int decoded_options_count,

   for (j = 1; j  decoded_options_count; j++)
 {
+  if (decoded_options[j].opt_index == OPT_x)
+   default_language = decoded_options[j];
+
   if (decoded_options[j].opt_index == OPT_SPECIAL_input_file)
{
  const char *arg = decoded_options[j].arg;
@@ -6582,7 +6589,15 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A P
ARTICULAR PURPOSE.\n\n

   explicit_link_files = XCNEWVEC (char, n_infiles);

+  /* Check if we should combine inputs.  */
   combine_inputs = flag_wpa;
+  if (!combine_inputs  default_language)
+{
+  struct compiler *compiler
+   = lookup_compiler (NULL, 0, default_language-arg);
+  if (compiler)
+   combine_inputs = compiler-combinable;
+}

   for (i = 0; (int) i  n_infiles; i++)
 {
diff --git a/gcc/go/gospec.c b/gcc/go/gospec.c
index 7d21ace..926dec1 100644
--- a/gcc/go/gospec.c
+++ b/gcc/go/gospec.c
@@ -214,7 +214,7 @@ lang_specific_driver (struct cl_decoded_option **in_decoded_
options,
 #endif

   /* Make sure to have room for the trailing NULL argument.  */
-  num_args = argc + need_math + shared_libgcc + (library  0) * 5 + 5;
+  num_args = argc + need_math + shared_libgcc + (library  0) * 5 + 6;
   new_decoded_options = XNEWVEC (struct cl_decoded_option, num_args);

   i = 0;
@@ -223,6 +223,10 @@ lang_specific_driver (struct cl_decoded_option **in_decoded
_options,
   /* Copy the 0th argument, i.e., the name of the program itself.  */
   new_decoded_options[j++] = decoded_options[i++];

+  /* Add -xgo.  */
+  generate_option (OPT_x, go, 1, CL_DRIVER, new_decoded_options[j]);
+  j++;
+
   /* If we are linking, pass -fsplit-stack if it is supported.  */
 #ifdef TARGET_CAN_SPLIT_STACK
   if (library = 0)


Re: Behavior change of driver on multiple input assembly files

2011-01-02 Thread H.J. Lu
On Sun, Jan 2, 2011 at 3:03 PM, H.J. Lu hjl.to...@gmail.com wrote:
 On Sun, Jan 2, 2011 at 2:05 PM, H.J. Lu hjl.to...@gmail.com wrote:
 On Sun, Jan 2, 2011 at 1:18 PM, Ian Lance Taylor i...@google.com wrote:
 Richard Guenther richard.guent...@gmail.com writes:

 On Sun, Jan 2, 2011 at 9:24 PM, Ian Lance Taylor i...@google.com wrote:
 Richard Guenther richard.guent...@gmail.com writes:

 Your small patch removing have_o || is ok I guess.

 Wait.  That will change the behaviour of
    gcc -o foo.o -c f1.c f2.c f3.c
 Is that what we want?

 Does it?  I don't think so.  Most of the combine handling was removed by
 the patch that caused the regression, so -o and -c doesn't combine anymore
 (with multiple sources).

 Sorry, you're right.  The difference is that @c has 0 for the combinable
 field, and @assembler has 1.  Before H.J.'s change, this worked
    gcc -c -o f.o f1.s f2.s
 After his change, it does not.  That is probably not a big deal.

 I wonder why @assembler has 1 for combinable?  It seems to have been set
 to 1 when the combinable field was added in 2004-04-05 with -combine.
 Now that -combine has been removed, if the combinable field for
 @assembler were 0, it seems to me that H.J.'s problem would also be
 fixed.  And it seems to me that it should be 0.


 Also, right now the gccgo driver depends on the -o behaviour to combine
 inputs.  If that changes, the driver will need to provide some other way
 to let the frontend force inputs to be combined.

 For go it isn't equivalent to do gcgo -c t1.go; gcgo -c t2.go; gcgo t1.o 
 t2.o
 compared to gcgo t1.go t2.go?

 No, it is not.  All .go input files must be passed to go1 at once.
 H.J.'s patch has indeed broken gccgo.


 Can you try this patch?

 Thanks.


 --
 H.J.
 ---
 diff --git a/gcc/gcc.c b/gcc/gcc.c
 index 0d633a4..d0b2c96 100644
 --- a/gcc/gcc.c
 +++ b/gcc/gcc.c
 @@ -6582,7 +6582,20 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR 
 A P
 ARTICULAR PURPOSE.\n\n

   explicit_link_files = XCNEWVEC (char, n_infiles);

 +  /* Check if we should combine inputs.  */
   combine_inputs = flag_wpa;
 +  if (!combine_inputs)
 +    for (i = 1; i  decoded_options_count; i++)
 +      {
 +       if (decoded_options[i].opt_index == OPT_x)
 +         {
 +           struct compiler *compiler
 +             = lookup_compiler (NULL, 0, decoded_options[i].arg);
 +           if (compiler)
 +             combine_inputs = compiler-combinable;
 +           break;
 +         }
 +      }

   for (i = 0; (int) i  n_infiles; i++)
     {


 This doesn't work for go since -xgo isn't used with gccgo. Is there
 a way to tell what the default language is for a gcc driver?


I am testing this patch with all languages on Linux/x86-64.


-- 
H.J.
---
gcc/

2011-01-02  H.J. Lu  hongjiu...@intel.com

PR driver/47137
* gcc.c (default_language): New.
(main): Lookup compiler to check if we should combine inputs.

* gcc.h (default_language): New.

gcc/go/

2011-01-02  H.J. Lu  hongjiu...@intel.com

PR driver/47137
* gospec.c (lang_specific_driver): Set default_language if
needed.
gcc/

2011-01-02  H.J. Lu  hongjiu...@intel.com

PR driver/47137
* gcc.c (default_language): New.
(main): Lookup compiler to check if we should combine inputs.

* gcc.h (default_language): New.

gcc/go/

2011-01-02  H.J. Lu  hongjiu...@intel.com

PR driver/47137
* gospec.c (lang_specific_driver): Set default_language if
needed.

diff --git a/gcc/gcc.c b/gcc/gcc.c
index 0d633a4..dc09937 100644
--- a/gcc/gcc.c
+++ b/gcc/gcc.c
@@ -2810,6 +2810,10 @@ static struct infile *infiles;
 
 int n_infiles;
 
+/* Default language.  */
+
+const char *default_language;
+
 static int n_infiles_alloc;
 
 /* True if multiple input files are being compiled to a single
@@ -6582,7 +6586,23 @@ warranty; not even for MERCHANTABILITY or FITNESS FOR A 
PARTICULAR PURPOSE.\n\n
 
   explicit_link_files = XCNEWVEC (char, n_infiles);
 
+  /* Check if we should combine inputs.  */
   combine_inputs = flag_wpa;
+  if (!combine_inputs)
+{
+  struct compiler *compiler = NULL;
+  for (i = 1; i  decoded_options_count; i++)
+   if (decoded_options[i].opt_index == OPT_x)
+ {
+   compiler = lookup_compiler (NULL, 0,
+   decoded_options[i].arg);
+   break;
+ }
+  if (!compiler  default_language)
+   compiler = lookup_compiler (NULL, 0, default_language);
+  if (compiler)
+   combine_inputs = compiler-combinable;
+}
 
   for (i = 0; (int) i  n_infiles; i++)
 {
diff --git a/gcc/gcc.h b/gcc/gcc.h
index 091d9c8..7bad86b 100644
--- a/gcc/gcc.h
+++ b/gcc/gcc.h
@@ -49,6 +49,8 @@ extern int lang_specific_pre_link (void);
 
 extern int n_infiles;
 
+extern const char *default_language;
+
 /* Number of extra output files that lang_specific_pre_link may generate.  */
 extern int lang_specific_extra_outfiles;
 
diff --git 

Really poor 4.5.2 results on Debian Squeeze with Intel i7

2011-01-02 Thread Dennis Clarke

For reasons unknown I ran the testsuite for well over three days before
finally giving up. This is a quad core Intel i7 with 8G of meemory and the
bootstrap took forever and the testsuite .. well the results below speak
for themselves.

Any idea why these results would be so poor ?

zaphod $ gas --version
GNU assembler (GNU Binutils) 2.21
Copyright 2010 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or later.
This program has absolutely no warranty.
This assembler was configured for a target of `x86_64-unknown-linux-gnu'.
zaphod $
zaphod $ which gld
/usr/local/bin/gld
zaphod $
zaphod $ gld --version
GNU ld (GNU Binutils) 2.21
Copyright 2010 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) a later version.
This program has absolutely no warranty.
zaphod $

zaphod $ grep -E processor|vendor_id|model\ name|core\ id /proc/cpuinfo
processor   : 0
vendor_id   : GenuineIntel
model name  : Intel(R) Core(TM) i7 CPU 860  @ 2.80GHz
core id : 0
processor   : 1
vendor_id   : GenuineIntel
model name  : Intel(R) Core(TM) i7 CPU 860  @ 2.80GHz
core id : 1
processor   : 2
vendor_id   : GenuineIntel
model name  : Intel(R) Core(TM) i7 CPU 860  @ 2.80GHz
core id : 2
processor   : 3
vendor_id   : GenuineIntel
model name  : Intel(R) Core(TM) i7 CPU 860  @ 2.80GHz
core id : 3
processor   : 4
vendor_id   : GenuineIntel
model name  : Intel(R) Core(TM) i7 CPU 860  @ 2.80GHz
core id : 0
processor   : 5
vendor_id   : GenuineIntel
model name  : Intel(R) Core(TM) i7 CPU 860  @ 2.80GHz
core id : 1
processor   : 6
vendor_id   : GenuineIntel
model name  : Intel(R) Core(TM) i7 CPU 860  @ 2.80GHz
core id : 2
processor   : 7
vendor_id   : GenuineIntel
model name  : Intel(R) Core(TM) i7 CPU 860  @ 2.80GHz
core id : 3
zaphod $

zaphod $ cat /proc/version
Linux version 2.6.32-5-amd64 (Debian 2.6.32-29) (b...@decadent.org.uk) (gcc
version 4.3.5 (Debian 4.3.5-4) ) #1 SMP Fri Dec 10 15:35:08 UTC 2010

zaphod $ which gcc
/usr/bin/gcc
zaphod $ gcc --version
gcc (Debian 4.4.5-8) 4.4.5
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.





zaphod $ ../gcc-4.5.2/contrib/test_summary
cat 'EOF' |
LAST_UPDATED: Obtained from SVN: tags/gcc_4_5_2_release revision 167946

Native configuration is x86_64-pc-linux-gnu

=== g++ tests ===


Running target unix
WARNING: program timed out.
FAIL: tmpdir-g++.dg-struct-layout-1/t001 cp_compat_y_tst.o compile
UNRESOLVED: tmpdir-g++.dg-struct-layout-1/t001
cp_compat_x_tst.o-cp_compat_y_tst.o link
UNRESOLVED: tmpdir-g++.dg-struct-layout-1/t001
cp_compat_x_tst.o-cp_compat_y_tst.o execute
WARNING: program timed out.
FAIL: tmpdir-g++.dg-struct-layout-1/t002 cp_compat_y_tst.o compile
UNRESOLVED: tmpdir-g++.dg-struct-layout-1/t002
cp_compat_x_tst.o-cp_compat_y_tst.o link
UNRESOLVED: tmpdir-g++.dg-struct-layout-1/t002
cp_compat_x_tst.o-cp_compat_y_tst.o execute
WARNING: program timed out.
FAIL: tmpdir-g++.dg-struct-layout-1/t003 cp_compat_y_tst.o compile
UNRESOLVED: tmpdir-g++.dg-struct-layout-1/t003
cp_compat_x_tst.o-cp_compat_y_tst.o link
UNRESOLVED: tmpdir-g++.dg-struct-layout-1/t003
cp_compat_x_tst.o-cp_compat_y_tst.o execute
WARNING: program timed out.
FAIL: tmpdir-g++.dg-struct-layout-1/t024 cp_compat_y_tst.o compile
UNRESOLVED: tmpdir-g++.dg-struct-layout-1/t024
cp_compat_x_tst.o-cp_compat_y_tst.o link
UNRESOLVED: tmpdir-g++.dg-struct-layout-1/t024
cp_compat_x_tst.o-cp_compat_y_tst.o execute
WARNING: program timed out.
FAIL: tmpdir-g++.dg-struct-layout-1/t025 cp_compat_y_tst.o compile
UNRESOLVED: tmpdir-g++.dg-struct-layout-1/t025
cp_compat_x_tst.o-cp_compat_y_tst.o link
UNRESOLVED: tmpdir-g++.dg-struct-layout-1/t025
cp_compat_x_tst.o-cp_compat_y_tst.o execute
WARNING: program timed out.
FAIL: tmpdir-g++.dg-struct-layout-1/t026 cp_compat_y_tst.o compile
UNRESOLVED: tmpdir-g++.dg-struct-layout-1/t026
cp_compat_x_tst.o-cp_compat_y_tst.o link
UNRESOLVED: tmpdir-g++.dg-struct-layout-1/t026
cp_compat_x_tst.o-cp_compat_y_tst.o execute
WARNING: program timed out.
FAIL: tmpdir-g++.dg-struct-layout-1/t027 cp_compat_y_tst.o compile
UNRESOLVED: tmpdir-g++.dg-struct-layout-1/t027
cp_compat_x_tst.o-cp_compat_y_tst.o link
UNRESOLVED: tmpdir-g++.dg-struct-layout-1/t027
cp_compat_x_tst.o-cp_compat_y_tst.o execute
FAIL: g++.dg/cpp0x/lambda/lambda-mangle.C (internal compiler error)
FAIL: g++.dg/cpp0x/lambda/lambda-mangle.C (test for excess errors)
ERROR: g++.dg/cpp0x/lambda/lambda-mangle.C: error executing dg-final:
couldn't open 

Re: Really poor 4.5.2 results on Debian Squeeze with Intel i7

2011-01-02 Thread H.J. Lu
On Sun, Jan 2, 2011 at 7:04 PM, Dennis Clarke dcla...@blastwave.org wrote:

 For reasons unknown I ran the testsuite for well over three days before
 finally giving up. This is a quad core Intel i7 with 8G of meemory and the
 bootstrap took forever and the testsuite .. well the results below speak
 for themselves.

 Any idea why these results would be so poor ?


At one time, I had a machine with the wrong BIOS setting. It was S
slow.  I would check BIOS first.

-- 
H.J.


Re: Behavior change of driver on multiple input assembly files

2011-01-02 Thread H.J. Lu
On Sun, Jan 2, 2011 at 6:52 PM, H.J. Lu hjl.to...@gmail.com wrote:
 On Sun, Jan 2, 2011 at 3:03 PM, H.J. Lu hjl.to...@gmail.com wrote:
 On Sun, Jan 2, 2011 at 2:05 PM, H.J. Lu hjl.to...@gmail.com wrote:
 On Sun, Jan 2, 2011 at 1:18 PM, Ian Lance Taylor i...@google.com wrote:
 Richard Guenther richard.guent...@gmail.com writes:

 On Sun, Jan 2, 2011 at 9:24 PM, Ian Lance Taylor i...@google.com wrote:
 Richard Guenther richard.guent...@gmail.com writes:

 Your small patch removing have_o || is ok I guess.

 Wait.  That will change the behaviour of
    gcc -o foo.o -c f1.c f2.c f3.c
 Is that what we want?

 Does it?  I don't think so.  Most of the combine handling was removed by
 the patch that caused the regression, so -o and -c doesn't combine anymore
 (with multiple sources).

 Sorry, you're right.  The difference is that @c has 0 for the combinable
 field, and @assembler has 1.  Before H.J.'s change, this worked
    gcc -c -o f.o f1.s f2.s
 After his change, it does not.  That is probably not a big deal.

 I wonder why @assembler has 1 for combinable?  It seems to have been set
 to 1 when the combinable field was added in 2004-04-05 with -combine.
 Now that -combine has been removed, if the combinable field for
 @assembler were 0, it seems to me that H.J.'s problem would also be
 fixed.  And it seems to me that it should be 0.


 Also, right now the gccgo driver depends on the -o behaviour to combine
 inputs.  If that changes, the driver will need to provide some other way
 to let the frontend force inputs to be combined.

 For go it isn't equivalent to do gcgo -c t1.go; gcgo -c t2.go; gcgo t1.o 
 t2.o
 compared to gcgo t1.go t2.go?

 No, it is not.  All .go input files must be passed to go1 at once.
 H.J.'s patch has indeed broken gccgo.


 Can you try this patch?

 Thanks.


 --
 H.J.
 ---
 diff --git a/gcc/gcc.c b/gcc/gcc.c
 index 0d633a4..d0b2c96 100644
 --- a/gcc/gcc.c
 +++ b/gcc/gcc.c
 @@ -6582,7 +6582,20 @@ warranty; not even for MERCHANTABILITY or FITNESS 
 FOR A P
 ARTICULAR PURPOSE.\n\n

   explicit_link_files = XCNEWVEC (char, n_infiles);

 +  /* Check if we should combine inputs.  */
   combine_inputs = flag_wpa;
 +  if (!combine_inputs)
 +    for (i = 1; i  decoded_options_count; i++)
 +      {
 +       if (decoded_options[i].opt_index == OPT_x)
 +         {
 +           struct compiler *compiler
 +             = lookup_compiler (NULL, 0, decoded_options[i].arg);
 +           if (compiler)
 +             combine_inputs = compiler-combinable;
 +           break;
 +         }
 +      }

   for (i = 0; (int) i  n_infiles; i++)
     {


 This doesn't work for go since -xgo isn't used with gccgo. Is there
 a way to tell what the default language is for a gcc driver?


 I am testing this patch with all languages on Linux/x86-64.


 --
 H.J.
 ---
 gcc/

 2011-01-02  H.J. Lu  hongjiu...@intel.com

        PR driver/47137
        * gcc.c (default_language): New.
        (main): Lookup compiler to check if we should combine inputs.

        * gcc.h (default_language): New.

 gcc/go/

 2011-01-02  H.J. Lu  hongjiu...@intel.com

        PR driver/47137
        * gospec.c (lang_specific_driver): Set default_language if
        needed.


Here is the result:

http://gcc.gnu.org/ml/gcc-testresults/2011-01/msg00160.html


-- 
H.J.


gcc interprets C++0x initialization construct as function declaration

2011-01-02 Thread Nathan Ridge

Hello,

For the following code:

struct S
{
int a;
float b;
};
struct T
{
T(S s) {}
};
int main()
{
T t(S{1, 0.1}); // ERROR HERE
}

gcc 4.6 trunk gives the following errors (with the --std=c++0x option):

decl.cpp: In function 'int main()':
decl.cpp:14:10: error: expected ')' before '{' token
decl.cpp:14:10: error: a function-definition is not allowed here before '{' 
token
decl.cpp:14:18: error: expected primary-expression before ')' token
decl.cpp:14:18: error: expected ';' before ')' token

It seems gcc is interpreting the statement as a function declaration.

Is this the desired behaviour?

Regards,
Nate. 


Re: Really poor 4.5.2 results on Debian Squeeze with Intel i7

2011-01-02 Thread Eric Botcazou
 Any idea why these results would be so poor ?

Because of your bootstrap settings, more precisely --enable-checking=all.

-- 
Eric Botcazou


[Bug target/47148] [4.6 Regression] likely wrong code bug

2011-01-02 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47148

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
 AssignedTo|unassigned at gcc dot   |jakub at gcc dot gnu.org
   |gnu.org |

--- Comment #6 from Jakub Jelinek jakub at gcc dot gnu.org 2011-01-02 
11:29:08 UTC ---
Created attachment 22879
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22879
gcc46-pr47148.patch

Untested fix on the fnsplit side.


[Bug fortran/47051] [4.6 Regression] Wrong reallocate

2011-01-02 Thread Joost.VandeVondele at pci dot uzh.ch
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47051

Joost VandeVondele Joost.VandeVondele at pci dot uzh.ch changed:

   What|Removed |Added

   Keywords||wrong-code
Summary|Wrong reallocate|[4.6 Regression] Wrong
   ||reallocate

--- Comment #10 from Joost VandeVondele Joost.VandeVondele at pci dot uzh.ch 
2011-01-02 11:54:52 UTC ---
The testcase in comment #0 is just Fortran95 (i.e. is well defined without
reallocation), and works fine with all versions of gfortran prior to 4.6. It is
thus a regression, and a quite serious one IMO since it can affect any code
using array assignment. It was found with CP2K, if that matters.


[Bug c++/47151] New: Parsing error

2011-01-02 Thread chaturvedi.kuldeep at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47151

   Summary: Parsing error
   Product: gcc
   Version: 4.4.3
Status: UNCONFIRMED
  Severity: minor
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: chaturvedi.kuld...@gmail.com


Created attachment 22880
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22880
The  revstr.ii file that contains the complete code which the g++ compiler has
generated

I have created a recursive function but forgot to place a semi-colon at the end
of return statement. The compiler, in fact, did not raise any syntactical
errors. 

Here is the fragment of the code.

void revstr_recursive(char * str, int start, int end) {
   if (start  end)
  revstr_recursive(str, start + 1, end - 1);
   else 
  return

   swap(str[start], str[end]);
}


[Bug c++/47151] Parsing error

2011-01-02 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47151

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID

--- Comment #1 from Paolo Carlini paolo.carlini at oracle dot com 2011-01-02 
12:11:03 UTC ---
Your snippet is perfectly legal, like, eg:

void foo() { }

void bar()
{ return foo(); }


[Bug fortran/47136] [OOP] possible name resolution problems between MODULE and INTERFACE?

2011-01-02 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47136

--- Comment #2 from janus at gcc dot gnu.org 2011-01-02 13:25:37 UTC ---
Here is a variant which gives the same error message:

MODULE a
  TYPE, ABSTRACT :: t
  CONTAINS
PROCEDURE, NOPASS :: pp = s
  END TYPE
CONTAINS
  SUBROUTINE s()
  END SUBROUTINE
END MODULE

MODULE s
  USE a
END MODULE


[Bug fortran/47136] [OOP] possible name resolution problems between MODULE and INTERFACE?

2011-01-02 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47136

--- Comment #3 from janus at gcc dot gnu.org 2011-01-02 13:33:50 UTC ---
Some related non-OOP examples:


module a
contains
  subroutine s()
  end subroutine
end module

module s
  use a
contains
  subroutine sub()
call s
  end subroutine
end 


gives:

call s
  1
Error: Name 's' at (1) is an ambiguous reference to 's' from current program
unit


Example #2:


module a
contains
  subroutine s()
  end subroutine
end module

module m
  use a
contains
  subroutine s()
  end subroutine
end 


gives:

  subroutine s()
  1
test.f90:8.7:

  use a
   2
Error: Procedure 's' at (1) is already defined at (2)


Are these examples actually valid or invalid? Can someone give the relevant
quotes from the standard?


[Bug fortran/47136] [OOP] possible name resolution problems between MODULE and INTERFACE?

2011-01-02 Thread dfranke at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47136

--- Comment #4 from Daniel Franke dfranke at gcc dot gnu.org 2011-01-02 
13:47:41 UTC ---
(In reply to comment #3)
 Some related non-OOP examples:
[...]
 Are these examples actually valid or invalid? Can someone give the relevant
 quotes from the standard?

Lahey's online source checker rejects both examples with similar messages. It
doesn't know OOP to test, but one could think that my initial example is
invalid after all?!


[Bug libgomp/39939] MinGW 4.3.0 fails to link sample programme.

2011-01-02 Thread ktietz at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39939

Kai Tietz ktietz at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 CC||ktietz at gcc dot gnu.org
 Resolution||INVALID

--- Comment #14 from Kai Tietz ktietz at gcc dot gnu.org 2011-01-02 14:05:53 
UTC ---
Well, this bug is configure/environment related and not a bug of gcc AFAICS.
So I close this as invalid.


[Bug c++/46589] struct member function not declared global

2011-01-02 Thread ktietz at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46589

Kai Tietz ktietz at gcc dot gnu.org changed:

   What|Removed |Added

 CC||ktietz at gcc dot gnu.org

--- Comment #7 from Kai Tietz ktietz at gcc dot gnu.org 2011-01-02 14:29:18 
UTC ---
(In reply to comment #3)
 I'm not sure if [basic.link] paragraph 5 means S::f should have external
 linkage or not. Paragraph 4 (third bullet) means that S has external linkage.
 Paragraph 5 refers to the name of the class and in this case the class has no
 name, but it has the typedef name for linkage purposes.  I'm not sure if that
 means S::f should or should not have external linkage.

As far as I understand specificiation (C++ Standard - ANSI ISO IEC 14882 2003)

3.5 Program and linkage 3 Basic concepts

--- an object or reference that is explicitly declared const and neither
explicitly declared extern nor
previously declared to have external linkage; or
--- a data member of an anonymous union.

4 A name having namespace scope has external linkage if it is the name of
--- an object or reference, unless it has internal linkage; or
--- a function, unless it has internal linkage; or
--- a named class (clause 9), or an unnamed class defined in a typedef
declaration in which the class has the
typedef name for linkage purposes (7.1.3); or
--- a named enumeration (7.2), or an unnamed enumeration defined in a typedef
declaration in which the
enumeration has the typedef name for linkage purposes (7.1.3); or
--- an enumerator belonging to an enumeration with external linkage; or
--- a template, unless it is a function template that has internal linkage
(clause 14); or
--- a namespace (7.3), unless it is declared within an unnamed namespace.

5 In addition, a member function, static data member, class or enumeration of
class scope has external linkage
if the name of the class has external linkage.

7.1.3
...
If the typedef declaration defines an unnamed class (or enum), the first
typedef-name declared by the declaration
to be that class type (or enum type) is used to denote the class type (or enum
type) for linkage purposes
only (3.5).
[Example:]
typedef struct { } *ps, S; // S is the class name for linkage purposes
[end example]
...

So S becomes here class name and the class S has external linkage. So member
functions of it, too. Just explicit constructor/destructors aren't possible
here, as S() would be a normal method and needs a return type.

Kai


[Bug fortran/47136] [OOP] possible name resolution problems between MODULE and INTERFACE?

2011-01-02 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47136

--- Comment #5 from janus at gcc dot gnu.org 2011-01-02 14:46:34 UTC ---
(In reply to comment #4)
 (In reply to comment #3)
  Some related non-OOP examples:
 [...]
  Are these examples actually valid or invalid? Can someone give the relevant
  quotes from the standard?
 
 Lahey's online source checker rejects both examples with similar messages.

So do openf95 and pathf95.


 It
 doesn't know OOP to test, but one could think that my initial example is
 invalid after all?!

I agree that it may be invalid, but one should check the exact wording in the
standard.


[Bug fortran/47136] [OOP] possible name resolution problems between MODULE and INTERFACE?

2011-01-02 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47136

--- Comment #6 from janus at gcc dot gnu.org 2011-01-02 15:19:10 UTC ---
(In reply to comment #5)
  It
  doesn't know OOP to test, but one could think that my initial example is
  invalid after all?!
 
 I agree that it may be invalid, but one should check the exact wording in the
 standard.

Yes, after a look in the standard I would say that is invalid according to F08,
chapter 16.3.1, sentence #2:

Within its scope, a local identifier of an entity of class (1) or class (4)
shall not be the same as a global identifier used in that scope unless [...]

Class (1) contains all sorts of named variables and procedures, including
abstract interfaces. The exceptions which I elided in the above statement do
not apply. The only question is whether a module counts as used in it's own
scope, which I would answer with yes.

Therefore I think already the following reduction of comment #0 is invalid:

MODULE a
  ABSTRACT INTERFACE
SUBROUTINE s()
END SUBROUTINE
  END INTERFACE
END MODULE

MODULE s
  USE a
END MODULE

Within the scope of module a everything is fine, since the module s is not
used. Within the scope of module s, however, the subroutine s is a local
identifier (by means of use association) and conflicts with the global
identifier of module s itself. Right?


[Bug fortran/47136] [OOP] possible name resolution problems between MODULE and INTERFACE?

2011-01-02 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47136

janus at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords|rejects-valid   |accepts-invalid

--- Comment #7 from janus at gcc dot gnu.org 2011-01-02 15:21:34 UTC ---
(In reply to comment #6)
 Within the scope of module a everything is fine, since the module s is not
 used. Within the scope of module s, however, the subroutine s is a local
 identifier (by means of use association) and conflicts with the global
 identifier of module s itself. Right?

By this reasoning the PR is actually of the type accepts-invalid and not
rejects-valid.


[Bug fortran/47136] local identifier shall not be the same as a global identifier

2011-01-02 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47136

janus at gcc dot gnu.org changed:

   What|Removed |Added

Summary|[OOP] possible name |local identifier shall not
   |resolution problems between |be the same as a global
   |MODULE and INTERFACE?   |identifier

--- Comment #8 from janus at gcc dot gnu.org 2011-01-02 15:24:10 UTC ---
(In reply to comment #7)
 (In reply to comment #6)
  Within the scope of module a everything is fine, since the module s is 
  not
  used. Within the scope of module s, however, the subroutine s is a local
  identifier (by means of use association) and conflicts with the global
  identifier of module s itself. Right?
 
 By this reasoning the PR is actually of the type accepts-invalid and not
 rejects-valid.

... and unrelated to OOP.


[Bug fortran/46408] [OOP] Segfault when running gfortran.dg/class_allocate_6.f03

2011-01-02 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46408

--- Comment #4 from janus at gcc dot gnu.org 2011-01-02 15:58:13 UTC ---
Reduced test case:

type t
end type

type, extends(t) :: t2
  integer, allocatable :: a
end type

class(t), allocatable :: x, y

allocate(t2 :: x)
allocate(y, source=x)

end



As far as I can see, the copying routine itself is alright. The problem seems
to be with the default initialization of x%a. From the dump:


MAIN__ ()
{
  static struct t __def_init_MAIN___t;
  static struct t2 __def_init_MAIN___t2 = {};
  static struct __vtype_MAIN___t __vtab_MAIN___t = {._hash=6232021, ._size=0,
._extends=0B, ._def_init=__def_init_MAIN___t, ._copy=__copy_MAIN___t};
  static struct __vtype_MAIN___t2 __vtab_MAIN___t2 = {._hash=43807140,
._size=8, ._extends=__vtab_MAIN___t, ._def_init=__def_init_MAIN___t2,
._copy=__copy_MAIN___t2};
  static struct __class_MAIN___t_a x = {};
  static struct __class_MAIN___t_a y = {};
  static void __copy_MAIN___t (struct t  restrict, struct t  restrict);
  static void __copy_MAIN___t2 (struct t2  restrict, struct t2  restrict);

  try
{
  x._data = 0B;
  y._data = 0B;

  ! [ ... allocation of x._data ... ]

  (void) __builtin_memcpy ((void *) x._data, (void *) x._vptr-_def_init,
(unnamed-unsigned:64) x._vptr-_size);

  ! [ ... allocation of y.data ... ]

  x._vptr-_copy (x._data, y._data);
  (struct __vtype_MAIN___t *) y._vptr = (struct __vtype_MAIN___t *)
x._vptr;
}
  finally
{
  [...]
}
}


x%a should get default-initialized to NULL via the memcpy call from
x._vptr-_def_init. The memcpy itself is done alright, but apparently the
_def_init variable is not properly initialized (is it?):

  static struct t2 __def_init_MAIN___t2 = {};


[Bug fortran/46408] [OOP] Segfault when running gfortran.dg/class_allocate_6.f03

2011-01-02 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46408

--- Comment #5 from janus at gcc dot gnu.org 2011-01-02 16:24:00 UTC ---
(In reply to comment #4)
 x%a should get default-initialized to NULL via the memcpy call from
 x._vptr-_def_init. The memcpy itself is done alright, but apparently the
 _def_init variable is not properly initialized (is it?):
 
   static struct t2 __def_init_MAIN___t2 = {};


No, it's not. The problem is:  __def_init_MAIN___t2 is declared as SAVE in
gfc_find_derived_vtab. Therefore it's allocatable components do not get
default-initialized to NULL. However, if we don't give it the SAVE attribute,
we get:

Error: Pointer initialization target at (1) must have the SAVE attribute

Because the def_init symbol is used as pointer init target for the vtab.

:(


[Bug rtl-optimization/47028] [4.6 Regression] gcc.dg/tree-ssa/tailrecursion-[57].c FAIL with -foptimize-sibling-calls -fno-forward-propagate -fno-tree-copy-prop -fno-tree-dominator-opts

2011-01-02 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47028

--- Comment #6 from Jakub Jelinek jakub at gcc dot gnu.org 2011-01-02 
17:07:18 UTC ---
Author: jakub
Date: Sun Jan  2 17:07:15 2011
New Revision: 168401

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=168401
Log:
PR rtl-optimization/47028
* cfgexpand.c (gimple_expand_cfg): Insert entry edge
insertions after parm_birth_insn instead of at the beginning
of first bb.

* gcc.dg/pr47028.c: New test.

Added:
trunk/gcc/testsuite/gcc.dg/pr47028.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/cfgexpand.c
trunk/gcc/testsuite/ChangeLog


[Bug tree-optimization/47140] [4.6 Regression] error: conversion of register to a different size

2011-01-02 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47140

--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org 2011-01-02 
17:09:11 UTC ---
Author: jakub
Date: Sun Jan  2 17:09:08 2011
New Revision: 168402

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=168402
Log:
PR tree-optimization/47140
* tree-ssa-ccp.c (evaluate_stmt): For binary assignments, use
TREE_TYPE (lhs) instead of TREE_TYPE (rhs1) as second argument
to bit_value_binop.

* gcc.c-torture/compile/pr47140.c: New test.

Added:
trunk/gcc/testsuite/gcc.c-torture/compile/pr47140.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-ssa-ccp.c


[Bug c/46926] Paired sin() cos() calls optimized to sincos() call.

2011-01-02 Thread aph at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46926

Andrew Haley aph at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011.01.02 17:19:22
 CC||aph at gcc dot gnu.org
 Ever Confirmed|0   |1


[Bug c++/46589] struct member function not declared global

2011-01-02 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46589

H.J. Lu hjl.tools at gmail dot com changed:

   What|Removed |Added

 CC||hjl.tools at gmail dot com

--- Comment #8 from H.J. Lu hjl.tools at gmail dot com 2011-01-02 17:23:42 
UTC ---
ICC generates:

 T _ZN1L1GEv


[Bug rtl-optimization/47028] [4.6 Regression] gcc.dg/tree-ssa/tailrecursion-[57].c FAIL with -foptimize-sibling-calls -fno-forward-propagate -fno-tree-copy-prop -fno-tree-dominator-opts

2011-01-02 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47028

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #7 from Jakub Jelinek jakub at gcc dot gnu.org 2011-01-02 
17:24:00 UTC ---
Fixed.


[Bug tree-optimization/47140] [4.6 Regression] error: conversion of register to a different size

2011-01-02 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47140

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #4 from Jakub Jelinek jakub at gcc dot gnu.org 2011-01-02 
17:24:32 UTC ---
Fixed.


[Bug rtl-optimization/47138] backport r158175: replace dominated uses in loop-invariant

2011-01-02 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47138

--- Comment #2 from Richard Guenther rguenth at gcc dot gnu.org 2011-01-02 
17:50:02 UTC ---
The rev. doesn't have a testcase (and it didn't fix a bug?).

If you have a testcase that shows this patch fixes a regression it is ok
to backport.  If it fixes a wrong-code bug then it is also ok to backport
if you have a testcase.


[Bug fortran/46408] [OOP] Segfault when running gfortran.dg/class_allocate_6.f03

2011-01-02 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46408

janus at gcc dot gnu.org changed:

   What|Removed |Added

 CC||sfilippone at uniroma2 dot
   ||it

--- Comment #6 from janus at gcc dot gnu.org 2011-01-02 17:51:39 UTC ---
*** Bug 47085 has been marked as a duplicate of this bug. ***


[Bug fortran/47085] [OOP] Problem in allocate( SOURCE=) for polymorphic component

2011-01-02 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47085

janus at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||DUPLICATE

--- Comment #4 from janus at gcc dot gnu.org 2011-01-02 17:51:39 UTC ---
With the ICE-on-invalid problem solved, this is really just a duplicate of
PR46408.

*** This bug has been marked as a duplicate of bug 46408 ***


[Bug driver/47137] [4.6 Regression] gcc incorrectly combines assembly inputs

2011-01-02 Thread hjl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47137

--- Comment #3 from hjl at gcc dot gnu.org hjl at gcc dot gnu.org 2011-01-02 
17:54:24 UTC ---
Author: hjl
Date: Sun Jan  2 17:54:22 2011
New Revision: 168407

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=168407
Log:
Don't check have_o when settting combine_inputs.

2011-01-02  H.J. Lu  hongjiu...@intel.com

PR driver/47137
* gcc.c (main): Don't check have_o when settting combine_inputs.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/gcc.c


[Bug driver/47137] [4.6 Regression] gcc incorrectly combines assembly inputs

2011-01-02 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47137

H.J. Lu hjl.tools at gmail dot com changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED

--- Comment #4 from H.J. Lu hjl.tools at gmail dot com 2011-01-02 17:55:04 
UTC ---
Fixed.


[Bug target/46942] x86_64 parameter passing unnecessary sign/zero extends

2011-01-02 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46942

H.J. Lu hjl.tools at gmail dot com changed:

   What|Removed |Added

 Depends on||42324

--- Comment #4 from H.J. Lu hjl.tools at gmail dot com 2011-01-02 17:58:18 
UTC ---
I proposed to update x86-64 psABI with

---
When a value of type _Bool is returned in a register, bit 0 contains the truth
value and bits 1 to 7 shall be zero. When an argument of type _Bool is passed
in a register or on the stack, bit 0 contains the truth value and bits
1 to 31 shall be
zero.

When a value of type signed/unsigned char or short is returned in a register,
bits 0 to 7 for char and bits 0 to 15 for short contain the value and other
bits are left unspecified. When an argument of signed/unsigned type char or
short is passed in a register or on the stack, it shall be sign/zero extended
to
signed/unsigned int.
---


[Bug target/46942] x86_64 parameter passing unnecessary sign/zero extends

2011-01-02 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46942

H.J. Lu hjl.tools at gmail dot com changed:

   What|Removed |Added

   Target Milestone|--- |4.6.0


[Bug rtl-optimization/47138] backport r158175: replace dominated uses in loop-invariant

2011-01-02 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47138

--- Comment #3 from Eric Botcazou ebotcazou at gcc dot gnu.org 2011-01-02 
18:18:23 UTC ---
 The rev. doesn't have a testcase (and it didn't fix a bug?).

See http://gcc.gnu.org/ml/gcc-patches/2010-04/msg00056.html


[Bug middle-end/47152] New: ice in try_head_merge_bb at cfgcleanup.c:2177

2011-01-02 Thread aesok at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47152

   Summary: ice in try_head_merge_bb at cfgcleanup.c:2177
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: ae...@gcc.gnu.org
  Host: x86_64-unknown-linux-gnu
Target: cris-axis-elf


Hello.

make[4]: Entering directory `/home/aesok/cris/build/cris-elf/v10/libgcc'
# If this is the top-level multilib, build all the other
# multilibs.
/home/aesok/cris/build/./gcc/xgcc -B/home/aesok/cris/build/./gcc/
-B/home/aesok/
cross-local/cris-elf/cris-elf/bin/
-B/home/aesok/cross-local/cris-elf/cris-elf/l
ib/ -isystem /home/aesok/cross-local/cris-elf/cris-elf/include -isystem
/home/ae
sok/cross-local/cris-elf/cris-elf/sys-include --sysroot=/home/aesok/cross-local
/cris-elf   -g -O2 -march=v10 -mbest-lib-options -O2  -g -O2 -DIN_GCC
-DCROSS_DI
RECTORY_STRUCTURE  -W -Wall -Wwrite-strings -Wcast-qual -Wstrict-prototypes
-Wmi
ssing-prototypes -Wold-style-definition  -isystem ./include   -g  -DIN_LIBGCC2
-
D__GCC_FLOAT_NOT_NEEDED -fno-stack-protector   -I. -I. -I../../.././gcc
-I../../
../../gcc/libgcc -I../../../../gcc/libgcc/. -I../../../../gcc/libgcc/../gcc
-I..
/../../../gcc/libgcc/../include  -DHAVE_CC_TLS -DUSE_EMUTLS -o _addsub_df.o -MT
_addsub_df.o -MD -MP -MF _addsub_df.dep -DFINE_GRAINED_LIBRARIES -DL_addsub_df
-
c ../../.././gcc/dp-bit.c
../../.././gcc/dp-bit.c: In function '_fpadd_parts':
../../.././gcc/dp-bit.c:730:1: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.
make[4]: *** [_addsub_df.o] Error 1



This GDB was configured as x86_64-linux-gnu.
(gdb) file  /home/aesok/cris/build/./gcc/cc1
Reading symbols from /home/aesok/cris/build/gcc/cc1...done.
(gdb) run -fpreprocessed dp-bit.i -melf -ffunction-sections -fdata-sections
-quiet -dumpbase dp-bit.c -march=v10 -mbest-lib-options -auxbase-strip
_addsub_df.o -g -g -g -O2 -O2 -O2 -Wextra -Wall -Wwrite-strings -Wcast-qual
-Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -version
-fno-stack-protector -o dp-bit.s
Starting program: /home/aesok/cris/build/gcc/cc1 -fpreprocessed dp-bit.i -melf
-ffunction-sections -fdata-sections -quiet -dumpbase dp-bit.c -march=v10
-mbest-lib-options -auxbase-strip _addsub_df.o -g -g -g -O2 -O2 -O2 -Wextra
-Wall -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes
-Wold-style-definition -version -fno-stack-protector -o dp-bit.s
GNU C (GCC) version 4.6.0 20110102 (experimental) [trunk revision 152933]
(cris-elf)
compiled by GNU C version 4.3.2, GMP version 4.2.2, MPFR version 2.4.1,
MPC version 0.8
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
GNU C (GCC) version 4.6.0 20110102 (experimental) [trunk revision 152933]
(cris-elf)
compiled by GNU C version 4.3.2, GMP version 4.2.2, MPFR version 2.4.1,
MPC version 0.8
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
Compiler executable checksum: d661c5447d50525e7c2e92079814b9be

Program received signal SIGSEGV, Segmentation fault.
try_head_merge_bb (bb=0x77635888) at ../../gcc/gcc/cfgcleanup.c:2177
2177  while (!NONDEBUG_INSN_P (curr));
(gdb) bt
#0  try_head_merge_bb (bb=0x77635888) at ../../gcc/gcc/cfgcleanup.c:2177
#1  0x009ff29e in cleanup_cfg (mode=2)
at ../../gcc/gcc/cfgcleanup.c:2480
#2  0x00a17f47 in rest_of_handle_stack_adjustments ()
at ../../gcc/gcc/combine-stack-adj.c:554
#3  0x0072d34f in execute_one_pass (pass=0xe8b0e0)
at ../../gcc/gcc/passes.c:1553
#4  0x0072d645 in execute_pass_list (pass=0xe8b0e0)
at ../../gcc/gcc/passes.c:1608
#5  0x0072d65d in execute_pass_list (pass=0xe86880)
at ../../gcc/gcc/passes.c:1609
#6  0x0072d65d in execute_pass_list (pass=0xe86820)
at ../../gcc/gcc/passes.c:1609
#7  0x0080f556 in tree_rest_of_compilation (fndecl=0x775c8400)
at ../../gcc/gcc/tree-optimize.c:422
#8  0x00994110 in cgraph_expand_function (node=0x775c6580)
at ../../gcc/gcc/cgraphunit.c:1508
#9  0x00996f29 in cgraph_optimize ()
at ../../gcc/gcc/cgraphunit.c:1567
#10 0x0099735d in cgraph_finalize_compilation_unit ()
at ../../gcc/gcc/cgraphunit.c:1031
#11 0x0047a4b4 in c_write_global_declarations ()
at ../../gcc/gcc/c-decl.c:9843
#12 0x007b299f in toplev_main (argc=30, argv=0x7fffe5b8)
at ../../gcc/gcc/toplev.c:591
#13 0x7766a1a6 in __libc_start_main () from /lib/libc.so.6
#14 0x00469a19 in _start ()
(gdb)

Anatoly.


[Bug middle-end/47152] ice in try_head_merge_bb at cfgcleanup.c:2177

2011-01-02 Thread aesok at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47152

--- Comment #1 from aesok at gcc dot gnu.org 2011-01-02 18:28:10 UTC ---
Created attachment 22881
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22881
dp-bit.i


[Bug rtl-optimization/47138] backport r158175: replace dominated uses in loop-invariant

2011-01-02 Thread bigotp at acm dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47138

--- Comment #4 from Peter A. Bigot bigotp at acm dot org 2011-01-02 18:33:21 
UTC ---
Exactly: this problem also occurs with the TI msp430 target machine
description, currently maintained as a fork on the mspgcc project on
sourceforge.  I don't know how to provide a test case other than a tar file and
patch that adds that target, and a demonstration that without the referenced
change build of libgcc fails with unrecognized instruction patterns (a parallel
clobber didn't get updated, and the assert at the bottom of
cfgrtl.c:patch_jump_insn gets hit when redirect_jump fails on a target that
isn't an exit block).

On further reflection, since this is fixed in trunk and the msp430 target
wouldn't be back-ported into your repository for an existing release series,
I'm ok with closing this as not-worth-fixing.  I did, however, want an upstream
problem report on which to hang the patches that I'll be maintaining.


[Bug middle-end/47152] ice in try_head_merge_bb at cfgcleanup.c:2177

2011-01-02 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47152

H.J. Lu hjl.tools at gmail dot com changed:

   What|Removed |Added

 CC||bernds at gcc dot gnu.org

--- Comment #2 from H.J. Lu hjl.tools at gmail dot com 2011-01-02 18:44:21 
UTC ---
(In reply to comment #0)
 Hello.
 
 make[4]: Entering directory `/home/aesok/cris/build/cris-elf/v10/libgcc'
 # If this is the top-level multilib, build all the other
 # multilibs.
 /home/aesok/cris/build/./gcc/xgcc -B/home/aesok/cris/build/./gcc/
 -B/home/aesok/
 cross-local/cris-elf/cris-elf/bin/
 -B/home/aesok/cross-local/cris-elf/cris-elf/l
 ib/ -isystem /home/aesok/cross-local/cris-elf/cris-elf/include -isystem
 /home/ae
 sok/cross-local/cris-elf/cris-elf/sys-include 
 --sysroot=/home/aesok/cross-local
 /cris-elf   -g -O2 -march=v10 -mbest-lib-options -O2  -g -O2 -DIN_GCC
 -DCROSS_DI
 RECTORY_STRUCTURE  -W -Wall -Wwrite-strings -Wcast-qual -Wstrict-prototypes
 -Wmi
 ssing-prototypes -Wold-style-definition  -isystem ./include   -g  -DIN_LIBGCC2
 -
 D__GCC_FLOAT_NOT_NEEDED -fno-stack-protector   -I. -I. -I../../.././gcc
 -I../../
 ../../gcc/libgcc -I../../../../gcc/libgcc/. -I../../../../gcc/libgcc/../gcc
 -I..
 /../../../gcc/libgcc/../include  -DHAVE_CC_TLS -DUSE_EMUTLS -o _addsub_df.o 
 -MT
 _addsub_df.o -MD -MP -MF _addsub_df.dep -DFINE_GRAINED_LIBRARIES -DL_addsub_df
 -
 c ../../.././gcc/dp-bit.c
 ../../.././gcc/dp-bit.c: In function '_fpadd_parts':
 ../../.././gcc/dp-bit.c:730:1: internal compiler error: Segmentation fault
 Please submit a full bug report,
 with preprocessed source if appropriate.
 See http://gcc.gnu.org/bugs.html for instructions.
 make[4]: *** [_addsub_df.o] Error 1
 
 
 
 This GDB was configured as x86_64-linux-gnu.
 (gdb) file  /home/aesok/cris/build/./gcc/cc1
 Reading symbols from /home/aesok/cris/build/gcc/cc1...done.
 (gdb) run -fpreprocessed dp-bit.i -melf -ffunction-sections -fdata-sections
 -quiet -dumpbase dp-bit.c -march=v10 -mbest-lib-options -auxbase-strip
 _addsub_df.o -g -g -g -O2 -O2 -O2 -Wextra -Wall -Wwrite-strings -Wcast-qual
 -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -version
 -fno-stack-protector -o dp-bit.s
 Starting program: /home/aesok/cris/build/gcc/cc1 -fpreprocessed dp-bit.i -melf
 -ffunction-sections -fdata-sections -quiet -dumpbase dp-bit.c -march=v10
 -mbest-lib-options -auxbase-strip _addsub_df.o -g -g -g -O2 -O2 -O2 -Wextra
 -Wall -Wwrite-strings -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes
 -Wold-style-definition -version -fno-stack-protector -o dp-bit.s
 GNU C (GCC) version 4.6.0 20110102 (experimental) [trunk revision 152933]


Are you sure your GCC tree is up to date?


[Bug target/46942] x86_64 parameter passing unnecessary sign/zero extends

2011-01-02 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46942

--- Comment #5 from Jakub Jelinek jakub at gcc dot gnu.org 2011-01-02 
19:01:58 UTC ---
And upper 32 bits are undefined if the argument is 8/16/32 bit (i.e. callee
must sign/zero extend, instead of caller)?


[Bug fortran/46408] [OOP] Segfault when running gfortran.dg/class_allocate_6.f03

2011-01-02 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46408

--- Comment #7 from janus at gcc dot gnu.org 2011-01-02 19:02:31 UTC ---
(In reply to comment #5)
 (In reply to comment #4)
  x%a should get default-initialized to NULL via the memcpy call from
  x._vptr-_def_init. The memcpy itself is done alright, but apparently the
  _def_init variable is not properly initialized (is it?):
  
static struct t2 __def_init_MAIN___t2 = {};
 
 
 No, it's not. The problem is:  __def_init_MAIN___t2 is declared as SAVE in
 gfc_find_derived_vtab. Therefore it's allocatable components do not get
 default-initialized to NULL.

However, if I add a static initializer for this guy, i.e.

  static struct t2 __def_init_MAIN___t2 = {.a=0B};

I still get the same valgrind error. What the hell?


Conclusion: The error must come from the second part of the copying routine's
dump:

if (D.1545.a != 0B)
  {
__builtin_free ((void *) D.1545.a);
  }
D.1545.a = 0B;

Here D.1545 is the old value of the destination. Since this was just freshly
allocated before calling the copy routine, it's technically undefined (unless
the malloc zeroes it). Now, that really is it!

Two possible solutions:

1) Initialize with _def_init, before calling _copy (which means extra work
since we initialize twice).

2) Forget about freeing the old value of 'dst' (which is fine as long as we
only call _copy on allocation, where dst is undefined; this is currently the
case).


[Bug ada/47056] [4.6 Regression] 10 Ada ACATS tests fail to link with undefined reference on ia64-linux

2011-01-02 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47056

Eric Botcazou ebotcazou at gcc dot gnu.org changed:

   What|Removed |Added

 CC||rguenth at gcc dot gnu.org

--- Comment #5 from Eric Botcazou ebotcazou at gcc dot gnu.org 2011-01-02 
19:14:22 UTC ---
The problem is that CCP turns:

  pr47056___alignment.46_308 = pr47056___alignment;
  D.2264_309 = MEM[(struct  *)pr47056___alignment.46_308].D.227;

into

  D.2264_309 = MEM[(struct  *)pr47056___alignment].D.227;

(pr47056___alignment being a function) and while walk_stmt_load_store_addr_ops
recognizes the former as an address-of pattern (the  is implicit for
functions), it doesn't for the latter (unlike for TARGET_MEM_REF) so
build_cgraph_edges is fooled and missed the reference to pr47056___alignment.

Richard, I presume that the latter form must be deemed invalid GIMPLE?


[Bug fortran/46408] [OOP] Segfault when running gfortran.dg/class_allocate_6.f03

2011-01-02 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46408

janus at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
 AssignedTo|unassigned at gcc dot   |janus at gcc dot gnu.org
   |gnu.org |

--- Comment #8 from janus at gcc dot gnu.org 2011-01-02 19:23:55 UTC ---
(In reply to comment #7)
 2) Forget about freeing the old value of 'dst' (which is fine as long as we
 only call _copy on allocation, where dst is undefined; this is currently the
 case).

This is definitely the proper thing to do: We only need _copy for ALLOCATE with
SOURCE. And the best thing is, it's really easily done:

Index: gcc/fortran/class.c
===
--- gcc/fortran/class.c(revision 168379)
+++ gcc/fortran/class.c(working copy)
@@ -548,7 +548,7 @@ gfc_find_derived_vtab (gfc_symbol *derived)
   copy-formal-next-sym = dst;
   /* Set up code.  */
   sub_ns-code = gfc_get_code ();
-  sub_ns-code-op = EXEC_ASSIGN;
+  sub_ns-code-op = EXEC_INIT_ASSIGN;
   sub_ns-code-expr1 = gfc_lval_expr_from_sym (dst);
   sub_ns-code-expr2 = gfc_lval_expr_from_sym (src);
   /* Set initializer.  */


It took me a long while to see this, but in the end it's completely trivial.
I'll commit after regtesting.


[Bug fortran/46313] [OOP] class container naming collisions

2011-01-02 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46313

--- Comment #17 from janus at gcc dot gnu.org 2011-01-02 19:28:33 UTC ---
(In reply to comment #15)
 Maybe it is really time to use hashed strings? One could void them for strings
 which are shorter and only hash for longer strings (starting with, e.g, a
 capital letter to avoid clashes with non-hashed strings).

This has been implemented as a fix for PR46971.


[Bug c++/47153] New: g++ with -O3 enters infinite loop

2011-01-02 Thread panagopoulosalexandrou at hotmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47153

   Summary: g++ with -O3 enters infinite loop
   Product: gcc
   Version: 4.5.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: panagopoulosalexand...@hotmail.com


Created attachment 22882
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22882
The program for which the bug applies.

$ x86_64-redhat-linux-g++ sudoku_solver_single.cpp -O3 -o sudoku_solver_single
$ ./sudoku_solver_single
.923.8.1...1.7.4...658.6.5.2...4.7.9.

The program seems to enter an infinite loop inside solve, even though found_one
is set to true. The expected behaviour is observed when -O2 is used instead.


[Bug c++/47153] g++ with -O3 enters infinite loop

2011-01-02 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47153

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2011.01.02 20:44:28
 Ever Confirmed|0   |1

--- Comment #1 from Jonathan Wakely redi at gcc dot gnu.org 2011-01-02 
20:44:28 UTC ---

(In reply to comment #0)
 Created attachment 22882 [details]
 The program for which the bug applies.

Apparently not:

$ ./a.out 
Usage: ./a.out sudoku puzzle or -f sudoku file
Show unknown boxes with . or 0

Please provide a reproducible testcase.


[Bug c++/47153] g++ with -O3 enters infinite loop

2011-01-02 Thread zsojka at seznam dot cz
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47153

Zdenek Sojka zsojka at seznam dot cz changed:

   What|Removed |Added

 CC||zsojka at seznam dot cz

--- Comment #2 from Zdenek Sojka zsojka at seznam dot cz 2011-01-02 20:45:50 
UTC ---
Please upload minimal testcase that reproduces the problem.
I am not able to reproduce the problem by the steps you provided:

$ x86_64-pc-linux-gnu-g++-4.5.2 sudoku_solver_single.cpp -O3 -o
sudoku_solver_single
$ ./sudoku_solver_single 
Usage: ./sudoku_solver_single sudoku puzzle or -f sudoku file
Show unknown boxes with . or 0

However, if found_one is true, the loop is expected to never finish:
  } while(found_one);
maybe missing ! ?


[Bug middle-end/47152] ice in try_head_merge_bb at cfgcleanup.c:2177

2011-01-02 Thread aesok at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47152

--- Comment #3 from aesok at gcc dot gnu.org 2011-01-02 20:47:22 UTC ---
  GNU C (GCC) version 4.6.0 20110102 (experimental) [trunk revision 152933]
 
 Are you sure your GCC tree is up to date?

Yes.

~/cris2/gcc$ svn update
At revision 168408.
~/cris2/gcc$ cd ../build
~/cris2/build$ make

make[4]: Entering directory `/home/aesok/cris2/build/cris-elf/v10/libgcc'
# If this is the top-level multilib, build all the other
# multilibs.
/home/aesok/cris2/build/./gcc/xgcc -B/home/aesok/cris2/build/./gcc/
-B/home/aeso
k/cross-local/cris-elf/cris-elf/bin/
-B/home/aesok/cross-local/cris-elf/cris-elf
/lib/ -isystem /home/aesok/cross-local/cris-elf/cris-elf/include -isystem
/home/
aesok/cross-local/cris-elf/cris-elf/sys-include
--sysroot=/home/mstein/cross-loc
al/cris-elf   -g -O2 -march=v10 -mbest-lib-options -O2  -g -O2 -DIN_GCC
-DCROSS_
DIRECTORY_STRUCTURE  -W -Wall -Wwrite-strings -Wcast-qual -Wstrict-prototypes
-W
missing-prototypes -Wold-style-definition  -isystem ./include   -g 
-DIN_LIBGCC2
 -D__GCC_FLOAT_NOT_NEEDED -fno-stack-protector   -I. -I. -I../../.././gcc
-I../.
./../../gcc/libgcc -I../../../../gcc/libgcc/. -I../../../../gcc/libgcc/../gcc
-I
../../../../gcc/libgcc/../include  -DHAVE_CC_TLS -DUSE_EMUTLS -o _addsub_df.o
-M
T _addsub_df.o -MD -MP -MF _addsub_df.dep -DFINE_GRAINED_LIBRARIES
-DL_addsub_df
 -c ../../.././gcc/dp-bit.c
../../.././gcc/dp-bit.c: In function '_fpadd_parts':
../../.././gcc/dp-bit.c:730:1: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.

~/cris2/build$ /home/aesok/cris2/build/./gcc/xgcc --version
xgcc (GCC) 4.6.0 20110102 (experimental)
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
~/cris2/build$ /home/aesok/cris2/build/./gcc/cc1 -version
GNU C (GCC) version 4.6.0 20110102 (experimental) (cris-elf)
compiled by GNU C version 4.3.2, GMP version 4.2.2, MPFR version 2.4.1,
MPC version 0.8
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096

Anatoly.


[Bug rtl-optimization/46755] ICE: in calc_dfs_tree, at dominance.c:395 with -O

2011-01-02 Thread regehr at cs dot utah.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46755

John Regehr regehr at cs dot utah.edu changed:

   What|Removed |Added

 CC||regehr at cs dot utah.edu

--- Comment #8 from John Regehr regehr at cs dot utah.edu 2011-01-02 20:48:22 
UTC ---
Not sure if this is still useful, but here's a fairly small failure-inducing
testcase for this bug for today's GCC.

[reg...@gamow tmp437]$ current-gcc -O2 -c small.c

small.c: In function 'func':
small.c:32:1: internal compiler error: in calc_dfs_tree, at dominance.c:395
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.

[reg...@gamow tmp437]$ current-gcc -v

Using built-in specs.
COLLECT_GCC=current-gcc
COLLECT_LTO_WRAPPER=/uusoc/exports/scratch/regehr/z/compiler-install/gcc-r168402-install/bin/../libexec/gcc/x86_64-unknown-linux-gnu/4.6.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ../configure --with-libelf=/usr/local --enable-lto
--prefix=/home/regehr/z/compiler-install/gcc-r168402-install
--program-prefix=r168402- --enable-languages=c,c++
Thread model: posix
gcc version 4.6.0 20110102 (experimental) (GCC) 

[reg...@gamow tmp437]$ cat small.c


static int
foo (int si1, short si2)
{
  return ((si1 ^ si2)  ((si1 ^ (si1 ^ si2)  ~2147483647) - si2 ^ si2)) 
0 ? si1 : si1 - si2;
}

struct S0
{
  const unsigned f3:1;
  const unsigned f8:1;
};
struct S0 g_111 = {
  1
};

struct S0 g_139 = {
  1
};

unsigned long int g_22;

void safe (int);
int func_42 (void);

void func (void)
{
  safe (foo (func_42 () != (g_139.f3 | g_111.f8), -1L));
  for (g_22 = 0; g_22; g_22 = 1)
{
}
}


[Bug target/46942] x86_64 parameter passing unnecessary sign/zero extends

2011-01-02 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46942

--- Comment #6 from H.J. Lu hjl.tools at gmail dot com 2011-01-02 20:53:12 
UTC ---
(In reply to comment #5)
 And upper 32 bits are undefined if the argument is 8/16/32 bit (i.e. callee
 must sign/zero extend, instead of caller)?

If callee wants 64bit, it has to sign/zero extend it to 64bit.


[Bug fortran/46408] [OOP] Segfault when running gfortran.dg/class_allocate_6.f03

2011-01-02 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46408

--- Comment #9 from janus at gcc dot gnu.org 2011-01-02 21:01:53 UTC ---
Author: janus
Date: Sun Jan  2 21:01:50 2011
New Revision: 168409

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=168409
Log:
2011-01-02  Janus Weil  ja...@gcc.gnu.org

PR fortran/46408
* class.c (gfc_find_derived_vtab): Use EXEC_INIT_ASSIGN for __copy_
routine.


2011-01-02  Janus Weil  ja...@gcc.gnu.org

PR fortran/46408
* gfortran.dg/class_19.f03: Adjust counting of __builtin_free.

Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/class.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gfortran.dg/class_19.f03


[Bug fortran/46408] [OOP] Segfault when running gfortran.dg/class_allocate_6.f03

2011-01-02 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46408

janus at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #10 from janus at gcc dot gnu.org 2011-01-02 21:20:33 UTC ---
Fixed with r168409. Closing.


[Bug fortran/45827] [4.6 Regression] [OOP] mio_component_ref(): Component not found

2011-01-02 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45827

--- Comment #43 from janus at gcc dot gnu.org 2011-01-02 21:27:48 UTC ---
Hans, does r168302 fix the problem for you, or do you still get Component not
found errors?


[Bug libfortran/47154] New: [4.6 Regression] END= does not work in namelist read

2011-01-02 Thread tkoenig at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47154

   Summary: [4.6 Regression] END= does not work in namelist read
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Keywords: wrong-code
  Severity: normal
  Priority: P3
 Component: libfortran
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: tkoe...@gcc.gnu.org


Original test case by Lawrence Doctors, from


http://gcc.gnu.org/ml/fortran/2011-01/msg0.html

Reduced test case:

i...@linux-fd1f:~/Krempel/Lawr/TST cat tst.f
  program foo
  real :: a
  namelist /b/a
  open(10,status=scratch)
  read (10,nml=b,end=100)
 100  continue
  end
i...@linux-fd1f:~/Krempel/Lawr/TST gfortran tst.f
i...@linux-fd1f:~/Krempel/Lawr/TST ./a.out
At line 5 of file tst.f (unit = 10, file = '/tmp/gfortrantmpeSWNTR')
Fortran runtime error: `8,�

Works with 4.4.


[Bug libfortran/47154] [4.6 Regression] END= does not work in namelist read

2011-01-02 Thread tkoenig at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47154

Thomas Koenig tkoenig at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |4.6.0


[Bug fortran/45338] Failure on interfacing a function passed as an argument as a custom operator

2011-01-02 Thread tkoenig at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45338

--- Comment #5 from Thomas Koenig tkoenig at gcc dot gnu.org 2011-01-02 
21:58:06 UTC ---
Author: tkoenig
Date: Sun Jan  2 21:58:03 2011
New Revision: 168410

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=168410
Log:
2011-02-01  Thomas Koenig  tkoe...@gcc.gnu.org

Backport from mainline
PR fortran/45338
* resolve.c (resolve_operator):  Mark function for user-defined
operator as referenced.

2011-02-01  Thomas Koenig  tkoe...@gcc.gnu.org

Backport from mainline
PR fortran/45338
* gfortran.dg/userdef_operator_2.f90:  New test case.


Added:
branches/gcc-4_5-branch/gcc/testsuite/gfortran.dg/userdef_operator_2.f90
Modified:
branches/gcc-4_5-branch/gcc/fortran/ChangeLog
branches/gcc-4_5-branch/gcc/fortran/resolve.c
branches/gcc-4_5-branch/gcc/testsuite/ChangeLog


[Bug fortran/45338] Failure on interfacing a function passed as an argument as a custom operator

2011-01-02 Thread tkoenig at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45338

Thomas Koenig tkoenig at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #6 from Thomas Koenig tkoenig at gcc dot gnu.org 2011-01-02 
21:59:12 UTC ---
Fixed on trunk and 4.5.  Closing.


[Bug driver/47137] [4.6 Regression] gcc incorrectly combines assembly inputs

2011-01-02 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47137

H.J. Lu hjl.tools at gmail dot com changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
 Resolution|FIXED   |

--- Comment #5 from H.J. Lu hjl.tools at gmail dot com 2011-01-02 22:07:25 
UTC ---
It breaks LTO:

[...@gnu-6 gcc]$ cat /tmp/lto.args 
-xlto
-c
-B
/export/build/gnu/gcc/build-x86_64-linux/gcc/
-w
-O2
-flto-partition=none
-fno-builtin-abs
-v
-save-temps
-mtune=generic
-march=x86-64
-dumpdir
/export/build/gnu/gcc/build-x86_64-linux/gcc/testsuite/gcc/
-dumpbase
abs-1.x6
-o
/tmp/lto.o
abs-1.o
abs-1-lib.o
main.o
[...@gnu-6 gcc]$ ../../xgcc @/tmp/lto.args
Reading specs from /export/build/gnu/gcc/build-x86_64-linux/gcc/specs
COLLECT_GCC=../../xgcc
COLLECT_LTO_WRAPPER=/export/build/gnu/gcc/build-x86_64-linux/gcc/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: /export/gnu/import/git/gcc/configure --enable-languages=c
--disable-bootstrap --prefix=/usr/gcc-4.6.0 --with-local-prefix=/usr/local
--with-fpmath=sse
Thread model: posix
gcc version 4.6.0 20110102 (experimental) (GCC) 
xgcc: fatal error: cannot specify -o with -c, -S or -E with multiple files
compilation terminated.
[...@gnu-6 gcc]$


[Bug fortran/47051] [4.6 Regression] Wrong reallocate

2011-01-02 Thread tkoenig at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47051

Thomas Koenig tkoenig at gcc dot gnu.org changed:

   What|Removed |Added

 Blocks||32834

--- Comment #11 from Thomas Koenig tkoenig at gcc dot gnu.org 2011-01-02 
22:17:32 UTC ---
Joost, you're right.


[Bug bootstrap/47147] gcc 4.6 fails to compile on NetBSD

2011-01-02 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47147

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||build
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011.01.02 22:41:11
 Ever Confirmed|0   |1

--- Comment #1 from Jonathan Wakely redi at gcc dot gnu.org 2011-01-02 
22:41:11 UTC ---
I can't verify it myself but I've had this reported to me in private too, so am
going to confirm it.

Please provide your full configure command, thanks


[Bug driver/47137] [4.6 Regression] gcc incorrectly combines assembly inputs

2011-01-02 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47137

--- Comment #6 from Richard Guenther rguenth at gcc dot gnu.org 2011-01-02 
22:43:38 UTC ---
Yes, flag_wpa is not set (as I said) for non-WHOPR mode.  We don't have a
flag to identify non-WHOPR link-time.


[Bug rtl-optimization/46755] ICE: in calc_dfs_tree, at dominance.c:395 with -O

2011-01-02 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46755

--- Comment #9 from H.J. Lu hjl.tools at gmail dot com 2011-01-02 23:12:46 
UTC ---
(In reply to comment #8)
 Not sure if this is still useful, but here's a fairly small failure-inducing
 testcase for this bug for today's GCC.
 
 [reg...@gamow tmp437]$ current-gcc -O2 -c small.c
 
 small.c: In function 'func':
 small.c:32:1: internal compiler error: in calc_dfs_tree, at dominance.c:395
 Please submit a full bug report,
 with preprocessed source if appropriate.
 See http://gcc.gnu.org/bugs.html for instructions.
 
 [reg...@gamow tmp437]$ current-gcc -v
 
 Using built-in specs.
 COLLECT_GCC=current-gcc
 COLLECT_LTO_WRAPPER=/uusoc/exports/scratch/regehr/z/compiler-install/gcc-r168402-install/bin/../libexec/gcc/x86_64-unknown-linux-gnu/4.6.0/lto-wrapper
 Target: x86_64-unknown-linux-gnu
 Configured with: ../configure --with-libelf=/usr/local --enable-lto
 --prefix=/home/regehr/z/compiler-install/gcc-r168402-install
 --program-prefix=r168402- --enable-languages=c,c++
 Thread model: posix
 gcc version 4.6.0 20110102 (experimental) (GCC) 
 
 [reg...@gamow tmp437]$ cat small.c
 
 
 static int
 foo (int si1, short si2)
 {
   return ((si1 ^ si2)  ((si1 ^ (si1 ^ si2)  ~2147483647) - si2 ^ si2)) 
 0 ? si1 : si1 - si2;
 }
 
 struct S0
 {
   const unsigned f3:1;
   const unsigned f8:1;
 };
 struct S0 g_111 = {
   1
 };
 
 struct S0 g_139 = {
   1
 };
 
 unsigned long int g_22;
 
 void safe (int);
 int func_42 (void);
 
 void func (void)
 {
   safe (foo (func_42 () != (g_139.f3 | g_111.f8), -1L));
   for (g_22 = 0; g_22; g_22 = 1)
 {
 }
 }

This is caused by revision 164431:

http://gcc.gnu.org/ml/gcc-cvs/2010-09/msg00727.html


[Bug fortran/37131] inline matmul for small matrix sizes

2011-01-02 Thread tkoenig at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37131

--- Comment #14 from Thomas Koenig tkoenig at gcc dot gnu.org 2011-01-02 
23:20:07 UTC ---
Created attachment 22883
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22883
matmul loops that vectorize

Here's how we could make the different matmul loops look like
for different transpose cases.  The inner loops vectorize, at least
with --fast-math.

The last one needs a different temp strategy for vectorization.


[Bug c++/47153] g++ with -O3 enters infinite loop

2011-01-02 Thread panagopoulosalexandrou at hotmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47153

--- Comment #3 from panagopoulosalexandrou at hotmail dot com 2011-01-03 
01:52:09 UTC ---
Sorry, forget about the found_one thing. Maybe the prompt is confusing; the
.923.8.1...1.7.4...658.6.5.2...4.7.9.
is actually an argument to the program, not its output. Apparently, it didn't
fit on a single line that's why it's printed underneath the execution of the
program.
$ ./sudoku_solver_single .923..,etc.


[Bug c++/47153] g++ with -O3 enters infinite loop

2011-01-02 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47153

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 Status|WAITING |NEW
  Known to work||4.1.2, 4.2.4, 4.3.4
  Known to fail||4.4.5, 4.5.2, 4.6.0

--- Comment #4 from Jonathan Wakely redi at gcc dot gnu.org 2011-01-03 
02:17:18 UTC ---
thanks for clarifying - I can reproduce it at -O3 with g++ 4.4 and later


[Bug c++/47153] g++ with -O3 enters infinite loop

2011-01-02 Thread zsojka at seznam dot cz
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47153

--- Comment #5 from Zdenek Sojka zsojka at seznam dot cz 2011-01-03 02:36:27 
UTC ---
You are accessing an array out of bounds:

--- sudoku_solver_single.cpp2011-01-03 03:30:35.0 +0100
+++ sudoku_solver_single2.cpp   2011-01-03 03:33:28.0 +0100
@@ -159,6 +159,7 @@
   for(x = left_box; x  left_box + 3; x++)
for(y = up_box; y  up_box + 3; y++) {
  if(solved[x][y]) {
+   if (!resolve(x, y)) __builtin_abort();
status[resolve(x, y) - 1] = 2;
continue;
  }

aborts


[Bug c/47155] New: likely wrong code bug

2011-01-02 Thread regehr at cs dot utah.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47155

   Summary: likely wrong code bug
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: reg...@cs.utah.edu
CC: cheny...@cs.utah.edu


[reg...@gamow tmp438]$ current-gcc -O0 small.c -o small
[reg...@gamow tmp438]$ ./small
1
[reg...@gamow tmp438]$ current-gcc -O1 small.c -o small
[reg...@gamow tmp438]$ ./small
0
[reg...@gamow tmp438]$ current-gcc -v
Using built-in specs.
COLLECT_GCC=current-gcc
COLLECT_LTO_WRAPPER=/uusoc/exports/scratch/regehr/z/compiler-install/gcc-r168402-install/bin/../libexec/gcc/x86_64-unknown-linux-gnu/4.6.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ../configure --with-libelf=/usr/local --enable-lto
--prefix=/home/regehr/z/compiler-install/gcc-r168402-install
--program-prefix=r168402- --enable-languages=c,c++
Thread model: posix
gcc version 4.6.0 20110102 (experimental) (GCC) 
[reg...@gamow tmp438]$ cat small.c


static unsigned int g_1;
static signed char g_2 = 0x81;

int printf(const char *format, ...);

static unsigned char foo(unsigned char p1, unsigned char p2)
{
return p1 * p2;
}

int main (void)
{
int l_5[2];
int i;
for (i = 0; i  2; i++)
l_5[i] = 1;
g_1 = g_2 = foo(-6, l_5[0]);

printf(%u\n, g_1);
return 0;
}


[Bug objc++/47156] New: obj-c++.dg/try-catch-[2|9].mm -fgnu-runtime failures

2011-01-02 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47156

   Summary: obj-c++.dg/try-catch-[2|9].mm -fgnu-runtime failures
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: objc++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: hjl.to...@gmail.com


On Linux/ia32, revision 168408 gave

spawn -ignore SIGHUP
/export/build/gnu/gcc/build-x86_64-linux/gcc/testsuite/obj-c++/../../g++
-B/export/build/gnu/gcc/build-x86_64-linux/gcc/testsuite/obj-c++/../../
/export/gnu/import/git/gcc/gcc/testsuite/obj-c++.dg/try-catch-2.mm -nostdinc++
-I/export/build/gnu/gcc/build-x86_64-linux/x86_64-unknown-linux-gnu/32/libstdc++-v3/include/x86_64-unknown-linux-gnu
-I/export/build/gnu/gcc/build-x86_64-linux/x86_64-unknown-linux-gnu/32/libstdc++-v3/include
-I/export/gnu/import/git/gcc/libstdc++-v3/libsupc++
-I/export/gnu/import/git/gcc/libstdc++-v3/include/backward
-I/export/gnu/import/git/gcc/libstdc++-v3/testsuite/util -fmessage-length=0
-fgnu-runtime -fobjc-exceptions
-I/export/gnu/import/git/gcc/gcc/testsuite/../../libobjc
-B/export/build/gnu/gcc/build-x86_64-linux/x86_64-unknown-linux-gnu/32/libstdc++-v3/src/.libs
-L/export/build/gnu/gcc/build-x86_64-linux/x86_64-unknown-linux-gnu/32/libstdc++-v3/src/.libs
-B/export/build/gnu/gcc/build-x86_64-linux/x86_64-unknown-linux-gnu/32/libstdc++-v3/src/.libs
-L/export/build/gnu/gcc/build-x86_64-linux/x86_64-unknown-linux-gnu/32/libstdc++-v3/src/.libs
-L/export/build/gnu/gcc/build-x86_64-linux/x86_64-unknown-linux-gnu/32/libiberty
-B/export/build/gnu/gcc/build-x86_64-linux/x86_64-unknown-linux-gnu/32/libobjc/.libs
-L/export/build/gnu/gcc/build-x86_64-linux/x86_64-unknown-linux-gnu/32/libobjc/.libs
-lobjc -lm -m32 -o ./try-catch-2.exe^M
/tmp/ccnV72SW.o:(.gcc_except_table+0x18): undefined reference to `typeinfo for
Frob*'^M
collect2: ld returned 1 exit status^M
compiler exited with status 1
output is:
/tmp/ccnV72SW.o:(.gcc_except_table+0x18): undefined reference to `typeinfo for
Frob*'^M
collect2: ld returned 1 exit status^M

XFAIL: obj-c++.dg/try-catch-2.mm -fgnu-runtime (test for excess errors)
Excess errors:
/tmp/ccnV72SW.o:(.gcc_except_table+0x18): undefined reference to `typeinfo for
Frob*'

WARNING: obj-c++.dg/try-catch-2.mm -fgnu-runtime compilation failed to produce
executable

spawn -ignore SIGHUP
/export/build/gnu/gcc/build-x86_64-linux/gcc/testsuite/obj-c++/../../g++
-B/export/build/gnu/gcc/build-x86_64-linux/gcc/testsuite/obj-c++/../../
/export/gnu/import/git/gcc/gcc/testsuite/obj-c++.dg/try-catch-9.mm -nostdinc++
-I/export/build/gnu/gcc/build-x86_64-linux/x86_64-unknown-linux-gnu/32/libstdc++-v3/include/x86_64-unknown-linux-gnu
-I/export/build/gnu/gcc/build-x86_64-linux/x86_64-unknown-linux-gnu/32/libstdc++-v3/include
-I/export/gnu/import/git/gcc/libstdc++-v3/libsupc++
-I/export/gnu/import/git/gcc/libstdc++-v3/include/backward
-I/export/gnu/import/git/gcc/libstdc++-v3/testsuite/util -fmessage-length=0
-fgnu-runtime -fobjc-exceptions -O2
-I/export/gnu/import/git/gcc/gcc/testsuite/../../libobjc
-B/export/build/gnu/gcc/build-x86_64-linux/x86_64-unknown-linux-gnu/32/libstdc++-v3/src/.libs
-L/export/build/gnu/gcc/build-x86_64-linux/x86_64-unknown-linux-gnu/32/libstdc++-v3/src/.libs
-B/export/build/gnu/gcc/build-x86_64-linux/x86_64-unknown-linux-gnu/32/libstdc++-v3/src/.libs
-L/export/build/gnu/gcc/build-x86_64-linux/x86_64-unknown-linux-gnu/32/libstdc++-v3/src/.libs
-L/export/build/gnu/gcc/build-x86_64-linux/x86_64-unknown-linux-gnu/32/libiberty
-B/export/build/gnu/gcc/build-x86_64-linux/x86_64-unknown-linux-gnu/32/libobjc/.libs
-L/export/build/gnu/gcc/build-x86_64-linux/x86_64-unknown-linux-gnu/32/libobjc/.libs
-lobjc -lm -m32 -o ./try-catch-9.exe^M
/tmp/cc6JaJgi.o:(.gcc_except_table+0x34): undefined reference to `typeinfo for
Object*'^M
collect2: ld returned 1 exit status^M
compiler exited with status 1
output is:
/tmp/cc6JaJgi.o:(.gcc_except_table+0x34): undefined reference to `typeinfo for
Object*'^M
collect2: ld returned 1 exit status^M

XFAIL: obj-c++.dg/try-catch-9.mm -fgnu-runtime (test for excess errors)
Excess errors:
/tmp/cc6JaJgi.o:(.gcc_except_table+0x34): undefined reference to `typeinfo for
Object*'

WARNING: obj-c++.dg/try-catch-9.mm -fgnu-runtime compilation failed to produce
executable


[Bug libfortran/47154] [4.6 Regression] END= does not work in namelist read

2011-01-02 Thread tkoenig at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47154

Thomas Koenig tkoenig at gcc dot gnu.org changed:

   What|Removed |Added

  Known to work||4.5.3
  Known to fail||4.6.0

--- Comment #1 from Thomas Koenig tkoenig at gcc dot gnu.org 2011-01-03 
07:34:54 UTC ---
Also works with 4.5.3.