[libcxxabi] Fix forced_unwind3.pass.cpp compilation error
authorAaron Puchert <aaronpuchert@alice-dsl.net>
Sun, 11 Sep 2022 18:44:36 +0000 (20:44 +0200)
committerAaron Puchert <aaronpuchert@alice-dsl.net>
Sun, 11 Sep 2022 18:44:38 +0000 (20:44 +0200)
commit4491bb19df17beeb35cc84f4928fee06854762b3
tree5070107f4767808f54d41140b3f0a5c8f16a0400
parente4f64ad4e38d296948b03f001fba5c2bed056f43
[libcxxabi] Fix forced_unwind3.pass.cpp compilation error

Under some circumstances there is no struct _Unwind_Exception, it's just
an alias to another struct. This would result in an error like this:

libcxxabi/test/forced_unwind3.pass.cpp:50:77: error: typedef '_Unwind_Exception' cannot be referenced with a struct specifier
  static _Unwind_Reason_Code stop(int, _Unwind_Action actions, type, struct _Unwind_Exception*, struct _Unwind_Context*,
                                                                            ^
<...>/lib/clang/15.0.0/include/unwind.h:68:38: note: declared here
typedef struct _Unwind_Control_Block _Unwind_Exception; /* Alias */
                                     ^

This seems to have been an issue since the test was first added in
D109856, except that it didn't surface with Clang 14 because the code
is filtered out by the preprocessor if `__clang_major__ < 15`.

Reviewed By: danielkiss, mstorsjo, #libc_abi, ldionne

Differential Revision: https://reviews.llvm.org/D132873
libcxxabi/test/forced_unwind3.pass.cpp