<div dir="ltr">Possible, but <a href="http://llvm.org/viewvc/llvm-project?view=revision&revision=139496">http://llvm.org/viewvc/llvm-project?view=revision&revision=139496</a> suggests that at least Doug thinks that this is working as intended (that's the revision that added the test that got its expectations inverted here).</div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Dec 4, 2014 at 5:00 PM, Richard Smith <span dir="ltr"><<a href="mailto:richard@metafoo.co.uk" target="_blank">richard@metafoo.co.uk</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">This looks like a driver bug; a complete reproducer needs a Darwin triple, in order to get exceptions enabled for Obj-C by default:<div><br></div><div>$ ./build/bin/clang -fno-exceptions -x objective-c++  -target x86_64-apple-darwin11 -v /dev/null<br></div><div>[...]clang-3.6" -cc1 [...] -fexceptions [...]</div><div><br></div><div>The issue is that -fno-exceptions has no effect in Objective-C (look at the exceptionSettings function in Driver/Tools.cpp and note that an explicit -fno-exceptions does *not* turn off ShouldUseExceptionTables; look at addExceptionArgs and note that it overrides that flag anyway if we're on Darwin).</div><div><br></div><div>It seems pretty clear that passing -fno-exceptions to the driver should never result in a -cc1 invocation with -fexceptions enabled...</div></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="h5">On Thu, Dec 4, 2014 at 4:14 PM, Hans Wennborg <span dir="ltr"><<a href="mailto:hans@chromium.org" target="_blank">hans@chromium.org</a>></span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5"><span>On Mon, Oct 27, 2014 at 1:02 PM, David Majnemer<br>
<<a href="mailto:david.majnemer@gmail.com" target="_blank">david.majnemer@gmail.com</a>> wrote:<br>
</span><span>> Author: majnemer<br>
> Date: Mon Oct 27 15:02:19 2014<br>
> New Revision: 220714<br>
<br>
<br>
</span>This broke Chromium:<br>
<a href="http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_ng/builds/11730/steps/compile%20%28with%20patch%29/logs/stdio" target="_blank">http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_ng/builds/11730/steps/compile%20%28with%20patch%29/logs/stdio</a><br>
<span><br>
> --- cfe/trunk/test/Preprocessor/predefined-exceptions.m (original)<br>
> +++ cfe/trunk/test/Preprocessor/predefined-exceptions.m Mon Oct 27 15:02:19 2014<br>
> @@ -1,6 +1,6 @@<br>
>  // RUN: %clang_cc1 -x objective-c -fobjc-exceptions -fexceptions -E -dM %s | FileCheck -check-prefix=CHECK-OBJC-NOCXX %s<br>
>  // CHECK-OBJC-NOCXX: #define OBJC_ZEROCOST_EXCEPTIONS 1<br>
> -// CHECK-OBJC-NOCXX-NOT: #define __EXCEPTIONS 1<br>
> +// CHECK-OBJC-NOCXX: #define __EXCEPTIONS 1<br>
<br>
</span>It seems this reverses the test, and does the opposite of what at<br>
least the code I was trying to compile with -fno-exceptions expects:<br>
<a href="https://code.google.com/p/chromium/codesearch#chromium/src/breakpad/src/client/mac/Framework/Breakpad.mm&l=51" target="_blank">https://code.google.com/p/chromium/codesearch#chromium/src/breakpad/src/client/mac/Framework/Breakpad.mm&l=51</a><br>
</div></div><span class=""><div><div>_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@cs.uiuc.edu" target="_blank">cfe-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
</div></div></span></blockquote></div><br></div>
</blockquote></div><br></div>