================
@@ -0,0 +1,33 @@
+// RUN: %clang_cc1 -std=c++98 %s -triple x86_64-linux-gnu -emit-llvm
-disable-llvm-passes -o - -fexceptions -fcxx-exceptions -pedantic-errors |
llvm-cxxfilt -n | FileCheck %s --check-prefixes CHECK
+// RUN: %clang_cc1 -std=c++11 %s -triple x86_64-linux-gnu -emit-llvm
-disable-llvm-passes -o - -fexceptions -fcxx-exceptions -pedantic-errors |
llvm-cxxfilt -n | FileCheck %s --check-prefixes CHECK
+// RUN: %clang_cc1 -std=c++14 %s -triple x86_64-linux-gnu -emit-llvm
-disable-llvm-passes -o - -fexceptions -fcxx-exceptions -pedantic-errors |
llvm-cxxfilt -n | FileCheck %s --check-prefixes CHECK
+// RUN: %clang_cc1 -std=c++17 %s -triple x86_64-linux-gnu -emit-llvm
-disable-llvm-passes -o - -fexceptions -fcxx-exceptions -pedantic-errors |
llvm-cxxfilt -n | FileCheck %s --check-prefixes CHECK
+// RUN: %clang_cc1 -std=c++20 %s -triple x86_64-linux-gnu -emit-llvm
-disable-llvm-passes -o - -fexceptions -fcxx-exceptions -pedantic-errors |
llvm-cxxfilt -n | FileCheck %s --check-prefixes CHECK
+// RUN: %clang_cc1 -std=c++23 %s -triple x86_64-linux-gnu -emit-llvm
-disable-llvm-passes -o - -fexceptions -fcxx-exceptions -pedantic-errors |
llvm-cxxfilt -n | FileCheck %s --check-prefixes CHECK
+// RUN: %clang_cc1 -std=c++2c %s -triple x86_64-linux-gnu -emit-llvm
-disable-llvm-passes -o - -fexceptions -fcxx-exceptions -pedantic-errors |
llvm-cxxfilt -n | FileCheck %s --check-prefixes CHECK
+
+namespace dr210 { // dr210: 2.7
+struct B {
+ B();
+ virtual ~B();
+};
+
+struct D : B {
+ int i;
+ D();
+};
+
+void toss(const B* b) {
+ throw *b;
+}
+
+void f() {
+ const D d;
+ toss(&d);
+}
+
+// CHECK-LABEL: define {{.*}} void @dr210::toss(dr210::B const*)
+// CHECK: call ptr @__cxa_allocate_exception(i64 8)
----------------
Endilll wrote:
I set up `B` and `D` in a way that the former has size of 8 bytes, and the
latter has 16 due to additional `int`.
You think it's still not a good way to ensure that we throw object based on
their static type?
https://github.com/llvm/llvm-project/pull/80823
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits