[Bug tree-optimization/49712] internal compiler error: in gen_lsm_tmp_name, at tree-ssa-loop-im.c:2048

2011-07-12 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49712

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011.07.12 06:37:10
 CC||jakub at gcc dot gnu.org
 Ever Confirmed|0   |1

--- Comment #2 from Jakub Jelinek jakub at gcc dot gnu.org 2011-07-12 
06:37:10 UTC ---
Slightly reduced testcase:

int a[2], b, c, d, e;

void
foo (int x, int y)
{
}

int
bar (void)
{
  int i;
  for (; d = 0; d = 1)
for (i = 0; i  4; i++)
  for (e = 0; e; e = 1)
;
  return 0;
}

int
main ()
{
  for (b = 0; b  2; b++)
while (c)
  foo (a[b] = 0, bar ());
  return 0;
}


[Bug tree-optimization/49712] internal compiler error: in gen_lsm_tmp_name, at tree-ssa-loop-im.c:2048

2011-07-12 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49712

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #3 from Jakub Jelinek jakub at gcc dot gnu.org 2011-07-12 
07:02:30 UTC ---
Created attachment 24742
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=24742
gcc47-pr49712.patch

Untested fix.

Wonder if TARGET_MEM_REF shouldn't be handled alongside MEM_REF in
ref_always_accessed_p too.


[Bug rtl-optimization/49710] segfault

2011-07-12 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49710

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011.07.12 07:32:35
 CC||jakub at gcc dot gnu.org
  Component|c   |rtl-optimization
 Ever Confirmed|0   |1

--- Comment #1 from Jakub Jelinek jakub at gcc dot gnu.org 2011-07-12 
07:32:35 UTC ---
Slightly reduced testcase for -O3 -funroll-loops:

int a, b, c, d;

static void
foo (int *x)
{
  c = 0;
  while (1)
{
  if (*x)
break;
  while (b)
for (; c; c = 0);
  for (d = 18; d != 18; d++)
if (c)
  {
foo (x);
return;
  }
}
}

static void
bar ()
{
  foo (0);
  foo (0);
  for (;;)
;
}

baz ()
{
  for (; a;)
bar ();
}

ICEs in fix_bb_placements during rtl loop peeling.


[Bug c++/35383] Lookup of template dependent function with overloads fails for namespace-qualified parameter

2011-07-12 Thread ophir.setter+gcc at emc dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35383

ophir.setter+gcc at emc dot com changed:

   What|Removed |Added

 CC||ophir.setter+gcc at emc dot
   ||com

--- Comment #2 from ophir.setter+gcc at emc dot com 2011-07-12 08:21:25 UTC ---
Is the following the same bug as this bug?
If you remove the specified line it compiles, but without the line it doesn't.
According to my understanding of this analysis, the bug is that it compiles -
even without the line, the specified code should not compile. Am I right?


struct B {};

namespace N {
  void foo(){}  // If you comment this line, everything is well.

  template class T
  void bar(T t) {
foo(t);
  }

  void foo(::B) {
  }
}

int main() {
  B tmp;
  N::bar(tmp);

  return 0;
}


gcc -v -save-temps main.cpp   -o main
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/lto-wrapper
Target: i686-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro
4.5.2-8ubuntu4' --with-bugurl=file:///usr/share/doc/gcc-4.5/README.Bugs
--enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr
--program-suffix=-4.5 --enable-shared --enable-multiarch
--with-multiarch-defaults=i386-linux-gnu --enable-linker-build-id
--with-system-zlib --libexecdir=/usr/lib/i386-linux-gnu
--without-included-gettext --enable-threads=posix
--with-gxx-include-dir=/usr/include/c++/4.5 --libdir=/usr/lib/i386-linux-gnu
--enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug
--enable-libstdcxx-time=yes --enable-plugin --enable-gold --enable-ld=default
--with-plugin-ld=ld.gold --enable-objc-gc --enable-targets=all --disable-werror
--with-arch-32=i686 --with-tune=generic --enable-checking=release
--build=i686-linux-gnu --host=i686-linux-gnu --target=i686-linux-gnu
Thread model: posix
gcc version 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4) 
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-o' 'main' '-mtune=generic'
'-march=i686'
 /usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/cc1plus -E -quiet -v
-D_GNU_SOURCE main.cpp -D_FORTIFY_SOURCE=2 -mtune=generic -march=i686
-fpch-preprocess -fstack-protector -o main.ii
ignoring nonexistent directory /usr/local/include/i386-linux-gnu
ignoring nonexistent directory
/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/../../../../../i686-linux-gnu/include
#include ... search starts here:
#include ... search starts here:
 /usr/include/c++/4.5
 /usr/include/c++/4.5/i686-linux-gnu
 /usr/include/c++/4.5/backward
 /usr/local/include
 /usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/include
 /usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/include-fixed
 /usr/include/i386-linux-gnu
 /usr/include
End of search list.
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-o' 'main' '-mtune=generic'
'-march=i686'
 /usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/cc1plus -fpreprocessed
main.ii -quiet -dumpbase main.cpp -mtune=generic -march=i686 -auxbase main
-version -fstack-protector -o main.s
GNU C++ (Ubuntu/Linaro 4.5.2-8ubuntu4) version 4.5.2 (i686-linux-gnu)
compiled by GNU C version 4.5.2, GMP version 4.3.2, MPFR version 3.0.0-p8,
MPC version 0.9
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
GNU C++ (Ubuntu/Linaro 4.5.2-8ubuntu4) version 4.5.2 (i686-linux-gnu)
compiled by GNU C version 4.5.2, GMP version 4.3.2, MPFR version 3.0.0-p8,
MPC version 0.9
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 0c5cb630517b5952f4898dfa56d7e8e5
main.cpp: In function ‘void N::bar(T) [with T = B]’:
main.cpp:17:13:   instantiated from here
main.cpp:8:5: error: too many arguments to function ‘void N::foo()’
main.cpp:4:8: note: declared here


[Bug middle-end/49519] [4.7 Regression] Revision 175272 miscompiled 447.dealII in SPEC CPU 2006

2011-07-12 Thread rguenther at suse dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49519

--- Comment #29 from rguenther at suse dot de rguenther at suse dot de 
2011-07-12 08:35:18 UTC ---
On Tue, 12 Jul 2011, ian at airs dot com wrote:

 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49519
 
 Ian Lance Taylor ian at airs dot com changed:
 
What|Removed |Added
 
  CC||ian at airs dot com
 
 --- Comment #27 from Ian Lance Taylor ian at airs dot com 2011-07-12 
 04:37:01 UTC ---
 This patch seems too conservative and it appears that it will cause the
 compiler to miss all tailcalls with pointer arguments.  It only matters if the
 register points to the incoming parameters, which can only  happen in unusual
 cases.  We should be able to determine that reliably.  Janis, did you open a 
 PR
 for the missing optimization?  I didn't see one.

The point is, of course, we have to determine it conservatively correct.
The patch makes sure we do that.

Richard.


[Bug fortran/49708] [4.5/4.6/4.7 Regression] ICE with allocate and no dimensions

2011-07-12 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49708

Tobias Burnus burnus at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||ice-on-invalid-code
   Priority|P3  |P5
 CC||burnus at gcc dot gnu.org,
   ||janus at gcc dot gnu.org
  Known to work||4.1.2, 4.3.4, 4.4.0
   Target Milestone|--- |4.6.2
Summary|internal compiler error |[4.5/4.6/4.7 Regression]
   |with allocate and no|ICE with allocate and no
   |dimensions  |dimensions
  Known to fail||4.5.3, 4.6.1, 4.7.0

--- Comment #1 from Tobias Burnus burnus at gcc dot gnu.org 2011-07-12 
08:35:20 UTC ---
Side effect from allowing allocatable scalars in 4.5. With 4.1 to 4.4, one gets
the error:

  Error: Array specification required in ALLOCATE statement at (1)

In principle, the check is still in resolve.c - the question is: Why doesn't it
trigger?


[Bug middle-end/49519] [4.7 Regression] Revision 175272 miscompiled 447.dealII in SPEC CPU 2006

2011-07-12 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49519

--- Comment #30 from Eric Botcazou ebotcazou at gcc dot gnu.org 2011-07-12 
08:42:40 UTC ---
 This patch seems too conservative and it appears that it will cause the
 compiler to miss all tailcalls with pointer arguments.  It only matters if the
 register points to the incoming parameters, which can only  happen in unusual
 cases.  We should be able to determine that reliably.

This is a bit of an overstatement though, as

extern int foo (int, int *);

int i;

int bar (int a, int b)
{
  int *p = i;
  return foo (a, p);
}

will be caught.  Even this

extern int foo (int, int);

int i;

int bar (int a, int b)
{
  int *p = i;
  return foo (a, *p);
}

will be caught thanks to alias analysis at the Tree level.

As for the reliably, this time it's a little optimistic IMO. :-)  But we can
probably be less conservative with more work.


[Bug target/49713] New: Conflicting types for 'arm_dbx_register_number'

2011-07-12 Thread revital.eres at linaro dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49713

   Summary: Conflicting types for 'arm_dbx_register_number'
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: revital.e...@linaro.org
  Host: arm-linux-gnueabi
Target: arm-linux-gnueabi


The following error occurs while bootstrap trunk -r176194 on arm-linux-gnueabi
with the following config options:

 --enable-checking --enable-languages=c --enable-bootstrap

gcc -c   -g -fkeep-inline-functions -DIN_GCC   -W -Wall -Wwrite-strings
-Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wmissing-format-attribute
-pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings
-Wold-style-definition -Wc++-compat -fno-common  -DHAVE_CONFIG_H -I. -I.
-I../../gcc/gcc -I../../gcc/gcc/. -I../../gcc/gcc/../include
-I../../gcc/gcc/../libcpp/include  -I../../gcc/gcc/../libdecnumber
-I../../gcc/gcc/../libdecnumber/dpd -I../libdecnumber   
../../gcc/gcc/dwarf2cfi.c -o dwarf2cfi.o
In file included from ../../gcc/gcc/dwarf2cfi.c:31:0:
../../gcc/gcc/dwarf2out.h: In function 'dwarf_frame_regnum':
../../gcc/gcc/dwarf2out.h:271:3: warning: implicit declaration of function
'arm_dbx_register_number'
In file included from ./tm_p.h:4:0,
 from ../../gcc/gcc/dwarf2cfi.c:34:
../../gcc/gcc/config/arm/arm-protos.h: At top level:
../../gcc/gcc/config/arm/arm-protos.h:41:21: error: conflicting types for
'arm_dbx_register_number'
../../gcc/gcc/dwarf2out.h:271:10: note: previous implicit declaration of
'arm_dbx_register_number' was here


[Bug middle-end/49711] [4.7 Regression] 186.crafty in SPEC CPU 2000 failed to build

2011-07-12 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49711

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||DUPLICATE

--- Comment #3 from Richard Guenther rguenth at gcc dot gnu.org 2011-07-12 
08:49:12 UTC ---
.

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


[Bug rtl-optimization/49710] [4.7 Regression] segfault

2011-07-12 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49710

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

  Known to work||4.6.1
   Target Milestone|--- |4.7.0
Summary|segfault|[4.7 Regression] segfault


[Bug tree-optimization/49712] internal compiler error: in gen_lsm_tmp_name, at tree-ssa-loop-im.c:2048

2011-07-12 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49712

