<div>Having the ability to detect the variant seems useful.   The ABI tweaks that ARM uses does become visible to the ABI support library (e.g. __cxa_guard_*).  Having the ability to detect the variant would permit additional flexibility and permit that the runtime validate that the variant matches.</div><div><br></div><div>I don&#39;t have a suggestion on how to represent the variant information however.</div><div><br><div class="gmail_quote"><div>On Fri, Jan 6, 2017 at 7:54 PM Richard Smith &lt;<a href="mailto:richard@metafoo.co.uk">richard@metafoo.co.uk</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="gmail_msg">I think it makes sense to have semi-standard macros for this, and while these aren&#39;t standard features I think SD-6 could be an OK home for them. <div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">Do you anticipate needing any way to detect abi variants (eg, ARM ABI is itanium with tweaks)?</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">I think some kind of version could be useful for both macros, but that could be added later.</div></div><div class="gmail_extra gmail_msg"><br class="gmail_msg"><div class="gmail_quote gmail_msg"></div></div><div class="gmail_extra gmail_msg"><div class="gmail_quote gmail_msg">On 6 Jan 2017 5:45 pm, &quot;Saleem Abdulrasool&quot; &lt;<a href="mailto:compnerd@compnerd.org" class="gmail_msg" target="_blank">compnerd@compnerd.org</a>&gt; wrote:<br type="attribution" class="gmail_msg"></div></div><div class="gmail_extra gmail_msg"><div class="gmail_quote gmail_msg"><blockquote class="m_9188426465653964468quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span style="color:rgb(49,49,49);word-spacing:1px;background-color:rgb(255,255,255)" class="gmail_msg">Hi,</span><div class="m_9188426465653964468m_-3719274509290701854gmail_msg gmail_msg" style="color:rgb(49,49,49);word-spacing:1px"><br class="m_9188426465653964468m_-3719274509290701854gmail_msg gmail_msg"></div><div class="m_9188426465653964468m_-3719274509290701854gmail_msg gmail_msg" style="color:rgb(49,49,49);word-spacing:1px">I was wondering if it would be possible to add a macro to identify the underlying ABI that the C++ runtime is using?  Although itanium is the more popular choice, there are alternative ABIs such as the one which Microsoft uses.  I would propose something like the following:</div><div class="m_9188426465653964468m_-3719274509290701854gmail_msg gmail_msg" style="color:rgb(49,49,49);word-spacing:1px"><br class="m_9188426465653964468m_-3719274509290701854gmail_msg gmail_msg"></div><div class="m_9188426465653964468m_-3719274509290701854gmail_msg gmail_msg" style="color:rgb(49,49,49);word-spacing:1px">__cpp_abi_itanium</div><div class="m_9188426465653964468m_-3719274509290701854gmail_msg gmail_msg" style="color:rgb(49,49,49);word-spacing:1px">__cpp_abi_microsoft</div><div class="m_9188426465653964468m_-3719274509290701854gmail_msg gmail_msg" style="color:rgb(49,49,49);word-spacing:1px"><br class="m_9188426465653964468m_-3719274509290701854gmail_msg gmail_msg"></div><div class="m_9188426465653964468m_-3719274509290701854gmail_msg gmail_msg" style="color:rgb(49,49,49);word-spacing:1px">They would be defined to 1 based on which is being used.  This would allow the implementation to change the behavior based on the ABI being used.</div><div class="m_9188426465653964468m_-3719274509290701854gmail_msg gmail_msg" style="color:rgb(49,49,49);word-spacing:1px"><br class="m_9188426465653964468m_-3719274509290701854gmail_msg gmail_msg"></div><div class="m_9188426465653964468m_-3719274509290701854gmail_msg gmail_msg" style="color:rgb(49,49,49);word-spacing:1px">Thanks!</div><font color="#888888" class="gmail_msg"><div class="m_9188426465653964468m_-3719274509290701854gmail_msg gmail_msg" style="color:rgb(49,49,49);word-spacing:1px"><br class="gmail_msg"></div><div class="m_9188426465653964468m_-3719274509290701854gmail_msg gmail_msg" style="color:rgb(49,49,49);word-spacing:1px">-- </div><div class="m_9188426465653964468m_-3719274509290701854gmail_msg gmail_msg" style="color:rgb(49,49,49);word-spacing:1px">Saleem Abdulrasool</div><div class="m_9188426465653964468m_-3719274509290701854gmail_msg gmail_msg" style="color:rgb(49,49,49);word-spacing:1px">compnerd (at) compnerd (dot) org</div><br><br></font><br class="gmail_msg"></blockquote></div></div><div class="gmail_extra gmail_msg"><div class="gmail_quote gmail_msg"><blockquote class="m_9188426465653964468quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">_______________________________________________<br class="gmail_msg"><br><br>Features mailing list<br class="gmail_msg"><br><br><a href="mailto:Features@isocpp.open-std.org" class="gmail_msg" target="_blank">Features@isocpp.open-std.org</a><br class="gmail_msg"><br><br><a href="http://www.open-std.org/mailman/listinfo/features" rel="noreferrer" class="gmail_msg" target="_blank">http://www.open-std.org/mailman/listinfo/features</a><br class="gmail_msg"><br><br><br class="gmail_msg"></blockquote></div><br class="gmail_msg"></div><br><br></blockquote></div></div>