2014-05-17 Marc Glisse <marc.glisse@inria.fr>
* libsupc++/new_op.cc: Factor the calls to malloc, use __builtin_expect.
* libsupc++/new_opnt.cc: Likewise.
From-SVN: r210560
+2014-05-17 Marc Glisse <marc.glisse@inria.fr>
+
+ * libsupc++/new_op.cc: Factor the calls to malloc, use __builtin_expect.
+ * libsupc++/new_opnt.cc: Likewise.
+
2014-05-17 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/60966
/* malloc (0) is unpredictable; avoid it. */
if (sz == 0)
sz = 1;
- p = (void *) malloc (sz);
- while (p == 0)
+
+ while (__builtin_expect ((p = malloc (sz)) == 0, false))
{
new_handler handler = std::get_new_handler ();
if (! handler)
_GLIBCXX_THROW_OR_ABORT(bad_alloc());
handler ();
- p = (void *) malloc (sz);
}
return p;
/* malloc (0) is unpredictable; avoid it. */
if (sz == 0)
sz = 1;
- p = (void *) malloc (sz);
- while (p == 0)
+
+ while (__builtin_expect ((p = malloc (sz)) == 0, false))
{
new_handler handler = std::get_new_handler ();
if (! handler)
{
return 0;
}
-
- p = (void *) malloc (sz);
}
return p;