public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/29496]  New: _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode
@ 2006-10-18  8:33 l_heldt at poczta dot onet dot pl
  2006-10-18  9:01 ` [Bug libstdc++/29496] " pcarlini at suse dot de
                   ` (31 more replies)
  0 siblings, 32 replies; 33+ messages in thread
From: l_heldt at poczta dot onet dot pl @ 2006-10-18  8:33 UTC (permalink / raw)
  To: gcc-bugs

_M_invalidate function in safe_iterator.tcc is not thread safe against
_M_detach()/_M_attach() functions from _Safe_iterator_base.

Here is the example of erronous scenario:

Thread1()
{
   list::iterator iter;
   lock(mutex);
   iter = myList.begin();
   ....
   // do something with iter
   ....
   unlock();  
}

Thread2()
{
   lock(mutex);
   myList.erase(myList.begin());
   unlock();  
}

The problem in this scenario is that while calling erase(), _M_invalidate()
function is called which goes through the list of all iterators without taking
a lock on __gnu_internal::iterator_base_mutex. At the same time another thread
can be deallocating lists iterator - thus calling _M_detach() function.
This leads to a SIGSEGV in _M_invalidate() function.

You should either remove concurrency support from GLIBCXX_DEBUG mode or provide
full support.


-- 
           Summary: _M_invalidate function is not thread-safe in
                    GLIBCXX_DEBUG mode
           Product: gcc
           Version: 4.0.2
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: l_heldt at poczta dot onet dot pl
  GCC host triplet: Linux 2.6.9-42.ELsmp #1 SMP


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


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [Bug libstdc++/29496] _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode
  2006-10-18  8:33 [Bug c++/29496] New: _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode l_heldt at poczta dot onet dot pl
@ 2006-10-18  9:01 ` pcarlini at suse dot de
  2006-10-18  9:43 ` bkoz at gcc dot gnu dot org
                   ` (30 subsequent siblings)
  31 siblings, 0 replies; 33+ messages in thread
From: pcarlini at suse dot de @ 2006-10-18  9:01 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from pcarlini at suse dot de  2006-10-18 09:00 -------
Benjamin and Doug, can you have a look to this issue? Thanks.


-- 

pcarlini at suse dot de changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |doug dot gregor at gmail dot
                   |                            |com, bkoz at redhat dot com


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


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [Bug libstdc++/29496] _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode
  2006-10-18  8:33 [Bug c++/29496] New: _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode l_heldt at poczta dot onet dot pl
  2006-10-18  9:01 ` [Bug libstdc++/29496] " pcarlini at suse dot de
@ 2006-10-18  9:43 ` bkoz at gcc dot gnu dot org
  2006-10-18 10:06 ` pcarlini at suse dot de
                   ` (29 subsequent siblings)
  31 siblings, 0 replies; 33+ messages in thread
From: bkoz at gcc dot gnu dot org @ 2006-10-18  9:43 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from bkoz at gcc dot gnu dot org  2006-10-18 09:43 -------

Please attach a complete test case, not a sketch.

-benjamin


-- 


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


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [Bug libstdc++/29496] _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode
  2006-10-18  8:33 [Bug c++/29496] New: _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode l_heldt at poczta dot onet dot pl
  2006-10-18  9:01 ` [Bug libstdc++/29496] " pcarlini at suse dot de
  2006-10-18  9:43 ` bkoz at gcc dot gnu dot org
@ 2006-10-18 10:06 ` pcarlini at suse dot de
  2006-10-18 10:40 ` pcarlini at suse dot de
                   ` (28 subsequent siblings)
  31 siblings, 0 replies; 33+ messages in thread
From: pcarlini at suse dot de @ 2006-10-18 10:06 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from pcarlini at suse dot de  2006-10-18 10:06 -------
Let's suppose the issue is confirmed, and we have an useful complete testcase,
then, a wild idea (at the moment I'm missing many details about the internals
of the safe iterators, sorry): maybe we could explore the possibility to have
the _M_invalidate functionality part of _Safe_iterator_base, thus easily use
the debug mode mutex. I'm saying that because I'm under the impression that
_M_invalidate basically uses info available in the _Safe_iterator_base. I'm
only unsure about the tests "this->base() == __victim->base()", I hope can be
done on the base objects too...


-- 


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


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [Bug libstdc++/29496] _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode
  2006-10-18  8:33 [Bug c++/29496] New: _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode l_heldt at poczta dot onet dot pl
                   ` (2 preceding siblings ...)
  2006-10-18 10:06 ` pcarlini at suse dot de
@ 2006-10-18 10:40 ` pcarlini at suse dot de
  2006-10-18 14:40 ` grzes at nec-labs dot com
                   ` (27 subsequent siblings)
  31 siblings, 0 replies; 33+ messages in thread
From: pcarlini at suse dot de @ 2006-10-18 10:40 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from pcarlini at suse dot de  2006-10-18 10:40 -------
(In reply to comment #3)
>                                                                      .... I'm
> only unsure about the tests "this->base() == __victim->base()", I hope can be
> done on the base objects too...

And of course it can't, such simply, the plain iterator info is necessary here,
because we want to change *all* iterators pointing the same as this->base()...
In case, looks like _M_invalidate needs a more complex interaction between
_Safe_iterator and _Safe_iterator_base... 


-- 


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


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [Bug libstdc++/29496] _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode
  2006-10-18  8:33 [Bug c++/29496] New: _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode l_heldt at poczta dot onet dot pl
                   ` (3 preceding siblings ...)
  2006-10-18 10:40 ` pcarlini at suse dot de
@ 2006-10-18 14:40 ` grzes at nec-labs dot com
  2006-10-18 15:56 ` bkoz at gcc dot gnu dot org
                   ` (26 subsequent siblings)
  31 siblings, 0 replies; 33+ messages in thread
From: grzes at nec-labs dot com @ 2006-10-18 14:40 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #5 from grzes at nec-labs dot com  2006-10-18 14:40 -------
I encountered this bug (?) in the past. I thought, maybe incorrectly, that
accessing an interator (e.g copying it) equals read access to a container,
hence no thread safety guarnatees for concurrent modifications to the container
- like erase on another element.

OTOH, this works fine in non-debug mode.


-- 


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


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [Bug libstdc++/29496] _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode
  2006-10-18  8:33 [Bug c++/29496] New: _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode l_heldt at poczta dot onet dot pl
                   ` (4 preceding siblings ...)
  2006-10-18 14:40 ` grzes at nec-labs dot com
@ 2006-10-18 15:56 ` bkoz at gcc dot gnu dot org
  2006-10-19 13:51 ` l_heldt at poczta dot onet dot pl
                   ` (25 subsequent siblings)
  31 siblings, 0 replies; 33+ messages in thread
From: bkoz at gcc dot gnu dot org @ 2006-10-18 15:56 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #6 from bkoz at gcc dot gnu dot org  2006-10-18 15:56 -------

Paolo: Seems like an interesting idea.

Grzegorz: interesting that others have run into this. Without a testcase, it's
hard to say with certainty what is valid and what is invalid. Also, without a
testcase there are no certainties that if fixed, it remains fixed. Thus, why
I'm insisting on a testcase. Care to give it a go?

best,
benjamin


-- 


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


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [Bug libstdc++/29496] _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode
  2006-10-18  8:33 [Bug c++/29496] New: _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode l_heldt at poczta dot onet dot pl
                   ` (5 preceding siblings ...)
  2006-10-18 15:56 ` bkoz at gcc dot gnu dot org
@ 2006-10-19 13:51 ` l_heldt at poczta dot onet dot pl
  2006-10-31 11:12 ` l_heldt at poczta dot onet dot pl
                   ` (24 subsequent siblings)
  31 siblings, 0 replies; 33+ messages in thread
