[PATCH] gcc mcount-nofp was Re: BUG: GCC-4.4.x changes the function frame on some functions

2009-11-20 Thread Andi Kleen
Steven Rostedt rost...@goodmis.org writes:

 And frame pointers do add a little overhead as well. Too bad the mcount
 ABI wasn't something like this:


   function:
   callmcount
   [...]

 This way, the function address for mcount would have been (%esp) and the
 parent address would be 4(%esp). Mcount would work without frame
 pointers and this whole mess would also become moot.

I did a patch to do this in x86 gcc some time ago. The motivation
was indeed the frame pointer overhead on Atom with tracing.

Unfortunately it also requires glibc changes (I did those too). For
compatibility and catching mistakes the new function was called
__mcount_nofp.

I haven't tried it with current gcc and last time I missed the 
gcc feature merge window with this.

But perhaps you find it useful. Of course it would need more
kernel changes to probe for the new option and handle it.

Here's the old patch. I haven't retested it with a current
gcc version, but I think it still applies at least.

If there's interest I can polish it up and submit formally.

-Andi


Index: gcc/doc/tm.texi
===
--- gcc/doc/tm.texi (revision 149140)
+++ gcc/doc/tm.texi (working copy)
@@ -1884,6 +1884,12 @@
 of words in each data entry.
 @end defmac
 
+...@defmac TARGET_FUNCTION_PROFILE
+Define if the target has a custom function_profiler function.
+The target should not set this macro, it is implicitely set from 
+the PROFILE_BEFORE_PROLOGUE macro.
+...@end defmac
+
 @node Registers
 @section Register Usage
 @cindex register usage
Index: gcc/doc/invoke.texi
===
--- gcc/doc/invoke.texi (revision 149140)
+++ gcc/doc/invoke.texi (working copy)
@@ -593,7 +593,7 @@
 -momit-leaf-frame-pointer  -mno-red-zone -mno-tls-direct-seg-refs @gol
 -mcmod...@var{code-model} -ma...@var{name} @gol
 -m32  -m64 -mlarge-data-thresho...@var{num} @gol
--mfused-madd -mno-fused-madd -msse2avx}
+-mfused-madd -mno-fused-madd -msse2avx -mmcount-nofp}
 
 @emph{IA-64 Options}
 @gccoptlist{-mbig-endian  -mlittle-endian  -mgnu-as  -mgnu-ld  -mno-pic @gol
@@ -11749,6 +11749,11 @@
 @opindex msse2avx
 Specify that the assembler should encode SSE instructions with VEX
 prefix.  The option @option{-mavx} turns this on by default.
+
+...@item -mmcount-nofp
+Don't force the frame counter with @option{-pg} function profiling.
+Instead call a new @code{__mcount_nofp} function before a stack 
+frame is set up.
 @end table
 
 These @samp{-m} switches are supported in addition to the above
Index: gcc/target.h
===
--- gcc/target.h(revision 149140)
+++ gcc/target.h(working copy)
@@ -1132,6 +1132,9 @@
*/
   bool arm_eabi_unwinder;
 
+  /* True when the function profiler code is outputted before the prologue. */
+  bool profile_before_prologue;
+
   /* Leave the boolean fields at the end.  */
 };
 
Index: gcc/final.c
===
--- gcc/final.c (revision 149140)
+++ gcc/final.c (working copy)
@@ -1520,10 +1520,8 @@
 
   /* The Sun386i and perhaps other machines don't work right
  if the profiling code comes after the prologue.  */
-#ifdef PROFILE_BEFORE_PROLOGUE
-  if (crtl-profile)
+  if (targetm.profile_before_prologue  crtl-profile)
 profile_function (file);
-#endif /* PROFILE_BEFORE_PROLOGUE */
 
 #if defined (DWARF2_UNWIND_INFO)  defined (HAVE_prologue)
   if (dwarf2out_do_frame ())
@@ -1565,10 +1563,8 @@
 static void
 profile_after_prologue (FILE *file ATTRIBUTE_UNUSED)
 {
-#ifndef PROFILE_BEFORE_PROLOGUE
-  if (crtl-profile)
+  if (!targetm.profile_before_prologue  crtl-profile)
 profile_function (file);
-#endif /* not PROFILE_BEFORE_PROLOGUE */
 }
 
 static void
Index: gcc/gcc.c
===
--- gcc/gcc.c   (revision 149140)
+++ gcc/gcc.c   (working copy)
@@ -797,6 +797,12 @@
 # define SYSROOT_HEADERS_SUFFIX_SPEC 
 #endif
 
+/* Target can override this to allow -pg/-fomit-frame-pointer together */
+#ifndef TARGET_PG_OPTION_SPEC
+#define TARGET_PG_OPTION_SPEC \
+%{pg:%{fomit-frame-pointer:%e-pg and -fomit-frame-pointer are incompatible}}
+#endif
+
 static const char *asm_debug;
 static const char *cpp_spec = CPP_SPEC;
 static const char *cc1_spec = CC1_SPEC;
@@ -866,8 +872,8 @@
 
 /* NB: This is shared amongst all front-ends, except for Ada.  */
 static const char *cc1_options =
-%{pg:%{fomit-frame-pointer:%e-pg and -fomit-frame-pointer are incompatible}}\
- %1 %{!Q:-quiet} -dumpbase %B %{d*} %{m*} %{a*}\
+ TARGET_PG_OPTION_SPEC
+ %1 %{!Q:-quiet} -dumpbase %B %{d*} %{m*} %{a*}\
  %{fcompare-debug-second:%:compare-debug-auxbase-opt(%b)} \
  %{!fcompare-debug-second:%{c|S:%{o*:-auxbase-strip %*}%{!o*:-auxbase 
%b}}}%{!c:%{!S:-auxbase %b}} \
  %{g*} %{O*} %{W*pedantic*} %{w} %{std*ansitrigraphs}\
Index: gcc/target-def.h

Re: BUG: GCC-4.4.x changes the function frame on some functions

2009-11-20 Thread Andrew Haley
Thomas Gleixner wrote:

 While testing various kernel configs we found out that the problem
 comes and goes. Finally I started to compare the gcc command line
 options and after some fiddling it turned out that the following
 minimal deltas change the code generator behaviour:
 
 Bad:  -march=pentium-mmx-Wa,-mtune=generic32
 Good: -march=i686-mtune=generic -Wa,-mtune=generic32
 Good: -march=pentium-mmx -mtune-generic -Wa,-mtune=generic32
 
 I'm not supposed to understand the logic behind that, right ?

I don't either.  I'm seeing:

timer_stats_update_stats:   
timer_stats_update_stats:
pushl   %edi  
leal8(%esp), %edi 
andl$-16, %esp
pushl   -4(%edi)  
pushl   %ebppushl   
%ebp
movl%esp, %ebp  movl
%esp, %ebp
pushl   %edi  | andl
$-16, %esp
pushl   %esi  | subl
$112, %esp
pushl   %ebx  | movl
%ebx, 100(%esp)
subl$108, %esp| movl
%esi, 104(%esp)
   movl
%edi, 108(%esp)
callmcount  call
mcount

where the only difference is -mtune=generic.  I'm investigating.

Andrew.



Call func address spill out

2009-11-20 Thread daniel tian
Hi,
 I have a problem about function call insn.
 in CALL  @LABEL, only can jump backward/forward 32k SPACE. So
if it overflows, the function symbol_ref could move a register, then
CALL Ri (i represent 0 ~ 15).

 But the question is gcc doesn't know the function symbol_ref 's
address before ld taking care.
 Now there is only one solution I could choose: to force all the
function call symbol_ref into register and CALL insn calls the
register.
 But I think this will cost more cpu time while routine is less
than 32k space. You know the instruction space is limited, so code
size becomes the key point.
 Can somebody give me some advice?
 Thanks very much.
 Best Wishes!


  daniel.tian


Re: BUG: GCC-4.4.x changes the function frame on some functions

2009-11-20 Thread Andrew Haley
Andrew Haley wrote:
 Thomas Gleixner wrote:
 
 While testing various kernel configs we found out that the problem
 comes and goes. Finally I started to compare the gcc command line
 options and after some fiddling it turned out that the following
 minimal deltas change the code generator behaviour:

 Bad:  -march=pentium-mmx-Wa,-mtune=generic32
 Good: -march=i686-mtune=generic -Wa,-mtune=generic32
 Good: -march=pentium-mmx -mtune-generic -Wa,-mtune=generic32

 I'm not supposed to understand the logic behind that, right ?
 
 I don't either.  I'm seeing:
 
 timer_stats_update_stats:   
 timer_stats_update_stats:
 pushl   %edi  
 leal8(%esp), %edi 
 andl$-16, %esp
 pushl   -4(%edi)  
 pushl   %ebppushl 
   %ebp
 movl%esp, %ebp  movl  
   %esp, %ebp
 pushl   %edi  | andl  
   $-16, %esp
 pushl   %esi  | subl  
   $112, %esp
 pushl   %ebx  | movl  
   %ebx, 100(%esp)
 subl$108, %esp| movl  
   %esi, 104(%esp)
movl  
   %edi, 108(%esp)
 callmcount  call  
   mcount
 
 where the only difference is -mtune=generic.  I'm investigating.

Forget that, I see from the gcc-bugs list that hj has tracked it down to
the use of DRAP, and for some reason the mtune options affect that.  He's
the best person to fix this.

Andrew.


Re: [PATCH] gcc mcount-nofp was Re: BUG: GCC-4.4.x changes the function frame on some functions

2009-11-20 Thread Steven Rostedt
On Fri, 2009-11-20 at 10:57 +0100, Andi Kleen wrote:
 Steven Rostedt rost...@goodmis.org writes:
 
  And frame pointers do add a little overhead as well. Too bad the mcount
  ABI wasn't something like this:
 
 
  function:
  callmcount
  [...]
 
  This way, the function address for mcount would have been (%esp) and the
  parent address would be 4(%esp). Mcount would work without frame
  pointers and this whole mess would also become moot.
 
 I did a patch to do this in x86 gcc some time ago. The motivation
 was indeed the frame pointer overhead on Atom with tracing.
 

Yes, I remember you talking about this but I don't remember how far it
went.



 Unfortunately it also requires glibc changes (I did those too). For
 compatibility and catching mistakes the new function was called
 __mcount_nofp.

Actually, could you change the name? I really hate the mcount name, it
is legacy and with a new feature, it should be abandoned. Something like
__fentry__ would be nicer.

 
 I haven't tried it with current gcc and last time I missed the 
 gcc feature merge window with this.
 
 But perhaps you find it useful. Of course it would need more
 kernel changes to probe for the new option and handle it.
 
 Here's the old patch. I haven't retested it with a current
 gcc version, but I think it still applies at least.
 
 If there's interest I can polish it up and submit formally.

I would definitely be interested, and I would also be willing to test
it.

Thanks!

-- Steve





GCC 4.5 is uncompilable

2009-11-20 Thread Piotr Wyderski
An attempt to build either gcc-trunk or the most recent
snapshot (20091119) with Cygwin (the build compiler
is either GCC 4.4.0 or 4.5-20090604), configured as:

$ ../configure --prefix=/opt/gcc-4.5-20091119 -v --enable-bootstrap --enable-ve
rsion-specific-runtime-libs --enable-shared --enable-shared-libgcc --with-gnu-l
d --with-gnu-as --enable-dwarf2-exceptions --disable-symvers --disable-nls --wi
th-arch=core2 --with-tune=generic --enable-threads=posix --enable-languages=c,c
++

fails with the following message:

[...]
 mv ./shlib/libgcc_s.dll.a.tmp ./shlib/libgcc_s.dll.a
/usr/bin/ld: unrecognized -a option `ware'
collect2: ld returned 1 exit status
make[3]: *** [libgcc_s.dll] Error 1
make[3]: Leaving directory `/home/piotr.wyderski/build/gcc-4.5-20091119/objdir/i
686-pc-cygwin/libgcc'
make[2]: *** [all-stage1-target-libgcc] Error 2
make[2]: Leaving directory `/home/piotr.wyderski/build/gcc-4.5-20091119/objdir'
make[1]: *** [stage1-bubble] Error 2
make[1]: Leaving directory `/home/piotr.wyderski/build/gcc-4.5-20091119/objdir'
make: *** [all] Error 2


Re: GCC 4.5 is uncompilable

2009-11-20 Thread Kai Tietz
2009/11/20 Piotr Wyderski piotr.wyder...@gmail.com:
 An attempt to build either gcc-trunk or the most recent
 snapshot (20091119) with Cygwin (the build compiler
 is either GCC 4.4.0 or 4.5-20090604), configured as:

 $ ../configure --prefix=/opt/gcc-4.5-20091119 -v --enable-bootstrap 
 --enable-ve
 rsion-specific-runtime-libs --enable-shared --enable-shared-libgcc 
 --with-gnu-l
 d --with-gnu-as --enable-dwarf2-exceptions --disable-symvers --disable-nls 
 --wi
 th-arch=core2 --with-tune=generic --enable-threads=posix 
 --enable-languages=c,c
 ++

 fails with the following message:

 [...]
  mv ./shlib/libgcc_s.dll.a.tmp ./shlib/libgcc_s.dll.a
 /usr/bin/ld: unrecognized -a option `ware'
 collect2: ld returned 1 exit status
 make[3]: *** [libgcc_s.dll] Error 1
 make[3]: Leaving directory 
 `/home/piotr.wyderski/build/gcc-4.5-20091119/objdir/i
 686-pc-cygwin/libgcc'
 make[2]: *** [all-stage1-target-libgcc] Error 2
 make[2]: Leaving directory 
 `/home/piotr.wyderski/build/gcc-4.5-20091119/objdir'
 make[1]: *** [stage1-bubble] Error 2
 make[1]: Leaving directory 
 `/home/piotr.wyderski/build/gcc-4.5-20091119/objdir'
 make: *** [all] Error 2


This error you get is more related to used binutils version.The
warning you get looks more like a cripled '-Wl,--tsaware'. Which
binutils version you are using?

Cheers,
Kai

-- 
|  (\_/) This is Bunny. Copy and paste
| (='.'=) Bunny into your signature to help
| ()_() him gain world domination


Re: GCC 4.5 is uncompilable

2009-11-20 Thread Piotr Wyderski
Kai Tietz wrote:

 This error you get is more related to used binutils version.The
 warning you get looks more like a cripled '-Wl,--tsaware'.

Thanks, that looks like a good explanation.

 Which binutils version you are using?

$ ld -v
GNU ld (GNU Binutils) 2.18.50.20080625

I'll try to upgrade binutils and then repeat the build process.

Best regards
Piotr Wyderski


Worth balancing the tree before scheduling?

2009-11-20 Thread Ian Bolton
From some simple experiments (see below), it appears as though GCC aims
to
create a lop-sided tree when there are constants involved (func1 below),
but a balanced tree when there aren't (func2 below).

Our assumption is that GCC likes having constants all near to each other
to
aid with tree-based optimisations, but I'm fairly sure that, when it
comes
to scheduling, it would be better to have a balanced tree, so sched has
more
choices about what to schedule next?

The impact of limiting sched's options can be seen if we look at the
pseudo-assembly produced by GCC for our architecture:

func1:
LSHIFT  $c3,$c1,3 # tmp137, a,
ADD $c2,$c2,$c3   # tmp138, b, tmp137
ADD $c1,$c2,$c1   #, tmp138, a

We think it would be better to avoid using the temporary:

func1:
ADD $c2,$c1,$c2 # tmp137, a, b
LSHIFT  $c1,$c1,3   # tmp138, a,
ADD $c1,$c2,$c1 # result, tmp137, tmp138

As it currently stands, sched doesn't have the option to do this because
its input (shown in func.c.172r.asmcons below) is arranged such that the
first add depends on the shift and the second add depends on the first
add.

If the tree were balanced, sched would have the option to do the add
first.
And, providing the logic was there in sched, we could make it choose to
schedule such that we limit the number of temporaries used.

Maybe one of the RTL passes prior to scheduling has the potential to
balance the tree/RTL, but just isn't on our architecture?

==
func.c:
--
int func1 (int a, int b)
{
  /* the original expression */
  return a + b + (a  3);
}
 

int func2 (int a, int b, int c)
{
  /* the original expression */
  return a + b + (a  c);
}
 

==

==
func.c.129t.supress_extend:
--
;; Function func1 (func1)
 
func1 (int a, int b)
{
bb 2:
  return (b + (a  3)) + a;
}

func2 (int a, int b, int c)
{
bb 2:
  return (b + a) + (a  c);
}

 
==

==
func.c.172r.asmcons:
--

;; Function func1 (func1)

;; Pred edge  ENTRY [100.0%]  (fallthru)
(note 5 1 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK)
 
(insn 2 5 3 2 func.c:2 (set (reg/v:SI 134 [ a ])
(reg:SI 1 $c1 [ a ])) 45 {*movsi} (expr_list:REG_DEAD (reg:SI 1
$c1 [ a ])
(nil)))
 
(note 3 2 4 2 NOTE_INSN_DELETED)
 
(note 4 3 7 2 NOTE_INSN_FUNCTION_BEG)
 
