[libcxx-commits] [PATCH] D132873: [libcxxabi] Fix forced_unwind3.pass.cpp compilation error

Aaron Puchert via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Mon Aug 29 15:15:05 PDT 2022


aaronpuchert added a comment.

In D132873#3756364 <https://reviews.llvm.org/D132873#3756364>, @mstorsjo wrote:

> If you care to share, it'd be interesting to know under what circumstances you end up with no struct definition.

It came up when packaging the upcoming LLVM 15 for an `armv7hl-suse-linux-gnueabihf` target. In `clang/lib/Headers/unwind.h` we have this:

  #if defined(__arm__) && !(defined(__USING_SJLJ_EXCEPTIONS__) || \
                            defined(__ARM_DWARF_EH__) || defined(__SEH__))
  struct _Unwind_Control_Block;
  typedef struct _Unwind_Control_Block _Unwind_Exception; /* Alias */
  #else
  struct _Unwind_Exception;
  typedef struct _Unwind_Exception _Unwind_Exception;
  #endif

Of course we have `__arm__`, and apparently neither `__USING_SJLJ_EXCEPTIONS__`, `__ARM_DWARF_EH__`, nor `__SEH__`. The latter is unsurprising, for the other two I can only hope they're right.

I didn't observe any test failure on `aarch64`, and I can't say yet whether it happens on `arm6hl` (or actually it seems we use `armv6kz`), because that has more serious issues right now.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D132873



More information about the libcxx-commits mailing list