Skip to content

Commit 6947993

Browse files
[c-interop] Rename @_extern to @extern
Now the feature is gated by experimental feature flag. It's not shipped in any language release, so this rename should be fine.
1 parent 03ed46a commit 6947993

26 files changed

+116
-114
lines changed

docs/ReferenceGuides/UnderscoredAttributes.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -437,19 +437,19 @@ the export name.
437437

438438
It's the equivalent of clang's `__attribute__((export_name))`.
439439

440-
## `@_extern(<language>)`
440+
## `@extern(<language>)`
441441

442442
Indicates that a particular declaration should be imported
443443
from the external environment.
444444

445-
### `@_extern(wasm, module: <"moduleName">, name: <"fieldName">)`
445+
### `@extern(wasm, module: <"moduleName">, name: <"fieldName">)`
446446

447447
Indicates that a particular declaration should be imported
448448
through WebAssembly's import interface.
449449

450450
It's the equivalent of clang's `__attribute__((import_module("module"), import_name("field")))`.
451451

452-
### `@_extern(c, [, <"cName">])`
452+
### `@extern(c, [, <"cName">])`
453453

454454
Indicates that a particular declaration should refer to a
455455
C declaration with the given name. If the optional "cName"
@@ -462,7 +462,7 @@ C declarations from Swift, while `@_cdecl` is used to define
462462
Swift functions that can be referenced from C.
463463

464464
Also similar to `@_silgen_name`, but a function declared with
465-
`@_extern(c)` is assumed to use the C ABI, while `@_silgen_name`
465+
`@extern(c)` is assumed to use the C ABI, while `@_silgen_name`
466466
assumes the Swift ABI.
467467

468468
## `@_fixed_layout`

