Skip to content

Commit 8a9bd1d

Browse files
committed
Merge of b41baaf
2 parents 178f096 + b41baaf commit 8a9bd1d

File tree

6 files changed

+37
-168
lines changed

6 files changed

+37
-168
lines changed

llvm/test/tools/llvm-readtapi/compare-left-single-inline.test

Lines changed: 2 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -38,32 +38,8 @@
3838
; CHECK-NEXT: x86_64-apple-ios-simulator
3939
; CHECK-NEXT: > _symB
4040
; CHECK-NEXT:Inlined Reexported Frameworks/Libraries
41-
; CHECK-NEXT: Alpine.framework/Alpine
42-
; CHECK-NEXT: Current Version
43-
; CHECK-NEXT: > 1.2.3
44-
; CHECK-NEXT: Compatibility Version
45-
; CHECK-NEXT: > 0
46-
; CHECK-NEXT: Swift ABI Version
47-
; CHECK-NEXT: > 5
48-
; CHECK-NEXT: Two Level Namespace
49-
; CHECK-NEXT: > true
50-
; CHECK-NEXT: Application Extension Safe
51-
; CHECK-NEXT: > true
52-
; CHECK-NEXT: Allowable Clients
53-
; CHECK-NEXT: i386-apple-macos
54-
; CHECK-NEXT: > ClientD
55-
; CHECK-NEXT: Parent Umbrellas
56-
; CHECK-NEXT: i386-apple-macos
57-
; CHECK-NEXT: > System
58-
; CHECK-NEXT: x86_64-apple-ios-simulator
59-
; CHECK-NEXT: > System
60-
; CHECK-NEXT: Symbols
61-
; CHECK-NEXT: i386-apple-macos
62-
; CHECK-NEXT: > _symA
63-
; CHECK-NEXT: > .objc_class_name_Class1
64-
; CHECK-NEXT: > _symC - Weak-Defined
65-
; CHECK-NEXT: x86_64-apple-ios-simulator
66-
; CHECK-NEXT: > _symB
41+
; CHECK-NEXT: Install Name
42+
; CHECK-NEXT: > Alpine.framework/Alpine
6743

6844

6945

llvm/test/tools/llvm-readtapi/compare-mismatched-inlines.test

Lines changed: 2 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -10,35 +10,8 @@
1010
; CHECK-NEXT: > Alpine.framework/Alpine
1111
; CHECK-NEXT: > System.framework/System
1212
; CHECK-NEXT:Inlined Reexported Frameworks/Libraries
13-
; CHECK-NEXT: System.framework/System
14-
; CHECK-NEXT: Current Version
15-
; CHECK-NEXT: > 1.3.3
16-
; CHECK-NEXT: Compatibility Version
17-
; CHECK-NEXT: > 1.2
18-
; CHECK-NEXT: Swift ABI Version
19-
; CHECK-NEXT: > 3
20-
; CHECK-NEXT: Two Level Namespace
21-
; CHECK-NEXT: > true
22-
; CHECK-NEXT: Application Extension Safe
23-
; CHECK-NEXT: > true
24-
; CHECK-NEXT: Allowable Clients
25-
; CHECK-NEXT: i386-apple-macos
26-
; CHECK-NEXT: > ClientA
27-
; CHECK-NEXT: x86_64-apple-ios
28-
; CHECK-NEXT: > ClientA
29-
; CHECK-NEXT: Parent Umbrellas
30-
; CHECK-NEXT: i386-apple-macos
31-
; CHECK-NEXT: > System
32-
; CHECK-NEXT: x86_64-apple-ios
33-
; CHECK-NEXT: > System
34-
; CHECK-NEXT: Symbols
35-
; CHECK-NEXT: i386-apple-macos
36-
; CHECK-NEXT: > _symA
37-
; CHECK-NEXT: > _symC - Reexported
38-
; CHECK-NEXT: > _symD - Undefined
39-
; CHECK-NEXT: x86_64-apple-ios
40-
; CHECK-NEXT: > _symB
41-
; CHECK-NEXT: > _symAB
13+
; CHECK-NEXT: Install Name
14+
; CHECK-NEXT: > System.framework/System
4215