--- Comment #4 from Richard Guenther rguenth at gcc dot gnu.org 2011-07-12 
08:48:45 UTC ---
(In reply to comment #3)
 Created attachment 24742 [details]
 gcc47-pr49712.patch
 
 Untested fix.
 
 Wonder if TARGET_MEM_REF shouldn't be handled alongside MEM_REF in
 ref_always_accessed_p too.

Looks obvious.


[Bug c/49706] No warning for (!x 1) which is always false

2011-07-12 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49706

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||diagnostic
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011.07.12 08:51:27
 Ever Confirmed|0   |1
   Severity|normal  |enhancement

--- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2011-07-12 
08:51:27 UTC ---
Confirmed.


[Bug tree-optimization/49712] internal compiler error: in gen_lsm_tmp_name, at tree-ssa-loop-im.c:2048

2011-07-12 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49712

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 CC||hjl.tools at gmail dot com

--- Comment #5 from Richard Guenther rguenth at gcc dot gnu.org 2011-07-12 
08:49:12 UTC ---
*** Bug 49711 has been marked as a duplicate of this bug. ***


[Bug rtl-optimization/49710] [4.7 Regression] segfault

2011-07-12 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49710

--- Comment #2 from Jakub Jelinek jakub at gcc dot gnu.org 2011-07-12 
08:54:29 UTC ---
Caused by http://gcc.gnu.org/viewcvs?root=gccview=revrev=172430
but more probably this is just a dup of PR48813, which was for this testcase
latent before.  Honza, any chance you could look at that and PR48813?  The ICE
is in the exact same spot, base_loop is non-NULL, but base_loop-header is
NULL,
as the loop has been marked for removal in delete_basic_block called from
remove_bbs/remove_path during the peeling.  The same remove_path then calls
fix_loop_placements which calls fix_bb_placements which ICEs.
That delete_basic_block is apparently called on the loop-latch bb, which
queues the loop for removal anyway, but loop-header hasn't been removed and
its bb-loop_father still points to the loop that has now header and latch
fields NULL.


[Bug middle-end/49705] -Wstrict-overflow should not diagnose unevaluated expressions

2011-07-12 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49705

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Keywords||diagnostic
   Last reconfirmed||2011.07.12 08:57:17
  Component|c   |middle-end
 CC||iant at google dot com
 Ever Confirmed|0   |1

--- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2011-07-12 
08:57:17 UTC ---
Confirmed.  And very difficult to fix.


[Bug tree-optimization/49712] internal compiler error: in gen_lsm_tmp_name, at tree-ssa-loop-im.c:2048

2011-07-12 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49712

--- Comment #6 from Jakub Jelinek jakub at gcc dot gnu.org 2011-07-12 
09:13:11 UTC ---
Author: jakub
Date: Tue Jul 12 09:13:06 2011
New Revision: 176195

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=176195
Log:
PR tree-optimization/49712
* tree-ssa-loop-im.c (gen_lsm_tmp_name): Handle TARGET_MEM_REF.

* gcc.c-torture/execute/pr49712.c: New test.

Added:
trunk/gcc/testsuite/gcc.c-torture/execute/pr49712.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-ssa-loop-im.c


[Bug c/49706] No warning for (!x 1) which is always false

2011-07-12 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49706

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #2 from Jakub Jelinek jakub at gcc dot gnu.org 2011-07-12 
09:27:38 UTC ---
-Wtype-limits is apparently just in shorten_compare and vrp, while here it is
optimized by fold.  For
_Bool x;
...
if (x  1)
or
struct { unsigned int i : 1; } x;
...
if (x.i  1)
we don't warn either.


[Bug lto/49700] LTO compile time hog

2011-07-12 Thread Joost.VandeVondele at pci dot uzh.ch
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49700

--- Comment #5 from Joost VandeVondele Joost.VandeVondele at pci dot uzh.ch 
2011-07-12 10:17:54 UTC ---
(In reply to comment #3)
 Oh, so it's a sum ...
 
 Well, the I suppose you run into the usual array-prefetching compile-time hog.
 Try -fno-prefetch-loop-arrays.

This seems to reduce the time by 5x. On a non-LTO run, this doesn't matter, but
I assume LTO makes more info available that triggers some action by that pass.


[Bug target/49714] New: [4.7 Regression] Revision 176128 introduced many ICEs in insn_default_length, at config/i386/i386.md:600

2011-07-12 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49714

   Summary: [4.7 Regression] Revision 176128  introduced many ICEs
in insn_default_length, at config/i386/i386.md:600
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: domi...@lps.ens.fr
CC: r...@gcc.gnu.org, ia...@gcc.gnu.org
  Host: x86_64-apple-darwin10
Target: x86_64-apple-darwin10
 Build: x86_64-apple-darwin10


On x86_64-apple-darwin10, revision 176128 introduced a lot of failures in the
test suite of the kind:

[macbook] f90/bug% /opt/gcc/gcc4.7p/bin/g++
/opt/gcc/work/gcc/testsuite/g++.old-deja/g++.other/dyncast1.C
/opt/gcc/work/gcc/testsuite/g++.old-deja/g++.other/dyncast1.C: In member
function 'void E::_ZThn8_N1ED1Ev()':
/opt/gcc/work/gcc/testsuite/g++.old-deja/g++.other/dyncast1.C:123:1: error:
unrecognizable insn:
(jump_insn 3 2 4 (set (pc)
(mem:QI (const:DI (unspec:DI [
(symbol_ref/i:DI (_ZN1ED1Ev) [flags 0x1]
function_decl 0x1428b7400 __comp_dtor )
] UNSPEC_GOTPCREL)) [0 S1 A8])) -1
 (nil))
/opt/gcc/work/gcc/testsuite/g++.old-deja/g++.other/dyncast1.C:123:1: internal
compiler error: in insn_default_length, at config/i386/i386.md:600


[Bug target/49714] [4.7 Regression] Revision 176128 introduced many ICEs in insn_default_length, at config/i386/i386.md:600

2011-07-12 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49714

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|--- |4.7.0


[Bug target/49715] New: Could do more efficient unsigned-to-float to conversions based on range information

2011-07-12 Thread sgunderson at bigfoot dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49715

   Summary: Could do more efficient unsigned-to-float to
conversions based on range information
   Product: gcc
   Version: 4.6.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: sgunder...@bigfoot.com


I have code that looks vaguely like this:

float func(unsigned x)
{
return (x  0xf) * 0.01f;
}

When I compile it, GCC gives a long and relatively slow sequence:

fugl:~ gcc-4.6 -v
Using built-in specs.
COLLECT_GCC=/usr/bin/gcc-4.6
COLLECT_LTO_WRAPPER=/usr/lib/i386-linux-gnu/gcc/i486-linux-gnu/4.6.1/lto-wrapper
Target: i486-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.6.1-3'
--with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs
--enable-languages=c,c++,fortran,objc,obj-c++,go --prefix=/usr
--program-suffix=-4.6 --enable-shared --enable-multiarch
--with-multiarch-defaults=i386-linux-gnu --enable-linker-build-id
--with-system-zlib --libexecdir=/usr/lib/i386-linux-gnu
--without-included-gettext --enable-threads=posix
--with-gxx-include-dir=/usr/include/c++/4.6 --libdir=/usr/lib/i386-linux-gnu
--enable-nls --enable-clocale=gnu --enable-libstdcxx-debug
--enable-libstdcxx-time=yes --enable-plugin --enable-objc-gc
--enable-targets=all --with-arch-32=i586 --with-tune=generic
--enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu
--target=i486-linux-gnu
Thread model: posix
gcc version 4.6.1 (Debian 4.6.1-3) 

fugl:~ gcc-4.6 -O2 -march=pentium3 -msse2 -mfpmath=sse -c test.c
fugl:~ objdump --disassemble test.o 

test.o: file format elf32-i386


Disassembly of section .text:

 func:
   0:83 ec 04 sub$0x4,%esp
   3:8b 54 24 08  mov0x8(%esp),%edx
   7:89 d0mov%edx,%eax
   9:81 e2 ff ff 00 00and$0x,%edx
   f:25 ff ff 0f 00   and$0xf,%eax
  14:c1 e8 10 shr$0x10,%eax
  17:f3 0f 2a c0  cvtsi2ss %eax,%xmm0
  1b:f3 0f 2a ca  cvtsi2ss %edx,%xmm1
  1f:f3 0f 59 05 00 00 00 mulss  0x0,%xmm0
  26:00 
  27:f3 0f 58 c1  addss  %xmm1,%xmm0
  2b:f3 0f 59 05 04 00 00 mulss  0x4,%xmm0
  32:00 
  33:f3 0f 11 04 24   movss  %xmm0,(%esp)
  38:d9 04 24 flds   (%esp)
  3b:58   pop%eax
  3c:c3   ret
  3d:8d 76 00 lea0x0(%esi),%esi

I assume this is because x is unsigned (I cannot easily change this, as I
depend on wraparound). However, if I insert a cast to int after the and
operation, I get the same results, and a much better sequence:

0040 func2:
  40:83 ec 04 sub$0x4,%esp
  43:8b 44 24 08  mov0x8(%esp),%eax
  47:25 ff ff 0f 00   and$0xf,%eax
  4c:f3 0f 2a c0  cvtsi2ss %eax,%xmm0
  50:f3 0f 59 05 04 00 00 mulss  0x4,%xmm0
  57:00 
  58:f3 0f 11 04 24   movss  %xmm0,(%esp)
  5d:d9 04 24 flds   (%esp)
  60:5a   pop%edx
  61:c3   ret

In other words, the modified code looks like this:

float func2(unsigned x)
{
return (int)(x  0xf) * 0.01f;
}

This should be possible for GCC to do when it has range information that says
the sign bit cannot be set.


[Bug rtl-optimization/49014] [4.7 Regression] ICE: in reset_sched_cycles_in_current_ebb, at sel-sched.c:7132 with even more insane set of flags

2011-07-12 Thread abel at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49014

--- Comment #7 from Andrey Belevantsev abel at gcc dot gnu.org 2011-07-12 
12:12:40 UTC ---
Author: abel
Date: Tue Jul 12 12:12:36 2011
New Revision: 176197

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=176197
Log:
Backport from mainline
2011-05-25  Andrey Belevantsev  a...@ispras.ru

PR rtl-optimization/49014
* config/i386/athlon.md (athlon_ssecomi): Change type to ssecomi.


Modified:
branches/gcc-4_5-branch/gcc/ChangeLog
branches/gcc-4_5-branch/gcc/config/i386/athlon.md


[Bug rtl-optimization/49014] [4.7 Regression] ICE: in reset_sched_cycles_in_current_ebb, at sel-sched.c:7132 with even more insane set of flags

2011-07-12 Thread abel at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49014

Andrey Belevantsev abel at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED

--- Comment #8 from Andrey Belevantsev abel at gcc dot gnu.org 2011-07-12 
12:13:39 UTC ---
Fixed.


[Bug c/49716] New: internal compiler error: in new_Cloog_Domain_from_ppl_Pointset_Powerset

2011-07-12 Thread stephan at openelec dot tv
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49716

   Summary: internal compiler error: in
new_Cloog_Domain_from_ppl_Pointset_Powerset
   Product: gcc
   Version: 4.6.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: step...@openelec.tv


compiling busybox-1.18.5 with gcc-4.6.1 with enabled:

-ftree-loop-distribution
-floop-interchange
-floop-strip-mine
-floop-block
-fgraphite-identity

and using gold linker fails with:


 
/home/stephan/projects/jetstream-master/build.Jetstream-MK_I.i386-devel/toolchain/bin/i686-openelec-linux-gnu-gcc
-Wp,-MD,shell/.math.o.d   -std=gnu99 -Iinclude -Ilibbb  -include
include/autoconf.h -D_GNU_SOURCE -DNDEBUG -D_LARGEFILE_SOURCE
-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -DBB_VER=KBUILD_STR(1.18.5)
-DBB_BT=AUTOCONF_TIMESTAMP -march=atom -m32 -fomit-frame-pointer -Wall -pipe
-Os -fexcess-precision=fast -ftree-loop-distribution -floop-interchange
-floop-strip-mine -floop-block -fgraphite-identity -mfpmath=sse
-ftree-vectorize -mmovbe -Wall -Wshadow -Wwrite-strings -Wundef
-Wstrict-prototypes -Wunused -Wunused-parameter -Wunused-function
-Wunused-value -Wmissing-prototypes -Wmissing-declarations
-Wdeclaration-after-statement -Wold-style-definition -fno-builtin-strlen
-finline-limit=0 -fomit-frame-pointer -ffunction-sections -fdata-sections
-fno-guess-branch-probability -funsigned-char -static-libgcc
-falign-functions=1 -falign-jumps=1 -falign-labels=1 -falign-loops=1 -Os 
-march=i386 -mpreferred-stack-boundary=2-DKBUILD_STR(s)=#s
-DKBUILD_BASENAME=KBUILD_STR(math)  -DKBUILD_MODNAME=KBUILD_STR(math) -c -o
shell/math.o shell/math.c
shell/math.c:1:0: warning: SSE instruction set disabled, using 387 arithmetics
[enabled by default]
shell/math.c:1:0: warning: SSE instruction set disabled, using 387 arithmetics
[enabled by default]
shell/math.c: In function 'arith_apply':
shell/math.c:300:1: internal compiler error: in
new_Cloog_Domain_from_ppl_Pointset_Powerset, at graphite-cloog-util.c:302
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.
make[2]: *** [shell/math.o] Error 1
make[1]: *** [shell] Error 2
make[1]: *** Waiting for unfinished jobs

it was working with gcc-4.5.x

thanks

Stephan


[Bug tree-optimization/49715] Could do more efficient unsigned-to-float to conversions based on range information

2011-07-12 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49715

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Keywords||missed-optimization
   Last reconfirmed||2011.07.12 12:18:02
  Component|target  |tree-optimization
 CC||rguenth at gcc dot gnu.org
 Ever Confirmed|0   |1

--- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2011-07-12 
12:18:02 UTC ---
Confirmed.  VRP could do this transformation.  I'm not sure it's always
worth or if there is a target that can do faster unsigned - float conversion
than signed - float conversion (though I doubt that).  Probably similar
optimization can be applied for

float func (unsigned long long x)
{
  return (x  0xf) * 0.01f;
}

that is, introduce a truncation so that the int-float expander can use
floatsi instead of floatdi which might not be available either.

It happens that i?86 defines floatunsssi, so depending on the availability
of a unsigned - float expander isn't a good profitability check.

The odd thing is of course that VRP would _insert_ a conversion ...


[Bug fortran/49708] [4.5/4.6/4.7 Regression] ICE with allocate and no dimensions

2011-07-12 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49708

janus at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011.07.12 12:27:33
 Ever Confirmed|0   |1

--- Comment #2 from janus at gcc dot gnu.org 2011-07-12 12:27:33 UTC ---
(In reply to comment #1)
 In principle, the check is still in resolve.c - the question is: Why doesn't 
 it
 trigger?

Apparently because of the pointer attribute. Changing pointer to
allocatable in the test case will trigger the error message.

With the following patch one also gets the error message for the pointer case,
but I haven't checked if this breaks anything else:


Index: gcc/fortran/resolve.c
===
--- gcc/fortran/resolve.c(revision 175788)
+++ gcc/fortran/resolve.c(working copy)
@@ -6884,7 +6884,7 @@ resolve_allocate_expr (gfc_expr *e, gfc_code *code
   gfc_find_derived_vtab (ts.u.derived);
 }

-  if (pointer || (dimension == 0  codimension == 0))
+  if (dimension == 0  codimension == 0)
 goto success;

   /* Make sure the last reference node is an array specifiction.  */


[Bug libstdc++/49717] New: Debug version checking algorithmic preconditions may have different complexity

2011-07-12 Thread bangerth at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49717

   Summary: Debug version checking algorithmic preconditions may
have different complexity
   Product: gcc
   Version: 4.5.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: libstdc++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: bange...@gmail.com


This is essentially just a request to state something more explicitly on
the website:

We've started using the libstdc++ debug mode for running our testsuite (and
found a dozen or so bugs with it -- yay) but I've come to realize that
a bunch of tests now time out: they've become orders of magnitude slower.
The reason I found for this is that many of the algorithms in libstdc++
(rightfully) check preconditions. For example, std::lower_bound checks
whether indeed the given element partitions the sequence. The problem here
is that these checks violate the complexity guarantees of the algorithms:
std::lower_bound is supposed to be O(log(N)) but with the check for
partitioning, it is now O(N). In our case, we call this function for
each element of a sequence, and so we get O(N**2) instead of O(N log(N))
and the result is the increase in compute time.

There is little one can do about this -- the debug mode is meant to check
these things and it can't be done in O(log(N)). But it would be good to
state this prominently somewhere in the corresponding web sites.

Thanks
 W.


[Bug fortran/49708] [4.5/4.6/4.7 Regression] ICE with allocate and no dimensions

2011-07-12 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49708

--- Comment #3 from janus at gcc dot gnu.org 2011-07-12 12:38:55 UTC ---
I'm afraid the regression was introduced by this commit of mine:

http://gcc.gnu.org/viewcvs?view=revisionrevision=151240


[Bug c++/45697] __restrict__ inconsistent in presence of typedefs

2011-07-12 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45697

--- Comment #5 from Jason Merrill jason at gcc dot gnu.org 2011-07-12 
12:47:30 UTC ---
Since clang handles this differently, I think I'll leave it as SUSPENDED for
now.


[Bug tree-optimization/49715] Could do more efficient unsigned-to-float to conversions based on range information

2011-07-12 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49715

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #2 from Richard Guenther rguenth at gcc dot gnu.org 2011-07-12 
12:50:21 UTC ---
Created attachment 24743
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=24743
proof of concept

Like this.


[Bug lto/48851] lto-plugin.c:224:7: error: missing sentinel in function call [-Werror=format]

2011-07-12 Thread jsg at openbsd dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48851

--- Comment #20 from Jonathan Gray jsg at openbsd dot org 2011-07-12 13:00:32 
UTC ---
So can you commit your patch and unbreak the build?  It is clearly broken,
anyone wanting to do a less broken version of the fixincludes mangling can do
so at a later point.


[Bug libstdc++/49717] Debug version checking algorithmic preconditions may have different complexity

2011-07-12 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49717

--- Comment #1 from Jonathan Wakely redi at gcc dot gnu.org 2011-07-12 
13:48:32 UTC ---
http://gcc.gnu.org/onlinedocs/libstdc++/manual/bk01pt03ch17s02.html

All functional and exception-handling guarantees made by the normal library
also hold for the debug mode library, with one exception: performance
guarantees made by the normal library may not hold in the debug mode library.
For instance, erasing an element in a std::list is a constant-time operation in
normal library, but in debug mode it is linear in the number of iterators that
reference that particular list. So while your (correct) program won't change
its results, it is likely to execute more slowly.


[Bug fortran/45170] [F2003] allocatable character lengths

2011-07-12 Thread boschmann at tp1 dot physik.uni-siegen.de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170

Hans-Werner Boschmann boschmann at tp1 dot physik.uni-siegen.de changed:

   What|Removed |Added

 CC||boschmann at tp1 dot
   ||physik.uni-siegen.de

--- Comment #14 from Hans-Werner Boschmann boschmann at tp1 dot 
physik.uni-siegen.de 2011-07-12 13:51:08 UTC ---
I've got one more item for the TODO list:

character(:),allocatable::string
integer::length
length=5
allocate(character(len=length)::string)

This is not yet accepted by gfortran. Is there any other way to allocate
string without a primitive like string=repeat( ,10)?


[Bug libstdc++/49717] Debug version checking algorithmic preconditions may have different complexity

2011-07-12 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49717

--- Comment #2 from Jonathan Wakely redi at gcc dot gnu.org 2011-07-12 
13:54:51 UTC ---
You should consider using 4.6 for the tests using debug mode - there are some
huge performance improvements, where non-debug iterators are used when checking
is known to have been done already e.g. instead of incrementing a debug
iterator N times and checking on every increment, do the necessary checks once
then increment the underlying unsafe iterator N times


[Bug c/49626] Explicit conversion skipped when followed by conversion to a wider type

2011-07-12 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49626

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011.07.12 13:56:39
 CC||jason at gcc dot gnu.org
  Component|c++ |c
 Ever Confirmed|0   |1

--- Comment #2 from Jason Merrill jason at gcc dot gnu.org 2011-07-12 
13:56:39 UTC ---
This does seem like a bug, since the documentation says An explicit cast
silences the warning.  This bug also affects the C front end, so I'm changing
the category to C.

unsigned long f()
{
  short sh;
  return (unsigned int)sh;
}


[Bug libstdc++/49717] Debug version checking algorithmic preconditions may have different complexity

2011-07-12 Thread bangerth at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49717

Wolfgang Bangerth bangerth at gmail dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution||FIXED

--- Comment #3 from Wolfgang Bangerth bangerth at gmail dot com 2011-07-12 
14:00:05 UTC ---
Aw, thanks for the link -- I wonder how I missed that :-( I'm looking forward
to trying 4.6 whenever our sysadmins decide to put it onto our machines --
the things you mention are one of many goodies worth trying.

Thanks
 W.


[Bug middle-end/49699] Aligned load on unaligned address

2011-07-12 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49699

--- Comment #4 from H.J. Lu hjl.tools at gmail dot com 2011-07-12 14:05:08 
UTC ---
(In reply to comment #2)
 
 Very old issue.  The aligned attribute cannot be reliably used to decrease
 alignment.

Can we issue a warning for things like this?


[Bug middle-end/49699] Aligned load on unaligned address

2011-07-12 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49699

--- Comment #5 from H.J. Lu hjl.tools at gmail dot com 2011-07-12 14:06:08 
UTC ---
(In reply to comment #3)
 I think you'd need to make it packed as well, but then it depends on gcc
 version which alignment the aggregate actually has.

This issue came from

http://sourceware.org/bugzilla/show_bug.cgi?id=12872


[Bug fortran/45170] [F2003] allocatable character lengths

2011-07-12 Thread sgk at troutmask dot apl.washington.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170

--- Comment #15 from Steve Kargl sgk at troutmask dot apl.washington.edu 
2011-07-12 14:19:24 UTC ---
On Tue, Jul 12, 2011 at 01:51:40PM +, boschmann at tp1 dot
physik.uni-siegen.de wrote:
 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170
 
 Hans-Werner Boschmann boschmann at tp1 dot physik.uni-siegen.de changed:
 
What|Removed |Added
 
  CC||boschmann at tp1 dot
||physik.uni-siegen.de
 
 --- Comment #14 from Hans-Werner Boschmann boschmann at tp1 dot 
 physik.uni-siegen.de 2011-07-12 13:51:08 UTC ---
 I've got one more item for the TODO list:
 
 character(:),allocatable::string
 integer::length
 length=5
 allocate(character(len=length)::string)
 
 This is not yet accepted by gfortran. Is there any other way to allocate
 string without a primitive like string=repeat( ,10)?

laptop:kargl[212] gfc4x -o z g.f90
laptop:kargl[213] ./z
 yes!!
laptop:kargl[214] cat g.f90
character(:),allocatable::string
string='yes!!'
print *, string
end


[Bug lto/48851] lto-plugin.c:224:7: error: missing sentinel in function call [-Werror=format]

2011-07-12 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48851

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 AssignedTo|rguenth at gcc dot gnu.org  |mikestump at comcast dot
   ||net

--- Comment #21 from Richard Guenther rguenth at gcc dot gnu.org 2011-07-12 
14:20:44 UTC ---
Mike has taken this bug.


[Bug c++/49718] New: please allow no_instrument_function attribute in class member definition/declaration

2011-07-12 Thread jojelino at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49718

   Summary: please allow no_instrument_function attribute in class
member definition/declaration
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: jojel...@gmail.com


it says
instrument.cc:10:6: error: can’t set ‘no_instrument_function’ attribute after
definition
isn't it false-positive? because in class/struct it is normal one to define
such member function in it.

#include stdio.h
struct t
{
public:
t();
__attribute__((no_instrument_function)) void a(){
}
void __attribute__((no_instrument_function))b(){
}
void c() __attribute__((no_instrument_function)){
}
void d() __attribute__((no_instrument_function));
};
void t::d()
{}
int main()
{
t a;
a.a();
}

$ g++ instrument.cc  -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/i686-pc-cygwin/4.7.0/lto-wrapper.exe
Target: i686-pc-cygwin
Configured with: ./configure --config-cache --prefix=/usr
--disable-win32-registry --enable-threads=win32 --enable-languages=c,c++,lto
--with-win32-nlsapi=unicode --enable-tls --disable-bootstrap --enable-shared
--disable-sjlj-exceptions --enable-gomp
Thread model: win32
gcc version 4.7.0 20110708 (experimental) (GCC)
COLLECT_GCC_OPTIONS='-v' '-shared-libgcc' '-mtune=generic' '-march=pentiumpro'
 /usr/libexec/gcc/i686-pc-cygwin/4.7.0/cc1plus.exe -quiet -v -D__CYGWIN32__
-D__CYGWIN__ -Dunix -D__unix__ -D__unix -idirafter
/usr/lib/gcc/i686-pc-cygwin/4.7.0/../../../../i686-pc-cygwin/lib/../include/w32api
-idirafter
/usr/lib/gcc/i686-pc-cygwin/4.7.0/../../../../i686-pc-cygwin/lib/../../include/w32api
instrument.cc -quiet -dumpbase instrument.cc -mtune=generic -march=pentiumpro
-auxbase instrument -version -o /tmp/ccqnGK06.s
GNU C++ (GCC) version 4.7.0 20110708 (experimental) (i686-pc-cygwin)
compiled by GNU C version 4.7.0 20110622 (experimental), GMP version
5.0.0, MPFR version 2.4.2, MPC version 0.8.1
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
ignoring duplicate directory /usr/include
ignoring duplicate directory
/usr/lib/gcc/i686-pc-cygwin/4.7.0/../../../../i686-pc-cygwin/lib/../../include/w32api
#include ... search starts here:
#include ... search starts here:
 /usr/lib/gcc/i686-pc-cygwin/4.7.0/../../../../include/c++/4.7.0
 /usr/lib/gcc/i686-pc-cygwin/4.7.0/../../../../include/c++/4.7.0/i686-pc-cygwin
 /usr/lib/gcc/i686-pc-cygwin/4.7.0/../../../../include/c++/4.7.0/backward
 /usr/lib/gcc/i686-pc-cygwin/4.7.0/include
 /usr/local/include
 /usr/lib/gcc/i686-pc-cygwin/4.7.0/include-fixed
 /usr/lib/gcc/i686-pc-cygwin/4.7.0/../../../../i686-pc-cygwin/include

/usr/lib/gcc/i686-pc-cygwin/4.7.0/../../../../i686-pc-cygwin/lib/../include/w32api
End of search list.
GNU C++ (GCC) version 4.7.0 20110708 (experimental) (i686-pc-cygwin)
compiled by GNU C version 4.7.0 20110622 (experimental), GMP version
5.0.0, MPFR version 2.4.2, MPC version 0.8.1
GGC heuristics: --param ggc-min-expand=30 --param ggc-min-heapsize=4096
Compiler executable checksum: 68ba7c3bade77b76b9651c346a28b1de
instrument.cc:6:46: error: can’t set ‘no_instrument_function’ attribute after
definition
instrument.cc:8:45: error: can’t set ‘no_instrument_function’ attribute after
definition
instrument.cc:10:6: error: can’t set ‘no_instrument_function’ attribute after
definition


[Bug middle-end/49705] -Wstrict-overflow should not diagnose unevaluated expressions

2011-07-12 Thread ian at airs dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49705

Ian Lance Taylor ian at airs dot com changed:

   What|Removed |Added

 CC||ian at airs dot com

--- Comment #2 from Ian Lance Taylor ian at airs dot com 2011-07-12 14:25:13 
UTC ---
Very difficult to fix in the general case but easy to fix in this particular
case.  When the warning is issued, c_inhibit_evaluation_warnings is 1.  All we
need to do is, when setting c_inhibit_evaluation_warnings non-zero, also call
fold_defer_overflow_warnings.


[Bug middle-end/49705] -Wstrict-overflow should not diagnose unevaluated expressions

2011-07-12 Thread ian at airs dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49705

--- Comment #3 from Ian Lance Taylor ian at airs dot com 2011-07-12 14:25:56 
UTC ---
Created attachment 24744
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=24744
Possible patch

Here is a possible patch to fix this test case.


[Bug tree-optimization/49651] [C++0x] nested lambdas and -O3 produced incorrect integer variable increments

2011-07-12 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49651

Jason Merrill jason at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jason at gcc dot gnu.org
  Component|c++ |tree-optimization

--- Comment #5 from Jason Merrill jason at gcc dot gnu.org 2011-07-12 
14:38:53 UTC ---
With current pre-4.6.2 I find that it fails with

-O2 -fno-thread-jumps -fno-align-functions -fno-align-jumps -fno-align-loops 
-fno-align-labels  -fno-caller-saves  -fno-crossjumping
  -fno-cse-follow-jumps  -fno-cse-skip-blocks 
-fno-delete-null-pointer-checks  -fno-expensive-optimizations 
-fno-gcse  -fno-gcse-lm  -fno-inline-small-functions 
-fno-indirect-inlining  -fno-ipa-sra 
-fno-optimize-sibling-calls  -fno-peephole2  -fno-regmove  
   -fno-reorder-blocks  -fno-reorder-functions 
-fno-rerun-cse-after-loop  -fno-sched-interblock  -fno-sched-spec  
   -fno-schedule-insns  -fno-schedule-insns2  -fno-strict-aliasing
-fno-strict-overflow  -fno-tree-switch-conversion 
-fno-tree-pre  -fno-tree-vrp  -fno-devirtualize -fno-ipa-cp
-fno-tree-builtin-call-dce  -fno-auto-inc-dec -fno-cprop-registers -fno-dce
-fno-defer-pop -fno-delayed-branch -fno-dse -fno-guess-branch-probability
-fno-if-conversion -fno-if-conversion2 -fno-ipa-pure-const -fno-ipa-reference
-fno-merge-constants -fno-split-wide-types -fno-tree-builtin-call-dce
-fno-tree-ccp -fno-tree-ch -fno-tree-copyrename -fno-tree-dce
-fno-tree-forwprop -fno-tree-phiprop -fno-tree-sra -fno-tree-ter

But adding -O1, -fno-tree-pta or -fno-tree-fre makes it work.

There only seem to be a few places that depend on optimize being 1 vs 2.

Changing category to tree-optimization.


[Bug lto/49700] LTO compile time hog

2011-07-12 Thread Joost.VandeVondele at pci dot uzh.ch
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49700

--- Comment #6 from Joost VandeVondele Joost.VandeVondele at pci dot uzh.ch 
2011-07-12 14:40:29 UTC ---
(In reply to comment #1)
 Joost, can you point us to a source tarball?  Does the issue reproduce
 with simpler flags (plain -O2 or plain -O3?  Esp. w/o -march=native?)

CP2K sources are easy, but the to get a version that links, there are
additional non-standard dependencies (blas, lapack, libint).


[Bug fortran/49708] [4.5/4.6/4.7 Regression] ICE with allocate and no dimensions

2011-07-12 Thread janus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49708

janus at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #4 from janus at gcc dot gnu.org 2011-07-12 14:44:30 UTC ---
(In reply to comment #2)
 With the following patch one also gets the error message for the pointer case,
 but I haven't checked if this breaks anything else:
 
 
 Index: gcc/fortran/resolve.c
 ===
 --- gcc/fortran/resolve.c(revision 175788)
 +++ gcc/fortran/resolve.c(working copy)
 @@ -6884,7 +6884,7 @@ resolve_allocate_expr (gfc_expr *e, gfc_code *code
gfc_find_derived_vtab (ts.u.derived);
  }
 
 -  if (pointer || (dimension == 0  codimension == 0))
 +  if (dimension == 0  codimension == 0)
  goto success;
 
/* Make sure the last reference node is an array specifiction.  */


I just verified that this patch is free of testsuite regressions.


[Bug fortran/45170] [F2003] allocatable character lengths

2011-07-12 Thread burnus at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170

--- Comment #16 from Tobias Burnus burnus at gcc dot gnu.org 2011-07-12 
14:44:11 UTC ---
(In reply to comment #14)
 allocate(character(len=length)::string)
 
 This is not yet accepted by gfortran. Is there any other way to allocate
 string without a primitive like string=repeat( ,10)?

  Error: Variable 'length' cannot appear in the expression at (1)

That comes from the specification expression check. The check is called via
  resolve_types - resolve_charlen - resolve_index_expr -
gfc_specification_expr

Thus, one needs to somehow distinguish length specifications in the ALLOCATE
from those in a type-declaration statement; I think one needs to modify both
resolve_index_expr (not calling gfc_specification_expr) and resolve_charlen
(not setting specification_expr).


[Bug c/49716] internal compiler error: in new_Cloog_Domain_from_ppl_Pointset_Powerset

2011-07-12 Thread spop at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49716

--- Comment #1 from Sebastian Pop spop at gcc dot gnu.org 2011-07-12 14:55:07 
UTC ---
Please attach a preprocessed source (just add a -E option to the failing
compile line and the preprocessed source should be in math.o).

Thanks,
Sebastian


[Bug fortran/45170] [F2003] allocatable character lengths

2011-07-12 Thread boschmann at tp1 dot physik.uni-siegen.de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45170

--- Comment #17 from Hans-Werner Boschmann boschmann at tp1 dot 
physik.uni-siegen.de 2011-07-12 15:00:22 UTC ---
This sounds like there is still a lot of work to do in this character issue.
Has anyone ever managed to allocate such strings dynamically? In 

(In reply to comment #15)
 character(:),allocatable::string
 string='yes!!'
 print *, string
 end

the length is constant so you could use character(5)::string. That's not what I
mean, I would like to have something like this:

PROGRAM helloworld
  character(:),allocatable::string
  real::rnd
  call random_number(rnd)
  call hello(ceiling(11*rnd),string)
  print *,string
contains
  subroutine hello (n,string)
character(:),allocatable,intent(out)::string
integer,intent(in)::n
character(10)::helloworld=hello world
string=helloworld(:n)
  end subroutine hello
end PROGRAM helloworld

I guess that's not yet possible with gfortran.


[Bug middle-end/49719] New: test gcc.target/arm/sibcall-1.c fails for ARM

2011-07-12 Thread janis at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49719

   Summary: test gcc.target/arm/sibcall-1.c fails for ARM
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: ja...@gcc.gnu.org


Test gcc.target/arm/sibcall-1.c starts failing with r176042, a fix for PR
middle-end/49519, for arm-none-linux-gnueabi configured with defaults for arch
and cpu.  The failure can be reproduced with a simple cross cc1.

See discussion in 49519.


[Bug middle-end/49519] [4.7 Regression] Revision 175272 miscompiled 447.dealII in SPEC CPU 2006

2011-07-12 Thread janis at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49519

--- Comment #31 from Janis Johnson janis at gcc dot gnu.org 2011-07-12 
15:06:03 UTC ---
I filed PR middle-end/49719 for the sibcall-1.c failure.


[Bug tree-optimization/49651] [C++0x] nested lambdas and -O3 produced incorrect integer variable increments

2011-07-12 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49651

--- Comment #6 from Richard Guenther rguenth at gcc dot gnu.org 2011-07-12 
15:19:48 UTC ---
Shorter testcase that also terminates when successful:

#include vector
#include algorithm

extern C void abort (void);

typedef unsigned int u32;
using namespace std;
vectoru32 g;
void f(u32 a, u32 b)
{
  g.push_back(b);
  for(int i=1; ig.size()  ! g.empty(); ++i)
if ( g[i-1]+1 != g[i])
  abort ();
}

int main(int argc, char *argv[])
{
  int cnt = 256;
  u32 a = 0;
  vectorint vi;
  vi.push_back(0);
  vi.push_back(1);
  vi.push_back(2);
  vi.push_back(3);
  vi.push_back(4);
  vectorint vo;
  vo.push_back(5);
  vo.push_back(5);
  vectorint ve;
  ve.push_back(5);
  vectorint v3;
  vectorint v4;
  vectorint v5;
  vectorint v6;
  vectorint v7;

  f(32, a++);
  f(32, a++);

  auto run = [](int i) {
  // inside this lambda a is not the same as the a in the first line
  v3.push_back(i);
  v4.push_back(i);
  v5.push_back(i);
  v6.push_back(i);
  v7.push_back(i);
  f(32, a++);

  v3.push_back(i);
  v4.push_back(i);
  v5.push_back(i);
  v6.push_back(i);
  v7.push_back(i);
  f(32, a++);

  for_each(ve.begin(), ve.end(), [](int xi) {
   v7.push_back(xi);
   f(32, a++);
   });

  f(32, a++);
  };

  f(32, a++);

  while(--cnt) {
  for_each(vi.begin(), vi.end(), [](int xi) {
   f(32, a++);
   for_each(vo.begin(), vo.end(), run);
   f(32, a++);
   for_each(ve.begin(), ve.end(), run);
   f(32, a++);
   });
  }
}


[Bug tree-optimization/49715] Could do more efficient unsigned-to-float to conversions based on range information

2011-07-12 Thread sgunderson at bigfoot dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49715

--- Comment #3 from sgunderson at bigfoot dot com 2011-07-12 15:19:51 UTC ---
Wow, answer in record time :-)

I don't know anything about GCC internals, so I can't comment much on the
patch; my only worry here is what would happen if you had a very narrow mask,
e.g. (x  0xf) and you try to coerce it into the minimum possible type (a
char); wouldn't you end up doing some sort of expansion with movzbl again?


[Bug tree-optimization/49715] Could do more efficient unsigned-to-float to conversions based on range information

2011-07-12 Thread rguenther at suse dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49715

--- Comment #4 from rguenther at suse dot de rguenther at suse dot de 
2011-07-12 15:21:51 UTC ---
On Tue, 12 Jul 2011, sgunderson at bigfoot dot com wrote:

 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49715
 
 --- Comment #3 from sgunderson at bigfoot dot com 2011-07-12 15:19:51 UTC ---
 Wow, answer in record time :-)
 
 I don't know anything about GCC internals, so I can't comment much on the
 patch; my only worry here is what would happen if you had a very narrow mask,
 e.g. (x  0xf) and you try to coerce it into the minimum possible type (a
 char); wouldn't you end up doing some sort of expansion with movzbl again?

That's why I limit it to SImode truncation (that should be
equivalent to an int).  Quite lame ;)


[Bug target/49714] [4.7 Regression] Revision 176128 introduced many ICEs in insn_default_length, at config/i386/i386.md:600

2011-07-12 Thread ubizjak at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49714

Uros Bizjak ubizjak at gmail dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011.07.12 15:40:24
 Ever Confirmed|0   |1

--- Comment #1 from Uros Bizjak ubizjak at gmail dot com 2011-07-12 15:40:24 
UTC ---
Can you please regtest this patch:

--cut here--
Index: i386.c
===
--- i386.c(revision 176207)
+++ i386.c(working copy)
@@ -29399,7 +29399,7 @@ x86_output_mi_thunk (FILE *file,
 {
   tmp = gen_rtx_UNSPEC (Pmode, gen_rtvec (1, fnaddr), UNSPEC_GOTPCREL);
   tmp = gen_rtx_CONST (Pmode, tmp);
-  fnaddr = gen_rtx_MEM (QImode, tmp);
+  fnaddr = gen_rtx_MEM (Pmode, tmp);
 }
 }
   else
--cut here--


[Bug ada/48835] Porting GNAT to GNU/Linux/m68k

2011-07-12 Thread mikpe at it dot uu.se
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48835

--- Comment #21 from Mikael Pettersson mikpe at it dot uu.se 2011-07-12 
15:42:35 UTC ---
The problem is that LIBGNAT_TARGET_PAIRS is applied too late, and stage 1, 2,
and 3 gnat1 etc are built out of a fixed set of source files that your target
fragment in gcc/ada/gcc-interface/Makefile.in cannot influence (AFAIK).

You can observe this easily with a bootstrap on e.g. i686-linux.  On that
platform system.ads should be replaced by system-linux-x86.ads, but the build
log clearly shows stage 1, 2, 3 compiling the default gcc/ada/system.ads from
the gcc source dir and linking that .o file into gnat1 etc.  It's not until
some time after stage 3 that the build directory's gcc/ada/rts/ is populated
according to LIBGNAT_TARGET_PAIRS, allowing system-linux-x86.ads to get used.
But that's too late for m68k, since the type-incorrect s-memory.ad{b,s} have
already been compiled and linked into the intermediate gnat1 etc, which then
crash in stage 2.

So I'm now patching s-memory.ad{b,s} instead.  Assuming the current bootstrap
succeeds (sometime late tomorrow) I'll post my full patch for 4.5.3.


[Bug target/49714] [4.7 Regression] Revision 176128 introduced many ICEs in insn_default_length, at config/i386/i386.md:600

2011-07-12 Thread rth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49714

--- Comment #2 from Richard Henderson rth at gcc dot gnu.org 2011-07-12 
15:46:13 UTC ---
Author: rth
Date: Tue Jul 12 15:46:02 2011
New Revision: 176208

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=176208
Log:
PR target/49714
* config/i386/i386.c (x86_output_mi_thunk): Fix mode for
destination address in memory on some paths.

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


[Bug target/49714] [4.7 Regression] Revision 176128 introduced many ICEs in insn_default_length, at config/i386/i386.md:600

2011-07-12 Thread rth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49714

Richard Henderson rth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED

--- Comment #3 from Richard Henderson rth at gcc dot gnu.org 2011-07-12 
15:47:53 UTC ---
Fixed.  Both the instance you noticed, Uros, but also another
along the i386 mach-o path.


[Bug c/49716] internal compiler error: in new_Cloog_Domain_from_ppl_Pointset_Powerset

2011-07-12 Thread stephan at openelec dot tv
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49716

--- Comment #2 from stephan at openelec dot tv 2011-07-12 16:20:12 UTC ---
Created attachment 24745
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=24745
preprocessed source math.o


[Bug other/32998] -frecord-gcc-switches issues

2011-07-12 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32998

--- Comment #14 from Jakub Jelinek jakub at gcc dot gnu.org 2011-07-12 
16:26:10 UTC ---
Created attachment 24746
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=24746
gcc47-pr32998.patch

Untested patch to implement a new switch, -grecord-gcc-switches, which records
passed options as a string appended to DW_AT_producer attribute in .debug_info.
Apparently we aren't the first compiler to do that based on the dwarf2out.c
comments...
The main intent is to have the code generation options in there, as Roland
said, -D* etc. options should be investigable through -g3 .debug_macinfo
(especially if we manage to cut it down considerably), similarly -I/-i* etc.
options related to preprocessing are either in .debug_macinfo and/or in
.debug_line).  If possible I'd like not to see filenames and paths in the
string.

I'm not entirely happy with it this way, as if passed command line options
override each other, this approach will print all of them in the order
specified
(say -O2 -O3 -O0 inserts -O2 -O3 -O0 instead of just -O0) and due to the
overriding the options can't be sorted, which would increase the likelyhood
that the DW_AT_producer strings are mergeable between many object files.

Joseph, is there a way to instead iterate over the explicitly passed options
after override processing?  I see global_options_set, but not sure what exactly
to expect from it.


[Bug target/49714] [4.7 Regression] Revision 176128 introduced many ICEs in insn_default_length, at config/i386/i386.md:600

2011-07-12 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49714

Dominique d'Humieres dominiq at lps dot ens.fr changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
 Resolution|FIXED   |

--- Comment #4 from Dominique d'Humieres dominiq at lps dot ens.fr 2011-07-12 
16:28:28 UTC ---
Still fails with -m32:

[macbook] f90/bug% g++47 -m32
/opt/gcc/work/gcc/testsuite/g++.old-deja/g++.other/dyncast1.C
/opt/gcc/work/gcc/testsuite/g++.old-deja/g++.other/dyncast1.C: In member
function 'void E::_ZThn4_N1ED1Ev()':
/opt/gcc/work/gcc/testsuite/g++.old-deja/g++.other/dyncast1.C:123:1: error:
unrecognizable insn:
(jump_insn 3 2 4 (set (pc)
(mem:SI (symbol_ref/i:SI (_ZN1ED1Ev) [flags 0x1] function_decl
0x142cb3600 __comp_dtor ) [0 S4 A8])) -1
 (nil))
/opt/gcc/work/gcc/testsuite/g++.old-deja/g++.other/dyncast1.C:123:1: internal
compiler error: in insn_default_length, at config/i386/i386.md:600


[Bug middle-end/49705] -Wstrict-overflow should not diagnose unevaluated expressions

2011-07-12 Thread eggert at gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49705

--- Comment #4 from eggert at gnu dot org 2011-07-12 16:30:44 UTC ---
Created attachment 24747
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=24747
longer, more-realistic test case

Thanks for looking into the problem.  If it helps, attached is a longer test
case that more-closely corresponds to the original problem that I had
with the Emacs source code.


[Bug regression/49500] [4.7 Regression]: gcc.dg/tls/alias-1.c

2011-07-12 Thread uweigand at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49500

Ulrich Weigand uweigand at gcc dot gnu.org changed:

   What|Removed |Added

 CC||uweigand at gcc dot gnu.org

--- Comment #10 from Ulrich Weigand uweigand at gcc dot gnu.org 2011-07-12 
16:30:17 UTC ---
This problem exists on spu-elf as well, and the patch fixes it there too.


[Bug middle-end/49705] -Wstrict-overflow should not diagnose unevaluated expressions

2011-07-12 Thread ian at airs dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49705

--- Comment #5 from Ian Lance Taylor ian at airs dot com 2011-07-12 16:42:07 
UTC ---
My proposed patch also fixes the larger test case.  Without the patch I see
this:

strict-overflow-bug.c: In function ‘check_image_width’:
strict-overflow-bug.c:14:4: warning: assuming signed overflow does not occur
when assuming that (X + c) = X is always true [-Wstrict-overflow]

With the patch I see no warning.  This is compiling with -O2 -Wstrict-overflow.


[Bug c/49716] internal compiler error: in new_Cloog_Domain_from_ppl_Pointset_Powerset

2011-07-12 Thread spop at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49716

--- Comment #3 from Sebastian Pop spop at gcc dot gnu.org 2011-07-12 16:54:49 
UTC ---
trunk@176058 from  Fri Jul 8 19:15:18 2011 does not ICE.
I have not tried 4.6.


[Bug ada/48835] Porting GNAT to GNU/Linux/m68k

2011-07-12 Thread ebotcazou at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48835

Eric Botcazou ebotcazou at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011.07.12 17:05:07
 Ever Confirmed|0   |1

--- Comment #22 from Eric Botcazou ebotcazou at gcc dot gnu.org 2011-07-12 
17:05:07 UTC ---
 The problem is that LIBGNAT_TARGET_PAIRS is applied too late, and stage 1, 2,
 and 3 gnat1 etc are built out of a fixed set of source files that your target
 fragment in gcc/ada/gcc-interface/Makefile.in cannot influence (AFAIK).

Yes, the full run-time is built only after the compiler is built.

 You can observe this easily with a bootstrap on e.g. i686-linux.  On that
 platform system.ads should be replaced by system-linux-x86.ads, but the build
 log clearly shows stage 1, 2, 3 compiling the default gcc/ada/system.ads from
 the gcc source dir and linking that .o file into gnat1 etc.  It's not until
 some time after stage 3 that the build directory's gcc/ada/rts/ is populated
 according to LIBGNAT_TARGET_PAIRS, allowing system-linux-x86.ads to get used.

It is populated only at the beginning of the build of the full run-time.  So,
in particular, system.ads is indeed used for the compiler proper in all stages.

 But that's too late for m68k, since the type-incorrect s-memory.ad{b,s} have
 already been compiled and linked into the intermediate gnat1 etc, which then
 crash in stage 2.

OK, this is more involved than envisioned initially.  I can propose a slight
variant of my earlier proposal: still the attribute, but gigi (interface
between front-end and middle-end) would be responsible for setting it on the
malloc-like functions used in Ada.


[Bug target/49713] Conflicting types for 'arm_dbx_register_number'

2011-07-12 Thread danglin at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49713

John David Anglin danglin at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011.07.12 17:14:43
 CC||danglin at gcc dot gnu.org
 Ever Confirmed|0   |1


[Bug target/49714] [4.7 Regression] Revision 176128 introduced many ICEs in insn_default_length, at config/i386/i386.md:600

2011-07-12 Thread rth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49714

Richard Henderson rth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|REOPENED|WAITING
 AssignedTo|unassigned at gcc dot   |rth at gcc dot gnu.org
   |gnu.org |

--- Comment #5 from Richard Henderson rth at gcc dot gnu.org 2011-07-12 
17:18:56 UTC ---
Created attachment 24748
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=24748
i686-darwin cleanup

This appears as if it might work.

I can't seem to trigger the branch island path here.  It looks like
only darwin8 needs this, and even configuring for i686-apple-darwin8
doesn't trigger.


[Bug target/49713] Conflicting types for 'arm_dbx_register_number'

2011-07-12 Thread rth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49713

Richard Henderson rth at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #1 from Richard Henderson rth at gcc dot gnu.org 2011-07-12 
17:21:03 UTC ---
Mine.


[Bug c++/47606] [trans-mem] internal compiler error in expand_block_tm with O2

2011-07-12 Thread rth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47606

Richard Henderson rth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|REOPENED|NEW
 AssignedTo|rth at gcc dot gnu.org  |unassigned at gcc dot
   ||gnu.org

--- Comment #10 from Richard Henderson rth at gcc dot gnu.org 2011-07-12 
17:22:22 UTC ---
Not working on it atm.


[Bug target/49714] [4.7 Regression] Revision 176128 introduced many ICEs in insn_default_length, at config/i386/i386.md:600

2011-07-12 Thread iains at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49714

--- Comment #6 from Iain Sandoe iains at gcc dot gnu.org 2011-07-12 17:28:35 
UTC ---
(In reply to comment #5)
 Created attachment 24748 [details]
 i686-darwin cleanup
 
 This appears as if it might work.
 
 I can't seem to trigger the branch island path here.  It looks like
 only darwin8 needs this, and even configuring for i686-apple-darwin8
 doesn't trigger.

hm. doing a cross to darwin-8 should produce the requirement for stubs and
branch islands (the latter, I think are ppc only).



You should also be able to trigger the branch island path by using
-mmacosx-version-min=10.4 on Darwin 9 or 10 (when building for PPC).  This
should also also trigger generation of stubs for function calls on m32 x86 and
ppc.

(will try and look later - but tied up with other hassles right now)


[Bug middle-end/44382] Slow integer multiply

2011-07-12 Thread wschmidt at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44382

William J. Schmidt wschmidt at gcc dot gnu.org changed:

   What|Removed |Added

 CC||wschmidt at gcc dot gnu.org

--- Comment #7 from William J. Schmidt wschmidt at gcc dot gnu.org 2011-07-12 
17:33:06 UTC ---
The test case from bug 45671 is as follows:

int myfunction (int a, int b, int c, int d, int e, int f, int g, int h) {
  int ret;

  ret = a + b + c + d + e + f + g + h;
  return ret;

}

Compiling with -O3 results in a series of dependent add instructions to
accumulate the sum.

add 4,3,4
add 4,4,5
add 4,4,6
add 4,4,7
add 4,4,8
add 4,4,9
add 4,4,10


If we regrouped to (a+b)+(c+d)+... we can do multiple adds in parallel on
different execution units.


[Bug lto/48851] lto-plugin.c:224:7: error: missing sentinel in function call [-Werror=format]

2011-07-12 Thread mrs at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48851

m...@gcc.gnu.org mrs at gcc dot gnu.org changed:

   What|Removed |Added

 CC||mrs at gcc dot gnu.org

--- Comment #22 from mrs at gcc dot gnu.org mrs at gcc dot gnu.org 2011-07-12 
18:03:23 UTC ---
Try:

Doing diffs in fixincludes:
--- fixincludes/inclhack.def.~1~2011-06-15 18:47:49.0 -0700
+++ fixincludes/inclhack.def2011-07-12 11:01:35.0 -0700
@@ -4417,6 +4417,7 @@ fix = {
 files = sys/types.h;
 /* avoid changing C++ friendly NULL */
 bypass= __cplusplus;
+bypass= __null;
 select= ^#[ \t]*define[ \t]+NULL[ \t]+\\(\\(void[ \t]*\\*\\)0\\);
 c_fix = format;
 c_fix_arg = #define NULL 0;
--

and let me know if it works.  If so, I'd propose this.


[Bug c++/49720] New: Infinite recursion compiling gold binary_test.cc testcase

2011-07-12 Thread ro at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49720

   Summary: Infinite recursion compiling gold binary_test.cc
testcase
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: r...@gcc.gnu.org
  Host: i386-pc-solaris2.11
Target: i386-pc-solaris2.11
 Build: i386-pc-solaris2.11


While compiling the gold testcast binary_test.cc, cc1plus SEGVed:

$ cc1plus -O2 sgr.ii
 int main()
Analyzing compilation unit
Performing interprocedural optimizations
 *free_lang_data visibility early_local_cleanups whole-program
profile_estimate cp inline pure-const static-varAssembling functions:
 int main()Segmentation Fault

In gdb, I find that there's either a deep (depth  22000) or infinite recursion
in simplify_gen_relational:

#0  0x084c220d in swap_commutative_operands_p (x=0xfed6a1d0, y=0xfed6a200)
at /vol/gcc/src/hg/trunk/local/gcc/rtlanal.c:3111
#1  0x084ea80a in simplify_binary_operation (code=PLUS, mode=SImode, 
op0=0xfed6a1d0, op1=0xfed6a200)
at /vol/gcc/src/hg/trunk/local/gcc/simplify-rtx.c:1899
#2  0x084f0d4f in simplify_plus_minus (code=Unhandled dwarf expression opcode
0xf3
)
at /vol/gcc/src/hg/trunk/local/gcc/simplify-rtx.c:4064
#3  0x084eb7f9 in simplify_binary_operation_1 (code=MINUS, mode=SImode, 
op0=0xfd41966c, op1=0xfed6a1d0)
at /vol/gcc/src/hg/trunk/local/gcc/simplify-rtx.c:2308
#4  simplify_binary_operation (code=MINUS, mode=SImode, op0=0xfd41966c, 
op1=0xfed6a1d0) at /vol/gcc/src/hg/trunk/local/gcc/simplify-rtx.c:1910
#5  0x084f5d88 in simplify_const_relational_operation (code=EQ, mode=SImode, 
op0=0xfd41966c, op1=value optimized out)
at /vol/gcc/src/hg/trunk/local/gcc/simplify-rtx.c:4559
#6  0x084e9f5e in simplify_relational_operation (code=EQ, mode=CCZmode, 
cmp_mode=SImode, op0=0xfed6a1d0, op1=0xfd41966c)
at /vol/gcc/src/hg/trunk/local/gcc/simplify-rtx.c:4184
#7  0x084ea736 in simplify_gen_relational (code=EQ, mode=CCZmode, 
cmp_mode=SImode, op0=0xfed6a1d0, op1=0xfd41966c)
at /vol/gcc/src/hg/trunk/local/gcc/simplify-rtx.c:401
#8  0x084ea736 in simplify_gen_relational (code=EQ, mode=CCZmode, 
cmp_mode=SImode, op0=0xfed6a1f0, op1=0xfd419660)

