This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: profile mode fix


On 01/29/2014 09:18 PM, Jonathan Wakely wrote:
On 29 January 2014 20:06, FranÃois Dumont <frs.dumont@gmail.com> wrote:
     Here is the patch that simply consider 55083 as not supported except in
normal mode. This is a temporary workaround for 4.9 release so I prefer not
to introduce a dg-profile-mode-unsupported or something like that. Those
tests will simply appear as not supported for debug and parallel mode even
if they are, not a big deal, no ?
But with that change we don't find out if those tests regress in debug mode  :-(

I prefer to just add noexcept to the profile mode move constructor,
and if it throws then the program terminates.  If you run out of
memory when using profile mode then terminating seems reasonable to
me;  I don't think people are using profile mode to test how their
programs handle std::bad_alloc.

Put another way, if your program runs out of memory *because* of
profile mode, then the results of the profiling will not give you
useful data about how your program usually behaves. Using profile mode
has altered the behaviour of the program.  So in that situation simply
calling std::terminate() makes sense.

    So I let you apply your patch with your comment.

Do you think then that using a special allocator implementation with a one element cache to make sure that a std::unordered_map insert preceded by an erase won't throw could be interested ? If not I will simply remove it from my TODOs list.

FranÃois


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]