Hello Howard,<div><br></div><div>It did happen on ARM and x86_32, and I guess all targets have this bug.</div><div>This bug behaves depending on the upcoming entry, might be nothing, infinite loop, other errors...</div><div>
<br></div><div>Thanks.</div><div class="gmail_extra"><br><br><div class="gmail_quote">2012/11/2 Howard Hinnant <span dir="ltr"><<a href="mailto:hhinnant@apple.com" target="_blank">hhinnant@apple.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="HOEnZb"><div class="h5">On Nov 1, 2012, at 5:32 AM, Wen-Han Gu (¨¦¨Z¿«) <<a href="mailto:wenhan.gu@gmail.com">wenhan.gu@gmail.com</a>> wrote:<br>
<br>
> Dear cfe-commits and libcxxabi developers,<br>
><br>
> I hit a bug in libc++abi when testing on a gcc testsuite sample.<br>
> This can be fixed simply by this small patch.<br>
> Please help review it. Thanks in advance!<br>
><br>
><br>
> Index: src/cxa_personality.cpp<br>
> ===================================================================<br>
> --- src/cxa_personality.cpp     (revision 167216)<br>
> +++ src/cxa_personality.cpp     (working copy)<br>
> @@ -552,7 +552,7 @@<br>
>      const uint8_t* callSiteTableEnd = callSiteTableStart + callSiteTableLength;<br>
>      const uint8_t* actionTableStart = callSiteTableEnd;<br>
>      const uint8_t* callSitePtr = callSiteTableStart;<br>
> -    while (true)<br>
> +    while (callSitePtr < callSiteTableEnd)<br>
>      {<br>
>          // There is one entry per call site.<br>
>  #if !__arm__<br>
> @@ -782,7 +782,12 @@<br>
>              call_terminate(native_exception, unwind_exception);<br>
>          }<br>
>  #endif  // !__arm__<br>
> -    }  // there is no break out of this loop, only return<br>
> +    }  // there might be some tricky cases which break out of this loop<br>
> +<br>
> +    // If we are here, it means no eh table entry specify how to handle<br>
> +    // this exception. For example, gcc testsuites eh23 at<br>
> +    // <gcc>/gcc/testsuite/g++.old-deja/g++.mike/eh23.C<br>
> +    call_terminate(native_exception, unwind_exception);<br>
>  }<br>
><br>
>  // public API<br>
<br>
</div></div>Thanks for the patch.  Was this on __arm__ and was the symptom an infinite loop?<br>
<span class="HOEnZb"><font color="#888888"><br>
Howard<br>
<br>
<br>
</font></span></blockquote></div><br><br clear="all"><div><br></div>-- <br>Best regards,<div>Wen-Han Gu (Nowar)</div><br>
</div>