Here's the simplified testcase:

extern char t_start[], t_end[], t_size[];
int
main(void)
{
  int size = reinterpret_castint(t_size);
  return (size == t_end - t_start);
}


[Bug target/49714] [4.7 Regression] Revision 176128 introduced many ICEs in insn_default_length, at config/i386/i386.md:600

2011-07-12 Thread rth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49714

--- Comment #7 from Richard Henderson rth at gcc dot gnu.org 2011-07-12 
18:20:33 UTC ---
Author: rth
Date: Tue Jul 12 18:20:29 2011
New Revision: 176211

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=176211
Log:
PR target/49714
* config/i386/i386.c (x86_output_mi_thunk): Use
machopic_indirect_call_target instead of machopic_indirection_name
directly.

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


[Bug rtl-optimization/49474] [4.7 Regression] ppc ICEs with -O3 (bootstrapping with -O3 and --disable-checking)

2011-07-12 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49474

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

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


[Bug target/49714] [4.7 Regression] Revision 176128 introduced many ICEs in insn_default_length, at config/i386/i386.md:600

2011-07-12 Thread rth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49714

Richard Henderson rth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution||FIXED

--- Comment #8 from Richard Henderson rth at gcc dot gnu.org 2011-07-12 
18:37:29 UTC ---
Fixed.  Again.


