[libcxx-commits] [PATCH] D103947: [libcxx] Fix using the vcruntime ABI with _HAS_EXCEPTIONS=0 defined

Petr Hosek via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Mon Jul 26 22:14:48 PDT 2021


phosek added a comment.

In D103947#2812840 <https://reviews.llvm.org/D103947#2812840>, @mstorsjo wrote:

> Updated with CI testing hooked up. Unfortunately, things don't work quite cleanly:
>
> - There's a case of spurious warnings about misleading indentation when built with MSVC, when some braces are ifdeffed out, I filed that as PR50676. As other warnings are added after LIBCXX_TEST_COMPILER_FLAGS, we can't just pass -Wno-misleading-indentation there, because it ends up overridden by e.g. -Wall which is added later. This is hackily worked around by unconditionally adding -Wno-misleading-indentation in the list of global warning flags.
>
> - When built with vcruntime exceptions normally, but when used without vcruntime exceptions from some translation units, those translation units see a different declaration of e.g. std::runtime_error, and the DLL doesn't export e.g. runtime_error::what(). I dunno what's the cleanest fix for this (one probably would need to use different fully-inline declarations of those classes for those cases). This causes around 28 test failures at the moment.
>
> I'm not sure if I'm interested in pouring more effort into this configuration right now, but this at least shows the current state of things and what has to be worked on for it to really work properly.
>
> I.e., feel free to pick up and continue on this patch.

I have implemented the alternative approach, that is `#ifdef`ing out all uses of exception/error in D103947 <https://reviews.llvm.org/D103947>.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D103947/new/

https://reviews.llvm.org/D103947



More information about the libcxx-commits mailing list