[Bug libstdc++/52562] [C++11] Most type_info functions not noexcept

2012-04-22 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52562

Paolo Carlini  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED
   Target Milestone|4.7.1   |4.8.0

--- Comment #10 from Paolo Carlini  2012-04-22 
08:04:33 UTC ---
Fixed.


[Bug libstdc++/52562] [C++11] Most type_info functions not noexcept

2012-03-12 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52562

--- Comment #9 from Paolo Carlini  2012-03-12 
16:09:25 UTC ---
Ok, ok, so everything boils down to 50043, as I thought.


[Bug libstdc++/52562] [C++11] Most type_info functions not noexcept

2012-03-12 Thread daniel.kruegler at googlemail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52562

--- Comment #8 from Daniel Krügler  
2012-03-12 15:46:42 UTC ---
(In reply to comment #6)
There exists a compiler problem with noexcept and non-trivial destructor
declarations as described in bug 50043 and in bug 51295. This fix should
automagically ensure that std::type_infos destructor get's an assumed
noexcept(true) exception specification.

The additional library wording exists to ensure that independent of any implied
destructor exception specification of base classes or members of library
internals all destructors of library types needs to behave as noexcept. But
given the current definition of std::type_info there is no reason why an
explicit noexcept(true) specification should be required.


[Bug libstdc++/52562] [C++11] Most type_info functions not noexcept

2012-03-12 Thread paolo at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52562

--- Comment #7 from paolo at gcc dot gnu.org  
2012-03-12 15:12:47 UTC ---
Author: paolo
Date: Mon Mar 12 15:12:40 2012
New Revision: 185235

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=185235
Log:
2012-03-12  Paolo Carlini  

PR libstdc++/52562
* libsupc++/typeinfo (type_info::name, before, operator==,
operator!=): Mark noexcept in C++11 mode.
* libsupc++/tinfo.cc (type_info::operator==): Adjust.
* libsupc++/tinfo2.cc (type_info::before): Likewise.
* testsuite/18_support/type_info/52562.cc: New.


Added:
trunk/libstdc++-v3/testsuite/18_support/type_info/52562.cc
Modified:
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/libsupc++/tinfo.cc
trunk/libstdc++-v3/libsupc++/tinfo2.cc
trunk/libstdc++-v3/libsupc++/typeinfo


[Bug libstdc++/52562] [C++11] Most type_info functions not noexcept

2012-03-12 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52562

--- Comment #6 from Paolo Carlini  2012-03-12 
15:02:51 UTC ---
To clarify, nothing ever changed in libstdc++ as far as the type_info
destructor is concerned. That said, I'm not sure to fully understand why we
have the as-if in p4, or, in other terms, what it does add *beyond* core/1123.


[Bug libstdc++/52562] [C++11] Most type_info functions not noexcept

2012-03-12 Thread daniel.kruegler at googlemail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52562

--- Comment #5 from Daniel Krügler  
2012-03-12 14:06:51 UTC ---
(In reply to comment #3)
> Do I understand correctly that in N3291 the destructor lost the explicit
> noexcept simply because of core/1123? 

I don't know for the reason in the stdlib++ change, but the library removed all
explicit throw()/noexcept() specifications on destructors replacing it by the
single general rule of [res.on.exception.handling] p4:

"Every destructor in the C++ standard library shall behave as if it had a
non-throwing exception specification."

which was introduced during noexcept-ification.


[Bug libstdc++/52562] [C++11] Most type_info functions not noexcept

2012-03-12 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52562

--- Comment #4 from Paolo Carlini  2012-03-12 
13:50:05 UTC ---
Uhm, too much has to be tweaked elsewhere if the destructor is marked noexcept.
Let's leave it alone for now (c++/50043 will reconsider the issue).


[Bug libstdc++/52562] [C++11] Most type_info functions not noexcept

2012-03-12 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52562

--- Comment #3 from Paolo Carlini  2012-03-12 
13:43:35 UTC ---
Do I understand correctly that in N3291 the destructor lost the explicit
noexcept simply because of core/1123? In that case I think that in GCC we
should mark it temporarily noexcept and then remove it in mainline when
c++/50043 will be addressed (I mean to work on it over the next weeks).
4_7-branch will not change anymore.


[Bug libstdc++/52562] [C++11] Most type_info functions not noexcept

2012-03-12 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52562

Paolo Carlini  changed:

   What|Removed |Added

   Target Milestone|--- |4.7.1


[Bug libstdc++/52562] [C++11] Most type_info functions not noexcept

2012-03-12 Thread paolo.carlini at oracle dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52562

Paolo Carlini  changed:

   What|Removed |Added

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

--- Comment #2 from Paolo Carlini  2012-03-12 
12:54:26 UTC ---
Let's do this now, yes, seems straightforward.


[Bug libstdc++/52562] [C++11] Most type_info functions not noexcept

2012-03-12 Thread redi at gcc dot gnu.org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52562

Jonathan Wakely  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2012-03-12
 Ever Confirmed|0   |1

--- Comment #1 from Jonathan Wakely  2012-03-12 
12:02:01 UTC ---
Oops, good catch.