[Bug target/49713] Conflicting types for 'arm_dbx_register_number'

2011-07-12 Thread rth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49713

--- Comment #2 from Richard Henderson rth at gcc dot gnu.org 2011-07-12 
18:41:48 UTC ---
Author: rth
Date: Tue Jul 12 18:41:44 2011
New Revision: 176212

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=176212
Log:
PR target/49713
* dwarf2out.h (dwarf_frame_regnum): Remove.
* dwarf2out.c (based_loc_descr): Revert last change.  Initialize regno
earlier from DWARF_FRAME_REGNUM.  Never use dbx_reg_number.
* dwarf2cfi.c (dw_stack_pointer_regnum, dw_frame_pointer_regnum): New.
(execute_dwarf2_frame): Initialize them.
(DW_STACK_POINTER_REGNUM, DW_FRAME_POINTER_REGNUM): Remove; replace
users of the macros with the variables.
(expand_builtin_dwarf_sp_column): Revert last change.
(expand_builtin_init_dwarf_reg_sizes): Likewise.  Compute the
result of DWARF_FRAME_REGNUM into a local variable.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/dwarf2cfi.c
trunk/gcc/dwarf2out.c
trunk/gcc/dwarf2out.h


[Bug rtl-optimization/49474] [4.7 Regression] ppc ICEs with -O3 (bootstrapping with -O3 and --disable-checking)