4316
; CHECK-NOT: error:
4417
; CHECK-NOT: warning:

llvm/test/tools/llvm-readtapi/compare-multiple-inlines.test

Lines changed: 4 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -42,61 +42,10 @@
4242
; CHECK-NEXT: x86_64-apple-ios-simulator
4343
; CHECK-NEXT: > _symB
4444
; CHECK-NEXT:Inlined Reexported Frameworks/Libraries
45-
; CHECK-NEXT: Alpine.framework/Alpine
46-
; CHECK-NEXT: Current Version
47-
; CHECK-NEXT: > 1.2.3
48-
; CHECK-NEXT: Compatibility Version
49-
; CHECK-NEXT: > 0
50-
; CHECK-NEXT: Swift ABI Version
51-
; CHECK-NEXT: > 5
52-
; CHECK-NEXT: Two Level Namespace
53-
; CHECK-NEXT: > true
54-
; CHECK-NEXT: Application Extension Safe
55-
; CHECK-NEXT: > true
56-
; CHECK-NEXT: Allowable Clients
57-
; CHECK-NEXT: i386-apple-macos
58-
; CHECK-NEXT: > ClientD
59-
; CHECK-NEXT: Parent Umbrellas
60-
; CHECK-NEXT: i386-apple-macos
61-
; CHECK-NEXT: > System
62-
; CHECK-NEXT: x86_64-apple-ios-simulator
63-
; CHECK-NEXT: > System
64-
; CHECK-NEXT: Symbols
65-
; CHECK-NEXT: i386-apple-macos
66-
; CHECK-NEXT: > _symA
67-
; CHECK-NEXT: > .objc_class_name_Class1
68-
; CHECK-NEXT: > _symC - Weak-Defined
69-
; CHECK-NEXT: x86_64-apple-ios-simulator
70-
; CHECK-NEXT: > _symB
71-
; CHECK-NEXT: System.framework/System
72-
; CHECK-NEXT: Current Version
73-
; CHECK-NEXT: > 1.3.3
74-
; CHECK-NEXT: Compatibility Version
75-
; CHECK-NEXT: > 1.2
76-
; CHECK-NEXT: Swift ABI Version
77-
; CHECK-NEXT: > 3
78-
; CHECK-NEXT: Two Level Namespace
79-
; CHECK-NEXT: > true
80-
; CHECK-NEXT: Application Extension Safe
81-
; CHECK-NEXT: > true
82-
; CHECK-NEXT: Allowable Clients
83-
; CHECK-NEXT: i386-apple-macos
84-
; CHECK-NEXT: > ClientA
85-
; CHECK-NEXT: x86_64-apple-ios
86-
; CHECK-NEXT: > ClientA
87-
; CHECK-NEXT: Parent Umbrellas
88-
; CHECK-NEXT: i386-apple-macos
89-
; CHECK-NEXT: > System
90-
; CHECK-NEXT: x86_64-apple-ios
91-
; CHECK-NEXT: > System
92-
; CHECK-NEXT: Symbols
93-
; CHECK-NEXT: i386-apple-macos
94-
; CHECK-NEXT: > _symA
95-
; CHECK-NEXT: > _symC - Reexported
96-
; CHECK-NEXT: > _symD - Undefined
97-
; CHECK-NEXT: x86_64-apple-ios
98-
; CHECK-NEXT: > _symB
99-
; CHECK-NEXT: > _symAB
45+
; CHECK-NEXT: Install Name
46+
; CHECK-NEXT: > Alpine.framework/Alpine
47+
; CHECK-NEXT: Install Name
48+
; CHECK-NEXT: > System.framework/System
10049

10150
; CHECK-NOT: error:
10251
; CHECK-NOT: warning:

llvm/test/tools/llvm-readtapi/compare-right-single-inline.test