include/swift/AST/Attr.def

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -420,7 +420,7 @@ DECL_ATTR(_section, Section,
420420
DECL_ATTR(_rawLayout, RawLayout,
421421
OnStruct | UserInaccessible | ABIBreakingToAdd | ABIBreakingToRemove | APIStableToAdd | APIStableToRemove,
422422
146)
423-
DECL_ATTR(_extern, Extern,
423+
DECL_ATTR(extern, Extern,
424424
OnFunc | AllowMultipleAttributes | ABIBreakingToAdd | ABIBreakingToRemove | APIStableToAdd | APIStableToRemove,
425425
147)
426426
SIMPLE_DECL_ATTR(_nonEscapable, NonEscapable,

include/swift/AST/Attr.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2339,7 +2339,7 @@ class ExposeAttr : public DeclAttribute {
23392339
}
23402340
};
23412341

2342-
/// Define the `@_extern` attribute, used to import external declarations in
2342+
/// Define the `@extern` attribute, used to import external declarations in
23432343
/// the specified way to interoperate with Swift.
23442344
class ExternAttr : public DeclAttribute {
23452345
SourceLoc LParenLoc, RParenLoc;
@@ -2364,7 +2364,7 @@ class ExternAttr : public DeclAttribute {
23642364
const llvm::Optional<StringRef> ModuleName;
23652365

23662366
/// The declaration name to import
2367-
/// std::nullopt if the declaration name is not specified with @_extern(c)
2367+
/// std::nullopt if the declaration name is not specified with @extern(c)
23682368
const llvm::Optional<StringRef> Name;
23692369

23702370
SourceLoc getLParenLoc() const { return LParenLoc; }

include/swift/AST/AttrKind.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ enum class ExposureKind: uint8_t {
112112
enum : unsigned { NumExposureKindBits =
113113
countBitsUsed(static_cast<unsigned>(ExposureKind::Last_ExposureKind)) };
114114

115-
/// This enum represents the possible values of the @_extern attribute.
115+
/// This enum represents the possible values of the @extern attribute.
116116
enum class ExternKind: uint8_t {
117117
/// Reference an externally defined C function.
118118
/// The imported function has C function pointer representation,

include/swift/AST/DiagnosticsParse.def

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1868,7 +1868,7 @@ ERROR(attr_rawlayout_expected_params,none,
18681868
"expected %1 argument after %0 argument in @_rawLayout attribute", (StringRef, StringRef))
18691869

18701870
ERROR(attr_extern_expected_label,none,
1871-
"expected %0 argument to @_extern attribute", (StringRef))
1871+
"expected %0 argument to @extern attribute", (StringRef))
18721872
//------------------------------------------------------------------------------
18731873
// MARK: Generics parsing diagnostics
18741874
//------------------------------------------------------------------------------

include/swift/AST/DiagnosticsSema.def

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1871,17 +1871,17 @@ ERROR(section_not_at_top_level,none,
18711871
ERROR(section_empty_name,none,
18721872
"@_section section name cannot be empty", ())
18731873

1874-
// @_extern
1874+
// @extern
18751875
ERROR(attr_extern_experimental,none,
1876-
"@_extern requires '-enable-experimental-feature Extern'", ())
1876+
"@extern requires '-enable-experimental-feature Extern'", ())
18771877
ERROR(extern_not_at_top_level_func,none,
1878-
"@_extern attribute can only be applied to global functions", ())
1878+
"@extern attribute can only be applied to global functions", ())
18791879
ERROR(extern_empty_c_name,none,
1880-
"expected non-empty C name in @_extern attribute", ())
1880+
"expected non-empty C name in @extern attribute", ())
18811881
ERROR(extern_only_non_other_attr,none,
1882-
"@_extern attribute cannot be applied to an '@%0' declaration", (StringRef))
1882+
"@extern attribute cannot be applied to an '@%0' declaration", (StringRef))
18831883
WARNING(extern_c_maybe_invalid_name, none,
1884-
"C name '%0' may be invalid; explicitly specify the name in @_extern(c) to suppress this warning",
1884+
"C name '%0' may be invalid; explicitly specify the name in @extern(c) to suppress this warning",
18851885
(StringRef))
18861886

18871887
ERROR(c_func_variadic, none,

include/swift/Basic/Features.def

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,7 @@ EXPERIMENTAL_FEATURE(StructLetDestructuring, true)
256256
/// lifetime-dependent results.
257257
EXPERIMENTAL_FEATURE(NonEscapableTypes, false)
258258

259-
/// Enable the `@_extern` attribute.
259+
/// Enable the `@extern` attribute.
260260
EXPERIMENTAL_FEATURE(Extern, true)
261261

262262
#undef EXPERIMENTAL_FEATURE_EXCLUDED_FROM_MODULE_INTERFACE

include/swift/Parse/Parser.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1095,7 +1095,7 @@ class Parser {
10951095
ParserResult<DifferentiableAttr> parseDifferentiableAttribute(SourceLoc AtLoc,
10961096
SourceLoc Loc);
10971097

1098-
/// Parse the @_extern attribute.
1098+
/// Parse the @extern attribute.
10991099
bool parseExternAttribute(DeclAttributes &Attributes, bool &DiscardAttribute,
11001100
StringRef AttrName, SourceLoc AtLoc, SourceLoc Loc);
11011101

include/swift/SIL/SILFunction.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,7 @@ class SILFunction
303303
/// empty.
304304
StringRef WasmExportName;
305305

306-
/// Name of a Wasm import module and field if @_extern(wasm) attribute
306+
/// Name of a Wasm import module and field if @extern(wasm) attribute
307307
llvm::Optional<std::pair<StringRef, StringRef>> WasmImportModuleAndField;
308308

309309
/// Has value if there's a profile for this function
@@ -1293,14 +1293,14 @@ class SILFunction
12931293
StringRef wasmExportName() const { return WasmExportName; }
12941294
void setWasmExportName(StringRef value) { WasmExportName = value; }
12951295

1296-
/// Return Wasm import module name if @_extern(wasm) was used otherwise empty
1296+
/// Return Wasm import module name if @extern(wasm) was used otherwise empty
12971297
StringRef wasmImportModuleName() const {
12981298
if (WasmImportModuleAndField)
12991299
return WasmImportModuleAndField->first;
13001300
return StringRef();
13011301
}
13021302

1303-
/// Return Wasm import field name if @_extern(wasm) was used otherwise empty
1303+
/// Return Wasm import field name if @extern(wasm) was used otherwise empty
13041304
StringRef wasmImportFieldName() const {
13051305
if (WasmImportModuleAndField)
13061306
return WasmImportModuleAndField->second;

lib/AST/Attr.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1141,7 +1141,7 @@ bool DeclAttribute::printImpl(ASTPrinter &Printer, const PrintOptions &Options,
11411141

11421142
case DAK_Extern: {
11431143
auto *Attr = cast<ExternAttr>(this);
1144-
Printer.printAttrName("@_extern");
1144+
Printer.printAttrName("@extern");
11451145
Printer << "(";
11461146
switch (Attr->getExternKind()) {
11471147
case ExternKind::C:
@@ -1152,7 +1152,7 @@ bool DeclAttribute::printImpl(ASTPrinter &Printer, const PrintOptions &Options,
11521152
break;
11531153
case ExternKind::Wasm:
11541154
Printer << "wasm";
1155-
// @_extern(wasm) always has names.
1155+
// @extern(wasm) always has names.
11561156
Printer << ", module: \"" << *Attr->ModuleName << "\"";
11571157
Printer << ", name: \"" << *Attr->Name << "\")";
11581158
break;
@@ -1731,7 +1731,7 @@ StringRef DeclAttribute::getAttrName() const {
17311731
case DAK_RawLayout:
17321732
return "_rawLayout";
17331733
case DAK_Extern:
1734-
return "_extern";
1734+
return "extern";
17351735
}
17361736
llvm_unreachable("bad DeclAttrKind");
17371737
}

lib/Parse/ParseDecl.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1436,7 +1436,7 @@ bool Parser::parseExternAttribute(DeclAttributes &Attributes,
14361436
SourceLoc AtLoc, SourceLoc Loc) {
14371437
SourceLoc lParenLoc = Tok.getLoc(), rParenLoc;
14381438

1439-
// Parse @_extern(<language>, ...)
1439+
// Parse @extern(<language>, ...)
14401440
if (!consumeIf(tok::l_paren)) {
14411441
diagnose(Loc, diag::attr_expected_lparen, AttrName,
14421442
DeclAttribute::isDeclModifier(DAK_Extern));
@@ -1488,7 +1488,7 @@ bool Parser::parseExternAttribute(DeclAttributes &Attributes,
14881488
auto kindTok = Tok;
14891489
consumeToken(tok::identifier);
14901490

1491-
// Parse @_extern(wasm, module: "x", name: "y") or @_extern(c[, "x"])
1491+
// Parse @extern(wasm, module: "x", name: "y") or @extern(c[, "x"])
14921492
ExternKind kind;
14931493
llvm::Optional<StringRef> importModuleName, importName;
14941494

lib/SIL/IR/SILDeclRef.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1149,7 +1149,7 @@ std::string SILDeclRef::mangle(ManglingKind MKind) const {
11491149
}
11501150

11511151
if (auto *ExternA = ExternAttr::find(getDecl()->getAttrs(), ExternKind::C)) {
1152-
assert(isa<FuncDecl>(getDecl()) && "non-FuncDecl with @_extern should be rejected by typechecker");
1152+
assert(isa<FuncDecl>(getDecl()) && "non-FuncDecl with @extern should be rejected by typechecker");
11531153
return ExternA->getCName(cast<FuncDecl>(getDecl())).str();
11541154
}
11551155

lib/SIL/IR/SILFunctionBuilder.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ void SILFunctionBuilder::addFunctionAttributes(
181181
}
182182

183183
if (auto *EA = ExternAttr::find(Attrs, ExternKind::Wasm)) {
184-
// @_extern(wasm) always has explicit names
184+
// @extern(wasm) always has explicit names
185185
F->setWasmImportModuleAndField(*EA->ModuleName, *EA->Name);
186186
}
187187

lib/Sema/TypeCheckAttr.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2157,7 +2157,7 @@ void AttributeChecker::visitExternAttr(ExternAttr *attr) {
21572157
}
21582158

21592159
for (auto *otherAttr : D->getAttrs()) {
2160-
// @_cdecl cannot be mixed with @_extern since @_cdecl is for definitions
2160+
// @_cdecl cannot be mixed with @extern since @_cdecl is for definitions
21612161
// @_silgen_name cannot be mixed to avoid SIL-level name ambiguity
21622162
if (isa<CDeclAttr>(otherAttr) || isa<SILGenNameAttr>(otherAttr)) {
21632163
diagnose(attr->getLocation(), diag::extern_only_non_other_attr,

lib/Sema/TypeCheckDeclPrimary.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3205,7 +3205,7 @@ class DeclChecker : public DeclVisitor<DeclChecker> {
32053205
/// Determine whether the given declaration should not have a definition.
32063206
static bool requiresNoDefinition(Decl *decl) {
32073207
if (auto func = dyn_cast<AbstractFunctionDecl>(decl)) {
3208-
// Function with @_extern should not have a body.
3208+
// Function with @extern should not have a body.
32093209
return func->getAttrs().hasAttribute<ExternAttr>();
32103210
}
32113211
// Everything else can have a definition.

lib/Serialization/ModuleFormat.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ const uint16_t SWIFTMODULE_VERSION_MAJOR = 0;
5858
/// describe what change you made. The content of this comment isn't important;
5959
/// it just ensures a conflict if two people change the module format.
6060
/// Don't worry about adhering to the 80-column limit for this line.
61-
const uint16_t SWIFTMODULE_VERSION_MINOR = 814; // @_extern(c)
61+
const uint16_t SWIFTMODULE_VERSION_MINOR = 814; // @extern(c)
6262

6363
/// A standard hash seed used for all string hashes in a serialized module.
6464
///

test/IDE/complete_decl_attribute.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ actor MyGenericGlobalActor<T> {
109109
// KEYWORD2-NEXT: Keyword/None: Sendable[#Func Attribute#]; name=Sendable
110110
// KEYWORD2-NEXT: Keyword/None: preconcurrency[#Func Attribute#]; name=preconcurrency
111111
// KEYWORD2-NEXT: Keyword/None: backDeployed[#Func Attribute#]; name=backDeployed
112+
// KEYWORD2-NEXT: Keyword/None: extern[#Func Attribute#]; name=extern
112113
// KEYWORD2-NOT: Keyword
113114
// KEYWORD2-DAG: Decl[Struct]/CurrModule: MyStruct[#MyStruct#]; name=MyStruct
114115
// KEYWORD2-DAG: Decl[Struct]/CurrModule: MyPropertyWrapper[#Property Wrapper#]; name=MyPropertyWrapper
@@ -248,6 +249,7 @@ struct _S {
248249
// ON_METHOD-DAG: Keyword/None: noDerivative[#Func Attribute#]; name=noDerivative
249250
// ON_METHOD-DAG: Keyword/None: preconcurrency[#Func Attribute#]; name=preconcurrency
250251
// ON_METHOD-DAG: Keyword/None: backDeployed[#Func Attribute#]; name=backDeployed
252+
// ON_METHOD-DAG: Keyword/None: extern[#Func Attribute#]; name=extern
251253
// ON_METHOD-NOT: Keyword
252254
// ON_METHOD-DAG: Decl[Struct]/CurrModule: MyStruct[#MyStruct#]; name=MyStruct
253255
// ON_METHOD-DAG: Decl[Struct]/CurrModule: MyPropertyWrapper[#Property Wrapper#]; name=MyPropertyWrapper

test/IRGen/extern_c.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@ func test() {
1515
test()
1616

1717
// CHECK: declare void @explicit_extern_c()
18-
@_extern(c, "explicit_extern_c") func explicit_extern_c()
18+
@extern(c, "explicit_extern_c") func explicit_extern_c()
1919

2020
// CHECK: declare void @implicit_extern_c()
21-
@_extern(c) func implicit_extern_c()
21+
@extern(c) func implicit_extern_c()
2222

2323
// CHECK: declare void @default_arg_value(i32)
24-
@_extern(c) func default_arg_value(_: Int32 = 42)
24+
@extern(c) func default_arg_value(_: Int32 = 42)

test/IRGen/extern_c_abitypes.swift

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -34,25 +34,25 @@ module c_abi_types {
3434

3535
import c_abi_types
3636

37-
@_extern(c, "swift_roundtrip_void")
37+
@extern(c, "swift_roundtrip_void")
3838
func swift_roundtrip_void()
39-
@_extern(c, "swift_roundtrip_bool")
39+
@extern(c, "swift_roundtrip_bool")
4040
func swift_roundtrip_bool(_: Bool) -> Bool
41-
@_extern(c, "swift_roundtrip_char")
41+
@extern(c, "swift_roundtrip_char")
4242
func swift_roundtrip_char(_: CChar) -> CChar
43-
@_extern(c, "swift_roundtrip_int")
43+
@extern(c, "swift_roundtrip_int")
4444
func swift_roundtrip_int(_: CInt) -> CInt
45-
@_extern(c, "swift_roundtrip_float")
45+
@extern(c, "swift_roundtrip_float")
4646
func swift_roundtrip_float(_: CFloat) -> CFloat
47-
@_extern(c, "swift_roundtrip_double")
47+
@extern(c, "swift_roundtrip_double")
4848
func swift_roundtrip_double(_: CDouble) -> CDouble
49-
@_extern(c, "swift_roundtrip_opaque_ptr")
49+
@extern(c, "swift_roundtrip_opaque_ptr")
5050
func swift_roundtrip_opaque_ptr(_: OpaquePointer!) -> OpaquePointer!
51-
@_extern(c, "swift_roundtrip_void_star")
51+
@extern(c, "swift_roundtrip_void_star")
5252
func swift_roundtrip_void_star(_: UnsafeMutableRawPointer!) -> UnsafeMutableRawPointer!
53-
@_extern(c, "swift_roundtrip_c_struct")
53+
@extern(c, "swift_roundtrip_c_struct")
5454
func swift_roundtrip_c_struct(_: c_struct) -> c_struct
55-
@_extern(c, "swift_roundtrip_c_struct_ptr")
55+
@extern(c, "swift_roundtrip_c_struct_ptr")
5656
func swift_roundtrip_c_struct_ptr(_: UnsafeMutablePointer<c_struct>!) -> UnsafeMutablePointer<c_struct>!
5757

5858
func test() {

test/Interop/WebAssembly/extern-wasm-cdecls.swift

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,23 @@
22
// RUN: %target-swift-frontend %s -emit-ir -enable-experimental-feature Extern -module-name Extern | %FileCheck %s
33

44
// CHECK: declare void @import1() [[EA1:#[0-9]+]]
5-
@_extern(c)
6-
@_extern(wasm, module: "m0", name: "import1")
5+
@extern(c)
6+
@extern(wasm, module: "m0", name: "import1")
77
func import1()
88

99
// CHECK: declare i32 @import2WithReturnInt() [[EA2:#[0-9]+]]
10-
@_extern(c)
11-
@_extern(wasm, module: "m0", name: "import2")
10+
@extern(c)
11+
@extern(wasm, module: "m0", name: "import2")
1212
func import2WithReturnInt() -> Int32
1313

1414
// CHECK: declare void @import3TakingInt(i32) [[EA3:#[0-9]+]]
15-
@_extern(c)
16-
@_extern(wasm, module: "m0", name: "import3")
15+
@extern(c)
16+
@extern(wasm, module: "m0", name: "import3")
1717
func import3TakingInt(_: Int32)
1818

1919
// CHECK: declare void @c_import4() [[EA4:#[0-9]+]]
20-
@_extern(c, "c_import4")
21-
@_extern(wasm, module: "m0", name: "import4")
20+
@extern(c, "c_import4")
21+
@extern(wasm, module: "m0", name: "import4")
2222
func import4()
2323

2424
func test() {

test/Interop/WebAssembly/extern-wasm-decls-to-swift.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@
22
// RUN: %target-swift-frontend %s -enable-experimental-feature Extern -emit-ir -module-name Extern | %FileCheck %s
33

44
// CHECK: declare {{.*}} void @"$s6Extern7import1yyF"() [[EA1:#[0-9]+]]
5-
@_extern(wasm, module: "m0", name: "import1")
5+
@extern(wasm, module: "m0", name: "import1")
66
func import1()
77

88
// CHECK: declare {{.*}} i32 @"$s6Extern20import2WithReturnInts5Int32VyF"() [[EA2:#[0-9]+]]
9-
@_extern(wasm, module: "m0", name: "import2")
9+
@extern(wasm, module: "m0", name: "import2")
1010
func import2WithReturnInt() -> Int32
1111

1212
// CHECK: declare {{.*}} void @"$s6Extern16import3TakingIntyys5Int32VF"(i32) [[EA3:#[0-9]+]]
13-
@_extern(wasm, module: "m0", name: "import3")
13+
@extern(wasm, module: "m0", name: "import3")
1414
func import3TakingInt(_: Int32)
1515

1616
func test() {

test/SILGen/extern_c.swift

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,28 @@
11
// RUN: %target-swift-emit-silgen -enable-experimental-feature Extern %s | %FileCheck %s
22

33
// CHECK-DAG: sil hidden_external @my_c_name : $@convention(c) (Int) -> Int
4-
@_extern(c, "my_c_name")
4+
@extern(c, "my_c_name")
55
func withCName(_ x: Int) -> Int
66

77
// CHECK-DAG: sil hidden_external @take_c_func_ptr : $@convention(c) (@convention(c) (Int) -> Int) -> ()
8-
@_extern(c, "take_c_func_ptr")
8+
@extern(c, "take_c_func_ptr")
99
func takeCFuncPtr(_ f: @convention(c) (Int) -> Int)
1010

1111
// CHECK-DAG: sil @public_visible : $@convention(c) (Int) -> Int
12-
@_extern(c, "public_visible")
12+
@extern(c, "public_visible")
1313
public func publicVisibility(_ x: Int) -> Int
1414

1515
// CHECK-DAG: sil @private_visible : $@convention(c) (Int) -> Int
16-
@_extern(c, "private_visible")
16+
@extern(c, "private_visible")
1717
private func privateVisiblity(_ x: Int) -> Int
1818

1919
// CHECK-DAG: sil hidden_external @withoutCName : $@convention(c) () -> Int
20-
@_extern(c)
20+
@extern(c)
2121
func withoutCName() -> Int
2222

2323
// CHECK-DAG: sil hidden [ossa] @$s8extern_c10defaultArgyySiFfA_ : $@convention(thin) () -> Int {
2424
// CHECK-DAG: sil hidden_external @default_arg : $@convention(c) (Int) -> ()
25-
@_extern(c, "default_arg")
25+
@extern(c, "default_arg")
2626
func defaultArg(_ x: Int = 42)
2727

2828
func main() {

test/Serialization/attr-extern.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,6 @@
55

66
// BC-CHECK: <Extern_DECL_ATTR
77

8-
// MODULE-CHECK: @_extern(wasm, module: "m0", name: "import1") func import1()
9-
@_extern(wasm, module: "m0", name: "import1")
8+
// MODULE-CHECK: @extern(wasm, module: "m0", name: "import1") func import1()
9+
@extern(wasm, module: "m0", name: "import1")
1010
func import1()

0 commit comments

Comments
 (0)