2011-07-12 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49474

--- Comment #5 from Andrew Pinski pinskia at gcc dot gnu.org 2011-07-12 
18:46:13 UTC ---
Author: pinskia
Date: Tue Jul 12 18:46:10 2011
New Revision: 176213

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=176213
Log:
2011-07-12  Andrew Pinski  pins...@gmail.com

PR rtl-opt/49474
* cprop.c (find_implicit_sets): Correct the condition.

2011-07-12  Andrew Pinski  pins...@gmail.com

PR rtl-opt/49474
* gcc.c-torture/compile/pr49474.c: New testcase.



Added:
trunk/gcc/testsuite/gcc.c-torture/compile/pr49474.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/cprop.c
trunk/gcc/testsuite/ChangeLog


[Bug rtl-optimization/49474] [4.7 Regression] ppc ICEs with -O3 (bootstrapping with -O3 and --disable-checking)

2011-07-12 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49474

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||patch
 Status|ASSIGNED|RESOLVED
URL||http://gcc.gnu.org/ml/gcc-p
   ||atches/2011-07/msg00949.htm
   ||l
 Resolution||FIXED

--- Comment #6 from Andrew Pinski pinskia at gcc dot gnu.org 2011-07-12 
18:46:54 UTC ---
Fixed.


[Bug middle-end/49721] New: convert_memory_address_addr_space may generate invalid new insns

