Skip to content

Commit 119eeec

Browse files
committed
[cxx-interop] Add a test for interface generation of a module requiring C++20
rdar://148840350
1 parent 961cfb8 commit 119eeec

File tree

3 files changed

+17
-0
lines changed

3 files changed

+17
-0
lines changed
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
module UsesCXX20 {
2+
header "uses-cxx20.h"
3+
export *
4+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#include <span>
2+
3+
using MySpanOfInt = std::span<int>;
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
// First, check that we error out for older C++ standards.
2+
// RUN: not %sourcekitd-test -req=interface-gen -module UsesCXX20 -- -cxx-interoperability-mode=default -Xfrontend -disable-implicit-concurrency-module-import -Xfrontend -disable-implicit-string-processing-module-import -I %S/Inputs -target %target-triple -sdk %sdk
3+
4+
// Now make sure we emit the correct interface for std::span if C++20 is enabled.
5+
// RUN: %sourcekitd-test -req=interface-gen -module UsesCXX20 -- -cxx-interoperability-mode=default -Xfrontend -disable-implicit-concurrency-module-import -Xfrontend -disable-implicit-string-processing-module-import -I %S/Inputs -target %target-triple -sdk %sdk -Xcc -std=c++20 | %FileCheck %s
6+
7+
// FIXME: older libstdc++ version on Swift CI does not support C++20
8+
// UNSUPPORTED: OS=linux-gnu
9+
10+
// CHECK: public typealias MySpanOfInt = std.span<

0 commit comments

Comments
 (0)