[Bug libstdc++/37477] [Core 475] std::uncaught_exception() returns wrong value after entering terminate() in some cases

2011-06-15 Thread maxime at altribe dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37477

--- Comment #7 from Maxime van Noppen maxime at altribe dot org 2011-06-15 
14:15:38 UTC ---
Created attachment 24538
  -- http://gcc.gnu.org/bugzilla/attachment.cgi?id=24538
Exhibits uncaught return values


[Bug libstdc++/37477] [Core 475] std::uncaught_exception() returns wrong value after entering terminate() in some cases

2011-06-15 Thread maxime at altribe dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37477

Maxime van Noppen maxime at altribe dot org changed:

   What|Removed |Added

 CC||maxime at altribe dot org

--- Comment #8 from Maxime van Noppen maxime at altribe dot org 2011-06-15 
14:16:38 UTC ---
I just attached a testcase which seems likely related to this bug. Tested with
g++ (GCC) 4.6.0 20110603 on x86_64 linux.


[Bug middle-end/44164] New: [4.5.0] Aliasing bug triggered by Boost.Bind/Boost.Function

2010-05-17 Thread maxime at altribe dot org
Using Boost.Bind/Boost.Function triggers what seems to be an aliasing bug with
G++ 4.5.0. The minimal test case (including Boost.Bind and Boost.Function) is
attached.

It works and no errors are detected by valgrind with either flags :
 -O0
 -O1
 -O2 -fno-inline
 -O2 -fno-strict-aliasing
 -Os

It crashes whith either flags and valgrind detects invalid reads :
 -02
 -O3

Everything works fine with gcc version 4.4.3 20100316.

There are no warnings using '-W -Wall -Wextra'.

Original bug report to boost mailing list :
 http://lists.boost.org/boost-users/2010/05/59020.php


-- 
   Summary: [4.5.0] Aliasing bug triggered by
Boost.Bind/Boost.Function
   Product: gcc
   Version: 4.5.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: maxime at altribe dot org
 GCC build triplet: ../configure --prefix=/usr --enable-
languages=c,c++,fortran,objc
  GCC host triplet: x86_64-unknown-linux-gnu
GCC target triplet: x86_64-unknown-linux-gnu


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



[Bug middle-end/44164] [4.5.0] Aliasing bug triggered by Boost.Bind/Boost.Function

2010-05-17 Thread maxime at altribe dot org


--- Comment #1 from maxime at altribe dot org  2010-05-17 08:31 ---
Created an attachment (id=20677)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=20677action=view)
Test case including Boost.Bind and Boost.Function.

I had to gzip the .ii file because of size limit.


-- 


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



[Bug middle-end/44164] [4.5 Regression] Aliasing bug triggered by Boost.Bind/Boost.Function

2010-05-17 Thread maxime at altribe dot org


--- Comment #4 from maxime at altribe dot org  2010-05-17 13:10 ---
(In reply to comment #3)
 The boost folks may be able to tell if they at any place copy a
 function_buffer object via the assignment operator.

It seems so. From Peter Dimov :

 [...] after stepping through the code, it turns out that function_buffer is
 indeed assigned directly, due to the fact that __has_trivial_copy and
 __has_trivial_destructor report true for the stored function object.


-- 


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