(insn 7 4 8 2 func.c:2 (set (reg:SI 137)
(ashift:SI (reg/v:SI 134 [ a ])
(const_int 3 [0x3]))) 80 {ashlsi3} (nil))
 
(insn 8 7 9 2 func.c:2 (set (reg:SI 138)
(plus:SI (reg:SI 2 $c2 [ b ])
(reg:SI 137))) 65 {*addsi3} (expr_list:REG_DEAD (reg:SI 137)
(expr_list:REG_DEAD (reg:SI 2 $c2 [ b ])
(nil
 

(note 9 8 14 2 NOTE_INSN_DELETED)
 

(insn 14 9 20 2 func.c:5 (set (reg/i:SI 1 $c1)
(plus:SI (reg:SI 138)
(reg/v:SI 134 [ a ]))) 65 {*addsi3} (expr_list:REG_DEAD
(reg:SI 138)
(expr_list:REG_DEAD (reg/v:SI 134 [ a ])
(nil
 

(insn 20 14 0 2 func.c:5 (use (reg/i:SI 1 $c1)) -1 (nil))

;; Function func2 (func2)

;; Pred edge  ENTRY [100.0%]  (fallthru)
(note 6 1 2 2 [bb 2] NOTE_INSN_BASIC_BLOCK)
 

(insn 2 6 3 2 func.c:8 (set (reg/v:SI 134 [ a ])
(reg:SI 1 $c1 [ a ])) 45 {*movsi} (expr_list:REG_DEAD (reg:SI 1
$c1 [ a ])
(nil)))
 

(note 3 2 4 2 NOTE_INSN_DELETED)
 

(note 4 3 5 2 NOTE_INSN_DELETED)
 

(note 5 4 8 2 NOTE_INSN_FUNCTION_BEG)
 

(insn 8 5 9 2 func.c:8 (set (reg:SI 138)
(plus:SI (reg:SI 2 $c2 [ b ])
(reg/v:SI 134 [ a ]))) 65 {*addsi3} (expr_list:REG_DEAD
(reg:SI 2 $c2 [ b ])
(nil)))
 

(insn 9 8 10 2 func.c:8 (set (reg:SI 139)
(ashift:SI (reg/v:SI 134 [ a ])
(reg:SI 3 $c3 [ c ]))) 80 {ashlsi3} (expr_list:REG_DEAD
(reg/v:SI 134 [ a ])
(expr_list:REG_DEAD (reg:SI 3 $c3 [ c ])
(nil
 

(note 10 9 15 2 NOTE_INSN_DELETED)
 

(insn 15 10 21 2 func.c:11 (set (reg/i:SI 1 $c1)
(plus:SI (reg:SI 138)
(reg:SI 139))) 65 {*addsi3} (expr_list:REG_DEAD (reg:SI 139)
(expr_list:REG_DEAD (reg:SI 138)
(nil
 

(insn 21 15 0 2 func.c:11 (use (reg/i:SI 1 $c1)) -1 (nil))

==

Cheers,
Ian


Re: Worth balancing the tree before scheduling?

2009-11-20 Thread David Edelsohn
On Fri, Nov 20, 2009 at 10:05 AM, Ian Bolton bol...@icerasemi.com wrote:
 From some simple experiments (see below), it appears as though GCC aims
 to
 create a lop-sided tree when there are constants involved (func1 below),
 but a balanced tree when there aren't (func2 below).

 Our assumption is that GCC likes having constants all near to each other
 to
 aid with tree-based optimisations, but I'm fairly sure that, when it
 comes
 to scheduling, it would be better to have a balanced tree, so sched has
 more
 choices about what to schedule next?

I think this would depend on the target architecture and instruction
set: CISC vs RISC, many registers vs few registers, etc.  I do not
believe that GCC intentionally is trying to optimize for either, but I
do not think there is a single, right answer.

David


Re: Worth balancing the tree before scheduling?

2009-11-20 Thread Richard Guenther
On Fri, Nov 20, 2009 at 4:18 PM, David Edelsohn dje@gmail.com wrote:
 On Fri, Nov 20, 2009 at 10:05 AM, Ian Bolton bol...@icerasemi.com wrote:
 From some simple experiments (see below), it appears as though GCC aims
 to
 create a lop-sided tree when there are constants involved (func1 below),
 but a balanced tree when there aren't (func2 below).

 Our assumption is that GCC likes having constants all near to each other
 to
 aid with tree-based optimisations, but I'm fairly sure that, when it
 comes
 to scheduling, it would be better to have a balanced tree, so sched has
 more
 choices about what to schedule next?

 I think this would depend on the target architecture and instruction
 set: CISC vs RISC, many registers vs few registers, etc.  I do not
 believe that GCC intentionally is trying to optimize for either, but I
 do not think there is a single, right answer.

Indeed.  I think the scheduler should maybe learn about
re-association possibilities - do existing papers cover that?

Richard.

 David



Re: Worth balancing the tree before scheduling?

2009-11-20 Thread Richard Earnshaw

On Fri, 2009-11-20 at 10:18 -0500, David Edelsohn wrote:
 On Fri, Nov 20, 2009 at 10:05 AM, Ian Bolton bol...@icerasemi.com wrote:
  From some simple experiments (see below), it appears as though GCC aims
  to
  create a lop-sided tree when there are constants involved (func1 below),
  but a balanced tree when there aren't (func2 below).
 
  Our assumption is that GCC likes having constants all near to each other
  to
  aid with tree-based optimisations, but I'm fairly sure that, when it
  comes
  to scheduling, it would be better to have a balanced tree, so sched has
  more
  choices about what to schedule next?
 
 I think this would depend on the target architecture and instruction
 set: CISC vs RISC, many registers vs few registers, etc.  I do not
 believe that GCC intentionally is trying to optimize for either, but I
 do not think there is a single, right answer.
 
 David

Hmm, GCC currently does tree reassociation in order to unbalance the
tree.  Apparently this gives better CSE -- see -fno-tree-reassoc

R.



Re: [PATCH][GIT PULL][v2.6.32] tracing/x86: Add check to detect GCC messing with mcount prologue

2009-11-20 Thread Steven Rostedt
Ingo, Thomas and Linus,

I know Thomas did a patch to force the -mtune=generic, but just in case
gcc decides to do something crazy again, this patch will catch it.

Should we try to get this in now?

-- Steve

On Fri, 2009-11-20 at 00:23 -0500, Steven Rostedt wrote:
 commit c7715fb611c69ac4b7f722a891de08b206fb7686
 Author: Steven Rostedt srost...@redhat.com
 Date:   Thu Nov 19 23:41:02 2009 -0500
 
 tracing/x86: Add check to detect GCC messing with mcount prologue
 
 Latest versions of GCC create a funny prologue for some functions.
 Instead of the typical:
 
   push   %ebp
   mov%esp,%ebp
   and$0xffe0,%esp
   [...]
   call   mcount
 
 GCC may try to align the stack before setting up the frame pointer
 register:
 
   push   %edi
   lea0x8(%esp),%edi
   and$0xffe0,%esp
   pushl  -0x4(%edi)
   push   %ebp
   mov%esp,%ebp
   [...]
   call   mcount
 
 This crazy code places a copy of the return address into the
 frame pointer. The function graph tracer uses this pointer to
 save and replace the return address of the calling function to jump
 to the function graph tracer's return handler, which will put back
 the return address. But instead instead of the typical return:
 
   mov%ebp,%esp
   pop%ebp
   ret
 
 The return of the function performs:
 
   lea-0x8(%edi),%esp
   pop%edi
   ret
 
 The function graph tracer return handler will not be called at the exit
 of the function, but the parent function will call it. Because we missed
 the return of the child function, the handler will replace the parent's
 return address with that of the child. Obviously this will cause a crash
 (Note, there is code to detect this case and safely panic the kernel).
 
 The kicker is that this happens to just a handful of functions.
 And only with certain gcc options.
 
 Compiling with:   -march=pentium-mmx
 will cause the problem to appear. But if you were to change
 pentium-mmx to i686 or add -mtune=generic, then the problem goes away.
 
 I first saw this problem when compiling with optimize for size.
 But it seems that various other options may cause this issue to arise.
 
 Instead of completely disabling the function graph tracer for i386 builds
 this patch adds a check to recordmcount.pl to make sure that all
 functions that contain a call to mcount start with push %ebp.
 If not, it will fail the compile and print out the nasty warning:
 
   CC  kernel/time/timer_stats.o
 
 
   Your version of GCC breaks the function graph tracer
   Please disable CONFIG_FUNCTION_GRAPH_TRACER
   Failed function was timer_stats_update_stats
 
 
 The script recordmcount.pl is given a new parameter do_check. If
 this is negative, the script will only perform this check without
 creating the mcount caller section. This will be executed for x86_32
 when CONFIG_FUNCTION_GRAPH_TRACER is enabled and CONFIG_DYNAMIC_FTRACE
 is not.
 
 If the arch is x86_32 and $do_check is greater than 1, it will perform
 the check while processing the mcount callers. If $do_check is 0, then
 no check will be performed. This is for non x86_32 archs and when
 compiling without CONFIG_FUNCTION_GRAPH_TRACER enabled, even on x86_32.
 
 Reported-by: Thomas Gleixner t...@linutronix.de
 LKML-Reference: 
 alpine.lfd.2.00.0911191423190.24...@localhost.localdomain
 Signed-off-by: Steven Rostedt rost...@goodmis.org




Re: [PATCH][GIT PULL][v2.6.32] tracing/x86: Add check to detect GCC messing with mcount prologue

2009-11-20 Thread H. Peter Anvin
On 11/20/2009 09:00 AM, Steven Rostedt wrote:
 Ingo, Thomas and Linus,
 
 I know Thomas did a patch to force the -mtune=generic, but just in case
 gcc decides to do something crazy again, this patch will catch it.
 
 Should we try to get this in now?
 

Sounds like a very good idea to me.

-hpa

-- 
H. Peter Anvin, Intel Open Source Technology Center
I work for Intel.  I don't speak on their behalf.



Re: Call func address spill out

2009-11-20 Thread Richard Henderson

On 11/20/2009 04:21 AM, daniel tian wrote:

  But the question is gcc doesn't know the function symbol_ref 's
address before ld taking care.
  Now there is only one solution I could choose: to force all the
function call symbol_ref into register and CALL insn calls the
register.
  But I think this will cost more cpu time while routine is less
than 32k space. You know the instruction space is limited, so code
size becomes the key point.
  Can somebody give me some advice?


The typical mechanism is to provide enough relocations into the
generated code such that the linker can relax the code to the
more efficient form.  The exact set of relocations that you will
need to provide are very dependent on both your ISA and ABI.

Typically these relocations mark the insns that perform the load
of the address into the register, and mark the call insn that uses
the register, and may tie the two relocations together so that
you are provided some amount of data flow information in the linker.

Grep 'bfd_elf.*_bfd_relax_section' binutils/bfd/*.c shows that
there are 26 targets that implement some form of linker relaxation.
Have a browse through and get some ideas for how you might want
to implement things for your target.

Do consider posting your proposed method to the binutils list,
so that folks can review your method and give you some feedback.


r~


Re: [PATCH][GIT PULL][v2.6.32] tracing/x86: Add check to detect GCC messing with mcount prologue

2009-11-20 Thread H. Peter Anvin
On 11/20/2009 11:46 AM, Steven Rostedt wrote:
 
 Yes a gcc test suite will help new instances of gcc. But we need to
 worry about the instances of gcc that people have on their desktops now.
 This test case will catch the discrepancy between gcc and the function
 graph tracer. I'm not 100% convince that just adding -mtune=generic will
 help in all cases. If we miss another instance, then the function graph
 tracer may crash someone's kernel.
 

Furthermore, for future gcc instances what we really want is the early
interception support anyway.

-hpa


Re: GCC 4.5 is uncompilable

2009-11-20 Thread Dave Korn
Piotr Wyderski wrote:
 Kai Tietz wrote:
 
 This error you get is more related to used binutils version.The
 warning you get looks more like a cripled '-Wl,--tsaware'.
 
 Thanks, that looks like a good explanation.

  Yes, I added this to HEAD recently

 Which binutils version you are using?
 
 $ ld -v
 GNU ld (GNU Binutils) 2.18.50.20080625
 
 I'll try to upgrade binutils and then repeat the build process.

  If that doesn't fix it please let me know.  BTW I'm currently bootstrapping
r.154370 and it's got as far as building the target libraries post stage 3
without any sign of this problem, so you should be ok.

cheers,
  DaveK



Re: Supporting decimal float on additional platforms

2009-11-20 Thread Rainer Orth
Joseph S. Myers jos...@codesourcery.com writes:

 On Wed, 18 Nov 2009, Rainer Orth wrote:

 be added on legacy platforms like IRIX and Tru64 UNIX, and even on
 Solaris probably won't show up until DFP is fully standardized.

 I'd have expected the Solaris maintainers to care more about whether 
 Solaris customers are asking for DFP support, than about whether it is an 
 ISO/IEC Technical Report Type 2 (as at present - TR 24732:2009 published 
 2009-01-05) or an International Standard.

I wasn't aware of that.  Buying the TR from ISO is prohibitive, to I
stayed with the (last?) draft, N1312 for now.  I've asked the Sun
compiler guys about their plans for decimal float support, but no answer
so far:


http://mail.opensolaris.org/pipermail/tools-compilers/2009-November/000907.html

 As Janis says, the psABI needs to be aware of decimal floating point, so 
 if there is any group or community for a particular target concerned with 
 its ABI for interoperability between multiple implementations, you should 
 work with them on establishing the ABI for decimal floating point for that 
 target.

While the i386 and amd64 psABIs already exist (although I haven't found
the i386 specification yet), for SPARC that would be SPARC
International, I think.  Since I expect neither SGI nor HP to implement
decimal float in libc on IRIX 6 or Tru64 UNIX, MIPS and Alpha are
irrelevant from my point of view.

 Much the same applies if anyone wishes to add fixed point (TR 18037) 
 support for more targets.

I'll have a look at the last draft (N1169) for now.  Right now, only
MIPS support is in GCC, so there seems to be less traction so far.

Thanks.
Rainer

-- 
-
Rainer Orth, Center for Biotechnology, Bielefeld University


Re: Supporting decimal float on additional platforms

2009-11-20 Thread Joseph S. Myers
On Fri, 20 Nov 2009, Rainer Orth wrote:

  Much the same applies if anyone wishes to add fixed point (TR 18037) 
  support for more targets.
 
 I'll have a look at the last draft (N1169) for now.  Right now, only
 MIPS support is in GCC, so there seems to be less traction so far.

Each of these extensions is aimed at a specific class of programs, and 
users of such programs are much more likely to use some processors than 
others - various embedded processors have fixed point instructions of one 
form or another (not necessarily all mapping neatly to the TR 18037 
types), while some Power and S390 processors have hardware support for 
decimal floating point.

The TRs may eventually result in those classes of programs becoming more 
portable, in which case people might eventually want to include free 
software using these extensions in general-purpose operating system 
distributions - which may drive porting the feature as people wish to 
build those distributions for many different processors - but the limited 
application domains for these features seem likely to exacerbate the 
chicken-and-egg effect that applies to any new language feature (no demand 
for the feature in compilers without applications using it, no 
applications using it without compilers implementing it).  Implementing a 
feature without having any applications for it is of course one way of 
addressing that effect, as is implementing a feature you'd like to use 
yourself in programs you write in future; it seems a fine improvement to 
the compiler to contribute as long as you work with any ABI maintainers to 
avoid it causing future compatibility problems.

(Though I made decimal floating point work on e500 processors - to 
eliminate the test failures seen in such configurations given that it's 
enabled by default for Power GNU/Linux and already worked for other Power 
processors - it's quite possible that no-one has ever used that 
functionality other than for testcases.  There were no ABI compatibility 
issues there since e500 uses the same ABI as soft-float Power processors.)

Note that the fixed point implementation for MIPS substantially slows down 
the build of libgcc for MIPS targets because of a huge number of libgcc 
functions for fixed point that need to be built, so people may not care 
for their libgcc builds being slowed down for other targets without any 
applications for the new feature.

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


GNU MPFR 2.4.2 Release Candidate 2

2009-11-20 Thread Vincent Lefevre
The release of GNU MPFR 2.4.2 (andouillette sauce moutarde
patch level 2) is imminent. Please help to make this release
as good as possible by downloading and testing this second
release candidate:

http://www.mpfr.org/mpfr-2.4.2/mpfr-2.4.2-rc2.tar.xz
http://www.mpfr.org/mpfr-2.4.2/mpfr-2.4.2-rc2.tar.bz2
http://www.mpfr.org/mpfr-2.4.2/mpfr-2.4.2-rc2.tar.gz
http://www.mpfr.org/mpfr-2.4.2/mpfr-2.4.2-rc2.zip

The MD5's:
7abdddf1d476cbe032c7dbe0a4a88413  mpfr-2.4.2-rc2.tar.bz2
def8c961b95f08f052b8e3bd2f8d2f1d  mpfr-2.4.2-rc2.tar.gz
5b3ced46cf3c4e2d13dc12e2cdcd49cb  mpfr-2.4.2-rc2.tar.xz
2cc5cb31e872a5cb04841a36adc1313f  mpfr-2.4.2-rc2.zip

The signatures:
http://www.mpfr.org/mpfr-2.4.2/mpfr-2.4.2-rc2.tar.xz.asc
http://www.mpfr.org/mpfr-2.4.2/mpfr-2.4.2-rc2.tar.bz2.asc
http://www.mpfr.org/mpfr-2.4.2/mpfr-2.4.2-rc2.tar.gz.asc
http://www.mpfr.org/mpfr-2.4.2/mpfr-2.4.2-rc2.zip.asc

Sorry for the delay between the first release candidate and the
second one. All the problems with the RC1 should now be fixed.

Changes from version 2.4.1 to version 2.4.2:
- Security fix in formatted output functions (buffer overflow).
- Formatted output functions: 6 is now the default value for
  empty precision field with %Rf.
- Better portability of configure script.
- Detection of intmax_t and uintmax_t types.
- Improved documentation: mpfr_get_z_exp, mpfr_strtofr, mpfr_get_str and
  formatted output functions.
- Improved message in case of assertion failure.
- Test coverage: 97.0% lines of code.
- Updated tcmp_ld test to really test the long double.
- Some documentation files are installed in $docdir.
- Removed mpfr_init_cache (unused and undocumented function).
- Bug fixes.

Please send success and failure reports with ./config.guess output
to m...@loria.fr.

If no problems are found, GNU MPFR 2.4.2 should be released
around 2009-11-30.

Regards,

-- 
Vincent Lefèvre vinc...@vinc17.net - Web: http://www.vinc17.net/
100% accessible validated (X)HTML - Blog: http://www.vinc17.net/blog/
Work: CR INRIA - computer arithmetic / Arénaire project (LIP, ENS-Lyon)


Re: GCC 4.5 is uncompilable

2009-11-20 Thread Richard Guenther
On Fri, Nov 20, 2009 at 9:06 PM, Dave Korn
dave.korn.cyg...@googlemail.com wrote:
 Piotr Wyderski wrote:
 Kai Tietz wrote:

 This error you get is more related to used binutils version.The
 warning you get looks more like a cripled '-Wl,--tsaware'.

 Thanks, that looks like a good explanation.

  Yes, I added this to HEAD recently

 Which binutils version you are using?

 $ ld -v
 GNU ld (GNU Binutils) 2.18.50.20080625

 I'll try to upgrade binutils and then repeat the build process.

  If that doesn't fix it please let me know.  BTW I'm currently bootstrapping
 r.154370 and it's got as far as building the target libraries post stage 3
 without any sign of this problem, so you should be ok.

You should add the minimal required binutils version for cycwin to the
install section
of the manual.

Richard.


Re: GNU MPFR 2.4.2 Release Candidate 2

2009-11-20 Thread Paolo Carlini
On 11/20/2009 11:58 PM, Vincent Lefevre wrote:
 The release of GNU MPFR 2.4.2 (andouillette sauce moutarde
   
Humm, not to all tastes... ;)

Paolo.


[Bug tree-optimization/42108] [4.4/4.5 Regression] Vectorizer cannot deal with PAREN_EXPR gracefully, 50% performance regression

2009-11-20 Thread sfilippone at uniroma2 dot it


--- Comment #8 from sfilippone at uniroma2 dot it  2009-11-20 08:32 ---
(In reply to comment #6)
 Richard Guenther wrote:
 
  Well, within eval there's nothing really obvious to me.  The
  innermost loop is exactly the same:
 
 But it is a very inefficient way of vectorizing, because the inner loop's body
 is either executed twice or three times per outer loop (depending on the value
 of i).
 
While I agree that I would code in a different way, still there is the change
in compiler's behaviour. Although comment 7 indicates it's probably only at
64bits


-- 


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



[Bug libstdc++/38875] parallel fill and copy in the parallel version of libstdc++

2009-11-20 Thread singler at gcc dot gnu dot org


--- Comment #14 from singler at gcc dot gnu dot org  2009-11-20 09:53 
---
Created an attachment (id=19064)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=19064action=view)
Functional patch for parallel fill and fill_n.


-- 

singler at gcc dot gnu dot org changed:

   What|Removed |Added

  Attachment #19053|0   |1
is obsolete||


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



[Bug libstdc++/38875] parallel fill and copy in the parallel version of libstdc++

2009-11-20 Thread singler at gcc dot gnu dot org


--- Comment #15 from singler at gcc dot gnu dot org  2009-11-20 09:56 
---
There is slowdown, also for large inputs, for the most simple case, namely
filling constant integer values.  If assignment is more expensive, thing will
get better.  Please try with your application.


-- 

singler at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|WAITING |ASSIGNED
   Last reconfirmed|2009-01-16 15:51:05 |2009-11-20 09:56:12
   date||


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



[Bug c++/29017] %s substituted with different untranslated words can't be properly translated

2009-11-20 Thread paolo at gcc dot gnu dot org


--- Comment #2 from paolo at gcc dot gnu dot org  2009-11-20 10:05 ---
Subject: Bug 29017

Author: paolo
Date: Fri Nov 20 10:05:37 2009
New Revision: 154360

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=154360
Log:
/cp
2009-11-20  Shujing Zhao  pearly.z...@oracle.com

PR c++/29017
* cp-tree.h (composite_pointer_operation): New type.
(composite_pointer_type): Adjust prototype with new argument.
* typeck.c (composite_pointer_type): Accept
composite_pointer_operation as argument and emit diagnostic to be
visible to gettext and checked at compile time.
(composite_pointer_type_r): Likewise.
(common_pointer_type): Update call to composite_pointer_type.
(cp_build_binary_op): Likewise.
* call.c (build_conditional_expr): Likewise.

/testsuite
2009-11-20  Shujing Zhao  pearly.z...@oracle.com

* g++.old-deja/g++.jason/rfg20.C: Make expected dg-error strings
explicit.
* g++.old-deja/g++.rfg/00321_01-.C: Likewise.
* g++.old-deja/g++.rfg/00324_02-.C: Likewise.
* g++.old-deja/g++.law/typeck1.C: Likewise.
* g++.old-deja/g++.bugs/900324_02.C: Likewise.
* g++.dg/conversion/ptrmem9.C: Likewise.
* g++.dg/expr/cond2.C: Likewise.

Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/call.c
trunk/gcc/cp/cp-tree.h
trunk/gcc/cp/typeck.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/conversion/ptrmem9.C
trunk/gcc/testsuite/g++.dg/expr/cond2.C
trunk/gcc/testsuite/g++.old-deja/g++.bugs/900324_02.C
trunk/gcc/testsuite/g++.old-deja/g++.jason/rfg20.C
trunk/gcc/testsuite/g++.old-deja/g++.law/typeck1.C
trunk/gcc/testsuite/g++.old-deja/g++.rfg/00321_01-.C
trunk/gcc/testsuite/g++.old-deja/g++.rfg/00324_02-.C


-- 


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



[Bug target/42113] [4.3/4.4/4.5 Regression] Internal Compiler error with -O3, breaking commit known

2009-11-20 Thread ubizjak at gmail dot com


--- Comment #3 from ubizjak at gmail dot com  2009-11-20 10:06 ---
Both files compile OK with 4.5 cross from x86_64-pc-linux-gnu.

Probably a target specific patch should be backported from mainline to 4.3 and
4.4 branches.


-- 


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



[Bug c++/29017] %s substituted with different untranslated words can't be properly translated

2009-11-20 Thread paolo dot carlini at oracle dot com


--- Comment #3 from paolo dot carlini at oracle dot com  2009-11-20 10:07 
---
Fixed for 4.5.0.


-- 

paolo dot carlini at oracle dot com changed:

   What|Removed |Added

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


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




[Bug target/42113] [4.3/4.4/4.5 Regression] Internal Compiler error with -O3, breaking commit known

2009-11-20 Thread ubizjak at gmail dot com


--- Comment #4 from ubizjak at gmail dot com  2009-11-20 10:42 ---
Confirmed with 4.4 cross.


-- 

ubizjak at gmail dot com changed:

   What|Removed |Added

 CC|ubizjak at gmail dot com|
 AssignedTo|unassigned at gcc dot gnu   |ubizjak at gmail dot com
   |dot org |
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2009-11-20 10:42:41
   date||


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



[Bug rtl-optimization/42116] New: ice on valid code (unrecognizable insn)

2009-11-20 Thread ltuikov at yahoo dot com
Compiling an ARC cross compiler gives ICE:

[lu...@localhost gcc]$/home/luben/ware/arc_gcc_rel2.2/gcc/build/./gcc/xgcc -v
-save-temps -B/home/luben/ware/arc_gcc_rel2.2/gcc/build/./gcc/ -nostdinc
-B/home/luben/ware/arc_gcc_rel2.2/gcc/build/arc-elf32/newlib/ -isystem
/home/luben/ware/arc_gcc_rel2.2/gcc/build/arc-elf32/newlib/targ-include
-isystem /home/luben/ware/arc_gcc_rel2.2/gcc/src/newlib/libc/sys/arc/sys
-isystem /home/luben/ware/arc_gcc_rel2.2/gcc/src/newlib/libc/include
-B/opt/arc-tools/arc-elf32/bin/ -B/opt/arc-tools/arc-elf32/lib/ -isystem
/opt/arc-tools/arc-elf32/include -isystem /opt/arc-tools/arc-elf32/sys-include
-isystem ../../src/gcc/config/arc/gmon -O2 -Wall -g  -DIN_GCC -DCROSS_COMPILE  
-W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes
-Wold-style-definition  -isystem ./include   -mno-sdata -I. -I.
-I../../src/gcc -I../../src/gcc/. -I../../src/gcc/../include
-I../../src/gcc/../libcpp/include  -I../../src/gcc/../libdecnumber
-I../libdecnumber -c -o gmon.o ../../src/gcc/config/arc/gmon/gmon.c
-Wno-extra # suppress inane warning about missing initializer.
Reading specs from /home/luben/ware/arc_gcc_rel2.2/gcc/build/./gcc/specs
Target: arc-elf32
Configured with: ../src/configure --prefix=/opt/arc-tools --target=arc-elf32
--program-prefix=arc- --with-build-time-tools=/opt/arc-tools/bin --with-newlib
--with-headers --enable-multilib --enable-languages=c,c++
Thread model: single
gcc version 4.2.1 (ARC_2.2)
 /home/luben/ware/arc_gcc_rel2.2/gcc/build/./gcc/cc1 -E -quiet -nostdinc -v -I.
-I. -I../../src/gcc -I../../src/gcc/. -I../../src/gcc/../include
-I../../src/gcc/../libcpp/include -I../../src/gcc/../libdecnumber
-I../libdecnumber -iprefix
/home/luben/ware/arc_gcc_rel2.2/gcc/build/gcc/../lib/gcc/arc-elf32/4.2.1/
-isystem /home/luben/ware/arc_gcc_rel2.2/gcc/build/./gcc/include -D__A5__
-DIN_GCC -DCROSS_COMPILE -isystem
/home/luben/ware/arc_gcc_rel2.2/gcc/build/arc-elf32/newlib/targ-include
-isystem /home/luben/ware/arc_gcc_rel2.2/gcc/src/newlib/libc/sys/arc/sys
-isystem /home/luben/ware/arc_gcc_rel2.2/gcc/src/newlib/libc/include -isystem
/opt/arc-tools/arc-elf32/include -isystem /opt/arc-tools/arc-elf32/sys-include
-isystem ../../src/gcc/config/arc/gmon -isystem ./include
../../src/gcc/config/arc/gmon/gmon.c -mno-sdata -W -Wall -Wwrite-strings
-Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition -Wno-extra
-fworking-directory -O2 -fpch-preprocess -o gmon.i
ignoring nonexistent directory
/home/luben/ware/arc_gcc_rel2.2/gcc/build/arc-elf32/newlib/targ-include
ignoring nonexistent directory /opt/arc-tools/arc-elf32/include
ignoring nonexistent directory /opt/arc-tools/arc-elf32/sys-include
ignoring duplicate directory ./include
ignoring duplicate directory .
ignoring duplicate directory ../../src/gcc/.
#include ... search starts here:
#include ... search starts here:
 .
 ../../src/gcc
 ../../src/gcc/../include
 ../../src/gcc/../libcpp/include
 ../../src/gcc/../libdecnumber
 ../libdecnumber
 /home/luben/ware/arc_gcc_rel2.2/gcc/build/./gcc/include
 /home/luben/ware/arc_gcc_rel2.2/gcc/src/newlib/libc/sys/arc/sys
 /home/luben/ware/arc_gcc_rel2.2/gcc/src/newlib/libc/include
 ../../src/gcc/config/arc/gmon
End of search list.
 /home/luben/ware/arc_gcc_rel2.2/gcc/build/./gcc/cc1 -fpreprocessed gmon.i
-quiet -dumpbase gmon.c -mno-sdata -auxbase-strip gmon.o -g -O2 -W -Wall
-Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition
-Wno-extra -version -o gmon.s
GNU C version 4.2.1 (ARC_2.2) (arc-elf32)
compiled by GNU C version 4.4.2.
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 4a0a315b8c704b68e64bbad6f09259fc
../../src/gcc/config/arc/gmon/gmon.c: In function '__monstartup':
../../src/gcc/config/arc/gmon/gmon.c:197: error: unrecognizable insn:
(insn 38 37 39 3 ../../src/gcc/config/arc/gmon/gmon.c:137 (set (reg:SI 180)
(const_int -1 [0x])) -1 (nil)
(nil))
../../src/gcc/config/arc/gmon/gmon.c:197: internal compiler error: in
extract_insn, at recog.c:2077
Please submit a full bug report,
with preprocessed source if appropriate.
See URL:http://gcc.gnu.org/bugs.html for instructions.


-- 
   Summary: ice on valid code (unrecognizable insn)
   Product: gcc
   Version: 4.2.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: rtl-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: ltuikov at yahoo dot com


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



[Bug rtl-optimization/42116] ice on valid code (unrecognizable insn)

2009-11-20 Thread ltuikov at yahoo dot com


--- Comment #1 from ltuikov at yahoo dot com  2009-11-20 10:56 ---
Created an attachment (id=19065)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=19065action=view)
Preprocessed source code


-- 


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



[Bug rtl-optimization/42116] ice on valid code (unrecognizable insn)

2009-11-20 Thread ltuikov at yahoo dot com


--- Comment #2 from ltuikov at yahoo dot com  2009-11-20 10:57 ---
Created an attachment (id=19066)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=19066action=view)
Assembly output


-- 


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



[Bug middle-end/42110] [4.5 Regression] ICE with inlining

2009-11-20 Thread rguenth at gcc dot gnu dot org


--- Comment #1 from rguenth at gcc dot gnu dot org  2009-11-20 10:58 ---
Honza?


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||hubicka at gcc dot gnu dot
   ||org
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2009-11-20 10:58:05
   date||


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



[Bug target/42113] [4.3/4.4 Regression] Internal Compiler error with -O3, breaking commit known

2009-11-20 Thread rguenth at gcc dot gnu dot org


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

   Priority|P3  |P4
Summary|[4.3/4.4/4.5 Regression]|[4.3/4.4 Regression]
   |Internal Compiler error with|Internal Compiler error with
   |-O3, breaking commit known  |-O3, breaking commit known
   Target Milestone|--- |4.4.3


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



[Bug rtl-optimization/42116] ice on valid code (unrecognizable insn)

2009-11-20 Thread rguenth at gcc dot gnu dot org


--- Comment #3 from rguenth at gcc dot gnu dot org  2009-11-20 11:01 ---
GCC 4.2 is no longer maintained, please try a newer release.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 GCC target triplet||arc-elf32


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



[Bug c++/42060] [4.4/4.5 Regression] [c++0x] ICE throwing array with initializer list

2009-11-20 Thread paolo dot carlini at oracle dot com


-- 

paolo dot carlini at oracle dot com changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |paolo dot carlini at oracle
   |dot org |dot com
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2009-11-20 11:14:18
   date||


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



[Bug rtl-optimization/42116] ice on valid code (unrecognizable insn)

2009-11-20 Thread ltuikov at yahoo dot com


--- Comment #4 from ltuikov at yahoo dot com  2009-11-20 11:24 ---
The source I'm trying to compile I got directly from arc. I'll try 4.4.2 from
GNU.


-- 


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



[Bug middle-end/41883] [4.5 Regression] ICE from '-O -fprofile-arcs -fsched2-use-superblocks -ftree-vrp -fschedule-insns2 -freorder-blocks'

2009-11-20 Thread reichelt at gcc dot gnu dot org


--- Comment #2 from reichelt at gcc dot gnu dot org  2009-11-20 12:23 
---
Confirmed. Reduced testcase (crashes with -fprofile-arcs
-fsched2-use-superblocks -fschedule-insns2 -freorder-blocks -O):


int foo(int i)
{
  if (i)
return 0;
  __builtin_alloca(4);
  return 0;
}



-- 

reichelt at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||reichelt at gcc dot gnu dot
   ||org
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Keywords||ice-on-valid-code
   Last reconfirmed|-00-00 00:00:00 |2009-11-20 12:23:29
   date||


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



[Bug tree-optimization/42117] New: VRP fails to get rid of compares

2009-11-20 Thread krebbel at gcc dot gnu dot org
The vrp47 testcase currently fails on i386 and S/390.  The ssa code before vrp
looks different for both compared to x86_64 due to a different value
returned by BRANCH_COST. (Branches on S/390 are relatively cheap due
to a sophisticated branch prediction unit.)  Therefore during
gimplification fold_truthop (line 5866) uses more branches for
function h in vrp47.c than the x86_64 variant.
The problem can also be reproduced on x86 when compiling for a cpu with low
branch costs defined in i386.c as e.g. -march=i386.

int h(int x, int y)
{
  if ((x = 0  x = 1)  (y = 0  y = 1))
return x  y;
  else
return -1;
}

Compile the testcase above with:
cc1 -m32 -O2 vrp47.c -fdump-tree-vrp -march=i386

The vrp pass is not able to get rid of the comparisons in this case
(069t.vrp1 from i386):

h (int x, int y)
{
  int D.2021;
  unsigned int y.1;
  unsigned int x.0;

bb 2:
  x.0_4 = (unsigned int) x_3(D);
  if (x.0_4 = 1)
goto bb 3;
  else
goto bb 7;

bb 3:
  y.1_6 = (unsigned int) y_5(D);
  if (y.1_6 = 1)
goto bb 4;
  else
goto bb 7;

bb 4:
  if (x_3(D) != 0)
goto bb 5;
  else
goto bb 6;

bb 5:
  if (y_5(D) != 0)
goto bb 7;
  else
goto bb 6;

bb 6:

bb 7:
  # D.2021_1 = PHI 0(6), -1(3), -1(2), 1(5)
  return D.2021_1;

}


-- 
   Summary: VRP fails to get rid of compares
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Keywords: missed-optimization
  Severity: normal
  Priority: P3
 Component: tree-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: krebbel at gcc dot gnu dot org
 GCC build triplet: i386-gnu-linux, s390x-ibm-linux
  GCC host triplet: i386-gnu-linux, s390x-ibm-linux
GCC target triplet: i386-gnu-linux, s390x-ibm-linux


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



[Bug target/42113] [4.3/4.4 Regression] Internal Compiler error with -O3, breaking commit known

2009-11-20 Thread ubizjak at gmail dot com


--- Comment #5 from ubizjak at gmail dot com  2009-11-20 12:58 ---
This reduced testcase fails also on 4.5:

--cut here--
int make_file (int a, int b)
{
  int foo = a * sizeof (int);

  if (b)
foo += sizeof (int);

  return foo;
}
--cut here--


-- 


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



[Bug tree-optimization/42117] VRP should do if-conversion

2009-11-20 Thread rguenth at gcc dot gnu dot org


--- Comment #1 from rguenth at gcc dot gnu dot org  2009-11-20 13:12 ---
Confirmed.  We do see

x_2: [0, 1]  EQUIVALENCES: { x_3(D) } (1 elements)
y_11: [0, 1]  EQUIVALENCES: { y_5(D) } (1 elements)

but have no code that actually makes use of this information in

bb 4:
  if (x_3(D) != 0)
goto bb 5;
  else
goto bb 6;

bb 5:
  if (y_5(D) != 0)
goto bb 7;
  else
goto bb 6;

bb 6:

bb 7:
  # D.2047_1 = PHI 0(6), -1(3), -1(2), 1(5)
  return D.2047_1;

which we want to if-convert to

bb 4:
  tmp = x_3  y_5;

bb 7:
  # D.2047_1 = PHI tmp(4), -1(3), -1(2)

but there is no code in VRP that does if-conversion.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

   Severity|normal  |enhancement
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2009-11-20 13:12:34
   date||
Summary|VRP fails to get rid of |VRP should do if-conversion
   |compares|


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



[Bug fortran/42118] New: Slow forall

2009-11-20 Thread gretsov at gmail dot com
I think that ‘forall’ statement must be at least as fast as equivalent
‘do-…-end do’ construction.
But the next program (variant of LU-decomposition) shows that fragment
containing ‘forall’ statement is approximately at 2.5(!) times slower then
fragment with ‘do-end do’.

program test

   implicit none

integer, parameter :: n = 2000
integer i, j
double precision, dimension (n, n) :: a, a1
double precision, dimension (n) :: work
real time_begin, time_end
integer, dimension(1) :: max_loc
intrinsic random_number, maxloc, CPU_TIME

call random_number(a)
a1=a
CALL CPU_TIME(time_begin)
do i = 1, n-1
max_loc = maxloc(abs(a(i:,i)))
j = max_loc(1) + i - 1
if (a(j,i) == 0.0) stop 'Zero pivot'
if (i /= j) then 
work(i:n) = a(i,i:n)
a(i,i:n) = a(j,i:n)
a(j,i:n) = work(i:n)
end if
a(i+1:,i) = a(i+1:,i) / a(i,i)
do j = i+1, n
a(i+1:,j) = a(i+1:,j) - a(i,j) * a(i+1:,i)
end do  
end do
CALL CPU_TIME(time_end)
print *, 'Time of operation was ', time_end - time_begin, ' seconds'

a=a1
CALL CPU_TIME(time_begin)
do i = 1, n-1
max_loc = maxloc(abs(a(i:,i))) 
j = max_loc(1) + i - 1 
if (a(j,i) == 0.0) stop 'Zero pivot'
if (i /= j) then 
work(i:n) = a(i,i:n)
a(i,i:n) = a(j,i:n)
a(j,i:n) = work(i:n)
end if
a(i+1:,i) = a(i+1:,i) / a(i,i)
forall (j = i+1:n) a(i+1:,j) = a(i+1:,j) - a(i,j) * a(i+1:,i)  
end do
CALL CPU_TIME(time_end)
print *, 'Time of operation was ', time_end - time_begin, ' seconds'

end program test

GCC version 4.4.2. Windows Vista SP2, CPU: Intel Core 2 Quad Q6600, RAM: 3 GB

Gfortran –O3 file_name.f95


-- 
   Summary: Slow forall
   Product: gcc
   Version: 4.4.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: gretsov at gmail dot com


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



[Bug target/42113] [4.3/4.4 Regression] Internal Compiler error with -O3, breaking commit known

2009-11-20 Thread ubizjak at gmail dot com


--- Comment #6 from ubizjak at gmail dot com  2009-11-20 13:40 ---
Created an attachment (id=19067)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=19067action=view)
patch to fix mode of scratch register in *cmp_s{add,sub}_si{,di}

This patch fixes wrong modes of scratch register in *cmp_s{add,sub}_si{,di}
patterns.


-- 


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



[Bug tree-optimization/42108] [4.4/4.5 Regression] Vectorizer cannot deal with PAREN_EXPR gracefully, 50% performance regression

2009-11-20 Thread dominiq at lps dot ens dot fr


--- Comment #9 from dominiq at lps dot ens dot fr  2009-11-20 13:45 ---
I am rather confused by some comments:

(1) Although I am not fluent with x86 assembly, I am pretty sure that no code
in eval is vectorized (assembly taken from this pr or from the original post
http://gcc.gnu.org/ml/fortran/2009-11/msg00163.html).

(2) If I am not mistaken, the k loop always handle 3 elements for i, i+n, and
i+2*n.

(3) On a core2duo 2.1Ghz, I only see small changes in the timing between 4.3.4
to trunk, -O1 to -O3, and 32 or 64 bit mode.

Now if I do the following change:

--- pr42108_1_db.f902009-11-20 14:14:05.0 +0100
+++ pr42108_1_db_1.f90  2009-11-20 14:15:24.0 +0100
@@ -7,12 +7,10 @@ subroutine  eval(foo1,foo2,foo3,foo4,x,n
   do i=2,n
 foo3(i)=foo2*foo4(i)
 do  j=1,i-1
-  temp=0.0d0
-  jmini=j-i
-  do  k=i,nnd,n
-temp=temp+(x(k)-x(k+jmini))**2
-  end do
-  temp = sqrt(temp+foo1)
+  temp = sqrt( (x(i) - x(j))**2 
+  +(x(i+n) - x(j+n))**2 
+  +(x(i+2*n)-x(j+2*n))**2 
+  +foo1)
   foo3(i)=foo3(i)+temp*foo4(j)
   foo3(j)=foo3(j)+temp*foo4(i)
 end do

I go from 9.2s to 5.5s for n=2. So the k loop is not automatically unrolled
even with -funroll-loops.


-- 


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



[Bug tree-optimization/42108] [4.4/4.5 Regression] Vectorizer cannot deal with PAREN_EXPR gracefully, 50% performance regression

2009-11-20 Thread sfilippone at uniroma2 dot it


--- Comment #10 from sfilippone at uniroma2 dot it  2009-11-20 14:03 ---
(In reply to comment #9)
 I am rather confused by some comments:
 
 (1) Although I am not fluent with x86 assembly, I am pretty sure that no code
 in eval is vectorized (assembly taken from this pr or from the original post
 http://gcc.gnu.org/ml/fortran/2009-11/msg00163.html).
 
 (2) If I am not mistaken, the k loop always handle 3 elements for i, i+n, and
 i+2*n.
 
Yup, in the test case, in the original application the factor might be
different from 3. And yes, it may be better to declare the array as 2D


-- 


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



[Bug fortran/42118] Slow forall

2009-11-20 Thread rguenth at gcc dot gnu dot org


--- Comment #1 from rguenth at gcc dot gnu dot org  2009-11-20 14:03 ---
Confirmed.  GFortran seems to split the loops differently and uses a larger
temporary for the forall case.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2009-11-20 14:03:56
   date||


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



[Bug tree-optimization/42108] [4.4/4.5 Regression] Vectorizer cannot deal with PAREN_EXPR gracefully, 50% performance regression

2009-11-20 Thread sfilippone at uniroma2 dot it


--- Comment #11 from sfilippone at uniroma2 dot it  2009-11-20 14:12 ---
(In reply to comment #10)
Again, I am no asking for help in writing a better code (I think I know how to
handle this, and I will convince my colleague), I just thought it was worth
mentioning that the optimizer has apparently done a worse job lately (at least
on the platform I am using).


-- 


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



[Bug tree-optimization/42108] [4.4/4.5 Regression] Vectorizer cannot deal with PAREN_EXPR gracefully, 50% performance regression

2009-11-20 Thread rguenth at gcc dot gnu dot org


--- Comment #12 from rguenth at gcc dot gnu dot org  2009-11-20 14:13 
---
The loop is not unrolled because the frontend presents us with very funny
obfuscated code:

  do  k=i,nnd,n
temp=temp+(x(k)-x(k+jmini))**2
  end do

gets translated to

{
  character(kind=4) countm1.6;
  integer(kind=4) D.1551;
  integer(kind=4) D.1550;
  integer(kind=4) D.1549;

  D.1549 = i;
  D.1550 = *nnd;
  D.1551 = *n;
  k = D.1549;
  if (D.1551  0)
{
  if (D.1550  D.1549) goto L.6;, countm1.6 = (character(kind=4)) (D.1550 -
D.1549) / (character(kind=4)) D.1551;;
}
  else
{
  if (D.1550  D.1549) goto L.6;, countm1.6 = (character(kind=4)) (D.1549 -
D.1550) / (character(kind=4)) -D.1551;;
}
  while (1)
{
{
  real(kind=8) D.1556;
  real(kind=8) D.1555;

  D.1555 = (((*x)[(integer(kind=8)) k + -1] - (*x)[(integer(kind=8)) (k
+ jmini) + -1]));
  D.1556 = D.1555 * D.1555;
  temp = temp + D.1556;
}
  L.5:;
  k = k + D.1551;
  if (countm1.6 == 0) goto L.6;
  countm1.6 = countm1.6 + 4294967295;
}
  L.6:;
}


WTF!?

The funny conditional initialization of countm1.6 makes the analysis of
the number of iterations of this loop impossible (not to mention the
conversions to character(kind=4)).

Why does the frontend do induction variable optimization at all and
not simply generate a loop with a non-unit counting IV?


-- 


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



[Bug target/40836] ICE: insn does not satisfy its constraints (iwmmxt_movsi_insn)

2009-11-20 Thread yipiha2008 at gmail dot com


--- Comment #23 from yipiha2008 at gmail dot com  2009-11-20 14:16 ---
Forget #22, as expected it does not work (kernel compiled with a patched GCC as
per #22 does not boot)


-- 


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



[Bug fortran/42118] Slow forall

2009-11-20 Thread burnus at gcc dot gnu dot org


--- Comment #2 from burnus at gcc dot gnu dot org  2009-11-20 14:20 ---
(In reply to comment #0)
 I think that ‘forall’ statement must be at least as fast as equivalent
 ‘do-…-end do’ construction.

The Fortran standardization committee thought likewise, however, as it turned
out in practice, it is sometimes not trivial for the compiler to see whether
there is any dependence on the RHS (right-hand side) with regards to the LHS
and thus it might use a temporary array even if none is needed - and temporary
arrays are slow (and memory hungry).

Thus, a DO loop should be always faster or as fast as a FORALL (assignment)
statement (unless, one does something really stupid in the DO loop).

[At least that is what I gathered from the comments at comp.lang.fortran and
which matches my knowledge regarding how it is done in gfortran.]

Having said that, gfortran still should try to make your program as fast for
FORALL as it is for the DO loop.

 But the next program (variant of LU-decomposition) shows that fragment
 containing ‘forall’ statement is approximately at 2.5(!) times slower then
 fragment with ‘do-end do’.

You could check using  -fdump-tree-original  how the two versions are handled;
my guess is that the FORALL version uses a temporary array.
(-fdump-tree-original  creates a file.f90.004* which contains a dump of the
internal representation of your code, which looks similar to C.)

Seemingly, Richard already looked at the dump and confirmed my suspicion.


-- 


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



[Bug fortran/42112] overloaded function with allocatable result problem

2009-11-20 Thread burnus at gcc dot gnu dot org


--- Comment #3 from burnus at gcc dot gnu dot org  2009-11-20 14:22 ---
  pure function f() result(i)
integer :: i
integer, allocatable :: loc_ar(:)
allocate(loc_ar(1))
loc_ar = gen_g() ! does not work

That looks OK if gen_g returns a size-1 array or a scalar - and with Fortran
2003 it should also be valid if the array has a different size (automatic
(re)allocation on assignment).

 generates

  f ()
  {
g (loc_ar);
  }

 loc_ar has been allocated and the pointer to it is passed
 to g() where is becomes associated with the result variable j.
 You then try to allocate j, which is already allocated.

That sounds completely wrong for Fortran 95 but also for 2003. There is
absolutely no valid reason to mess around with the LHS argument, i.e.
C_LOC(loc_ar(1)) should be the same before and after the assignment (unless in
F2003 if the array size of LHS/RHS does not match or if loc_ar was before not
allocated).

To me it sounds as if there is the problem that the attributes of the specific
function belonging to the generic function are not properly used.

That is: expr-symtree-n.sym-attr vs. expr-value.function.esym-attr. (Cf.
PR 41777 )


-- 

burnus at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Keywords||wrong-code
   Last reconfirmed|-00-00 00:00:00 |2009-11-20 14:22:49
   date||


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



[Bug c/42098] gcc does not honor alignment specification, gives different alignment than g++

2009-11-20 Thread jepler at unpythonic dot net


--- Comment #2 from jepler at unpythonic dot net  2009-11-20 14:45 ---
(In reply to comment #0)
 Given the declaration: typedef volatile double D __attribute__((aligned(16)));
That should have been aligned(8)


-- 


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



[Bug tree-optimization/41919] [4.5 Regression] optimized code with -O2 or -O3 gives strange result

2009-11-20 Thread hjl at gcc dot gnu dot org


--- Comment #8 from hjl at gcc dot gnu dot org  2009-11-20 14:50 ---
Subject: Bug 41919

Author: hjl
Date: Fri Nov 20 14:49:22 2009
New Revision: 154366

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=154366
Log:
2009-11-20  H.J. Lu  hongjiu...@intel.com

Backport from mainline:
2009-11-18  Alexandre Oliva  aol...@redhat.com

PR debug/41926
* gcc.dg/vect/vect-debug-pr41926.c: New.

2009-11-16  Paolo Carlini  paolo.carl...@oracle.com

PR c++/42055
* g++.dg/template/crash92.C: New.

2009-11-08  Richard Guenther  rguent...@suse.de

PR rtl-optimization/41928
* gfortran.dg/pr41928.f90: New testcase.

2009-11-06  Jakub Jelinek  ja...@redhat.com

PR middle-end/41935
* gcc.dg/pr41935.c: New test.
* c-c++-common/pr41935.c: New test.
* gcc.c-torture/execute/pr41935.c: New test.

2009-11-04  Richard Guenther  rguent...@suse.de

PR tree-optimization/41919
* gcc.c-torture/execute/pr41919.c: New testcase.

2009-11-03  Tobias Burnus  bur...@net-b.de

PR fortran/41907
* gfortran.dg/missing_optional_dummy_6.f90: New test.

2009-11-02  Martin Jambor  mjam...@suse.cz

PR tree-optimization/41750
* gcc.c-torture/execute/pr41750.c: New test.

2009-11-02  Jakub Jelinek  ja...@redhat.com

PR tree-optimization/41841
* gcc.dg/pr41841.c: New test.

Added:
branches/gcc-4_4-branch/gcc/testsuite/c-c++-common/pr41935.c
  - copied unchanged from r154365,
trunk/gcc/testsuite/c-c++-common/pr41935.c
branches/gcc-4_4-branch/gcc/testsuite/g++.dg/template/crash92.C
  - copied unchanged from r154365,
trunk/gcc/testsuite/g++.dg/template/crash92.C
branches/gcc-4_4-branch/gcc/testsuite/gcc.c-torture/execute/pr41750.c
  - copied unchanged from r154365,
trunk/gcc/testsuite/gcc.c-torture/execute/pr41750.c
branches/gcc-4_4-branch/gcc/testsuite/gcc.c-torture/execute/pr41919.c
  - copied unchanged from r154365,
trunk/gcc/testsuite/gcc.c-torture/execute/pr41919.c
branches/gcc-4_4-branch/gcc/testsuite/gcc.c-torture/execute/pr41935.c
  - copied unchanged from r154365,
trunk/gcc/testsuite/gcc.c-torture/execute/pr41935.c
branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/pr41841.c
  - copied unchanged from r154365, trunk/gcc/testsuite/gcc.dg/pr41841.c
branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/pr41935.c
  - copied unchanged from r154365, trunk/gcc/testsuite/gcc.dg/pr41935.c
branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/vect/vect-debug-pr41926.c
  - copied unchanged from r154365,
trunk/gcc/testsuite/gcc.dg/vect/vect-debug-pr41926.c
   
branches/gcc-4_4-branch/gcc/testsuite/gfortran.dg/missing_optional_dummy_6.f90
  - copied unchanged from r154365,
trunk/gcc/testsuite/gfortran.dg/missing_optional_dummy_6.f90
branches/gcc-4_4-branch/gcc/testsuite/gfortran.dg/pr41928.f90
  - copied unchanged from r154365,
trunk/gcc/testsuite/gfortran.dg/pr41928.f90
Modified:
branches/gcc-4_4-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug c++/42055] [4.5 Regression] ICE with ambiguous template specialization

2009-11-20 Thread hjl at gcc dot gnu dot org


--- Comment #3 from hjl at gcc dot gnu dot org  2009-11-20 14:50 ---
Subject: Bug 42055

Author: hjl
Date: Fri Nov 20 14:49:22 2009
New Revision: 154366

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=154366
Log:
2009-11-20  H.J. Lu  hongjiu...@intel.com

Backport from mainline:
2009-11-18  Alexandre Oliva  aol...@redhat.com

PR debug/41926
* gcc.dg/vect/vect-debug-pr41926.c: New.

2009-11-16  Paolo Carlini  paolo.carl...@oracle.com

PR c++/42055
* g++.dg/template/crash92.C: New.

2009-11-08  Richard Guenther  rguent...@suse.de

PR rtl-optimization/41928
* gfortran.dg/pr41928.f90: New testcase.

2009-11-06  Jakub Jelinek  ja...@redhat.com

PR middle-end/41935
* gcc.dg/pr41935.c: New test.
* c-c++-common/pr41935.c: New test.
* gcc.c-torture/execute/pr41935.c: New test.

2009-11-04  Richard Guenther  rguent...@suse.de

PR tree-optimization/41919
* gcc.c-torture/execute/pr41919.c: New testcase.

2009-11-03  Tobias Burnus  bur...@net-b.de

PR fortran/41907
* gfortran.dg/missing_optional_dummy_6.f90: New test.

2009-11-02  Martin Jambor  mjam...@suse.cz

PR tree-optimization/41750
* gcc.c-torture/execute/pr41750.c: New test.

2009-11-02  Jakub Jelinek  ja...@redhat.com

PR tree-optimization/41841
* gcc.dg/pr41841.c: New test.

Added:
branches/gcc-4_4-branch/gcc/testsuite/c-c++-common/pr41935.c
  - copied unchanged from r154365,
trunk/gcc/testsuite/c-c++-common/pr41935.c
branches/gcc-4_4-branch/gcc/testsuite/g++.dg/template/crash92.C
  - copied unchanged from r154365,
trunk/gcc/testsuite/g++.dg/template/crash92.C
branches/gcc-4_4-branch/gcc/testsuite/gcc.c-torture/execute/pr41750.c
  - copied unchanged from r154365,
trunk/gcc/testsuite/gcc.c-torture/execute/pr41750.c
branches/gcc-4_4-branch/gcc/testsuite/gcc.c-torture/execute/pr41919.c
  - copied unchanged from r154365,
trunk/gcc/testsuite/gcc.c-torture/execute/pr41919.c
branches/gcc-4_4-branch/gcc/testsuite/gcc.c-torture/execute/pr41935.c
  - copied unchanged from r154365,
trunk/gcc/testsuite/gcc.c-torture/execute/pr41935.c
branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/pr41841.c
  - copied unchanged from r154365, trunk/gcc/testsuite/gcc.dg/pr41841.c
branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/pr41935.c
  - copied unchanged from r154365, trunk/gcc/testsuite/gcc.dg/pr41935.c
branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/vect/vect-debug-pr41926.c
  - copied unchanged from r154365,
trunk/gcc/testsuite/gcc.dg/vect/vect-debug-pr41926.c
   
branches/gcc-4_4-branch/gcc/testsuite/gfortran.dg/missing_optional_dummy_6.f90
  - copied unchanged from r154365,
trunk/gcc/testsuite/gfortran.dg/missing_optional_dummy_6.f90
branches/gcc-4_4-branch/gcc/testsuite/gfortran.dg/pr41928.f90
  - copied unchanged from r154365,
trunk/gcc/testsuite/gfortran.dg/pr41928.f90
Modified:
branches/gcc-4_4-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug c/41935] [4.4/4.5 Regression] ICE : tree check: expected integer_cst, have nop_expr in int_cst_value, at tree.c:8301

2009-11-20 Thread hjl at gcc dot gnu dot org


--- Comment #10 from hjl at gcc dot gnu dot org  2009-11-20 14:50 ---
Subject: Bug 41935

Author: hjl
Date: Fri Nov 20 14:49:22 2009
New Revision: 154366

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=154366
Log:
2009-11-20  H.J. Lu  hongjiu...@intel.com

Backport from mainline:
2009-11-18  Alexandre Oliva  aol...@redhat.com

PR debug/41926
* gcc.dg/vect/vect-debug-pr41926.c: New.

2009-11-16  Paolo Carlini  paolo.carl...@oracle.com

PR c++/42055
* g++.dg/template/crash92.C: New.

2009-11-08  Richard Guenther  rguent...@suse.de

PR rtl-optimization/41928
* gfortran.dg/pr41928.f90: New testcase.

2009-11-06  Jakub Jelinek  ja...@redhat.com

PR middle-end/41935
* gcc.dg/pr41935.c: New test.
* c-c++-common/pr41935.c: New test.
* gcc.c-torture/execute/pr41935.c: New test.

2009-11-04  Richard Guenther  rguent...@suse.de

PR tree-optimization/41919
* gcc.c-torture/execute/pr41919.c: New testcase.

2009-11-03  Tobias Burnus  bur...@net-b.de

PR fortran/41907
* gfortran.dg/missing_optional_dummy_6.f90: New test.

2009-11-02  Martin Jambor  mjam...@suse.cz

PR tree-optimization/41750
* gcc.c-torture/execute/pr41750.c: New test.

2009-11-02  Jakub Jelinek  ja...@redhat.com

PR tree-optimization/41841
* gcc.dg/pr41841.c: New test.

Added:
branches/gcc-4_4-branch/gcc/testsuite/c-c++-common/pr41935.c
  - copied unchanged from r154365,
trunk/gcc/testsuite/c-c++-common/pr41935.c
branches/gcc-4_4-branch/gcc/testsuite/g++.dg/template/crash92.C
  - copied unchanged from r154365,
trunk/gcc/testsuite/g++.dg/template/crash92.C
branches/gcc-4_4-branch/gcc/testsuite/gcc.c-torture/execute/pr41750.c
  - copied unchanged from r154365,
trunk/gcc/testsuite/gcc.c-torture/execute/pr41750.c
branches/gcc-4_4-branch/gcc/testsuite/gcc.c-torture/execute/pr41919.c
  - copied unchanged from r154365,
trunk/gcc/testsuite/gcc.c-torture/execute/pr41919.c
branches/gcc-4_4-branch/gcc/testsuite/gcc.c-torture/execute/pr41935.c
  - copied unchanged from r154365,
trunk/gcc/testsuite/gcc.c-torture/execute/pr41935.c
branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/pr41841.c
  - copied unchanged from r154365, trunk/gcc/testsuite/gcc.dg/pr41841.c
branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/pr41935.c
  - copied unchanged from r154365, trunk/gcc/testsuite/gcc.dg/pr41935.c
branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/vect/vect-debug-pr41926.c
  - copied unchanged from r154365,
trunk/gcc/testsuite/gcc.dg/vect/vect-debug-pr41926.c
   
branches/gcc-4_4-branch/gcc/testsuite/gfortran.dg/missing_optional_dummy_6.f90
  - copied unchanged from r154365,
trunk/gcc/testsuite/gfortran.dg/missing_optional_dummy_6.f90
branches/gcc-4_4-branch/gcc/testsuite/gfortran.dg/pr41928.f90
  - copied unchanged from r154365,
trunk/gcc/testsuite/gfortran.dg/pr41928.f90
Modified:
branches/gcc-4_4-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug fortran/41907] [4.5 Regression] 465.tonto in SPEC CPU 2006 runtime failure

2009-11-20 Thread hjl at gcc dot gnu dot org


--- Comment #10 from hjl at gcc dot gnu dot org  2009-11-20 14:50 ---
Subject: Bug 41907

Author: hjl
Date: Fri Nov 20 14:49:22 2009
New Revision: 154366

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=154366
Log:
2009-11-20  H.J. Lu  hongjiu...@intel.com

Backport from mainline:
2009-11-18  Alexandre Oliva  aol...@redhat.com

PR debug/41926
* gcc.dg/vect/vect-debug-pr41926.c: New.

2009-11-16  Paolo Carlini  paolo.carl...@oracle.com

PR c++/42055
* g++.dg/template/crash92.C: New.

2009-11-08  Richard Guenther  rguent...@suse.de

PR rtl-optimization/41928
* gfortran.dg/pr41928.f90: New testcase.

2009-11-06  Jakub Jelinek  ja...@redhat.com

PR middle-end/41935
* gcc.dg/pr41935.c: New test.
* c-c++-common/pr41935.c: New test.
* gcc.c-torture/execute/pr41935.c: New test.

2009-11-04  Richard Guenther  rguent...@suse.de

PR tree-optimization/41919
* gcc.c-torture/execute/pr41919.c: New testcase.

2009-11-03  Tobias Burnus  bur...@net-b.de

PR fortran/41907
* gfortran.dg/missing_optional_dummy_6.f90: New test.

2009-11-02  Martin Jambor  mjam...@suse.cz

PR tree-optimization/41750
* gcc.c-torture/execute/pr41750.c: New test.

2009-11-02  Jakub Jelinek  ja...@redhat.com

PR tree-optimization/41841
* gcc.dg/pr41841.c: New test.

Added:
branches/gcc-4_4-branch/gcc/testsuite/c-c++-common/pr41935.c
  - copied unchanged from r154365,
trunk/gcc/testsuite/c-c++-common/pr41935.c
branches/gcc-4_4-branch/gcc/testsuite/g++.dg/template/crash92.C
  - copied unchanged from r154365,
trunk/gcc/testsuite/g++.dg/template/crash92.C
branches/gcc-4_4-branch/gcc/testsuite/gcc.c-torture/execute/pr41750.c
  - copied unchanged from r154365,
trunk/gcc/testsuite/gcc.c-torture/execute/pr41750.c
branches/gcc-4_4-branch/gcc/testsuite/gcc.c-torture/execute/pr41919.c
  - copied unchanged from r154365,
trunk/gcc/testsuite/gcc.c-torture/execute/pr41919.c
branches/gcc-4_4-branch/gcc/testsuite/gcc.c-torture/execute/pr41935.c
  - copied unchanged from r154365,
trunk/gcc/testsuite/gcc.c-torture/execute/pr41935.c
branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/pr41841.c
  - copied unchanged from r154365, trunk/gcc/testsuite/gcc.dg/pr41841.c
branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/pr41935.c
  - copied unchanged from r154365, trunk/gcc/testsuite/gcc.dg/pr41935.c
branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/vect/vect-debug-pr41926.c
  - copied unchanged from r154365,
trunk/gcc/testsuite/gcc.dg/vect/vect-debug-pr41926.c
   
branches/gcc-4_4-branch/gcc/testsuite/gfortran.dg/missing_optional_dummy_6.f90
  - copied unchanged from r154365,
trunk/gcc/testsuite/gfortran.dg/missing_optional_dummy_6.f90
branches/gcc-4_4-branch/gcc/testsuite/gfortran.dg/pr41928.f90
  - copied unchanged from r154365,
trunk/gcc/testsuite/gfortran.dg/pr41928.f90
Modified:
branches/gcc-4_4-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug debug/41926] [4.5 Regression][VTA] internal compiler error: verify_ssa failed

2009-11-20 Thread hjl at gcc dot gnu dot org


--- Comment #6 from hjl at gcc dot gnu dot org  2009-11-20 14:50 ---
Subject: Bug 41926

Author: hjl
Date: Fri Nov 20 14:49:22 2009
New Revision: 154366

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=154366
Log:
2009-11-20  H.J. Lu  hongjiu...@intel.com

Backport from mainline:
2009-11-18  Alexandre Oliva  aol...@redhat.com

PR debug/41926
* gcc.dg/vect/vect-debug-pr41926.c: New.

2009-11-16  Paolo Carlini  paolo.carl...@oracle.com

PR c++/42055
* g++.dg/template/crash92.C: New.

2009-11-08  Richard Guenther  rguent...@suse.de

PR rtl-optimization/41928
* gfortran.dg/pr41928.f90: New testcase.

2009-11-06  Jakub Jelinek  ja...@redhat.com

PR middle-end/41935
* gcc.dg/pr41935.c: New test.
* c-c++-common/pr41935.c: New test.
* gcc.c-torture/execute/pr41935.c: New test.

2009-11-04  Richard Guenther  rguent...@suse.de

PR tree-optimization/41919
* gcc.c-torture/execute/pr41919.c: New testcase.

2009-11-03  Tobias Burnus  bur...@net-b.de

PR fortran/41907
* gfortran.dg/missing_optional_dummy_6.f90: New test.

2009-11-02  Martin Jambor  mjam...@suse.cz

PR tree-optimization/41750
* gcc.c-torture/execute/pr41750.c: New test.

2009-11-02  Jakub Jelinek  ja...@redhat.com

PR tree-optimization/41841
* gcc.dg/pr41841.c: New test.

Added:
branches/gcc-4_4-branch/gcc/testsuite/c-c++-common/pr41935.c
  - copied unchanged from r154365,
trunk/gcc/testsuite/c-c++-common/pr41935.c
branches/gcc-4_4-branch/gcc/testsuite/g++.dg/template/crash92.C
  - copied unchanged from r154365,
trunk/gcc/testsuite/g++.dg/template/crash92.C
branches/gcc-4_4-branch/gcc/testsuite/gcc.c-torture/execute/pr41750.c
  - copied unchanged from r154365,
trunk/gcc/testsuite/gcc.c-torture/execute/pr41750.c
branches/gcc-4_4-branch/gcc/testsuite/gcc.c-torture/execute/pr41919.c
  - copied unchanged from r154365,
trunk/gcc/testsuite/gcc.c-torture/execute/pr41919.c
branches/gcc-4_4-branch/gcc/testsuite/gcc.c-torture/execute/pr41935.c
  - copied unchanged from r154365,
trunk/gcc/testsuite/gcc.c-torture/execute/pr41935.c
branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/pr41841.c
  - copied unchanged from r154365, trunk/gcc/testsuite/gcc.dg/pr41841.c
branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/pr41935.c
  - copied unchanged from r154365, trunk/gcc/testsuite/gcc.dg/pr41935.c
branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/vect/vect-debug-pr41926.c
  - copied unchanged from r154365,
trunk/gcc/testsuite/gcc.dg/vect/vect-debug-pr41926.c
   
branches/gcc-4_4-branch/gcc/testsuite/gfortran.dg/missing_optional_dummy_6.f90
  - copied unchanged from r154365,
trunk/gcc/testsuite/gfortran.dg/missing_optional_dummy_6.f90
branches/gcc-4_4-branch/gcc/testsuite/gfortran.dg/pr41928.f90
  - copied unchanged from r154365,
trunk/gcc/testsuite/gfortran.dg/pr41928.f90
Modified:
branches/gcc-4_4-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug rtl-optimization/41928] [4.5 Regression] segfault at gcc/bitmap.c:297

2009-11-20 Thread hjl at gcc dot gnu dot org


--- Comment #10 from hjl at gcc dot gnu dot org  2009-11-20 14:50 ---
Subject: Bug 41928

Author: hjl
Date: Fri Nov 20 14:49:22 2009
New Revision: 154366

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=154366
Log:
2009-11-20  H.J. Lu  hongjiu...@intel.com

Backport from mainline:
2009-11-18  Alexandre Oliva  aol...@redhat.com

PR debug/41926
* gcc.dg/vect/vect-debug-pr41926.c: New.

2009-11-16  Paolo Carlini  paolo.carl...@oracle.com

PR c++/42055
* g++.dg/template/crash92.C: New.

2009-11-08  Richard Guenther  rguent...@suse.de

PR rtl-optimization/41928
* gfortran.dg/pr41928.f90: New testcase.

2009-11-06  Jakub Jelinek  ja...@redhat.com

PR middle-end/41935
* gcc.dg/pr41935.c: New test.
* c-c++-common/pr41935.c: New test.
* gcc.c-torture/execute/pr41935.c: New test.

2009-11-04  Richard Guenther  rguent...@suse.de

PR tree-optimization/41919
* gcc.c-torture/execute/pr41919.c: New testcase.

2009-11-03  Tobias Burnus  bur...@net-b.de

PR fortran/41907
* gfortran.dg/missing_optional_dummy_6.f90: New test.

2009-11-02  Martin Jambor  mjam...@suse.cz

PR tree-optimization/41750
* gcc.c-torture/execute/pr41750.c: New test.

2009-11-02  Jakub Jelinek  ja...@redhat.com

PR tree-optimization/41841
* gcc.dg/pr41841.c: New test.

Added:
branches/gcc-4_4-branch/gcc/testsuite/c-c++-common/pr41935.c
  - copied unchanged from r154365,
trunk/gcc/testsuite/c-c++-common/pr41935.c
branches/gcc-4_4-branch/gcc/testsuite/g++.dg/template/crash92.C
  - copied unchanged from r154365,
trunk/gcc/testsuite/g++.dg/template/crash92.C
branches/gcc-4_4-branch/gcc/testsuite/gcc.c-torture/execute/pr41750.c
  - copied unchanged from r154365,
trunk/gcc/testsuite/gcc.c-torture/execute/pr41750.c
branches/gcc-4_4-branch/gcc/testsuite/gcc.c-torture/execute/pr41919.c
  - copied unchanged from r154365,
trunk/gcc/testsuite/gcc.c-torture/execute/pr41919.c
branches/gcc-4_4-branch/gcc/testsuite/gcc.c-torture/execute/pr41935.c
  - copied unchanged from r154365,
trunk/gcc/testsuite/gcc.c-torture/execute/pr41935.c
branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/pr41841.c
  - copied unchanged from r154365, trunk/gcc/testsuite/gcc.dg/pr41841.c
branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/pr41935.c
  - copied unchanged from r154365, trunk/gcc/testsuite/gcc.dg/pr41935.c
branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/vect/vect-debug-pr41926.c
  - copied unchanged from r154365,
trunk/gcc/testsuite/gcc.dg/vect/vect-debug-pr41926.c
   
branches/gcc-4_4-branch/gcc/testsuite/gfortran.dg/missing_optional_dummy_6.f90
  - copied unchanged from r154365,
trunk/gcc/testsuite/gfortran.dg/missing_optional_dummy_6.f90
branches/gcc-4_4-branch/gcc/testsuite/gfortran.dg/pr41928.f90
  - copied unchanged from r154365,
trunk/gcc/testsuite/gfortran.dg/pr41928.f90
Modified:
branches/gcc-4_4-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug tree-optimization/41841] segfault using '-O -fipa-cp -fipa-struct-reorg -fwhole-program -fprofile-generate'

2009-11-20 Thread hjl at gcc dot gnu dot org


--- Comment #6 from hjl at gcc dot gnu dot org  2009-11-20 14:50 ---
Subject: Bug 41841

Author: hjl
Date: Fri Nov 20 14:49:22 2009
New Revision: 154366

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=154366
Log:
2009-11-20  H.J. Lu  hongjiu...@intel.com

Backport from mainline:
2009-11-18  Alexandre Oliva  aol...@redhat.com

PR debug/41926
* gcc.dg/vect/vect-debug-pr41926.c: New.

2009-11-16  Paolo Carlini  paolo.carl...@oracle.com

PR c++/42055
* g++.dg/template/crash92.C: New.

2009-11-08  Richard Guenther  rguent...@suse.de

PR rtl-optimization/41928
* gfortran.dg/pr41928.f90: New testcase.

2009-11-06  Jakub Jelinek  ja...@redhat.com

PR middle-end/41935
* gcc.dg/pr41935.c: New test.
* c-c++-common/pr41935.c: New test.
* gcc.c-torture/execute/pr41935.c: New test.

2009-11-04  Richard Guenther  rguent...@suse.de

PR tree-optimization/41919
* gcc.c-torture/execute/pr41919.c: New testcase.

2009-11-03  Tobias Burnus  bur...@net-b.de

PR fortran/41907
* gfortran.dg/missing_optional_dummy_6.f90: New test.

2009-11-02  Martin Jambor  mjam...@suse.cz

PR tree-optimization/41750
* gcc.c-torture/execute/pr41750.c: New test.

2009-11-02  Jakub Jelinek  ja...@redhat.com

PR tree-optimization/41841
* gcc.dg/pr41841.c: New test.

Added:
branches/gcc-4_4-branch/gcc/testsuite/c-c++-common/pr41935.c
  - copied unchanged from r154365,
trunk/gcc/testsuite/c-c++-common/pr41935.c
branches/gcc-4_4-branch/gcc/testsuite/g++.dg/template/crash92.C
  - copied unchanged from r154365,
trunk/gcc/testsuite/g++.dg/template/crash92.C
branches/gcc-4_4-branch/gcc/testsuite/gcc.c-torture/execute/pr41750.c
  - copied unchanged from r154365,
trunk/gcc/testsuite/gcc.c-torture/execute/pr41750.c
branches/gcc-4_4-branch/gcc/testsuite/gcc.c-torture/execute/pr41919.c
  - copied unchanged from r154365,
trunk/gcc/testsuite/gcc.c-torture/execute/pr41919.c
branches/gcc-4_4-branch/gcc/testsuite/gcc.c-torture/execute/pr41935.c
  - copied unchanged from r154365,
trunk/gcc/testsuite/gcc.c-torture/execute/pr41935.c
branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/pr41841.c
  - copied unchanged from r154365, trunk/gcc/testsuite/gcc.dg/pr41841.c
branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/pr41935.c
  - copied unchanged from r154365, trunk/gcc/testsuite/gcc.dg/pr41935.c
branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/vect/vect-debug-pr41926.c
  - copied unchanged from r154365,
trunk/gcc/testsuite/gcc.dg/vect/vect-debug-pr41926.c
   
branches/gcc-4_4-branch/gcc/testsuite/gfortran.dg/missing_optional_dummy_6.f90
  - copied unchanged from r154365,
trunk/gcc/testsuite/gfortran.dg/missing_optional_dummy_6.f90
branches/gcc-4_4-branch/gcc/testsuite/gfortran.dg/pr41928.f90
  - copied unchanged from r154365,
trunk/gcc/testsuite/gfortran.dg/pr41928.f90
Modified:
branches/gcc-4_4-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug tree-optimization/41750] [4.5 Regression] IPA-SRA is broken

2009-11-20 Thread hjl at gcc dot gnu dot org


--- Comment #27 from hjl at gcc dot gnu dot org  2009-11-20 14:50 ---
Subject: Bug 41750

Author: hjl
Date: Fri Nov 20 14:49:22 2009
New Revision: 154366

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=154366
Log:
2009-11-20  H.J. Lu  hongjiu...@intel.com

Backport from mainline:
2009-11-18  Alexandre Oliva  aol...@redhat.com

PR debug/41926
* gcc.dg/vect/vect-debug-pr41926.c: New.

2009-11-16  Paolo Carlini  paolo.carl...@oracle.com

PR c++/42055
* g++.dg/template/crash92.C: New.

2009-11-08  Richard Guenther  rguent...@suse.de

PR rtl-optimization/41928
* gfortran.dg/pr41928.f90: New testcase.

2009-11-06  Jakub Jelinek  ja...@redhat.com

PR middle-end/41935
* gcc.dg/pr41935.c: New test.
* c-c++-common/pr41935.c: New test.
* gcc.c-torture/execute/pr41935.c: New test.

2009-11-04  Richard Guenther  rguent...@suse.de

PR tree-optimization/41919
* gcc.c-torture/execute/pr41919.c: New testcase.

2009-11-03  Tobias Burnus  bur...@net-b.de

PR fortran/41907
* gfortran.dg/missing_optional_dummy_6.f90: New test.

2009-11-02  Martin Jambor  mjam...@suse.cz

PR tree-optimization/41750
* gcc.c-torture/execute/pr41750.c: New test.

2009-11-02  Jakub Jelinek  ja...@redhat.com

PR tree-optimization/41841
* gcc.dg/pr41841.c: New test.

Added:
branches/gcc-4_4-branch/gcc/testsuite/c-c++-common/pr41935.c
  - copied unchanged from r154365,
trunk/gcc/testsuite/c-c++-common/pr41935.c
branches/gcc-4_4-branch/gcc/testsuite/g++.dg/template/crash92.C
  - copied unchanged from r154365,
trunk/gcc/testsuite/g++.dg/template/crash92.C
branches/gcc-4_4-branch/gcc/testsuite/gcc.c-torture/execute/pr41750.c
  - copied unchanged from r154365,
trunk/gcc/testsuite/gcc.c-torture/execute/pr41750.c
branches/gcc-4_4-branch/gcc/testsuite/gcc.c-torture/execute/pr41919.c
  - copied unchanged from r154365,
trunk/gcc/testsuite/gcc.c-torture/execute/pr41919.c
branches/gcc-4_4-branch/gcc/testsuite/gcc.c-torture/execute/pr41935.c
  - copied unchanged from r154365,
trunk/gcc/testsuite/gcc.c-torture/execute/pr41935.c
branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/pr41841.c
  - copied unchanged from r154365, trunk/gcc/testsuite/gcc.dg/pr41841.c
branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/pr41935.c
  - copied unchanged from r154365, trunk/gcc/testsuite/gcc.dg/pr41935.c
branches/gcc-4_4-branch/gcc/testsuite/gcc.dg/vect/vect-debug-pr41926.c
  - copied unchanged from r154365,
trunk/gcc/testsuite/gcc.dg/vect/vect-debug-pr41926.c
   
branches/gcc-4_4-branch/gcc/testsuite/gfortran.dg/missing_optional_dummy_6.f90
  - copied unchanged from r154365,
trunk/gcc/testsuite/gfortran.dg/missing_optional_dummy_6.f90
branches/gcc-4_4-branch/gcc/testsuite/gfortran.dg/pr41928.f90
  - copied unchanged from r154365,
trunk/gcc/testsuite/gfortran.dg/pr41928.f90
Modified:
branches/gcc-4_4-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug target/40836] ICE: insn does not satisfy its constraints (iwmmxt_movsi_insn)

2009-11-20 Thread enrico dot scholz at informatik dot tu-chemnitz dot de


--- Comment #24 from enrico dot scholz at informatik dot tu-chemnitz dot de 
 2009-11-20 15:07 ---
I do not think that the non working kernel is caused by the patch, but that
there are yet more regressions for the iwmmxt arch and that this arch has never
been tested with gcc 4.4.


-- 


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



[Bug fortran/42119] New: internal compiler error: in expand_expr_addr_expr_1, at expr.c:6862

2009-11-20 Thread nvab at ibrae dot ac dot ru
Test file (Test.f90):
-

module Test
use ISO_C_BINDING

contains

subroutine Callback(arg) bind(C)
  integer(C_INT)  :: arg
end subroutine Callback

subroutine Check(proc)
  type(C_FUNPTR)  :: proc
end subroutine Check

end module Test


program Main
  use Test
  type(C_FUNPTR)  :: proc

  call Check(C_FUNLOC(Callback))

! This works fine:
!  proc = C_FUNLOC(Callback)
!  call Check(proc)

end program Main

-

Compiler output:
-

sm...@ubuntu:~/Code$ gfortran -v Test.f90
Driving: gfortran -v Test.f90 -lgfortranbegin -lgfortran -lm -shared-libgcc
Using built-in specs.
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.4.1-4ubuntu8'
--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-objc-gc --disable-werror
--with-arch-32=i486 --with-tune=generic --enable-checking=release
--build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.4.1 (Ubuntu 4.4.1-4ubuntu8) 
COLLECT_GCC_OPTIONS='-v' '-shared-libgcc' '-mtune=generic'
 /usr/lib/gcc/x86_64-linux-gnu/4.4.1/f951 Test.f90 -quiet -dumpbase Test.f90
-mtune=generic -auxbase Test -version -fintrinsic-modules-path
/usr/lib/gcc/x86_64-linux-gnu/4.4.1/finclude -o /tmp/ccn1uZ8e.s
GNU Fortran (Ubuntu 4.4.1-4ubuntu8) version 4.4.1 (x86_64-linux-gnu)
compiled by GNU C version 4.4.1, GMP version 4.3.1, MPFR version
2.4.1-p2.
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Test.f90: In function ‘main’:
Test.f90:21: internal compiler error: in expand_expr_addr_expr_1, at
expr.c:6862
Please submit a full bug report,
with preprocessed source if appropriate.
See file:///usr/share/doc/gcc-4.4/README.Bugs for instructions.


-- 
   Summary: internal compiler error: in expand_expr_addr_expr_1, at
expr.c:6862
   Product: gcc
   Version: 4.4.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: nvab at ibrae dot ac dot ru
 GCC build triplet: x86_64-linux-gnu
  GCC host triplet: x86_64-linux-gnu
GCC target triplet: x86_64-linux-gnu


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



[Bug target/41979] GCC fails to compile MPC-HC's ffmpeg/libavcodec

2009-11-20 Thread brunorex at gmail dot com


-- 

brunorex at gmail dot com changed:

   What|Removed |Added

 Status|NEW |SUSPENDED


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



[Bug middle-end/42119] internal compiler error: in expand_expr_addr_expr_1, at expr.c:6862

2009-11-20 Thread rguenth at gcc dot gnu dot org


--- Comment #1 from rguenth at gcc dot gnu dot org  2009-11-20 15:33 ---
Confirmed.  Sth as simple as

Index: gcc/expr.c
===
--- gcc/expr.c  (revision 154364)
+++ gcc/expr.c  (working copy)
@@ -6834,7 +6834,8 @@ expand_expr_addr_expr_1 (tree exp, rtx t
   /* ??? This should be considered a front-end bug.  We should not be
  generating ADDR_EXPR of something that isn't an LVALUE.  The only
  exception here is STRING_CST.  */
-  if (CONSTANT_CLASS_P (exp))
+  if (CONSTANT_CLASS_P (exp)
+  || (TREE_CODE (exp) == ADDR_EXPR  TREE_CONSTANT (exp)))
 return XEXP (expand_expr_constant (exp, 0, modifier), 0);

   /* Everything must be something allowed by is_gimple_addressable.  */


might fix it, though the recursion in this function for CONST_DECLs
make it a bit convoluted to call it obvious.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
  Component|fortran |middle-end
 Ever Confirmed|0   |1
   Keywords||ice-on-valid-code
  Known to fail||4.5.0
   Last reconfirmed|-00-00 00:00:00 |2009-11-20 15:33:46
   date||


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



[Bug target/40836] ICE: insn does not satisfy its constraints (iwmmxt_movsi_insn)

2009-11-20 Thread yipiha2008 at gmail dot com


--- Comment #25 from yipiha2008 at gmail dot com  2009-11-20 15:45 ---
Further tests show that you're right about the non working kernel.

Should the iwmmxt arch be disabled by default on GCC 4.5? At least it would
make it clear that this arch is untested/not supported.


-- 


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



[Bug fortran/42072] [F03] wrong-code with C_F_PROCPOINTER

2009-11-20 Thread janus at gcc dot gnu dot org


--- Comment #7 from janus at gcc dot gnu dot org  2009-11-20 15:51 ---
The runtime problem and the obsolete comment in the manual are fixed now. So
the only issue left is the wrong static declaration reported in comment #3.


-- 


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



[Bug c++/42121] New: g++ should warn or error on internal 0 size array in struct

2009-11-20 Thread david dot resnick at comverse dot com
Currently g++ requires the -pedantic flag to give a warning on a zero sized
array that is not the last field in a struct.  As far as I can see, this is
actually always a significant error if it is not the trailing field in the
struct...

Demonstration:
temp(510)$ cat zero-size-array.cpp
#include iostream
#include cstddef

struct bogus
{
int a;
char b[];
int c;

} bogus;

int main(void)
{
std::cout  size of struct bogus =  sizeof(bogus)  std::endl;
std::cout  offset of field b =  offsetof(struct bogus, b) 
std::endl;
std::cout  offset of field c =  offsetof(struct bogus, b) 
std::endl;
return 0;
}
temp(511)$ g++ -Wall -o zero-size-array
zero-size-array.cppsize-array.cppe-array.cpp
temp(512)$ zero-size-array
size of struct bogus =8
offset of field b =4
offset of field c =4
temp(513)$ g++ -Wall  -pedantic -o zero-size-array
zero-size-array.cppize-array.cpp
zero-size-array.cpp:7: error: ISO C++ forbids zero-size array 'b'
temp(514)$ g++ --version
g++ (GCC) 4.1.2 20070626 (Red Hat 4.1.2-14)

-David


-- 
   Summary: g++ should warn or error on internal 0 size array in
struct
   Product: gcc
   Version: 4.1.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: david dot resnick at comverse dot com


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



[Bug bootstrap/42093] bootstrap hangs in stage2 run of build/gengtype

2009-11-20 Thread ramana at gcc dot gnu dot org


--- Comment #2 from ramana at gcc dot gnu dot org  2009-11-20 16:00 ---
(In reply to comment #1)
 only seen when configuring with --with-mode=thumb, disabling scheduling for
 thumb2 shows the same endless loop.

Confirmed unless there's a miscompilation in libc that we are missing. 
 


-- 

ramana at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2009-11-20 16:00:02
   date||


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



[Bug c++/42060] [4.4/4.5 Regression] [c++0x] ICE throwing array with initializer list

2009-11-20 Thread paolo at gcc dot gnu dot org


--- Comment #1 from paolo at gcc dot gnu dot org  2009-11-20 16:03 ---
Subject: Bug 42060

Author: paolo
Date: Fri Nov 20 16:03:19 2009
New Revision: 154371

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=154371
Log:
cp/
2009-11-20  Paolo Carlini  paolo.carl...@oracle.com

PR c++/42060
* except.c (build_throw): Check the tree returned by
decay_conversion for error_mark_node.

testsuite/
2009-11-20  Paolo Carlini  paolo.carl...@oracle.com

PR c++/42060
* g++.dg/cpp0x/initlist28.C: New.

Added:
trunk/gcc/testsuite/g++.dg/cpp0x/initlist28.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/except.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug c++/42060] [4.4 Regression] [c++0x] ICE throwing array with initializer list

2009-11-20 Thread paolo dot carlini at oracle dot com


--- Comment #2 from paolo dot carlini at oracle dot com  2009-11-20 16:05 
---
Fixed for 4.5.0.


-- 

paolo dot carlini at oracle dot com changed:

   What|Removed |Added

 AssignedTo|paolo dot carlini at oracle |unassigned at gcc dot gnu
   |dot com |dot org
 Status|ASSIGNED|NEW
Summary|[4.4/4.5 Regression] [c++0x]|[4.4 Regression] [c++0x] ICE
   |ICE throwing array with |throwing array with
   |initializer list|initializer list
   Target Milestone|4.4.3   |4.5.0


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



[Bug fortran/42122] New: -fdump-tree-original shows wrong static decl for functions with procptr argument

2009-11-20 Thread janus at gcc dot gnu dot org
Follow-up to PR42072. Consider this simple program:


contains

  subroutine setpointer (p)
procedure(), pointer :: p
  end subroutine

end


Compiling this with -fdump-tree-original shows:


setpointer (void (*T62) (void) * p)
{
  (void) 0;
}

MAIN__ ()
{
  static void setpointer (void (*T62) (void));

  (void) 0;
}


As one can see, the static declaration inside MAIN__ differs from the actual
declaration of 'setpointer'.


-- 
   Summary: -fdump-tree-original shows wrong static decl for
functions with procptr argument
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: janus at gcc dot gnu dot org


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



[Bug fortran/42072] [F03] wrong-code with C_F_PROCPOINTER

2009-11-20 Thread janus at gcc dot gnu dot org


--- Comment #8 from janus at gcc dot gnu dot org  2009-11-20 16:08 ---
(In reply to comment #7)
 So the only issue left is the wrong static declaration reported in comment #3.

This is now PR 42122. Closing this one.


-- 

janus at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug target/42123] New: dll{im,ex}port attributes don't (yet) work on namespaces.

2009-11-20 Thread davek at gcc dot gnu dot org
As per subject, the dll attributes can't be applied to c++ namespaces - this in
fact applies to all windows platforms, not just cygwin.  This would be a
desirable mechanism for eliminating the use of auto-import by using explicit
dllimport attributes, without having to uglify every header in the whole
library to do so.


-- 
   Summary: dll{im,ex}port attributes don't (yet) work on
namespaces.
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P3
 Component: target
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: davek at gcc dot gnu dot org
 GCC build triplet: i686-pc-cygwin
  GCC host triplet: i686-pc-cygwin
GCC target triplet: i686-pc-cygwin


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



[Bug target/42123] dll{im,ex}port attributes don't (yet) work on namespaces.

2009-11-20 Thread davek at gcc dot gnu dot org


--- Comment #1 from davek at gcc dot gnu dot org  2009-11-20 16:11 ---
Created an attachment (id=19068)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=19068action=view)
work-in-progress

This patch is a bit overly keen in how far it propagates dllimport, leading to
the regression of g++.dg/ext/dllimport8.C without even using -D_GLIBCXX_IMPORT.
 (This is the old
don't-import-a-static-class-member-if-you've-seen-a-definition issue.)  So, not
ready for primetime just yet...


-- 


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



[Bug target/42123] dll{im,ex}port attributes don't (yet) work on namespaces.

2009-11-20 Thread davek at gcc dot gnu dot org


-- 

davek at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |davek at gcc dot gnu dot org
   |dot org |
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2009-11-20 16:11:58
   date||


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



[Bug tree-optimization/39960] [4.5 Regression] struct-reorg is broken

2009-11-20 Thread olga at gcc dot gnu dot org


--- Comment #6 from olga at gcc dot gnu dot org  2009-11-20 16:57 ---
Subject: Bug 39960

Author: olga
Date: Fri Nov 20 16:57:35 2009
New Revision: 154374

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=154374
Log:
2009-11-17 Olga Golovanevsky o...@il.ibm.com

PR middle-end/39960
* ipa-struct-reorg.c (find_pos_in_stmt): New parameter.
(ref_pos): New field in structure.
(insert_new_var_in_stmt): New function.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/ipa-struct-reorg.c


-- 


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



[Bug target/40959] build fails - No rule to make target `/usr/ports/lang/gcc43/work/build/ia64-portbld-freebsd8.0/libgcc/crtfastmath.o', needed by `T_TARGET'. Stop.

2009-11-20 Thread sje at cup dot hp dot com


--- Comment #10 from sje at cup dot hp dot com  2009-11-20 16:59 ---
Does freebsd use glibc?  Does freebsd have a system libunwind?  I am going to
guess yes to the first question and no to the second in which case you need to
edit gcc/config.gcc and modify the 'ia64*-*-freebsd*' entry to include the
t-libunwind-elf and ia64/t-glibc-libunwind makefile fragments to the tm_file
list.  That is what 'ia64*-*-linux* does when 'with_system_libunwind' is set to
no.


-- 


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



[Bug target/41810] Cannot build gcc: gthr-default.h:466: error: '__mutex' was not declared in this scope

2009-11-20 Thread ro at CeBiTec dot Uni-Bielefeld dot DE


--- Comment #10 from ro at CeBiTec dot Uni-Bielefeld dot DE  2009-11-20 
17:10 ---
Subject: Re:  Cannot build gcc: gthr-default.h:466: error: '__mutex' was not
declared in this scope


 The #c4 patch looks wrong, instead of that you should IMHO just not use UNUSED
 macro on __gthread_mutex_destroy argument.  It is perfectly fine on
 __gthread_key_delete.

You're right, of course.  I should have looked closer.  Testing and
comparison with pthread results found two other bugs, one of which I
could already fix in gthr-solaris.h.  I've tried to debug the other
(objc) testcase, but gdb 6.6 cannot fully handle it, and I couldn't yet
get a gdb 7.0 to debug a 64-bit binary.

Given that this is a bootstrap failure, I'll submit and install the fix
now and check the remainder later.

Rainer


-- 


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



[Bug target/41810] Cannot build gcc: gthr-default.h:466: error: '__mutex' was not declared in this scope

2009-11-20 Thread ro at gcc dot gnu dot org


--- Comment #11 from ro at gcc dot gnu dot org  2009-11-20 17:17 ---
Mine.


-- 

ro at gcc dot gnu dot org changed:

   What|Removed |Added

 CC|ro at techfak dot uni-  |
   |bielefeld dot de|
 AssignedTo|unassigned at gcc dot gnu   |ro at gcc dot gnu dot org
   |dot org |
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2009-11-20 17:17:12
   date||


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



[Bug fortran/42045] [F03] passing a procedure pointer component to a procedure pointer dummy

2009-11-20 Thread janus at gcc dot gnu dot org


--- Comment #4 from janus at gcc dot gnu dot org  2009-11-20 17:24 ---
With this patch

Index: gcc/fortran/resolve.c
===
--- gcc/fortran/resolve.c   (revision 154369)
+++ gcc/fortran/resolve.c   (working copy)
@@ -1321,6 +1321,8 @@ resolve_actual_arglist (gfc_actual_arglist *arg, p
e-rank = comp-as-rank;
  e-expr_type = EXPR_FUNCTION;
}
+ if (gfc_resolve_expr (e) == FAILURE)  
+   return FAILURE; 
  goto argument_list;
}

@@ -2519,6 +2521,10 @@ resolve_function (gfc_expr *expr)
   if (expr-symtree)
 sym = expr-symtree-n.sym;

+  /* If this is a procedure pointer component, it has already been resolved. 
*/
+  if (gfc_is_proc_ptr_comp (expr, NULL))
+return SUCCESS;
+  
   if (sym  sym-attr.intrinsic
resolve_intrinsic (sym, expr-where) == FAILURE)
 return FAILURE;
@@ -10219,8 +10225,9 @@ resolve_fl_derived (gfc_symbol *sym)
}
   else if (c-attr.proc_pointer  c-ts.type == BT_UNKNOWN)
{
- c-ts = *gfc_get_default_type (c-name, NULL);
- c-attr.implicit_type = 1;
+ /* Since PPCs are not implicitly typed, a PPC without an explicit
+interface must be a subroutine.  */
+ gfc_add_subroutine (c-attr, c-name, c-loc);
}

   /* Procedure pointer components: Check PASS arg.  */


the only remaining regression is proc_ptr_comp_2.f90, which is invalid with
respect to the interpretation in
http://www.j3-fortran.org/doc/year/09/09-236r1.txt.


-- 

janus at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |janus at gcc dot gnu dot org
   |dot org |
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2009-11-20 17:24:11
   date||


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



[Bug target/42081] big-endian arm MULTILIB_DEFAULTS hard-coded to little-endian

2009-11-20 Thread tom at giftssoft dot com


--- Comment #1 from tom at giftssoft dot com  2009-11-20 17:26 ---
It looks like this bug is related to bug 16350, which was created on 2004-07-03
and resulted in patch 800-arm-bigendian.patch being applied on 2007-11-07 to
gcc 4.3.0.  Prior to this patch, gcc defaulted to little-endian mode on both
big-endian and little-endian arm targets, and had to be explicitly told to
compile in big-endian mode.  This patch modified gcc to detault to big-endian
mode on big-endian arm targets and little-endian mode on littlr-endian arm
targets.  However, the hunk of the patch that replaced:

{ marm, mlittle-endian, mhard-float, mno-thumb-interwork }

with:

{ marm, TARGET_ENDIAN_OPTION, mhard-float, mno-thumb-interwork }

was somehow not applied.  Therefore, this bug can be restated as follows:  

The patch to resolve bug 16350 was only partially applied and resulted in an
inconsistent linux-elf.h file in which part of it still assumes little-endian
on all arm targets (the old behavor) and part of it assumes big-endian on
big-endian arm targets (the new behavior).



-- 


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



[Bug target/40411] -std=c99 does not enable c99 mode in Solaris C library

2009-11-20 Thread ro at gcc dot gnu dot org


--- Comment #16 from ro at gcc dot gnu dot org  2009-11-20 17:53 ---
Mine.


-- 

ro at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |ro at gcc dot gnu dot org
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2009-06-17 19:42:47 |2009-11-20 17:53:02
   date||


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



[Bug middle-end/42119] internal compiler error: in expand_expr_addr_expr_1, at expr.c:6862

2009-11-20 Thread mikael at gcc dot gnu dot org


--- Comment #2 from mikael at gcc dot gnu dot org  2009-11-20 17:59 ---
This is the same as PR 38530


-- 


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



[Bug fortran/38530] ICE with the example for c_funloc

2009-11-20 Thread pinskia at gcc dot gnu dot org


--- Comment #3 from pinskia at gcc dot gnu dot org  2009-11-20 18:05 ---
*** Bug 42119 has been marked as a duplicate of this bug. ***


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||nvab at ibrae dot ac dot ru


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



[Bug middle-end/42119] internal compiler error: in expand_expr_addr_expr_1, at expr.c:6862

2009-11-20 Thread pinskia at gcc dot gnu dot org


--- Comment #3 from pinskia at gcc dot gnu dot org  2009-11-20 18:05 ---


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


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||DUPLICATE


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



[Bug c++/42121] g++ should warn or error on internal 0 size array in struct

2009-11-20 Thread redi at gcc dot gnu dot org


--- Comment #1 from redi at gcc dot gnu dot org  2009-11-20 18:09 ---
Looks like this is for compatibility with GNU C, which allows it, but only in
the form char b[0] not char b[]


-- 


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



[Bug target/40959] build fails - No rule to make target `/usr/ports/lang/gcc43/work/build/ia64-portbld-freebsd8.0/libgcc/crtfastmath.o', needed by `T_TARGET'. Stop.

2009-11-20 Thread kargl at gcc dot gnu dot org


--- Comment #11 from kargl at gcc dot gnu dot org  2009-11-20 18:10 ---
(In reply to comment #10)
 Does freebsd use glibc?  Does freebsd have a system libunwind?  I am going to
 guess yes to the first question and no to the second in which case you need to
 edit gcc/config.gcc and modify the 'ia64*-*-freebsd*' entry to include the
 t-libunwind-elf and ia64/t-glibc-libunwind makefile fragments to the tm_file
 list.  That is what 'ia64*-*-linux* does when 'with_system_libunwind' is set 
 to
 no.
 

FreeBSD does not use glibc; never has and never will.
FreeBSD does not have a libunwind.


-- 


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



[Bug target/42113] [4.3/4.4/4.5 Regression] Internal Compiler error with -O3, breaking commit known

2009-11-20 Thread ubizjak at gmail dot com


-- 

ubizjak at gmail dot com changed:

   What|Removed |Added

URL||http://gcc.gnu.org/ml/gcc-
   ||patches/2009-
   ||11/msg01115.html
   Target Milestone|4.4.3   |4.3.5


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



[Bug c++/42121] g++ should warn or error on internal 0 size array in struct

2009-11-20 Thread david dot resnick at comverse dot com


--- Comment #2 from david dot resnick at comverse dot com  2009-11-20 18:38 
---
(In reply to comment #1)
 Looks like this is for compatibility with GNU C, which allows it, but only in
 the form char b[0] not char b[]

b[] seems simply broken unless last in an array for the C99 flexible array
member type stuff, no?  I'm not really convinced about the merits/utility of
b[0] as an internal struct field either, it is an odd way to make a union
maybe?

In standard C, a size 0 array is forbidden, at least in C99 doc I have handy,
per constraint in section 6.7.5.2 indicating:

   Constraints

   [#1] The [ and ] may delimit an expression or *.  If [ and ]
   delimit an  expression  (which  specifies  the  size  of  an
   array), it shall have an integer type.  If the expression is
   a constant expression then it shall  have  a  value  greater
   than  zero.   The element type shall not be an incomplete or
   function type.


-- 


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



[Bug c++/42121] g++ should warn or error on internal 0 size array in struct

2009-11-20 Thread redi at gcc dot gnu dot org


--- Comment #3 from redi at gcc dot gnu dot org  2009-11-20 18:49 ---
(In reply to comment #2)
 In standard C, a size 0 array is forbidden, at least in C99 doc I have handy,

Yes, but it's a long-standing GNU extension:
http://gcc.gnu.org/onlinedocs/gcc-4.4.2/gcc/Zero-Length.html#Zero-Length

The C++ front end says:
  /* As an extension we allow zero-sized arrays.  We always allow
 them in system headers because glibc uses them.  */

Maybe the C++ front-end could be made stricter, so that it accepts char b[0]
(like the C front end) but not char b[] (which is a C99 flexible array member,
and must be the last member)


-- 


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



[Bug c++/42121] g++ should warn or error on internal 0 size array in struct

2009-11-20 Thread david dot resnick at comverse dot com


--- Comment #4 from david dot resnick at comverse dot com  2009-11-20 18:56 
---
(In reply to comment #3)
 (In reply to comment #2)
  In standard C, a size 0 array is forbidden, at least in C99 doc I have 
  handy,
 Yes, but it's a long-standing GNU extension:
 http://gcc.gnu.org/onlinedocs/gcc-4.4.2/gcc/Zero-Length.html#Zero-Length
 The C++ front end says:
   /* As an extension we allow zero-sized arrays.  We always allow
  them in system headers because glibc uses them.  */
 Maybe the C++ front-end could be made stricter, so that it accepts char b[0]
 (like the C front end) but not char b[] (which is a C99 flexible array member,
 and must be the last member)

OK, but if you read that link the whole rationale is to do with it being the
last field in a struct, not an internal member, right?  Seems like there is no
possible use in an internal member, and not diagnosing this as warnable means
you don't notice if, say, someone accidentally adds something after the
flexible array member.  Which happened to us, which is why I noticed this
issue.  If this will break existing usage, I see the reason not to change.  But
I'm curious what possible use a non-terminal zero sized array in a struct might
have.

-David


-- 


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



[Bug target/41473] [4.5 Regression] dsymutil Assertion failed ...

2009-11-20 Thread howarth at nitro dot med dot uc dot edu


--- Comment #29 from howarth at nitro dot med dot uc dot edu  2009-11-20 
18:59 ---
I have some additional comments from the dsymutils maintainer...

 7397601 is a bug in dsymutils.  It was not handling the case when the
 dwarf debug info contained an AT_location with form DW_FORM_block1 with
 zero length.  It may also be possible to have the compiler not emit that
 as a work around.

Clarification: The fix was made for any block form (DW_FORM_block1,
DW_FORM_block2, DW_FORM_block4, DW_FORM_block) variant that had zero length.

   One other question. Does dwarf debug info on an AT_location with form
 DW_FORM_block1 that has zero length have any real meaning or is
 that likely just accidental noise on the dwarf debug output?

It is probably accidental noise, or a bug. The variable should be checked to
make sure it really doesn't have a location, and if it doesn't just don't emit
the DW_AT_location attribute. If it does have a valid location, then a lenght
of zero is probably a bug.

 If zero length dwarf debug info, is either invalid or effectively a noop,
 we may just be suffering from the fact binutils is immune to such flaws in
 the dwarf output. Then, darwin might actually be useful in helping identify
 bogus dwarf info being emitted. Thanks in advance for any clarifications.

I have modified dwarfdump to properly dump the information and I did check the
DWARF spec, and it seems that it is ok to have  DW_FORM_blockXXX forms with
zero length, so it isn't invalid DWARF.


-- 


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



[Bug c++/42124] New: warning: array subscript is below array bounds

2009-11-20 Thread djszapi at archlinux dot us
CPP code:

#include malloc.h
#include errno.h

const int INT_INVALID = 0x8000;

template class T, int N class TOPLIST
{
int ind[N], n, lim;
T vals[N];

public:
TOPLIST() { n = 0; lim = N; }
void reset() { n = 0; }

void add(int index, T value)
{
int m;
if(n==lim) { if(vals[n-1]=value) return; } else n++;
for(m=n-1; m0  vals[m-1]value; m--) {
vals[m] = vals[m-1];
ind[m] = ind[m-1];
}
vals[m] = value;
ind[m] = index;
}

T val(int index) {
if(index0 || index=n) return T(0);
else return vals[index];
}

int indx(int index) {
if(index0 || index=n) return INT_INVALID;
else return ind[index];
}

bool IsValid(void) const { return n0; }
};

const char C39PAT[4][11] = {
0111221211, 121122, 211222, 321221
};

int ReadC39()
{
TOPLISTint, 3 T;
int c;
for(c=0; c4; c++) T.add(c, c);

for(c=0; c4; c++)
if(C39PAT[c][T.indx(0)+1]=='2')
break;

return (c4) ? C39PAT[c][0] : '?';
}

int main()
{
return 0;
}




Command which produces the above mentioned warning:

g++ -v --save-temp xxx.cpp -O3 -Wall






And the *.ii files.

# 1 xxx.cpp
# 1 built-in
# 1 command-line
# 1 xxx.cpp

# 1 /usr/include/malloc.h 1 3 4
# 24 /usr/include/malloc.h 3 4
# 1 /usr/include/features.h 1 3 4
# 347 /usr/include/features.h 3 4
# 1 /usr/include/sys/cdefs.h 1 3 4
# 353 /usr/include/sys/cdefs.h 3 4
# 1 /usr/include/bits/wordsize.h 1 3 4
# 354 /usr/include/sys/cdefs.h 2 3 4
# 348 /usr/include/features.h 2 3 4
# 371 /usr/include/features.h 3 4
# 1 /usr/include/gnu/stubs.h 1 3 4



# 1 /usr/include/bits/wordsize.h 1 3 4
# 5 /usr/include/gnu/stubs.h 2 3 4


# 1 /usr/include/gnu/stubs-32.h 1 3 4
# 8 /usr/include/gnu/stubs.h 2 3 4
# 372 /usr/include/features.h 2 3 4
# 25 /usr/include/malloc.h 2 3 4
# 1 /usr/lib/gcc/i686-pc-linux-gnu/4.4.1/include/stddef.h 1 3 4
# 149 /usr/lib/gcc/i686-pc-linux-gnu/4.4.1/include/stddef.h 3 4
typedef int ptrdiff_t;
# 211 /usr/lib/gcc/i686-pc-linux-gnu/4.4.1/include/stddef.h 3 4
typedef unsigned int size_t;
# 26 /usr/include/malloc.h 2 3 4
# 1 /usr/include/stdio.h 1 3 4
# 30 /usr/include/stdio.h 3 4
extern C {



# 1 /usr/lib/gcc/i686-pc-linux-gnu/4.4.1/include/stddef.h 1 3 4
# 35 /usr/include/stdio.h 2 3 4

# 1 /usr/include/bits/types.h 1 3 4
# 28 /usr/include/bits/types.h 3 4
# 1 /usr/include/bits/wordsize.h 1 3 4
# 29 /usr/include/bits/types.h 2 3 4


typedef unsigned char __u_char;
typedef unsigned short int __u_short;
typedef unsigned int __u_int;
typedef unsigned long int __u_long;


typedef signed char __int8_t;
typedef unsigned char __uint8_t;
typedef signed short int __int16_t;
typedef unsigned short int __uint16_t;
typedef signed int __int32_t;
typedef unsigned int __uint32_t;




__extension__ typedef signed long long int __int64_t;
__extension__ typedef unsigned long long int __uint64_t;







__extension__ typedef long long int __quad_t;
__extension__ typedef unsigned long long int __u_quad_t;
# 131 /usr/include/bits/types.h 3 4
# 1 /usr/include/bits/typesizes.h 1 3 4
# 132 /usr/include/bits/types.h 2 3 4


__extension__ typedef __u_quad_t __dev_t;
__extension__ typedef unsigned int __uid_t;
__extension__ typedef unsigned int __gid_t;
__extension__ typedef unsigned long int __ino_t;
__extension__ typedef __u_quad_t __ino64_t;
__extension__ typedef unsigned int __mode_t;
__extension__ typedef unsigned int __nlink_t;
__extension__ typedef long int __off_t;
__extension__ typedef __quad_t __off64_t;
__extension__ typedef int __pid_t;
__extension__ typedef struct { int __val[2]; } __fsid_t;
__extension__ typedef long int __clock_t;
__extension__ typedef unsigned long int __rlim_t;
__extension__ typedef __u_quad_t __rlim64_t;
__extension__ typedef unsigned int __id_t;
__extension__ typedef long int __time_t;
__extension__ typedef unsigned int __useconds_t;
__extension__ typedef long int __suseconds_t;

__extension__ typedef int __daddr_t;
__extension__ typedef long int __swblk_t;
__extension__ typedef int __key_t;


__extension__ typedef int __clockid_t;


__extension__ typedef void * __timer_t;


__extension__ typedef long int __blksize_t;




__extension__ typedef long int __blkcnt_t;
__extension__ typedef __quad_t __blkcnt64_t;


__extension__ typedef unsigned long int __fsblkcnt_t;
__extension__ typedef __u_quad_t __fsblkcnt64_t;


__extension__ typedef unsigned long int __fsfilcnt_t;
__extension__ typedef __u_quad_t __fsfilcnt64_t;

__extension__ typedef int __ssize_t;



typedef __off64_t __loff_t;
typedef __quad_t *__qaddr_t;
typedef char *__caddr_t;


__extension__ typedef int __intptr_t;


__extension__ typedef unsigned int __socklen_t;
# 37 /usr/include/stdio.h 2 3 4
# 45 /usr/include/stdio.h 3 4
struct _IO_FILE;



typedef struct _IO_FILE FILE;





# 65 /usr/include/stdio.h 3 4

[Bug c++/42124] warning: array subscript is below array bounds

2009-11-20 Thread pinskia at gcc dot gnu dot org


--- Comment #1 from pinskia at gcc dot gnu dot org  2009-11-20 19:12 ---
  D.2919_10 = C39PAT[0][-2147483647];

Well there is an array subscript is below array bounds.

It is hard for GCC to figure out that is dead code really without full
unrolling ...


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

   Severity|major   |normal


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



[Bug tree-optimization/42108] [4.4/4.5 Regression] Vectorizer cannot deal with PAREN_EXPR gracefully, 50% performance regression

2009-11-20 Thread toon at moene dot org


--- Comment #13 from toon at moene dot org  2009-11-20 19:45 ---
 The funny conditional initialization of countm1.6 makes the analysis of
 the number of iterations of this loop impossible (not to mention the
 conversions to character(kind=4)).

 Why does the frontend do induction variable optimization at all and
 not simply generate a loop with a non-unit counting IV?

It's not trying to be funny - it just follows the text of the Fortran Standard
(hey, what a concept !):

12   8.1.6.6.1Loop initiation
13 1 When the DO statement is executed, the DO construct becomes active. If
loop-control is
14 2 [ , ] do-variable = scalar-int-expr 1 , scalar-int-expr 2 [ ,
scalar-int-expr 3 ]
15 3 the following steps are performed in sequence.
16  (1)The initial parameter m1 , the terminal parameter m2 , and
the incrementation parameter m3 are
17 of type integer with the same kind type parameter as the
do-variable. Their values are established
18 by evaluating scalar-int-expr 1 , scalar-int-expr 2 , and
scalar-int-expr 3 , respectively, including, if ne-
19 cessary, conversion to the kind type parameter of the
do-variable according to the rules for numeric
20 conversion (Table 7.11). If scalar-int-expr 3 does not
appear, m3 has the value 1. The value of m3
21 shall not be zero.
22  (2)The DO variable becomes defined with the value of the
initial parameter m1 .
23  (3)The iteration count is established and is the value of the
expression (m2 - m1 + m3 )/m3 , unless that
24 value is negative, in which case the iteration count is 0.

Only interprocedural analysis can tell us that this is a simple loop only
executed 3 times (I got this wrong at first - it's *always* executed 3 times).


-- 


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



[Bug c++/42124] warning: array subscript is below array bounds

2009-11-20 Thread djszapi at archlinux dot us


--- Comment #2 from djszapi at archlinux dot us  2009-11-20 19:59 ---
(In reply to comment #1)
   D.2919_10 = C39PAT[0][-2147483647];
 
 Well there is an array subscript is below array bounds.
 
 It is hard for GCC to figure out that is dead code really without full
 unrolling ...
 

If you look at the code you can see 'there is an array subscript is below array
bounds' situation can't be occured! So it's a gcc bug I think so definetely.


-- 


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



[Bug c++/42121] g++ should warn or error on internal 0 size array in struct

2009-11-20 Thread joseph at codesourcery dot com


--- Comment #5 from joseph at codesourcery dot com  2009-11-20 20:57 ---
Subject: Re:  g++ should warn or error on internal 0 size
 array in struct

On Fri, 20 Nov 2009, david dot resnick at comverse dot com wrote:

 (In reply to comment #3)
  (In reply to comment #2)
   In standard C, a size 0 array is forbidden, at least in C99 doc I have 
   handy,
  Yes, but it's a long-standing GNU extension:
  http://gcc.gnu.org/onlinedocs/gcc-4.4.2/gcc/Zero-Length.html#Zero-Length
  The C++ front end says:
/* As an extension we allow zero-sized arrays.  We always allow
   them in system headers because glibc uses them.  */
  Maybe the C++ front-end could be made stricter, so that it accepts char b[0]
  (like the C front end) but not char b[] (which is a C99 flexible array 
  member,
  and must be the last member)
 
 OK, but if you read that link the whole rationale is to do with it being the
 last field in a struct, not an internal member, right?  Seems like there is no
 possible use in an internal member, and not diagnosing this as warnable means
 you don't notice if, say, someone accidentally adds something after the
 flexible array member.  Which happened to us, which is why I noticed this
 issue.  If this will break existing usage, I see the reason not to change.  
 But
 I'm curious what possible use a non-terminal zero sized array in a struct 
 might
 have.

Several cases of C99 flexible array members that C99 does not permit are 
only diagnosed as pedwarns-if-pedantic for C because of glibc using them.  
(I gave an example in 
http://gcc.gnu.org/ml/gcc-patches/2002-08/msg01149.html.)  I haven't 
looked into why it does this.


-- 


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



[Bug c/42097] Reference operator () error from included file.

2009-11-20 Thread bradhomer at gbis dot com


--- Comment #4 from bradhomer at gbis dot com  2009-11-20 21:20 ---
Subject: Re:  Reference operator () error from included file.

Thank you.

The code I submitted for the bug has worked for years in the world of
Borland.  Obviously not so good in the world of linux.

Again thank you for your help.

Brad

On 19 Nov 2009 19:12:36 -, pinskia at gcc dot gnu dot org
gcc-bugzi...@gcc.gnu.org wrote:
 
 
 --- Comment #3 from pinskia at gcc dot gnu dot org  2009-11-19 19:12
 ---
Take a look at The C Programming Language by Kernighan and Ritchie,
 chapter 5.
 
 But this is not a reference operator at this point.  It is for a
reference
 type.  Reference types are different from the reference operator.
 
 
 --
 
 
 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42097
 
 --- You are receiving this mail because: ---
 You reported the bug, or are watching the reporter.


-- 


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



[Bug libstdc++/42019] shared_ptr can not be used with -fno-rtti

2009-11-20 Thread redi at gcc dot gnu dot org


--- Comment #3 from redi at gcc dot gnu dot org  2009-11-20 21:23 ---
Subject: Bug 42019

Author: redi
Date: Fri Nov 20 21:23:02 2009
New Revision: 154377

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=154377
Log:
2009-11-20  Jonathan Wakely  jwakely@gmail.com

PR libstdc++/42019
* include/tr1/shared_ptr.h: Only use typeid when RTTI is enabled.
* include/bits/shared_ptr_base.h: Likewise.
* include/bits/shared_ptr.h: Likewise.
* testsuite/tr1/2_general_utilities/shared_ptr/misc/42019.cc: New.
* testsuite/20_util/shared_ptr/misc/42019.cc: New.


Added:
trunk/libstdc++-v3/testsuite/20_util/shared_ptr/misc/42019.cc
   
trunk/libstdc++-v3/testsuite/tr1/2_general_utilities/shared_ptr/misc/42019.cc
Modified:
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/include/bits/shared_ptr.h
trunk/libstdc++-v3/include/bits/shared_ptr_base.h
trunk/libstdc++-v3/include/tr1/shared_ptr.h


-- 


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



[Bug libgomp/42125] New: check libgomp fails

2009-11-20 Thread bwcc60 at hotmail dot com
I downloaded the source code gcc 4.4.2 and compiled at cygwin. I used 

../gcc-4.4.2/configure --enable-shared --enable-threads=posix --enable-libssp
--enable-libgomp --enable-languages=c,c++ --enable-decimal-float
--disable-bootstrap --without-x --enable-version-specific-runtime-libs

to do configure, then make. The first errors are

xgcc -pthread is not recognized
libgomp.lib: File format not recognized

so I changed /i686-pc-cygwin/libgomp/libtool file and search for the .lib
file extension and change it to .dll.a. 

and modify file /i686-pc-cygwin/libgomp/Makefile with 

CFLAGS = -g -O2   -pthread  
XCFLAGS =  -Wall -Werror -Wc,-pthread   

changed to  
CFLAGS = -g -O2   
XCFLAGS =  -Wall -Werror -Wc,

added -lpthread at line:

libgomp.la: $(libgomp_la_OBJECTS) $(libgomp_la_DEPENDENCIES) 
$(LINK) -rpath $(toolexeclibdir) $(libgomp_la_LDFLAGS)
$(libgomp_la_OBJECTS) $(libgomp_la_LIBADD) $(LIBS) -lpthread

Then again to do make. This time it goes thought. But when use

make check-target-libgomp

to do check, every case fails. It seems that a thread-support library doesn't
generated with libgomp.


-- 
   Summary: check libgomp  fails
   Product: gcc
   Version: 4.4.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libgomp
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: bwcc60 at hotmail dot com


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



  1   2   >