2011-07-12 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49721

   Summary: convert_memory_address_addr_space may generate invalid
new insns
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: hjl.to...@gmail.com


When convert_memory_address_addr_space is called by
simplify_unary_operation_1, it may generate new insns
if Pmode != ptr_mode.  But new insns aren't allowed
from simplify_unary_operation_1.


[Bug target/49713] Conflicting types for 'arm_dbx_register_number'

2011-07-12 Thread rth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49713

Richard Henderson rth at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED

--- Comment #3 from Richard Henderson rth at gcc dot gnu.org 2011-07-12 
19:24:40 UTC ---
Fixed.


[Bug c++/49722] New: G++ doens't allow compilation with extern C and C99 inside

2011-07-12 Thread anton.kochkov at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49722

   Summary: G++ doens't allow compilation with extern C and C99
inside
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: anton.koch...@gmail.com


Any gcc version.
If you want use C99-standard conformant code inside extern C - it cant build.
Option -std=c99 is ignored by g++.


[Bug c++/49722] G++ doens't allow compilation with extern C and C99 inside

2011-07-12 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49722

--- Comment #1 from Andrew Pinski pinskia at gcc dot gnu.org 2011-07-12 
19:41:15 UTC ---
extern C does not mean compile this code as C but rather it means the linkage
of the function/variable is C rather than the standard C++ linkage.


