Skip to content

Commit 43eed0c

Browse files
Merge pull request #69350 from kateinoigakukun/pr-cff728253211b9f0b6cac62756def36ae238e93d
[c-interop] Fix @extern attribute printing for module interface
2 parents 93a09d6 + 37c71ed commit 43eed0c

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

lib/AST/Attr.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1154,9 +1154,10 @@ bool DeclAttribute::printImpl(ASTPrinter &Printer, const PrintOptions &Options,
11541154
Printer << "wasm";
11551155
// @extern(wasm) always has names.
11561156
Printer << ", module: \"" << *Attr->ModuleName << "\"";
1157-
Printer << ", name: \"" << *Attr->Name << "\")";
1157+
Printer << ", name: \"" << *Attr->Name << "\"";
11581158
break;
11591159
}
1160+
Printer << ")";
11601161
break;
11611162
}
11621163

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
// RUN: %empty-directory(%t)
2+
// RUN: %target-swift-emit-module-interface(%t/Library.swiftinterface) %s -enable-experimental-feature Extern -module-name Library
3+
// RUN: %target-swift-typecheck-module-from-interface(%t/Library.swiftinterface) -enable-experimental-feature Extern -module-name Library
4+
// RUN: %target-swift-typecheck-module-from-interface(%t/Library.swiftinterface) -module-name Library
5+
// RUN: %FileCheck %s < %t/Library.swiftinterface
6+
7+
// CHECK: #if compiler(>=5.3) && $Extern
8+
// CHECK-NEXT: @extern(c) public func externalCFunc()
9+
// CHECK-NEXT: #endif
10+
@extern(c) public func externalCFunc()
11+
12+
// CHECK: #if compiler(>=5.3) && $Extern
13+
// CHECK-NEXT: @extern(c, "renamedCFunc") public func externalRenamedCFunc()
14+
// CHECK-NEXT: #endif
15+
@extern(c, "renamedCFunc") public func externalRenamedCFunc()
16+
17+
// CHECK: #if compiler(>=5.3) && $Extern
18+
// CHECK-NEXT: @extern(wasm, module: "m", name: "f") public func wasmImportedFunc()
19+
// CHECK-NEXT: #endif
20+
@extern(wasm, module: "m", name: "f") public func wasmImportedFunc()

0 commit comments

Comments
 (0)