Lines changed: 2 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -35,32 +35,8 @@
3535
; CHECK-NEXT: x86_64-apple-ios-simulator
3636
; CHECK-NEXT: < _symB
3737
; CHECK-NEXT:Inlined Reexported Frameworks/Libraries
38-
; CHECK-NEXT: Alpine.framework/Alpine
39-
; CHECK-NEXT: Current Version
40-
; CHECK-NEXT: < 1.2.3
41-
; CHECK-NEXT: Compatibility Version
42-
; CHECK-NEXT: < 0
43-
; CHECK-NEXT: Swift ABI Version
44-
; CHECK-NEXT: < 5
45-
; CHECK-NEXT: Two Level Namespace
46-
; CHECK-NEXT: < true
47-
; CHECK-NEXT: Application Extension Safe
48-
; CHECK-NEXT: < true
49-
; CHECK-NEXT: Allowable Clients
50-
; CHECK-NEXT: i386-apple-macos
51-
; CHECK-NEXT: < ClientD
52-
; CHECK-NEXT: Parent Umbrellas
53-
; CHECK-NEXT: i386-apple-macos
54-
; CHECK-NEXT: < System
55-
; CHECK-NEXT: x86_64-apple-ios-simulator
56-
; CHECK-NEXT: < System
57-
; CHECK-NEXT: Symbols
58-
; CHECK-NEXT: i386-apple-macos
59-
; CHECK-NEXT: < _symA
60-
; CHECK-NEXT: < .objc_class_name_Class1
61-
; CHECK-NEXT: < _symC - Weak-Defined
62-
; CHECK-NEXT: x86_64-apple-ios-simulator
63-
; CHECK-NEXT: < _symB
38+
; CHECK-NEXT: Install Name
39+
; CHECK-NEXT: < Alpine.framework/Alpine
6440

6541
; CHECK-NOT: error:
6642
; CHECK-NOT: warning:

llvm/tools/llvm-readtapi/DiffEngine.cpp

