File tree Expand file tree Collapse file tree 3 files changed +37
-2
lines changed Expand file tree Collapse file tree 3 files changed +37
-2
lines changed Original file line number Diff line number Diff line change
1
+ // RUN: %clang_cc1 -std=c++98 %s -triple x86_64-linux-gnu -emit-llvm -o - -fexceptions -fcxx-exceptions -pedantic-errors | llvm-cxxfilt -n | FileCheck %s --check-prefixes CHECK
2
+ // RUN: %clang_cc1 -std=c++11 %s -triple x86_64-linux-gnu -emit-llvm -o - -fexceptions -fcxx-exceptions -pedantic-errors | llvm-cxxfilt -n | FileCheck %s --check-prefixes CHECK
3
+ // RUN: %clang_cc1 -std=c++14 %s -triple x86_64-linux-gnu -emit-llvm -o - -fexceptions -fcxx-exceptions -pedantic-errors | llvm-cxxfilt -n | FileCheck %s --check-prefixes CHECK
4
+ // RUN: %clang_cc1 -std=c++17 %s -triple x86_64-linux-gnu -emit-llvm -o - -fexceptions -fcxx-exceptions -pedantic-errors | llvm-cxxfilt -n | FileCheck %s --check-prefixes CHECK
5
+ // RUN: %clang_cc1 -std=c++20 %s -triple x86_64-linux-gnu -emit-llvm -o - -fexceptions -fcxx-exceptions -pedantic-errors | llvm-cxxfilt -n | FileCheck %s --check-prefixes CHECK
6
+ // RUN: %clang_cc1 -std=c++23 %s -triple x86_64-linux-gnu -emit-llvm -o - -fexceptions -fcxx-exceptions -pedantic-errors | llvm-cxxfilt -n | FileCheck %s --check-prefixes CHECK
7
+ // RUN: %clang_cc1 -std=c++2c %s -triple x86_64-linux-gnu -emit-llvm -o - -fexceptions -fcxx-exceptions -pedantic-errors | llvm-cxxfilt -n | FileCheck %s --check-prefixes CHECK
8
+
9
+ #if __cplusplus == 199711L
10
+ #define NOTHROW throw ()
11
+ #else
12
+ #define NOTHROW noexcept (true )
13
+ #endif
14
+
15
+ namespace dr593 { // dr593: 2.8
16
+
17
+ void f ();
18
+ void fence () NOTHROW;
19
+
20
+ struct A {
21
+ ~A () try {
22
+ f ();
23
+ } catch (...) {
24
+ fence ();
25
+ }
26
+ };
27
+
28
+ void g () {
29
+ A ();
30
+ }
31
+
32
+ } // namespace dr593
33
+
34
+ // CHECK: call void @dr593::fence()()
35
+ // CHECK-NEXT: invoke void @__cxa_rethrow()
Original file line number Diff line number Diff line change @@ -1098,7 +1098,7 @@ namespace dr591 { // dr591: no
1098
1098
}
1099
1099
1100
1100
// dr592: na
1101
- // dr593 needs an IRGen test.
1101
+ // dr593 is in dr593.cpp
1102
1102
// dr594: na
1103
1103
1104
1104
namespace dr595 { // dr595: dup 1330
Original file line number Diff line number Diff line change @@ -3600,7 +3600,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
3600
3600
<td><a href="https://cplusplus.github.io/CWG/issues/593.html">593</a></td>
3601
3601
<td>NAD</td>
3602
3602
<td>Falling off the end of a destructor's <I>function-try-block</I> handler</td>
3603
- <td class="unknown " align="center">Unknown </td>
3603
+ <td class="full " align="center">Clang 2.8 </td>
3604
3604
</tr>
3605
3605
<tr id="594">
3606
3606
<td><a href="https://cplusplus.github.io/CWG/issues/594.html">594</a></td>
You can’t perform that action at this time.
0 commit comments