diff --git a/test/uncaught_exception.pass.sh.cpp b/test/uncaught_exception.pass.sh.cpp
new file mode 100644
index 0000000..ccb10f2
--- /dev/null
+++ b/test/uncaught_exception.pass.sh.cpp
@@ -0,0 +1,34 @@
+//===------------------- uncaught_exceptions.pass.cpp ---------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+// UNSUPPORTED: libcxxabi-no-exceptions
+
+// This tests that libc++abi still provides __cxa_uncaught_exception() for
+// ABI compatibility, even though the Standard doesn't require it to.
+//
+// We need to explicitly link against libc++abi, because libc++ does not
+// re-export this symbol.
+
+// RUN: %build -lc++abi -o %t.exe
+// RUN: %t.exe
+
+#include <cxxabi.h>
+#include <cassert>
+
+// namespace __cxxabiv1 {
+//      extern bool __cxa_uncaught_exception () throw();
+// }
+
+struct A {
+    ~A() { assert( __cxxabiv1::__cxa_uncaught_exception()); }
+};
+
+int main () {
+    try { A a; throw 3; assert(false); }
+    catch (int) {}
+}
diff --git a/test/uncaught_exceptions.pass.cpp b/test/uncaught_exceptions.pass.cpp
index 2a19ca3..f4b2d36 100644
--- a/test/uncaught_exceptions.pass.cpp
+++ b/test/uncaught_exceptions.pass.cpp
@@ -9,29 +9,19 @@
 // UNSUPPORTED: libcxxabi-no-exceptions
 
 #include <cxxabi.h>
-#include <exception>
 #include <cassert>
 
 // namespace __cxxabiv1 {
-//      extern bool          __cxa_uncaught_exception () throw();
-//      extern unsigned int  __cxa_uncaught_exceptions() throw();
+//      extern unsigned int __cxa_uncaught_exceptions() throw();
 // }
 
 struct A {
-    ~A() { assert( __cxxabiv1::__cxa_uncaught_exception()); }
-    };
-
-struct B {
-    B(unsigned cnt) : data_(cnt) {}
-    ~B() { assert( data_ == __cxxabiv1::__cxa_uncaught_exceptions()); }
+    A(unsigned cnt) : data_(cnt) {}
+    ~A() { assert( data_ == __cxxabiv1::__cxa_uncaught_exceptions()); }
     unsigned data_;
-    };
+};
 
-int main ()
-{
-    try { A a; throw 3; assert (false); }
-    catch (int) {}
-    
-    try { B b(1); throw 3; assert (false); }
+int main () {
+    try { A a(1); throw 3; assert(false); }
     catch (int) {}
 }