Lines changed: 22 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -203,27 +203,6 @@ std::vector<DiffOutput> getSingleIF(InterfaceFile *Interface,
203203
diffAttribute("Install Name", Output,
204204
DiffScalarVal<StringRef, AD_Diff_Scalar_Str>(
205205
Order, Interface->getInstallName()));
206-
diffAttribute("Current Version", Output,
207-
DiffScalarVal<PackedVersion, AD_Diff_Scalar_PackedVersion>(
208-
Order, Interface->getCurrentVersion()));
209-
diffAttribute("Compatibility Version", Output,
210-
DiffScalarVal<PackedVersion, AD_Diff_Scalar_PackedVersion>(
211-
Order, Interface->getCompatibilityVersion()));
212-
diffAttribute("Swift ABI Version", Output,
213-
DiffScalarVal<uint8_t, AD_Diff_Scalar_Unsigned>(
214-
Order, Interface->getSwiftABIVersion()));
215-
diffAttribute("Two Level Namespace", Output,
216-
DiffScalarVal<bool, AD_Diff_Scalar_Bool>(
217-
Order, Interface->isTwoLevelNamespace()));
218-
diffAttribute("Application Extension Safe", Output,
219-
DiffScalarVal<bool, AD_Diff_Scalar_Bool>(
220-
Order, Interface->isApplicationExtensionSafe()));
221-
diffAttribute("Reexported Libraries", Output,
222-
Interface->reexportedLibraries(), Order);
223-
diffAttribute("Allowable Clients", Output, Interface->allowableClients(),
224-
Order);
225-
diffAttribute("Parent Umbrellas", Output, Interface->umbrellas(), Order);
226-
diffAttribute("Symbols", Output, Interface->symbols(), Order);
227206
for (const auto &Doc : Interface->documents()) {
228207
DiffOutput Documents("Inlined Reexported Frameworks/Libraries");
229208
Documents.Kind = AD_Inline_Doc;
@@ -419,10 +398,11 @@ DiffEngine::findDifferences(const InterfaceFile *IFLHS,
419398
Docs.Values.push_back(
420399
std::make_unique<InlineDoc>(std::move(PairDiff)));
421400
}
422-
// If a match is not found, get attributes from single item.
401+
// No matching inlined library was found.
423402
else
424-
Docs.Values.push_back(std::make_unique<InlineDoc>(InlineDoc(
425-
DocLHS->getInstallName(), getSingleIF(DocLHS.get(), lhs))));
403+
Docs.Values.push_back(std::make_unique<InlineDoc>(
404+
InlineDoc(DocLHS->getInstallName(), getSingleIF(DocLHS.get(), lhs),
405+
/*IsMissingDoc=*/true)));
426406
DocsInserted.push_back(DocLHS->getInstallName());
427407
}
428408
for (auto DocRHS : IFRHS->documents()) {
@@ -431,8 +411,9 @@ DiffEngine::findDifferences(const InterfaceFile *IFLHS,
431411
return (GatheredDoc == DocRHS->getInstallName());
432412
});
433413
if (!WasGathered)
434-
Docs.Values.push_back(std::make_unique<InlineDoc>(InlineDoc(
435-
DocRHS->getInstallName(), getSingleIF(DocRHS.get(), rhs))));
414+
Docs.Values.push_back(std::make_unique<InlineDoc>(
415+
InlineDoc(DocRHS->getInstallName(), getSingleIF(DocRHS.get(), rhs),
416+
/*IsMissingDoc=*/true)));
436417
}
437418
if (!Docs.Values.empty())
438419
Output.push_back(std::move(Docs));
@@ -547,12 +528,23 @@ void DiffEngine::printDifferences(raw_ostream &OS,
547528
case AD_Inline_Doc:
548529
if (!Attr.Values.empty()) {
549530
OS << Indent << Attr.Name << "\n";
550-
for (auto &Item : Attr.Values)
551-
if (InlineDoc *Doc = dyn_cast<InlineDoc>(Item.get()))
552-
if (!Doc->DocValues.empty()) {
531+
for (auto &Item : Attr.Values) {
532+
if (InlineDoc *Doc = dyn_cast<InlineDoc>(Item.get())) {
533+
if (Doc->DocValues.empty())
534+
continue;
535+
IndentCounter = 2;
536+
// When only one input file contains an inlined library, print out
537+
// the install name for it. Otherwise print out the different values
538+
// by the install name.
539+
if (Doc->IsMissingDoc) {
540+
printSingleVal<DiffScalarVal<StringRef, AD_Diff_Scalar_Str>>(
541+
std::string(IndentCounter, '\t'), Doc->DocValues.front(), OS);
542+
} else {
553543
OS << Indent << "\t" << Doc->InstallName << "\n";
554-
printDifferences(OS, std::move(Doc->DocValues), 2);
544+
printDifferences(OS, std::move(Doc->DocValues), IndentCounter);
555545
}
546+
}
547+
}
556548
}
557549
break;
558550
}

llvm/tools/llvm-readtapi/DiffEngine.h

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -128,9 +128,12 @@ class InlineDoc : public AttributeDiff {
128128
std::string InstallName;
129129
/// Differences found from each file.
130130
std::vector<DiffOutput> DocValues;
131-
InlineDoc(StringRef InstName, std::vector<DiffOutput> Diff)
131+
/// Whether document only exists for one input.
132+
bool IsMissingDoc;
133+
InlineDoc(StringRef InstName, std::vector<DiffOutput> Diff,
134+
bool IsMissingDoc = false)
132135
: AttributeDiff(AD_Inline_Doc), InstallName(InstName),
133-
DocValues(std::move(Diff)){};
136+
DocValues(std::move(Diff)), IsMissingDoc(IsMissingDoc) {};
134137

135138
static bool classof(const AttributeDiff *A) {
136139
return A->getKind() == AD_Inline_Doc;

0 commit comments

Comments
 (0)