[Bug middle-end/44554] Stack space after sigsetjmp is reused

2010-09-09 Thread christian dot eggers at kathrein dot de


--- Comment #10 from christian dot eggers at kathrein dot de  2010-09-09 
06:17 ---
(In reply to comment #9)
 I've submitted a patch solving PR40386.  So now we can solve this problem by
 preventing slot sharing when setjmp is used.
 
 I'll send a patch soon.

Could you please send me both patches? I would like to test whether both
problems are solved (at least for me).

regards
Christian


-- 


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



[Bug c++/45609] New: 'is used uninitialized' becomes 'may be used uninitialized' on unrelated code changes (namespace addition)

2010-09-09 Thread gcc at abeckmann dot de
(I looked for duplicate -Wuninitialized bugs but didn't see anything similar)

In the attached minimized testcase I get a clear 'is used uninitialized'
warning downgraded to a 'may be used uninitialized' warning on unrelated code
changes.

The program compiles correctly with the following flags: -O3 -Wall
To move one function definition into a namespace, add -DBAD_NAMESPACE and get
the wrong warning.
Reordering/removing/adding/changing the sizes of local variables makes the
warning restore to 'is used uninitialized', one example can be enabled by
-DGOOD_ORDER

This is a regression since 4.3 as 4.2 always gives a 'is used uninitialized'
warning. I tested with the following compilers from SVN on amd64 and x86
architectures:

g++-trunk (GCC) 4.6.0 20100901 (experimental) == BAD
g++-4.5.x (GCC) 4.5.2 20100901 (prerelease) == BAD
g++-4.4.x (GCC) 4.4.5 20100824 (prerelease) == BAD
g++-4.3.x (GCC) 4.3.6 20100824 (prerelease) == BAD
g++-4.2.x (GCC) 4.2.5 20090330 (prerelease) == OK

+ g++-4.5.x -std=c++0x -O3 -Wall -c PRmbuuitf.cpp
PRmbuuitf.cpp: In function 'void test()':
PRmbuuitf.cpp:66:25: warning: 'b$t$MBUUITF' is used uninitialized in this
function
PRmbuuitf.cpp:64:5: note: 'b$t$MBUUITF' was declared here
+ g++-4.5.x -std=c++0x -O3 -Wall -c PRmbuuitf.cpp -DBAD_NAMESPACE
PRmbuuitf.cpp: In function 'void test()':
vvv
PRmbuuitf.cpp:66:25: warning: 'b$t$MBUUITF' may be used uninitialized in this
function
^^^
PRmbuuitf.cpp:64:5: note: 'b$t$MBUUITF' was declared here
+ g++-4.5.x -std=c++0x -O3 -Wall -c PRmbuuitf.cpp -DBAD_NAMESPACE -DGOOD_ORDER
PRmbuuitf.cpp: In function 'void test()':
PRmbuuitf.cpp:66:25: warning: 'b$t$MBUUITF' is used uninitialized in this
function
PRmbuuitf.cpp:64:5: note: 'b$t$MBUUITF' was declared here

+ g++-4.2.x -O3 -Wall -c PRmbuuitf.cpp -DBAD_NAMESPACE
PRmbuuitf.cpp: In function 'void test()':
PRmbuuitf.cpp:66: warning: 'b.B::t.T::MBUUITF' is used uninitialized in this
function
PRmbuuitf.cpp:64: note: 'b.B::t.T::MBUUITF' was declared here


-- 
   Summary: 'is used uninitialized' becomes 'may be used
uninitialized' on unrelated code changes (namespace
addition)
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: gcc at abeckmann dot de


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



[Bug c++/8966] [Alpha OSF5.1] Lost exceptions across library boundaries

2010-09-09 Thread mt at debian dot org


--- Comment #10 from mt at debian dot org  2010-09-09 06:23 ---
I have tried to reproduce the problem with g++ 4.5 and couldn't make it fail
anymore. The problem, however, is that I couldn't make it fail with g++ 4.4
either. Whatever the essential change might have been, the PPL instance of this
problem seems to be fixed.

Best,
Michael


-- 


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



[Bug c++/45609] 'is used uninitialized' becomes 'may be used uninitialized' on unrelated code changes (namespace addition)

2010-09-09 Thread gcc at abeckmann dot de


--- Comment #1 from gcc at abeckmann dot de  2010-09-09 06:24 ---
Created an attachment (id=21746)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21746action=view)
minimized testcase


-- 


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



[Bug c++/45588] unused-but-set-variable false trigger building gold

2010-09-09 Thread jakub at gcc dot gnu dot org


--- Comment #4 from jakub at gcc dot gnu dot org  2010-09-09 06:51 ---
Subject: Bug 45588

Author: jakub
Date: Thu Sep  9 06:50:56 2010
New Revision: 164051

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=164051
Log:
PR c++/45588
* pt.c (tsubst) case INTEGER_TYPE: Call mark_rvalue_use
before calling fold_decl_constant_value.

* g++.dg/warn/Wunused-var-15.C: New test.

Added:
trunk/gcc/testsuite/g++.dg/warn/Wunused-var-15.C
Modified:
trunk/gcc/cp/ChangeLog
trunk/gcc/cp/pt.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug c++/45603] cc1plus crashes in build_addr_func

2010-09-09 Thread jobnoorman at gmail dot com


--- Comment #2 from jobnoorman at gmail dot com  2010-09-09 07:11 ---
(In reply to comment #1)
 Note, if you really need the name __cxa_guard_acquire to trigger the bug, 
 which
 is in the implementor namespace, due to the double underscore in front, this
 is a low priority ICE on *illegal*.


I first triggered this bug in a freestanding environment and it's not illegal
there.


-- 


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



[Bug c++/45588] unused-but-set-variable false trigger building gold

2010-09-09 Thread jakub at gcc dot gnu dot org


--- Comment #5 from jakub at gcc dot gnu dot org  2010-09-09 07:16 ---
Fixed.


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug c++/45601] explicit template instantiation problem

2010-09-09 Thread stephane at magnenat dot net


--- Comment #5 from stephane at magnenat dot net  2010-09-09 07:19 ---
Thank you very much for these explanations, thanks to your pointer I managed to
make a working version, which I will attach to this bug as reference.

As a side-note, it is not easy to access C++ standard because the official ISO
document is non free. While citing the section in the standard, did you refer
to the N3092 draft (as linked from Wikipedia C++ page) or to the official ISO
document? I found a draft of it at
http://www.csci.csusb.edu/dick/c++std/cd2/template.html

If I may suggest, it would be nice that g++ would be a bit more
specific/clearer when reporting the error, because as there are few (if not
none) freely available reference/documentation for complex templates
processing, this would help users very much.


-- 


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



[Bug c++/45603] cc1plus crashes in build_addr_func

2010-09-09 Thread pinskia at gcc dot gnu dot org


--- Comment #3 from pinskia at gcc dot gnu dot org  2010-09-09 07:20 ---
I first triggered this bug in a freestanding environment

You need to include -fno-threadsafe-statics to disable the use of
__cxa_guard_acquire.  This functions is part of the normal C++ ABI we follow
(the IA64 C++ ABI and it is included in the ARM C++ EABI too).


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

   Severity|blocker |normal
   Keywords||ice-on-invalid-code


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



[Bug c++/45603] cc1plus crashes in build_addr_func

2010-09-09 Thread jobnoorman at gmail dot com


--- Comment #4 from jobnoorman at gmail dot com  2010-09-09 07:25 ---
(In reply to comment #3)
 You need to include -fno-threadsafe-statics to disable the use of
 __cxa_guard_acquire.  This functions is part of the normal C++ ABI we follow
 (the IA64 C++ ABI and it is included in the ARM C++ EABI too).

Thanks! I can use that as a quick workaround but I'll eventually need
__cxa_guard_acquire.


-- 

jobnoorman at gmail dot com changed:

   What|Removed |Added

   Severity|normal  |blocker


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



[Bug c++/45601] explicit template instantiation problem

2010-09-09 Thread stephane at magnenat dot net


--- Comment #6 from stephane at magnenat dot net  2010-09-09 07:20 ---
Created an attachment (id=21747)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21747action=view)
Working code


-- 


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



[Bug c++/45603] cc1plus crashes in build_addr_func

2010-09-09 Thread pinskia at gcc dot gnu dot org


--- Comment #5 from pinskia at gcc dot gnu dot org  2010-09-09 07:27 ---
I can use that as a quick workaround but I'll eventually need
__cxa_guard_acquire.

Then you should look into the ABI to see how it is defined.  I think this ICE
only happens when it is declared incorrectly.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

   Severity|blocker |normal


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



[Bug c++/45603] cc1plus crashes in build_addr_func

2010-09-09 Thread jobnoorman at gmail dot com


