Re: Ada.Exceptions.Exception_Propagation is not a predefined library unit

2010-10-14 Thread Duncan Sands

Hi Luke,


a-exexpr.adb:39:06: Ada.Exceptions.Exception_Propagation is not a
predefined library unit


it looks like you get this error when the compiler can't find a file that it
thinks forms part of the Ada library (this is determined by the name, eg: a
package Ada.XYZ is expected to be part of the Ada library).  For example,
if the compiler looks for the spec of Ada.Exceptions.Exception_Propagation
(which should be called a-exexpr.ads) but can't find it then you will get
this message.  At least, that's my understanding from a few minutes of
rummaging around in the source code.

Ciao,

Duncan.


Re: Trouble doing bootstrap

2010-10-14 Thread Jonathan Wakely
On 14 October 2010 02:07, Paul Koning wrote:

 Explicitly setting LD_LIBRARY_PATH seems to cure the problem.  It would be 
 good to have that called out in the procedures (or, preferably, made not to 
 be necessary).

As Ian pointed out, it's documented under --with-mpc et al, although I
only added that note recently.

I find building the support libs in-tree is easiest, followed by
installing them separately but with --disable-shared


Re: Ada.Exceptions.Exception_Propagation is not a predefined library unit

2010-10-14 Thread Luke A. Guest
On Thu, 2010-10-14 at 09:31 +0200, Duncan Sands wrote:
 Hi Luke,
 
  a-exexpr.adb:39:06: Ada.Exceptions.Exception_Propagation is not a
  predefined library unit
 
 it looks like you get this error when the compiler can't find a file that it
 thinks forms part of the Ada library (this is determined by the name, eg: a
 package Ada.XYZ is expected to be part of the Ada library).  For example,
 if the compiler looks for the spec of Ada.Exceptions.Exception_Propagation
 (which should be called a-exexpr.ads) but can't find it then you will get
 this message.  At least, that's my understanding from a few minutes of
 rummaging around in the source code.

Hmmm, well, this spec is actually inside the body of a-except.adb (which
also specifies that the body of a-exexpr.ads is separate. All files are
present in the rts dirs.

Thanks,
Luke.




Re: %pc relative addressing of string literals/const data

2010-10-14 Thread Joakim Tjernlund
Joakim Tjernlund/Transmode wrote on 2010/10/12 11:00:36:
 
 Alan Modra amo...@gmail.com wrote on 2010/10/11 14:58:45:
  
  On Sun, Oct 10, 2010 at 11:20:06AM +0200, Joakim Tjernlund wrote:
   Now I have had a closer look at this and it looks much like -fpic
   on ppc32, you still use the GOT/TOC to load the address where the 
data is.
  
  No, with ppc64 -mcmodel=medium you use the GOT/TOC pointer plus an
  offset to address local data.
  
   I was looking for true %pc relative addressing of data. I guess this 
is really
   hard on PowerPC?
  
  Yes, PowerPC lacks pc-relative instructions.
  
   I am not sure this is all it takes to make -fpic to work with 
-mrelocatable,
   any ideas?
  
  You might be lucky.  With -mrelocatable, .got2 only contains
  addresses.  No other constants.  So a simple run-time loader can
  relocate the entire .got2 section, plus those locations specified in
  .fixup.  You'll have to make sure gcc does the same for .got, and your
  run-time loader will need to be modified to handle .got (watch out for
  the .got header!).

 Got it working now. It was just u-boot reloc routine I first failed
 to extend properly to reloc *got too.
 
 I think this is safe as one can mix fpic with fPIC and
 mrelocatable is the same as fPIC+fixups.
 
 Will you accept this patch into gcc?

Ping?

From d8ff0b3f0b44480542eab04d1659f4368b6b09cf Mon Sep 17 00:00:00 2001
From: Joakim Tjernlund joakim.tjernl...@transmode.se
Date: Sun, 10 Oct 2010 10:34:50 +0200
Subject: [PATCH] powerpc: Support -fpic too with mrelocatable


Signed-off-by: Joakim Tjernlund joakim.tjernl...@transmode.se
---
 sysv4.h |3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h
index 8da8410..e4b8280 100644
--- a/gcc/config/rs6000/sysv4.h
+++ b/gcc/config/rs6000/sysv4.h
@@ -227,7 +227,8 @@ do {\
 }  \
\
   else if (TARGET_RELOCATABLE) \
-flag_pic = 2;  \
+if (!flag_pic) \
+  flag_pic = 2;\
 } while (0)
 
 #ifndef RS6000_BI_ARCH
-- 
1.7.2.2



Options for dumping dependence checking results

2010-10-14 Thread Hongtao
 Hi All,

What's the option for dumping the results of loop dependence checking?
such as dependence relations, direction vectors, etc.

Thanks,
Hongtao


LTO symtab sections vs. missing symbols (libcalls maybe?) and lto-plugin vs. COFF

2010-10-14 Thread Dave Korn

Hello list,

  When I compile this source with -flto:

 extern int retval;
 int func (void)
 {
   return retval;
 }

... the LTO symbol table contains both symbols:

 /gnu/binutils/git.repo/obj/ld/test/func.o: file format pe-i386

 Contents of section .gnu.lto_.symtab.227b80e3:
   66756e63     func
  0010 4b00 72657476 616c 0200  K...retval..
  0020  5100    ..Q...

  But when I compile this:

 extern int printf (const char *fmt, ...);

 extern const char *text;
 extern int func (void);

 int retval = 0;

 int main (int argc, const char **argv)
 {
   printf (%s\n, text);
   return func ();
 }

