Skip to content

Commit b1a6fc1

Browse files
committed
[API Notes] Ensure that multiple declarations don't get duplicated attributes
1 parent 00c5c51 commit b1a6fc1

File tree

2 files changed

+9
-0
lines changed

2 files changed

+9
-0
lines changed

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ inline void retain(RefCountedType *x) {}
2525
inline void release(RefCountedType *x) {}
2626

2727
struct OpaqueRefCountedType;
28+
struct OpaqueRefCountedType; // redeclaration
2829

2930
inline void ORCRetain(struct OpaqueRefCountedType *x);
3031
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
@@ -40,7 +40,15 @@
4040
// CHECK-OPAQUE-REF-COUNTED: SwiftAttrAttr {{.+}} <<invalid sloc>> "import_reference"
4141
// CHECK-OPAQUE-REF-COUNTED: SwiftAttrAttr {{.+}} <<invalid sloc>> "retain:ORCRetain"
4242
// CHECK-OPAQUE-REF-COUNTED: SwiftAttrAttr {{.+}} <<invalid sloc>> "release:ORCRelease"
43+
// CHECK-OPAQUE-REF-COUNTED-NOT: SwiftAttrAttr {{.+}} <<invalid sloc>> "release:ORCRelease"
4344

45+
// CHECK-OPAQUE-REF-COUNTED: Dumping OpaqueRefCountedType:
46+
// CHECK-OPAQUE-REF-COUNTED-NEXT: CXXRecordDecl {{.+}} imported in SwiftImportAs{{.*}}struct OpaqueRefCountedType
47+
// CHECK-OPAQUE-REF-COUNTED: SwiftAttrAttr {{.+}} <<invalid sloc>> "import_reference"
48+
// CHECK-OPAQUE-REF-COUNTED: SwiftAttrAttr {{.+}} <<invalid sloc>> "retain:ORCRetain"
49+
// CHECK-OPAQUE-REF-COUNTED: SwiftAttrAttr {{.+}} <<invalid sloc>> "release:ORCRelease"
50+
51+
// CHECK-OPAQUE-REF-COUNTED-NOT: SwiftAttrAttr {{.+}} <<invalid sloc>> "release:
4452
// CHECK-NON-COPYABLE: Dumping NonCopyableType:
4553
// CHECK-NON-COPYABLE-NEXT: CXXRecordDecl {{.+}} imported in SwiftImportAs {{.+}} struct NonCopyableType
4654
// CHECK-NON-COPYABLE: SwiftAttrAttr {{.+}} <<invalid sloc>> "conforms_to:MySwiftModule.MySwiftNonCopyableProtocol"

0 commit comments

Comments
 (0)