[Bug tree-optimization/50413] [4.6/4.7 Regression] Incorrect instruction is used to shift value of 128 bit xmm0 registrer

2011-09-20 Thread irar at il dot ibm.com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50413

--- Comment #14 from Ira Rosen irar at il dot ibm.com 2011-09-20 06:23:54 UTC 
---
The basic block that got vectorized on these platforms is in main(). I am going
to remove it and leave only shift(), since the main purpose of the test is to
check that shift () doesn't get vectorized. 
Thanks,
Ira


[Bug bootstrap/50461] New: mpfr.h found in mpfr-3.1.0/src instead of mpfr-3.0.1/. as previously

2011-09-20 Thread g...@denis-excoffier.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50461

 Bug #: 50461
   Summary: mpfr.h found in mpfr-3.1.0/src instead of mpfr-3.0.1/.
as previously
Classification: Unclassified
   Product: gcc
   Version: 4.6.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: bootstrap
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: g...@denis-excoffier.org


Hi,

I bootstrap gcc-4.6.1 by installing the gmp/, mpfr/ and mpc/ folders directly
in the GCC source tree as suggested in the installation notes.

Yesterday, they created a new mpfr-3.1.0-rc1 as a replacement for mpfc-3.0.1 we
used to have before. Now, with this new mpfr, the bootstrap fails at the step:
Configuring mpc at stage 1.

Solution:
Compared to mpfr-3.0.1, the new mpfr-3.1.0-rc1 has an additional src folder.
Therefore, the ./configure of GCC has to be modified, eg by replacing (sed
syntax):

s|$$s/mpfr|/src|g (1 occurrence)
and
s|$$r/$(HOST_SUBDIR)/mpfr|/src|g  (2 occurrences)

With this modification, everything works fine. I don't think that the MPFR
people will remove the src folder in the next future. I suppose this is for all
platforms, in any case at least Linux Ubuntu and Darwin Leopard.

Regards,

Denis Excoffier.


[Bug tree-optimization/50374] Support vectorization of min/max location pattern

2011-09-20 Thread irar at il dot ibm.com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50374

--- Comment #6 from Ira Rosen irar at il dot ibm.com 2011-09-20 08:27:08 UTC 
---
Thanks for working on this!
It looks like the problem is with the way the stmts are marked. We don't insert
pattern stmts now, so the things are more tricky. I'll try to fix this.


[Bug testsuite/49443] gcc.dg/vect/vect-peel-3.c and vect-peel-4.c fail on IA64 after testsuite change

2011-09-20 Thread jye2 at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49443

--- Comment #6 from jye2 at gcc dot gnu.org 2011-09-20 09:01:06 UTC ---
Author: jye2
Date: Tue Sep 20 09:00:58 2011
New Revision: 179003

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=179003
Log:
2011-09-20  Jiangning Liu  jiangning@arm.com

Backport r175246 from mainline
2011-06-21  Ira Rosen  ira.ro...@linaro.org

PR testsuite/49443
* gcc.dg/vect/vect-peel-3.c: Expect to fail on vect_no_align
targets.
* gcc.dg/vect/vect-peel-4.c: Likewise.

2011-09-20  Jiangning Liu  jiangning@arm.com

Backport r175009 from mainline
2011-06-14  Ira Rosen  ira.ro...@linaro.org

* gcc.dg/vect/vect-16.c: Rename to...
* gcc.dg/vect/no-fast-math-vect16.c: ...this.
* gcc.dg/vect/vect-peel-3.c: Adjust misalignment values
for double-word vectors.
* gcc.dg/vect/vect-peel-4.c: Likewise.
* gcc.dg/vect/bb-slp-10.c: Replace vect_hw_misalign with
vect_element_align.
* gcc.dg/vect/vect.exp: Run no-fast-math-* tests with
-fno-fast-math.


Added:
   
branches/ARM/embedded-4_6-branch/gcc/testsuite/gcc.dg/vect/no-fast-math-vect16.c
  (props changed)
  - copied unchanged from r178998,
branches/ARM/embedded-4_6-branch/gcc/testsuite/gcc.dg/vect/vect-16.c
Removed:
branches/ARM/embedded-4_6-branch/gcc/testsuite/gcc.dg/vect/vect-16.c
Modified:
branches/ARM/embedded-4_6-branch/gcc/testsuite/ChangeLog.arm
branches/ARM/embedded-4_6-branch/gcc/testsuite/gcc.dg/vect/bb-slp-10.c
branches/ARM/embedded-4_6-branch/gcc/testsuite/gcc.dg/vect/vect-peel-3.c
branches/ARM/embedded-4_6-branch/gcc/testsuite/gcc.dg/vect/vect-peel-4.c
branches/ARM/embedded-4_6-branch/gcc/testsuite/gcc.dg/vect/vect.exp

Propchange:
branches/ARM/embedded-4_6-branch/gcc/testsuite/gcc.dg/vect/no-fast-math-vect16.c
('svn:mergeinfo' added)


[Bug middle-end/50460] [4.7 Regression] __builtin___strcpy_chk/__builtin_object_size don't work

2011-09-20 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50460

Jakub Jelinek jakub at gcc dot gnu.org changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org
   Target Milestone|--- |4.7.0

--- Comment #1 from Jakub Jelinek jakub at gcc dot gnu.org 2011-09-20 
09:59:49 UTC ---
Seems to be caused by PR48571, we throw away the important info (that the
access was through a.buf1 rather than a), which is essential for
-D_FORTIFY_SOURCE=2.
The change happens already during gimplification:
-  strcpy (a.buf1[4], D.2732);
+  strcpy (MEM[(void *)a + 4B], D.2732);
while in *.original it was
  strcpy ((char *) a.buf1 + 4, str1 + 5);
Not reconstrucing the array ref is fine, but before *.objsz pass we really
shouldn't throw away the buf1 from it, so it should be tmp = a.buf1 + 4;
-D_FORTIFY_SOURCE=2 cares whether the user wrote
  strcpy ((char *) a + 4, ...); (in which case it allows to overwrite the
whole object) or strcpy ((char *) a.buf1 + 4, ...); (in which case it is
allowed to overwrite just the buf1 field).

Richard, can you please have a look at this?


[Bug c++/50462] New: Particularly painful error message

2011-09-20 Thread chris at bubblescope dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50462

 Bug #: 50462
   Summary: Particularly painful error message
Classification: Unclassified
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: minor
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: ch...@bubblescope.net


The following code (note that the call to 'size' is missing () ) produces a
particulaly painful error message:

#include iostream

struct V
{
int size() {};
int size() const {};
};

void print(V v)
{ std::cout  v.size; }

Error message:

