<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, Jun 11, 2014 at 3:29 PM, Alp Toker <span dir="ltr"><<a href="mailto:alp@nuanti.com" target="_blank">alp@nuanti.com</a>></span> wrote:<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=""><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">
The problem with the __EXCEPTIONS macro was that exceptions don't work in the MSVC ABI yet.<br>
</blockquote>
<br></div>
If we start defining other macros, especially well-known GNU ones, there's a risk that random bits of GCC-specific code will get enabled in portable headers..</blockquote><div><br></div><div>That's the idea, since I expect they will more or less work out of the box.  The header checking for __EXCEPTIONS probably would've done the right thing if our exception support actually worked.</div>
<div> </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="">
<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">
Once they do work, I would like to define __EXCEPTIONS so that portable headers that detect the GCC macro will Just Work.<br>
</blockquote>
<br></div>
If an in-between mode like that is something you want (and I suspect it *isn't* for most of our users), how about holding on a couple of days for the prospective -fms-compatibility -fgcc-compatibility?<br>
<br>
Adding these unconditionally now just adds more work to make the switch.</blockquote><div><br></div><div>I just want the mode that makes the most code compile with the least amount of user effort.  :)</div><div><br></div>
<div>What kind of stuff would you put under -fgcc-compatibility?  If you put GCC __builtins under that flag, I suspect that lots of portability headers that check for __clang__ will stop building.  I don't want to tell users to go to the trouble of using __has_builtin if the following was already checked in somewhere:</div>
<div><br></div><div>#if defined(__GNUC__) || defined(__clang__)</div><div>#define LIKELY(x) __builtin_expect((x), true)</div><div>#define READONLY __attribute__((__pure__))<br></div><div>#else</div><div>#define LIKELY(x)</div>
<div>#define READONLY<br></div><div>#endif</div><div><br></div><div>There are a bunch of gcc builtins and attributes like this that we've essentially adopted as the canonical spelling.  If we can draw the line for -fgcc-compatibility to allow these kinds of things, then I'm on board.  Sound good?</div>
</div></div></div>