File tree Expand file tree Collapse file tree 3 files changed +31
-1
lines changed Expand file tree Collapse file tree 3 files changed +31
-1
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 | FileCheck %s --check-prefixes CHECK,CXX98
2
+ // RUN: %clang_cc1 -std=c++11 %s -triple x86_64-linux-gnu -emit-llvm -o - -fexceptions -fcxx-exceptions -pedantic-errors | llvm-cxxfilt | FileCheck %s --check-prefixes CHECK,SINCE-CXX11
3
+ // RUN: %clang_cc1 -std=c++14 %s -triple x86_64-linux-gnu -emit-llvm -o - -fexceptions -fcxx-exceptions -pedantic-errors | llvm-cxxfilt | FileCheck %s --check-prefixes CHECK,SINCE-CXX11
4
+ // RUN: %clang_cc1 -std=c++17 %s -triple x86_64-linux-gnu -emit-llvm -o - -fexceptions -fcxx-exceptions -pedantic-errors | llvm-cxxfilt | FileCheck %s --check-prefixes CHECK,SINCE-CXX11
5
+ // RUN: %clang_cc1 -std=c++20 %s -triple x86_64-linux-gnu -emit-llvm -o - -fexceptions -fcxx-exceptions -pedantic-errors | llvm-cxxfilt | FileCheck %s --check-prefixes CHECK,SINCE-CXX11
6
+ // RUN: %clang_cc1 -std=c++23 %s -triple x86_64-linux-gnu -emit-llvm -o - -fexceptions -fcxx-exceptions -pedantic-errors | llvm-cxxfilt | FileCheck %s --check-prefixes CHECK,SINCE-CXX11
7
+ // RUN: %clang_cc1 -std=c++2c %s -triple x86_64-linux-gnu -emit-llvm -o - -fexceptions -fcxx-exceptions -pedantic-errors | llvm-cxxfilt | FileCheck %s --check-prefixes CHECK,SINCE-CXX11
8
+
9
+ namespace dr1807 { // dr1807: 3.0
10
+ struct S {
11
+ S () {}
12
+ ~S () {}
13
+ };
14
+
15
+ void f () {
16
+ S s[3 ];
17
+ }
18
+ }
19
+
20
+ // CHECK-LABEL: define dso_local void @dr1807::f()
21
+ // CHECK: invoke void @dr1807::S::S(){{.+}}
22
+ // CHECK-NEXT: {{.+}} unwind label %lpad
23
+ // CHECK-LABEL: lpad:
24
+ // CHECK: br {{.+}}, label {{.+}}, label %arraydestroy.body
25
+ // CHECK-LABEL: arraydestroy.body:
26
+ // CHECK: [[ARRAYDESTROY_ELEMENT:%.*]] = getelementptr {{.+}}, i64 -1
27
+ // CXX98-NEXT: invoke void @dr1807::S::~S()({{.*}}[[ARRAYDESTROY_ELEMENT]])
28
+ // SINCE-CXX11-NEXT: call void @dr1807::S::~S()({{.*}}[[ARRAYDESTROY_ELEMENT]])
Original file line number Diff line number Diff line change @@ -164,6 +164,8 @@ void A<double, U>::C<V>::f4() {
164
164
}
165
165
} // namespace dr1804
166
166
167
+ // dr1807 is in dr1807.cpp
168
+
167
169
namespace dr1812 { // dr1812: no
168
170
// NB: dup 1710
169
171
#if __cplusplus >= 201103L
Original file line number Diff line number Diff line change @@ -10650,7 +10650,7 @@ <h2 id="cxxdr">C++ defect report implementation status</h2>
10650
10650
<td><a href="https://cplusplus.github.io/CWG/issues/1807.html">1807</a></td>
10651
10651
<td>CD4</td>
10652
10652
<td>Order of destruction of array elements after an exception</td>
10653
- <td class="unknown " align="center">Unknown </td>
10653
+ <td class="full " align="center">Clang 3.0 </td>
10654
10654
</tr>
10655
10655
<tr class="open" id="1808">
10656
10656
<td><a href="https://cplusplus.github.io/CWG/issues/1808.html">1808</a></td>
You can’t perform that action at this time.
0 commit comments