... there is no sign of printf:

 /gnu/binutils/git.repo/obj/ld/test/main.o: file format pe-i386

 Contents of section .gnu.lto_.symtab.6e8eaf64:
   6d61696e     main
  0010 4b00 66756e63 0200   K...func
  0020  5b00 74657874 0200  [...text
  0030   5f00 72657476  _...retv
  0040 616c   6100  ala.
  0050  ..

  Nor indeed is there any sign of puts, which is what the generated ltrans0.s
file ends up optimising it to (as indeed does the native code in the original
.o file).  I'm assuming that this is by design and is for some reason along
the lines that we don't even know whether or which function calls are actually
going to be emitted until link time?

  It makes life complicated in the linker though, because it means there are
symbols present in the object files that the plugin adds via the
add_input_files callback that weren't in the original symbols the linker
presented via add_symbols when it initially claimed the object file containing
the IR.

  The consequence of this is that either there are going to be undefined
symbols in the final executable, or the linker has to perform another round of
library scanning.  It occurred to me that the semantics of this might even not
have been decided yet, since ELF platforms are perfectly happy with undefined
symbols at final link time.  The only documentation I know of that specifies
the linker plugin API is the GCC wiki whopr/driver page(*), and it doesn't say
anything explicit about this; maybe I've failed to infer something that I
should have.

  So, is there a defined way in which this is supposed to work?  And if the
linker is supposed to rescan the libs after the plugin adds files, is it
supposed to offer any archive members it finds to the plugin for claiming?
Should there be multiple iterations of claiming files and calling
all_symbols_read?  And if not, what about if the archive members we find on
the second pass contain LTO IR?

  It occurs to me that maybe this is what the add_input_library hook is for:
perhaps a simple fix would be for collect2 to pass a list of all the stdlibs
to the plugin as a plugin option, and it could add_input_library them after
it's finished adding object files.  Would that be a reasonable approach?

  (Right now I have a working COFF lto-plugin, but the link fails with
unresolved symbols unless I manually add (e.g.) -Wl,-u,_puts (... etc.) to
the command-line to make sure all the required libc archive members get pulled
in during the first pass over libs!)

cheers,
  DaveK
-- 
(*) - http://gcc.gnu.org/wiki/whopr/driver



Re: LTO symtab sections vs. missing symbols (libcalls maybe?) and lto-plugin vs. COFF

2010-10-14 Thread Richard Guenther
On Thu, Oct 14, 2010 at 4:59 PM, Dave Korn dave.korn.cyg...@gmail.com wrote:

    Hello list,

  When I compile this source with -flto:

 extern int retval;
 int func (void)
 {
   return retval;
 }

 ... the LTO symbol table contains both symbols:

 /gnu/binutils/git.repo/obj/ld/test/func.o:     file format pe-i386

 Contents of section .gnu.lto_.symtab.227b80e3:
   66756e63     func
  0010 4b00 72657476 616c 0200  K...retval..
  0020  5100                ..Q...

  But when I compile this:

 extern int printf (const char *fmt, ...);

 extern const char *text;
 extern int func (void);

 int retval = 0;

 int main (int argc, const char **argv)
 {
   printf (%s\n, text);
   return func ();
 }

 ... there is no sign of printf:

 /gnu/binutils/git.repo/obj/ld/test/main.o:     file format pe-i386

 Contents of section .gnu.lto_.symtab.6e8eaf64:
   6d61696e     main
  0010 4b00 66756e63 0200   K...func
  0020  5b00 74657874 0200  [...text
  0030   5f00 72657476  _...retv
  0040 616c   6100  ala.
  0050                                  ..

  Nor indeed is there any sign of puts, which is what the generated ltrans0.s
 file ends up optimising it to (as indeed does the native code in the original
 .o file).  I'm assuming that this is by design and is for some reason along
 the lines that we don't even know whether or which function calls are actually
 going to be emitted until link time?

I think this is because builtin functions are handled specially (their decls
are not streamed, likewise I think we don't stream their cgraph nodes).
As you noted we may eventually fold printf to puts (we may also generate
a memcpy call out of an aggregate assignment), so it might not make
your life perfect if we emit symbols for those calls (as indeed we don't know
which ones we will emit at link time).

  It makes life complicated in the linker though, because it means there are
 symbols present in the object files that the plugin adds via the
 add_input_files callback that weren't in the original symbols the linker
 presented via add_symbols when it initially claimed the object file containing
 the IR.

  The consequence of this is that either there are going to be undefined
 symbols in the final executable, or the linker has to perform another round of
 library scanning.  It occurred to me that the semantics of this might even not
 have been decided yet, since ELF platforms are perfectly happy with undefined
 symbols at final link time.  The only documentation I know of that specifies
 the linker plugin API is the GCC wiki whopr/driver page(*), and it doesn't say
 anything explicit about this; maybe I've failed to infer something that I
 should have.

Yeah, I think you have to deal with undefined references to standard
functions (mostly from libc, libm but maybe also from libpthread or so).

  So, is there a defined way in which this is supposed to work?  And if the
 linker is supposed to rescan the libs after the plugin adds files, is it
 supposed to offer any archive members it finds to the plugin for claiming?
 Should there be multiple iterations of claiming files and calling
 all_symbols_read?  And if not, what about if the archive members we find on
 the second pass contain LTO IR?

  It occurs to me that maybe this is what the add_input_library hook is for:
 perhaps a simple fix would be for collect2 to pass a list of all the stdlibs
 to the plugin as a plugin option, and it could add_input_library them after
 it's finished adding object files.  Would that be a reasonable approach?

  (Right now I have a working COFF lto-plugin, but the link fails with
 unresolved symbols unless I manually add (e.g.) -Wl,-u,_puts (... etc.) to
 the command-line to make sure all the required libc archive members get pulled
 in during the first pass over libs!)

I have no idea about the linker-plugin side, but we could of course
avoid generating any calls that were not there before (by for example
streaming builtin decls and only if they are used).  But that's as much
a workaround as fixing things up in the linker afterwards ...

Richard.

    cheers,
      DaveK
 --
 (*) - http://gcc.gnu.org/wiki/whopr/driver




Re: Ada.Exceptions.Exception_Propagation is not a predefined library unit

2010-10-14 Thread Olivier Hainque
Hello Luke,

Luke A. Guest wrote:
 Can anyone give me a pointer here? I'm totally new to this :/

 a-exexpr.adb:39:06: Ada.Exceptions.Exception_Propagation is not a
 predefined library unit
 a-exexpr.adb:39:06: Ada.Exceptions (body) depends on
 Ada.Exceptions.Exception_Propagation (body)
 a-exexpr.adb:39:06: Ada.Exceptions.Exception_Propagation (body)
 depends on Ada.Exceptions.Exception_Propagation (spec)

 We discussed this internally a bit.

 The compiler is looking for the spec of Ada.Exceptions.Exception_Propagation
 in a separate file (which would be a-exexpr.ads) because you are trying to
 add a child of it.

 This won't work, as there is indeed no such file today because this
 unit is provided as a subunit of ada.exceptions (package bla is ... end; 
 package body bla is separate;)

 What you probably could do instead is to define a System unit
 (e.g. System.GCC_Exceptions or System.Unwind_Control or ...) 
 to hold the low level unwinder type definitions.  That would allow
 reuse from other units, which might become of interest in the not so
 distant future.

 In case you don't already know about it, gnatmake -a is a very convenient
 device to experiment with alternate/extra Ada runtime units (accounts for
 variants in the current directory, for example).

 Olivier






Re: LTO symtab sections vs. missing symbols (libcalls maybe?) and lto-plugin vs. COFF

2010-10-14 Thread Dave Korn
On 14/10/2010 15:44, Richard Guenther wrote:
 On Thu, Oct 14, 2010 at 4:59 PM, Dave Korn dave.korn.cyg...@gmail.com wrote:

  Nor indeed is there any sign of puts, which is what the generated ltrans0.s
 file ends up optimising it to (as indeed does the native code in the original
 .o file).  I'm assuming that this is by design and is for some reason along
 the lines that we don't even know whether or which function calls are 
 actually
 going to be emitted until link time?
 
 I think this is because builtin functions are handled specially (their decls
 are not streamed, likewise I think we don't stream their cgraph nodes).

  Ah, yes; -fno-builtin avoids it, for example.

 As you noted we may eventually fold printf to puts (we may also generate
 a memcpy call out of an aggregate assignment), so it might not make
 your life perfect if we emit symbols for those calls (as indeed we don't know
 which ones we will emit at link time).

  Yes, I can see that we'd quite possibly end up with unused library code
pulled into the link.

  It makes life complicated in the linker though, because it means there are
 symbols present in the object files that the plugin adds via the
 add_input_files callback that weren't in the original symbols the linker
 presented via add_symbols when it initially claimed the object file 
 containing
 the IR.

  The consequence of this is that either there are going to be undefined
 symbols in the final executable, or the linker has to perform another round 
 of
 library scanning.  It occurred to me that the semantics of this might even 
 not
 have been decided yet, since ELF platforms are perfectly happy with undefined
 symbols at final link time.  The only documentation I know of that specifies
 the linker plugin API is the GCC wiki whopr/driver page(*), and it doesn't 
 say
 anything explicit about this; maybe I've failed to infer something that I
 should have.
 
 Yeah, I think you have to deal with undefined references to standard
 functions (mostly from libc, libm but maybe also from libpthread or so).

  Well, the thing I'm trying to figure out is how to deal with them.  COFF
doesn't allow undefined references in executables.

  So, is there a defined way in which this is supposed to work?  And if the
 linker is supposed to rescan the libs after the plugin adds files, is it
 supposed to offer any archive members it finds to the plugin for claiming?
 Should there be multiple iterations of claiming files and calling
 all_symbols_read?  And if not, what about if the archive members we find on
 the second pass contain LTO IR?

  It occurs to me that maybe this is what the add_input_library hook is for:
 perhaps a simple fix would be for collect2 to pass a list of all the stdlibs
 to the plugin as a plugin option, and it could add_input_library them after
 it's finished adding object files.  Would that be a reasonable approach?

  (Right now I have a working COFF lto-plugin, but the link fails with
 unresolved symbols unless I manually add (e.g.) -Wl,-u,_puts (... etc.) to
 the command-line to make sure all the required libc archive members get 
 pulled
 in during the first pass over libs!)
 
 I have no idea about the linker-plugin side, but we could of course
 avoid generating any calls that were not there before (by for example
 streaming builtin decls and only if they are used).  But that's as much
 a workaround as fixing things up in the linker afterwards ...

  Sorry, I don't quite understand that suggestion!  Do you mean we'd emit a
symbol for printf and that would result in an explicit printf which wouldn't
have the chance of being optimised to a puts at link-time?  If so I see how
it'd work, but it would be a shame to lose optimisation in LTO.  Or to include
unnecessary library members.  I *think* that re-adding the stdlibs after all
the new input files in the plugin might work, but haven't tried it yet.

  I have the same problem with '__main', BTW.  Is that supposed to count as a
builtin, or do we need to do something in expand_main_function() to make LTO
aware when it calls __main?

cheers,
  DaveK




Re: LTO symtab sections vs. missing symbols (libcalls maybe?) and lto-plugin vs. COFF

2010-10-14 Thread Richard Guenther
On Thu, Oct 14, 2010 at 5:28 PM, Dave Korn dave.korn.cyg...@gmail.com wrote:
 On 14/10/2010 15:44, Richard Guenther wrote:
 On Thu, Oct 14, 2010 at 4:59 PM, Dave Korn dave.korn.cyg...@gmail.com 
 wrote:

  Nor indeed is there any sign of puts, which is what the generated ltrans0.s
 file ends up optimising it to (as indeed does the native code in the 
 original
 .o file).  I'm assuming that this is by design and is for some reason along
 the lines that we don't even know whether or which function calls are 
 actually
 going to be emitted until link time?

 I think this is because builtin functions are handled specially (their decls
 are not streamed, likewise I think we don't stream their cgraph nodes).

  Ah, yes; -fno-builtin avoids it, for example.

 As you noted we may eventually fold printf to puts (we may also generate
 a memcpy call out of an aggregate assignment), so it might not make
 your life perfect if we emit symbols for those calls (as indeed we don't know
 which ones we will emit at link time).

  Yes, I can see that we'd quite possibly end up with unused library code
 pulled into the link.

  It makes life complicated in the linker though, because it means there are
 symbols present in the object files that the plugin adds via the
 add_input_files callback that weren't in the original symbols the linker
 presented via add_symbols when it initially claimed the object file 
 containing
 the IR.

  The consequence of this is that either there are going to be undefined
 symbols in the final executable, or the linker has to perform another round 
 of
 library scanning.  It occurred to me that the semantics of this might even 
 not
 have been decided yet, since ELF platforms are perfectly happy with 
 undefined
 symbols at final link time.  The only documentation I know of that specifies
 the linker plugin API is the GCC wiki whopr/driver page(*), and it doesn't 
 say
 anything explicit about this; maybe I've failed to infer something that I
 should have.

 Yeah, I think you have to deal with undefined references to standard
 functions (mostly from libc, libm but maybe also from libpthread or so).

  Well, the thing I'm trying to figure out is how to deal with them.  COFF
 doesn't allow undefined references in executables.

  So, is there a defined way in which this is supposed to work?  And if the
 linker is supposed to rescan the libs after the plugin adds files, is it
 supposed to offer any archive members it finds to the plugin for claiming?
 Should there be multiple iterations of claiming files and calling
 all_symbols_read?  And if not, what about if the archive members we find on
 the second pass contain LTO IR?

  It occurs to me that maybe this is what the add_input_library hook is for:
 perhaps a simple fix would be for collect2 to pass a list of all the stdlibs
 to the plugin as a plugin option, and it could add_input_library them after
 it's finished adding object files.  Would that be a reasonable approach?

  (Right now I have a working COFF lto-plugin, but the link fails with
 unresolved symbols unless I manually add (e.g.) -Wl,-u,_puts (... etc.) to
 the command-line to make sure all the required libc archive members get 
 pulled
 in during the first pass over libs!)

 I have no idea about the linker-plugin side, but we could of course
 avoid generating any calls that were not there before (by for example
 streaming builtin decls and only if they are used).  But that's as much
 a workaround as fixing things up in the linker afterwards ...

  Sorry, I don't quite understand that suggestion!  Do you mean we'd emit a
 symbol for printf and that would result in an explicit printf which wouldn't
 have the chance of being optimised to a puts at link-time?

Yes.

 If so I see how
 it'd work, but it would be a shame to lose optimisation in LTO.  Or to include
 unnecessary library members.  I *think* that re-adding the stdlibs after all
 the new input files in the plugin might work, but haven't tried it yet.

  I have the same problem with '__main', BTW.  Is that supposed to count as a
 builtin, or do we need to do something in expand_main_function() to make LTO
 aware when it calls __main?

Hm, I don't know - I suppose that's from the crt*.o stuff?  The main
function itself should already appear in the symbols.

Richard.


    cheers,
      DaveK





RE: Bootstrap failures on sparc/x86 solaris2.10 machines

2010-10-14 Thread Arthur Haas
 Hi Art,

 No luck with this mornings builds on both x86 and sparc.

 My last successful i386-pc-solaris2.10 build was several weeks ago; all
 the build attempts fail at this assertion in the function/file below:
 { ... snip ... }

 I'm building mainline on Solaris 8 to 11 with both Sun as and gas all
 the time without problems, though I'm very rarely using GNU ld
 (install.texi warns against doing so for a reason).  What version of gld
 are you using above?  I recently found a couple of bugs with CVS
 binutils and am in the process of fixing them.  In the rare attempts of
 building with gld, I've never seen a problem as you report, so please
 file a bug for this issue.  Also, please try to use Sun ld and see if
 this helps.

A build using Sun 'ld' also failed in a similar manner.

I've added the bug to GCC bugzilla:

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


 { ... snip sparc bug error ... }
 Known bug, already fixed:

 http://gcc.gnu.org/ml/gcc-patches/2010-10/msg00942.html

My sparc builds are working fine now. Thanks!

Art Haas


RE: Bootstrap errors on i386-pc-solaris2.10 bisected

2010-10-14 Thread Arthur Haas

 On Tue, Oct 12, 2010 at 2:46 PM, Art Haas ah...@impactweather.com wrote:
 Hi.

 The bootstrap problems I've been having on the x86 Solaris machine,
 plus the reply from maintainer Rainer Orth that his builds have
 been succeeding were the impetus to investigate how 'git bisect'
 works. After a bit of fumbling around, including a rebuild of
 an apparently miscompiled 'git' binary, I was able to bisect
 the build problems to this commit:
 { ... snip ... }

 It could be:

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

I tried the one-line patch at the end of the bug report and it did not help.

Art Haas


Re: LTO symtab sections vs. missing symbols (libcalls maybe?) and lto-plugin vs. COFF

2010-10-14 Thread Dave Korn
On 14/10/2010 16:24, Richard Guenther wrote:
 On Thu, Oct 14, 2010 at 5:28 PM, Dave Korn dave.korn.cyg...@gmail.com wrote:
 On 14/10/2010 15:44, Richard Guenther wrote:

 I have no idea about the linker-plugin side, but we could of course
 avoid generating any calls that were not there before (by for example
 streaming builtin decls and only if they are used).  But that's as much
 a workaround as fixing things up in the linker afterwards ...
  Sorry, I don't quite understand that suggestion!  Do you mean we'd emit a
 symbol for printf and that would result in an explicit printf which wouldn't
 have the chance of being optimised to a puts at link-time?
 
 Yes.

  I'd rather leave that as a real last resort!

 If so I see how
 it'd work, but it would be a shame to lose optimisation in LTO.  Or to 
 include
 unnecessary library members.  I *think* that re-adding the stdlibs after all
 the new input files in the plugin might work, but haven't tried it yet.

  I have the same problem with '__main', BTW.  Is that supposed to count as a
 builtin, or do we need to do something in expand_main_function() to make LTO
 aware when it calls __main?
 
 Hm, I don't know - I suppose that's from the crt*.o stuff?

  Typically it's from libgcc:

 If no init section is available, when GCC compiles any function called
`main' (or more accurately, any function designated as a program entry
point by the language front end calling `expand_main_function'), it
inserts a procedure call to `__main' as the first executable code after
the function prologue.  The `__main' function is defined in `libgcc2.c'
and runs the global constructors.

  On cygwin, it's supplied by libc.  On other systems I don't know, maybe it
can be in the crt.o files, but in that case there wouldn't be any problem with
it getting pulled into the link, it's only a problem when it's a library
archive member.

  The main function itself should already appear in the symbols.

  It does, but there's no reference to __main.  I was wondering if that was
supposed to happen, and looking at expand_main_function I guess so, because
it's calling emit_library_call (init_one_libfunc (...)), but this is one
libfunc that we know can't be optimised away at linktime, so it would probably
be OK to stream it.  (But there's a lot I don't know about LTO, so I could
always be wrong there.)

cheers,
  DaveK



Re: Trouble doing bootstrap

2010-10-14 Thread Paul Koning

On Oct 13, 2010, at 9:07 PM, Ian Lance Taylor wrote:

 Paul Koning paul_kon...@dell.com writes:
 
 My build system doesn't have LD_LIBRARY_PATH defined so whatever is
 the Linux default would apply.  Perhaps I should change that.  But it
 seems strange that configure finds the prerequisites and then ends up
 generating makefiles that produce a compiler that can't find those
 things, even when it's built into the same /usr/local as the libraries
 it depends on.
 
 Yes, it's a mess.  But we don't know of any really clean way to fix it.
 
 I very strongly recommend that if you want to build gcc's supporting
 libraries yourself, rather than getting them from your distro, that you
 configure them with --disable-shared when you build them.
 
 Or, if you must, add /usr/local/lib to your /etc/ld.so.conf file or to
 one of your /etc/ld.so.conf.d files, and run ldconfig.

I tried the static-only approach.  That worked for quite a while and then blew 
up with some java bits complaining they couldn't find libgmp.so.  So for now 
I'm doing the ldconfig thing.

paul



Re: Trouble doing bootstrap

2010-10-14 Thread Ian Lance Taylor
Ralf Wildenhues ralf.wildenh...@gmx.de writes:

 * Ian Lance Taylor wrote on Thu, Oct 14, 2010 at 03:07:46AM CEST:
 Paul Koning writes:
  My build system doesn't have LD_LIBRARY_PATH defined so whatever is
  the Linux default would apply.  Perhaps I should change that.  But it
  seems strange that configure finds the prerequisites and then ends up
  generating makefiles that produce a compiler that can't find those
  things, even when it's built into the same /usr/local as the libraries
  it depends on.
 
 Yes, it's a mess.  But we don't know of any really clean way to fix it.

 Provide a configure switch --with-hardcoded-gccdeps that adds run path
 entries for pre-installed support libraries?

I'm fine with that, but it just introduces another configure option for
people to learn about.  If we have to teach people something, I'd rather
teach them to use --disable-shared when they build the libraries
themselves.


 Of course the same could be done for when support libraries are built as
 part of the GCC source tree, but then we'd have to know about whether
 run path entries override LD_LIBRARY_PATH settings, and/or might need to
 relink upon installation in order to not use old preinstalled stuff
 while inside the build tree ...

There is no problem when the support libraries are built as part of the
gcc source tree, because in that case the build system automatically
configures them with --disable-shared.

Ian


Re: LTO symtab sections vs. missing symbols (libcalls maybe?) and lto-plugin vs. COFF

2010-10-14 Thread Ian Lance Taylor
Dave Korn dave.korn.cyg...@gmail.com writes:

   The consequence of this is that either there are going to be undefined
 symbols in the final executable, or the linker has to perform another round of
 library scanning.  It occurred to me that the semantics of this might even not
 have been decided yet, since ELF platforms are perfectly happy with undefined
 symbols at final link time.

Only when linking dynamically, though.  This suggests that your test
case should fail on ELF when linking with -static.  If not, why not?

Ian


Re: Trouble doing bootstrap

2010-10-14 Thread Ralf Wildenhues
* Ian Lance Taylor wrote on Thu, Oct 14, 2010 at 06:56:27PM CEST:
 Ralf Wildenhues writes:
  Provide a configure switch --with-hardcoded-gccdeps that adds run path
  entries for pre-installed support libraries?
 
 I'm fine with that, but it just introduces another configure option for
 people to learn about.  If we have to teach people something, I'd rather
 teach them to use --disable-shared when they build the libraries
 themselves.

OK.  I won't argue my point further, but I am interested to learn why
shared libraries in nonstandard locations are seemingly frowned upon
here.  Is that due to fragility of the libtool approach of relinking,
or for relocatability issues of the installed program?

Thanks,
Ralf


Re: Trouble doing bootstrap

2010-10-14 Thread Ian Lance Taylor
Ralf Wildenhues ralf.wildenh...@gmx.de writes:

 * Ian Lance Taylor wrote on Thu, Oct 14, 2010 at 06:56:27PM CEST:
 Ralf Wildenhues writes:
  Provide a configure switch --with-hardcoded-gccdeps that adds run path
  entries for pre-installed support libraries?
 
 I'm fine with that, but it just introduces another configure option for
 people to learn about.  If we have to teach people something, I'd rather
 teach them to use --disable-shared when they build the libraries
 themselves.

 OK.  I won't argue my point further, but I am interested to learn why
 shared libraries in nonstandard locations are seemingly frowned upon
 here.  Is that due to fragility of the libtool approach of relinking,
 or for relocatability issues of the installed program?

1) We don't use libtool to build gcc.

2) If we did use libtool to build gcc, then, yes, I would be concerned
   about the relinking issue.

3) Shared libraries are less efficient.  You get some efficiency back if
   the libraries are in fact shared by multiple different executables
   running simultaneously.  But in this case it is relatively unlikely
   that gmp, mpfr, and mpc will actually be used by any executable other
   than gcc.  So why make them shared libraries?  We lose something, as
   can be seen by the number of times this has come up in gcc-help.  We
   gain nothing.

4) People sometimes suggest seeing the DT_RPATH/DT_RUNPATH of the
   executable to point to the shared library locations.  Past experience
   has shown that this is a bad idea for some organizations.  Some
   places mount /usr/local/lib or other directories over NFS.  Putting
   that in DT_RPATH/DT_RUNPATH causes the dynamic linker to search those
   directories at program startup.  That causes startup to be much
   slower, and can even cause it to hang until the NFS server returns.
   That is not desirable for the compiler.

Ian


Re: Trouble doing bootstrap

2010-10-14 Thread Ralf Wildenhues
* Ian Lance Taylor wrote on Thu, Oct 14, 2010 at 08:43:51PM CEST:
 Ralf Wildenhues writes:
  OK.  I won't argue my point further, but I am interested to learn why
  shared libraries in nonstandard locations are seemingly frowned upon
  here.  Is that due to fragility of the libtool approach of relinking,
  or for relocatability issues of the installed program?
 
 1) We don't use libtool to build gcc.

