[libcxx-commits] [libcxxabi] 4491bb1 - [libcxxabi] Fix forced_unwind3.pass.cpp compilation error
Aaron Puchert via libcxx-commits
libcxx-commits at lists.llvm.org
Sun Sep 11 11:45:49 PDT 2022
Author: Aaron Puchert
Date: 2022-09-11T20:44:38+02:00
New Revision: 4491bb19df17beeb35cc84f4928fee06854762b3
URL: https://github.com/llvm/llvm-project/commit/4491bb19df17beeb35cc84f4928fee06854762b3
DIFF: https://github.com/llvm/llvm-project/commit/4491bb19df17beeb35cc84f4928fee06854762b3.diff
LOG: [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
Added:
Modified:
libcxxabi/test/forced_unwind3.pass.cpp
Removed:
################################################################################
diff --git a/libcxxabi/test/forced_unwind3.pass.cpp b/libcxxabi/test/forced_unwind3.pass.cpp
index 50f7139428fc7..91bb74caf4098 100644
--- a/libcxxabi/test/forced_unwind3.pass.cpp
+++ b/libcxxabi/test/forced_unwind3.pass.cpp
@@ -47,7 +47,7 @@ struct Stop<R (*)(Args...)> {
// libunwind while _Unwind_Exception_Class in libgcc.
typedef typename std::tuple_element<2, std::tuple<Args...>>::type type;
- static _Unwind_Reason_Code stop(int, _Unwind_Action actions, type, struct _Unwind_Exception*, struct _Unwind_Context*,
+ static _Unwind_Reason_Code stop(int, _Unwind_Action actions, type, _Unwind_Exception*, struct _Unwind_Context*,
void*) {
if (actions & _UA_END_OF_STACK) {
assert(destructorCalled == true);
More information about the libcxx-commits
mailing list