<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div>(A bit of a late comment, apologies.)  </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div class=""><div class="h5">> test/language.support/support.limits/limits/numeric.limits.members/traps.pass.cpp checks that std::numeric_limits<char>::traps is true, but include/limits only sets it to true on intel as far as I can tell:<br>

><br>
> #if __i386__ || __x86_64__<br>
>     static _LIBCPP_CONSTEXPR const bool traps = true;<br>
> #else<br>
>     static _LIBCPP_CONSTEXPR const bool traps = false;<br>
> #endif<br>
><br>
> How is this test supposed to work on arm? Should the test check for __i386__ || __x86_64__ too?<br>
><br>
> Thanks,<br>
> Nico<br>
<br>
</div></div>I don't believe this test would pass on arm as currently configured.  I do not know what std::numeric_limits<char>::traps should be on arm.  But it would be a good thing to find out, fix it if libc++ currently gets the wrong answer, and make test/language.support/support.limits/limits/numeric.limits.members/traps.pass.cpp consistent with whatever was done in include/limits.<br>
</blockquote><div><br></div><div>I had a similar issue with PNaCl where we guarantee that integer division by zero traps. IIUC some runtime libraries always trap on divide by zero, and we modified the ARM code generation to also trap if udiv/sdiv is available. It seems like just adding ARM to the mix may not be the right solution either, but I'm not sure what is since the answer may depend on the runtime library.</div>
</div></div></div>