I know.  That's easily fixed though.[1]

Whether one uses the tool or reinvents or reuses part of the
functionality is a different question than whether some functionality
itself is desirable or not, however.

 2) If we did use libtool to build gcc, then, yes, I would be concerned
about the relinking issue.

Why?  Because of 'make install' run as root?  Any other reasons?

 3) Shared libraries are less efficient.  You get some efficiency back if
the libraries are in fact shared by multiple different executables
running simultaneously.  But in this case it is relatively unlikely
that gmp, mpfr, and mpc will actually be used by any executable other
than gcc.

It is not so unlikely that multiple instances of cc1, cc1plus, and f951
are running simultaneously.  Granted, I haven't done any measurements.

So why make them shared libraries?  We lose something, as
can be seen by the number of times this has come up in gcc-help.  We
gain nothing.

Well, we *could* make hardcoding the default in order to cope with
gcc-help.[2]

 4) People sometimes suggest seeing the DT_RPATH/DT_RUNPATH of the
executable to point to the shared library locations.  Past experience
has shown that this is a bad idea for some organizations.  Some
places mount /usr/local/lib or other directories over NFS.  Putting
that in DT_RPATH/DT_RUNPATH causes the dynamic linker to search those
directories at program startup.  That causes startup to be much
slower, and can even cause it to hang until the NFS server returns.
That is not desirable for the compiler.

Good points.

Thanks,
Ralf

[1] I'll hope you'll excuse me playing devil's advocate here.  ;-)
[2] Oops.  Twice in one message.


Re: Trouble doing bootstrap

2010-10-14 Thread Ian Lance Taylor
Ralf Wildenhues ralf.wildenh...@gmx.de writes:

 2) If we did use libtool to build gcc, then, yes, I would be concerned
about the relinking issue.

 Why?  Because of 'make install' run as root?  Any other reasons?

Any install process which is more complex than cp is a matter for
concern.  It should only be undertaken for a really good reason.


 3) Shared libraries are less efficient.  You get some efficiency back if
the libraries are in fact shared by multiple different executables
running simultaneously.  But in this case it is relatively unlikely
that gmp, mpfr, and mpc will actually be used by any executable other
than gcc.

 It is not so unlikely that multiple instances of cc1, cc1plus, and f951
 are running simultaneously.  Granted, I haven't done any measurements.

Most projects are written in only one language.  Sure, there may be
cases where cc1 and cc1plus are running simultaneously.  But I suspect
those cases are relatively unlikely.  In particular, I suspect that the
gain when that happens, which is really quite small, is less than the
cost of using a shared library.  Needless to say, I also have not done
any measurements.

Ian


Re: Trouble doing bootstrap

2010-10-14 Thread Joe Buck
On Thu, Oct 14, 2010 at 12:47:34PM -0700, Ian Lance Taylor wrote:
  It is not so unlikely that multiple instances of cc1, cc1plus, and f951
  are running simultaneously.  Granted, I haven't done any measurements.
 
 Most projects are written in only one language.  Sure, there may be
 cases where cc1 and cc1plus are running simultaneously.  But I suspect
 those cases are relatively unlikely.  In particular, I suspect that the
 gain when that happens, which is really quite small, is less than the
 cost of using a shared library.  Needless to say, I also have not done
 any measurements.

Projects that use C in some places and C++ in others are common, so a
simultaneous cc1 and cc1plus run will often occur with parallel builds.
However, the mp math libraries are relatively small compared to the size
of cc1 or cc1plus so the memory savings from having one copy instead of
two are minimal.



Re: Trouble doing bootstrap

2010-10-14 Thread Joseph S. Myers
On Thu, 14 Oct 2010, Ian Lance Taylor wrote:

 Ralf Wildenhues ralf.wildenh...@gmx.de writes:
 
  2) If we did use libtool to build gcc, then, yes, I would be concerned
 about the relinking issue.
 
  Why?  Because of 'make install' run as root?  Any other reasons?
 
 Any install process which is more complex than cp is a matter for
 concern.  It should only be undertaken for a really good reason.

And we should be aiming to make the GCC build, test and install process 
simpler: install to a staging directory during build, use the built-in 
relocatability in building target libraries and running testsuites rather 
than needing to pass long sequences of -B etc. options at those stages, 
and just copy the staging directory for final installation.  (It's nasty 
that not just the build systems of the various toolchain components but 
upstream DejaGnu itself has hardcoded information about how bits of the 
tools can locate each other in their build directories.  Nothing should 
ever need to know that; the staging install code should just put things so 
that they can find each other automatically.)

-- 
Joseph S. Myers
jos...@codesourcery.com


Re: Ada.Exceptions.Exception_Propagation is not a predefined library unit

2010-10-14 Thread Robert Dewar

On 10/14/2010 3:31 AM, Duncan Sands wrote:

Hi Luke,


a-exexpr.adb:39:06: Ada.Exceptions.Exception_Propagation is not a
predefined library unit


it looks like you get this error when the compiler can't find a file that it
thinks forms part of the Ada library (this is determined by the name, eg: a
package Ada.XYZ is expected to be part of the Ada library).  For example,
if the compiler looks for the spec of Ada.Exceptions.Exception_Propagation
(which should be called a-exexpr.ads) but can't find it then you will get
this message.  At least, that's my understanding from a few minutes of
rummaging around in the source code.


You are not allowed to add new children or grandchildren to the Ada
hierarchy. Only the implementor can do this, and it must be done
following all the implementation rules (impunit entry, use -gnatg
to compile etc).


gcc-4.5-20101014 is now available

2010-10-14 Thread gccadmin
Snapshot gcc-4.5-20101014 is now available on
  ftp://gcc.gnu.org/pub/gcc/snapshots/4.5-20101014/
and on various mirrors, see http://gcc.gnu.org/mirrors.html for details.

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

You'll find:

 gcc-4.5-20101014.tar.bz2 Complete GCC (includes all of below)

  MD5=917fc632f528188a860595eef2b5457a
  SHA1=90ffcb6ec91697caa31fd6586f1ab3322ac0d733

 gcc-core-4.5-20101014.tar.bz2C front end and core compiler

  MD5=ed36fbd3cdf70c921df9fff21402c6ee
  SHA1=60b4419840e93cf6935e994a69cb9e5a65f15f73

 gcc-ada-4.5-20101014.tar.bz2 Ada front end and runtime

  MD5=3d087ce08dea89e4513ff0f2918c08ab
  SHA1=a88427dd88d75712af853befe78f6577be6777c0

 gcc-fortran-4.5-20101014.tar.bz2 Fortran front end and runtime

  MD5=3573be4cc71e5379e43286e31ec93e02
  SHA1=2ddc94250c3805b16ff51266daf314364a3f204f

 gcc-g++-4.5-20101014.tar.bz2 C++ front end and runtime

  MD5=2a01cbd49fe0cba7c4d92f19fc45f2e7
  SHA1=164540a0cd9e498c37870e03e9540eb212c013f9

 gcc-java-4.5-20101014.tar.bz2Java front end and runtime

  MD5=1251c4f78a7a6361ebf9fd31eac052d9
  SHA1=34080e954b6c5dd2822b0b7661cc9ea019596251

 gcc-objc-4.5-20101014.tar.bz2Objective-C front end and runtime

  MD5=ea4a5719e454ec152cf2ef42076c71eb
  SHA1=6cc87d487337ac1634ef9773dc4ab3a390f8d365

 gcc-testsuite-4.5-20101014.tar.bz2   The GCC testsuite

  MD5=534abb72da9c929c5deb01a1b553b3d3
  SHA1=7a792b0976aad25579c898ed5b43332b1a0f9ac6

Diffs from 4.5-20101007 are available in the diffs/ subdirectory.

When a particular snapshot is ready for public consumption the LATEST-4.5
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: show size of stack needed by functions

2010-10-14 Thread Weddington, Eric
 

 -Original Message-
 From: Eric Botcazou [mailto:ebotca...@adacore.com] 
 Sent: Wednesday, October 13, 2010 4:43 PM
 To: sebastianspublicaddr...@googlemail.com
 Cc: gcc@gcc.gnu.org; Joe Buck
 Subject: Re: show size of stack needed by functions
 
 We have had something along these lines in our compiler at 
 AdaCore for a few 
 years; it's called -fcallgraph-info, it generates a very 
 low-level callgraph 
 in VCG format for each compilation unit, and the nodes can be 
 decorated with 
 information (typically stack usage indeed).  Then you run a 
 script to link 
 all the VCG files for a program and you can (try and) compute 
 the worst case 
 stack usage for example.  This works reasonably well for 
 embedded stuff.
 
 I'll try and submit something before stage 1 ends if people 
 are interested.

Yes, I'm very interested.

Eric Weddington


Re: check_cxa_atexit_available

2010-10-14 Thread Mark Mitchell
On 9/29/2010 3:53 PM, Richard Henderson wrote:

 The test program in target-supports.exp is broken, since
 it doesn't preclude the use of cleanups instead.  Indeed,
 the init/cleanup3.C seems to be essentially identical to
 the target-supports test.

Why isn't the test program in target-supports.exp just a link-time test
that __cxa_atexit exists?  In other words:

  void main () {
 __cxa_atexit (...);
  }

Is the idea that we want to be able to run the tests with
-fno-use-cxa-atexit in the command-line options?  I guess we have to
worry about that.  In that case, yes, I guess an assembly-scan test in
target-supports.exp is the best that we can do.

-- 
Mark Mitchell
CodeSourcery
m...@codesourcery.com
(650) 331-3385 x713


[Bug rtl-optimization/45570] [4.6 Regression] ICE: in cfg_preds_1, at sel-sched-ir.c:4584

2010-10-14 Thread abel at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45570

--- Comment #4 from Andrey Belevantsev abel at gcc dot gnu.org 2010-10-14 
07:56:50 UTC ---
Author: abel
Date: Thu Oct 14 07:56:47 2010
New Revision: 165454

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=165454
Log:
PR rtl-optimization/45570
* sel-sched-ir.c (cfg_preds_1): When walking out of the region, assert
that we are pipelining outer loops.  Allow returning zero predecessors.
* gcc.dg/pr45570.c: New test. 