From: l_heldt at poczta dot onet dot pl @ 2006-10-19 13:51 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #7 from l_heldt at poczta dot onet dot pl  2006-10-19 13:51 -------
(In reply to comment #2)
> Please attach a complete test case, not a sketch.
> 
> -benjamin
> 

This bug is a pure race-condition. There is no test case which would reveal it
with a 100% certainty. I have noticed the bug after receiving strange SIGSEGV
in _M_invalidate() function. After reviewing the code I found the problem
stated in this bug report.

Of course you can say: "No test case - no bug" but I guess this would be a very
naive approach.


-- 


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


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [Bug libstdc++/29496] _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode
  2006-10-18  8:33 [Bug c++/29496] New: _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode l_heldt at poczta dot onet dot pl
                   ` (6 preceding siblings ...)
  2006-10-19 13:51 ` l_heldt at poczta dot onet dot pl
@ 2006-10-31 11:12 ` l_heldt at poczta dot onet dot pl
  2006-10-31 11:38 ` pcarlini at suse dot de
                   ` (23 subsequent siblings)
  31 siblings, 0 replies; 33+ messages in thread
From: l_heldt at poczta dot onet dot pl @ 2006-10-31 11:12 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #8 from l_heldt at poczta dot onet dot pl  2006-10-31 11:12 -------
There is a similar problem in _M_detach_all() function. It iterates through
list of iterators without obtaining lock.


-- 


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


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [Bug libstdc++/29496] _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode
  2006-10-18  8:33 [Bug c++/29496] New: _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode l_heldt at poczta dot onet dot pl
                   ` (7 preceding siblings ...)
  2006-10-31 11:12 ` l_heldt at poczta dot onet dot pl
@ 2006-10-31 11:38 ` pcarlini at suse dot de
  2006-10-31 11:47 ` pcarlini at suse dot de
                   ` (22 subsequent siblings)
  31 siblings, 0 replies; 33+ messages in thread
From: pcarlini at suse dot de @ 2006-10-31 11:38 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #9 from pcarlini at suse dot de  2006-10-31 11:38 -------
To be honest, I don't think this code has been designed with thread safety in
mind. Fixing it completely after the fact is going to be very complex, I'm
afraid. I'll try to spend some more time on those issues, but if Doug, the
original author, doesn't provide any special hint, I'm afraid we have to live
with that or even, for consistency, remove the minimal MT support currently
present and add something clear to the documentation.


-- 


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


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [Bug libstdc++/29496] _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode
  2006-10-18  8:33 [Bug c++/29496] New: _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode l_heldt at poczta dot onet dot pl
                   ` (8 preceding siblings ...)
  2006-10-31 11:38 ` pcarlini at suse dot de
@ 2006-10-31 11:47 ` pcarlini at suse dot de
  2006-10-31 11:49 ` pcarlini at suse dot de
                   ` (21 subsequent siblings)
  31 siblings, 0 replies; 33+ messages in thread
From: pcarlini at suse dot de @ 2006-10-31 11:47 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #10 from pcarlini at suse dot de  2006-10-31 11:47 -------
... that said, if we don't care *at all* about performance, fixing MT-safety
bugs in the _Safe_sequence or _Safe_iterator functions it's easy, just use
everywhere the iterator_base_mutex. The nasty correctness problems are those
involving the templatized _Safe_iterator functions, which of course are not in
debug.cc.


-- 


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


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [Bug libstdc++/29496] _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode
  2006-10-18  8:33 [Bug c++/29496] New: _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode l_heldt at poczta dot onet dot pl
                   ` (9 preceding siblings ...)
  2006-10-31 11:47 ` pcarlini at suse dot de
@ 2006-10-31 11:49 ` pcarlini at suse dot de
  2006-10-31 12:19 ` pcarlini at suse dot de
                   ` (20 subsequent siblings)
  31 siblings, 0 replies; 33+ messages in thread
From: pcarlini at suse dot de @ 2006-10-31 11:49 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #11 from pcarlini at suse dot de  2006-10-31 11:49 -------
(In reply to comment #10)
> ... that said, if we don't care *at all* about performance, fixing MT-safety
> bugs in the _Safe_sequence or _Safe_iterator functions it's easy,...

Of course I meant _Safe_sequence_base and _Safe_iterator_base, humpf.


-- 


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


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [Bug libstdc++/29496] _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode
  2006-10-18  8:33 [Bug c++/29496] New: _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode l_heldt at poczta dot onet dot pl
                   ` (10 preceding siblings ...)
  2006-10-31 11:49 ` pcarlini at suse dot de
@ 2006-10-31 12:19 ` pcarlini at suse dot de
  2006-10-31 13:12 ` l_heldt at poczta dot onet dot pl
                   ` (19 subsequent siblings)
  31 siblings, 0 replies; 33+ messages in thread
From: pcarlini at suse dot de @ 2006-10-31 12:19 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #12 from pcarlini at suse dot de  2006-10-31 12:19 -------
About _M_detach_all specifically, it's called only by ~_Safe_sequence_base(),
thus only when the container itself is destructed. Therefore, I don't think it
may cause problems in practice.


-- 


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


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [Bug libstdc++/29496] _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode
  2006-10-18  8:33 [Bug c++/29496] New: _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode l_heldt at poczta dot onet dot pl
                   ` (11 preceding siblings ...)
  2006-10-31 12:19 ` pcarlini at suse dot de
@ 2006-10-31 13:12 ` l_heldt at poczta dot onet dot pl
  2006-10-31 13:23 ` pcarlini at suse dot de
                   ` (18 subsequent siblings)
  31 siblings, 0 replies; 33+ messages in thread
From: l_heldt at poczta dot onet dot pl @ 2006-10-31 13:12 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #13 from l_heldt at poczta dot onet dot pl  2006-10-31 13:12 -------
(In reply to comment #12)
> About _M_detach_all specifically, it's called only by ~_Safe_sequence_base(),
> thus only when the container itself is destructed. Therefore, I don't think it
> may cause problems in practice.
> 

Unfortunatelly it may. Suppose there are two threads: consumer/producer where
producer is creating container, taking iterator to the container and passing
the container to consumer thread.  Consumer thread is simply deallocating the
container - thus calling _M_detach_all function. At the same time iterator
destructor is called which causes SIGSEGV.

We actually encountered this problem - this is not taken from code review only.


-- 


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


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [Bug libstdc++/29496] _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode
  2006-10-18  8:33 [Bug c++/29496] New: _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode l_heldt at poczta dot onet dot pl
                   ` (12 preceding siblings ...)
  2006-10-31 13:12 ` l_heldt at poczta dot onet dot pl
@ 2006-10-31 13:23 ` pcarlini at suse dot de
  2006-10-31 13:42 ` l_heldt at poczta dot onet dot pl
                   ` (17 subsequent siblings)
  31 siblings, 0 replies; 33+ messages in thread
From: pcarlini at suse dot de @ 2006-10-31 13:23 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #14 from pcarlini at suse dot de  2006-10-31 13:23 -------
(In reply to comment #13)
> We actually encountered this problem - this is not taken from code review only.

Again, adding a mutex to that those *_base functions it's trivial. Now, please
start preparing reduced testcases for such issues, because apprently you *know*
how to do that. The approach "No test case - no bug" maybe can be considered
"naive" as you say, on the other hand enforcing it eventually makes for sound
software engineering, because would be even more naive to rely on submitter
itself and no one else in the world to test a candidate fix, thus not being
able to avoid regressions at a later stage within the project.


-- 


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


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [Bug libstdc++/29496] _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode
  2006-10-18  8:33 [Bug c++/29496] New: _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode l_heldt at poczta dot onet dot pl
                   ` (13 preceding siblings ...)
  2006-10-31 13:23 ` pcarlini at suse dot de
@ 2006-10-31 13:42 ` l_heldt at poczta dot onet dot pl
  2006-10-31 13:46 ` pcarlini at suse dot de
                   ` (16 subsequent siblings)
  31 siblings, 0 replies; 33+ messages in thread
From: l_heldt at poczta dot onet dot pl @ 2006-10-31 13:42 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #15 from l_heldt at poczta dot onet dot pl  2006-10-31 13:42 -------
(In reply to comment #14)
> (In reply to comment #13)
> > We actually encountered this problem - this is not taken from code review only.
> 
> Again, adding a mutex to that those *_base functions it's trivial. Now, please
> start preparing reduced testcases for such issues, because apprently you *know*
> how to do that. The approach "No test case - no bug" maybe can be considered
> "naive" as you say, on the other hand enforcing it eventually makes for sound
> software engineering, because would be even more naive to rely on submitter
> itself and no one else in the world to test a candidate fix, thus not being
> able to avoid regressions at a later stage within the project.
> 

I tried to prepare a simple testcase but without any success. It seems to be
extremely hard to hit the moment when pointers are actually changed. Trivial
programs do not reveal the problem.


-- 


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


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [Bug libstdc++/29496] _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode
  2006-10-18  8:33 [Bug c++/29496] New: _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode l_heldt at poczta dot onet dot pl
                   ` (14 preceding siblings ...)
  2006-10-31 13:42 ` l_heldt at poczta dot onet dot pl
@ 2006-10-31 13:46 ` pcarlini at suse dot de
  2006-10-31 14:30 ` pcarlini at suse dot de
                   ` (15 subsequent siblings)
  31 siblings, 0 replies; 33+ messages in thread
From: pcarlini at suse dot de @ 2006-10-31 13:46 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #16 from pcarlini at suse dot de  2006-10-31 13:45 -------
(In reply to comment #15)
> I tried to prepare a simple testcase but without any success. It seems to be
> extremely hard to hit the moment when pointers are actually changed. Trivial
> programs do not reveal the problem.

Ok, but you should try harder, because often in the past we managed to prepare
complete testcases for races and generally MT issues too, which seemed very
tricky at the outset. 


-- 


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


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [Bug libstdc++/29496] _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode
  2006-10-18  8:33 [Bug c++/29496] New: _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode l_heldt at poczta dot onet dot pl
                   ` (15 preceding siblings ...)
  2006-10-31 13:46 ` pcarlini at suse dot de
@ 2006-10-31 14:30 ` pcarlini at suse dot de
  2006-10-31 14:37 ` bkoz at gcc dot gnu dot org
                   ` (14 subsequent siblings)
  31 siblings, 0 replies; 33+ messages in thread
From: pcarlini at suse dot de @ 2006-10-31 14:30 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #17 from pcarlini at suse dot de  2006-10-31 14:30 -------
Created an attachment (id=12517)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=12517&action=view)
Draft patch for the issue in Comment #8 only

For the last issue, can you try this patch? If it works, then probably we can
incrementally commit something similar, because it's decently clean and the
performance should not be affected, even slightly improved.


-- 


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


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [Bug libstdc++/29496] _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode
  2006-10-18  8:33 [Bug c++/29496] New: _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode l_heldt at poczta dot onet dot pl
                   ` (16 preceding siblings ...)
  2006-10-31 14:30 ` pcarlini at suse dot de
@ 2006-10-31 14:37 ` bkoz at gcc dot gnu dot org
  2006-10-31 16:32 ` pcarlini at suse dot de
                   ` (13 subsequent siblings)
  31 siblings, 0 replies; 33+ messages in thread
From: bkoz at gcc dot gnu dot org @ 2006-10-31 14:37 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #18 from bkoz at gcc dot gnu dot org  2006-10-31 14:37 -------
> I tried to prepare a simple testcase but without any success.

This is encouraging, that you attempted it. To be clear: we just need something
that we can use to reproduce it. Please try for a complex or big testcase then,
and we'll try to reduce it ourselves.

We have many testcases that reproduce races. See testsuite/threads.

-benjamin


-- 


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


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [Bug libstdc++/29496] _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode
  2006-10-18  8:33 [Bug c++/29496] New: _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode l_heldt at poczta dot onet dot pl
                   ` (17 preceding siblings ...)
  2006-10-31 14:37 ` bkoz at gcc dot gnu dot org
@ 2006-10-31 16:32 ` pcarlini at suse dot de
  2006-10-31 17:01 ` pcarlini at suse dot de
                   ` (12 subsequent siblings)
  31 siblings, 0 replies; 33+ messages in thread
From: pcarlini at suse dot de @ 2006-10-31 16:32 UTC (permalink / raw)
  To: gcc-bugs



-- 

pcarlini at suse dot de changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |pcarlini at suse dot de
                   |dot org                     |
             Status|UNCONFIRMED                 |ASSIGNED
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2006-10-31 16:32:28
               date|                            |


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


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [Bug libstdc++/29496] _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode
  2006-10-18  8:33 [Bug c++/29496] New: _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode l_heldt at poczta dot onet dot pl
                   ` (18 preceding siblings ...)
  2006-10-31 16:32 ` pcarlini at suse dot de
@ 2006-10-31 17:01 ` pcarlini at suse dot de
  2006-10-31 17:24 ` l_heldt at poczta dot onet dot pl
                   ` (11 subsequent siblings)
  31 siblings, 0 replies; 33+ messages in thread
From: pcarlini at suse dot de @ 2006-10-31 17:01 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #19 from pcarlini at suse dot de  2006-10-31 17:01 -------
Created an attachment (id=12520)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=12520&action=view)
Draft patch using the _M_get_mutex idiom for _M_invalidate

This one, instead, using the _M_get_mutex idiom (similarly to pool_allocator,
for example), should be able to deal with the _M_invalidate issue too. Agreed,
in debug-mode performance isn't the main concern, still I'm a bit worried,
because we have got one single mutex for the entire STL. But I have no idea how
this problem can be solved at this stage, the ABI still frozen. Besides that
general issue, the approach should work, maybe locking is needed also for some
_Safe_sequence functions: in that case _Safe_iterator_base::_M_get_mutex would
be still usable, being public, or, to be cleaner, an _M_get_mutex method could
be added to _Safe_sequence_base too. In any case, I would rather wait for
testcases before touching _Safe_sequence...

Benjamin, what do you think?


-- 


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


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [Bug libstdc++/29496] _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode
  2006-10-18  8:33 [Bug c++/29496] New: _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode l_heldt at poczta dot onet dot pl
                   ` (19 preceding siblings ...)
  2006-10-31 17:01 ` pcarlini at suse dot de
@ 2006-10-31 17:24 ` l_heldt at poczta dot onet dot pl
  2006-10-31 23:53 ` pcarlini at suse dot de
                   ` (10 subsequent siblings)
  31 siblings, 0 replies; 33+ messages in thread
From: l_heldt at poczta dot onet dot pl @ 2006-10-31 17:24 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #20 from l_heldt at poczta dot onet dot pl  2006-10-31 17:23 -------
(In reply to comment #16)
> (In reply to comment #15)
> > I tried to prepare a simple testcase but without any success. It seems to be
> > extremely hard to hit the moment when pointers are actually changed. Trivial
> > programs do not reveal the problem.
> 
> Ok, but you should try harder, because often in the past we managed to prepare
> complete testcases for races and generally MT issues too, which seemed very
> tricky at the outset. 
> 

I think we are totally misunderstood here. I don't have time to prepare complex
test cases revealing problems not in my code. I have found the bug I even found
the cause of the bug and it is still not enough for you.

If you don't want to be informed about problems in stl then what is this
bugzilla for?

I have already made a workaround in my code to avoid the debug container in
certain situations so it's not me who will actually benefit from the fix.
I reported this issue to help other developers who might encounter similar
problem.
Because of version policies in my company probably I won't be even able to use
your fix.


-- 


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


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [Bug libstdc++/29496] _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode
  2006-10-18  8:33 [Bug c++/29496] New: _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode l_heldt at poczta dot onet dot pl
                   ` (20 preceding siblings ...)
  2006-10-31 17:24 ` l_heldt at poczta dot onet dot pl
@ 2006-10-31 23:53 ` pcarlini at suse dot de
  2006-11-01 22:42 ` pcarlini at suse dot de
                   ` (9 subsequent siblings)
  31 siblings, 0 replies; 33+ messages in thread
From: pcarlini at suse dot de @ 2006-10-31 23:53 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #21 from pcarlini at suse dot de  2006-10-31 23:53 -------
(In reply to comment #20)
> I think we are totally misunderstood here.

No, no, there is something *completely* different to it. Sorry, but I'm now
convinced that you are here with the *wrong* spirit, aren't technical matters
to divide us. At all. Did you ever read any of Stallman' papers? Try, just a
little  harder than you are willing to to do to help GCC improving, and you
will see that you got the Free Software spirit wrong:

  http://www.fsf.org/


-- 


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


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [Bug libstdc++/29496] _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode
  2006-10-18  8:33 [Bug c++/29496] New: _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode l_heldt at poczta dot onet dot pl
                   ` (21 preceding siblings ...)
  2006-10-31 23:53 ` pcarlini at suse dot de
@ 2006-11-01 22:42 ` pcarlini at suse dot de
  2006-11-11 17:32 ` paolo at gcc dot gnu dot org
                   ` (8 subsequent siblings)
  31 siblings, 0 replies; 33+ messages in thread
From: pcarlini at suse dot de @ 2006-11-01 22:42 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #22 from pcarlini at suse dot de  2006-11-01 22:42 -------
Created an attachment (id=12531)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=12531&action=view)
All the functions working on a set of _Safe_iterators fixed

In my present understanding *all* the functions belonging to
_Safe_iterator_base, _Safe_iterator, _Safe_sequence_base, and _Safe_sequence
going through a full set of iterators attached to a container are currently
weak wrt the scenario presented in this PR, where _M_detach is called by
iterator destructor. This new draft patch reflects that, consistently. I'm
currently testing it, so far everything seems ok on x86-linux and ia64-linux
four-way.


-- 


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


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [Bug libstdc++/29496] _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode
  2006-10-18  8:33 [Bug c++/29496] New: _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode l_heldt at poczta dot onet dot pl
                   ` (22 preceding siblings ...)
  2006-11-01 22:42 ` pcarlini at suse dot de
@ 2006-11-11 17:32 ` paolo at gcc dot gnu dot org
  2006-11-11 17:36 ` pcarlini at suse dot de
                   ` (7 subsequent siblings)
  31 siblings, 0 replies; 33+ messages in thread
From: paolo at gcc dot gnu dot org @ 2006-11-11 17:32 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #23 from paolo at gcc dot gnu dot org  2006-11-11 17:32 -------
Subject: Bug 29496

Author: paolo
Date: Sat Nov 11 17:32:12 2006
New Revision: 118701

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=118701
Log:
2006-11-11  Paolo Carlini  <pcarlini@suse.de>

        PR libstdc++/29496
        * include/debug/safe_base.h (_Safe_sequence_base::_M_get_mutex,
        _Safe_iterator_base::_M_get_mutex, _M_attach_single, _M_detach_single):
        New.
        * src/debug.cc: Define the latter.
        (_Safe_sequence_base::_M_detach_all, _M_detach_singular,
        _M_revalidate_singular, _M_swap): Use the mutex.
        (_Safe_iterator_base::_M_attach, _M_detach): Adjust, forward to the
        *_single version.
        * include/debug/safe_iterator.h (_Safe_iterator<>::_M_attach_single,
        _M_invalidate_single): New.
        * include/debug/safe_iterator.tcc: Define.
        (_Safe_iterator<>::_M_invalidate): Adjust, forward to
        _M_invalidate_single.
        * include/debug/safe_sequence.h (_Safe_sequence<>::_M_invalidate_if,
        _M_transfer_iter): Use the mutex, adjust, forward to the *_single
        versions of _M_invalidate and _M_attach.
        * config/abi/pre/gnu.ver (_Safe_sequence_base::_M_get_mutex,
        _Safe_iterator_base::_M_get_mutex, _M_attach_single, _M_detach_single):
        Add @GLIBCXX_3.4.10; adjust.
        * configure.ac (libtool_VERSION): To 6:10:0.
        * testsuite/util/testsuite_abi.cc (check_version): Add GLIBCXX_3.4.10.
        * configure: Regenerate.

Modified:
    trunk/libstdc++-v3/ChangeLog
    trunk/libstdc++-v3/config/abi/pre/gnu.ver
    trunk/libstdc++-v3/configure
    trunk/libstdc++-v3/configure.ac
    trunk/libstdc++-v3/include/debug/safe_base.h
    trunk/libstdc++-v3/include/debug/safe_iterator.h
    trunk/libstdc++-v3/include/debug/safe_iterator.tcc
    trunk/libstdc++-v3/include/debug/safe_sequence.h
    trunk/libstdc++-v3/src/debug.cc
    trunk/libstdc++-v3/testsuite/util/testsuite_abi.cc


-- 


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


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [Bug libstdc++/29496] _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode
  2006-10-18  8:33 [Bug c++/29496] New: _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode l_heldt at poczta dot onet dot pl
                   ` (23 preceding siblings ...)
  2006-11-11 17:32 ` paolo at gcc dot gnu dot org
@ 2006-11-11 17:36 ` pcarlini at suse dot de
  2006-12-01  1:07 ` chaoyingfu at gcc dot gnu dot org
                   ` (6 subsequent siblings)
  31 siblings, 0 replies; 33+ messages in thread
From: pcarlini at suse dot de @ 2006-11-11 17:36 UTC (permalink / raw)
  To: gcc-bugs



-- 

pcarlini at suse dot de changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |4.2.1


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


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [Bug libstdc++/29496] _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode
  2006-10-18  8:33 [Bug c++/29496] New: _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode l_heldt at poczta dot onet dot pl
                   ` (24 preceding siblings ...)
  2006-11-11 17:36 ` pcarlini at suse dot de
@ 2006-12-01  1:07 ` chaoyingfu at gcc dot gnu dot org
  2007-02-01 15:57 ` pcarlini at suse dot de
                   ` (5 subsequent siblings)
  31 siblings, 0 replies; 33+ messages in thread
From: chaoyingfu at gcc dot gnu dot org @ 2006-12-01  1:07 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #24 from chaoyingfu at gcc dot gnu dot org  2006-12-01 01:04 -------
Subject: Bug 29496

Author: chaoyingfu
Date: Fri Dec  1 01:01:21 2006
New Revision: 119392

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=119392
Log:
Merged revisions 118654-118785 via svnmerge from 
svn+ssh://chaoyingfu@sources.redhat.com/svn/gcc/trunk

........
  r118654 | jakub | 2006-11-10 07:50:39 -0800 (Fri, 10 Nov 2006) | 3 lines

        * config/locale/gnu/c_locale.cc (__convert_to_v): Prefer
        strtold_l over __strtold_l if available.
........
  r118659 | pault | 2006-11-10 09:21:57 -0800 (Fri, 10 Nov 2006) | 12 lines

  2006-11-10 Paul Thomas <pault@gcc.gnu.org>

        PR fortran/29315
        * trans-expr.c (is_aliased_array): Treat correctly the case where the
        component is itself and array or array reference.


  2006-11-10 Paul Thomas <pault@gcc.gnu.org>

        PR fortran/29315
        * gfortran.dg/aliasing_dummy_4.f90: New test.
........
  r118661 | burnus | 2006-11-10 10:15:39 -0800 (Fri, 10 Nov 2006) | 6 lines

  2006-11-10  Tobias Burnus  <burnus@net-b.de>

         PR fortran/29454
         * resolve.c (gfc_resolve_blocks): Fix error message.
........
  r118662 | fche | 2006-11-10 10:42:28 -0800 (Fri, 10 Nov 2006) | 14 lines

  2006-11-10  Frank Ch. Eigler  <fche@redhat.com>

        PR libmudflap/28578
        * mf-hooks1.c (__mf_0fn_malloc): Make the bootstrap buffers
        static but not function scope static.
        (free): Skip deallocation attempts for objects placed into
        bootstrap buffers.
        * testsuite/libmudflap.cth/pass59-frag.c: New test.


  M    libmudflap/mf-hooks1.c
  M    libmudflap/ChangeLog
  A    libmudflap/testsuite/libmudflap.cth/pass59-frag.c
........
  r118664 | pault | 2006-11-10 13:06:42 -0800 (Fri, 10 Nov 2006) | 16 lines

  2006-11-10 Paul Thomas <pault@gcc.gnu.org>

     PR fortran/29758
     * check.c (gfc_check_reshape): Check that there are enough
     elements in the source array as to be able to fill an array
     defined by shape, when pad is absent.


  2006-11-10 Paul Thomas <pault@gcc.gnu.org>

     PR fortran/29758
     * gfortran.dg/reshape_source_size_1.f90: New test.
........
  r118665 | hubicka | 2006-11-10 13:42:04 -0800 (Fri, 10 Nov 2006) | 9 lines

        * cse.c (cse_process_notes): Copy the propagated value.
        * local-alloc.c (update_equiv_regs): Copy the memory RTX to be used
        in REG_EQUIV notes.
        * gcse.c (try_replace_reg): Copy the replacement.
        * i386.c (emit_i387_cw_initialization): Copy stored_mode
        (assign_386_stack_local): Always return copied memory expression
        * function.c (instantiate_virtual_regs_in_insn): Copy the operand
        duplicates.
........
  r118668 | brooks | 2006-11-10 14:34:26 -0800 (Fri, 10 Nov 2006) | 9 lines

  * lang.opt (-fmodule-private): Remove option.
  * gfortran.h (gfc_option_t): Remove module_access_private flag.
  * options.c (gfc_init_options): Remove initialization for it.
  (gfc_process_option): Remove handling for -fmodule-private.
  * module.c (gfc_check_access): Add comments, remove check for
  gfc_option.flag_module_access_private.

  (Also fixed tab-damage in preceeding changelog entry.)
........
  r118670 | brooks | 2006-11-10 15:43:05 -0800 (Fri, 10 Nov 2006) | 3 lines

  Corrected gfc_process_option to gfc_handle_option in my last
  ChangeLog entry.
........
  r118676 | gccadmin | 2006-11-10 16:17:31 -0800 (Fri, 10 Nov 2006) | 1 line

  Daily bump.
........
  r118678 | sayle | 2006-11-10 17:47:18 -0800 (Fri, 10 Nov 2006) | 7 lines


        * tree.c (build_int_cst_wide): Add an assertion (gcc_unreachable)
        when attempting to build INTEGER_CSTs of non-integral types.
        * expmed.c (make_tree): Use the correct type, i.e. the inner
        type, when constructing the individual elements of a CONST_VECTOR.
........
  r118682 | ghazi | 2006-11-10 20:01:42 -0800 (Fri, 10 Nov 2006) | 6 lines

        * fold-const.c (negate_mathfn_p): Add BUILT_IN_ERF.

  testsuite:
        * gcc.dg/torture/builtin-symmetric-1.c: New test.
........
  r118683 | ghazi | 2006-11-10 20:05:14 -0800 (Fri, 10 Nov 2006) | 8 lines

        * builtins.c (fold_builtin_cos): Use fold_strip_sign_ops().
        (fold_builtin_hypot): Likewise.
        * fold-const.c (fold_strip_sign_ops): Handle "odd" builtins.

  testsuite:
        * gcc.dg/builtins-20.c: Add more cases for stripping sign ops.
........
  r118684 | bergner | 2006-11-10 20:20:37 -0800 (Fri, 10 Nov 2006) | 3 lines

        * rtl.h (MEM_COPY_ATTRIBUTES): Copy MEM_POINTER.
........
  r118685 | sayle | 2006-11-10 21:00:10 -0800 (Fri, 10 Nov 2006) | 5 lines


        * fold-const.c (operand_equal_p) <INTEGER_CST, REAL_CST, VECTOR_CST>:
        Don't check for TREE_CONSTANT_OVERFLOW when comparing constants.
........
  r118686 | jiez | 2006-11-10 23:48:33 -0800 (Fri, 10 Nov 2006) | 3 lines

        * config/bfin/bfin.h (FUNCTION_PROFILER): Don't use LABELNO.
        (NO_PROFILE_COUNTERS): Define as 1.
........
  r118689 | rsandifo | 2006-11-11 01:47:35 -0800 (Sat, 11 Nov 2006) | 10 lines

  gcc/
        PR middle-end/27528
        * stmt.c (expand_asm_operands): Use EXPAND_INITIALIZER if the
        constraints accept neither registers or memories.

  gcc/testsuite/
        PR middle-end/27528
        * gcc.c-torture/compile/pr27528.c: New test.
        * gcc.dg/pr27528.c: Likewise.
........
  r118691 | rakdver | 2006-11-11 02:15:18 -0800 (Sat, 11 Nov 2006) | 5 lines

        * tree-ssa-loop.c (pass_loop_prefetch): Change name to aprefetch.
        * tree-ssa-loop-prefetch.c (dump_mem_ref): Fix target file.
        (tree_ssa_prefetch_arrays): Do not dump for removed loops.
........
  r118692 | rguenth | 2006-11-11 04:05:16 -0800 (Sat, 11 Nov 2006) | 33 lines

  2006-11-11  Richard Guenther  <rguenther@suse.de>

        * tree.def (FIX_CEIL_EXPR, FIX_FLOOR_EXPR, FIX_ROUND_EXPR):
        Remove unused tree codes.
        * tree-vrp.c (extract_range_from_unary_expr): Remove handling
        of FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
        * tree-pretty-print.c (dump_generic_node, op_prio): Likewise.
        * tree.c (stabilize_reference): Likewise.
        * fold-const.c (fold_convert_const_int_from_real, operand_equal_p,
        fold_unary): Likewise.
        * tree-gimple.c (is_gimple_cast): Likewise.
        * dwarf2out.c (loc_descriptor_from_tree_1): Likewise.
        * expr.c (expand_expr_real_1): Likewise.
        * tree-eh.c (tree_could_trap_p): Likewise.
        * gimplify.c (gimplify_expr): Likewise.
        * tree-inline.c (estimate_num_insns_1): Likewise.
        * tree-cfg.c (verify_expr): Likewise.

        cp/
        * typeck.c (build_unary_op): Likewise.

        java/
        * check-init.c (check_init): Likewise.

        ada/
        * trans.c (maybe_stabilize_reference): Likewise.

        fortran/
        * trans-intrinsic.c (enum rounding_mode): New enum.
        (build_fix_expr, gfc_conv_intrinsic_aint, gfc_conv_intrinsic_mod,
        gfc_conv_intrinsic_function): Use it instead of FIX_CEIL_EXPR,
        FIX_FLOOR_EXPR, FIX_ROUND_EXPR and FIX_TRUNC_EXPR.
........
  r118693 | hubicka | 2006-11-11 07:50:16 -0800 (Sat, 11 Nov 2006) | 34 lines


        * tree-pass.h (pass_purge_lineno_notes): Remove declaration.
        * modulo-sched.c (find_line_note): Remove.
        (loop_canon_p): Do not worry about line number notes.
        (sms_schedule): Likewise.
        * cse.c (cse_main): Likewise.
        * regmove.c (fixup_match_1): Likewise
        * function.c (emit_return_info_block): Likewise.
        (expand_function_end): Likewise.
        (thread_prologue_an_epilogue_insns): Likewise.
        * cfgrtl.c (try_redirect_by_replacing_jump, rtl_tidy_fallthru_edge):
        Likewise.
        * emit-rtl.c (find_line_note, emit_insn_after_with_line_notes,
        emit_note_copy_after): Kill.
        (emit_note_copy): Do not worry about line numbers.
        * jump.c (purge_line_number_notes): Kill.
        (pass_purge_lineno_notes): Kill.
        * cfgcleanup.c (rest_of_handle_jump2): Kill purge_line_number_notes
        call.
        * rtl.h (emit_note_copy_after, emit_insn_after_with_line_notes): Kill.
        * passes.c (init_optimization_passes): Don't purge_lineno_notes.
        * sched-ebb.c (schedule_ebbs): Don't do rm_redundant_line_notes.
        * tree-pass.h (pass_purge_lineno_notes): Kill.
        * sched-ebb.c (schedule_ebb): Don't rm_line_notes,
        rm_redundant_line_notes.
        * sched-rgb.c (schedule_region): Don't rm_line_notes,
        rm_redundant_line_notes.
        * sched-int.h (rm_line_notes, rm_redundant_line_notes): Kill.
        * haifa-sched.c: Update comment about handling notes.
        (unlink_line_notes): Kill.
        (rm_line_notes): Kill.
        (save_line_notes): Simplify.
        (rm_redundant_line_notes): Kill.
........
  r118694 | hubicka | 2006-11-11 08:13:09 -0800 (Sat, 11 Nov 2006) | 3 lines


        * predict.c (predict_loops): Kill RTL variant.
........
  r118695 | ghazi | 2006-11-11 08:51:17 -0800 (Sat, 11 Nov 2006) | 3 lines

        * tree-pretty-print.c (dump_generic_node): Print sign of Inf.
........
  r118696 | hubicka | 2006-11-11 08:54:57 -0800 (Sat, 11 Nov 2006) | 21 lines


        * extended.texi (__builtin_expect): We no longer require second
argument
        to be constant.
        * gengtype.c (adjust_field_rtx_def): Drop NOTE_INSN_EXPECTED_VALUE.
        * builtins.c (expand_builtin_expect): Simplify.
        (expand_builtin_expect_jump): Kill.
        * final.c (final_scan_insn): Do not skip the removed notes.
        * insn-notes.def (LOOP_BEG, LOOP_END, REPEATED_LINE_NUMBER,
        EXPECTED_VALUE): Remove.
        * dojump.c (do_jump): Do not care about __builtin_expect.
        * predict.c (expected_value_to_br_prob): Kill.
        * function.c (expand_function_end): Do not expand
        NOTE_INSN_REPEATED_LINE_NUMBER.
        * print-rtl.c (print_rtx): Do not pretty print the removed notes.
        * expect.c (sjlj_emit_function_enter): Emit directly branch
probability.
        * cfgexpand.c (add_reg_br_prob_note): Export.
        * cfgcleanup.c (rest_of_handle_jump2): Do not call
        expected_value_to_br_prob.
        * cfglayout.c (duplicate_insn_chain): Do not deal with removed notes.
        * rtl.h (add_reg_br_prob_note): Declare.
........
  r118697 | hubicka | 2006-11-11 08:55:48 -0800 (Sat, 11 Nov 2006) | 21 lines


        * extended.texi (__builtin_expect): We no longer require second
argument
        to be constant.
        * gengtype.c (adjust_field_rtx_def): Drop NOTE_INSN_EXPECTED_VALUE.
        * builtins.c (expand_builtin_expect): Simplify.
        (expand_builtin_expect_jump): Kill.
        * final.c (final_scan_insn): Do not skip the removed notes.
        * insn-notes.def (LOOP_BEG, LOOP_END, REPEATED_LINE_NUMBER,
        EXPECTED_VALUE): Remove.
        * dojump.c (do_jump): Do not care about __builtin_expect.
        * predict.c (expected_value_to_br_prob): Kill.
        * function.c (expand_function_end): Do not expand
        NOTE_INSN_REPEATED_LINE_NUMBER.
        * print-rtl.c (print_rtx): Do not pretty print the removed notes.
        * expect.c (sjlj_emit_function_enter): Emit directly branch
probability.
        * cfgexpand.c (add_reg_br_prob_note): Export.
        * cfgcleanup.c (rest_of_handle_jump2): Do not call
        expected_value_to_br_prob.
        * cfglayout.c (duplicate_insn_chain): Do not deal with removed notes.
        * rtl.h (add_reg_br_prob_note): Declare.
........
  r118698 | hubicka | 2006-11-11 08:57:13 -0800 (Sat, 11 Nov 2006) | 3 lines

  Oops, commited wrong variant of patch in last commit, this is the diff
  to correct one.
........
  r118699 | ghazi | 2006-11-11 09:02:04 -0800 (Sat, 11 Nov 2006) | 5 lines

        * configure.in (have_gmp): Only error if the gcc directory exists.

        * configure: Regenerate.
........
  r118700 | tobi | 2006-11-11 09:10:24 -0800 (Sat, 11 Nov 2006) | 5 lines

  * data.c: Add 2006 to copyright years.
  * interface.c: Same.
  * misc.c: Same.
  * trans-io.c: Same.
........
  r118701 | paolo | 2006-11-11 09:32:12 -0800 (Sat, 11 Nov 2006) | 25 lines

  2006-11-11  Paolo Carlini  <pcarlini@suse.de>

        PR libstdc++/29496
        * include/debug/safe_base.h (_Safe_sequence_base::_M_get_mutex,
        _Safe_iterator_base::_M_get_mutex, _M_attach_single, _M_detach_single):
        New.
        * src/debug.cc: Define the latter.
        (_Safe_sequence_base::_M_detach_all, _M_detach_singular,
        _M_revalidate_singular, _M_swap): Use the mutex.
        (_Safe_iterator_base::_M_attach, _M_detach): Adjust, forward to the
        *_single version.
        * include/debug/safe_iterator.h (_Safe_iterator<>::_M_attach_single,
        _M_invalidate_single): New.
        * include/debug/safe_iterator.tcc: Define.
        (_Safe_iterator<>::_M_invalidate): Adjust, forward to
        _M_invalidate_single.
        * include/debug/safe_sequence.h (_Safe_sequence<>::_M_invalidate_if,
        _M_transfer_iter): Use the mutex, adjust, forward to the *_single
        versions of _M_invalidate and _M_attach.
        * config/abi/pre/gnu.ver (_Safe_sequence_base::_M_get_mutex,
        _Safe_iterator_base::_M_get_mutex, _M_attach_single, _M_detach_single):
        Add @GLIBCXX_3.4.10; adjust.
        * configure.ac (libtool_VERSION): To 6:10:0.
        * testsuite/util/testsuite_abi.cc (check_version): Add GLIBCXX_3.4.10.
        * configure: Regenerate.
........
  r118702 | tobi | 2006-11-11 09:56:11 -0800 (Sat, 11 Nov 2006) | 1 line

  Fix typo in previous check-in
........
  r118703 | tobi | 2006-11-11 11:20:11 -0800 (Sat, 11 Nov 2006) | 1 line

  Fix entry missing from previously committed ChangeLog
........
  r118709 | gccadmin | 2006-11-11 16:17:50 -0800 (Sat, 11 Nov 2006) | 1 line

  Daily bump.
........
  r118711 | jiez | 2006-11-11 16:21:30 -0800 (Sat, 11 Nov 2006) | 3 lines

        * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __bfin__
        and __BFIN__.
........
  r118713 | jiez | 2006-11-11 16:27:46 -0800 (Sat, 11 Nov 2006) | 8 lines

        Revert
        2006-11-11  Jie Zhang  <jie.zhang@analog.com>
        * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Define __bfin__
        and __BFIN__.

        * config/bfin/bfin.h (TARGET_CPU_CPP_BUILTINS): Use builtin_define_std
        instead of builtin_define for bfin and BFIN.
........
  r118716 | pinskia | 2006-11-11 17:10:56 -0800 (Sat, 11 Nov 2006) | 15 lines

  2006-11-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>

          PR rtl-opt/28812
          * alias.c (fixed_scalar_and_varying_struct_p): Don't return a
          non null value if the struct memory access is in the 0th
          aliasing set.

  2006-11-11  Andrew Pinski  <andrew_pinski@playstation.sony.com>

          PR rtl-opt/28812
          * gcc.c-torture/execute/mayalias-3.c: New test.
........
  r118718 | sayle | 2006-11-11 18:57:10 -0800 (Sat, 11 Nov 2006) | 16 lines


        * fold-const.c (int_binop_types_match_p): New function.
        (size_binop): Relax constraint that both arguments must both have
        exactly the same sizetype type.  Instead use int_binop_types_match_p.
        (size_diffop): Likewise.

        (make_range): Use build_int_cst instead of fold_convert.
        (fold_cond_expr_with_comparison): Use build_int_cst to construct
        integer constants of the correct type.
        (fold_div_compare): Likewise.
        (fold_single_bit_test): Likewise.
        (fold_binary): Likewise.
        * stor-layout.c (layout_type) <VECTOR_TYPE>: Ensure that TYPE_SIZE
        has type bitsizetype and TYPE_SIZE_UNIT has type sizetype.
........
  r118721 | pault | 2006-11-12 02:15:04 -0800 (Sun, 12 Nov 2006) | 1 line

  Correcting ChangeLog errors
........
  r118722 | paolo | 2006-11-12 02:37:00 -0800 (Sun, 12 Nov 2006) | 6 lines

  2006-11-12  Paolo Carlini  <pcarlini@suse.de>

        * include/ext/bitmap_allocator.h: Uglify some names.
        * include/ext/concurrence.h: Likewise.
        * src/bitmap_allocator.cc: Likewise.
........
  r118723 | schwab | 2006-11-12 03:15:28 -0800 (Sun, 12 Nov 2006) | 2 lines

        * except.c (sjlj_emit_function_enter): Remove unused variable.
........
  r118724 | daney | 2006-11-12 09:12:13 -0800 (Sun, 12 Nov 2006) | 3 lines

        PR java/29805
        * typeck.c (build_java_array_type): Increase buffer sizes.
........
  r118726 | rakdver | 2006-11-12 10:20:03 -0800 (Sun, 12 Nov 2006) | 8 lines

        * cfgloopmanip.c (update_single_exit_for_duplicated_loop,
        update_single_exit_for_duplicated_loops): New functions.
        (duplicate_loop_to_header_edge): Use
        update_single_exit_for_duplicated_loops.
        * tree-ssa-loop-manip.c (tree_unroll_loop): Call verification
        functions only with ENABLE_CHECKING.
........
  r118727 | sayle | 2006-11-12 10:41:31 -0800 (Sun, 12 Nov 2006) | 8 lines


        PR tree-optimization/13827
        * fold-const.c (fold_binary) <EQ_EXPR, NE_EXPR>: Fold (X&C) op (Y&C)
        as ((X^Y)&C) op 0.

        * gcc.dg/fold-eqand-1.c: New test case.
........
  r118728 | rakdver | 2006-11-12 11:17:02 -0800 (Sun, 12 Nov 2006) | 33 lines

        * params.c (set_param_value): Initialize the "set" field.
        * params.h (struct param_info): Add "set" field.
        (PARAM_SET_P): New macro.
        (PREFETCH_LATENCY, SIMULTANEOUS_PREFETCHES, L1_CACHE_SIZE,
        L1_CACHE_LINE_SIZE): New macros.
        * toplev.c (DEFPARAM): Initialize the "set" field.
        * tree-ssa-loop-prefetch.c (PREFETCH_LATENCY,
        SIMULTANEOUS_PREFETCHES): Removed.
        (PREFETCH_BLOCK): Use L1_CACHE_LINE_SIZE.
        (tree_ssa_prefetch_arrays): Dump the values of the parameters.
        * config/sparc/sparc.c: Include params.h.
        (sparc_override_options): Set SIMULTANEOUS_PREFETCHES and
        L1_CACHE_LINE_SIZE parameters.
        * config/sparc/sparc.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
        Removed.
        * config/i386/i386.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES):
        Removed.
        * config/i386/i386.c: Include params.h.
        (k8_cost): Change default value for SIMULTANEOUS_PREFETCHES.
        (override_options): Set SIMULTANEOUS_PREFETCHES and
        L1_CACHE_LINE_SIZE parameters.
        * config/sh/sh.h (SIMULTANEOUS_PREFETCHES): Removed.
        (OPTIMIZATION_OPTIONS): Set SIMULTANEOUS_PREFETCHES and
        L1_CACHE_LINE_SIZE parameters.
        * config/ia64/ia64.c (ia64_optimization_options): Set
        SIMULTANEOUS_PREFETCHES and L1_CACHE_LINE_SIZE parameters.
        * config/ia64/ia64.h (SIMULTANEOUS_PREFETCHES, PREFETCH_BLOCK):
        Removed.
        * params.def (PARAM_PREFETCH_LATENCY, PARAM_SIMULTANEOUS_PREFETCHES,
        PARAM_L1_CACHE_SIZE, PARAM_L1_CACHE_LINE_SIZE): New params.
        * doc/invoke.texi: Document new params.
........
  r118729 | rakdver | 2006-11-12 11:58:05 -0800 (Sun, 12 Nov 2006) | 42 lines

        * Makefile.in (tree-data-ref.o): Add langhooks.h dependency.
        * tree-ssa-loop-niter.c (derive_constant_upper_bound):  Follow
        ud-chains.  Handle AND_EXPR.
        (record_estimate): Record whether the estimate is realistic
        and whether it is derived from a loop exit.
        (record_nonwrapping_iv, idx_infer_loop_bounds,
infer_loop_bounds_from_ref,
        infer_loop_bounds_from_array, infer_loop_bounds_from_signedness): New
        functions.
        (compute_estimated_nb_iterations): Take only realistic bounds into
        account.  Set estimate_state.  Use double_ints.
        (infer_loop_bounds_from_undefined): Call infer_loop_bounds_from_array
        and infer_loop_bounds_from_signedness.  Do not consider basic blocks
        that do not have to be always executed.
        (estimate_numbers_of_iterations_loop): Set estimate_state, and use it
        to determine whether to call infer_loop_bounds_from_undefined
        and compute_estimated_nb_iterations.
        (n_of_executions_at_most): Use double_ints.
        (free_numbers_of_iterations_estimates_loop): Set estimate_state.
        (substitute_in_loop_info): Do not replace in estimated_nb_iterations.
        * double-int.c (double_int_to_tree): Improve comment.
        (double_int_fits_to_tree_p): New function.
        * double-int.h (double_int_fits_to_tree_p): Declare.
        * tree-data-ref.c: Include langhooks.h.
        (estimate_niter_from_size_of_data, estimate_iters_using_array):
Removed.
        (analyze_array_indexes): Do not call estimate_niter_from_size_of_data.
        (analyze_array): Do not pass estimate_only argument to
        analyze_array_indexes.
        (get_number_of_iters_for_loop): Build tree from the stored double_int
        value.
        (get_references_in_stmt, find_data_references_in_stmt): New functions.
        (find_data_references_in_loop): Use find_data_references_in_stmt.
        * tree-data-ref.h (struct data_ref_loc_d): New.
        (get_references_in_stmt): Declare.
        (estimate_iters_using_array): Declaration removed.
        * cfgloop.h (struct nb_iter_bound): Change type of bound to
        double_int.  Improve comments.  Add is_exit and realistic
        fields.
        (struct loop): Changed type of estimated_nb_iterations to double_int.
        Added estimate_state field.
        (record_estimate): Declaration removed.
........
  r118730 | rakdver | 2006-11-12 12:05:49 -0800 (Sun, 12 Nov 2006) | 11 lines

        * tree-ssa-loop-prefetch.c (schedule_prefetches): Cleanup and improve
        comments.
        (issue_prefetch_ref): Move assignment to write_p out of loop.
        (determine_unroll_factor): Do not take PARAM_MAX_UNROLL_TIMES and
        SIMULTANEOUS_PREFETCHES into account.
        (loop_prefetch_arrays): Do not pass ahead to determine_unroll_factor.
        * lambda-code.c (lcm): Renamed to ...
        (least_common_multiple): ... and exported.
        * tree-flow.h (least_common_multiple): Declare.
........
  r118731 | rakdver | 2006-11-12 12:11:53 -0800 (Sun, 12 Nov 2006) | 8 lines

        * tree-ssa-loop.c (tree_vectorize): Return the result of
        vectorize_loops.
        * tree-vectorizer.c (vectorize_loops): Return TODO_cleanup_cfg
        if anything changed.
        * tree-vectorizer.h (vectorize_loops): Declaration removed.
        * tree-flow.h (vectorize_loops): Declaration changed.
........
  r118732 | rakdver | 2006-11-12 12:59:28 -0800 (Sun, 12 Nov 2006) | 6 lines

        * tree-flow.h (name_mappings_registered_p): Declare.
        * tree-into-ssa.c (name_mappings_registered_p): New function.
        * tree-cfg.c (tree_can_merge_blocks_p): Check
        name_mappings_registered_p instead of need_ssa_update_p.
........
  r118733 | ghazi | 2006-11-12 15:51:36 -0800 (Sun, 12 Nov 2006) | 10 lines

        * builtins.c (fold_builtin_cosh): New.
        (fold_builtin_1): Use it.
        * fold-const.c (negate_mathfn_p): Add llround, lround, round,
        trunc to the list of "odd" functions.  Also add llrint, lrint,
        rint and nearbyint when flag_rounding_math is false.

  testsuite:
        * gcc.dg/torture/builtin-symmetric-1.c: Add more cases.
........
  r118738 | gccadmin | 2006-11-12 16:17:41 -0800 (Sun, 12 Nov 2006) | 1 line

  Daily bump.
........
  r118740 | sayle | 2006-11-12 16:41:53 -0800 (Sun, 12 Nov 2006) | 10 lines

  2006-11-12  Michael Matz  <matz@suse.de>
            Roger Sayle  <roger@eyesopen.com>

        PR rtl-optimization/29797
        * ifcvt.c (noce_try_bitop): Correct calculation of bitnum on
        BITS_BIG_ENDIAN targets.

        * gcc.c-torture/execute/pr29797-1.c: New test case.
........
  r118742 | dberlin | 2006-11-12 18:18:07 -0800 (Sun, 12 Nov 2006) | 7 lines

  2006-11-12  Daniel Berlin  <dberlin@dberlin.org>

        Fix PR tree-optimization/29587
        * tree-ssa-structalias.c (process_constraint): Don't
        mark address taken due only to escaped vars constraint.
........
  r118744 | sayle | 2006-11-12 18:55:22 -0800 (Sun, 12 Nov 2006) | 7 lines


        * fold-const.c (negate_expr_p) <PLUS_EXPR, MINUS_EXPR>: Correct/refine
        condition for transformations.  Use !HONOR_SIGN_DEPENDENT_ROUNDING
        && !HONOR_SIGNED_ZEROS instead of flag_unsafe_math_optimizations.
        (fold_negate_expr) <PLUS_EXPR, MINUS_EXPR>: Likewise.
........
  r118745 | ghazi | 2006-11-12 19:02:14 -0800 (Sun, 12 Nov 2006) | 3 lines

  Add PR number to ChangeLog from a previous commit.
........
  r118746 | kkojima | 2006-11-12 19:28:13 -0800 (Sun, 12 Nov 2006) | 10 lines

        * genemit.c (gen_insn): Call gen_exp with a non-null used
        when handling multiple insns.
        (gen_expand): Likewise.
        * reorg.c (emit_delay_sequence): Copy the delay slot insn.
        * config/sh/sh.md (ashrsi2_31+1): Copy operands[0].
        (movsi_const_16bit+1): Copy operands[1].
        (call_pcrel): Copy the call_site pattern.
        (call_value_pcrel, sibcall_pcrel, GOTaddr2picreg): Likewise.
........
  r118747 | jason | 2006-11-13 00:16:11 -0800 (Mon, 13 Nov 2006) | 8 lines

          PR middle-end/28915
          * gimplify.c (gimplify_init_constructor): Don't reduce TREE_CONSTANT
          vector ctors.
          * tree-cfg.c (verify_expr): Don't look into TREE_CONSTANT
          vector ctors.
          * expmed.c (make_tree): Handle CONST, SYMBOL_REF.
          * tree.c (build_vector): Handle non-_CST elements.
........
  r118754 | rakdver | 2006-11-13 04:37:29 -0800 (Mon, 13 Nov 2006) | 7 lines

        PR tree-optimization/29680
        * tree-ssa-operands.c (access_can_touch_variable): Revert fix for
        PR 14784.

        * gcc.dg/alias-11.c: New test.
........
  r118755 | jsm28 | 2006-11-13 05:10:17 -0800 (Mon, 13 Nov 2006) | 18 lines

  gcc:
        * config/arm/bpapi.h (TARGET_BPABI_CPP_BUILTINS): Define
        __GXX_TYPEINFO_EQUALITY_INLINE but not
        __GXX_MERGED_TYPEINFO_NAMES.
        * config/arm/symbian.h (TARGET_OS_CPP_BUILTINS): Define
        __GXX_MERGED_TYPEINFO_NAMES.
        * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define
        __GXX_TYPEINFO_EQUALITY_INLINE.

  libstdc++-v3:
        * libsupc++/typeinfo (__GXX_TYPEINFO_EQUALITY_INLINE): Define.
        Use instead of __GXX_MERGED_TYPEINFO_NAMES to condition inline
        definitions.
        * libsupc++/tinfo.cc (operator==): Condition on
        __GXX_TYPEINFO_EQUALITY_INLINE; check __GXX_MERGED_TYPEINFO_NAMES
        to determine algorithm.
        * libsupc++/tinfo2.cc (type_info::before): Likewise.
........
  r118757 | jsm28 | 2006-11-13 05:28:28 -0800 (Mon, 13 Nov 2006) | 5 lines

        * libsupc++/eh_globals.cc (__cxxabiv1::__cxa_get_globals):
        Initialize propagatingExceptions if __ARM_EABI_UNWINDER__.
        * libsupc++/eh_personality.cc (empty_exception_spec): Define
        separately in __ARM_EABI_UNWINDER__ case.
........
  r118761 | pinskia | 2006-11-13 06:36:09 -0800 (Mon, 13 Nov 2006) | 14 lines

  2006-11-12  Andrew Pinski  <andrew_pinski@playstation.sony.com>

          PR fortran/26994
          * gfortran.fortran-torture/compile/transfer-1.f90:
          New testcase.

  2006-11-12  Andrew Pinski  <andrew_pinski@playstation.sony.com>

          PR fortran/26994
          * trans-expr.c (gfc_conv_expr_reference): Set TREE_STATIC on the
          new CONST_DECL.
........
  r118762 | matz | 2006-11-13 06:36:47 -0800 (Mon, 13 Nov 2006) | 2 lines

          * genemit.c (gen_expand): Allocate enough memory.
........
  r118764 | hjl | 2006-11-13 07:29:21 -0800 (Mon, 13 Nov 2006) | 4 lines

  2006-11-13  H.J. Lu  <hongjiu.lu@intel.com>

        * config/i386/i386.c: Fix a typo in comment.
........
  r118765 | carlos | 2006-11-13 09:25:59 -0800 (Mon, 13 Nov 2006) | 24 lines

  gcc/

  2006-11-13  Carlos O'Donell  <carlos@codesourcery.com>
            Mark Mitchell  <mark@codesourcery.com>

        * gcc.c: Organize search path variables into $prefix relative,
        and well-known native. Add comments.
        (add_sysrooted_prefix): Add comment.
        (process_command): If !gcc_exec_prefix add $prefix based paths.
        If *cross_compile == '0', add native well-known paths.
        Assert tooldir_base_prefix is always relative.
        (main): If print_search_dirs, and if gcc_exec_prefix is set,
        use this value for 'install:' path.
        * Makefile.in: Add GCC_EXEC_PREFIX to generated site.exp.

  gcc/testsuite/

  2006-11-13  Carlos O'Donell  <carlos@codesourcery.com>

        * lib/c-torture.exp: Use target-libpath.exp.
        * lib/target-libpath.exp (set_ld_library_path_env_vars): If present,
        set GCC_EXEC_PREFIX env var from global variable of same name.
........
  r118767 | mmitchel | 2006-11-13 09:48:28 -0800 (Mon, 13 Nov 2006) | 6 lines

        PR c++/29518
        * pt.c (coerce_template_parms): Do not skip_evaluation while
        substituting template arguments.
        PR c++/29518
        * g++.dg/template/static28.C: New test.
........
  r118768 | mmitchel | 2006-11-13 09:49:43 -0800 (Mon, 13 Nov 2006) | 6 lines

        PR c++/29518
        * pt.c (coerce_template_parms): Do not skip_evaluation while
        substituting template arguments.
        PR c++/29518
        * g++.dg/template/static28.C: New test.
........
  r118769 | rguenth | 2006-11-13 10:20:13 -0800 (Mon, 13 Nov 2006) | 12 lines

  2006-11-13  Richard Guenther  <rguenther@suse.de>

        * config/i386/i386.c (ix86_expand_lround): Handle expand_simple_binop
        return value.
        (ix86_expand_lfloorceil): Likewise.
        (ix86_expand_rint): Likewise.
        (ix86_expand_floorceildf_32): Likewise.
        (ix86_expand_floorceil): Likewise.
        (ix86_expand_rounddf_32): Likewise.
        (ix86_expand_truncdf_32): Likewise.
        (ix86_expand_round): Likewise.
........
  r118771 | hjl | 2006-11-13 10:53:27 -0800 (Mon, 13 Nov 2006) | 6 lines

  2006-11-12  Jason Merrill  <jason@redhat.com>
            Andrew Pinski <pinskia@physics.uc.edu>

        PR middle-end/28915
        * gcc.target/i386/vectorize1.c: New.
........
  r118773 | jakub | 2006-11-13 11:42:55 -0800 (Mon, 13 Nov 2006) | 6 lines

        PR fortran/29759
        * fortran/scanner.c (skip_free_comments): Clear openmp_flag
        before returning true.

        * gfortran.dg/gomp/pr29759.f90: New test.
........
  r118775 | jakub | 2006-11-13 11:47:06 -0800 (Mon, 13 Nov 2006) | 4 lines

        * configure.ac (ld_vers): Parse GNU ld version 2.17.50.0.3-6 20060715
        style versions.
        * configure: Rebuilt.
........
  r118776 | pinskia | 2006-11-13 12:14:35 -0800 (Mon, 13 Nov 2006) | 33 lines

  2006-11-13  Andrew Pinski  <andrew_pinski@playstation.sony.com>

          * config/rs6000/cell.md: New file.
          * config/rs6000/rs6000.c (rs6000_cell_dont_microcode): New
          variable.
          (ppccell_cost): New cost matrix.
          (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): Define.
          (rs6000_override_options): Set rs6000_always_hint to false
          for cell. Also align functions/lables/loops to 8byte
          for the Cell. Use PROCESSOR_CELL.
          (rs6000_emit_epilogue): Rename using_mfcr_multiple to
          using_mtcr_multiple.
          (rs6000_variable_issue): If the insn is a nonpipelined instruction
          on the Cell, return 0.
          (rs6000_adjust_cost): Add Cell cost adjustments.
          (is_microcoded_insn): Return true for Cell microcoded
          instructions.
          (is_nonpipeline_insn): New function.
          (rs6000_issue_rate): Add PROCESSOR_CELL.
          (rs6000_use_sched_lookahead): If Cell, then we should look ahead 8
          instructions.
          (rs6000_use_sched_lookahead_guard): New function.
          (rs6000_sched_reorder):  Reorder the ready list, if the second
          to last ready insn is a nonepipeline insn on the Cell.
          * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_CELL.
          (ASM_CPU_SPEC): Add Cell.
          * config/rs6000/rs6000.md (cpu): Add Cell.
          (cell_micro): New Attr.
          Include cell.md
........
  r118777 | drow | 2006-11-13 12:35:20 -0800 (Mon, 13 Nov 2006) | 2 lines

        * tls.m4 (GCC_CHECK_TLS): Fall back to a link test.
........
  r118780 | jakub | 2006-11-13 14:38:21 -0800 (Mon, 13 Nov 2006) | 4 lines

        * configure.ac: Add changequote around __LONG_DOUBLE_MATH_OPTIONAL
        test.
        * configure: Rebuilt.
........
  r118783 | sayle | 2006-11-13 15:02:41 -0800 (Mon, 13 Nov 2006) | 5 lines


        * fold-const.c (optimize_bit_field_compare): Recursively call
        fold when simplifying non-constant comparisons between bit-fields.
........
  r118784 | kkojima | 2006-11-13 15:08:24 -0800 (Mon, 13 Nov 2006) | 5 lines

        * config/sh/sh.c (expand_cbranchdi4): Initialize skip_label.
        (sh_optimize_target_register_callee_saved): #if 0 the code
        using NOTE_INSN_LOOP_{BEG,END}.
........
  r118785 | sayle | 2006-11-13 15:28:25 -0800 (Mon, 13 Nov 2006) | 5 lines


        * rtti.c (get_pseudo_ti_init): Ensure that the offset field of the
        base type info initializer has the correct type.
........

Added:
    branches/fixed-point/gcc/config/rs6000/cell.md
      - copied unchanged from r118785, trunk/gcc/config/rs6000/cell.md
    branches/fixed-point/gcc/testsuite/g++.dg/template/static28.C
      - copied unchanged from r118785,
trunk/gcc/testsuite/g++.dg/template/static28.C
    branches/fixed-point/gcc/testsuite/gcc.c-torture/compile/pr27528.c
      - copied unchanged from r118785,
trunk/gcc/testsuite/gcc.c-torture/compile/pr27528.c
    branches/fixed-point/gcc/testsuite/gcc.c-torture/execute/mayalias-3.c
      - copied unchanged from r118785,
trunk/gcc/testsuite/gcc.c-torture/execute/mayalias-3.c
    branches/fixed-point/gcc/testsuite/gcc.c-torture/execute/pr29797-1.c
      - copied unchanged from r118785,
trunk/gcc/testsuite/gcc.c-torture/execute/pr29797-1.c
    branches/fixed-point/gcc/testsuite/gcc.dg/alias-11.c
      - copied unchanged from r118785, trunk/gcc/testsuite/gcc.dg/alias-11.c
    branches/fixed-point/gcc/testsuite/gcc.dg/fold-eqand-1.c
      - copied unchanged from r118785,
trunk/gcc/testsuite/gcc.dg/fold-eqand-1.c
    branches/fixed-point/gcc/testsuite/gcc.dg/pr27528.c
      - copied unchanged from r118785, trunk/gcc/testsuite/gcc.dg/pr27528.c
    branches/fixed-point/gcc/testsuite/gcc.dg/torture/builtin-symmetric-1.c
      - copied unchanged from r118785,
trunk/gcc/testsuite/gcc.dg/torture/builtin-symmetric-1.c
    branches/fixed-point/gcc/testsuite/gcc.dg/tree-ssa/prefetch-3.c
      - copied unchanged from r118785,
trunk/gcc/testsuite/gcc.dg/tree-ssa/prefetch-3.c
    branches/fixed-point/gcc/testsuite/gcc.target/i386/vectorize1.c
      - copied unchanged from r118785,
trunk/gcc/testsuite/gcc.target/i386/vectorize1.c
    branches/fixed-point/gcc/testsuite/gfortran.dg/aliasing_dummy_4.f90
      - copied unchanged from r118785,
trunk/gcc/testsuite/gfortran.dg/aliasing_dummy_4.f90
    branches/fixed-point/gcc/testsuite/gfortran.dg/gomp/pr29759.f90
      - copied unchanged from r118785,
trunk/gcc/testsuite/gfortran.dg/gomp/pr29759.f90
    branches/fixed-point/gcc/testsuite/gfortran.dg/reshape_source_size_1.f90
      - copied unchanged from r118785,
trunk/gcc/testsuite/gfortran.dg/reshape_source_size_1.f90
   
branches/fixed-point/gcc/testsuite/gfortran.fortran-torture/compile/transfer-1.f90
      - copied unchanged from r118785,
trunk/gcc/testsuite/gfortran.fortran-torture/compile/transfer-1.f90
    branches/fixed-point/libmudflap/testsuite/libmudflap.cth/pass59-frag.c
      - copied unchanged from r118785,
trunk/libmudflap/testsuite/libmudflap.cth/pass59-frag.c
Modified:
    branches/fixed-point/   (props changed)
    branches/fixed-point/ChangeLog
    branches/fixed-point/config/ChangeLog
    branches/fixed-point/config/tls.m4
    branches/fixed-point/configure
    branches/fixed-point/configure.in
    branches/fixed-point/gcc/ChangeLog
    branches/fixed-point/gcc/DATESTAMP
    branches/fixed-point/gcc/Makefile.in
    branches/fixed-point/gcc/ada/ChangeLog
    branches/fixed-point/gcc/ada/trans.c
    branches/fixed-point/gcc/alias.c
    branches/fixed-point/gcc/builtins.c
    branches/fixed-point/gcc/cfgcleanup.c
    branches/fixed-point/gcc/cfgexpand.c
    branches/fixed-point/gcc/cfglayout.c
    branches/fixed-point/gcc/cfgloop.h
    branches/fixed-point/gcc/cfgloopmanip.c
    branches/fixed-point/gcc/cfgrtl.c
    branches/fixed-point/gcc/config/arm/bpabi.h
    branches/fixed-point/gcc/config/arm/symbian.h
    branches/fixed-point/gcc/config/bfin/bfin.h
    branches/fixed-point/gcc/config/i386/cygming.h
    branches/fixed-point/gcc/config/i386/i386.c
    branches/fixed-point/gcc/config/i386/i386.h
    branches/fixed-point/gcc/config/ia64/ia64.c
    branches/fixed-point/gcc/config/ia64/ia64.h
    branches/fixed-point/gcc/config/rs6000/rs6000.c
    branches/fixed-point/gcc/config/rs6000/rs6000.h
    branches/fixed-point/gcc/config/rs6000/rs6000.md
    branches/fixed-point/gcc/config/sh/sh.c
    branches/fixed-point/gcc/config/sh/sh.h
    branches/fixed-point/gcc/config/sh/sh.md
    branches/fixed-point/gcc/config/sparc/sparc.c
    branches/fixed-point/gcc/config/sparc/sparc.h
    branches/fixed-point/gcc/configure
    branches/fixed-point/gcc/configure.ac
    branches/fixed-point/gcc/cp/ChangeLog
    branches/fixed-point/gcc/cp/pt.c
    branches/fixed-point/gcc/cp/rtti.c
    branches/fixed-point/gcc/cp/typeck.c
    branches/fixed-point/gcc/doc/extend.texi
    branches/fixed-point/gcc/doc/invoke.texi
    branches/fixed-point/gcc/dojump.c
    branches/fixed-point/gcc/double-int.c
    branches/fixed-point/gcc/double-int.h
    branches/fixed-point/gcc/dwarf2out.c
    branches/fixed-point/gcc/emit-rtl.c
    branches/fixed-point/gcc/except.c
    branches/fixed-point/gcc/expmed.c
    branches/fixed-point/gcc/expr.c
    branches/fixed-point/gcc/final.c
    branches/fixed-point/gcc/fold-const.c
    branches/fixed-point/gcc/fortran/ChangeLog
    branches/fixed-point/gcc/fortran/array.c
    branches/fixed-point/gcc/fortran/check.c
    branches/fixed-point/gcc/fortran/data.c
    branches/fixed-point/gcc/fortran/gfortran.h
    branches/fixed-point/gcc/fortran/interface.c
    branches/fixed-point/gcc/fortran/lang.opt
    branches/fixed-point/gcc/fortran/misc.c
    branches/fixed-point/gcc/fortran/module.c
    branches/fixed-point/gcc/fortran/options.c
    branches/fixed-point/gcc/fortran/resolve.c
    branches/fixed-point/gcc/fortran/scanner.c
    branches/fixed-point/gcc/fortran/trans-expr.c
    branches/fixed-point/gcc/fortran/trans-intrinsic.c
    branches/fixed-point/gcc/fortran/trans-io.c
    branches/fixed-point/gcc/function.c
    branches/fixed-point/gcc/gcc.c
    branches/fixed-point/gcc/gcse.c
    branches/fixed-point/gcc/genemit.c
    branches/fixed-point/gcc/gengtype.c
    branches/fixed-point/gcc/gimplify.c
    branches/fixed-point/gcc/haifa-sched.c
    branches/fixed-point/gcc/ifcvt.c
    branches/fixed-point/gcc/insn-notes.def
    branches/fixed-point/gcc/java/ChangeLog
    branches/fixed-point/gcc/java/check-init.c
    branches/fixed-point/gcc/java/typeck.c
    branches/fixed-point/gcc/jump.c
    branches/fixed-point/gcc/lambda-code.c
    branches/fixed-point/gcc/local-alloc.c
    branches/fixed-point/gcc/modulo-sched.c
    branches/fixed-point/gcc/params.c
    branches/fixed-point/gcc/params.def
    branches/fixed-point/gcc/params.h
    branches/fixed-point/gcc/passes.c
    branches/fixed-point/gcc/predict.c
    branches/fixed-point/gcc/print-rtl.c
    branches/fixed-point/gcc/regmove.c
    branches/fixed-point/gcc/reorg.c
    branches/fixed-point/gcc/rtl.h
    branches/fixed-point/gcc/sched-ebb.c
    branches/fixed-point/gcc/sched-int.h
    branches/fixed-point/gcc/sched-rgn.c
    branches/fixed-point/gcc/stmt.c
    branches/fixed-point/gcc/stor-layout.c
    branches/fixed-point/gcc/testsuite/ChangeLog
    branches/fixed-point/gcc/testsuite/gcc.dg/builtins-20.c
    branches/fixed-point/gcc/testsuite/lib/c-torture.exp
    branches/fixed-point/gcc/testsuite/lib/target-libpath.exp
    branches/fixed-point/gcc/toplev.c
    branches/fixed-point/gcc/tree-cfg.c
    branches/fixed-point/gcc/tree-data-ref.c
    branches/fixed-point/gcc/tree-data-ref.h
    branches/fixed-point/gcc/tree-eh.c
    branches/fixed-point/gcc/tree-flow.h
    branches/fixed-point/gcc/tree-gimple.c
    branches/fixed-point/gcc/tree-inline.c
    branches/fixed-point/gcc/tree-into-ssa.c
    branches/fixed-point/gcc/tree-pass.h
    branches/fixed-point/gcc/tree-pretty-print.c
    branches/fixed-point/gcc/tree-ssa-loop-manip.c
    branches/fixed-point/gcc/tree-ssa-loop-niter.c
    branches/fixed-point/gcc/tree-ssa-loop-prefetch.c
    branches/fixed-point/gcc/tree-ssa-loop.c
    branches/fixed-point/gcc/tree-ssa-operands.c
    branches/fixed-point/gcc/tree-ssa-structalias.c
    branches/fixed-point/gcc/tree-vectorizer.c
    branches/fixed-point/gcc/tree-vectorizer.h
    branches/fixed-point/gcc/tree-vrp.c
    branches/fixed-point/gcc/tree.c
    branches/fixed-point/gcc/tree.def
    branches/fixed-point/libgomp/ChangeLog
    branches/fixed-point/libgomp/configure
    branches/fixed-point/libjava/ChangeLog
    branches/fixed-point/libjava/configure
    branches/fixed-point/libmudflap/ChangeLog
    branches/fixed-point/libmudflap/configure
    branches/fixed-point/libmudflap/mf-hooks1.c
    branches/fixed-point/libstdc++-v3/ChangeLog
    branches/fixed-point/libstdc++-v3/config/abi/pre/gnu.ver
    branches/fixed-point/libstdc++-v3/config/locale/gnu/c_locale.cc
    branches/fixed-point/libstdc++-v3/configure
    branches/fixed-point/libstdc++-v3/configure.ac
    branches/fixed-point/libstdc++-v3/include/debug/safe_base.h
    branches/fixed-point/libstdc++-v3/include/debug/safe_iterator.h
    branches/fixed-point/libstdc++-v3/include/debug/safe_iterator.tcc
    branches/fixed-point/libstdc++-v3/include/debug/safe_sequence.h
    branches/fixed-point/libstdc++-v3/include/ext/bitmap_allocator.h
    branches/fixed-point/libstdc++-v3/include/ext/concurrence.h
    branches/fixed-point/libstdc++-v3/libsupc++/eh_globals.cc
    branches/fixed-point/libstdc++-v3/libsupc++/eh_personality.cc
    branches/fixed-point/libstdc++-v3/libsupc++/tinfo.cc
    branches/fixed-point/libstdc++-v3/libsupc++/tinfo2.cc
    branches/fixed-point/libstdc++-v3/libsupc++/typeinfo
    branches/fixed-point/libstdc++-v3/src/bitmap_allocator.cc
    branches/fixed-point/libstdc++-v3/src/debug.cc
    branches/fixed-point/libstdc++-v3/testsuite/util/testsuite_abi.cc

Propchange: branches/fixed-point/
            ('svnmerge-integrated' modified)


-- 


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


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [Bug libstdc++/29496] _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode
  2006-10-18  8:33 [Bug c++/29496] New: _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode l_heldt at poczta dot onet dot pl
                   ` (26 preceding siblings ...)
  2007-02-01 15:57 ` pcarlini at suse dot de
@ 2007-02-01 15:57 ` paolo at gcc dot gnu dot org
  2007-05-14 21:36 ` pcarlini at suse dot de
                   ` (3 subsequent siblings)
  31 siblings, 0 replies; 33+ messages in thread
From: paolo at gcc dot gnu dot org @ 2007-02-01 15:57 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #24 from paolo at gcc dot gnu dot org  2007-02-01 15:56 -------
Subject: Bug 29496

Author: paolo
Date: Thu Feb  1 15:56:37 2007
New Revision: 121465

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=121465
Log:
2007-02-01  Paolo Carlini  <pcarlini@suse.de>

        PR libstdc++/14493
        * libsupc++/typeinfo (bad_cast::what, bad_typeid::what): Declare.
        * libsupc++/tinfo.cc: Define.   
        * libsupc++/exception (bad_exception::what): Declare.
        * libsupc++/eh_exception.cc: Define.
        (exception::what): Adjust, don't use typeid.
        * libsupc++/new (bad_alloc::what): Declare.
        * libsupc++/new_handler.cc: Define.
        * config/abi/pre/gnu.ver: Export the new methods @3.4.9.
        * testsuite/18_support/14493.cc: New.

2007-02-01  Paolo Carlini  <pcarlini@suse.de>

        PR libstdc++/29496
        * include/debug/safe_base.h (_Safe_sequence_base::_M_get_mutex,
        _Safe_iterator_base::_M_get_mutex, _M_attach_single, _M_detach_single):
        New.
        * src/debug.cc: Define the latter.
        (_Safe_sequence_base::_M_detach_all, _M_detach_singular,
        _M_revalidate_singular, _M_swap): Use the mutex.
        (_Safe_iterator_base::_M_attach, _M_detach): Adjust, forward to the
        *_single version.
        * include/debug/safe_iterator.h (_Safe_iterator<>::_M_attach_single,
        _M_invalidate_single): New.
        * include/debug/safe_iterator.tcc: Define.
        (_Safe_iterator<>::_M_invalidate): Adjust, forward to
        _M_invalidate_single.
        * include/debug/safe_sequence.h (_Safe_sequence<>::_M_invalidate_if,
        _M_transfer_iter): Use the mutex, adjust, forward to the *_single
        versions of _M_invalidate and _M_attach.
        * config/abi/pre/gnu.ver (_Safe_sequence_base::_M_get_mutex,
        _Safe_iterator_base::_M_get_mutex, _M_attach_single, _M_detach_single):
        Add @GLIBCXX_3.4.9; adjust.

Added:
    branches/gcc-4_2-branch/libstdc++-v3/testsuite/18_support/14493.cc
Modified:
    branches/gcc-4_2-branch/libstdc++-v3/ChangeLog
    branches/gcc-4_2-branch/libstdc++-v3/config/abi/pre/gnu.ver
    branches/gcc-4_2-branch/libstdc++-v3/include/debug/safe_base.h
    branches/gcc-4_2-branch/libstdc++-v3/include/debug/safe_iterator.h
    branches/gcc-4_2-branch/libstdc++-v3/include/debug/safe_iterator.tcc
    branches/gcc-4_2-branch/libstdc++-v3/include/debug/safe_sequence.h
    branches/gcc-4_2-branch/libstdc++-v3/libsupc++/eh_exception.cc
    branches/gcc-4_2-branch/libstdc++-v3/libsupc++/exception
    branches/gcc-4_2-branch/libstdc++-v3/libsupc++/new
    branches/gcc-4_2-branch/libstdc++-v3/libsupc++/new_handler.cc
    branches/gcc-4_2-branch/libstdc++-v3/libsupc++/tinfo.cc
    branches/gcc-4_2-branch/libstdc++-v3/libsupc++/typeinfo
    branches/gcc-4_2-branch/libstdc++-v3/src/debug.cc


-- 


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


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [Bug libstdc++/29496] _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode
  2006-10-18  8:33 [Bug c++/29496] New: _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode l_heldt at poczta dot onet dot pl
                   ` (25 preceding siblings ...)
  2006-12-01  1:07 ` chaoyingfu at gcc dot gnu dot org
@ 2007-02-01 15:57 ` pcarlini at suse dot de
  2007-02-01 15:57 ` paolo at gcc dot gnu dot org
                   ` (4 subsequent siblings)
  31 siblings, 0 replies; 33+ messages in thread
From: pcarlini at suse dot de @ 2007-02-01 15:57 UTC (permalink / raw)
  To: gcc-bugs



-- 

pcarlini at suse dot de changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.2.1                       |4.2.0


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


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [Bug libstdc++/29496] _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode
  2006-10-18  8:33 [Bug c++/29496] New: _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode l_heldt at poczta dot onet dot pl
                   ` (27 preceding siblings ...)
  2007-02-01 15:57 ` paolo at gcc dot gnu dot org
@ 2007-05-14 21:36 ` pcarlini at suse dot de
  2007-05-14 21:37 ` mmitchel at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  31 siblings, 0 replies; 33+ messages in thread
From: pcarlini at suse dot de @ 2007-05-14 21:36 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #26 from pcarlini at suse dot de  2007-05-14 22:30 -------
Actually, this is already fixed for 4.2.0! How to mark it as such?


-- 

pcarlini at suse dot de changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |mark at codesourcery dot com
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |FIXED


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


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [Bug libstdc++/29496] _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode
  2006-10-18  8:33 [Bug c++/29496] New: _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode l_heldt at poczta dot onet dot pl
                   ` (28 preceding siblings ...)
  2007-05-14 21:36 ` pcarlini at suse dot de
@ 2007-05-14 21:37 ` mmitchel at gcc dot gnu dot org
  2007-05-14 21:39 ` pcarlini at suse dot de
  2007-05-14 21:39 ` pcarlini at suse dot de
  31 siblings, 0 replies; 33+ messages in thread
From: mmitchel at gcc dot gnu dot org @ 2007-05-14 21:37 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #25 from mmitchel at gcc dot gnu dot org  2007-05-14 22:26 -------
Will not be fixed in 4.2.0; retargeting at 4.2.1.


-- 

mmitchel at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.2.0                       |4.2.1


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


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [Bug libstdc++/29496] _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode
  2006-10-18  8:33 [Bug c++/29496] New: _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode l_heldt at poczta dot onet dot pl
                   ` (30 preceding siblings ...)
  2007-05-14 21:39 ` pcarlini at suse dot de
@ 2007-05-14 21:39 ` pcarlini at suse dot de
  31 siblings, 0 replies; 33+ messages in thread
From: pcarlini at suse dot de @ 2007-05-14 21:39 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #27 from pcarlini at suse dot de  2007-05-14 22:39 -------
Ok, fixed the target milestone.


-- 


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


^ permalink raw reply	[flat|nested] 33+ messages in thread

* [Bug libstdc++/29496] _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode
  2006-10-18  8:33 [Bug c++/29496] New: _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode l_heldt at poczta dot onet dot pl
                   ` (29 preceding siblings ...)
  2007-05-14 21:37 ` mmitchel at gcc dot gnu dot org
@ 2007-05-14 21:39 ` pcarlini at suse dot de
  2007-05-14 21:39 ` pcarlini at suse dot de
  31 siblings, 0 replies; 33+ messages in thread
From: pcarlini at suse dot de @ 2007-05-14 21:39 UTC (permalink / raw)
  To: gcc-bugs



-- 

pcarlini at suse dot de changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.2.1                       |4.2.0


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


^ permalink raw reply	[flat|nested] 33+ messages in thread

end of thread, other threads:[~2007-05-14 21:39 UTC | newest]

Thread overview: 33+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-10-18  8:33 [Bug c++/29496] New: _M_invalidate function is not thread-safe in GLIBCXX_DEBUG mode l_heldt at poczta dot onet dot pl
2006-10-18  9:01 ` [Bug libstdc++/29496] " pcarlini at suse dot de
2006-10-18  9:43 ` bkoz at gcc dot gnu dot org
2006-10-18 10:06 ` pcarlini at suse dot de
2006-10-18 10:40 ` pcarlini at suse dot de
2006-10-18 14:40 ` grzes at nec-labs dot com
2006-10-18 15:56 ` bkoz at gcc dot gnu dot org
2006-10-19 13:51 ` l_heldt at poczta dot onet dot pl
2006-10-31 11:12 ` l_heldt at poczta dot onet dot pl
2006-10-31 11:38 ` pcarlini at suse dot de
2006-10-31 11:47 ` pcarlini at suse dot de
2006-10-31 11:49 ` pcarlini at suse dot de
2006-10-31 12:19 ` pcarlini at suse dot de
2006-10-31 13:12 ` l_heldt at poczta dot onet dot pl
2006-10-31 13:23 ` pcarlini at suse dot de
2006-10-31 13:42 ` l_heldt at poczta dot onet dot pl
2006-10-31 13:46 ` pcarlini at suse dot de
2006-10-31 14:30 ` pcarlini at suse dot de
2006-10-31 14:37 ` bkoz at gcc dot gnu dot org
2006-10-31 16:32 ` pcarlini at suse dot de
2006-10-31 17:01 ` pcarlini at suse dot de
2006-10-31 17:24 ` l_heldt at poczta dot onet dot pl
2006-10-31 23:53 ` pcarlini at suse dot de
2006-11-01 22:42 ` pcarlini at suse dot de
2006-11-11 17:32 ` paolo at gcc dot gnu dot org
2006-11-11 17:36 ` pcarlini at suse dot de
2006-12-01  1:07 ` chaoyingfu at gcc dot gnu dot org
2007-02-01 15:57 ` pcarlini at suse dot de
2007-02-01 15:57 ` paolo at gcc dot gnu dot org
2007-05-14 21:36 ` pcarlini at suse dot de
2007-05-14 21:37 ` mmitchel at gcc dot gnu dot org
2007-05-14 21:39 ` pcarlini at suse dot de
2007-05-14 21:39 ` pcarlini at suse dot de

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).