<p dir="ltr">On 11 Jul 2012 08:18, "Howard Hinnant" <<a href="mailto:hhinnant@apple.com">hhinnant@apple.com</a>> wrote:<br>
><br>
> On Jul 11, 2012, at 6:17 AM, Joerg Sonnenberger <<a href="mailto:joerg@britannica.bec.de">joerg@britannica.bec.de</a>> wrote:<br>
><br>
> > On Wed, Jul 11, 2012 at 09:35:48AM -0000, Richard Smith wrote:<br>
> >> @@ -96,12 +102,9 @@<br>
> >> #ifndef LIBCXXRT<br>
> >> bool uncaught_exception() _NOEXCEPT<br>
> >> {<br>
> >> -#if __APPLE__<br>
> >> +#if __APPLE__ || defined(_LIBCPPABI_VERSION)<br>
> >>     // on Darwin, there is a helper function so __cxa_get_globals is private<br>
> >>     return __cxa_uncaught_exception();<br>
> >> -#elif LIBCXXRT<br>
> >> -    __cxa_eh_globals * globals = __cxa_get_globals();<br>
> >> -    return (globals->uncaughtExceptions != 0);<br>
> >> #else  // __APPLE__<br>
> >>     #warning uncaught_exception not yet implemented<br>
> >>     ::abort();<br>
> ><br>
> > This looks wrong.<br>
> ><br>
> > Joerg<br>
><br>
> I'm also concerned.  Where did the LIBCXXRT implementation go?<br>
><br>
> #elif LIBCXXRT<br>
>     __cxa_eh_globals * globals = __cxa_get_globals();<br>
>     return (globals->uncaughtExceptions != 0);</p>
<p dir="ltr">Note the #ifndef LIBCXXRT at the top of this hunk. This was dead code.</p>
<div class="gmail_quote">On 11 Jul 2012 08:18, "Howard Hinnant" <<a href="mailto:hhinnant@apple.com">hhinnant@apple.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On Jul 11, 2012, at 6:17 AM, Joerg Sonnenberger <<a href="mailto:joerg@britannica.bec.de">joerg@britannica.bec.de</a>> wrote:<br>
<br>
> On Wed, Jul 11, 2012 at 09:35:48AM -0000, Richard Smith wrote:<br>
>> @@ -96,12 +102,9 @@<br>
>> #ifndef LIBCXXRT<br>
>> bool uncaught_exception() _NOEXCEPT<br>
>> {<br>
>> -#if __APPLE__<br>
>> +#if __APPLE__ || defined(_LIBCPPABI_VERSION)<br>
>>     // on Darwin, there is a helper function so __cxa_get_globals is private<br>
>>     return __cxa_uncaught_exception();<br>
>> -#elif LIBCXXRT<br>
>> -    __cxa_eh_globals * globals = __cxa_get_globals();<br>
>> -    return (globals->uncaughtExceptions != 0);<br>
>> #else  // __APPLE__<br>
>>     #warning uncaught_exception not yet implemented<br>
>>     ::abort();<br>
><br>
> This looks wrong.<br>
><br>
> Joerg<br>
<br>
I'm also concerned.  Where did the LIBCXXRT implementation go?<br>
<br>
#elif LIBCXXRT<br>
    __cxa_eh_globals * globals = __cxa_get_globals();<br>
    return (globals->uncaughtExceptions != 0);<br>
<br>
Howard<br>
<br>
<br>
</blockquote></div>