t.cc: In function ‘void print(V)’:
t.cc:10:18: error: no match for ‘operator’ in ‘std::cout  v.V::size’
t.cc:10:18: note: candidates are:
/usr/include/c++/4.6/ostream:110:7: note: std::basic_ostream_CharT,
_Traits::__ostream_type std::basic_ostream_CharT,
_Traits::operator(std::basic_ostream_CharT, _Traits::__ostream_type
(*)(std::basic_ostream_CharT, _Traits::__ostream_type)) [with _CharT = char,
_Traits = std::char_traitschar, std::basic_ostream_CharT,
_Traits::__ostream_type = std::basic_ostreamchar]
/usr/include/c++/4.6/ostream:110:7: note:   no known conversion for argument 1
from ‘unresolved overloaded function type’ to
‘std::basic_ostreamchar::__ostream_type
(*)(std::basic_ostreamchar::__ostream_type)’
/usr/include/c++/4.6/ostream:119:7: note: std::basic_ostream_CharT,
_Traits::__ostream_type std::basic_ostream_CharT,
_Traits::operator(std::basic_ostream_CharT, _Traits::__ios_type
(*)(std::basic_ostream_CharT, _Traits::__ios_type)) [with _CharT = char,
_Traits = std::char_traitschar, std::basic_ostream_CharT,
_Traits::__ostream_type = std::basic_ostreamchar, std::basic_ostream_CharT,
_Traits::__ios_type = std::basic_ioschar]
/usr/include/c++/4.6/ostream:119:7: note:   no known conversion for argument 1
from ‘unresolved overloaded function type’ to
‘std::basic_ostreamchar::__ios_type
(*)(std::basic_ostreamchar::__ios_type)’
/usr/include/c++/4.6/ostream:129:7: note: std::basic_ostream_CharT,
_Traits::__ostream_type std::basic_ostream_CharT,
_Traits::operator(std::ios_base (*)(std::ios_base)) [with _CharT = char,
_Traits = std::char_traitschar, std::basic_ostream_CharT,
_Traits::__ostream_type = std::basic_ostreamchar]
/usr/include/c++/4.6/ostream:129:7: note:   no known conversion for argument 1
from ‘unresolved overloaded function type’ to ‘std::ios_base
(*)(std::ios_base)’
/usr/include/c++/4.6/ostream:167:7: note: std::basic_ostream_CharT,
_Traits::__ostream_type std::basic_ostream_CharT, _Traits::operator(long
int) [with _CharT = char, _Traits = std::char_traitschar,
std::basic_ostream_CharT, _Traits::__ostream_type = std::basic_ostreamchar]
/usr/include/c++/4.6/ostream:167:7: note:   no known conversion for argument 1
from ‘unresolved overloaded function type’ to ‘long int’
/usr/include/c++/4.6/ostream:171:7: note: std::basic_ostream_CharT,
_Traits::__ostream_type std::basic_ostream_CharT, _Traits::operator(long
unsigned int) [with _CharT = char, _Traits = std::char_traitschar,
std::basic_ostream_CharT, _Traits::__ostream_type = std::basic_ostreamchar]
/usr/include/c++/4.6/ostream:171:7: note:   no known conversion for argument 1
from ‘unresolved overloaded function type’ to ‘long unsigned int’
/usr/include/c++/4.6/ostream:175:7: note: std::basic_ostream_CharT,
_Traits::__ostream_type std::basic_ostream_CharT, _Traits::operator(bool)
[with _CharT = char, _Traits = std::char_traitschar,
std::basic_ostream_CharT, _Traits::__ostream_type = std::basic_ostreamchar]
/usr/include/c++/4.6/ostream:175:7: note:   no known conversion for argument 1
from ‘unresolved overloaded function type’ to ‘bool’
/usr/include/c++/4.6/bits/ostream.tcc:93:5: note: std::basic_ostream_CharT,
_Traits std::basic_ostream_CharT, _Traits::operator(short int) [with
_CharT = char, _Traits = std::char_traitschar]
/usr/include/c++/4.6/bits/ostream.tcc:93:5: note:   no known conversion for
argument 1 from ‘unresolved overloaded function type’ to ‘short int’
/usr/include/c++/4.6/ostream:182:7: note: std::basic_ostream_CharT,
_Traits::__ostream_type std::basic_ostream_CharT, _Traits::operator(short
unsigned int) [with _CharT = char, _Traits = std::char_traitschar,
std::basic_ostream_CharT, _Traits::__ostream_type = std::basic_ostreamchar]
/usr/include/c++/4.6/ostream:182:7: note:   no known conversion for argument 1
from ‘unresolved overloaded function type’ to ‘short unsigned int’
/usr/include/c++/4.6/bits/ostream.tcc:107:5: note: std::basic_ostream_CharT,
_Traits std::basic_ostream_CharT, _Traits::operator(int) [with _CharT =
char, _Traits = std::char_traitschar]
/usr/include/c++/4.6/bits/ostream.tcc:107:5: note:   no known conversion for
argument 1 from ‘unresolved overloaded function type’ to ‘int’
/usr/include/c++/4.6/ostream:193:7: note: std::basic_ostream_CharT,
_Traits::__ostream_type std::basic_ostream_CharT,
_Traits::operator(unsigned int) [with _CharT = char, _Traits =

[Bug libgomp/50386] [4.7 Regression] libgomp.h:87:5: error: unnamed struct/union that defines no instances

2011-09-20 Thread ramana at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50386

Ramana Radhakrishnan ramana at gcc dot gnu.org changed:

   What|Removed |Added

 CC||ramana at gcc dot gnu.org

--- Comment #2 from Ramana Radhakrishnan ramana at gcc dot gnu.org 2011-09-20 
10:49:02 UTC ---
Do you have some date before when trunk managed bootstraps successfully ? 

Ramana


[Bug fortran/47023] C_Sizeof: Rejects valid code

2011-09-20 Thread florian.rathgeber at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47023

florian.rathgeber at gmail dot com changed:

   What|Removed |Added

 CC||florian.rathgeber at gmail
   ||dot com

--- Comment #2 from florian.rathgeber at gmail dot com 2011-09-20 10:55:48 UTC 
---
I'm seeing this bug even for an explicitly interoperable type (hence I'm not
sure if this is really the same bug - I'm happy to file a new one if someone
tells me to):

  print *, c_sizeof(0.0_c_double)
1
Error: 'x' argument of 'c_sizeof' intrinsic at (1) must be be an interoperable
data entity

GNU Fortran (Ubuntu 4.6.0-1ubuntu1~ppa2) 4.6.1 20110326 (prerelease)


[Bug c++/50454] Unexpected problems with -pedantic / -pedantic-errors and __int128 and unsigned __int128 specializations

2011-09-20 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50454

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
 AssignedTo|unassigned at gcc dot   |paolo.carlini at oracle dot
   |gnu.org |com

--- Comment #7 from Paolo Carlini paolo.carlini at oracle dot com 2011-09-20 
11:41:44 UTC ---
On it.


[Bug tree-optimization/50374] Support vectorization of min/max location pattern

2011-09-20 Thread irar at il dot ibm.com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50374

--- Comment #7 from Ira Rosen irar at il dot ibm.com 2011-09-20 11:45:53 UTC 
---
Created attachment 25322
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=25322
fix