Added:
trunk/gcc/testsuite/gcc.dg/pr45570.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/sel-sched-ir.c
trunk/gcc/testsuite/ChangeLog


[Bug fortran/46010] I/O: Namelist-reading bug

2010-10-14 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46010

--- Comment #4 from Tobias Burnus burnus at gcc dot gnu.org 2010-10-14 
08:09:04 UTC ---
Reduced test case:

--nml.dat---
namtoptrc
   tracer(1)   = 'Aa', .true.
   tracer(2)   = 'Bb', .true.
   tracer(3)   = 'Cc', .true.
/


--test.f90--
  TYPE PTRACER
 CHARACTER(len = 2)  :: sname
 LOGICAL  :: lini
  END TYPE PTRACER
  TYPE(PTRACER) , DIMENSION(3) :: tracer
  NAMELIST/namtoptrc/  tracer

open (99, file='nml.dat')
read (99, nml=namtoptrc)
write (*, nml=namtoptrc)
end


Works with -std=f90/f2003/f2008 but fails with without -std=f* (i.e. with
-std=gnu) as follows:

At line 10 of file test.f90 (unit = 99, file = 'nml.dat')
Fortran runtime error: Cannot match namelist object name 'bb'

The issue is really the .true. (T,true, .false., F, false). If the
last item (in the namelist and in the derived type) is an integer or a string
it works.


[Bug libstdc++/45990] 28_regex/07_traits/char/isctype.cc XPASSes on Solaris 2/IRIX 6

2010-10-14 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45990

Jonathan Wakely redi at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED
   Target Milestone|--- |4.6.0

--- Comment #6 from Jonathan Wakely redi at gcc dot gnu.org 2010-10-14 
08:23:39 UTC ---
Thanks, Rainer.
This should xfail now, please reopen if not.


[Bug middle-end/46011] New: 256bit vectorizer failed on double-int

2010-10-14 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46011

   Summary: 256bit vectorizer failed on double-int
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: hjl.to...@gmail.com


For gcc.target/i386/vectorize4-avx.c, vect256 branch
generates:

.L2:
vmovaps-120(%rsp,%rax), %ymm0
vcvtps2pd%xmm0, %ymm1
vextractf128$0x1, %ymm0, %xmm0
vsqrtpd%ymm1, %ymm1
vcvttpd2dqy%ymm1, %xmm1
vmovdqu%xmm1, (%rdi,%rax)
vcvtps2pd%xmm0, %ymm0
vsqrtpd%ymm0, %ymm0
vcvttpd2dqy%ymm0, %xmm0
vmovdqu%xmm0, 16(%rdi,%rax)
addq$32, %rax
cmpq$1024, %rax
jne.L2

Trunk at revision 165455 generates

.L2:
vmovaps-120(%rsp,%rax), %xmm1
vmovhlps%xmm1, %xmm0, %xmm0
vcvtps2pd%xmm1, %xmm2
vsqrtpd%xmm2, %xmm2
vcvttpd2dqx%xmm2, %xmm2
vcvtps2pd%xmm0, %xmm1
vsqrtpd%xmm1, %xmm1
vcvttpd2dqx%xmm1, %xmm1
vpunpcklqdq%xmm1, %xmm2, %xmm1
vmovdqu%xmm1, (%rdi,%rax)
addq$16, %rax
cmpq$1024, %rax
jne.L2


[Bug middle-end/46011] 256bit vectorizer failed on double-int

2010-10-14 Thread hjl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46011

--- Comment #1 from hjl at gcc dot gnu.org hjl at gcc dot gnu.org 2010-10-14 
08:33:13 UTC ---
Author: hjl
Date: Thu Oct 14 08:33:09 2010
New Revision: 165457

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=165457
Log:
Scan 256bit AVX register and xfail vectorize4-avx.c.

2010-10-14  H.J. Lu  hongjiu...@intel.com

PR middle-end/46011
* gcc.target/i386/vectorize4-avx.c: Scan 256bit AVX register
and xfail.

Modified:
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.target/i386/vectorize4-avx.c


[Bug tree-optimization/46011] 256bit vectorizer failed on double-int

2010-10-14 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46011

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2010.10.14 08:36:25
  Component|middle-end  |tree-optimization
 Ever Confirmed|0   |1
   Severity|normal  |enhancement

--- Comment #2 from Richard Guenther rguenth at gcc dot gnu.org 2010-10-14 
08:36:25 UTC ---
Yep, that's a known limitation with the new scheme which just allows one
vector size per loop.  It needs special support in the vectorize_conversion
routine.


[Bug tree-optimization/46012] New: 256bit vectorizer failed on int-double

2010-10-14 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46012

   Summary: 256bit vectorizer failed on int-double
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P3
 Component: tree-optimization
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: hjl.to...@gmail.com
CC: rgue...@gcc.gnu.org


For

---
double a[1024];
float b[1024];
int c[1024];

void dependence_distance_4_mixed_0 (void)
{
  int i;
  for (i = 0; i  1020; ++i)
a[i + 4] = a[i] + a[i + 4] + c[i];
}
---

with -O3 -ffast-math -mavx, vect256 branch generates:

.L2:
vmovapda(%rax,%rax), %ymm0
vcvtdq2pdc(%rax), %ymm1
vaddpda+32(%rax,%rax), %ymm0, %ymm0
vaddpd%ymm1, %ymm0, %ymm0
vmovapd%ymm0, a+32(%rax,%rax)
addq$16, %rax
cmpq$4080, %rax
jne.L2

Trunk at revision 165455 generates

.L2:
vmovapd16(%rax), %xmm2
vaddpd-16(%rax), %xmm2, %xmm2
vmovdqa(%rdx), %xmm0
addq$16, %rdx
vpshufd$238, %xmm0, %xmm1
vcvtdq2pd%xmm0, %xmm0
vcvtdq2pd%xmm1, %xmm1
vaddpd%xmm1, %xmm2, %xmm1
vmovapd(%rax), %xmm2
vaddpd-32(%rax), %xmm2, %xmm2
vmovapd%xmm1, 16(%rax)
vaddpd%xmm0, %xmm2, %xmm0
vmovapd%xmm0, (%rax)
addq$32, %rax
cmpq%rax, %rcx
jne.L2


[Bug tree-optimization/46012] 256bit vectorizer failed on int-double

2010-10-14 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46012

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2010.10.14 09:01:56
 Ever Confirmed|0   |1

--- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2010-10-14 
09:01:56 UTC ---
Related to PR46011


[Bug tree-optimization/45764] [4.6 Regression] wrong code -O2 vs -O3 (problem in vectorizer???)

2010-10-14 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45764

--- Comment #6 from hjl at gcc dot gnu.org hjl at gcc dot gnu.org 2010-10-03 
05:41:44 UTC ---
Author: hjl
Date: Sun Oct  3 05:39:32 2010
New Revision: 164914

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=164914
Log:
Disallow negative steps in vectorizer.

gcc/

2010-10-02  H.J. Lu  hongjiu...@intel.com

PR tree-optimization/45720
PR tree-optimization/45764
* tree-vect-data-refs.c (vect_analyze_data_ref_access):
Don't accept backwards consecutive accesses.
(vect_create_data_ref_ptr): Disallow negative steps.

* tree-vect-stmts.c (vectorizable_store): Allow negative steps.
(perm_mask_for_reverse): Removed.
(reverse_vec_elements): Likewise.
(vectorizable_load): Don't hanle negative steps.

gcc/testsuite/

2010-10-02  H.J. Lu  hongjiu...@intel.com

PR tree-optimization/45720
PR tree-optimization/45764
* g++.dg/torture/pr45764.C: New.

* gcc.dg/vect/pr43432.c: Xfail.
* gcc.dg/vect/vect-114.c: Likewise.
* gcc.dg/vect/vect-15.c: Likewise.

Added:
trunk/gcc/testsuite/g++.dg/torture/pr45764.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.dg/vect/pr43432.c
trunk/gcc/testsuite/gcc.dg/vect/vect-114.c
trunk/gcc/testsuite/gcc.dg/vect/vect-15.c
trunk/gcc/tree-vect-data-refs.c
trunk/gcc/tree-vect-stmts.c

