summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/clang-doc/BitcodeReader.cpp
diff options
context:
space:
mode:
authorJulie Hockett <juliehockett@google.com>2018-08-02 18:01:37 +0000
committerJulie Hockett <juliehockett@google.com>2018-08-02 18:01:37 +0000
commita9cb2dd8b0d5be357e7aaf2b1a16f63eb703cdf8 (patch)
tree064bdf0629c08cb405aaa0a93537c0b050e32378 /clang-tools-extra/clang-doc/BitcodeReader.cpp
parent90dc82e955d38e30fd31506a7b8cfce831d06b71 (diff)
downloadbcm5719-llvm-a9cb2dd8b0d5be357e7aaf2b1a16f63eb703cdf8.tar.gz
bcm5719-llvm-a9cb2dd8b0d5be357e7aaf2b1a16f63eb703cdf8.zip
Revert "[clang-doc] Refactoring mapper to map by scope"
This reverts commit r338738 as it's breaking the bots. llvm-svn: 338748
Diffstat (limited to 'clang-tools-extra/clang-doc/BitcodeReader.cpp')
-rw-r--r--clang-tools-extra/clang-doc/BitcodeReader.cpp81
1 files changed, 10 insertions, 71 deletions
diff --git a/clang-tools-extra/clang-doc/BitcodeReader.cpp b/clang-tools-extra/clang-doc/BitcodeReader.cpp
index 70e92c7a646..fa51d01355c 100644
--- a/clang-tools-extra/clang-doc/BitcodeReader.cpp
+++ b/clang-tools-extra/clang-doc/BitcodeReader.cpp
@@ -100,8 +100,6 @@ bool decodeRecord(Record R, FieldId &Field, llvm::StringRef Blob) {
case FieldId::F_parent:
case FieldId::F_vparent:
case FieldId::F_type:
- case FieldId::F_child_namespace:
- case FieldId::F_child_record:
case FieldId::F_default:
Field = F;
return true;
@@ -374,12 +372,6 @@ template <> void addReference(NamespaceInfo *I, Reference &&R, FieldId F) {
case FieldId::F_namespace:
I->Namespace.emplace_back(std::move(R));
break;
- case FieldId::F_child_namespace:
- I->ChildNamespaces.emplace_back(std::move(R));
- break;
- case FieldId::F_child_record:
- I->ChildRecords.emplace_back(std::move(R));
- break;
default:
llvm::errs() << "Invalid field type for info.\n";
exit(1);
@@ -411,37 +403,12 @@ template <> void addReference(RecordInfo *I, Reference &&R, FieldId F) {
case FieldId::F_vparent:
I->VirtualParents.emplace_back(std::move(R));
break;
- case FieldId::F_child_record:
- I->ChildRecords.emplace_back(std::move(R));
- break;
default:
llvm::errs() << "Invalid field type for info.\n";
exit(1);
}
}
-template <typename T, typename ChildInfoType>
-void addChild(T I, ChildInfoType &&R) {
- llvm::errs() << "Invalid child type for info.\n";
- exit(1);
-}
-
-template <> void addChild(NamespaceInfo *I, FunctionInfo &&R) {
- I->ChildFunctions.emplace_back(std::move(R));
-}
-
-template <> void addChild(NamespaceInfo *I, EnumInfo &&R) {
- I->ChildEnums.emplace_back(std::move(R));
-}
-
-template <> void addChild(RecordInfo *I, FunctionInfo &&R) {
- I->ChildFunctions.emplace_back(std::move(R));
-}
-
-template <> void addChild(RecordInfo *I, EnumInfo &&R) {
- I->ChildEnums.emplace_back(std::move(R));
-}
-
// Read records from bitcode into a given info.
template <typename T> bool ClangDocBitcodeReader::readRecord(unsigned ID, T I) {
Record R;
@@ -488,8 +455,7 @@ template <typename T> bool ClangDocBitcodeReader::readBlock(unsigned ID, T I) {
template <typename T>
bool ClangDocBitcodeReader::readSubBlock(unsigned ID, T I) {
switch (ID) {
- // Blocks can only have Comment, Reference, TypeInfo, FunctionInfo, or
- // EnumInfo subblocks
+ // Blocks can only have Comment, Reference, or TypeInfo subblocks
case BI_COMMENT_BLOCK_ID:
if (readBlock(ID, getCommentInfo(I)))
return true;
@@ -526,22 +492,6 @@ bool ClangDocBitcodeReader::readSubBlock(unsigned ID, T I) {
}
return false;
}
- case BI_FUNCTION_BLOCK_ID: {
- FunctionInfo F;
- if (readBlock(ID, &F)) {
- addChild(I, std::move(F));
- return true;
- }
- return false;
- }
- case BI_ENUM_BLOCK_ID: {
- EnumInfo E;
- if (readBlock(ID, &E)) {
- addChild(I, std::move(E));
- return true;
- }
- return false;
- }
default:
llvm::errs() << "Invalid subblock type.\n";
return false;
@@ -623,21 +573,16 @@ std::unique_ptr<Info> ClangDocBitcodeReader::readBlockToInfo(unsigned ID) {
}
// Entry point
-llvm::Expected<std::vector<std::unique_ptr<Info>>>
-ClangDocBitcodeReader::readBitcode() {
+std::vector<std::unique_ptr<Info>> ClangDocBitcodeReader::readBitcode() {
std::vector<std::unique_ptr<Info>> Infos;
if (!validateStream())
- return llvm::make_error<llvm::StringError>("Invalid bitcode stream.\n",
- llvm::inconvertibleErrorCode());
- ;
+ return Infos;
// Read the top level blocks.
while (!Stream.AtEndOfStream()) {
unsigned Code = Stream.ReadCode();
if (Code != llvm::bitc::ENTER_SUBBLOCK)
- return llvm::make_error<llvm::StringError>(
- "Missing subblock in bitcode.\n", llvm::inconvertibleErrorCode());
- ;
+ return Infos;
unsigned ID = Stream.ReadSubBlockID();
switch (ID) {
@@ -647,30 +592,24 @@ ClangDocBitcodeReader::readBitcode() {
case BI_MEMBER_TYPE_BLOCK_ID:
case BI_COMMENT_BLOCK_ID:
case BI_REFERENCE_BLOCK_ID:
- return llvm::make_error<llvm::StringError>(
- "Invalid top level block in bitcode.\n",
- llvm::inconvertibleErrorCode());
- ;
+ llvm::errs() << "Invalid top level block.\n";
+ return Infos;
case BI_NAMESPACE_BLOCK_ID:
case BI_RECORD_BLOCK_ID:
case BI_ENUM_BLOCK_ID:
case BI_FUNCTION_BLOCK_ID:
- if (std::unique_ptr<Info> I = readBlockToInfo(ID))
+ if (std::unique_ptr<Info> I = readBlockToInfo(ID)) {
Infos.emplace_back(std::move(I));
+ }
return Infos;
case BI_VERSION_BLOCK_ID:
if (readBlock(ID, VersionNumber))
continue;
- return llvm::make_error<llvm::StringError>(
- "Invalid bitcode version in bitcode.\n",
- llvm::inconvertibleErrorCode());
- ;
+ return Infos;
case llvm::bitc::BLOCKINFO_BLOCK_ID:
if (readBlockInfoBlock())
continue;
- return llvm::make_error<llvm::StringError>(
- "Invalid BlockInfo in bitcode.\n", llvm::inconvertibleErrorCode());
- ;
+ return Infos;
default:
if (!Stream.SkipBlock())
continue;
OpenPOWER on IntegriCloud