Skip to content

Commit 6e2683c

Browse files
committed
[API Notes] Ensure that redeclaration of tags doesn't duplicate attributes
1 parent 81368e2 commit 6e2683c

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

clang/test/APINotes/Inputs/Headers/SwiftImportAs.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ struct CopyableType { int value; };
2020
struct NonEscapableType { int value; };
2121
struct EscapableType { int value; };
2222

23-
2423
struct OpaqueRefCountedType;
24+
struct OpaqueRefCountedType; // redeclaration
2525

2626
inline void ORCRetain(struct OpaqueRefCountedType *x);
2727
inline void ORCRelease(struct OpaqueRefCountedType *x);

clang/test/APINotes/swift-import-as.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,15 @@
3232
// CHECK-OPAQUE-REF-COUNTED: SwiftAttrAttr {{.+}} <<invalid sloc>> "import_reference"
3333
// CHECK-OPAQUE-REF-COUNTED: SwiftAttrAttr {{.+}} <<invalid sloc>> "retain:ORCRetain"
3434
// CHECK-OPAQUE-REF-COUNTED: SwiftAttrAttr {{.+}} <<invalid sloc>> "release:ORCRelease"
35+
// CHECK-OPAQUE-REF-COUNTED-NOT: SwiftAttrAttr {{.+}} <<invalid sloc>> "release:ORCRelease"
3536

37+
// CHECK-OPAQUE-REF-COUNTED: Dumping OpaqueRefCountedType:
38+
// CHECK-OPAQUE-REF-COUNTED-NEXT: CXXRecordDecl {{.+}} imported in SwiftImportAs{{.*}}struct OpaqueRefCountedType
39+
// CHECK-OPAQUE-REF-COUNTED: SwiftAttrAttr {{.+}} <<invalid sloc>> "import_reference"
40+
// CHECK-OPAQUE-REF-COUNTED: SwiftAttrAttr {{.+}} <<invalid sloc>> "retain:ORCRetain"
41+
// CHECK-OPAQUE-REF-COUNTED: SwiftAttrAttr {{.+}} <<invalid sloc>> "release:ORCRelease"
42+
43+
// CHECK-OPAQUE-REF-COUNTED-NOT: SwiftAttrAttr {{.+}} <<invalid sloc>> "release:
3644
// CHECK-NON-COPYABLE: Dumping NonCopyableType:
3745
// CHECK-NON-COPYABLE-NEXT: CXXRecordDecl {{.+}} imported in SwiftImportAs {{.+}} struct NonCopyableType
3846
// CHECK-NON-COPYABLE: SwiftAttrAttr {{.+}} <<invalid sloc>> "conforms_to:MySwiftModule.MySwiftNonCopyableProtocol"

0 commit comments

Comments
 (0)