[Bug c++/49722] G++ doens't allow compilation with extern C and C99 inside

2011-07-12 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49722

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #2 from Jakub Jelinek jakub at gcc dot gnu.org 2011-07-12 
19:49:31 UTC ---
Yeah, the source inside extern C block still needs to be valid C++.


[Bug middle-end/49719] [4.7 Regression] test gcc.target/arm/sibcall-1.c fails for ARM

2011-07-12 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49719

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

   Keywords||missed-optimization
 Target|arm |arm-*-*
   Target Milestone|--- |4.7.0
Summary|test|[4.7 Regression] test
   |gcc.target/arm/sibcall-1.c  |gcc.target/arm/sibcall-1.c
   |fails for ARM   |fails for ARM


[Bug rtl-optimization/49720] Infinite recursion compiling gold binary_test.cc testcase

2011-07-12 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49720

Richard Guenther rguenth at gcc dot gnu.org changed:

   What|Removed |Added

 Target|i386-pc-solaris2.11 |i386-pc-solaris2.11,
   ||i?86-*-*
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011.07.12 20:43:20
  Component|c++ |rtl-optimization
 Ever Confirmed|0   |1
  Known to fail||4.5.3, 4.6.1, 4.7.0

--- Comment #1 from Richard Guenther rguenth at gcc dot gnu.org 2011-07-12 
20:43:20 UTC ---
I think I've also seen this ICE with 4.6 and on i?86-linux.

Confirmed on x86_64-darwin with -O2 -m32 back to the 4.5 branch
(no idea for earlier releases).


[Bug tree-optimization/49309] [4.6/4.7 Regression] ICE with -fmudflap: verify_stmts failed: type mismatch in pointer plus expression

2011-07-12 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49309

Andrew Pinski pinskia at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2011.07.12 21:06:29
 AssignedTo|unassigned at gcc dot   |pinskia at gcc dot gnu.org
   |gnu.org |
 Ever Confirmed|0   |1