--- Comment #7 from Richard Guenther rguenth at gcc dot gnu.org 2010-10-14 
10:19:07 UTC ---
(In reply to comment #5)
 This patch will set the correct misalign info on that data-reference:
 
 Index: tree-vect-data-refs.c
 ===
 --- tree-vect-data-refs.c   (revision 164476)
 +++ tree-vect-data-refs.c   (working copy)
 @@ -900,6 +900,19 @@ vect_compute_data_ref_alignment (struct
   || (TREE_CODE (base) == VAR_DECL
DECL_ALIGN (base) = TYPE_ALIGN (vectype)));
 
 +  /* If this is a backward running DR then first access in the larger
 + vectype actually is N-1 elements before the address in the DR.
 + Adjust misalign accordingly.  */
 +  if (tree_int_cst_compare (DR_STEP (dr), size_zero_node)  0)
 +{
 +  tree offset = ssize_int (TYPE_VECTOR_SUBPARTS (vectype) - 1);
 +  /* DR_STEP(dr) is the same as -TYPE_SIZE of the scalar type,
 + otherwise we wouldn't be here.  */
 +  offset = fold_build2 (MULT_EXPR, ssizetype, offset, DR_STEP (dr));
 +  /* PLUS because DR_STEP was negative.  */
 +  misalign = size_binop (PLUS_EXPR, misalign, offset);
 +}
 +
/* Modulo alignment.  */
misalign = size_binop (FLOOR_MOD_EXPR, misalign, alignment);
 
 
 Unfortunately this will later result in an ICE during peeling.  It
 wants to peel these data-refs that now are known misaligned, and during cost
 computation changes data-refs that have the same alignment state to be
 aligned too (makes sense because those data-refs will also be aligned when
 the to-be-peeled DR is aligned).
 
 Unfortunately the STMT_VINFO_SAME_ALIGN_REFS contains bogus reference,
 because ultimately the distance vectors are wrong:
 
 (compute_affine_dependence
   (stmt_a = D.2097_46 = ibuf[D.2094_43];)
   (stmt_b = D.2100_64 = ibuf[D.2099_63];)
 (subscript_dependence_tester
 (analyze_overlapping_iterations
   (chrec_a = {64, +, -1}_2)
   (chrec_b = {64, +, 1}_2)
 (analyze_siv_subscript
 (analyze_subscript_affine_affine
   (overlaps_a = [0]
   (overlaps_b = [0]
   (overlap_iterations_a = [0]
   (overlap_iterations_b = [0]
 (build_classic_dist_vector
   dist_vector = (  0  )
 
 So, we have two DRs running in opposite directions, which happen to
 have the initial element in common (index 64), but afterwards diverge and
 have nothing in common anymore.  So overlap_iterations_a/b is correct.
 But the distance vector is 0, meaning 'same in all iterations'.  That
 is used to initialize STMT_VINFO_SAME_ALIGN_REFS in
 vect_find_same_alignment_drs .
 
 Obviously the distance vector should be unknown (it could be a chrec, if
 we really want, namely {0, +, 2}_2, but we don't do anything with such
 distances).  I tried to determine why it is wrong, it's ultimately
 coming from SUB_DISTANCE of that DDR, computed like so
 (compute_subscript_distance):
 
   subscript = DDR_SUBSCRIPT (ddr, i);
   cf_a = SUB_CONFLICTS_IN_A (subscript);
   cf_b = SUB_CONFLICTS_IN_B (subscript);
 
   fn_a = common_affine_function (cf_a);
   fn_b = common_affine_function (cf_b);
   if (!fn_a || !fn_b)
 {
   SUB_DISTANCE (subscript) = chrec_dont_know;
   return;
 }
   diff = affine_fn_minus (fn_a, fn_b);
 
   if (affine_function_constant_p (diff))
 SUB_DISTANCE (subscript) = affine_function_base (diff);
   else
 SUB_DISTANCE (subscript) = chrec_dont_know;
 
 And this is baffling me a bit.  How could it be correct to
 determine a distance 

[Bug tree-optimization/44913] [4.6 Regression] -ftree-vectorize causes FAIL: gcc.dg/pr44838.c execution test

2010-10-14 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44913

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #3 from Richard Guenther rguenth at gcc dot gnu.org 2010-10-14 
10:38:45 UTC ---
Mine.


[Bug c++/46013] New: crash when compiling

2010-10-14 Thread merflogin at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46013

   Summary: crash when compiling
   Product: gcc
   Version: 4.4.3
Status: UNCONFIRMED
  Severity: critical
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: merflo...@gmail.com


Created attachment 22033
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22033
the preprocessed file (*.i*) that triggers the bug

$ make
g++ -c -g -v -save-temps ../sort_list_student/sort_list_student.cpp  -o
../sort_list_student/sort_list_student.o
Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.4.3-4ubuntu5'
--with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs
--enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared
--enable-multiarch --enable-linker-build-id --with-system-zlib
--libexecdir=/usr/lib --without-included-gettext --enable-threads=posix
--with-gxx-include-dir=/usr/include/c++/4.4 --program-suffix=-4.4 --enable-nls
--enable-clocale=gnu --enable-libstdcxx-debug --enable-plugin --enable-objc-gc
--enable-targets=all --disable-werror --with-arch-32=i486 --with-tune=generic
--enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu
--target=i486-linux-gnu
Thread model: posix
gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5) 
COLLECT_GCC_OPTIONS='-c' '-g' '-v' '-save-temps' '-o'
'../sort_list_student/sort_list_student.o' '-shared-libgcc' '-mtune=generic'
'-march=i486'
 /usr/lib/gcc/i486-linux-gnu/4.4.3/cc1plus -E -quiet -v -D_GNU_SOURCE
../sort_list_student/sort_list_student.cpp -D_FORTIFY_SOURCE=2 -mtune=generic
-march=i486 -g -fworking-directory -fpch-preprocess -fstack-protector -o
sort_list_student.ii
ignoring nonexistent directory /usr/local/include/i486-linux-gnu
ignoring nonexistent directory
/usr/lib/gcc/i486-linux-gnu/4.4.3/../../../../i486-linux-gnu/include
ignoring nonexistent directory /usr/include/i486-linux-gnu
#include ... search starts here:
#include ... search starts here:
 /usr/include/c++/4.4
 /usr/include/c++/4.4/i486-linux-gnu
 /usr/include/c++/4.4/backward
 /usr/local/include
 /usr/lib/gcc/i486-linux-gnu/4.4.3/include
 /usr/lib/gcc/i486-linux-gnu/4.4.3/include-fixed
 /usr/include
End of search list.
built-in:0: internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See file:///usr/share/doc/gcc-4.4/README.Bugs for instructions.
make: *** [../sort_list_student/sort_list_student.o] Error 1


[Bug c/46014] New: internal compiler error compiling clamav-0.96.3

2010-10-14 Thread mar...@htw-saarland.de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46014

   Summary: internal compiler error compiling clamav-0.96.3
   Product: gcc
   Version: 4.3.0
Status: UNCONFIRMED
  Severity: critical
  Priority: P3
 Component: c
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: mar...@htw-saarland.de


output of gcc -v:
Using built-in specs.
Target: sparc-sun-solaris2.10
Configured with: ../gcc-4.3.0/configure --enable-languages=c,c++
Thread model: posix
gcc version 4.3.0 (GCC) 

detailed compiler flags for building gcc are unknown


Error message:
init2.c:37:  assertion failed: ((64 - 0)+0) == (((64 - 0)+0)/8) * 8 
sizeof(mp_limb_t) == (((64 - 0)+0)/8)
bytecode_api.c: In function 'cli_bcapi_ilog2':
bytecode_api.c:952: internal compiler error: Abort

makefile and bytecode_api.i are attached


[Bug c/46014] internal compiler error compiling clamav-0.96.3

2010-10-14 Thread mar...@htw-saarland.de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46014

--- Comment #1 from mar...@htw-saarland.de 2010-10-14 10:46:01 UTC ---
Created attachment 22034
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22034
intermediate file of error producing source


[Bug c/46014] internal compiler error compiling clamav-0.96.3

2010-10-14 Thread mar...@htw-saarland.de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46014

--- Comment #2 from mar...@htw-saarland.de 2010-10-14 10:46:47 UTC ---
Created attachment 22035
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22035
Makefile with compiler flags


[Bug libstdc++/45999] runtime error in std::vector python pretty printer.

2010-10-14 Thread pluto at agmk dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45999

--- Comment #2 from Pawel Sikora pluto at agmk dot net 2010-10-14 10:53:03 
UTC ---
(In reply to comment #1)
 Reduced
 
 #include vector
 
 int main()
 {
 std::vectorbool b(4);
 b.push_back(1);
 return 0;
 }
 
 
 There's no pretty printer for vectorbool

seems to fixed on trunk:
http://gcc.gnu.org/viewcvs?view=revisionrevision=163282
can we get a backport for this fix on 4.5 branch?


[Bug c++/46013] crash when compiling

2010-10-14 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46013

--- Comment #1 from Jonathan Wakely redi at gcc dot gnu.org 2010-10-14 
10:59:33 UTC ---
that preprocessed file refers to a precompiled header, student.h.gch, which
isn't included

can you reproduce it without using precompiled headers?


[Bug c/46014] internal compiler error compiling clamav-0.96.3

2010-10-14 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46014

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2010.10.14 11:02:53
 Ever Confirmed|0   |1

--- Comment #3 from Richard Guenther rguenth at gcc dot gnu.org 2010-10-14 
11:02:53 UTC ---
Please try GCC 4.3.5.  Can't reproduce with the sparse info you provided with
4.3.0.


[Bug c++/45690] broken debuginfo with dwarf4?

2010-10-14 Thread pluto at agmk dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45690

--- Comment #3 from Pawel Sikora pluto at agmk dot net 2010-10-14 11:13:10 
UTC ---
Created attachment 22036
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22036
my gcc build script.


[Bug c++/45690] broken debuginfo with dwarf4?

2010-10-14 Thread pluto at agmk dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45690

--- Comment #4 from Pawel Sikora pluto at agmk dot net 2010-10-14 11:17:55 
UTC ---
attached gcc build script builds libstdc++.a with dwarf3 debuginfo
which works with testcase compiled with dwarf3 or dwarf4.
if you change CUSTOM_FLAGS in build script to emit dwarf4 for libstdc++.a
then you'll get runtime error in python gdb printer.


[Bug tree-optimization/45764] [4.6 Regression] wrong code -O2 vs -O3 (problem in vectorizer???)

2010-10-14 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45764

--- Comment #8 from Richard Guenther rguenth at gcc dot gnu.org 2010-10-14 
11:54:13 UTC ---
The snippet seems to work as far as to set SUB_DISTANCE to chrec_dont_know,
together with the suggested fix in comment #5 it fixes this PR.

Now, the hunk below alone would already compute the distance vector,
so I'm not sure what the rest of the function is supposed to do
(and why it doesn't handle steps appropriately).

Index: tree-data-ref.c
===
--- tree-data-ref.c (revision 165456)
+++ tree-data-ref.c (working copy)
@@ -1165,6 +1165,16 @@ compute_subscript_distance (struct data_
  SUB_DISTANCE (subscript) = chrec_dont_know;
  return;
}
+
+ if (tree_contains_chrecs
+   (chrec_fold_minus (TREE_TYPE (DR_ACCESS_FN (DDR_A (ddr), i)),
+  DR_ACCESS_FN (DDR_A (ddr), i),
+  DR_ACCESS_FN (DDR_B (ddr), i)), NULL))
+   {
+ SUB_DISTANCE (subscript) = chrec_dont_know;
+ return;
+   }
+
  diff = affine_fn_minus (fn_a, fn_b);

  if (affine_function_constant_p (diff))


It looks like if we ever start to vectorize strided stores then we'd miscompile

  a[i*2] = a[(i+1)*2];

as well.  Here we have no dependence, thus the conflict function should
be no-conflict (which leads us to no distance vector).


[Bug c++/44561] using nullptr_t with -flto/-fwhopr causes ICE: tree code 'lang_type' is not supported in gimple streams

2010-10-14 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44561

--- Comment #8 from Richard Guenther rguenth at gcc dot gnu.org 2010-10-14 
11:59:50 UTC ---
Author: rguenth
Date: Thu Oct 14 11:59:47 2010
New Revision: 165462

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=165462
Log:
2010-10-14  Richard Guenther  rguent...@suse.de

PR lto/44561
* tree.def (NULLPTR_TYPE): New tree code.
* dbxout.c (dbxout_type): Handle NULLPTR_TYPE.
* dwarf2out.c (is_base_type): Likewise.
(gen_type_die_with_usage): Likewise.
* sdbout.c (plain_type_1): Likewise.
* tree.c (build_int_cst_wide): Likewise.
* gimple.c (gimple_types_compatible_p_1): NULLPTR_TYPE types
are equal.

cp/
* cp-tree.h (NULLPTR_TYPE_P): Adjust.
* decl.c (cxx_init_decl_processing): Build a NULLPTR_TYPE node,
use build_int_cst.
* error.c (dump_type): Handle NULLPTR_TYPE.
(dump_type_prefix): Likewise.
(dump_type_suffix): Likewise.
* mangle.c (write_type): Likewise.
* name-lookup.c (arg_assoc_type): Likewise.
* rtti.c (typeinfo_in_lib_p): Likewise.
* pt.c (tsubst): Likewise.

* g++.dg/lto/20101010-3_0.C: New testcase.
* g++.dg/lto/20101010-4_0.C: Likewise.

Added:
trunk/gcc/testsuite/g++.dg/lto/20101010-3_0.C
trunk/gcc/testsuite/g++.dg/lto/20101010-4_0.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/cp-tree.h
trunk/gcc/cp/decl.c
trunk/gcc/cp/error.c
trunk/gcc/cp/mangle.c
trunk/gcc/cp/name-lookup.c
trunk/gcc/cp/pt.c
trunk/gcc/cp/rtti.c
trunk/gcc/dbxout.c
trunk/gcc/dwarf2out.c
trunk/gcc/gimple.c
trunk/gcc/sdbout.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree.c
trunk/gcc/tree.def


[Bug c/46015] New: -Wunused-but-set-variable false positive

2010-10-14 Thread foldy at rmki dot kfki.hu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46015

   Summary: -Wunused-but-set-variable false positive
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: fo...@rmki.kfki.hu


/* test.c */

int f(int i)
{
  static void* labs[2] =
{ lab1,
  lab2
};

  goto *(labs[i1]);

 lab1: return 1;
 lab2: return 2;

  return 0;
}

/* test.c end */

GCC 4.6.0 20101014 -Wall prints the followiung warning:

test.c: In function 'f':
test.c:5:16: warning: variable 'labs' set but not used
[-Wunused-but-set-variable]

(GCC 4.5.1 is OK.)


[Bug c++/44561] using nullptr_t with -flto/-fwhopr causes ICE: tree code 'lang_type' is not supported in gimple streams

2010-10-14 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44561

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED
   Target Milestone|--- |4.6.0

--- Comment #9 from Richard Guenther rguenth at gcc dot gnu.org 2010-10-14 
12:02:34 UTC ---
Fixed.


[Bug driver/46016] New: libgcc build failure for libmpc installation not in /usr

2010-10-14 Thread amitshah at gmx dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46016

   Summary: libgcc build failure for libmpc installation not in
/usr
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: driver
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: amits...@gmx.net


Building gcc out-of-tree from latest svn checkout (r165458).

configure line:

~/src/gcc/configure --prefix=/home/amit/install/gcc

Installing libmpc from sources either in my home dir or in /usr/local produces
the following error (in case of installation in home dir, I appended
--with-mpc=/home/amit/install/mpc
--with-mpc-include=/home/amit/install/mpc/include
--with-mpc-lib=/home/amit/install/mpc/lib to the configure line):

checking for x86_64-unknown-linux-gnu-gcc... /home/amit/build/gcc/./gcc/xgcc
-B/home/amit/build/gcc/./gcc/
-B/home/amit/install/gcc/x86_64-unknown-linux-gnu/bin/
-B/home/amit/install/gcc/x86_64-unknown-linux-gnu/lib/ -isystem
/home/amit/install/gcc/x86_64-unknown-linux-gnu/include -isystem
/home/amit/install/gcc/x86_64-unknown-linux-gnu/sys-include   
checking for suffix of object files... configure: error: in
`/home/amit/build/gcc/x86_64-unknown-linux-gnu/libgcc':
configure: error: cannot compute suffix of object files: cannot compile
See `config.log' for more details.
make[2]: *** [configure-stage1-target-libgcc] Error 1


The config.log snippet is:

gcc version 4.6.0 20101014 (experimental) (GCC) 
configure:3004: $? = 0
configure:2993: /home/amit/build/gcc/./gcc/xgcc -B/home/amit/build/gcc/./gcc/
-B/home/amit/install/gcc/x86_64-unknown-linux-gnu/bin/
-B/home/amit/install/gcc/x86_64-unknown-linux-gnu/lib/ -isystem
/home/amit/install/gcc/x86_64-unknown-linux-gnu/include -isystem
/home/amit/install/gcc/x86_64-unknown-linux-gnu/sys-include-V 5
xgcc: error: unrecognized option '-V'
xgcc: fatal error: no input files
compilation terminated.
configure:3004: $? = 1
configure:2993: /home/amit/build/gcc/./gcc/xgcc -B/home/amit/build/gcc/./gcc/
-B/home/amit/install/gcc/x86_64-unknown-linux-gnu/bin/
-B/home/amit/install/gcc/x86_64-unknown-linux-gnu/lib/ -isystem
/home/amit/install/gcc/x86_64-unknown-linux-gnu/include -isystem
/home/amit/install/gcc/x86_64-unknown-linux-gnu/sys-include-qversion 5
xgcc: error: unrecognized option '-qversion'
xgcc: fatal error: no input files
compilation terminated.
configure:3004: $? = 1
configure:3020: /home/amit/build/gcc/./gcc/xgcc -B/home/amit/build/gcc/./gcc/
-B/home/amit/install/gcc/x86_64-unknown-linux-gnu/bin/
-B/home/amit/install/gcc/x86_64-unknown-linux-gnu/lib/ -isystem
/home/amit/install/gcc/x86_64-unknown-linux-gnu/include -isystem
/home/amit/install/gcc/x86_64-unknown-linux-gnu/sys-include-o conftest -g
-O2   conftest.c  5
/home/amit/build/gcc/./gcc/cc1: error while loading shared libraries:
libmpc.so.2: cannot open shared object file: No such file or directory
configure:3023: $? = 1
configure:3211: checking for suffix of object files
configure:3233: /home/amit/build/gcc/./gcc/xgcc -B/home/amit/build/gcc/./gcc/
-B/home/amit/install/gcc/x86_64-unknown-linux-gnu/bin/
-B/home/amit/install/gcc/x86_64-unknown-linux-gnu/lib/ -isystem
/home/amit/install/gcc/x86_64-unknown-linux-gnu/include -isystem
/home/amit/install/gcc/x86_64-unknown-linux-gnu/sys-include-c -g -O2 
conftest.c 5
/home/amit/build/gcc/./gcc/cc1: error while loading shared libraries:
libmpc.so.2: cannot open shared object file: No such file or directory
configure:3237: $? = 1


[Bug fortran/46017] New: Reject ALLOCATE(a, a%b) as a%b depends on the allocation status of a

2010-10-14 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46017

   Summary: Reject  ALLOCATE(a, a%b) as  a%b depends on the
allocation status of a
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Keywords: diagnostic
  Severity: enhancement
  Priority: P3
 Component: fortran
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: bur...@gcc.gnu.org


Follow up to PR 42647 comment 11

  allocate(a1, a1%b1, a1%b1%c1)

is invalid as it violates:

An allocate-object [...] shall not depend [...] on the [...] allocation status
[...] of any allocate-object in the same ALLOCATE statement.

(F2008, 6.7.1 ALLOCATE statement first paragraph after C644.)


The solution is to write three independent ALLOCATE statements. I think this
particular case could be compile-time detectable.

Cf. also http://gcc.gnu.org/ml/fortran/2010-10/msg00159.html (contains quote
from the F2003 handbook.)

Full test case: PR 42647 comment 10


[Bug c++/43601] Enormous increase in DLL object files size in 4.5

2010-10-14 Thread loaden at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43601

--- Comment #33 from Loaden YC loaden at gmail dot com 2010-10-14 12:18:58 
UTC ---
Because of this issue, I have been using GCC4.4.x, but do not want to upgrade
to 4.5.x.
Why this issue can not been confirmed?


[Bug c++/45984] [4.6 Regression] ICE: canonical types differ for identical types

2010-10-14 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45984

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #3 from Richard Guenther rguenth at gcc dot gnu.org 2010-10-14 
12:25:36 UTC ---
Fixed.


[Bug driver/46016] libgcc build failure for libmpc installation not in /usr

2010-10-14 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46016

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||INVALID

--- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2010-10-14 
13:45:11 UTC ---
You need to adjust your runtime linker paths accordingly.


[Bug c/46015] [4.6 Regression] -Wunused-but-set-variable false positive

2010-10-14 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46015

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||diagnostic
   Target Milestone|--- |4.6.0
Summary|-Wunused-but-set-variable   |[4.6 Regression]
   |false positive  |-Wunused-but-set-variable
   ||false positive


[Bug driver/46016] libgcc build failure for libmpc installation not in /usr

2010-10-14 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46016

--- Comment #2 from Jonathan Wakely redi at gcc dot gnu.org 2010-10-14 
13:51:36 UTC ---
The docs for --with-mpc do mention this:
http://gcc.gnu.org/install/configure.html


[Bug rtl-optimization/45570] [4.6 Regression] ICE: in cfg_preds_1, at sel-sched-ir.c:4584

2010-10-14 Thread abel at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45570

Andrey Belevantsev abel at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #5 from Andrey Belevantsev abel at gcc dot gnu.org 2010-10-14 
14:42:12 UTC ---
Fixed.


[Bug c++/43601] Enormous increase in DLL object files size in 4.5

2010-10-14 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43601

--- Comment #34 from Andrew Pinski pinskia at gcc dot gnu.org 2010-10-14 
15:09:52 UTC ---
(In reply to comment #33)
 Because of this issue, I have been using GCC4.4.x, but do not want to upgrade
 to 4.5.x.
 Why this issue can not been confirmed?

The way I read it, this is not a bug as Microsoft Visual Studio acts the same
way (when their precompiled headers are not included).


[Bug tree-optimization/45957] [4.6 Regression] g++.dg/ext/fnname3.C FAILs with -flto/-fwhopr

2010-10-14 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45957

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2010.10.14 15:14:34
 AssignedTo|unassigned at gcc dot   |rguenth at gcc dot gnu.org
   |gnu.org |
 Ever Confirmed|0   |1

--- Comment #2 from Richard Guenther rguenth at gcc dot gnu.org 2010-10-14 
15:14:34 UTC ---
This happens because we clear DECL_INITIAL in free-lang-data and appearantly
S::S which is the context of __func__ is DECL_ABSTRACT ...

Surely an artifact of the C++ constructor/destructor cloning.

We could simply remove

 if (TREE_CODE (decl) == VAR_DECL)
   {
 tree context = DECL_CONTEXT (decl);

 if (context)
   {
 enum tree_code code = TREE_CODE (context);
 if (code == FUNCTION_DECL  DECL_ABSTRACT (context))
   {
 /* Do not clear the decl context here, that will promote
all vars to global ones.  */
 DECL_INITIAL (decl) = NULL_TREE;
   }
   }
   }

from free-lang-data.


[Bug c/46014] internal compiler error compiling clamav-0.96.3

2010-10-14 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46014

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution||DUPLICATE

--- Comment #4 from Andrew Pinski pinskia at gcc dot gnu.org 2010-10-14 
15:15:10 UTC ---
This is a bug in a version of GMP/MPRF that you are using.

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


[Bug fortran/34207] libgfortran configure: GNU Fortran is not working on sparc-sun-solaris2.10

2010-10-14 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34207

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

 CC||mar...@htw-saarland.de

--- Comment #4 from Andrew Pinski pinskia at gcc dot gnu.org 2010-10-14 
15:15:10 UTC ---
*** Bug 46014 has been marked as a duplicate of this bug. ***


[Bug c++/43601] Enormous increase in DLL object files size in 4.5

2010-10-14 Thread vz-gcc at zeitlins dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43601

--- Comment #35 from Vadim Zeitlin vz-gcc at zeitlins dot org 2010-10-14 
15:24:57 UTC ---
(In reply to comment #34)
 (In reply to comment #33)
  Because of this issue, I have been using GCC4.4.x, but do not want to 
  upgrade
  to 4.5.x.
  Why this issue can not been confirmed?
 
 The way I read it, this is not a bug as Microsoft Visual Studio acts the same
 way (when their precompiled headers are not included).

This reply either demonstrates complete misunderstanding of the issue or is
deliberate misinformation. To set the record straight, Microsoft Visual Studio
absolutely doesn't act the same way and doesn't generate neither object files
nor DLLs of this ridiculous size, whether precompiled headers are used or not.
Besides, the issue does arise when precompiled headers _are_ used with gcc.

Continuing to justify what is clearly and uncontroversially a bad regression in
gcc by compatibility with MSVC which never suffered from this problem and
refusing to even acknowledge the issue, let alone revert the breakage, does no
good whatsoever neither to the gcc project nor to its image.


[Bug bootstrap/46018] New: Bootstrap fails on i386-pc-solaris2.10

2010-10-14 Thread ahaas at airmail dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46018

   Summary: Bootstrap fails on i386-pc-solaris2.10
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: bootstrap
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: ah...@airmail.net


As stated in the summary, the bootstrap build fails when compiling lto-lang.o:

/export/home/arth/gnu/gcc-1014/./prev-gcc/xgcc
-B/export/home/arth/gnu/gcc-1014/./prev-gcc/
-B/export/home/arth/local/i386-pc-solaris2.10/bin/
-B/export/home/arth/local/i386-pc-solaris2.10/bin/
-B/export/home/arth/local/i386-pc-solaris2.10/lib/ -isystem
/export/home/arth/local/i386-pc-solaris2.10/include -isystem
/export/home/arth/local/i386-pc-solaris2.10/sys-include-c   -O2  -gtoggle
-DIN_GCC   -W -Wall -Wwrite-strings -Wcast-qual -Wstrict-prototypes
-Wmissing-prototypes -Wmissing-format-attribute -pedantic -Wno-long-long
-Wno-variadic-macros -Wno-overlength-strings -Werror -Wold-style-definition
-Wc++-compat   -DHAVE_CONFIG_H -I. -Ilto -I/home/ahaas/gnu/gcc.git/gcc
-I/home/ahaas/gnu/gcc.git/gcc/lto -I/home/ahaas/gnu/gcc.git/gcc/../include
-I/home/ahaas/gnu/gcc.git/gcc/../libcpp/include
-I/export/home/arth/local/include -I/export/home/arth/local/include 
-I/home/ahaas/gnu/gcc.git/gcc/../libdecnumber
-I/home/ahaas/gnu/gcc.git/gcc/../libdecnumber/dpd -I../libdecnumber  
-I/usr/include/libelf -I/export/home/arth/local/include
/home/ahaas/gnu/gcc.git/gcc/lto/lto-lang.c -o lto/lto-lang.o
/home/ahaas/gnu/gcc.git/gcc/lto/lto-lang.c: In function 'lto_type_for_mode':
/home/ahaas/gnu/gcc.git/gcc/lto/lto-lang.c:951:1: internal compiler error: in
dwarf2out_frame_debug_adjust_cfa, at dwarf2out.c:1881
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.
make[3]: *** [lto/lto-lang.o] Error 1

The error itself is a gcc_assert() in dwarf2out.c:

gcc_assert (REGNO (XEXP (src, 0)) == cfa.reg)

Using 'git bisect' I was able to identify the revision which introduced the
failure:

4899856f3f2fdefaffa0d5355d8dae034da9ec26 is the first bad commit
commit 4899856f3f2fdefaffa0d5355d8dae034da9ec26
Author: bernds ber...@138bc75d-0d04-0410-961f-82ee72b054a4
Date:   Thu Sep 23 10:04:33 2010 +

PR rtl-optimization/44374
* basic-block.h (enum bb_flags): Add BB_MODIFIED.
* df-core.c (df_set_bb_dirty): Set it.
* ifcvt.c (find_memory): Remove function.
(dead_or_predicable): Use can_move_insns_across.
* df.h (can_move_insns_across): Declare function.
* cfgcleanup.c (block_was_dirty): New static variable.
(try_crossjump_bb, try_forward_edges): Test BB_MODIFIED flag rather
than df_get_bb_dirty.
(try_head_merge_bb): New static function.
(try_optimize_cfg): Call it.  Call df_analyze if block_was_dirty
is set.
* df-problems.c: Include target.h
(df_simulate_find_uses): New static function.
(MEMREF_NORMAL, MEMREF_VOLATILE): New macros.
(find_memory, find_memory_store): New static functions.
(can_move_insns_across): New function.
* Makefile.in (df-problems.o): Update dependencies.

testsuite/
PR rtl-optimization/44374
* gcc.target/arm/headmerge-1.c: New test.
* gcc.target/arm/headmerge-2.c: New test.
* gcc.target/i386/headmerge-1.c: New test.
* gcc.target/i386/headmerge-2.c: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/tr...@164552
138bc75d-0d04-0410-961f-82ee72b054a4

:04 04 8eba3de7802f571601cb7092cfd546609f24086f
c8b21579e48331ae0fa528fb89a228ea94211691 M  gcc

My last successful build was on Sep. 22:

$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/export/home/arth/local/libexec/gcc/i386-pc-solaris2.10/4.6.0/lto-wrapper
Target: i386-pc-solaris2.10
Configured with: /home/ahaas/gnu/gcc.git/configure
--prefix=/export/home/arth/local --enable-languages=c,c++,objc,fortran
--disable-nls --with-gmp=/export/home/arth/local
--with-mpfr=/export/home/arth/local --enable-checking=release
--enable-threads=posix --with-gnu-as --with-as=/export/home/arth/local/bin/as
--with-gnu-ld --with-ld=/export/home/arth/local/bin/ld
--enable-libstdcxx-pch=no --enable-objc-gc --build=i386-pc-solaris2.10
Thread model: posix
gcc version 4.6.0 20100922 (experimental) (GCC)


[Bug c++/45382] internal compiler error: tree code ‘call_expr’ is not supported in gimple streams

2010-10-14 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45382

--- Comment #4 from Richard Guenther rguenth at gcc dot gnu.org 2010-10-14 
15:31:42 UTC ---
Author: rguenth
Date: Thu Oct 14 15:31:36 2010
New Revision: 165471

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=165471
Log:
2010-10-14  Richard Guenther  rguent...@suse.de

PR lto/45382
* g++.dg/lto/20101014-2_0.C: New testcase.

Added:
trunk/gcc/testsuite/g++.dg/lto/20101014-2_0.C
Modified:
trunk/gcc/testsuite/ChangeLog


[Bug c++/45382] internal compiler error: tree code ‘call_expr’ is not supported in gimple streams

2010-10-14 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45382

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2010.10.14 15:33:17
  Known to work||4.6.0
 Ever Confirmed|0   |1
  Known to fail||

--- Comment #5 from Richard Guenther rguenth at gcc dot gnu.org 2010-10-14 
15:33:17 UTC ---
Works on trunk.


[Bug bootstrap/46018] [4.6 Regression] Bootstrap fails on i386-pc-solaris2.10

2010-10-14 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46018

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

 Target||i386-pc-solaris2.10
   Target Milestone|--- |4.6.0
Summary|Bootstrap fails on  |[4.6 Regression] Bootstrap
   |i386-pc-solaris2.10 |fails on
   ||i386-pc-solaris2.10


[Bug c++/43601] Enormous increase in DLL object files size in 4.5

2010-10-14 Thread davek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43601

--- Comment #36 from Dave Korn davek at gcc dot gnu.org 2010-10-14 15:37:34 
UTC ---
Hi everyone, sorry I've been busy working on LTO stuff for a bit but I haven't
forgotten this.

Before this discussion gets too heated, could Vadim and/or Cesar please add
some of the object files we've been discussing as attachments to this bug
report, so that we can all take a close look at why gcc's files are so much
bigger?  Thanks.

I think depending what we uncover this might be an enhancement request rather
than a bug, but we'll see.


[Bug c++/43601] Enormous increase in DLL object files size in 4.5

2010-10-14 Thread vz-gcc at zeitlins dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43601

--- Comment #37 from Vadim Zeitlin vz-gcc at zeitlins dot org 2010-10-14 
15:42:59 UTC ---
Created attachment 22037
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22037
appbase.cpp file from wxWidgets compiled with g++ 4.4


[Bug c++/43601] Enormous increase in DLL object files size in 4.5

2010-10-14 Thread vz-gcc at zeitlins dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43601

--- Comment #38 from Vadim Zeitlin vz-gcc at zeitlins dot org 2010-10-14 
15:44:23 UTC ---
Created attachment 22038
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22038
appbase.cpp file from wxWidgets compiled with g++ 4.5


[Bug c++/43601] Enormous increase in DLL object files size in 4.5

2010-10-14 Thread vz-gcc at zeitlins dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43601

Vadim Zeitlin vz-gcc at zeitlins dot org changed:

   What|Removed |Added

  Attachment #22037|0   |1
is obsolete||

--- Comment #39 from Vadim Zeitlin vz-gcc at zeitlins dot org 2010-10-14 
15:45:41 UTC ---
Created attachment 22039
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22039
appbase.cpp file from wxWidgets compiled with g++ 4.4

Replaces previous file which was uncompressed, sorry for the double post.


[Bug c++/43601] Enormous increase in DLL object files size in 4.5

2010-10-14 Thread vz-gcc at zeitlins dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43601

--- Comment #40 from Vadim Zeitlin vz-gcc at zeitlins dot org 2010-10-14 
15:47:36 UTC ---
(In reply to comment #36)
 could Vadim and/or Cesar please add
 some of the object files we've been discussing as attachments to this bug
 report, so that we can all take a close look at why gcc's files are so much
 bigger?

I attached 4.4 and 4.5 versions and can also add 3.4 one as well as MSVC9 build
of the same file, please let me know if this could be useful.

Thanks!


[Bug c/45969] [4.5/4.6 Regression] ICE in build_binary_op, at c-typeck.c:9833

2010-10-14 Thread jsm28 at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45969

--- Comment #3 from Joseph S. Myers jsm28 at gcc dot gnu.org 2010-10-14 
15:48:59 UTC ---
Author: jsm28
Date: Thu Oct 14 15:48:52 2010
New Revision: 165472

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=165472
Log:
PR c/45969
* c-typeck.c (build_binary_op): Don't try to compute a semantic
type with excess precision for boolean operations.

testsuite:
* gcc.c-torture/compile/pr45969-1.c: New test.

Added:
trunk/gcc/testsuite/gcc.c-torture/compile/pr45969-1.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/c-typeck.c
trunk/gcc/testsuite/ChangeLog


[Bug c++/43601] Enormous increase in DLL object files size in 4.5

2010-10-14 Thread davek at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43601

--- Comment #41 from Dave Korn davek at gcc dot gnu.org 2010-10-14 15:50:53 
UTC ---
(In reply to comment #40)
 (In reply to comment #36)
  could Vadim and/or Cesar please add
  some of the object files we've been discussing as attachments to this bug
  report, so that we can all take a close look at why gcc's files are so much
  bigger?
 
 I attached 4.4 and 4.5 versions and can also add 3.4 one as well as MSVC9 
 build
 of the same file, please let me know if this could be useful.
 
 Thanks!


  Yes please, I'm particularly interested in comparing the gcc files with the
MSVC ones.  (I'm going to be AFK for a few hours now and will look through them
this evening.)


[Bug tree-optimization/44913] [4.6 Regression] -ftree-vectorize causes FAIL: gcc.dg/pr44838.c execution test

2010-10-14 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44913

--- Comment #4 from Richard Guenther rguenth at gcc dot gnu.org 2010-10-14 
15:51:22 UTC ---
Author: rguenth
Date: Thu Oct 14 15:51:15 2010
New Revision: 165473

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=165473
Log:
2010-10-14  Richard Guenther  rguent...@suse.de

PR tree-optimization/44913
* tree-data-ref.c (disjoint_objects_p): Remove.
(dr_may_alias_p): Simplify.  Only hand the base object to
the alias-oracle.
* tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
some more trees, bail out instead of asserting.
(ptr_derefs_may_alias_p): Likewise.  Export.
(refs_may_alias_p_1): Handle STRING_CSTs.
* tree-ssa-alias.h (ptr_derefs_may_alias_p): Declare.

* gcc.dg/torture/pr44913.c: New testcase.

Added:
trunk/gcc/testsuite/gcc.dg/torture/pr44913.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-data-ref.c
trunk/gcc/tree-ssa-alias.c
trunk/gcc/tree-ssa-alias.h


[Bug tree-optimization/44913] [4.6 Regression] -ftree-vectorize causes FAIL: gcc.dg/pr44838.c execution test

2010-10-14 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44913

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #5 from Richard Guenther rguenth at gcc dot gnu.org 2010-10-14 
15:55:34 UTC ---
Fixed.


[Bug bootstrap/46018] [4.6 Regression] Bootstrap fails on i386-pc-solaris2.10

2010-10-14 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46018

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

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2010.10.14 15:56:50
 CC||hjl.tools at gmail dot com
 Ever Confirmed|0   |1

--- Comment #1 from H.J. Lu hjl.tools at gmail dot com 2010-10-14 15:56:50 
UTC ---
Please provide preprocessed file.


[Bug bootstrap/46018] [4.6 Regression] Bootstrap fails on i386-pc-solaris2.10

2010-10-14 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46018

--- Comment #2 from H.J. Lu hjl.tools at gmail dot com 2010-10-14 15:57:52 
UTC ---
Please also show the full options passed to cc1.


[Bug lto/45343] LTO doesn't work with Boost on MinGW

2010-10-14 Thread xunxun1982 at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45343

xunxun1982 xunxun1982 at gmail dot com changed:

   What|Removed |Added

 CC||xunxun1982 at gmail dot com

--- Comment #6 from xunxun1982 xunxun1982 at gmail dot com 2010-10-14 
15:57:43 UTC ---
I encountered similar problems above by using mingw gcc4.5.1 -flto to compile
the wxWidgets dll.


[Bug c++/43601] Enormous increase in DLL object files size in 4.5

2010-10-14 Thread vz-gcc at zeitlins dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43601

--- Comment #42 from Vadim Zeitlin vz-gcc at zeitlins dot org 2010-10-14 
16:01:20 UTC ---
Created attachment 22040
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22040
appbase.cpp file from wxWidgets compiled with g++ 3.4


[Bug c++/43601] Enormous increase in DLL object files size in 4.5

2010-10-14 Thread vz-gcc at zeitlins dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43601

--- Comment #43 from Vadim Zeitlin vz-gcc at zeitlins dot org 2010-10-14 
16:01:55 UTC ---
Created attachment 22041
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22041
appbase.cpp file from wxWidgets compiled with MSVC 9 (a.k.a. 2008)


[Bug c++/43601] Enormous increase in DLL object files size in 4.5

2010-10-14 Thread vz-gcc at zeitlins dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43601

Vadim Zeitlin vz-gcc at zeitlins dot org changed:

   What|Removed |Added

  Attachment #22041|0   |1
is obsolete||

--- Comment #44 from Vadim Zeitlin vz-gcc at zeitlins dot org 2010-10-14 
16:05:02 UTC ---
Created attachment 22042
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22042
appbase.cpp file from wxWidgets compiled with MSVC 9 (a.k.a. 2008)

Oops, sorry for another double post, I accidentally took a non-DLL version of
the file the first time, this one is the right one.


[Bug c++/45642] g++ 4.6 regression, c++0x, weird mismatch for arguments with forwarded declaration when attributes are involved

2010-10-14 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45642

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED

--- Comment #6 from Jason Merrill jason at gcc dot gnu.org 2010-10-14 
16:09:10 UTC ---
This seems to have been fixed by the patch for bug 45984.


[Bug c++/43601] Enormous increase in DLL object files size in 4.5

2010-10-14 Thread vz-gcc at zeitlins dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43601

--- Comment #45 from Vadim Zeitlin vz-gcc at zeitlins dot org 2010-10-14 
16:12:00 UTC ---
Here are the files.

Notice that about half of the size of the MSVC object file is taken by debug
information (/Zi option was used when compiling it) while all gcc versions
contain no debug information at all. More details about the file contents can
be obtained using dumpbin Microsoft utility which I'd be glad to run for you if
you don't have it. Here is just an overview for now:

Microsoft (R) COFF/PE Dumper Version 9.00.30729.01
Copyright (C) Microsoft Corporation.  All rights reserved.


Dump of file build/msw/vc_mswudll/base/appbase.obj

File Type: COFF OBJECT

  Summary

   4 .CRT$XCU
  29 .bss
 3E9 .data
   345D0 .debug$S
  50 .debug$T
68D2 .drectve
 E67 .rdata
 8BC .rdata$r
 178 .sxdata
8A34 .text
13D3 .text$x
  18 .text$yc
  14 .text$yd
14B4 .xdata$x


[Bug target/43129] Simplify global variable's address loading with option -fpic

2010-10-14 Thread stephen.clarke at st dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43129

Stephen Clarke stephen.clarke at st dot com changed:

   What|Removed |Added

 CC||stephen.clarke at st dot
   ||com

--- Comment #8 from Stephen Clarke stephen.clarke at st dot com 2010-10-14 
16:32:56 UTC ---
For arm instruction set, could you fold pc into the indexing
to save an instruction?

foo:
ldr r3, .L2// C
.LPIC0:
ldr r3, [r3,pc]// C
@ sp needed for prologue
ldr r2, [r3]
str r0, [r3]
mov r0, r2
bx  lr
.L3:
.align  2
.L2:
.word   ABS_ADDRESS_OF_GOT_ENTRY_FOR_i -(.LPIC0+4) // C


Re: [Bug target/43129] Simplify global variable's address loading with option -fpic

2010-10-14 Thread Ramana Radhakrishnan

On Thu, 2010-10-14 at 16:33 +, stephen.clarke at st dot com wrote:
 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43129
 
 Stephen Clarke stephen.clarke at st dot com changed:
 
What|Removed |Added
 
  CC||stephen.clarke at st dot
||com
 
 --- Comment #8 from Stephen Clarke stephen.clarke at st dot com 2010-10-14 
 16:32:56 UTC ---
 For arm instruction set, could you fold pc into the indexing
 to save an instruction?
 
 foo:
 ldr r3, .L2// C
 .LPIC0:
 ldr r3, [r3,pc]// C


You'll find that the ARM-ARM thinks that PC in any of the 3 locations in this 
instruction form is *unpredictable*. Thus this form of the instruction should 
not be used. 

cheers
Ramana



[Bug target/43129] Simplify global variable's address loading with option -fpic

2010-10-14 Thread ramana.radhakrishnan at arm dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43129

--- Comment #9 from ramana.radhakrishnan at arm dot com ramana.radhakrishnan 
at arm dot com 2010-10-14 16:39:26 UTC ---
On Thu, 2010-10-14 at 16:33 +, stephen.clarke at st dot com wrote:
 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43129
 
 Stephen Clarke stephen.clarke at st dot com changed:
 
What|Removed |Added
 
  CC||stephen.clarke at st dot
||com
 
 --- Comment #8 from Stephen Clarke stephen.clarke at st dot com 2010-10-14 
 16:32:56 UTC ---
 For arm instruction set, could you fold pc into the indexing
 to save an instruction?
 
 foo:
 ldr r3, .L2// C
 .LPIC0:
 ldr r3, [r3,pc]// C


You'll find that the ARM-ARM thinks that PC in any of the 3 locations in this
instruction form is *unpredictable*. Thus this form of the instruction should
not be used. 

cheers
Ramana


[Bug ada/46019] New: [4.3/4.4/4.5/4.6 Regression] x / (0x200000000ULL y) miscompilation with 32-bit HWI

2010-10-14 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46019

   Summary: [4.3/4.4/4.5/4.6 Regression] x / (0x2ULL  y)
miscompilation with 32-bit HWI
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Keywords: wrong-code
  Severity: normal
  Priority: P3
 Component: ada
AssignedTo: ja...@gcc.gnu.org
ReportedBy: ja...@gcc.gnu.org


extern void abort (void);

int
main (void)
{
  unsigned long long l = 0x400ULL;
  int n;
  for (n = 0; n  8; n++)
if (l / (0x2ULL  n) != (0x200  n))
  abort ();
  return 0;
}

is miscompiled on 32-bit HWI targets, e.g. i?86-linux, since PR26026 fix.


[Bug ada/46019] [4.3/4.4/4.5/4.6 Regression] x / (0x200000000ULL y) miscompilation with 32-bit HWI

2010-10-14 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46019

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |4.3.6


[Bug target/43129] Simplify global variable's address loading with option -fpic

2010-10-14 Thread stephen.clarke at st dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43129

--- Comment #10 from Stephen Clarke stephen.clarke at st dot com 2010-10-14 
17:01:47 UTC ---
OK, I can see that the ARM ARM states for Rm == PC then its unpredictable.

But for Rn == PC, I can only see that its unpredictable if W is 1
or P is 0  (I am looking at encoding A1).  So I am struggling to
understand that:

   ldr r3, [pc,r3]

is unpredictable.  Forgive me if I made a mistake, my knowledge of
ARM is a little rusty.


[Bug fortran/46020] New: Improve error string for BIND(C) diagnostic for len1 character return type

2010-10-14 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46020

   Summary: Improve error string for BIND(C) diagnostic for len1
character return type
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Keywords: diagnostic
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: bur...@gcc.gnu.org


The following is a misleading error message. The return type may be a character
string -- but only of length one!


FUNCTION F_X(A) bind(c,name='F_X')
1
Error: Return type of BIND(C) function 'f_x' at (1) cannot be a character
string

Example (taken from:
http://groups.google.com/group/comp.lang.fortran/browse_thread/thread/ee444a5894644f72#)

FUNCTION F_X(A) bind(c,name='F_X')
   CHARACTER*(*) F_X
END FUNCTION


NAG prints:
  Error: BIND(C) function F_X has assumed CHARACTER length
though the error for CHARACTER(len=4) is also not that helpful:
  Error: BIND(C) function F_X has CHARACTER(LEN=4)


Maybe one can keep the current string and only add with length  1, i.e.

Error: Return type of BIND(C) function 'f_x' at (1) cannot be a character
string with length  1


[Bug c++/43601] Enormous increase in DLL object files size in 4.5

2010-10-14 Thread vz-gcc at zeitlins dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43601

--- Comment #46 from Vadim Zeitlin vz-gcc at zeitlins dot org 2010-10-14 
17:09:05 UTC ---
Another data point after having a closer look at .drectve section in all of the
files: as previously noticed, 4.4 generates -export directives for 180
symbols while 4.5 generates them for 2724 symbols. MSVC however records
/EXPORT directives for 526 symbols when using PCH and 3764 symbols when not
using PCH. In the latter case the size of the object file also inflates to
3.1MB (with all sections growing, not just the .drectve one). So while it's
difficult to compare the sets of symbols because of the different name mangling
schemes used, it does seem that MSVC generates these directives for all of the
class members used, as 4.5 does and unlike 4.4. However many classes included
in 4.5 don't appear at all in the MSVC file when using PCH resulting in much
more reasonable object file sizes.

It still remains that the size of the DLL produced by MSVC is very small
compared to gcc. E.g. the wxbase DLL is 1.9MB with MSVC and 6.5MB with gcc 4.4
while the entire wxcore DLL is just 3.9MB with MSVC and 11.6MB with gcc 4.4,
without even mentioning 4.5 numbers. This is without using any fancy
optimizations (i.e. /LG and/or /LTCG MSVC options). And the size of the DLL
does _not_ depend on whether PCH was used or not (although the compilation
speed and disk consumption of the object files definitely do, by a factor of
more than 10 for both of them).

So maybe the new 4.5 behaviour is indeed more MSVC-like. But MSVC seems to
avoid generating ~80% of the stuff gcc creates when using PCH and its linker
still creates reasonably sized files in reasonable time even when the object
files contain a lot of redundant sections. But using MSVC strategy for gcc
currently is simply disastrous and I still don't understand why shouldn't the
change of r147799 be reverted now and be reapplied later when PCH handling is
improved and/or the linker is capable of dealing with it. If this is not a
regression I honestly don't know what counts as one.


[Bug c++/43601] Enormous increase in DLL object files size in 4.5

2010-10-14 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43601

--- Comment #47 from Andrew Pinski pinskia at gcc dot gnu.org 2010-10-14 
17:13:01 UTC ---
One should note that GCC's implementation of PCH is way different from MSVC's. 
So comparing with PCH is not the correct thing to do really.  PCH in GCC is
really preprocessed/sematicized headers rather than header that is an object
file  like in MSVC's case.


[Bug fortran/46020] Improve error string for BIND(C) diagnostic for len1 character return type

2010-10-14 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46020

--- Comment #1 from Tobias Burnus burnus at gcc dot gnu.org 2010-10-14 
17:14:45 UTC ---
Thinking of it again, one probably needs also NAGs error message as:

FUNCTION F_X(A) bind(c,name='F_X')
   CHARACTER*(*) F_X
END FUNCTION

...

interface
  FUNCTION F_X(A) bind(c,name='F_X')
 CHARACTER*(1) F_X
  END FUNCTION
end interface

is also invalid - even though the effective string length is one;

F2008 has: If the type is character, the length type parameter is
interoperable if and only if its value is one. [...]

[only interoperable] if it is of type character its length is not assumed or
declared by an expression that is not a constant expression.

Thus, one could think of handling the assumed length case explicitly. Or one
uses, e.g.

Error: Return type of BIND(C) function 'f_x' at (1) of character type must have
length 1


[Bug c++/43601] Enormous increase in DLL object files size in 4.5

2010-10-14 Thread vz-gcc at zeitlins dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43601

--- Comment #48 from Vadim Zeitlin vz-gcc at zeitlins dot org 2010-10-14 
17:29:46 UTC ---
(In reply to comment #47)
 One should note that GCC's implementation of PCH is way different from 
 MSVC's. 
 So comparing with PCH is not the correct thing to do really.

I understand this in theory but in practice nobody uses MSVC without PCH (and I
guess by now most people use PCH with gcc as well but this doesn't change
anything here, of course, as after this change gcc is unusable, with or without
PCH). Anyhow, notice that MSVC still manages to produce correctly-sized DLLs
even without using PCH.

And in any case while comparing with MSVC may be interesting, surely the most
urgent goal is to fix gcc to actually work and not to make it more similar to
MSVC at the price of breaking it completely? I just can't wrap my head around
your arguments, everything you say may be correct (except comment 6) but how do
you deduce from it that the current situation is fine and don't even want to
acknowledge this change for a bug and regression that it is is beyond me.


[Bug tree-optimization/46021] New: 3 tree-ssa tests XPASS almost everywhere

2010-10-14 Thread ro at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46021

   Summary: 3 tree-ssa tests XPASS almost everywhere
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: r...@gcc.gnu.org
Target: i386-pc-solaris2.*, sparc-sun-solaris2.*,
alpha-dec-osf5.1b, mips-sgi-irix6.5


Three tree-ssa tests started to XPASS on all of my targets between 20100520 and
20100708:

XPASS: gcc.dg/tree-ssa/20031106-3.c scan-tree-dump-times optimized link_error
0
XPASS: gcc.dg/tree-ssa/20040204-1.c scan-tree-dump-times optimized link_error
0
XPASS: gcc.dg/tree-ssa/fre-vce-1.c scan-tree-dump-times fre sv.i 2

If this is expected, either the xfail should be removed completely or adapted
to
remove that useless testsuite noise.


[Bug target/46022] New: [4.6 regression] gcc.dg/vect/vect-double-reduc-5.c FAILs on Solaris 10/x86 with gas

2010-10-14 Thread ro at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46022

   Summary: [4.6 regression] gcc.dg/vect/vect-double-reduc-5.c
FAILs on Solaris 10/x86 with gas
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: r...@gcc.gnu.org
  Host: i386-pc-solaris2.10
Target: i386-pc-solaris2.10
 Build: i386-pc-solaris2.10


Between 20100726 and 20100823, the gcc.dg/vect/vect-double-reduc-5.c execution
test started to FAIL on Solaris 10/x86 with GNU as (2.20.1) only.  With Sun as,
everything works fine.  This is a regression from the 4.5 branch.


[Bug target/46023] New: gcc.dg/vect/pr43430-2.c FAILs on Solaris 8 and 9/x86

2010-10-14 Thread ro at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46023

   Summary: gcc.dg/vect/pr43430-2.c FAILs on Solaris 8 and 9/x86
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: r...@gcc.gnu.org
  Host: i386-pc-solaris2.[89]
Target: i386-pc-solaris2.[89]
 Build: i386-pc-solaris2.[89]


On Solaris 8 and 9/x86, gcc.dg/vect/pr43430-2.c FAILs:

FAIL: gcc.dg/vect/pr43430-2.c scan-tree-dump-times vect vectorized 1 loops 1


[Bug fortran/46010] I/O: Namelist-reading bug

2010-10-14 Thread marco at hulten dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46010

--- Comment #5 from Marco van Hulten marco at hulten dot org 2010-10-14 
18:15:59 UTC ---
(In reply to comment #4)
 [...]
 The issue is really the .true. (T,true, .false., F, false). If the
 last item (in the namelist and in the derived type) is an integer or a string
 it works.

No, that doesn't seem to be the issue.  I tried both your minimal test case as
well as my test case, with an added character as well as an added number, but
all give the following result:

ma...@graviton testje $ gfortran -std=f2003 test.f90
ma...@graviton testje $ ./a.out 
NAMTOPTRC
 TRACER(1)%SNAME=Aa,
 TRACER(1)%LINI=T,
 TRACER(1)%GETAL=  1,
 TRACER(2)%SNAME=Bb,
 TRACER(2)%LINI=T,
 TRACER(2)%GETAL=  1,
 TRACER(3)%SNAME=Cc,
 TRACER(3)%LINI=T,
 TRACER(3)%GETAL=  1,
 /
ma...@graviton testje $ gfortran test.f90 
ma...@graviton testje $ ./a.out 
At line 13 of file test.f90 (unit = 99, file = 'nml.dat')
Fortran runtime error: Bad data for namelist object tracer%getal


[Bug c++/46024] New: g++.dg/warn/miss-format-1.C FAILs on Solaris 8 and 9

2010-10-14 Thread ro at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46024

   Summary: g++.dg/warn/miss-format-1.C FAILs on Solaris 8 and 9
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: r...@gcc.gnu.org
  Host: i386-pc-solaris2.[89], sparc-sun-solaris2.8
Target: i386-pc-solaris2.[89], sparc-sun-solaris2.8
 Build: i386-pc-solaris2.[89], sparc-sun-solaris2.8


Created attachment 22043
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=22043
preprocessed input (from Solaris 8/x86) for miss-format-1.C

The g++.dg/warn/miss-format-1.C FAILs on both Solaris 8 and 9/x86 and
Solaris 8/SPARC, but not on Solaris 9/SPARC:

i386-pc-solaris2.8:

FAIL: g++.dg/warn/miss-format-1.C printf attribute warning (test for warnings,
line 17)
FAIL: g++.dg/warn/miss-format-1.C printf attribute warning 2 (test for
warnings, line 42)
FAIL: g++.dg/warn/miss-format-1.C (test for excess errors)

Excess errors:
/vol/gcc/src/hg/trunk/local/gcc/testsuite/g++.dg/warn/miss-format-1.C:26:18:
error: 'vscanf' was not declared in this scope

i386-pc-solaris2.9:

FAIL: g++.dg/warn/miss-format-1.C printf attribute warning (test for warnings,
line 17)
FAIL: g++.dg/warn/miss-format-1.C printf attribute warning 2 (test for
warnings, line 42)

sparc-sun-solaris2.8:

FAIL: g++.dg/warn/miss-format-1.C (test for excess errors)

Excess errors:
/vol/gcc/src/hg/trunk/local/gcc/testsuite/g++.dg/warn/miss-format-1.C:26:18:
error: 'vscanf' was not declared in this scope

It seems strange to get that excess error even though there's a dg-error
covering exactly that situation.

But what's even more strange is that the Solaris 8 and 9/x86 compilers don't
warn for lines 17 and 42 for exactly the same preprocessed input that the
Solaris 8/SPARC compiler warns about:

s8sparc% gcc -Wmissing-format-attribute -S miss-format-1.ii
miss-format-1.ii: In function 'void foo(const char*, ...)':
miss-format-1.ii:123:19: warning: function might be possible candidate for
'gnu_printf' format attribute [-Wmissing-format-attribute]
miss-format-1.ii: In function 'void bar(const char*, ...)':
miss-format-1.ii:131:18: error: 'vscanf' was not declared in this scope
miss-format-1.ii: In function 'void vfoo(const char*, va_list)':
miss-format-1.ii:145:20: warning: function might be possible candidate for
'gnu_printf' format attribute [-Wmissing-format-attribute]
s9x86% gcc -Wmissing-format-attribute -S miss-format-1.ii
miss-format-1.s8x86.ii: In function 'void bar(const char*, ...)':
miss-format-1.s8x86.ii:131:18: error: 'vscanf' was not declared in this scope

I'd have expected such a warning to be target-independent.


[Bug target/46025] New: [4.6 regression] gcc.target/i386/pr38240.c FAILs on Solaris 8 and 9/x86

2010-10-14 Thread ro at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46025

   Summary: [4.6 regression] gcc.target/i386/pr38240.c FAILs on
Solaris 8 and 9/x86
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Keywords: ice-on-valid-code
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: r...@gcc.gnu.org
  Host: i386-pc-solaris2.[89]
Target: i386-pc-solaris2.[89]
 Build: i386-pc-solaris2.[89]


Between 20100722 and 20100823, gcc.target/i386/pr38240.c started to FAIL on
Solaris 8 and 9 x86:

FAIL: gcc.target/i386/pr38240.c
-Wl,-M,/vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.target/i386/clearcap.map
(internal compiler error)
FAIL: gcc.target/i386/pr38240.c
-Wl,-M,/vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.target/i386/clearcap.map
(test for excess errors)

/vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.target/i386/pr38240.c: In
function 'g':

/vol/gcc/src/hg/trunk/local/gcc/testsuite/gcc.target/i386/pr38240.c:8:21:
internal compiler error: in convert_move, at expr.c:326


  1   2   >