[PATCH] D52313: [clang-doc] Avoid parsing undefined base classes

Julie Hockett via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Sep 20 10:03:12 PDT 2018


juliehockett created this revision.
juliehockett added reviewers: jakehehrlich, leonardchan, lebedev.ri.
juliehockett added a project: clang-tools-extra.

Don't try to parse base classes for declarations that are not definitions (segfaults, as there is no DefinitionData to access).


https://reviews.llvm.org/D52313

Files:
  clang-tools-extra/clang-doc/Serialize.cpp


Index: clang-tools-extra/clang-doc/Serialize.cpp
===================================================================
--- clang-tools-extra/clang-doc/Serialize.cpp
+++ clang-tools-extra/clang-doc/Serialize.cpp
@@ -244,6 +244,9 @@
 }
 
 static void parseBases(RecordInfo &I, const CXXRecordDecl *D) {
+  // Don't parse bases if this isn't a definition.
+  if (!D->isThisDeclarationADefinition())
+    return;
   for (const CXXBaseSpecifier &B : D->bases()) {
     if (B.isVirtual())
       continue;


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D52313.166318.patch
Type: text/x-patch
Size: 498 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20180920/c3faf73a/attachment.bin>


More information about the cfe-commits mailing list