Here is the fix (it's a diff relative to your patch).


[Bug tree-optimization/50374] Support vectorization of min/max location pattern

2011-09-20 Thread irar at il dot ibm.com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50374

--- Comment #8 from Ira Rosen irar at il dot ibm.com 2011-09-20 11:47:00 UTC 
---
Created attachment 25323
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=25323
complete patch including my fix


[Bug tree-optimization/50374] Support vectorization of min/max location pattern

2011-09-20 Thread vincenzo.innocente at cern dot ch
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50374

--- Comment #9 from vincenzo Innocente vincenzo.innocente at cern dot ch 
2011-09-20 12:05:01 UTC ---
does not compile to me

../.././gcc/tree-vect-loop.c: In function 'vect_is_simple_reduction_1':
../.././gcc/tree-vect-loop.c:2237:35: warning: suggest parentheses around ''
within '||' [-Wparentheses]
../.././gcc/tree-vect-loop.c:2238:5: error: expected ')' before '{' token
../.././gcc/tree-vect-loop.c:2402:1: error: expected expression before '}'
token
../.././gcc/tree-vect-loop.c:2021:33: warning: unused variable 'def2'
[-Wunused-variable]
../.././gcc/tree-vect-loop.c: At top level:
../.././gcc/tree-vect-loop.c:1798:1: warning: 'vect_is_slp_reduction' defined
but not used [-Wunused-function]
../.././gcc/tree-vect-loop.c: In function 'vect_is_simple_reduction_1':
../.././gcc/tree-vect-loop.c:2402:1: warning: control reaches end of non-void
function [-Wreturn-type]
make[3]: *** [tree-vect-loop.o] Error 1

looks like some parentheses is missing in the if statement


[Bug tree-optimization/50374] Support vectorization of min/max location pattern

2011-09-20 Thread irar at il dot ibm.com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50374

Ira Rosen irar at il dot ibm.com changed:

   What|Removed |Added

  Attachment #25322|0   |1
is obsolete||

--- Comment #10 from Ira Rosen irar at il dot ibm.com 2011-09-20 12:17:46 UTC 
---
Created attachment 25324
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=25324
sorry, fixed it now


[Bug tree-optimization/50374] Support vectorization of min/max location pattern

2011-09-20 Thread irar at il dot ibm.com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50374

Ira Rosen irar at il dot ibm.com changed:

   What|Removed |Added

  Attachment #25323|0   |1
is obsolete||

--- Comment #11 from Ira Rosen irar at il dot ibm.com 2011-09-20 12:18:50 UTC 
---
Created attachment 25325
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=25325
complete patch


[Bug fortran/50463] New: -ftree-dse leeds to wrong code with gfortran

2011-09-20 Thread manz at intes dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50463

 Bug #: 50463
   Summary: -ftree-dse leeds to wrong code with gfortran
Classification: Unclassified
   Product: gcc
   Version: 4.6.1
Status: UNCONFIRMED
  Severity: critical
  Priority: P3
 Component: fortran
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: m...@intes.de


compiling the attached code with

gfortran -O a.f b.f c.f

leeds to wrong code.

If compileing with

gfortran -O -fno-tree-dse a.f b.f c.f 

the code produce correct results.


[Bug fortran/50463] -ftree-dse leeds to wrong code with gfortran

2011-09-20 Thread manz at intes dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50463

--- Comment #1 from manz at intes dot de 2011-09-20 12:29:47 UTC ---
Created attachment 25326
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=25326
Fortran testcase code a.f, b.f and c.f


[Bug c++/47011] ICE when using attribute optimize

2011-09-20 Thread mat at lcs dot mit.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47011

--- Comment #2 from Mat Hostetter mat at lcs dot mit.edu 2011-09-20 12:31:56 
UTC ---
Created attachment 25327
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=25327
bug showing ICE with -O, incorrect code without optimization


[Bug c++/47011] ICE when using attribute optimize

2011-09-20 Thread mat at lcs dot mit.edu
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47011

--- Comment #3 from Mat Hostetter mat at lcs dot mit.edu 2011-09-20 12:32:47 
UTC ---
I am seeing the same crash with gcc 4.4.[3456], on x86_64. It works on 4.6.1.

I encountered this crash when simply upgrading to the latest boost (1.47.0),
which uses attribute optimize, so this is likely to affect other people.

But the bug is more surprising and subtle than just the crash. It can silently
generate incorrect code, which took me longer to track down.

If you compile my attached code optimized you get the internal compiler error.
If you compile it unoptimized, g++ silently changes the calling convention for
vector::begin from by-value to by-reference -- but only if a completely
unrelated empty function is marked with attribute optimize! 

In the full example this meant g++ miscompiled std::vector::begin to use the
wrong calling convention, which when linked into other objects expecting the
proper calling convention would cause a crash.


[Bug fortran/50463] [4.6/4.7 Regression] -ftree-dse leeds to wrong code with gfortran

2011-09-20 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50463

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

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011-09-20
 CC||bur...@net-b.de, jh at suse
   ||dot cz, rguenther at suse
   ||dot de
Summary|-ftree-dse leeds to wrong   |[4.6/4.7 Regression]
   |code with gfortran  |-ftree-dse leeds to wrong
   ||code with gfortran
 Ever Confirmed|0   |1
   Severity|critical|normal

--- Comment #2 from Dominique d'Humieres dominiq at lps dot ens.fr 2011-09-20 
13:14:08 UTC ---
I confirm the problem on 4.6.1 and trunk, but the code seems to work as
expected with 4.5.3 and 4.4.6.
It also works if I merge the three files in one, or if I use -flto.

Assuming that the test is coming from a bigger project, could you try -flto on
it?


[Bug fortran/50463] [4.6/4.7 Regression] -ftree-dse leeds to wrong code with gfortran

2011-09-20 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50463

--- Comment #3 from Dominique d'Humieres dominiq at lps dot ens.fr 2011-09-20 
13:18:35 UTC ---
r165415 is OK
r165758 gives a wrong code.


[Bug middle-end/50460] [4.7 Regression] __builtin___strcpy_chk/__builtin_object_size don't work

2011-09-20 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50460

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

   What|Removed |Added

 CC||rguenth at gcc dot gnu.org

--- Comment #2 from H.J. Lu hjl.tools at gmail dot com 2011-09-20 13:34:15 
UTC ---
It is caused by revision 178312:

http://gcc.gnu.org/ml/gcc-cvs/2011-08/msg01330.html


[Bug tree-optimization/50374] Support vectorization of min/max location pattern

2011-09-20 Thread vincenzo.innocente at cern dot ch
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50374

--- Comment #12 from vincenzo Innocente vincenzo.innocente at cern dot ch 
2011-09-20 13:46:16 UTC ---
I'm getting these errors

../.././gcc/optabs.c: In function 'optab_d* optab_for_tree_code(tree_code,
const_tree, optab_subtype)':
../.././gcc/optabs.c:470:9: error: cannot convert 'convert_optab_d*' to 'optab'
in return
../.././gcc/optabs.c:474:9: error: cannot convert 'convert_optab_d*' to 'optab'
in return
../.././gcc/optabs.c:478:9: error: cannot convert 'convert_optab_d*' to 'optab'
in return
../.././gcc/optabs.c:482:9: error: cannot convert 'convert_optab_d*' to 'optab'
in return

any idea what could be wrong?


[Bug libgomp/50386] [4.7 Regression] libgomp.h:87:5: error: unnamed struct/union that defines no instances

2011-09-20 Thread dave.anglin at bell dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50386

--- Comment #3 from dave.anglin at bell dot net 2011-09-20 13:46:04 UTC ---
On 9/20/2011 6:49 AM, ramana at gcc dot gnu.org wrote:
 Do you have some date before when trunk managed bootstraps successfully ?


This is my last successful build:
http://gcc.gnu.org/ml/gcc-testresults/2011-09/msg00879.html

Dave


[Bug c++/50462] poor diagnostics for missing parenthesis in call to method

2011-09-20 Thread manu at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50462

--- Comment #1 from Manuel López-Ibáñez manu at gcc dot gnu.org 2011-09-20 
13:59:47 UTC ---
Clang does only marginally better because of its selective typedef unwrapping
and avoiding printing back expressions, but then it goes and prints all
candidates:

/tmp/webcompile/_7569_0.cc:10:13: error: invalid operands to binary expression
('ostream' (aka 'basic_ostreamchar') and 'overloaded function type')
{ std::cout  v.size; }
  ~ ^  ~~