--- Comment #2 from Andrew Pinski pinskia at gcc dot gnu.org 2011-07-12 
21:06:29 UTC ---
Simple fix:
Index: tree-mudflap.c
===
--- tree-mudflap.c(revision 62112)
+++ tree-mudflap.c(working copy)
@@ -869,7 +869,7 @@ mf_xform_derefs_1 (gimple_stmt_iterator
   break;

 case MEM_REF:
-  addr = build2 (POINTER_PLUS_EXPR, TREE_TYPE (TREE_OPERAND (t, 1)),
+  addr = fold_build2_loc (location, POINTER_PLUS_EXPR, TREE_TYPE
(TREE_OPERAND (t, 1)),
  TREE_OPERAND (t, 0),
  fold_convert (sizetype, TREE_OPERAND (t, 1)));
   base = addr;


[Bug lto/47889] [4.6/4.7 Regression] Segmentation fault in useless_type_conversion_p, at tree-ssa.c:1228

2011-07-12 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47889

--- Comment #4 from Andrew Pinski pinskia at gcc dot gnu.org 2011-07-12 
21:17:31 UTC ---
(In reply to comment #2)
 Confirmed.  We should diagnose this.
We do:
t.c:1:13: warning: type of ‘s’ does not match original declaration [enabled by
default]
t1.c:1:14: note: previously declared here
--- CUT ---
But we don't error out.


[Bug tree-optimization/49309] [4.6/4.7 Regression] ICE with -fmudflap: verify_stmts failed: type mismatch in pointer plus expression

2011-07-12 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49309

--- Comment #3 from Richard Guenther rguenth at gcc dot gnu.org 2011-07-12 
21:18:50 UTC ---
Hm, I'd say rather

-  addr = build2 (POINTER_PLUS_EXPR, TREE_TYPE (TREE_OPERAND (t, 1)),
+  addr = fold_build2_loc (location, POINTER_PLUS_EXPR, TREE_TYPE
(TREE_OPERAND (t, 0)),


[Bug lto/47889] [4.6/4.7 Regression] Segmentation fault in useless_type_conversion_p, at tree-ssa.c:1228

2011-07-12 Thread rguenth at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47889

--- Comment #5 from Richard Guenther rguenth at gcc dot gnu.org 2011-07-12 
21:20:57 UTC ---
Yeah, well.  There are legitimate cases (read: in SPEC2k6), so we can't
error out in general (the cases are mixing float and int for example).


[Bug middle-end/49705] -Wstrict-overflow should not diagnose unevaluated expressions

2011-07-12 Thread ian at airs dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49705

Ian Lance Taylor ian at airs dot com changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
 AssignedTo|unassigned at gcc dot   |ian at airs dot com
   |gnu.org |

--- Comment #6 from Ian Lance Taylor ian at airs dot com 2011-07-12 22:47:33 
UTC ---
Patch tested and sent for approval.

http://gcc.gnu.org/ml/gcc-patches/2011-07/msg00971.html


[Bug middle-end/49723] New: gcc.c-torture/compile/pr46934.c: ICE in do_SUBST, at combine.c:707 at -O1 and above

2011-07-12 Thread danglin at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49723

   Summary: gcc.c-torture/compile/pr46934.c: ICE in do_SUBST, at
combine.c:707 at -O1 and above
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: dang...@gcc.gnu.org
  Host: hppa*-*-*
Target: hppa*-*-*
 Build: hppa*-*-*


Executing on host: /test/gnu/gcc/objdir/gcc/xgcc -B/test/gnu/gcc/objdir/gcc/  
-O1  -w -c  -o pr46934.o
/test/gnu/gcc/gcc/gcc/testsuite/gcc.c-torture/compile/pr
46934.c(timeout = 300)
/test/gnu/gcc/gcc/gcc/testsuite/gcc.c-torture/compile/pr46934.c: In function
'caller':/test/gnu/gcc/gcc/gcc/testsuite/gcc.c-torture/compile/pr46934.c:17:1:
internal c
ompiler error: in do_SUBST, at combine.c:707


[Bug middle-end/49723] gcc.c-torture/compile/pr46934.c: ICE in do_SUBST, at combine.c:707 at -O1 and above

2011-07-12 Thread danglin at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49723

John David Anglin danglin at gcc dot gnu.org changed:

   What|Removed |Added

 Target|hppa*-*-hpux*   |hppa64-*-*
   Host|hppa*-*-hpux*   |hppa64-*-*
  Build|hppa*-*-hpux*   |hppa64-*-*

--- Comment #1 from John David Anglin danglin at gcc dot gnu.org 2011-07-13 
00:19:10 UTC ---
   0x44d67bac do_SUBST+172:b,l 0x44d9a290 .stub,rp
   0x44d67bb0 do_SUBST+176:nop
   0x44d67bb4 do_SUBST+180:copy r4,dp
   0x44d67bb8 do_SUBST+184:cmpb,*=,n ret0,r6,0x44d67bf0
do_SUBST+240

(gdb) p/x $r6
$6 = 0x8000
(gdb) p/x $ret0
$7 = 0x8000

newval ($r6) doesn't appear valid.


[Bug middle-end/49723] gcc.c-torture/compile/pr46934.c: ICE in do_SUBST, at combine.c:707 at -O1 and above

2011-07-12 Thread danglin at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49723

John David Anglin danglin at gcc dot gnu.org changed:

   What|Removed |Added

 CC||ebotcazou at gcc dot
   ||gnu.org

--- Comment #2 from John David Anglin danglin at gcc dot gnu.org 2011-07-13 
01:09:39 UTC ---
(gdb) bt
#0  do_SUBST (into=0x417aa1e8, newval=0x4170cfb4) at
../../gcc/gcc/combine.c:706
#1  0x0029981a in subst (x=0x417aa1e0, from=0x417a52a0, to=0x4170cfb4,
in_dest=0, in_cond=0, unique_copy=0) at ../../gcc/gcc/combine.c:5227
#2  0x002996b7 in subst (x=0x41712ed0, from=0x417a52a0, to=0x4170cfb4,
in_dest=0, in_cond=0, unique_copy=0) at ../../gcc/gcc/combine.c:5189
#3  0x00292c99 in try_combine (i3=0x4176a84c, i2=0x4176a828, i1=0x0, i0=0x0,
new_direct_jump_p=0xb034, last_combined_insn=0x4176a84c) at
../../gcc/gcc/combine.c:3178
#4  0x0028cb6d in combine_instructions (f=0x417135c0, nregs=81) at
../../gcc/gcc/combine.c:1223
#5  0x002b1eb8 in rest_of_handle_combine () at ../../gcc/gcc/combine.c:13878
#6  0x0070bfda in execute_one_pass (pass=0xcf3360) at
../../gcc/gcc/passes.c:2063
#7  0x0070c477 in execute_pass_list (pass=0xcf3360) at
../../gcc/gcc/passes.c:2118
#8  0x0070c493 in execute_pass_list (pass=0xd44320) at
../../gcc/gcc/passes.c:2119
#9  0x0090a5ee in tree_rest_of_compilation (fndecl=0x41785300) at
../../gcc/gcc/tree-optimize.c:416
#10 0x00289022 in cgraph_expand_function (node=0x4178d000) at
../../gcc/gcc/cgraphunit.c:1804
#11 0x00289202 in cgraph_expand_all_functions () at
../../gcc/gcc/cgraphunit.c:1863
#12 0x00289a4a in cgraph_optimize () at ../../gcc/gcc/cgraphunit.c:2133
#13 0x002860d9 in cgraph_finalize_compilation_unit () at
../../gcc/gcc/cgraphunit.c:1304
#14 0x00038838 in c_write_global_declarations () at ../../gcc/gcc/c-decl.c:9844
#15 0x00830b46 in compile_file () at ../../gcc/gcc/toplev.c:564
#16 0x0083375f in do_compile () at ../../gcc/gcc/toplev.c:1886
#17 0x00833940 in toplev_main (argc=13, argv=0xb400) at
../../gcc/gcc/toplev.c:1958
#18 0x00149e0f in main (argc=13, argv=0xb400) at ../../gcc/gcc/main.c:36

(gdb) p debug_rtx (i3)
(insn 9 8 10 2 (set (reg:SI 73)
(minus:SI (reg:SI 26 %r26 [ reg_type ])
(reg:SI 74)))
/test/gnu/gcc/gcc/gcc/testsuite/gcc.c-torture/compile/pr46934.c:3 168
{*pa.md:5239}
 (expr_list:REG_DEAD (reg:SI 26 %r26 [ reg_type ])
(expr_list:REG_DEAD (reg:SI 74)
(nil
$4 = void
(gdb) p debug_rtx (i2)
(insn 8 7 9 2 (set (reg:SI 74)
(const_int 2147483648 [0x8000]))
/test/gnu/gcc/gcc/gcc/testsuite/gcc.c-torture/compile/pr46934.c:3 71
{*pa.md:2130}
 (nil))
$5 = void

This is how insn 8 is generated:

(gdb) bt
#0  emit_move_sequence (operands=0xbfffe904, mode=SImode, scratch_reg=0x0) at
../../gcc/gcc/config/pa/pa.c:1541
#1  0x00171709 in gen_movsi (operand0=0x417a52a0, operand1=0x4170cfb4) at
pa.md:2048
#2  0x003a97e6 in emit_move_insn_1 (x=0x417a52a0, y=0x4170cfb4) at
../../gcc/gcc/expr.c:3280
#3  0x003a9c63 in emit_move_insn (x=0x417a52a0, y=0x4170cfb4) at
../../gcc/gcc/expr.c:3370
#4  0x00388537 in force_reg (mode=SImode, x=0x4170cfb4) at
../../gcc/gcc/explow.c:671
#5  0x00178945 in gen_casesi (operand0=0x41712e94, operand1=0x41712ea0,
operand2=0x4170c36c, operand3=0x4176a7e0, operand4=0x4176a72c) at pa.md:6918
#6  0x006fc425 in maybe_gen_insn (icode=CODE_FOR_casesi, nops=5,
ops=0xbfffebb0) at ../../gcc/gcc/optabs.c:7259
#7  0x006fc533 in maybe_expand_jump_insn (icode=CODE_FOR_casesi, nops=5,
ops=0xbfffebb0) at ../../gcc/gcc/optabs.c:7290
#8  0x006fc5cb in expand_jump_insn (icode=CODE_FOR_casesi, nops=5,
ops=0xbfffebb0) at ../../gcc/gcc/optabs.c:7316
#9  0x003dbe85 in try_casesi (index_type=0x417153c0, index_expr=0x411e8554,
minval=0x4172101c, range=0x4178ad3c, table_label=0x4176a7e0,
default_label=0x4176a72c, fallback_label=0x4176a750) at
../../gcc/gcc/expr.c:10152
#10 0x00814841 in expand_case (stmt=0x417a6000) at ../../gcc/gcc/stmt.c:2505
#11 0x0024c13d in expand_gimple_stmt_1 (stmt=0x417a6000) at
../../gcc/gcc/cfgexpand.c:1918
#12 0x0024ca1d in expand_gimple_stmt (stmt=0x417a6000) at
../../gcc/gcc/cfgexpand.c:2071
#13 0x00258312 in expand_gimple_basic_block (bb=0x417a7080) at
../../gcc/gcc/cfgexpand.c:3805
#14 0x0025b646 in gimple_expand_cfg () at ../../gcc/gcc/cfgexpand.c:4288
#15 0x0070bfda in execute_one_pass (pass=0xcf2f60) at
../../gcc/gcc/passes.c:2063
#16 0x0070c477 in execute_pass_list (pass=0xcf2f60) at
../../gcc/gcc/passes.c:2118
#17 0x0090a5ee in tree_rest_of_compilation (fndecl=0x41785300) at
../../gcc/gcc/tree-optimize.c:416
#18 0x00289022 in cgraph_expand_function (node=0x4178d000) at
../../gcc/gcc/cgraphunit.c:1804
#19 0x00289202 in cgraph_expand_all_functions () at
../../gcc/gcc/cgraphunit.c:1863
#20 0x00289a4a in cgraph_optimize () at ../../gcc/gcc/cgraphunit.c:2133
#21 0x002860d9 in cgraph_finalize_compilation_unit () at

[Bug ada/49724] New: [4.6/4.7 Regression] FAIL: gnat.dg/socket1.adb execution test

2011-07-12 Thread danglin at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49724

   Summary: [4.6/4.7 Regression] FAIL: gnat.dg/socket1.adb
execution test
   Product: gcc
   Version: 4.6.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: ada
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: dang...@gcc.gnu.org


Executing on host: /mnt/gnu/gcc/objdir-test/gcc/gnatmake
--GCC=/mnt/gnu/gcc/objdir-test/gcc/xgcc
--GNATBIND=/mnt/gnu/gcc/objdir-test/gcc/gnatbind
--GNATLINK=/mnt/gnu/gcc/objdir-test/gcc/gnatlink -cargs
-B/mnt/gnu/gcc/objdir-test/gcc -largs --GCC=/mnt/gnu/gcc/objdir-test/gcc/xgcc\
-B/mnt/gnu/gcc/objdir-test/gcc\  -margs
--RTS=/mnt/gnu/gcc/objdir-test/hppa2.0w-hp-hpux11.11/./libada -q -f /mnt/gnu/gc
c/gcc/gcc/testsuite/gnat.dg/socket1.adb -lm   -o ./socket1.exe(timeout
= 300)
Executing on host: /mnt/gnu/gcc/objdir-test/gcc/gnatclean -c -q -n ./socket1  
(
timeout = 300)
./socket1.ali
./socket1.oPASS: gnat.dg/socket1.adb (test for excess errors)Setting
LD_LIBRARY_PATH to :/mnt/gnu/gcc/objdir/gcc::/mnt/gnu/gcc/objdir/gccraised
GNAT.SOCKETS.HOST_ERROR : [0] Unknown errorFAIL: gnat.dg/socket1.adb execution
test

Revision 176070 was ok.


[Bug ada/49725] New: [4.6 Regression] FAIL: c34005a

2011-07-12 Thread danglin at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49725

   Summary: [4.6 Regression] FAIL:   c34005a
   Product: gcc
   Version: 4.6.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: ada
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: dang...@gcc.gnu.org
  Host: hppa2.0w-hp-hpux11.11
Target: hppa2.0w-hp-hpux11.11
 Build: hppa2.0w-hp-hpux11.11


BUILD c34005a.adb
gnatmake --GCC=/mnt/gnu/gcc/objdir/gcc/xgcc -B/mnt/gnu/gcc/objdir/gcc/
-gnatws
 -O2 -I/mnt/gnu/gcc/objdir/gcc/testsuite/ada/acats/support c34005a.adb -largs
--
GCC=/mnt/gnu/gcc/objdir/gcc/xgcc
-B/mnt/gnu/gcc/objdir/gcc//mnt/gnu/gcc/objdir/gcc/xgcc -c
-B/mnt/gnu/gcc/objdir/gcc/ -gnatws -O2
-I/mnt/gnu/gcc/objdir/gcc/testsuite/ada/acats/support c34005a.adb
+===GNAT BUG DETECTED==+|
4.6.2 20110711 (prerelease) [gcc-4_6-branch revision 176188] (hppa2.0w-hp-hpux
11.11) GCC error:|
| in gimplify_expr, at gimplify.c:7315 ||
Error detected around c34005a.adb:37:1   |
| Please submit a bug report; see http://gcc.gnu.org/bugs.html.|
| Use a subject line meaningful to you and us to track the bug.|
| Include the entire contents of this bug box in the report.   |
| Include the exact gcc or gnatmake command that you entered.  |
| Also include sources listed below in gnatchop format |
| (concatenated together with no headers between files).   |
+==+

Please include these source files with error report
Note that list may not be accurate in some cases,
so please double check that the problem can still
be reproduced with the set of files listed.
Consider also -gnatd.n switch (see debug.adb).

/mnt/gnu/gcc/objdir/gcc/ada/rts/system.ads
c34005a.adb
/mnt/gnu/gcc/objdir/gcc/testsuite/ada/acats/support/report.ads
/mnt/gnu/gcc/objdir/gcc/ada/rts/s-secsta.ads
/mnt/gnu/gcc/objdir/gcc/ada/rts/s-stoele.ads
/mnt/gnu/gcc/objdir/gcc/ada/rts/s-stoele.adb
/mnt/gnu/gcc/objdir/gcc/ada/rts/ada.ads
/mnt/gnu/gcc/objdir/gcc/ada/rts/a-unccon.ads
/mnt/gnu/gcc/objdir/gcc/ada/rts/s-soflin.ads
/mnt/gnu/gcc/objdir/gcc/ada/rts/a-except.ads
/mnt/gnu/gcc/objdir/gcc/ada/rts/s-parame.ads
/mnt/gnu/gcc/objdir/gcc/ada/rts/s-stalib.ads
/mnt/gnu/gcc/objdir/gcc/ada/rts/s-traent.ads
/mnt/gnu/gcc/objdir/gcc/ada/rts/s-stache.ads


raised TYPES.UNRECOVERABLE_ERROR : comperr.adb:423
gnatmake: c34005a.adb compilation error
FAIL:   c34005a

Revision 176070 was ok.


[Bug driver/49726] New: -g0 file.S -g does not produce debug info

2011-07-12 Thread jan.kratochvil at redhat dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49726

   Summary: -g0 file.S -g does not produce debug info
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: driver
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: jan.kratoch...@redhat.com
Target: x86_64-fedora15-linux-gnu
 Build: x86_64-fedora15-linux-gnu


FAIL: gcc (GCC) 4.4.7 20110712 (prerelease)
FAIL: gcc (GCC) 4.5.4 20110712 (prerelease)
FAIL: gcc (GCC) 4.6.2 20110713 (prerelease)
FAIL: gcc (GCC) 4.7.0 20110713 (experimental)

gcc -c -o 1.o 1.c -g: debug info produced
gcc -c -o 1.o 1.S -g: debug info produced
gcc -c -o 1.o -g0 1.c -g: debug info produced
gcc -c -o 1.o -g0 1.S -g: debug info not produced - IMO a bug

Why .c and .S behave differently wrt -g application rules?

Sure for .S there is just the .debug_line relevant.