--- Comment #6 from jobnoorman at gmail dot com  2010-09-09 07:35 ---
(In reply to comment #5)
 Then you should look into the ABI to see how it is defined.  I think this ICE
 only happens when it is declared incorrectly.

According to the ABI, it should be declared as

extern C int __cxa_guard_acquire(int64_t*);

And this crashes all the same.


-- 

jobnoorman at gmail dot com changed:

   What|Removed |Added

   Severity|normal  |blocker


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



[Bug c++/45603] cc1plus crashes in build_addr_func

2010-09-09 Thread jakub at gcc dot gnu dot org


--- Comment #7 from jakub at gcc dot gnu dot org  2010-09-09 07:45 ---
That's because the compiler's expectation is that if you define
__cxa_guard_acquire, you also define __cxa_guard_release and __cxa_guard_abort.
And, they should be declared throw() as well.


-- 


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



[Bug c++/45603] cc1plus crashes in build_addr_func

2010-09-09 Thread jobnoorman at gmail dot com


--- Comment #8 from jobnoorman at gmail dot com  2010-09-09 08:00 ---
(In reply to comment #7)
 That's because the compiler's expectation is that if you define
 __cxa_guard_acquire, you also define __cxa_guard_release and 
 __cxa_guard_abort.
 And, they should be declared throw() as well.

I was just trying to provide a minimal reproducible crash. In my actual
program, all three functions are, of course, defined and properly implemented
and GCC also crashes. (BTW, where did you find that they should be declared
throw()? Anyway, GCC also crashes if I declare them like that.)

But let's stick to the point here: GCC crashes and it shouldn't, no matter what
I do.


-- 


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



[Bug c++/45609] [Regression 4.3/4.4/4.5/4.6] 'is used uninitialized' becomes 'may be used uninitialized' on unrelated code changes (namespace addition)

2010-09-09 Thread manu at gcc dot gnu dot org


--- Comment #2 from manu at gcc dot gnu dot org  2010-09-09 08:00 ---
In any case, this is a clear regression of the pretty printer.


-- 

manu at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||manu at gcc dot gnu dot org
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2010-09-09 08:00:56
   date||
Summary|'is used uninitialized' |[Regression 4.3/4.4/4.5/4.6]
   |becomes 'may be used|'is used uninitialized'
   |uninitialized' on unrelated |becomes 'may be used
   |code changes (namespace |uninitialized' on unrelated
   |addition)   |code changes (namespace
   ||addition)
   Target Milestone|--- |4.3.6


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



[Bug tree-optimization/41087] [4.5/4.6 Regression]: cris-elf gfortran.dg/zero_sized_3.f90 -O3 -funroll-loops execution

2010-09-09 Thread hp at gcc dot gnu dot org


--- Comment #9 from hp at gcc dot gnu dot org  2010-09-09 08:11 ---
Created an attachment (id=21748)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21748action=view)
patch

The simplest solution is to correct noce_get_condition to not follow its
documentation and not allow conditions that aren't valid at JUMP rather than
valid at EARLIEST, simply because we can't allow an additional side-effect.
Maybe too simple for some, but simple and safe enough for a release-branch.


-- 


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



[Bug c++/45605] Missed devirtualization

2010-09-09 Thread rguenther at suse dot de


--- Comment #2 from rguenther at suse dot de  2010-09-09 08:43 ---
Subject: Re:   New: Missed devirtualization

On Thu, 9 Sep 2010, hubicka at gcc dot gnu dot org wrote:

 The following testcase taken from testsuite (and many others):
 // PR 14535
 // { dg-do run }
 // { dg-options -O -finline }
 //
 // Original test case failure required that Raiser constructor be inlined.
 
 extern C void abort(); 
 bool destructor_called = false; 
 
 struct B { 
 virtual void Run(){}; 
 }; 
 
 struct D : public B { 
 virtual void Run() 
   { 
 struct O { 
 ~O() { destructor_called = true; }; 
 } o; 
 
 struct Raiser { 
 Raiser()  throw( int ) {throw 1;}; 
 } raiser; 
   }; 
 }; 
 
 int main() { 
 try { 
   D d; 
   static_castB(d).Run(); 
 } catch (...) {} 
 
 if (!destructor_called) 
   abort (); 
 } 
 
 leads to following in .optimized dump:
 bb 2:
   MEM[(struct B *)d]._vptr.B = _ZTV1B[2];
   d.D.2108._vptr.B = _ZTV1D[2];
   D.2210_2 = _ZTV1D[2];
   OBJ_TYPE_REF(D.2210_2;d.D.2108-0) (d.D.2108);
 
 Obviously OBJ_TYPE_REF can be optimized here since we know the
 virtual table.  Why it is missed?
 
 I run into it because my new folding code is actually smart enough to lead to:
 int (*__vtbl_ptr_type) (void)
 
 void D::T400 (struct D *)
 
 D.2210_2 = Run;
 
 The error comes because we pick from initializer of VTBL the following
 ADDR_EXPR:
  addr_expr 0x77ec8b10
 type pointer_type 0x76b7db28 __vtbl_ptr_type
 type function_type 0x76b7da80 type integer_type 0x77edb498
 int
 type_6 QI
 size integer_cst 0x77ec54d8 constant 8
 unit size integer_cst 0x77ec5500 constant 1
 align 8 symtab 0 alias set -1 canonical type 0x76b7da80
 pointer_to_this pointer_type 0x76b7db28 __vtbl_ptr_type
 unsigned type_6 DI
 size integer_cst 0x77ec57d0 constant 64
 unit size integer_cst 0x77ec57f8 constant 8
 align 64 symtab 0 alias set -1 canonical type 0x76b7db28
 pointer_to_this pointer_type 0x76b7dc78
 constant
 arg 0 function_decl 0x76b8e500 Run
 type method_type 0x76b9b9d8 type void_type 0x77edbe70 void
 type_6 QI size integer_cst 0x77ec54d8 8 unit size
 integer_cst 0x77ec5500 1
 align 8 symtab 0 alias set -1 canonical type 0x76b9b9d8 method
 basetype record_type 0x76b9b7e0 D
 arg-types tree_list 0x76b80af0 value pointer_type
 0x76b9ba80
 chain tree_list 0x77eed398 value void_type 
 0x77edbe70
 void
 pointer_to_this pointer_type 0x76bab150
 addressable volatile asm_written used public static weak autoinline
 virtual decl_5 QI file /home/jh/a.C line 15 col 18 align 16 context
 record_type 0x76b9b7e0 D initial error_mark 0x77ecdb28
 arguments parm_decl 0x77ece990 this type pointer_type
 0x76b9bb28
 readonly unsigned DI file /home/jh/a.C line 15 col 22 size
 integer_cst 0x77ec57d0 64 unit size integer_cst 0x77ec57f8 8
 align 64 context function_decl 0x76b8e500 Run
 (reg/f:DI 62 [ this ]) arg-type pointer_type 0x76b9bb28
 incoming-rtl (reg:DI 5 di [ this ])
 result result_decl 0x77ed0380 D.2112 type void_type
 0x77edbe70 void
 ignored VOID file /home/jh/a.C line 16 col 7
 align 8 context function_decl 0x76b8e500 Run
 full-name virtual void D::Run()
 pending-inline-info 0x76ba42a0
 (mem:QI (symbol_ref/i:DI (_ZN1D3RunEv) [flags 0x1] function_decl
 0x76b8e500 Run) [0 S1 A8])
 
 Note the differece in between type of address and the method RUN.  This is 
 what
 makes verifier unhappy.  How to fix this?  Should FE put there some NOP_EXPR
 somewhere? Still devirtualizing should realize this case a lot earlier.

Well - it's easy.  Whoever does substitution needs to verify it can
do so.  Which of course is tricky with the stupid way we do
substitute_and_fold ...

Richard.


-- 


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



[Bug fortran/44334] rnflow.f90 ~27% slower with -fwhole-program -flto after revision 159852

2010-09-09 Thread burnus at gcc dot gnu dot org


--- Comment #11 from burnus at gcc dot gnu dot org  2010-09-09 09:00 ---
[Move comment from IRC #gcc to bugzilla]

(In reply to comment #9)
 For what it is worth, on AMD Athlon 64 X2 4800+ / x86-64-linux, [...]
 That's a +16% increase in run-time with -fwhole-program.

(In reply to comment #10)
 So hot-bb-frequency-fraction solves the whole regression?

For me (cf. system above), --param hot-bb-frequency-fraction=2000 reduces the
slow down due to -fwhole-program from 16% to 3%. (The LTO version with and
without -fwhole-file is about 2% slower than the corresponding -fno-lto
version.)


-- 


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



[Bug c++/45601] explicit template instantiation problem

2010-09-09 Thread paolo dot carlini at oracle dot com


--- Comment #7 from paolo dot carlini at oracle dot com  2010-09-09 09:16 
---
The current ISO document, C++98 or C++03 which contains some rather small
amendments: if C++0x were different it would show only when -std=c++0x is
passed. In any case, it's unfortunate but we cannot do much about the cost of
the document, if you are serious about C++ you should buy it as you buy books
and everything else, is also rather cheap.


-- 


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



[Bug c++/45603] cc1plus crashes in build_addr_func

2010-09-09 Thread paolo dot carlini at oracle dot com


-- 

paolo dot carlini at oracle dot com changed:

   What|Removed |Added

   Severity|blocker |normal


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



[Bug libstdc++/45574] cin.getline() is extremely slow

2010-09-09 Thread paolo dot carlini at oracle dot com


--- Comment #15 from paolo dot carlini at oracle dot com  2010-09-09 09:25 
---
If you write a patch it would be of course looked at. But *please* try first
something that doesn't break the ABI, because we have *no* idea when you
changes would be applied otherwise. About the *_unlocked functions, we know
those glibc extensions exist, but, as far as I can see would only change the
complexity by a not so so small multiplicative constant and, after years and
years of using everywhere the normal versions, I don't believe we should change
just now the configuration on Linux only. But, as I said, provided you don't
break the ABI (to be concrete) and the improvements are substantive, you are
certainly welcome to submit patches to the libstdc++ mailing list. Thanks.


-- 


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



[Bug c++/45603] cc1plus crashes in build_addr_func

2010-09-09 Thread paolo dot carlini at oracle dot com


--- Comment #9 from paolo dot carlini at oracle dot com  2010-09-09 09:43 
---
(In reply to comment #8)
(BTW, where did you find that they should be declared throw()?

If you open cxxabi.h, you can see _GLIBCXX_NOTHROW after release and abort.


-- 


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



[Bug c++/45607] [4.3/4.4 Regression] Confusing error message

2010-09-09 Thread rguenth at gcc dot gnu dot org


--- Comment #1 from rguenth at gcc dot gnu dot org  2010-09-09 09:47 ---
4.5 prints

t.C:2:13: error: 'A::A' has the same name as the class in which it is declared

3.4

t.C:2: error: `enum A::A' has the same name as the class in which it is
declared

which is nicest.  4.0 to 4.4 exhibit the behavior as described in this bug.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
  Known to work||3.4.6 4.5.1 4.6.0
   Last reconfirmed|-00-00 00:00:00 |2010-09-09 09:47:36
   date||
Summary|Inappropriate error message |[4.3/4.4 Regression]
   ||Confusing error message
   Target Milestone|--- |4.4.5


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



[Bug testsuite/45604] [4.6 regression] New test failures

2010-09-09 Thread rguenth at gcc dot gnu dot org


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

   Target Milestone|--- |4.6.0


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



[Bug c++/45603] cc1plus crashes in build_addr_func

2010-09-09 Thread rguenth at gcc dot gnu dot org


--- Comment #10 from rguenth at gcc dot gnu dot org  2010-09-09 09:51 
---
Confirmed.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2010-09-09 09:51:17
   date||


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



[Bug middle-end/45589] [4.6 Regression] 200.sixtrack in SPEC CPU 2000 is miscompiled

2010-09-09 Thread rguenth at gcc dot gnu dot org


--- Comment #6 from rguenth at gcc dot gnu dot org  2010-09-09 09:52 ---
Was a dup (fixed).

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


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||DUPLICATE


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



[Bug tree-optimization/45578] [4.6 Regression] The polyhedron test mdbx is miscompiled with -O2 -ftree-vectorize at revision 163915

2010-09-09 Thread rguenth at gcc dot gnu dot org


--- Comment #10 from rguenth at gcc dot gnu dot org  2010-09-09 09:52 
---
*** Bug 45589 has been marked as a duplicate of this bug. ***


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||hjl dot tools at gmail dot
   ||com


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



[Bug c/45610] New: misleading warning when operator paired with a constant - is it operator precedence?

2010-09-09 Thread alexander dot stohr at gmx dot de
gcc --version
gcc (GCC) 4.3.1
Copyright (C) 2008 Free Software Foundation, Inc.

found in package cairo-1.9.14 and file test/cairo-test.c with critical line
1597:
  if (ctx-thread == 0  ! RUNNING_ON_VALGRIND)

build outputs:
warning: logical '' with non-zero constant will always evaluate as true

from the used setup the VALGRIND macro is assumed to have a true value.
(a code checker would probably suggest using round braces around the == part.
the used default project tuning of gcc does not raise a warning on operator
precedence.)

whats the problem?
a) if you use  with a constant and something else
then your result will always either be false (const=false) or something else
(const=true).
there is no case for the compiler seeing this as fixed to true.
b) maybe its unintended operator precedence that makes the case behave
strangely


-- 
   Summary: misleading warning when  operator paired with a
constant - is it operator precedence?
   Product: gcc
   Version: 4.3.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: alexander dot stohr at gmx dot de


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



[Bug bootstrap/45445] [4.6 regression] ARM bootstrap failure: comparison failures after stage 3

2010-09-09 Thread mikpe at it dot uu dot se


--- Comment #7 from mikpe at it dot uu dot se  2010-09-09 10:21 ---
It's not a stage2/stage3 debug difference as far as I can tell.  I've
recompiled every differing .o file with the stage 1/2/3 xgccs -fcompare-debug
without complaints.

The test case showing the different code generation is trivial (this is in the
objdir for a native bootstrap of r163951):

 cat sreal.c
void normalize(unsigned long long *sreal_sig)
{
*sreal_sig = 1;
}
 stage1-gcc/xgcc -Bstage1-gcc -O2 -c sreal.c; objdump -d sreal.o

sreal.o: file format elf32-littlearm


Disassembly of section .text:

 normalize:
   0:   e1c020d0ldrdr2, [r0]
   4:   e0922002addsr2, r2, r2
   8:   e0a33003adc r3, r3, r3
   c:   e1c020f0strdr2, [r0]
  10:   e12fff1ebx  lr
 stage2-gcc/xgcc -Bstage2-gcc -O2 -c sreal.c ; objdump -d sreal.o

sreal.o: file format elf32-littlearm


Disassembly of section .text:

 normalize:
   0:   e1c020d0ldrdr2, [r0]
   4:   e1b02082lslsr2, r2, #1
   8:   e0a33003adc r3, r3, r3
   c:   e1c020f0strdr2, [r0]
  10:   e12fff1ebx  lr
 stage3-gcc/xgcc -Bstage3-gcc -O2 -c sreal.c ; objdump -d sreal.o

sreal.o: file format elf32-littlearm


Disassembly of section .text:

 normalize:
   0:   e1c020d0ldrdr2, [r0]
   4:   e1b02082lslsr2, r2, #1
   8:   e0a33003adc r3, r3, r3
   c:   e1c020f0strdr2, [r0]
  10:   e12fff1ebx  lr

So stage1 chooses adds but stage2 and stage3 choose lsls for  of the lower
half of a long long.  Since the behaviour of a stageN xgcc depends on both the
gcc source code and the compiler used to build it, I have to suspect a source
code ambiguity (e.g. evaluation order dependence) that the bootstrap compiler
(gcc-4.4.4 in my case) resolves differently from post-r162417 4.6.

I've so far not been able to reproduce this difference in a cross from i686;
those cross compilers always seem to choose the adds form regardless of the
version of gcc I'm building with.


-- 


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



[Bug bootstrap/45611] New: [4.6 regression] SIGBUS in generate_option_input_file on Solaris 2/SPARC

2010-09-09 Thread ro at gcc dot gnu dot org
Between rev 163993 and 164013, mainline bootstrap started failing on Solaris 2
SPARC.  The stage2 libgcc fails to configure because the stage2 xgcc gets a
SIGBUS for

% ../../xgcc -B../../gcc/ -c -g -O2 conftest.c
Bus Error

Running xgcc under gdb, I find that the crash happens here:

Program received signal SIGSEGV, Segmentation fault.
generate_option_input_file (argc=value optimized out, argv=value optimized
out, lang_mask=value optimized out, decoded_options=0xffbff394,
decoded_options_count=0xffbff390) at
/vol/gcc/src/hg/trunk/local/gcc/opts-common.c:750
1: x/i $pc
= 0x28584 decode_cmdline_options_to_array+168:   clrx  [ %l0 + 0x18 ]

%lo+0x18 isn't 8-byte aligned at that point.

Comparing the assembler code between the working and failing versions, I find
that the following change has happened:

 decode_cmdline_options_to_array+0xa4:   c0 24 20 14  clr   [%l0 +
0x14]
-decode_cmdline_options_to_array+0xa8:   c0 24 20 18  clr   [%l0 +
0x18]
-decode_cmdline_options_to_array+0xac:   c0 24 20 1c  clr   [%l0 +
0x1c]
-decode_cmdline_options_to_array+0xb0:   c4 24 20 24  st%g2, [%l0 +
0x24]
+decode_cmdline_options_to_array+0xa8:   c0 74 20 18  clrx  [%l0 +
0x18]
+decode_cmdline_options_to_array+0xac:   c4 24 20 24  st%g2, [%l0 +
0x24]

i.e. two clr insns (which are ok with 4-byte alignment) have been replaced by
a single clrx.

I'll start a reghunt to find the culprit patch.


-- 
   Summary: [4.6 regression] SIGBUS in generate_option_input_file on
Solaris 2/SPARC
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: bootstrap
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: ro at gcc dot gnu dot org
 GCC build triplet: sparc-sun-solaris2*
  GCC host triplet: sparc-sun-solaris2*
GCC target triplet: sparc-sun-solaris2*


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



[Bug bootstrap/45612] New: [4.6 regression] Reference to undefined label building libada no Solaris 2/SPARC

2010-09-09 Thread ro at gcc dot gnu dot org
Between 20100903 and 20100908, mainline bootstrap with Ada started failing when
compiling the 32-bit g-debpoo.adb:

% /var/gcc/gcc-4.6.0-20100908/11-gcc-gas/./gcc/xgcc
-B/var/gcc/gcc-4.6.0-20100908/11-gcc-gas/./gcc/
-B/usr/local/sparc-sun-solaris2.11/bin/ -B/usr/local/sparc-sun-solaris2.11/lib/
-isystem /usr/local/sparc-sun-solaris2.11/include -isystem
/usr/local/sparc-sun-solaris2.11/sys-include-c -g -O2  -fPIC  -W -Wall
-gnatpg   g-debpoo.adb -o g-debpoo.o -save-temps
g-debpoo.s: Assembler messages:
g-debpoo.s:5362: Error: undefined symbol `.LL363' in operation
g-debpoo.s:5363: Error: undefined symbol `.LL363' in operation


-- 
   Summary: [4.6 regression] Reference to undefined label building
libada no Solaris 2/SPARC
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: bootstrap
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: ro at gcc dot gnu dot org
 GCC build triplet: sparc-sun-solaris2*
  GCC host triplet: sparc-sun-solaris2*
GCC target triplet: sparc-sun-solaris2*


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



[Bug c++/45603] cc1plus crashes in build_addr_func

2010-09-09 Thread jakub at gcc dot gnu dot org


--- Comment #11 from jakub at gcc dot gnu dot org  2010-09-09 10:28 ---
templatetypename T
struct Singleton
{
  static T* get()
  {
static T instance;
return instance;
  }
  ~Singleton() {}
};

struct Foo : SingletonFoo
{
};

#ifdef __ARM_EABI__
typedef int __guard;
#else
typedef int __guard __attribute__((mode(DI)));
#endif
extern C int __cxa_guard_acquire(__guard *)
{
}
extern C void __cxa_guard_release(__guard *) throw()
{
}
extern C void __cxa_guard_abort(__guard *) throw()
{
}

void foo()
{
  Foo::get();
}

compiles just fine.


-- 


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



[Bug bootstrap/45612] [4.6 regression] Reference to undefined label building libada no Solaris 2/SPARC

2010-09-09 Thread ro at gcc dot gnu dot org


--- Comment #1 from ro at gcc dot gnu dot org  2010-09-09 10:29 ---
Created an attachment (id=21749)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21749action=view)
assembler output


-- 


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



[Bug libstdc++/45613] New: bits/random.h misses include guards

2010-09-09 Thread gcc at abeckmann dot de
I just noticed that bits/random.h does not have include guards.


-- 
   Summary: bits/random.h misses include guards
   Product: gcc
   Version: 4.5.3
Status: UNCONFIRMED
  Severity: minor
  Priority: P3
 Component: libstdc++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: gcc at abeckmann dot de


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



[Bug libstdc++/45574] cin.getline() is extremely slow

2010-09-09 Thread jakub at gcc dot gnu dot org


--- Comment #16 from jakub at gcc dot gnu dot org  2010-09-09 10:33 ---
The *_unlocked versions are faster a lot actually, at least for the one
character ops, because no locking is performed and the calls are inlined.
But the question is whether libstdc++ can use them, unless there is some
restriction that would disallow several threads from using the same FILE *
(including using STL APIs in one thread and C stdio APIs in another thread).


-- 


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



[Bug bootstrap/45611] [4.6 regression] SIGBUS in generate_option_input_file on Solaris 2/SPARC

2010-09-09 Thread ebotcazou at gcc dot gnu dot org


--- Comment #1 from ebotcazou at gcc dot gnu dot org  2010-09-09 10:38 
---
Presumably 163997 then.


-- 


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



[Bug libstdc++/45574] cin.getline() is extremely slow

2010-09-09 Thread paolo dot carlini at oracle dot com


--- Comment #17 from paolo dot carlini at oracle dot com  2010-09-09 10:42 
---
At some point I tried quickly replacing some getc, did notice an improvement of
course, but of the order of magnitude I mentioned. Worth further investigating
sure (and simple, just replace in stdio_sync_ and measure, on Linux). In terms
of the C++ Standard, I think that C++98 would allow essentially *anything*, not
so C++0x, and within C++98 too I'm afraid we can break code making already some
assumptions about the thread safety, which we don't spell out anywhere as impl
def behavior, still...


-- 


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



[Bug libstdc++/45613] bits/random.h misses include guards

2010-09-09 Thread paolo dot carlini at oracle dot com


--- Comment #1 from paolo dot carlini at oracle dot com  2010-09-09 10:44 
---
You are right, random.tcc too actually. Should not be too risky because those
are internal headers, not meant to be included directly by the users. Still,
I'll fix momentarily, thanks.


-- 

paolo dot carlini at oracle dot com changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |paolo dot carlini at oracle
   |dot org |dot com
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2010-09-09 10:44:28
   date||


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



[Bug c++/45605] Missed devirtualization

2010-09-09 Thread hubicka at gcc dot gnu dot org


--- Comment #3 from hubicka at gcc dot gnu dot org  2010-09-09 11:02 ---
Hmm, is it?
C equivalent IMO is:
int a(void);

typedef void (*ptr) (void);

static const ptr array[1]={(ptr)a};
ptr t;
main()
{
  t=array[0];
}

Here we have ctor represented as follows:
 nop_expr 0x76b53f30
type pointer_type 0x76b383f0
type function_type 0x77eee690 type void_type 0x77ed9e70 void
QI
size integer_cst 0x77ec54d8 constant 8
unit size integer_cst 0x77ec5500 constant 1
align 8 symtab 0 alias set -1 canonical type 0x77eee690
arg-types tree_list 0x77ec5eb0 value void_type 0x77ed9e70
void
pointer_to_this pointer_type 0x76b383f0
unsigned DI
size integer_cst 0x77ec57d0 constant 64
unit size integer_cst 0x77ec57f8 constant 8
align 64 symtab 0 alias set -1 canonical type 0x76b383f0
pointer_to_this pointer_type 0x76b38738
constant
arg 0 addr_expr 0x76b53f00
type pointer_type 0x76b38bd0 type function_type 0x77eee888
unsigned DI size integer_cst 0x77ec57d0 64 unit size
integer_cst 0x77ec57f8 8
align 64 symtab 0 alias set -1 canonical type 0x76b38bd0
constant
arg 0 function_decl 0x76b37f00 a type function_type
0x77eee888
addressable used public external decl_5 QI file t.c line 1 col 5
align 8 chain var_decl 0x76b550a0 t
t.c:5:33
t.c:5:28

this gets into canonicalize_constructor_val and it does STRIP_NOPS so we
return addr_expr with different type than array_ref from
fold_const_aggregate_ref (this code is copied from old implementation, the
STRIP_NOPS there seemed bid odd to me originally) and this lands in ccp_fold
that is happy and CCP re-inserts the nop later.

I guess C++ FE is wrong to produce type mismatch in addr_expr?  That should be
easy to fix.

I wonder about other users of fold_const_aggregate_ref. Shall they also work on
re-inserting the conversions to avoid possible type mismatch?

Obviously more worms...
Honza


-- 


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



[Bug c++/19816] C++ front-end produces a cast instead of just a.b (empty base class)

2010-09-09 Thread hubicka at gcc dot gnu dot org


--- Comment #2 from hubicka at gcc dot gnu dot org  2010-09-09 11:05 ---
Hmm, my system compiles (4.3.2) gets:
_Z1fv:
.LFB2:
subq$24, %rsp
.LCFI0:
leaq23(%rsp), %rdi
call_ZN4baseC2Ev
addq$24, %rsp
ret
.LFE2:

this seems OK to me?


-- 


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



[Bug bootstrap/45612] [4.6 regression] Reference to undefined label building libada no Solaris 2/SPARC

2010-09-09 Thread ebotcazou at gcc dot gnu dot org


--- Comment #2 from ebotcazou at gcc dot gnu dot org  2010-09-09 11:09 
---
This compiled fine on 20100907 for me.


-- 


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



[Bug libstdc++/45613] bits/random.h misses include guards

2010-09-09 Thread paolo at gcc dot gnu dot org


--- Comment #2 from paolo at gcc dot gnu dot org  2010-09-09 11:24 ---
Subject: Bug 45613

Author: paolo
Date: Thu Sep  9 11:23:39 2010
New Revision: 164074

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=164074
Log:
2010-09-09  Paolo Carlini  paolo.carl...@oracle.com

PR libstdc++/45613
* include/bits/random.tcc: Add missing include guards.
* include/bits/random.h: Likewise.
* include/tr1/random.tcc: Likewise.

Modified:
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/include/bits/random.h
trunk/libstdc++-v3/include/bits/random.tcc
trunk/libstdc++-v3/include/tr1/random.tcc


-- 


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



[Bug libstdc++/45613] bits/random.h misses include guards

2010-09-09 Thread paolo dot carlini at oracle dot com


--- Comment #3 from paolo dot carlini at oracle dot com  2010-09-09 11:25 
---
Done.


-- 

paolo dot carlini at oracle dot com changed:

   What|Removed |Added

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


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



[Bug c++/45605] Missed devirtualization

2010-09-09 Thread hubicka at gcc dot gnu dot org


--- Comment #4 from hubicka at gcc dot gnu dot org  2010-09-09 11:33 ---
testing the following fix:
Index: class.c
===
--- class.c (revision 163947)
+++ class.c (working copy)
@@ -7797,7 +7797,7 @@ build_vtbl_initializer (tree binfo,
{
  fn = abort_fndecl;
  if (abort_fndecl_addr == NULL)
-   abort_fndecl_addr = build1 (ADDR_EXPR, vfunc_ptr_type_node,
fn);
+   fold_convert (vfunc_ptr_type_node, build_fold_addr_expr (fn));
  init = abort_fndecl_addr;
}
  else
@@ -7810,7 +7810,7 @@ build_vtbl_initializer (tree binfo,
}
  /* Take the address of the function, considering it to be of an
 appropriate generic type.  */
- init = build1 (ADDR_EXPR, vfunc_ptr_type_node, fn);
+ init = fold_convert (vfunc_ptr_type_node, build_fold_addr_expr
(fn));
}
this solves the ICE, but won't get call devirtualized. We end up with:
  MEM[(struct B *)d]._vptr.B = _ZTV1B[2];
  d.D.2108._vptr.B = _ZTV1D[2];
  D.2210_2 = (int (*__vtbl_ptr_type) (void)) Run;
  OBJ_TYPE_REF(D.2210_2;d.D.2108-0) (d.D.2108);
It seems that forw-prop should be told that OBJ_TYPE_REF does not care about
nops on the operand and also fold_ccp can be told to call fold_obj_type_ref on
the substituted constant.  Martin, can you take a look, please?

I am attaching current WIP version of my constructor folding that makes
D.2210_2 = (int (*__vtbl_ptr_type) (void)) Run; to happen.

Honza


-- 


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



[Bug c++/45605] Missed devirtualization

2010-09-09 Thread hubicka at gcc dot gnu dot org


--- Comment #5 from hubicka at gcc dot gnu dot org  2010-09-09 11:36 ---
Created an attachment (id=21750)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21750action=view)
WIP patch. Still misses some of Richi's earlier comments.


-- 


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



[Bug c++/45609] [4.3/4.4/4.5/4.6 Regression] 'is used uninitialized' becomes 'may be used uninitialized' on unrelated code changes (namespace addition)

2010-09-09 Thread jakub at gcc dot gnu dot org


--- Comment #3 from jakub at gcc dot gnu dot org  2010-09-09 11:56 ---
I don't see any problem.  All of current trunk, 4.5 and 4.4 print it as
b.B::t.T::MBUUITF
rather than
b$t$MBUUITF
and the other difference in the warning message is not caused by unrelated code
changes, but actually very much related.
With -UBAD_NAMESPACE ::f() function is defined in the current TU and thus the
compiler knows it doesn't throw and that D::D() doesn't throw either, with
-DBAD_NAMESPACE ::f() is only declared and so the compiler doesn't know it it
throws or doesn't, and similarly for D::D().  The is used uninitialized warning
is emitted only in basic blocks that are always executed (with -UBAD_NAMESPACE
if A::A() is called, it will always pass the uninitialized var to C::g(int);
with -DBAD_NAMESPACE if ::f() throws then that wouldn't happen.


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||INVALID


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



[Bug tree-optimization/45421] [4.6 regression] Ada bootstrap failure on IRIX 6.5: SIGBUS in sem_aggr.sort_case_table

2010-09-09 Thread ro at gcc dot gnu dot org


--- Comment #8 from ro at gcc dot gnu dot org  2010-09-09 12:05 ---
Unfortunately not: bootstrap still fails as of rev. 164013.


-- 

ro at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|RESOLVED|REOPENED
 Resolution|DUPLICATE   |


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



[Bug target/35664] unable to find a register to spill in class 'FP_REGS' (sparc-linux)

2010-09-09 Thread mikpe at it dot uu dot se


--- Comment #4 from mikpe at it dot uu dot se  2010-09-09 12:06 ---
This ICEs for me with 4.4-20100907 and the 4.5.1 release (-m32 -mno-fpu), but
not with 4.5-20100902 or 4.6-20100904.


-- 

mikpe at it dot uu dot se changed:

   What|Removed |Added

 CC||mikpe at it dot uu dot se


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



[Bug tree-optimization/45421] [4.6 regression] Ada bootstrap failure on IRIX 6.5: SIGBUS in sem_aggr.sort_case_table

2010-09-09 Thread ebotcazou at gcc dot gnu dot org


--- Comment #9 from ebotcazou at gcc dot gnu dot org  2010-09-09 12:15 
---
 Unfortunately not: bootstrap still fails as of rev. 164013.

Not very surprising given that we now have a SIGBUS on the SPARC as well...


-- 


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



[Bug c/45610] misleading warning when operator paired with a constant - is it operator precedence?

2010-09-09 Thread joseph at codesourcery dot com


--- Comment #1 from joseph at codesourcery dot com  2010-09-09 12:20 ---
Subject: Re:   New: misleading warning when  operator paired
 with a constant - is it operator precedence?

You don't give a self-contained testcase whose behavior with different 
versions can be compared, but the warnings now are

  if (or_op)
warning_at (location, OPT_Wlogical_op, logical %or%
 applied to non-boolean constant);
  else
warning_at (location, OPT_Wlogical_op, logical %and%
 applied to non-boolean constant);

and the reason is

  /* Warn if /|| are being used in a context where it is
 likely that the bitwise equivalent was intended by the
 programmer. That is, an expression such as op  MASK
 where op should not be any boolean expression, nor a
 constant, and mask seems to be a non-boolean integer constant.  */


-- 


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



[Bug bootstrap/45611] [4.6 regression] SIGBUS in generate_option_input_file on Solaris 2/SPARC

2010-09-09 Thread ro at CeBiTec dot Uni-Bielefeld dot DE


--- Comment #2 from ro at CeBiTec dot Uni-Bielefeld dot DE  2010-09-09 
12:41 ---
Subject: Re:  [4.6 regression] SIGBUS in generate_option_input_file on Solaris
2/SPARC

 --- Comment #1 from ebotcazou at gcc dot gnu dot org  2010-09-09 10:38 
 ---
 Presumably 163997 then.

Indeed: a C-only bootstrap on sparc-sun-solaris2.10 works as of rev
163996 and fails with 163997.

Rainer


-- 


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



[Bug target/35664] unable to find a register to spill in class 'FP_REGS' (sparc-linux)

2010-09-09 Thread mikpe at it dot uu dot se


--- Comment #5 from mikpe at it dot uu dot se  2010-09-09 12:41 ---
(In reply to comment #4)
 This ICEs for me with 4.4-20100907 and the 4.5.1 release (-m32 -mno-fpu), but
 not with 4.5-20100902 or 4.6-20100904.

Oops, that was with a locally modified 4.5-20100902.  A vanilla 4.5-20100902
still ICEs.


-- 


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



[Bug bootstrap/45611] [4.6 regression] SIGBUS in generate_option_input_file on Solaris 2/SPARC

2010-09-09 Thread ro at gcc dot gnu dot org


--- Comment #3 from ro at gcc dot gnu dot org  2010-09-09 12:43 ---
Richard, could you please have a look?


-- 

ro at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||rguenther at suse dot de
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2010-09-09 12:43:28
   date||


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



[Bug rtl-optimization/45614] New: [4.6 Regression] ICE: RTL check: expected code 'reg', have 'subreg' in rhs_regno, at rtl.h:1056 with -ftree-vectorize

2010-09-09 Thread zsojka at seznam dot cz
Compiler output:
$ gcc -O -ftree-vectorize testcase.c
testcase.c: In function 'foo':
testcase.c:11:1: internal compiler error: RTL check: expected code 'reg', have
'subreg' in rhs_regno, at rtl.h:1056
Please submit a full bug report,
with preprocessed source if appropriate.
See http://bugs.gentoo.org/ for instructions.

Tested revisions:
r164069 - crash
r163965 - OK


-- 
   Summary: [4.6 Regression] ICE: RTL check: expected code 'reg',
have 'subreg' in rhs_regno, at rtl.h:1056 with -ftree-
vectorize
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: rtl-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: zsojka at seznam dot cz
  GCC host triplet: x86_64-pc-linux-gnu
GCC target triplet: x86_64-pc-linux-gnu


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



[Bug rtl-optimization/45614] [4.6 Regression] ICE: RTL check: expected code 'reg', have 'subreg' in rhs_regno, at rtl.h:1056 with -ftree-vectorize

2010-09-09 Thread zsojka at seznam dot cz


--- Comment #1 from zsojka at seznam dot cz  2010-09-09 13:04 ---
Created an attachment (id=21751)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21751action=view)
reduced testcase


-- 


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



[Bug c/45610] misleading warning when operator paired with a constant - is it operator precedence?

2010-09-09 Thread manu at gcc dot gnu dot org


--- Comment #2 from manu at gcc dot gnu dot org  2010-09-09 13:15 ---
We need a testcase

http://gcc.gnu.org/bugs/minimize.html

but I am pretty sure this is not warned anymore in GCC 4.6 (and probably GCC
4.4 and 4.5)


-- 

manu at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||manu at gcc dot gnu dot org
 Status|UNCONFIRMED |WAITING


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



[Bug rtl-optimization/45614] [4.6 Regression] ICE: RTL check: expected code 'reg', have 'subreg' in rhs_regno, at rtl.h:1056 with -ftree-vectorize

2010-09-09 Thread hjl dot tools at gmail dot com


--- Comment #2 from hjl dot tools at gmail dot com  2010-09-09 13:26 ---
I think it is fixed by revision 164071:

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


-- 

hjl dot tools at gmail dot com changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING


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



[Bug bootstrap/45611] [4.6 regression] SIGBUS in generate_option_input_file on Solaris 2/SPARC

2010-09-09 Thread rguenth at gcc dot gnu dot org


--- Comment #4 from rguenth at gcc dot gnu dot org  2010-09-09 13:27 ---
(In reply to comment #3)
 Richard, could you please have a look?

I don't have access to sparc-sun-solaris2*, so I can't bootstrap it (but
at most build a cross cc1).

So please attach a testcase (easiest is probably in a non-bootstrapped
tree run make check and pick a simple one that fails from the C testsuite).

Is sparc-sun-solaris2* a STRICT_ALIGNMENT target?  What's the clr instruction?
Is it a store or a load?

The revision in question is supposed to make alignment less strict and I
can't see how this can break anything.


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |WAITING
   Target Milestone|--- |4.6.0


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



[Bug rtl-optimization/45614] [4.6 Regression] ICE: RTL check: expected code 'reg', have 'subreg' in rhs_regno, at rtl.h:1056 with -ftree-vectorize

2010-09-09 Thread zsojka at seznam dot cz


--- Comment #3 from zsojka at seznam dot cz  2010-09-09 13:40 ---
Indeed, r164077 no longer crashes.


-- 


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



[Bug middle-end/40386] wrong code generation for several SPEC CPU2000 benchmarks (lucas, mgrid, face, applu, apsi) with -O1 -fno-ira-share-spill-slots

2010-09-09 Thread vmakarov at gcc dot gnu dot org


--- Comment #10 from vmakarov at gcc dot gnu dot org  2010-09-09 13:43 
---
Subject: Bug 40386

Author: vmakarov
Date: Thu Sep  9 13:42:51 2010
New Revision: 164095

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=164095
Log:
2010-09-08  Vladimir Makarov  vmaka...@redhat.com

PR middle-end/40386
* ira.c (pseudo_for_reload_consideration_p): Don't use
flag_ira_share_spill_slots.

2010-09-08  Vladimir Makarov  vmaka...@redhat.com

PR middle-end/40386
* gcc.c-torture/execute/{pr40386.c,pr40386.x}: New testcase.


Added:
branches/gcc-4_4-branch/gcc/testsuite/gcc.c-torture/execute/pr40386.c
branches/gcc-4_4-branch/gcc/testsuite/gcc.c-torture/execute/pr40386.x
Modified:
branches/gcc-4_4-branch/gcc/ChangeLog
branches/gcc-4_4-branch/gcc/ira.c
branches/gcc-4_4-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug middle-end/40386] wrong code generation for several SPEC CPU2000 benchmarks (lucas, mgrid, face, applu, apsi) with -O1 -fno-ira-share-spill-slots

2010-09-09 Thread vmakarov at gcc dot gnu dot org


--- Comment #11 from vmakarov at gcc dot gnu dot org  2010-09-09 13:47 
---
Subject: Bug 40386

Author: vmakarov
Date: Thu Sep  9 13:47:14 2010
New Revision: 164097

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=164097
Log:
2010-09-08  Vladimir Makarov  vmaka...@redhat.com

PR middle-end/40386
* ira.c (pseudo_for_reload_consideration_p): Don't use
flag_ira_share_spill_slots.

2010-09-08  Vladimir Makarov  vmaka...@redhat.com

PR middle-end/40386
* gcc.c-torture/execute/{pr40386.c,pr40386.x}: New testcase.


Added:
branches/gcc-4_5-branch/gcc/testsuite/gcc.c-torture/execute/pr40386.c
branches/gcc-4_5-branch/gcc/testsuite/gcc.c-torture/execute/pr40386.x
Modified:
branches/gcc-4_5-branch/gcc/ChangeLog
branches/gcc-4_5-branch/gcc/ira.c
branches/gcc-4_5-branch/gcc/testsuite/ChangeLog


-- 


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



[Bug middle-end/40386] wrong code generation for several SPEC CPU2000 benchmarks (lucas, mgrid, face, applu, apsi) with -O1 -fno-ira-share-spill-slots

2010-09-09 Thread vmakarov at gcc dot gnu dot org


--- Comment #12 from vmakarov at gcc dot gnu dot org  2010-09-09 13:51 
---
Subject: Bug 40386

Author: vmakarov
Date: Thu Sep  9 13:51:25 2010
New Revision: 164100

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=164100
Log:
2010-09-09  Vladimir Makarov  vmaka...@redhat.com

PR middle-end/40386
* ira.c (pseudo_for_reload_consideration_p): Don't use
flag_ira_share_spill_slots.

2010-09-09  Vladimir Makarov  vmaka...@redhat.com

PR middle-end/40386
* gcc.c-torture/execute/{pr40386.c,pr40386.x}: New testcase.



Added:
trunk/gcc/testsuite/gcc.c-torture/execute/pr40386.c
trunk/gcc/testsuite/gcc.c-torture/execute/pr40386.x
Modified:
trunk/gcc/ChangeLog
trunk/gcc/ira.c
trunk/gcc/testsuite/ChangeLog


-- 


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



[Bug middle-end/44554] Stack space after sigsetjmp is reused

2010-09-09 Thread vmakarov at gcc dot gnu dot org


--- Comment #11 from vmakarov at gcc dot gnu dot org  2010-09-09 13:54 
---
Subject: Bug 44554

Author: vmakarov
Date: Thu Sep  9 13:53:32 2010
New Revision: 164102

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=164102
Log:
2010-09-09  Vladimir Makarov  vmaka...@redhat.com

PR middle-end/44554
* ira.c (ira): Switch off sharing spill slots if setjmp is called.


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


-- 


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




[Bug middle-end/44554] Stack space after sigsetjmp is reused

2010-09-09 Thread vmakarov at gcc dot gnu dot org


--- Comment #12 from vmakarov at gcc dot gnu dot org  2010-09-09 13:56 
---
Subject: Bug 44554

Author: vmakarov
Date: Thu Sep  9 13:55:35 2010
New Revision: 164105

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=164105
Log:
2010-09-09  Vladimir Makarov  vmaka...@redhat.com

PR middle-end/44554
* ira.c (ira): Switch off sharing spill slots if setjmp is called.


Modified:
branches/gcc-4_5-branch/gcc/ChangeLog
branches/gcc-4_5-branch/gcc/ira.c


-- 


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



[Bug middle-end/44554] Stack space after sigsetjmp is reused

2010-09-09 Thread vmakarov at gcc dot gnu dot org


--- Comment #13 from vmakarov at gcc dot gnu dot org  2010-09-09 13:58 
---
Subject: Bug 44554

Author: vmakarov
Date: Thu Sep  9 13:58:24 2010
New Revision: 164107

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=164107
Log:
2010-09-09  Vladimir Makarov  vmaka...@redhat.com

PR middle-end/44554
* ira.c (ira): Switch off sharing spill slots if setjmp is called.


Modified:
branches/gcc-4_4-branch/gcc/ChangeLog
branches/gcc-4_4-branch/gcc/ira.c


-- 


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



[Bug rtl-optimization/45614] [4.6 Regression] ICE: RTL check: expected code 'reg', have 'subreg' in rhs_regno, at rtl.h:1056 with -ftree-vectorize

2010-09-09 Thread hjl dot tools at gmail dot com


--- Comment #4 from hjl dot tools at gmail dot com  2010-09-09 14:09 ---
Fixed.


-- 

hjl dot tools at gmail dot com changed:

   What|Removed |Added

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


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



[Bug fortran/45277] make bootstrap fails at:checking whether the GNU Fortran compiler is working... no

2010-09-09 Thread philippe_scelers at mentor dot com


--- Comment #7 from philippe_scelers at mentor dot com  2010-09-09 14:10 
---
Previous comments describe encountered issue, including gmp/mpfr/mpc version.

Below a summary of successfull build on Solaris 10
 standalone build/install for gmp/mpfr/mpc, ABI=32 is mandatory

gcc --version
gcc (GCC) 4.5.1
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/free/NEW_GNU_BUILD/devenv_g3_package/bundle_v1.0/sun4u/5.10/bin/../libexec/gcc/sparc-sun-solaris2.10/4.5.1/lto-wrapper
Target: sparc-sun-solaris2.10
Configured with: /free/NEW_GNU_BUILD/devenv_g3_package/src/gcc-4.5.1/configure
--prefix=/free/NEW_GNU_BUILD/devenv_g3_package/install/sun4u/5.10/gcc-4.5.1
--disable-nls --with-local-prefix=/u/gnu --enable-languages=c,c++,fortran
--with-gnu-as
--with-as=/free/NEW_GNU_BUILD/devenv_g3_package/install/sun4u/5.10/binutils-2.20.1/bin/as
--with-gnu-ld
--with-ld=/free/NEW_GNU_BUILD/devenv_g3_package/install/sun4u/5.10/binutils-2.20.1/bin/ld
--with-gmp=/free/NEW_GNU_BUILD/devenv_g3_package/install/sun4u/5.10/gmp-4.3.2
--with-mpfr=/free/NEW_GNU_BUILD/devenv_g3_package/install/sun4u/5.10/mpfr-2.4.2
--with-mpc=/free/NEW_GNU_BUILD/devenv_g3_package/install/sun4u/5.10/mpc-0.8.1
Thread model: posix
gcc version 4.5.1 (GCC) 


-- 


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



[Bug libstdc++/45574] cin.getline() is extremely slow

2010-09-09 Thread tstarling at wikimedia dot org


--- Comment #18 from tstarling at wikimedia dot org  2010-09-09 14:12 
---
Created an attachment (id=21752)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21752action=view)
gprof output

I haven't managed to get libstdc++ to compile with -pg, but compiling the test
program with -static at least gives you a function breakdown. gprof output
attached for 1 million lines, 500 bytes per line. To summarise:

fgetc: 36.13%
istream::getline: 18.01%
ungetc: 16.70%
_IO_sputbackc: 9.54%
stdio_sync_filebuf::underflow: 5.66%
stdio_sync_filebuf::uflow: 4.93%

I should have spotted it from reading the code, it's not a loop of getc(), it's
a loop of ungetc(getc())  getc(). It really demonstrates how poorly suited
the streambuf interface is to unbuffered input. The virtual functions called by
istream::getline() don't give much flexibility. So I still have no other ideas
apart from breaking the ABI.


-- 


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



[Bug libstdc++/45574] cin.getline() is extremely slow

2010-09-09 Thread tstarling at wikimedia dot org


--- Comment #19 from tstarling at wikimedia dot org  2010-09-09 14:28 
---
(In reply to comment #16)
 The *_unlocked versions are faster a lot actually, at least for the one
 character ops, because no locking is performed and the calls are inlined.
 But the question is whether libstdc++ can use them, unless there is some
 restriction that would disallow several threads from using the same FILE *
 (including using STL APIs in one thread and C stdio APIs in another thread).

My current idea is to do:

flockfile(stdin);
while (!eof) {
c = getc_unlocked(stdin);
...
}
funlockfile(stdin);

This is not only much faster, it's an improvement to the current behaviour in
terms of locking and thread safety. The current behaviour, as I said in comment
#4, could cause data to be badly mangled if one thread uses stdio while another
uses cin.getline(). Using getc() in preference to getc_unlocked() does not
help.

And unlike getdelim(), the unlocked I/O functions are in POSIX.1-2001, says the
man page, so it's relatively portable.


-- 


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



[Bug libstdc++/45574] cin.getline() is extremely slow

2010-09-09 Thread paolo dot carlini at oracle dot com


--- Comment #20 from paolo dot carlini at oracle dot com  2010-09-09 14:53 
---
Good about POSIX, we would add a configure time test with some hope to enable
the mechanism outside Linux too. Anyway, I'm sure your kind of loop would
improve the performance a lot - if only we could have it without breaking the
ABI I would be in favor of having it immediately - still, we would still use a
single char function, I think the complexity for long lines would still scale
badly. As a matter of fact, I think the only completely satisfactory design
would be that used by the old v2, with a low level libio layer, doing buffering
and the low level operations, and used by the C and C++ libraries on top.
Missing that, I don't think the C++ library, working purely on top of the
Standard C library will ever be able to performe as well as C in the synced
mode. The only hope could be exploiting, on Linux systems, a glibc *extension*
(we do that in many other cases), like an fgetc not writing '\0' and newline,
which the glibc people would essentially provide exactly to help the C++
library implementation. Anyway, sorry if I may have appeared a little too harsh
in my first replies, the fact is I know the history of these facilities, I know
all the effort other people besides me put to have a good overall compromise
(eg, stdio_sync isn't mine and solved a *a lot* of problems), we are certainly
open to improvements, but realistic ones, at least until we break all the ABIs.


-- 


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



[Bug c++/45615] New: -Wshadow doesn't report class member shadowing

2010-09-09 Thread joseph dot h dot garvin at gmail dot com
The following simple test program when compiled with -Wshadow produces no
output. I'd expect to get warnings for both the x and y declaration in class B.

class A {
static int x;
int y;
};

class B : public A {
static int x;
int y;
};

int main()
{
B a;
return 0;
}

If this is intentional, perhaps another -W flag is appropriate. I spent about
an hour trying to figure out why an app broke when I change a static class
member declared in a class's header to instead be an anonymous global in that
class's source file, and it was because all of the source file's references to
the variable after the change went to a parent class variable of the same name
and type rather than the global.


-- 
   Summary: -Wshadow doesn't report class member shadowing
   Product: gcc
   Version: 4.2.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: joseph dot h dot garvin at gmail dot com


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



[Bug libstdc++/45574] cin.getline() is extremely slow

2010-09-09 Thread jakub at gcc dot gnu dot org


--- Comment #21 from jakub at gcc dot gnu dot org  2010-09-09 15:07 ---
#if  __GNUC__ = 3
# define _IO_BE(expr, res) __builtin_expect ((expr), res)
#else
# define _IO_BE(expr, res) (expr)
#endif

#define _IO_getc_unlocked(_fp) \
   (_IO_BE ((_fp)-_IO_read_ptr = (_fp)-_IO_read_end, 0) \
? __uflow (_fp) : *(unsigned char *) (_fp)-_IO_read_ptr++)
...
__STDIO_INLINE int
getc_unlocked (FILE *__fp)
{
  return _IO_getc_unlocked (__fp);
}

i.e. if getc_unlocked is called directly, it should be very fast, unless the
underlying stream is unbuffered.  This is direct access to the buffer, just STL
getline couldn't use memchr.

Anyway, not sure which STL getline we are talking about here, because e.g.
src/istream.cc getline seems to access the stdio buffer directly:
  streamsize __size = std::min(streamsize(__sb-egptr()
  - __sb-gptr()),
   streamsize(__n - _M_gcount
  - 1));
  if (__size  1)
{
  const char_type* __p = traits_type::find(__sb-gptr(),
   __size,
   __delim);


-- 


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



[Bug target/44606] Wrong SPE floating point during computation

2010-09-09 Thread froydnj at gcc dot gnu dot org


--- Comment #7 from froydnj at gcc dot gnu dot org  2010-09-09 15:28 ---
The problem is in the register allocator.  What happens is that after register
allocation, we have something like:

  r27:DF = [r11:SI]
  ...
  r27:SI = 0
  ...

and then the first def gets deleted because it's obviously dead code.  I don't
know why the register allocator chooses r27 for the SImode pseudo.

Scheduling is necessary to trigger the bug, but it's not the problem.


-- 

froydnj at gcc dot gnu dot org changed:

   What|Removed |Added

 CC||froydnj at gcc dot gnu dot
   ||org


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



[Bug tree-optimization/44328] switch/case optimization produces an invalid lookup table index

2010-09-09 Thread ibolton at gcc dot gnu dot org


--- Comment #36 from ibolton at gcc dot gnu dot org  2010-09-09 15:37 
---
Fixed in 4.4, 4.5 and trunk.


-- 

ibolton at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug tree-optimization/44328] switch/case optimization produces an invalid lookup table index

2010-09-09 Thread rguenth at gcc dot gnu dot org


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

   Target Milestone|--- |4.4.5


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



[Bug c/45616] New: internal compiler error: in note_invalid_constants, at config/arm/arm.c:11243

2010-09-09 Thread paul dot chavent at fnac dot net
Here is the log :


arm-oc8s-linux-gnueabi-gcc -Wall -std=gnu99 -mthumb -save-temps
-DDEFAULT_GPIO=4   -c -o chrono.o chrono.c
chrono.c: In function 'chrono_diff':
chrono.c:188:1: error: insn does not satisfy its constraints:
(insn 236 40 41 chrono.c:155 (set (reg:DF 63 s0)
(reg:DF 1 r1)) 184 {*thumb_movdf_insn} (nil))
chrono.c:188:1: internal compiler error: in note_invalid_constants, at
config/arm/arm.c:11243
Please submit a full bug report,
with preprocessed source if appropriate.
See http://gcc.gnu.org/bugs.html for instructions.
make: *** [chrono.o] Error 1


-- 
   Summary: internal compiler error: in note_invalid_constants, at
config/arm/arm.c:11243
   Product: gcc
   Version: 4.5.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: paul dot chavent at fnac dot net
 GCC build triplet: i486-slackware-linux-gnu
  GCC host triplet: i486-slackware-linux-gnu
GCC target triplet: arm-oc8s-linux-gnueabi


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



[Bug c/45616] internal compiler error: in note_invalid_constants, at config/arm/arm.c:11243

2010-09-09 Thread paul dot chavent at fnac dot net


--- Comment #1 from paul dot chavent at fnac dot net  2010-09-09 15:53 
---
Created an attachment (id=21753)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21753action=view)
the preprocessed file that triggers the bug


-- 


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



[Bug c/45616] internal compiler error: in note_invalid_constants, at config/arm/arm.c:11243

2010-09-09 Thread paul dot chavent at fnac dot net


--- Comment #2 from paul dot chavent at fnac dot net  2010-09-09 15:54 
---
Created an attachment (id=21754)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21754action=view)
the options given when GCC was configured/built


-- 


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



[Bug target/35664] unable to find a register to spill in class 'FP_REGS' (sparc-linux)

2010-09-09 Thread mikpe at it dot uu dot se


--- Comment #6 from mikpe at it dot uu dot se  2010-09-09 15:57 ---
This ICE stopped to appear on trunk with r162019:
http://gcc.gnu.org/ml/gcc-cvs/2010-07/msg00373.html
http://gcc.gnu.org/ml/gcc-patches/2010-07/msg00827.html

Applying the generic bits of that to current 4.5 stops the ICE there too.  I
can't say if r162019 is a genuine bug fix or merely improves things a bit so
that this test case no longer triggers the ICE.


-- 


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



[Bug libstdc++/45574] cin.getline() is extremely slow

2010-09-09 Thread paolo dot carlini at oracle dot com


--- Comment #22 from paolo dot carlini at oracle dot com  2010-09-09 16:08 
---
Jakub, when, by default, cin  co boil down to stdio_sync_filebuf, the
underlying basic_streambuf is unbuffered, everything is unbuffered in the C++
library.


-- 


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



[Bug c++/45615] -Wshadow doesn't report class member shadowing

2010-09-09 Thread redi at gcc dot gnu dot org


--- Comment #1 from redi at gcc dot gnu dot org  2010-09-09 16:31 ---
I agree this would be useful, I've had problems with such shadowing when moving
members higher in inheritance hierarchies and accidentally missing occurrences
in some derived classes.

4.2 is unmaintained now, but current releases don't warn either.


-- 

redi at gcc dot gnu dot org changed:

   What|Removed |Added

   Severity|normal  |enhancement
 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Keywords||diagnostic
   Last reconfirmed|-00-00 00:00:00 |2010-09-09 16:31:17
   date||


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



[Bug c++/45606] [4.5/4.6 Regresssion] match a method prototyped a typedef alias with the original type (using stdlib)

2010-09-09 Thread redi at gcc dot gnu dot org


-- 

redi at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Keywords||rejects-valid
  Known to work||4.4.4
   Last reconfirmed|-00-00 00:00:00 |2010-09-09 16:31:41
   date||
Summary|match a method prototyped a |[4.5/4.6 Regresssion] match
   |typedef alias with the  |a method prototyped a
   |original type (using stdlib)|typedef alias with the
   ||original type (using stdlib)


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



[Bug c++/45606] [4.5/4.6 Regresssion] match a method prototyped a typedef alias with the original type (using stdlib)

2010-09-09 Thread paolo dot carlini at oracle dot com


--- Comment #2 from paolo dot carlini at oracle dot com  2010-09-09 16:56 
---
H.J. can you do a binary search on this?


-- 

paolo dot carlini at oracle dot com changed:

   What|Removed |Added

 CC||hjl dot tools at gmail dot
   ||com


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



[Bug target/45616] internal compiler error: in note_invalid_constants, at config/arm/arm.c:11243

2010-09-09 Thread pinskia at gcc dot gnu dot org


--- Comment #3 from pinskia at gcc dot gnu dot org  2010-09-09 17:00 ---
--with-cpu=arm926ej-s --with-tune=arm926ej-s --with-arch=armv5te 
--with-fpu=vfp --with-float=hard

Hmm, these default CPUs don't support vfp in thumb.


-- 


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



[Bug target/42070] FAIL: g++.dg/tree-prof/partition1.C compilation, -O3 -g -fprofile-use

2010-09-09 Thread howarth at nitro dot med dot uc dot edu


--- Comment #3 from howarth at nitro dot med dot uc dot edu  2010-09-09 
17:19 ---
Created an attachment (id=21755)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21755action=view)
patch to prune bogus linker warnings from Xcode 3.2.x.


-- 


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



[Bug rtl-optimization/45617] New: optimize bit shift+compare at RTL level

2010-09-09 Thread zsojka at seznam dot cz
+++ This bug was initially created as a clone of Bug #20517 +++

From comment #4:

- testcase.c -
_Bool foo(unsigned i)
{
return (i  5)  10;
}

_Bool bar(unsigned i)
{
return i  (10  5) + 31;
}

int fooi(unsigned i)
{
return (i  5)  10;
}

int bari(unsigned i)
{
return i  (10  5) + 31;
}
--

Compiled with:
$ gcc-4.6.0-pre tst6.c -O3 -S -m32 -fomit-frame-pointer
(svn r162190)

Results in:
foo:
movl4(%esp), %eax
shrl$5, %eax
cmpl$10, %eax
seta%al
ret
bar:
cmpl$351, 4(%esp)
seta%al
ret
fooi:
movl4(%esp), %eax
shrl$5, %eax
cmpl$10, %eax
seta%al
movzbl  %al, %eax
ret
bari:
xorl%eax, %eax
cmpl$351, 4(%esp)
seta%al
ret


-- 
   Summary: optimize bit shift+compare at RTL level
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Severity: enhancement
  Priority: P3
 Component: rtl-optimization
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: zsojka at seznam dot cz
GCC target triplet: x86(_64)-pc-linux-gnu


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



[Bug rtl-optimization/45617] optimize bit shift+compare at RTL level

2010-09-09 Thread zsojka at seznam dot cz


--- Comment #1 from zsojka at seznam dot cz  2010-09-09 17:51 ---
Created an attachment (id=21756)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21756action=view)
Jakub's patch from PR20517 comment #6

gcc bootstrapped fine

The resulting code for foo() and fooi() is the same as for bar() and bari(),
respectively.


-- 


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



[Bug tree-optimization/20517] bit shift/mask optimization potential

2010-09-09 Thread zsojka at seznam dot cz


--- Comment #7 from zsojka at seznam dot cz  2010-09-09 17:52 ---
(In reply to comment #5)
 Yes, please, and assign to me (working on a simplify_comparison fix for that).
 

Opened PR45617, attached your patch with results (bootstrapped fine,
optimisation seems to work). Thank you for having a look!


-- 


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



[Bug testsuite/45604] [4.6 regression] New test failures

2010-09-09 Thread aoliva at gcc dot gnu dot org


--- Comment #1 from aoliva at gcc dot gnu dot org  2010-09-09 18:07 ---
Mine, thanks, testing a patch.  Sorry about the breakage, I seem to have
compared test results with a baseline that already had the errors :-(


-- 

aoliva at gcc dot gnu dot org changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |aoliva at gcc dot gnu dot
   |dot org |org
 Status|UNCONFIRMED |ASSIGNED
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2010-09-09 18:07:11
   date||


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



[Bug bootstrap/43847] test for plugin is using wrong objdump for host != target

2010-09-09 Thread doko at gcc dot gnu dot org


--- Comment #4 from doko at gcc dot gnu dot org  2010-09-09 18:23 ---
Subject: Bug 43847

Author: doko
Date: Thu Sep  9 18:22:48 2010
New Revision: 164113

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=164113
Log:
2010-09-09  Matthias Klose  d...@ubuntu.com

PR bootstrap/43847
* configure.ac (--enable-plugin): Enhance for cross builds.
* configure: Regenerate.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/configure
trunk/gcc/configure.ac


-- 


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



[Bug c++/45606] [4.5/4.6 Regression] match a method prototyped a typedef alias with the original type (using stdlib)

2010-09-09 Thread hjl dot tools at gmail dot com


--- Comment #3 from hjl dot tools at gmail dot com  2010-09-09 18:23 ---
It is caused by revision 156316:

http://gcc.gnu.org/ml/gcc-cvs/2010-01/msg00784.html


-- 

hjl dot tools at gmail dot com changed:

   What|Removed |Added

 CC||jason at redhat dot com


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



[Bug bootstrap/43847] test for plugin is using wrong objdump for host != target

2010-09-09 Thread doko at gcc dot gnu dot org


--- Comment #5 from doko at gcc dot gnu dot org  2010-09-09 18:25 ---
Subject: Bug 43847

Author: doko
Date: Thu Sep  9 18:25:26 2010
New Revision: 164114

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=164114
Log:
2010-09-09  Matthias Klose  d...@ubuntu.com

PR bootstrap/43847
* configure.ac (--enable-plugin): Enhance for cross builds.
* configure: Regenerate.

Modified:
branches/gcc-4_5-branch/gcc/ChangeLog
branches/gcc-4_5-branch/gcc/configure
branches/gcc-4_5-branch/gcc/configure.ac


-- 


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



[Bug middle-end/45312] [4.4 Regression] GCC 4.4.4 miscompiles the Linux kernel

2010-09-09 Thread vmakarov at gcc dot gnu dot org


--- Comment #19 from vmakarov at gcc dot gnu dot org  2010-09-09 18:36 
---
Subject: Bug 45312

Author: vmakarov
Date: Thu Sep  9 18:36:26 2010
New Revision: 164116

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=164116
Log:
2010-09-09  Vladimir Makarov  vmaka...@redhat.com

PR middle-end/45312
* reload1.c (merge_assigned_reloads): Remove.
(reload_as_needed): Don't call it.


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


-- 


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



[Bug middle-end/45312] [4.4 Regression] GCC 4.4.4 miscompiles the Linux kernel

2010-09-09 Thread vmakarov at gcc dot gnu dot org


--- Comment #20 from vmakarov at gcc dot gnu dot org  2010-09-09 18:37 
---
Subject: Bug 45312

Author: vmakarov
Date: Thu Sep  9 18:37:17 2010
New Revision: 164117

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=164117
Log:
2010-09-09  Vladimir Makarov  vmaka...@redhat.com

PR middle-end/45312
* reload1.c (merge_assigned_reloads): Remove.
(reload_as_needed): Don't call it.


Modified:
branches/gcc-4_4-branch/gcc/ChangeLog
branches/gcc-4_4-branch/gcc/reload1.c


-- 


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



[Bug middle-end/45312] [4.4 Regression] GCC 4.4.4 miscompiles the Linux kernel

2010-09-09 Thread vmakarov at gcc dot gnu dot org


--- Comment #21 from vmakarov at gcc dot gnu dot org  2010-09-09 18:38 
---
Subject: Bug 45312

Author: vmakarov
Date: Thu Sep  9 18:37:58 2010
New Revision: 164118

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=164118
Log:
2010-09-09  Vladimir Makarov  vmaka...@redhat.com

PR middle-end/45312
* reload1.c (merge_assigned_reloads): Remove.
(reload_as_needed): Don't call it.


Modified:
branches/gcc-4_5-branch/gcc/ChangeLog
branches/gcc-4_5-branch/gcc/reload1.c


-- 


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



[Bug fortran/45495] ICE: For character function with length specifier dependent on non-present arg

2010-09-09 Thread kargl at gcc dot gnu dot org


--- Comment #6 from kargl at gcc dot gnu dot org  2010-09-09 19:02 ---
Fixed in trunk.

No plans for back port to 4.5.x branch.

I'll open a bug report about intent(out)
issues with dummy arguments.


-- 

kargl at gcc dot gnu dot org changed:

   What|Removed |Added

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


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



[Bug c++/45618] New: GCC 4.4.4 strstream and ios::internal flag

2010-09-09 Thread anhtuyen at ca dot ibm dot com
The following code can be compiled with either g++ (GCC) 4.1.2 or g++ (GCC)
4.4.4.
When running the executable with non-static library, it produces different
output.

The output linked with strstream on g++ (GCC) 4.4.4 seems to be incorrect.

CODE:
/* File name iosflag.C */

#include iostream
#include strstream
using namespace std;

int main()
{

char string[1024];

char out_buffer[1024];
strstream io(out_buffer, 1024, ios::in|ios::out);

io.ios::fill('@');
io.flags(ios::internal);
io.width( 10 );
io  (void *) 123  ' ';
io  string ;
cout  String:   string  endl;
}

COMPILE:
g++ -o iosflag ./iosflag.C

RUN:
./iosflag


EXPECTED RESULTS:
String: @@0x7b

ACTUAL RESULTS:
String: 0x@@7b

NOTE: strstream on g++ (GCC) 4.1.2 produce correct result.


-- 
   Summary: GCC 4.4.4 strstream and ios::internal flag
   Product: gcc
   Version: 4.4.4
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: anhtuyen at ca dot ibm dot com


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



[Bug fortran/45619] New: intent(out) dummy arguements in specification statements

2010-09-09 Thread kargl at gcc dot gnu dot org
gfortran does not correctly check that an intent(out) dummy argument
does not appear in a specification statement.  The following code is
invalid, yet gfortan compiles it without error.

subroutine sub(n, s)
   integer, intent(out) :: n
   character(len=*), intent(out) :: s
   character(len=len(s)) :: a ! Valid even though s is intent(out)
   character(len=len(s(1:n))) :: b! Invalid because n is intent(out)
   n = 0
   a = 'tobias'
   s = a
   b = a
end subroutine

See the discussion in 

http://gcc.gnu.org/ml/fortran/2010-09/msg00074.html

for more details.


-- 
   Summary: intent(out) dummy arguements in specification statements
   Product: gcc
   Version: 4.6.0
Status: UNCONFIRMED
  Keywords: accepts-invalid
  Severity: normal
  Priority: P3
 Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: kargl at gcc dot gnu dot org


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



[Bug target/45616] internal compiler error: in note_invalid_constants, at config/arm/arm.c:11243

2010-09-09 Thread paul dot chavent at fnac dot net


--- Comment #4 from paul dot chavent at fnac dot net  2010-09-09 19:09 
---
Subject: Re:  internal compiler error: in note_invalid_constants,
 at config/arm/arm.c:11243

Sorry to haven't checking that.

Thank you.

pinskia at gcc dot gnu dot org wrote:
 --- Comment #3 from pinskia at gcc dot gnu dot org  2010-09-09 17:00 
 ---
 --with-cpu=arm926ej-s --with-tune=arm926ej-s --with-arch=armv5te 
 --with-fpu=vfp --with-float=hard
 
 Hmm, these default CPUs don't support vfp in thumb.
 
 


-- 


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



  1   2   >