In file included from /tmp/webcompile/_7569_0.cc:1:
In file included from /usr/include/c++/4.3/iostream:44:
/usr/include/c++/4.3/ostream:111:7: note: candidate function not viable: no
overload of 'size' matching '__ostream_type (*)(__ostream_type )' for 1st
argument
  operator(__ostream_type (*__pf)(__ostream_type))
  ^
/usr/include/c++/4.3/ostream:120:7: note: candidate function not viable: no
overload of 'size' matching '__ios_type (*)(__ios_type )' for 1st argument
  operator(__ios_type (*__pf)(__ios_type))
  ^
/usr/include/c++/4.3/ostream:130:7: note: candidate function not viable: no
overload of 'size' matching 'std::ios_base (*)(std::ios_base )' for 1st
argument
  operator(ios_base (*__pf) (ios_base))
  ^
/usr/include/c++/4.3/ostream:168:7: note: candidate function not viable: no
overload of 'size' matching 'long' for 1st argument
  operator(long __n)
  ^
/usr/include/c++/4.3/ostream:172:7: note: candidate function not viable: no
overload of 'size' matching 'unsigned long' for 1st argument
  operator(unsigned long __n)
  ^
/usr/include/c++/4.3/ostream:176:7: note: candidate function not viable: no
overload of 'size' matching 'bool' for 1st argument
  operator(bool __n)
  ^
/usr/include/c++/4.3/ostream:180:7: note: candidate function not viable: no
overload of 'size' matching 'short' for 1st argument
  operator(short __n);
  ^
/usr/include/c++/4.3/ostream:183:7: note: candidate function not viable: no
overload of 'size' matching 'unsigned short' for 1st argument
  operator(unsigned short __n)
  ^
/usr/include/c++/4.3/ostream:191:7: note: candidate function not viable: no
overload of 'size' matching 'int' for 1st argument
  operator(int __n);
  ^
/usr/include/c++/4.3/ostream:194:7: note: candidate function not viable: no
overload of 'size' matching 'unsigned int' for 1st argument
  operator(unsigned int __n)
  ^
/usr/include/c++/4.3/ostream:203:7: note: candidate function not viable: no
overload of 'size' matching 'long long' for 1st argument
  operator(long long __n)
  ^
/usr/include/c++/4.3/ostream:207:7: note: candidate function not viable: no
overload of 'size' matching 'unsigned long long' for 1st argument
  operator(unsigned long long __n)
  ^
/usr/include/c++/4.3/ostream:212:7: note: candidate function not viable: no
overload of 'size' matching 'double' for 1st argument
  operator(double __f)
  ^
/usr/include/c++/4.3/ostream:216:7: note: candidate function not viable: no
overload of 'size' matching 'float' for 1st argument
  operator(float __f)
  ^
/usr/include/c++/4.3/ostream:224:7: note: candidate function not viable: no
overload of 'size' matching 'long double' for 1st argument
  operator(long double __f)
  ^
/usr/include/c++/4.3/ostream:228:7: note: candidate function not viable: no
overload of 'size' matching 'const void *' for 1st argument
  operator(const void* __p)
  ^
/usr/include/c++/4.3/ostream:253:7: note: candidate function not viable: no
overload of 'size' matching '__streambuf_type *' (aka 'basic_streambufchar,
std::char_traitschar  *') for 1st argument
  operator(__streambuf_type* __sb);
  ^
/usr/include/c++/4.3/ostream:449:5: note: candidate function [with _CharT =
char, _Traits = std::char_traitschar] not viable: no overload of 'size'
matching 'char' for 2nd argument
operator(basic_ostream_CharT, _Traits __out, _CharT __c)
^
/usr/include/c++/4.3/ostream:454:5: note: candidate function [with _CharT =
char, _Traits = std::char_traitschar] not viable: no overload of 'size'
matching 'char' for 2nd argument
operator(basic_ostream_CharT, _Traits __out, char __c)
^
/usr/include/c++/4.3/ostream:460:5: note: candidate function [with _Traits =
std::char_traitschar] not viable: no overload of 'size' matching 'char' for
2nd argument
operator(basic_ostreamchar, _Traits __out, char __c)
^
/usr/include/c++/4.3/ostream:466:5: note: candidate function [with _Traits =
std::char_traitschar] not viable: no overload of 'size' matching 'signed
char' for 2nd argument
operator(basic_ostreamchar, _Traits __out, signed char __c)
^
/usr/include/c++/4.3/ostream:471:5: note: candidate function [with _Traits =
std::char_traitschar] not viable: no overload of 'size' matching 'unsigned
char' for 2nd argument
operator(basic_ostreamchar, _Traits __out, unsigned char __c)
^
/usr/include/c++/4.3/ostream:491:5: note: candidate function [with _CharT =

[Bug tree-optimization/50374] Support vectorization of min/max location pattern

2011-09-20 Thread jakub at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50374

--- Comment #13 from Jakub Jelinek jakub at gcc dot gnu.org 2011-09-20 
14:01:55 UTC ---
Ira, thanks for your help, I'll continue working on this now.
To vincenzo, this patch isn't finished, so it is premature to test it.


[Bug fortran/47023] [4.6/4.7 regression] C_Sizeof: Rejects valid code

2011-09-20 Thread kargl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47023

kargl at gcc dot gnu.org changed:

   What|Removed |Added

 CC||kargl at gcc dot gnu.org
  Known to work||4.5.4
Summary|C_Sizeof: Rejects valid |[4.6/4.7 regression]
   |code|C_Sizeof: Rejects valid
   ||code
  Known to fail||4.6.2, 4.7.0

--- Comment #3 from kargl at gcc dot gnu.org 2011-09-20 14:51:25 UTC ---
(In reply to comment #2)
 I'm seeing this bug even for an explicitly interoperable type (hence I'm not
 sure if this is really the same bug - I'm happy to file a new one if someone
 tells me to):
 
   print *, c_sizeof(0.0_c_double)
 1
 Error: 'x' argument of 'c_sizeof' intrinsic at (1) must be be an interoperable
 data entity
 
 GNU Fortran (Ubuntu 4.6.0-1ubuntu1~ppa2) 4.6.1 20110326 (prerelease)

This is now a regression.

troutmask:sgk[208] gfc45 -o z foo.f90
troutmask:sgk[209] ./z
8
troutmask:sgk[210] gfc46 -o z foo.f90
foo.f90:3.25:

  print '(I0)', c_sizeof(0.0_c_double)
 1
Error: 'x' argument of 'c_sizeof' intrinsic at (1) must be be an interoperable
data entity

troutmask:sgk[211] cat foo.f90
program foo
  use iso_c_binding
  print '(I0)', c_sizeof(0.0_c_double)
end program foo


[Bug fortran/47023] [4.6/4.7 regression] C_Sizeof: Rejects valid code

2011-09-20 Thread kargl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47023

--- Comment #4 from kargl at gcc dot gnu.org 2011-09-20 14:57:00 UTC ---
(In reply to comment #3)
 (In reply to comment #2)
  I'm seeing this bug even for an explicitly interoperable type (hence I'm not
  sure if this is really the same bug - I'm happy to file a new one if someone
  tells me to):
  
print *, c_sizeof(0.0_c_double)
  1
  Error: 'x' argument of 'c_sizeof' intrinsic at (1) must be be an 
  interoperable
  data entity
  
  GNU Fortran (Ubuntu 4.6.0-1ubuntu1~ppa2) 4.6.1 20110326 (prerelease)
 
 This is now a regression.
 
 troutmask:sgk[208] gfc45 -o z foo.f90
 troutmask:sgk[209] ./z
 8
 troutmask:sgk[210] gfc46 -o z foo.f90
 foo.f90:3.25:
 
   print '(I0)', c_sizeof(0.0_c_double)
  1
 Error: 'x' argument of 'c_sizeof' intrinsic at (1) must be be an interoperable
 data entity
 
 troutmask:sgk[211] cat foo.f90
 program foo
   use iso_c_binding
   print '(I0)', c_sizeof(0.0_c_double)
 end program foo

This seems to be a bug only when the actual argument is parameter.

program foo
  use iso_c_binding
  real(c_double) x
  print *, c_sizeof(x)
end program foo

works as expected.


[Bug fortran/47023] [4.6/4.7 regression] C_Sizeof: Rejects valid code

2011-09-20 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47023

--- Comment #5 from Dominique d'Humieres dominiq at lps dot ens.fr 2011-09-20 
15:35:00 UTC ---
r158253 is OK
r162456 gives the error.


[Bug lto/50394] [meta-bug] Issues with building libreoffice with LTO

2011-09-20 Thread markus at trippelsdorf dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50394

--- Comment #16 from Markus Trippelsdorf markus at trippelsdorf dot de 
2011-09-20 15:39:41 UTC ---
(In reply to comment #15)
 BTW since the exception seems to be thrown from libuno_cppuhelpergcc3.so.3
 that sounds like there is some sort of gcc specific magic that has good chance
 to break with LTO, I would suggest to try to compile that dso w/o linktime 
 (you
 only need to add -fno-use-linker-plugin -fno-lto) and hopefully we get past
 this issue?

Unfortunately it's not that simple. It looks like several libraries in 
solver/unxlngx6.pro/lib are broken when they are build with LTO.

What I've done is to copy working libraries from a non LTO build into 
solver/unxlngx6.pro/lib, until soffice.bin no longer crashes.
But even cp /lib_working/*gcc* solver/unxlngx6.pro/lib isn't enough.

You have to look at the back-traces to get an idea about what to copy next.
And after copying many libs soffice.bin will no longer crash...

I haven't found out exactly what libs are affected yet, because I've copied
them in large chunks.


[Bug c++/50464] New: Using -Ofast -march=bdver1 results in internal compiler error: in extract_insn, at recog.c:2109

2011-09-20 Thread geir at cray dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50464

 Bug #: 50464
   Summary: Using -Ofast -march=bdver1 results in internal
compiler error: in extract_insn, at recog.c:2109
Classification: Unclassified
   Product: gcc
   Version: 4.6.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: g...@cray.com


Compiling following reduced test case gets the compiler error:

DataspaceIdentifier.cpp: In function 'void createDataspaceIdentifier()':
DataspaceIdentifier.cpp:172:1: error: unrecognizable insn:
(insn 88 87 89 11 (set:V2DI (reg:V2DI 144)
(if_then_else:V2DI (reg:V2DI 146)
(const_vector:V2DI [
(const_int -1 [0x])
(const_int -1 [0x])
])
(reg:V2DI 122 [ vect_var_.44 ]))) DataspaceIdentifier.cpp:155 -1
 (nil))
DataspaceIdentifier.cpp:172:1: internal compiler error: in extract_insn, at
recog.c:2109
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.


$ g++ --version
g++ (GCC) 4.6.1 20110627 (Cray Inc.)
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

$ cat DataspaceIdentifier.cpp

typedef long unsigned int size_t;
typedef unsigned long ulong_t;
typedef signed long slong_t;

extern C++ {
  void* operator new(size_t);
}

  templatetypename _Iterator
struct iterator_traits
{
  typedef typename _Iterator::reference reference;
};

  templatetypename _Tp
struct iterator_traits_Tp*
{
  typedef _Tp reference;
};

  templatetypename _Iterator, typename _Container
class __normal_iterator
{
protected:
  _Iterator _M_current;
  typedef iterator_traits_Iterator __traits_type;

public:
  typedef typename __traits_type::reference reference;

  explicit
  __normal_iterator(const _Iterator __i) : _M_current(__i) { }

  reference
  operator*() const
  { return *_M_current; }

  __normal_iterator
  operator++()
  {
 ++_M_current;
 return *this;
  }

  const _Iterator
  base() const
  { return _M_current; }
};

  templatetypename _Iterator, typename _Container
inline bool
operator!=(const __normal_iterator_Iterator, _Container __lhs,
const __normal_iterator_Iterator, _Container __rhs)
{ return __lhs.base() != __rhs.base(); }

  templatetypename _Tp
class allocator
{
public:
  typedef _Tp* pointer;
  typedef _Tp value_type;

  templatetypename _Tp1
struct rebind
{ typedef allocator_Tp1 other; };

   pointer allocate(size_t __n, const void* = 0)
   {
  return static_cast_Tp*(::operator new(__n * sizeof(_Tp)));
   }
};

  templatetypename _Tp, typename _Alloc
struct _Vector_base
{
  typedef typename _Alloc::template rebind_Tp::other _Tp_alloc_type;

  struct _Vector_impl
  : public _Tp_alloc_type
  {
typename _Tp_alloc_type::pointer _M_start;
typename _Tp_alloc_type::pointer _M_finish;
typename _Tp_alloc_type::pointer _M_end_of_storage;

_Vector_impl(_Tp_alloc_type const __a) { }
  };

public:
  typedef _Alloc allocator_type;

  _Vector_base(size_t __n, const allocator_type __a)
  : _M_impl(__a)
  {
this-_M_impl._M_start = this-_M_allocate(__n);
this-_M_impl._M_finish = this-_M_impl._M_start;
this-_M_impl._M_end_of_storage = this-_M_impl._M_start + __n;
  }

public:
  _Vector_impl _M_impl;

  typename _Tp_alloc_type::pointer
  _M_allocate(size_t __n)
  { return __n != 0 ? _M_impl.allocate(__n) : 0; }

};

  templatetypename _Tp, typename _Alloc = allocator_Tp 
class vector : protected _Vector_base_Tp, _Alloc
{
  typedef _Vector_base_Tp, _Alloc _Base;
  typedef typename _Base::_Tp_alloc_type _Tp_alloc_type;

public:
  typedef _Tp value_type;
  typedef typename _Tp_alloc_type::pointer pointer;
  typedef __normal_iteratorpointer, vector iterator;
  typedef _Alloc allocator_type;

protected:
  using _Base::_M_allocate;
  using _Base::_M_impl;

public:

  explicit
  vector(size_t __n, const value_type __value = value_type(),
  const allocator_type __a = allocator_type())
  : _Base(__n, __a)
  { _M_fill_initialize(__n, __value); }

  iterator begin()
  { return iterator(this-_M_impl._M_start); }

  iterator end()
  { return iterator(this-_M_impl._M_finish); }

protected:
  void
  _M_fill_initialize(size_t __n, const value_type __value)
  {
 this-_M_impl._M_finish = 

[Bug fortran/50463] [4.6/4.7 Regression] -ftree-dse leeds to wrong code with gfortran

2011-09-20 Thread dominiq at lps dot ens.fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50463

--- Comment #4 from Dominique d'Humieres dominiq at lps dot ens.fr 2011-09-20 
16:57:28 UTC ---
This is caused/exposed by revision 165422

Author: rguenth
Date: Wed Oct 13 13:03:31 2010
New Revision: 165422

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

PR tree-optimization/45970
* tree-ssa-alias.h (stmt_kills_ref_p): Declare.
* tree-ssa-alias.c (stmt_kills_ref_p_1): New function.
(stmt_kills_ref_p): Likewise.
* tree-ssa-dse.c (dse_optimize_stmt): Use it.

* gcc.dg/tree-ssa/ssa-dse-13.c: New testcase.

Added:
trunk/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-13.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-ssa-alias.c
trunk/gcc/tree-ssa-alias.h
trunk/gcc/tree-ssa-dse.c

If I revert the patch for trunk/gcc/tree-ssa-dse.c in revision 179007, the
wrong code is fixed (however gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-13.c fails).
I don't know if the cause is in the fortran front-end or in the middle-end, but
in my opinion writing such code is asking for trouble;-(


[Bug fortran/50463] [4.6/4.7 Regression] -ftree-dse leeds to wrong code with gfortran

2011-09-20 Thread manz at intes dot de
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50463

--- Comment #5 from manz at intes dot de 2011-09-20 17:11:56 UTC ---
(In reply to comment #2)
 I confirm the problem on 4.6.1 and trunk, but the code seems to work as
 expected with 4.5.3 and 4.4.6.
 It also works if I merge the three files in one, or if I use -flto.
 
 Assuming that the test is coming from a bigger project, could you try -flto on
 it?
I have never tried -flto on the complete source since its too big
(more than 4.5 million lines of Fortran code).


[Bug target/50464] Using -Ofast -march=bdver1 results in internal compiler error: in extract_insn, at recog.c:2109

2011-09-20 Thread ubizjak at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50464

Uros Bizjak ubizjak at gmail dot com changed:

   What|Removed |Added

 Target||x86
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2011-09-20
   Target Milestone|--- |4.6.2
 Ever Confirmed|0   |1
  Known to fail||4.6.2, 4.7.0

--- Comment #1 from Uros Bizjak ubizjak at gmail dot com 2011-09-20 17:18:29 
UTC ---
Confirmed.


[Bug target/50465] New: [avr] Use insn attribute to depict if and how instruction lengths have to be adjusted

2011-09-20 Thread gjl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50465

 Bug #: 50465
   Summary: [avr] Use insn attribute to depict if and how
instruction lengths have to be adjusted
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P3
 Component: target
AssignedTo: g...@gcc.gnu.org
ReportedBy: g...@gcc.gnu.org
Target: avr


At current, avr.c:adjust_insn_length() uses bunch of C-code to find out if and
how instruction lengths have to be adjusted.

This can be done in a more legible way by means of a new insn attribute.


[Bug target/50465] [avr] Use insn attribute to depict if and how instruction lengths have to be adjusted

2011-09-20 Thread gjl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50465

Georg-Johann Lay gjl at gcc dot gnu.org changed:

   What|Removed |Added

   Priority|P3  |P4
 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2011-09-20
 CC||eric.weddington at atmel
   ||dot com
   Target Milestone|--- |4.7.0
 Ever Confirmed|0   |1


[Bug target/50464] Using -Ofast -march=bdver1 results in internal compiler error: in extract_insn, at recog.c:2109

2011-09-20 Thread ubizjak at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50464

Uros Bizjak ubizjak at gmail dot com changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
 AssignedTo|unassigned at gcc dot   |ubizjak at gmail dot com
   |gnu.org |

--- Comment #2 from Uros Bizjak ubizjak at gmail dot com 2011-09-20 17:59:37 
UTC ---
Created attachment 25328
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=25328
Patch to fix the ICE.

Can you please test the attached patch?


[Bug rtl-optimization/42575] arm-eabi-gcc 64-bit multiply weirdness

2011-09-20 Thread jules at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42575

jules at gcc dot gnu.org changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
 CC||jules at gcc dot gnu.org
 Resolution|FIXED   |

--- Comment #9 from jules at gcc dot gnu.org 2011-09-20 19:03:43 UTC ---
This appears to have regressed on mainline. I now get the following assembly
output for the test case added by Maxim:

longfunc:
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 0, uses_anonymous_args = 0
@ link register save eliminated.
stmfd   sp!, {r4, r5}
umull   r4, r5, r0, r2
mul r3, r0, r3
mla r1, r2, r1, r3
mov r0, r4
add r1, r1, r5
ldmfd   sp!, {r4, r5}
bx  lr


[Bug c++/50442] [4.6 regression] Constructing T from implicit conversion to T ambiguous in C++0x mode, not C++98

2011-09-20 Thread jason at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50442

--- Comment #6 from Jason Merrill jason at gcc dot gnu.org 2011-09-20 
19:25:36 UTC ---
Author: jason
Date: Tue Sep 20 19:25:32 2011
New Revision: 179015

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=179015
Log:
PR c++/50442
* g++.dg/overload/ref-conv1.C: New.

Added:
trunk/gcc/testsuite/g++.dg/overload/ref-conv1.C
Modified:
trunk/gcc/testsuite/ChangeLog


[Bug c/50466] New: Compiled code behaves differently with -O2 -fPIC flag combination

2011-09-20 Thread hmiller at gluster dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50466

 Bug #: 50466
   Summary: Compiled code behaves differently with -O2 -fPIC
flag combination
Classification: Unclassified
   Product: gcc
   Version: 4.3.4
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: hmil...@gluster.com


Compiled code behaves differently with -O2 -fPIC flag combination. Taking out
either of the flags makes the compiled code behave predictably.

Also, commenting out certain lines in the code (highlighted as comments) makes
the code compile predictably even in the presence of -O2 -fPIC.

Other compiler versions always behave predictably for this test case.

#include stdlib.h
#include assert.h
#include stdio.h


struct list_head {
struct list_head *next;
struct list_head *prev;
};


struct pool {
struct list_head list;
int count;
unsigned long size;
void *slab;
};


char global_init;


/* Uncommenting the prototype with attribute masks the bug */ //void *__calloc
(size_t nmemb, size_t size) __attribute_malloc__;

void *
__calloc (size_t nmemb, size_t size)
{
return calloc (nmemb, size);
}


void
pool_validate (struct pool *pool)
{
struct list_head *list = NULL;
struct list_head *head = NULL;
int count = 0;

head = pool-list;

for (list = head-next; list != head; list = list-next) {
count++;
}

if (pool-count == count) {
printf (GOOD :)\n);
} else {
printf (BAD :(\n);
}
}


struct pool *
pool_new (int size, int count)
{
struct pool *pool = NULL;
void *slab = NULL;
int i = 0;
struct list_head *list = NULL;
struct list_head *head = NULL;


/* commenting the below line hides the bug */
do { if (!global_init) break; } while (0);

pool = __calloc (sizeof (*pool), 1);
if (!pool)
return NULL;

head = pool-list;
head-next = head-prev = head;

pool-size = size;
pool-count = count;

slab = __calloc (count, size);
if (!slab) {
free (pool);
return NULL;
}

for (i = 0; i  count; i++) {
list = slab + (i * (size));

list-next = list-prev = list;

list-next = head;
list-prev = head-prev;
list-next-prev = list;
list-prev-next = list;
}
pool-slab = slab;
return pool;
}


int main (int argc, char *argv[])
{
struct pool *pool = NULL;
pool = pool_new (1024, 1024);
pool_validate (pool);
return 0;
}

-
blackhole:~/comp-bug # gcc --version
gcc (SUSE Linux) 4.3.4 [gcc-4_3-branch revision 152973] Copyright (C) 2008 Free
Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

blackhole:~/comp-bug # make all
gcc-4.3 -Wall -O0 -fPIC pool.c -o good
gcc-4.3 -Wall -O2 -fPIC pool.c -o bad
./good
GOOD :)
./bad
BAD :(


[Bug c/50466] Compiled code behaves differently with -O2 -fPIC flag combination

2011-09-20 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50466

--- Comment #1 from Andrew Pinski pinskia at gcc dot gnu.org 2011-09-20 
21:00:55 UTC ---
4.3.x is no longer maintained and had at least one known strict aliasing bug. 
Try 4.5.x or 4.6.x.


[Bug target/50467] New: Compiler can move stack cleanup before last memory reference involving the stack

2011-09-20 Thread meissner at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50467

 Bug #: 50467
   Summary: Compiler can move stack cleanup before last memory
reference involving the stack
Classification: Unclassified
   Product: gcc
   Version: 4.6.2
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: meiss...@gcc.gnu.org
  Host: powerpc64-linux
Target: powerpc64-linux
 Build: powerpc64-linux


In looking at the 462.libquantum spec 2006 benchmark, we noticed that the addi
used to undo the stack frame before the return is done can be moved above
memory operations involving the stack.  In the example we noticed (specrand.c),
it was using a convert 32-bit integer to floating point sequence.  On all
powerpc processors except for power6x, this conversion involves doing a store
to the stack and a reload into the FPR, since there is no move GPR to FPR
instruction.  However, the LFIWAX and LFIWZX instructions do not have a
reg+offset form, and only support reg+reg.  The Altivec and VSX vector
instructions are similar in only having reg+reg forms.  The address that is
used to reference the stack does not have the stack pointer in it, so the
scheduler thinks there is no conflict in moving it up.


[Bug target/50467] Compiler can move stack cleanup before last memory reference involving the stack

2011-09-20 Thread meissner at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50467

--- Comment #1 from Michael Meissner meissner at gcc dot gnu.org 2011-09-20 
21:04:17 UTC ---
Created attachment 25329
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=25329
Code from the libquantum benchmark.


[Bug c++/45114] implement C++0x alias-declaration

2011-09-20 Thread dodji at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45114

Dodji Seketeli dodji at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #7 from Dodji Seketeli dodji at gcc dot gnu.org 2011-09-20 
21:24:27 UTC ---
Mine


[Bug lto/50468] New: ICE in force_type_die when compiling binutils with -flto -O[12]

2011-09-20 Thread matt at use dot net
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50468

 Bug #: 50468
   Summary: ICE in force_type_die when compiling binutils with
-flto -O[12]
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: major
  Priority: P3
 Component: lto
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: m...@use.net


Got this when building binutils-2.21.53.20110810 from source using g++-4.6.real
(Ubuntu/Linaro 4.6.1-9ubuntu3) or g++-4.7.0 20110914 on Ubuntu 11.10 amd64:

g++ -W -Wall-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -frandom-seed=ld-new
-g -flto -O2  -Wl,-Bsymbolic-functions -o ld-new main.o i386.o x86_64.o sparc.o
powerpc.o arm.o arm-reloc-property.o libgold.a ../libiberty/libiberty.a   -ldl
-lz -lm
incremental.o (symbol from plugin): warning: memset used with constant zero
length parameter; this could be due to transposed parameters
In member function ‘__base_ctor ’:
lto1: internal compiler error: in force_type_die, at dwarf2out.c:21022



Interestingly, changing -O2 to -O1 introduces this variation:

incremental.o (symbol from plugin): warning: memset used with constant zero
length parameter; this could be due to transposed parameters
In file included from ../../gold/incremental.h:5152:0,
 from :4601:
../../gold/icf.h: In member function ‘__base_dtor ’:
../../gold/icf.h:62:5: internal compiler error: in force_type_die, at
dwarf2out.c:21022


[Bug lto/50394] [meta-bug] Issues with building libreoffice with LTO

2011-09-20 Thread hubicka at ucw dot cz
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50394

--- Comment #17 from Jan Hubicka hubicka at ucw dot cz 2011-09-20 22:19:38 
UTC ---
 I haven't found out exactly what libs are affected yet, because I've copied
 them in large chunks.

Hmm, this is quite weird. I am not aware of any really important LTO related
wrong code issues (and in general my experience is that LTO tends to ICE or
produce missing symbols, not really produce wrong code that often).
So my bet would be that libreoffice uses some tricks that breaks with LTO and
we will need to idenitfy which one.

If you could look into it, perhaps it would be interesting to identify smallest
library that misoptimize and see what is happening with it.

One common cause of problems is that -flto confuse the configure scripts.
Some of configure tests are written in a way so LTO optimize the interesting
part away and the test always pass. This usually leads to some link/parse
errors
but it also might break other things. Since you have both lto and non-lto
builds,
you could compare the config caches and see if they match?

Thanks!
Honza


[Bug libgomp/50386] [4.7 Regression] libgomp.h:87:5: error: unnamed struct/union that defines no instances

2011-09-20 Thread ramana at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50386

--- Comment #4 from Ramana Radhakrishnan ramana at gcc dot gnu.org 2011-09-20 
22:32:49 UTC ---
I think this is a bootstrap issue rather than a problem with libgomp . A
reduced testcase of this form fails with the stage2 compiler but is ok with the
stage1 compiler. 


struct gomp_work_share
{
  /* This member records the SCHEDULE clause to be used for this construct.
 The user specification of runtime will already have been resolved.
 If this is a SECTIONS construct, this value will always be DYNAMIC.  */
  union {
struct {
  /* This is the chunk_size argument to the SCHEDULE clause.  */
  long chunk_size;

  /* This is the iteration end point.  If this is a SECTIONS construct,
 this is the number of contained sections.  */
  long end;

  /* This is the iteration step.  If this is a SECTIONS construct, this
 is always 1.  */
  long incr;
}u;

  };
}a;

Where the stage2 compiler goes : 

/home/4/t1.i:21:3: warning: unnamed struct/union that defines no instances
[enabled by default]


and the stage1 compiler goes quietly. 

Could you check if you see similar behaviour ? 

Ramana


[Bug fortran/50469] New: [4.7 Regression] FAIL: gfortran.dg/storage_size_2.f08

2011-09-20 Thread hjl.tools at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50469

 Bug #: 50469
   Summary: [4.7 Regression] FAIL: gfortran.dg/storage_size_2.f08
Classification: Unclassified
   Product: gcc
   Version: 4.7.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: hjl.to...@gmail.com


On Linux/x86, revision 179013 gave

FAIL: gfortran.dg/storage_size_2.f08  -O   (test for errors, line 17)
FAIL: gfortran.dg/storage_size_2.f08  -O   (test for errors, line 17)
FAIL: gfortran.dg/storage_size_2.f08  -O   (test for errors, line 20)
FAIL: gfortran.dg/storage_size_2.f08  -O   (test for errors, line 20)
FAIL: gfortran.dg/storage_size_2.f08  -O  (test for excess errors)
FAIL: gfortran.dg/storage_size_2.f08  -O  (test for excess errors)

Revision 179007 is OK.


[Bug testsuite/50469] [4.7 Regression] FAIL: gfortran.dg/storage_size_2.f08

2011-09-20 Thread hjl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50469

--- Comment #1 from hjl at gcc dot gnu.org hjl at gcc dot gnu.org 2011-09-20 
22:59:53 UTC ---
Author: hjl
Date: Tue Sep 20 22:59:49 2011
New Revision: 179022

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=179022
Log:
Replace must be be with must be.

2011-09-20  H.J. Lu  hongjiu...@intel.com

PR testsuite/50469
* gfortran.dg/storage_size_2.f08: Replace must be be with
must be.

Modified:
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gfortran.dg/storage_size_2.f08


[Bug testsuite/50469] [4.7 Regression] FAIL: gfortran.dg/storage_size_2.f08

2011-09-20 Thread kargl at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50469

kargl at gcc dot gnu.org changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 CC||kargl at gcc dot gnu.org
 Resolution||FIXED

--- Comment #2 from kargl at gcc dot gnu.org 2011-09-20 23:15:40 UTC ---
HJ

Thanks for catching this issue.  It never occurred
to me that someone might actually write must be be
in an error message, and then test for that string
in the testsuite.  

I'm closing this as fixed.  Sorry about the noise
in your tester.


[Bug c++/49488] [C++0x] Use 'final' for devirtualization purposes

2011-09-20 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49488

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

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

--- Comment #5 from Paolo Carlini paolo.carlini at oracle dot com 2011-09-20 
23:44:07 UTC ---
Implemented with:

2011-09-20 Roberto Agostino Vitillo raviti...@lbl.gov

* call.c (build_new_method_call_1): Use non-virtual lookup
for final virtual functions.


[Bug c++/49813] [C++0x] sinh vs asinh vs constexpr

2011-09-20 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49813

Paolo Carlini paolo.carlini at oracle dot com changed:

   What|Removed |Added

 Status|REOPENED|RESOLVED
 Resolution||FIXED

--- Comment #58 from Paolo Carlini paolo.carlini at oracle dot com 2011-09-20 
23:45:12 UTC ---
I think this is completely done by now.


[Bug driver/50470] New: gcc does not respect -nostdlib with regard to search paths

2011-09-20 Thread bugdal at aerifal dot cx
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50470

 Bug #: 50470
   Summary: gcc does not respect -nostdlib with regard to search
paths
Classification: Unclassified
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: driver
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: bug...@aerifal.cx


Even with -nostdlib, gcc leaves the default library paths in the search path,
including /usr/lib (in the form of /usr/lib/gcc/targetstring/version/../../..).
This makes -nostdlib basically useless for its only foreseeable purpose,
building programs against a completely alternate library ecosystem(*). The only
workaround I've found is installing a wrapper script with -wrapper to remove
the unwanted paths.

(*) Leaving default paths in the search path after the custom ones is not
acceptable because configure scripts will find and attempt to use libraries in
the default paths if the corresponding library does not exist in the custom
path.


[Bug driver/50470] gcc does not respect -nostdlib with regard to search paths

2011-09-20 Thread pinskia at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50470

--- Comment #1 from Andrew Pinski pinskia at gcc dot gnu.org 2011-09-21 
01:20:48 UTC ---
I think this is why GCC created the --with-sysroot option while building GCC
itself.  And really -nostdlib is not just for alternate library ecosystem. 
It is so you can supply all the libraries you want to link against explicitly. 
It is used to link glibc and other libc's tobegin with.  Also if you list the
full path to the library there is no search involved.


[Bug driver/50470] gcc does not respect -nostdlib with regard to search paths

2011-09-20 Thread bugdal at aerifal dot cx
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50470

--- Comment #2 from Rich Felker bugdal at aerifal dot cx 2011-09-21 01:34:29 
UTC ---
The sysroot features may be nice but they're not a substitute for being able to
eliminate the default library search path. For example, when using sysroot,
-L/new/path will prepend the sysroot to /new/path.


[Bug target/50467] Compiler can move stack cleanup before last memory reference involving the stack

2011-09-20 Thread amodra at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50467

Alan Modra amodra at gmail dot com changed:

   What|Removed |Added

 Target|powerpc64-linux |powerpc-linux, powerpc-eabi
 Status|UNCONFIRMED |NEW
   Keywords||wrong-code
   Last reconfirmed||2011-09-21
 CC||amodra at gmail dot com
   Host|powerpc64-linux |powerpc-linux
 Ever Confirmed|0   |1
  Build|powerpc64-linux |powerpc-linux

--- Comment #2 from Alan Modra amodra at gmail dot com 2011-09-21 01:53:33 
UTC ---
I believe this is another instance of PR30282 but with access to a compiler
generated stack temp rather than an auto var moving past the stack update.


[Bug c++/50471] New: Qualified lookup fails to find template function

2011-09-20 Thread zoltan at epochcapital dot com.au
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50471

 Bug #: 50471
   Summary: Qualified lookup fails to find template function
Classification: Unclassified
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassig...@gcc.gnu.org
ReportedBy: zol...@epochcapital.com.au


Please see the attached sample file, functions g1() and g2() should produce the
same output, but they do not. The difference is that g2() finds a template
function when called with an unqualified name, g1() does not find the template
function when called with a qualified name. 

GCC version:

[zoltan@epcau-srv-dev:test]$ g++-4.5 -v
Using built-in specs.
Reading specs from /usr/lib64/gcc/x86_64-suse-linux/4.5/defaults.spec
COLLECT_GCC=g++-4.5
COLLECT_LTO_WRAPPER=/usr/lib64/gcc/x86_64-suse-linux/4.5/lto-wrapper
Target: x86_64-suse-linux
Configured with: ../configure --prefix=/usr --infodir=/usr/share/info
--mandir=/usr/share/man --libdir=/usr/lib64 --libexecdir=/usr/lib64
--enable-languages=c,c++,fortran --enable-checking=release
--with-gxx-include-dir=/usr/include/c++/4.5 --enable-ssp --disable-libssp
--disable-plugin --with-bugurl=http://bugs.opensuse.org/
--with-pkgversion='SUSE Linux' --disable-libgcj --disable-libmudflap
--with-slibdir=/lib64 --with-system-zlib --enable-__cxa_atexit
--enable-libstdcxx-allocator=new --disable-libstdcxx-pch
--enable-version-specific-runtime-libs --program-suffix=-4.5
--enable-linux-futex --without-system-libunwind --enable-gold
--with-plugin-ld=/usr/bin/gold --with-arch-32=i586 --with-tune=generic
--build=x86_64-suse-linux
Thread model: posix
gcc version 4.5.0 20100414 [gcc-4_5-branch revision 158342] (SUSE Linux)


[Bug c++/50471] Qualified lookup fails to find template function

2011-09-20 Thread zoltan at epochcapital dot com.au
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50471

--- Comment #1 from Zoltan Glozik zoltan at epochcapital dot com.au 
2011-09-21 05:41:57 UTC ---
Created attachment 25330
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=25330
bug


[Bug c++/50471] Qualified lookup fails to find template function

2011-09-20 Thread zoltan at epochcapital dot com.au
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50471

--- Comment #2 from Zoltan Glozik zoltan at epochcapital dot com.au 
2011-09-21 05:43:44 UTC ---
Comment on attachment 25330
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=25330
bug


#include iostream

namespace NS {

templateclass T
struct A {
T t;
};


templateclass T
void f(T t)
{
std::cout  function 1  std::endl;
}   

templateclass T
void g1(T t)
{
// qualify with namespace
NS::f(t);
}

templateclass T
void g2(T t)
{
// do not qualify with namespace
f(t);
}

templateclass T
void f(AT t)
{
std::cout  function 2  std::endl;
}

}

int main()
{
using namespace NS;
Aint a;

g1(a);  // this should print: function 2, bug?
g2(a);  // this prints function 2 correctly.
return 0;
}