[clang-tools-extra] r343703 - [clang-doc] Avoid parsing undefined base classes

Julie Hockett via cfe-commits cfe-commits at lists.llvm.org
Wed Oct 3 11:25:28 PDT 2018


Author: juliehockett
Date: Wed Oct  3 11:25:27 2018
New Revision: 343703

URL: http://llvm.org/viewvc/llvm-project?rev=343703&view=rev
Log:
[clang-doc] Avoid parsing undefined base classes

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

Differential Revision: https://reviews.llvm.org/D52313

Modified:
    clang-tools-extra/trunk/clang-doc/Serialize.cpp
    clang-tools-extra/trunk/test/clang-doc/bc-record.cpp
    clang-tools-extra/trunk/test/clang-doc/mapper-record.cpp
    clang-tools-extra/trunk/test/clang-doc/md-record.cpp
    clang-tools-extra/trunk/test/clang-doc/public-record.cpp
    clang-tools-extra/trunk/test/clang-doc/test_cases/record.cpp
    clang-tools-extra/trunk/test/clang-doc/yaml-record.cpp

Modified: clang-tools-extra/trunk/clang-doc/Serialize.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-doc/Serialize.cpp?rev=343703&r1=343702&r2=343703&view=diff
==============================================================================
--- clang-tools-extra/trunk/clang-doc/Serialize.cpp (original)
+++ clang-tools-extra/trunk/clang-doc/Serialize.cpp Wed Oct  3 11:25:27 2018
@@ -244,6 +244,9 @@ static void parseParameters(FunctionInfo
 }
 
 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;

Modified: clang-tools-extra/trunk/test/clang-doc/bc-record.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-doc/bc-record.cpp?rev=343703&r1=343702&r2=343703&view=diff
==============================================================================
--- clang-tools-extra/trunk/test/clang-doc/bc-record.cpp (original)
+++ clang-tools-extra/trunk/test/clang-doc/bc-record.cpp Wed Oct  3 11:25:27 2018
@@ -39,6 +39,8 @@ class X {
   class Y {};
 };
 
+class G;
+
 // RUN: clang-doc --dump-intermediate --doxygen --extra-arg=-fmodules-ts -p %t %t/test.cpp -output=%t/docs
 
 
@@ -158,118 +160,130 @@ class X {
 // CHECK-2-NEXT:   </MemberTypeBlock>
 // CHECK-2-NEXT: </RecordBlock>
 
-// RUN: llvm-bcanalyzer --dump %t/docs/bc/641AB4A3D36399954ACDE29C7A8833032BF40472.bc | FileCheck %s --check-prefix CHECK-3
+// RUN: llvm-bcanalyzer --dump %t/docs/bc/4202E8BF0ECB12AE354C8499C52725B0EE30AED5.bc | FileCheck %s --check-prefix CHECK-3
 // CHECK-3: <BLOCKINFO_BLOCK/>
 // CHECK-3-NEXT: <VersionBlock NumWords=1 BlockCodeSize=4>
 // CHECK-3-NEXT:   <Version abbrevid=4 op0=2/>
 // CHECK-3-NEXT: </VersionBlock>
-// CHECK-3-NEXT: <RecordBlock NumWords=24 BlockCodeSize=4>
+// CHECK-3-NEXT: <RecordBlock NumWords=12 BlockCodeSize=4>
 // CHECK-3-NEXT:   <USR abbrevid=4 op0=20 op1={{[0-9]+}} op2={{[0-9]+}} op3={{[0-9]+}} op4={{[0-9]+}} op5={{[0-9]+}} op6={{[0-9]+}} op7={{[0-9]+}} op8={{[0-9]+}} op9={{[0-9]+}} op10={{[0-9]+}} op11={{[0-9]+}} op12={{[0-9]+}} op13={{[0-9]+}} op14={{[0-9]+}} op15={{[0-9]+}} op16={{[0-9]+}} op17={{[0-9]+}} op18={{[0-9]+}} op19={{[0-9]+}} op20={{[0-9]+}}/>
-// CHECK-3-NEXT:   <Name abbrevid=5 op0=1/> blob data = 'Y'
-// CHECK-3-NEXT:   <ReferenceBlock NumWords=10 BlockCodeSize=4>
-// CHECK-3-NEXT:     <USR abbrevid=4 op0=20 op1={{[0-9]+}} op2={{[0-9]+}} op3={{[0-9]+}} op4={{[0-9]+}} op5={{[0-9]+}} op6={{[0-9]+}} op7={{[0-9]+}} op8={{[0-9]+}} op9={{[0-9]+}} op10={{[0-9]+}} op11={{[0-9]+}} op12={{[0-9]+}} op13={{[0-9]+}} op14={{[0-9]+}} op15={{[0-9]+}} op16={{[0-9]+}} op17={{[0-9]+}} op18={{[0-9]+}} op19={{[0-9]+}} op20={{[0-9]+}}/>
-// CHECK-3-NEXT:     <Name abbrevid=5 op0=1/> blob data = 'X'
-// CHECK-3-NEXT:     <RefType abbrevid=6 op0=2/>
-// CHECK-3-NEXT:     <Field abbrevid=7 op0=1/>
-// CHECK-3-NEXT:   </ReferenceBlock>
-// CHECK-3-NEXT:   <DefLocation abbrevid=6 op0=39 op1=4/> blob data = '{{.*}}'
+// CHECK-3-NEXT:   <Name abbrevid=5 op0=1/> blob data = 'G'
+// CHECK-3-NEXT:   <Location abbrevid=7 op0=42 op1=4/> blob data = '{{.*}}'
 // CHECK-3-NEXT:   <TagType abbrevid=8 op0=3/>
 // CHECK-3-NEXT: </RecordBlock>
 
-// RUN: llvm-bcanalyzer --dump %t/docs/bc/0000000000000000000000000000000000000000.bc | FileCheck %s --check-prefix CHECK-4
+// RUN: llvm-bcanalyzer --dump %t/docs/bc/641AB4A3D36399954ACDE29C7A8833032BF40472.bc | FileCheck %s --check-prefix CHECK-4
 // CHECK-4: <BLOCKINFO_BLOCK/>
 // CHECK-4-NEXT: <VersionBlock NumWords=1 BlockCodeSize=4>
 // CHECK-4-NEXT:   <Version abbrevid=4 op0=2/>
 // CHECK-4-NEXT: </VersionBlock>
-// CHECK-4-NEXT: <NamespaceBlock NumWords=59 BlockCodeSize=4>
-// CHECK-4-NEXT:   <FunctionBlock NumWords=20 BlockCodeSize=4>
-// CHECK-4-NEXT:     <USR abbrevid=4 op0=20 op1={{[0-9]+}} op2={{[0-9]+}} op3={{[0-9]+}} op4={{[0-9]+}} op5={{[0-9]+}} op6={{[0-9]+}} op7={{[0-9]+}} op8={{[0-9]+}} op9={{[0-9]+}} op10={{[0-9]+}} op11={{[0-9]+}} op12={{[0-9]+}} op13={{[0-9]+}} op14={{[0-9]+}} op15={{[0-9]+}} op16={{[0-9]+}} op17={{[0-9]+}} op18={{[0-9]+}} op19={{[0-9]+}} op20={{[0-9]+}}/>
-// CHECK-4-NEXT:     <Name abbrevid=5 op0=1/> blob data = 'H'
-// CHECK-4-NEXT:     <DefLocation abbrevid=6 op0=11 op1=4/> blob data = '{{.*}}'
-// CHECK-4-NEXT:     <TypeBlock NumWords=6 BlockCodeSize=4>
-// CHECK-4-NEXT:       <ReferenceBlock NumWords=3 BlockCodeSize=4>
-// CHECK-4-NEXT:         <Name abbrevid=5 op0=4/> blob data = 'void'
-// CHECK-4-NEXT:         <Field abbrevid=7 op0=4/>
-// CHECK-4-NEXT:       </ReferenceBlock>
-// CHECK-4-NEXT:     </TypeBlock>
-// CHECK-4-NEXT:   </FunctionBlock>
-// CHECK-4-NEXT:   <EnumBlock NumWords=16 BlockCodeSize=4>
+// CHECK-4-NEXT: <RecordBlock NumWords=24 BlockCodeSize=4>
+// CHECK-4-NEXT:   <USR abbrevid=4 op0=20 op1={{[0-9]+}} op2={{[0-9]+}} op3={{[0-9]+}} op4={{[0-9]+}} op5={{[0-9]+}} op6={{[0-9]+}} op7={{[0-9]+}} op8={{[0-9]+}} op9={{[0-9]+}} op10={{[0-9]+}} op11={{[0-9]+}} op12={{[0-9]+}} op13={{[0-9]+}} op14={{[0-9]+}} op15={{[0-9]+}} op16={{[0-9]+}} op17={{[0-9]+}} op18={{[0-9]+}} op19={{[0-9]+}} op20={{[0-9]+}}/>
+// CHECK-4-NEXT:   <Name abbrevid=5 op0=1/> blob data = 'Y'
+// CHECK-4-NEXT:   <ReferenceBlock NumWords=10 BlockCodeSize=4>
 // CHECK-4-NEXT:     <USR abbrevid=4 op0=20 op1={{[0-9]+}} op2={{[0-9]+}} op3={{[0-9]+}} op4={{[0-9]+}} op5={{[0-9]+}} op6={{[0-9]+}} op7={{[0-9]+}} op8={{[0-9]+}} op9={{[0-9]+}} op10={{[0-9]+}} op11={{[0-9]+}} op12={{[0-9]+}} op13={{[0-9]+}} op14={{[0-9]+}} op15={{[0-9]+}} op16={{[0-9]+}} op17={{[0-9]+}} op18={{[0-9]+}} op19={{[0-9]+}} op20={{[0-9]+}}/>
-// CHECK-4-NEXT:     <Name abbrevid=5 op0=1/> blob data = 'B'
-// CHECK-4-NEXT:     <DefLocation abbrevid=6 op0=17 op1=4/> blob data = '{{.*}}'
-// CHECK-4-NEXT:     <Member abbrevid=8 op0=1/> blob data = 'X'
-// CHECK-4-NEXT:     <Member abbrevid=8 op0=1/> blob data = 'Y'
-// CHECK-4-NEXT:   </EnumBlock>
-// CHECK-4-NEXT:   <EnumBlock NumWords=16 BlockCodeSize=4>
-// CHECK-4-NEXT:     <USR abbrevid=4 op0=20 op1={{[0-9]+}} op2={{[0-9]+}} op3={{[0-9]+}} op4={{[0-9]+}} op5={{[0-9]+}} op6={{[0-9]+}} op7={{[0-9]+}} op8={{[0-9]+}} op9={{[0-9]+}} op10={{[0-9]+}} op11={{[0-9]+}} op12={{[0-9]+}} op13={{[0-9]+}} op14={{[0-9]+}} op15={{[0-9]+}} op16={{[0-9]+}} op17={{[0-9]+}} op18={{[0-9]+}} op19={{[0-9]+}} op20={{[0-9]+}}/>
-// CHECK-4-NEXT:     <Name abbrevid=5 op0=2/> blob data = 'Bc'
-// CHECK-4-NEXT:     <DefLocation abbrevid=6 op0=19 op1=4/> blob data = '{{.*}}'
-// CHECK-4-NEXT:     <Scoped abbrevid=9 op0=1/>
-// CHECK-4-NEXT:     <Member abbrevid=8 op0=1/> blob data = 'A'
-// CHECK-4-NEXT:     <Member abbrevid=8 op0=1/> blob data = 'B'
-// CHECK-4-NEXT:   </EnumBlock>
-// CHECK-4-NEXT: </NamespaceBlock>
+// CHECK-4-NEXT:     <Name abbrevid=5 op0=1/> blob data = 'X'
+// CHECK-4-NEXT:     <RefType abbrevid=6 op0=2/>
+// CHECK-4-NEXT:     <Field abbrevid=7 op0=1/>
+// CHECK-4-NEXT:   </ReferenceBlock>
+// CHECK-4-NEXT:   <DefLocation abbrevid=6 op0=39 op1=4/> blob data = '{{.*}}'
+// CHECK-4-NEXT:   <TagType abbrevid=8 op0=3/>
+// CHECK-4-NEXT: </RecordBlock>
 
-// RUN: llvm-bcanalyzer --dump %t/docs/bc/0921737541208B8FA9BB42B60F78AC1D779AA054.bc | FileCheck %s --check-prefix CHECK-5
+// RUN: llvm-bcanalyzer --dump %t/docs/bc/0000000000000000000000000000000000000000.bc | FileCheck %s --check-prefix CHECK-5
 // CHECK-5: <BLOCKINFO_BLOCK/>
 // CHECK-5-NEXT: <VersionBlock NumWords=1 BlockCodeSize=4>
 // CHECK-5-NEXT:   <Version abbrevid=4 op0=2/>
 // CHECK-5-NEXT: </VersionBlock>
-// CHECK-5-NEXT: <RecordBlock NumWords=12 BlockCodeSize=4>
-// CHECK-5-NEXT:   <USR abbrevid=4 op0=20 op1={{[0-9]+}} op2={{[0-9]+}} op3={{[0-9]+}} op4={{[0-9]+}} op5={{[0-9]+}} op6={{[0-9]+}} op7={{[0-9]+}} op8={{[0-9]+}} op9={{[0-9]+}} op10={{[0-9]+}} op11={{[0-9]+}} op12={{[0-9]+}} op13={{[0-9]+}} op14={{[0-9]+}} op15={{[0-9]+}} op16={{[0-9]+}} op17={{[0-9]+}} op18={{[0-9]+}} op19={{[0-9]+}} op20={{[0-9]+}}/>
-// CHECK-5-NEXT:   <Name abbrevid=5 op0=1/> blob data = 'D'
-// CHECK-5-NEXT:   <DefLocation abbrevid=6 op0=23 op1=4/> blob data = '{{.*}}'
-// CHECK-5-NEXT:   <TagType abbrevid=8 op0=3/>
-// CHECK-5-NEXT: </RecordBlock>
+// CHECK-5-NEXT: <NamespaceBlock NumWords=59 BlockCodeSize=4>
+// CHECK-5-NEXT:   <FunctionBlock NumWords=20 BlockCodeSize=4>
+// CHECK-5-NEXT:     <USR abbrevid=4 op0=20 op1={{[0-9]+}} op2={{[0-9]+}} op3={{[0-9]+}} op4={{[0-9]+}} op5={{[0-9]+}} op6={{[0-9]+}} op7={{[0-9]+}} op8={{[0-9]+}} op9={{[0-9]+}} op10={{[0-9]+}} op11={{[0-9]+}} op12={{[0-9]+}} op13={{[0-9]+}} op14={{[0-9]+}} op15={{[0-9]+}} op16={{[0-9]+}} op17={{[0-9]+}} op18={{[0-9]+}} op19={{[0-9]+}} op20={{[0-9]+}}/>
+// CHECK-5-NEXT:     <Name abbrevid=5 op0=1/> blob data = 'H'
+// CHECK-5-NEXT:     <DefLocation abbrevid=6 op0=11 op1=4/> blob data = '{{.*}}'
+// CHECK-5-NEXT:     <TypeBlock NumWords=6 BlockCodeSize=4>
+// CHECK-5-NEXT:       <ReferenceBlock NumWords=3 BlockCodeSize=4>
+// CHECK-5-NEXT:         <Name abbrevid=5 op0=4/> blob data = 'void'
+// CHECK-5-NEXT:         <Field abbrevid=7 op0=4/>
+// CHECK-5-NEXT:       </ReferenceBlock>
+// CHECK-5-NEXT:     </TypeBlock>
+// CHECK-5-NEXT:   </FunctionBlock>
+// CHECK-5-NEXT:   <EnumBlock NumWords=16 BlockCodeSize=4>
+// CHECK-5-NEXT:     <USR abbrevid=4 op0=20 op1={{[0-9]+}} op2={{[0-9]+}} op3={{[0-9]+}} op4={{[0-9]+}} op5={{[0-9]+}} op6={{[0-9]+}} op7={{[0-9]+}} op8={{[0-9]+}} op9={{[0-9]+}} op10={{[0-9]+}} op11={{[0-9]+}} op12={{[0-9]+}} op13={{[0-9]+}} op14={{[0-9]+}} op15={{[0-9]+}} op16={{[0-9]+}} op17={{[0-9]+}} op18={{[0-9]+}} op19={{[0-9]+}} op20={{[0-9]+}}/>
+// CHECK-5-NEXT:     <Name abbrevid=5 op0=1/> blob data = 'B'
+// CHECK-5-NEXT:     <DefLocation abbrevid=6 op0=17 op1=4/> blob data = '{{.*}}'
+// CHECK-5-NEXT:     <Member abbrevid=8 op0=1/> blob data = 'X'
+// CHECK-5-NEXT:     <Member abbrevid=8 op0=1/> blob data = 'Y'
+// CHECK-5-NEXT:   </EnumBlock>
+// CHECK-5-NEXT:   <EnumBlock NumWords=16 BlockCodeSize=4>
+// CHECK-5-NEXT:     <USR abbrevid=4 op0=20 op1={{[0-9]+}} op2={{[0-9]+}} op3={{[0-9]+}} op4={{[0-9]+}} op5={{[0-9]+}} op6={{[0-9]+}} op7={{[0-9]+}} op8={{[0-9]+}} op9={{[0-9]+}} op10={{[0-9]+}} op11={{[0-9]+}} op12={{[0-9]+}} op13={{[0-9]+}} op14={{[0-9]+}} op15={{[0-9]+}} op16={{[0-9]+}} op17={{[0-9]+}} op18={{[0-9]+}} op19={{[0-9]+}} op20={{[0-9]+}}/>
+// CHECK-5-NEXT:     <Name abbrevid=5 op0=2/> blob data = 'Bc'
+// CHECK-5-NEXT:     <DefLocation abbrevid=6 op0=19 op1=4/> blob data = '{{.*}}'
+// CHECK-5-NEXT:     <Scoped abbrevid=9 op0=1/>
+// CHECK-5-NEXT:     <Member abbrevid=8 op0=1/> blob data = 'A'
+// CHECK-5-NEXT:     <Member abbrevid=8 op0=1/> blob data = 'B'
+// CHECK-5-NEXT:   </EnumBlock>
+// CHECK-5-NEXT: </NamespaceBlock>
 
-// RUN: llvm-bcanalyzer --dump %t/docs/bc/E3B54702FABFF4037025BA194FC27C47006330B5.bc | FileCheck %s --check-prefix CHECK-6
+// RUN: llvm-bcanalyzer --dump %t/docs/bc/0921737541208B8FA9BB42B60F78AC1D779AA054.bc | FileCheck %s --check-prefix CHECK-6
 // CHECK-6: <BLOCKINFO_BLOCK/>
 // CHECK-6-NEXT: <VersionBlock NumWords=1 BlockCodeSize=4>
 // CHECK-6-NEXT:   <Version abbrevid=4 op0=2/>
 // CHECK-6-NEXT: </VersionBlock>
-// CHECK-6-NEXT: <RecordBlock NumWords=37 BlockCodeSize=4>
+// CHECK-6-NEXT: <RecordBlock NumWords=12 BlockCodeSize=4>
 // CHECK-6-NEXT:   <USR abbrevid=4 op0=20 op1={{[0-9]+}} op2={{[0-9]+}} op3={{[0-9]+}} op4={{[0-9]+}} op5={{[0-9]+}} op6={{[0-9]+}} op7={{[0-9]+}} op8={{[0-9]+}} op9={{[0-9]+}} op10={{[0-9]+}} op11={{[0-9]+}} op12={{[0-9]+}} op13={{[0-9]+}} op14={{[0-9]+}} op15={{[0-9]+}} op16={{[0-9]+}} op17={{[0-9]+}} op18={{[0-9]+}} op19={{[0-9]+}} op20={{[0-9]+}}/>
-// CHECK-6-NEXT:   <Name abbrevid=5 op0=1/> blob data = 'F'
-// CHECK-6-NEXT:   <DefLocation abbrevid=6 op0=36 op1=4/> blob data = '{{.*}}'
+// CHECK-6-NEXT:   <Name abbrevid=5 op0=1/> blob data = 'D'
+// CHECK-6-NEXT:   <DefLocation abbrevid=6 op0=23 op1=4/> blob data = '{{.*}}'
 // CHECK-6-NEXT:   <TagType abbrevid=8 op0=3/>
-// CHECK-6-NEXT:   <ReferenceBlock NumWords=10 BlockCodeSize=4>
-// CHECK-6-NEXT:     <USR abbrevid=4 op0=20 op1={{[0-9]+}} op2={{[0-9]+}} op3={{[0-9]+}} op4={{[0-9]+}} op5={{[0-9]+}} op6={{[0-9]+}} op7={{[0-9]+}} op8={{[0-9]+}} op9={{[0-9]+}} op10={{[0-9]+}} op11={{[0-9]+}} op12={{[0-9]+}} op13={{[0-9]+}} op14={{[0-9]+}} op15={{[0-9]+}} op16={{[0-9]+}} op17={{[0-9]+}} op18={{[0-9]+}} op19={{[0-9]+}} op20={{[0-9]+}}/>
-// CHECK-6-NEXT:     <Name abbrevid=5 op0=1/> blob data = 'E'
-// CHECK-6-NEXT:     <RefType abbrevid=6 op0=2/>
-// CHECK-6-NEXT:     <Field abbrevid=7 op0=2/>
-// CHECK-6-NEXT:   </ReferenceBlock>
-// CHECK-6-NEXT:   <ReferenceBlock NumWords=10 BlockCodeSize=4>
-// CHECK-6-NEXT:     <USR abbrevid=4 op0=20 op1={{[0-9]+}} op2={{[0-9]+}} op3={{[0-9]+}} op4={{[0-9]+}} op5={{[0-9]+}} op6={{[0-9]+}} op7={{[0-9]+}} op8={{[0-9]+}} op9={{[0-9]+}} op10={{[0-9]+}} op11={{[0-9]+}} op12={{[0-9]+}} op13={{[0-9]+}} op14={{[0-9]+}} op15={{[0-9]+}} op16={{[0-9]+}} op17={{[0-9]+}} op18={{[0-9]+}} op19={{[0-9]+}} op20={{[0-9]+}}/>
-// CHECK-6-NEXT:     <Name abbrevid=5 op0=1/> blob data = 'D'
-// CHECK-6-NEXT:     <RefType abbrevid=6 op0=2/>
-// CHECK-6-NEXT:     <Field abbrevid=7 op0=3/>
-// CHECK-6-NEXT:   </ReferenceBlock>
 // CHECK-6-NEXT: </RecordBlock>
 
-// RUN: llvm-bcanalyzer --dump %t/docs/bc/ACE81AFA6627B4CEF2B456FB6E1252925674AF7E.bc | FileCheck %s --check-prefix CHECK-7
+// RUN: llvm-bcanalyzer --dump %t/docs/bc/E3B54702FABFF4037025BA194FC27C47006330B5.bc | FileCheck %s --check-prefix CHECK-7
 // CHECK-7: <BLOCKINFO_BLOCK/>
 // CHECK-7-NEXT: <VersionBlock NumWords=1 BlockCodeSize=4>
 // CHECK-7-NEXT:   <Version abbrevid=4 op0=2/>
 // CHECK-7-NEXT: </VersionBlock>
-// CHECK-7-NEXT: <RecordBlock NumWords=33 BlockCodeSize=4>
+// CHECK-7-NEXT: <RecordBlock NumWords=37 BlockCodeSize=4>
 // CHECK-7-NEXT:   <USR abbrevid=4 op0=20 op1={{[0-9]+}} op2={{[0-9]+}} op3={{[0-9]+}} op4={{[0-9]+}} op5={{[0-9]+}} op6={{[0-9]+}} op7={{[0-9]+}} op8={{[0-9]+}} op9={{[0-9]+}} op10={{[0-9]+}} op11={{[0-9]+}} op12={{[0-9]+}} op13={{[0-9]+}} op14={{[0-9]+}} op15={{[0-9]+}} op16={{[0-9]+}} op17={{[0-9]+}} op18={{[0-9]+}} op19={{[0-9]+}} op20={{[0-9]+}}/>
-// CHECK-7-NEXT:   <Name abbrevid=5 op0=1/> blob data = 'A'
-// CHECK-7-NEXT:   <DefLocation abbrevid=6 op0=15 op1=4/> blob data = '{{.*}}'
-// CHECK-7-NEXT:   <TagType abbrevid=8 op0=2/>
-// CHECK-7-NEXT:   <MemberTypeBlock NumWords=8 BlockCodeSize=4>
-// CHECK-7-NEXT:     <ReferenceBlock NumWords=3 BlockCodeSize=4>
-// CHECK-7-NEXT:       <Name abbrevid=5 op0=3/> blob data = 'int'
-// CHECK-7-NEXT:       <Field abbrevid=7 op0=4/>
-// CHECK-7-NEXT:     </ReferenceBlock>
-// CHECK-7-NEXT:     <Name abbrevid=4 op0=1/> blob data = 'X'
-// CHECK-7-NEXT:     <Access abbrevid=5 op0=3/>
-// CHECK-7-NEXT:   </MemberTypeBlock>
-// CHECK-7-NEXT:   <MemberTypeBlock NumWords=8 BlockCodeSize=4>
-// CHECK-7-NEXT:     <ReferenceBlock NumWords=3 BlockCodeSize=4>
-// CHECK-7-NEXT:       <Name abbrevid=5 op0=3/> blob data = 'int'
-// CHECK-7-NEXT:       <Field abbrevid=7 op0=4/>
-// CHECK-7-NEXT:     </ReferenceBlock>
-// CHECK-7-NEXT:     <Name abbrevid=4 op0=1/> blob data = 'Y'
-// CHECK-7-NEXT:     <Access abbrevid=5 op0=3/>
-// CHECK-7-NEXT:   </MemberTypeBlock>
+// CHECK-7-NEXT:   <Name abbrevid=5 op0=1/> blob data = 'F'
+// CHECK-7-NEXT:   <DefLocation abbrevid=6 op0=36 op1=4/> blob data = '{{.*}}'
+// CHECK-7-NEXT:   <TagType abbrevid=8 op0=3/>
+// CHECK-7-NEXT:   <ReferenceBlock NumWords=10 BlockCodeSize=4>
+// CHECK-7-NEXT:     <USR abbrevid=4 op0=20 op1={{[0-9]+}} op2={{[0-9]+}} op3={{[0-9]+}} op4={{[0-9]+}} op5={{[0-9]+}} op6={{[0-9]+}} op7={{[0-9]+}} op8={{[0-9]+}} op9={{[0-9]+}} op10={{[0-9]+}} op11={{[0-9]+}} op12={{[0-9]+}} op13={{[0-9]+}} op14={{[0-9]+}} op15={{[0-9]+}} op16={{[0-9]+}} op17={{[0-9]+}} op18={{[0-9]+}} op19={{[0-9]+}} op20={{[0-9]+}}/>
+// CHECK-7-NEXT:     <Name abbrevid=5 op0=1/> blob data = 'E'
+// CHECK-7-NEXT:     <RefType abbrevid=6 op0=2/>
+// CHECK-7-NEXT:     <Field abbrevid=7 op0=2/>
+// CHECK-7-NEXT:   </ReferenceBlock>
+// CHECK-7-NEXT:   <ReferenceBlock NumWords=10 BlockCodeSize=4>
+// CHECK-7-NEXT:     <USR abbrevid=4 op0=20 op1={{[0-9]+}} op2={{[0-9]+}} op3={{[0-9]+}} op4={{[0-9]+}} op5={{[0-9]+}} op6={{[0-9]+}} op7={{[0-9]+}} op8={{[0-9]+}} op9={{[0-9]+}} op10={{[0-9]+}} op11={{[0-9]+}} op12={{[0-9]+}} op13={{[0-9]+}} op14={{[0-9]+}} op15={{[0-9]+}} op16={{[0-9]+}} op17={{[0-9]+}} op18={{[0-9]+}} op19={{[0-9]+}} op20={{[0-9]+}}/>
+// CHECK-7-NEXT:     <Name abbrevid=5 op0=1/> blob data = 'D'
+// CHECK-7-NEXT:     <RefType abbrevid=6 op0=2/>
+// CHECK-7-NEXT:     <Field abbrevid=7 op0=3/>
+// CHECK-7-NEXT:   </ReferenceBlock>
 // CHECK-7-NEXT: </RecordBlock>
+
+// RUN: llvm-bcanalyzer --dump %t/docs/bc/ACE81AFA6627B4CEF2B456FB6E1252925674AF7E.bc | FileCheck %s --check-prefix CHECK-8
+// CHECK-8: <BLOCKINFO_BLOCK/>
+// CHECK-8-NEXT: <VersionBlock NumWords=1 BlockCodeSize=4>
+// CHECK-8-NEXT:   <Version abbrevid=4 op0=2/>
+// CHECK-8-NEXT: </VersionBlock>
+// CHECK-8-NEXT: <RecordBlock NumWords=33 BlockCodeSize=4>
+// CHECK-8-NEXT:   <USR abbrevid=4 op0=20 op1={{[0-9]+}} op2={{[0-9]+}} op3={{[0-9]+}} op4={{[0-9]+}} op5={{[0-9]+}} op6={{[0-9]+}} op7={{[0-9]+}} op8={{[0-9]+}} op9={{[0-9]+}} op10={{[0-9]+}} op11={{[0-9]+}} op12={{[0-9]+}} op13={{[0-9]+}} op14={{[0-9]+}} op15={{[0-9]+}} op16={{[0-9]+}} op17={{[0-9]+}} op18={{[0-9]+}} op19={{[0-9]+}} op20={{[0-9]+}}/>
+// CHECK-8-NEXT:   <Name abbrevid=5 op0=1/> blob data = 'A'
+// CHECK-8-NEXT:   <DefLocation abbrevid=6 op0=15 op1=4/> blob data = '{{.*}}'
+// CHECK-8-NEXT:   <TagType abbrevid=8 op0=2/>
+// CHECK-8-NEXT:   <MemberTypeBlock NumWords=8 BlockCodeSize=4>
+// CHECK-8-NEXT:     <ReferenceBlock NumWords=3 BlockCodeSize=4>
+// CHECK-8-NEXT:       <Name abbrevid=5 op0=3/> blob data = 'int'
+// CHECK-8-NEXT:       <Field abbrevid=7 op0=4/>
+// CHECK-8-NEXT:     </ReferenceBlock>
+// CHECK-8-NEXT:     <Name abbrevid=4 op0=1/> blob data = 'X'
+// CHECK-8-NEXT:     <Access abbrevid=5 op0=3/>
+// CHECK-8-NEXT:   </MemberTypeBlock>
+// CHECK-8-NEXT:   <MemberTypeBlock NumWords=8 BlockCodeSize=4>
+// CHECK-8-NEXT:     <ReferenceBlock NumWords=3 BlockCodeSize=4>
+// CHECK-8-NEXT:       <Name abbrevid=5 op0=3/> blob data = 'int'
+// CHECK-8-NEXT:       <Field abbrevid=7 op0=4/>
+// CHECK-8-NEXT:     </ReferenceBlock>
+// CHECK-8-NEXT:     <Name abbrevid=4 op0=1/> blob data = 'Y'
+// CHECK-8-NEXT:     <Access abbrevid=5 op0=3/>
+// CHECK-8-NEXT:   </MemberTypeBlock>
+// CHECK-8-NEXT: </RecordBlock>

Modified: clang-tools-extra/trunk/test/clang-doc/mapper-record.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-doc/mapper-record.cpp?rev=343703&r1=343702&r2=343703&view=diff
==============================================================================
--- clang-tools-extra/trunk/test/clang-doc/mapper-record.cpp (original)
+++ clang-tools-extra/trunk/test/clang-doc/mapper-record.cpp Wed Oct  3 11:25:27 2018
@@ -39,6 +39,8 @@ class X {
   class Y {};
 };
 
+class G;
+
 // RUN: clang-doc --dump-mapper --doxygen --extra-arg=-fmodules-ts -p %t %t/test.cpp -output=%t/docs
 
 
@@ -105,98 +107,110 @@ class X {
 // CHECK-2-NEXT:   </MemberTypeBlock>
 // CHECK-2-NEXT: </RecordBlock>
 
-// RUN: llvm-bcanalyzer --dump %t/docs/bc/641AB4A3D36399954ACDE29C7A8833032BF40472.bc | FileCheck %s --check-prefix CHECK-3
+// RUN: llvm-bcanalyzer --dump %t/docs/bc/4202E8BF0ECB12AE354C8499C52725B0EE30AED5.bc | FileCheck %s --check-prefix CHECK-3
 // CHECK-3: <BLOCKINFO_BLOCK/>
 // CHECK-3-NEXT: <VersionBlock NumWords=1 BlockCodeSize=4>
 // CHECK-3-NEXT:   <Version abbrevid=4 op0=2/>
 // CHECK-3-NEXT: </VersionBlock>
-// CHECK-3-NEXT: <RecordBlock NumWords=24 BlockCodeSize=4>
+// CHECK-3-NEXT: <RecordBlock NumWords=12 BlockCodeSize=4>
 // CHECK-3-NEXT:   <USR abbrevid=4 op0=20 op1={{[0-9]+}} op2={{[0-9]+}} op3={{[0-9]+}} op4={{[0-9]+}} op5={{[0-9]+}} op6={{[0-9]+}} op7={{[0-9]+}} op8={{[0-9]+}} op9={{[0-9]+}} op10={{[0-9]+}} op11={{[0-9]+}} op12={{[0-9]+}} op13={{[0-9]+}} op14={{[0-9]+}} op15={{[0-9]+}} op16={{[0-9]+}} op17={{[0-9]+}} op18={{[0-9]+}} op19={{[0-9]+}} op20={{[0-9]+}}/>
-// CHECK-3-NEXT:   <Name abbrevid=5 op0=1/> blob data = 'Y'
-// CHECK-3-NEXT:   <ReferenceBlock NumWords=10 BlockCodeSize=4>
-// CHECK-3-NEXT:     <USR abbrevid=4 op0=20 op1={{[0-9]+}} op2={{[0-9]+}} op3={{[0-9]+}} op4={{[0-9]+}} op5={{[0-9]+}} op6={{[0-9]+}} op7={{[0-9]+}} op8={{[0-9]+}} op9={{[0-9]+}} op10={{[0-9]+}} op11={{[0-9]+}} op12={{[0-9]+}} op13={{[0-9]+}} op14={{[0-9]+}} op15={{[0-9]+}} op16={{[0-9]+}} op17={{[0-9]+}} op18={{[0-9]+}} op19={{[0-9]+}} op20={{[0-9]+}}/>
-// CHECK-3-NEXT:     <Name abbrevid=5 op0=1/> blob data = 'X'
-// CHECK-3-NEXT:     <RefType abbrevid=6 op0=2/>
-// CHECK-3-NEXT:     <Field abbrevid=7 op0=1/>
-// CHECK-3-NEXT:   </ReferenceBlock>
-// CHECK-3-NEXT:   <DefLocation abbrevid=6 op0=39 op1=4/> blob data = '{{.*}}'
+// CHECK-3-NEXT:   <Name abbrevid=5 op0=1/> blob data = 'G'
+// CHECK-3-NEXT:   <Location abbrevid=7 op0=42 op1=4/> blob data = '{{.*}}'
 // CHECK-3-NEXT:   <TagType abbrevid=8 op0=3/>
 // CHECK-3-NEXT: </RecordBlock>
 
-// RUN: llvm-bcanalyzer --dump %t/docs/bc/0000000000000000000000000000000000000000.bc | FileCheck %s --check-prefix CHECK-4
+// RUN: llvm-bcanalyzer --dump %t/docs/bc/641AB4A3D36399954ACDE29C7A8833032BF40472.bc | FileCheck %s --check-prefix CHECK-4
 // CHECK-4: <BLOCKINFO_BLOCK/>
 // CHECK-4-NEXT: <VersionBlock NumWords=1 BlockCodeSize=4>
 // CHECK-4-NEXT:   <Version abbrevid=4 op0=2/>
 // CHECK-4-NEXT: </VersionBlock>
-// CHECK-4-NEXT: <NamespaceBlock NumWords=19 BlockCodeSize=4>
-// CHECK-4-NEXT:   <EnumBlock NumWords=16 BlockCodeSize=4>
+// CHECK-4-NEXT: <RecordBlock NumWords=24 BlockCodeSize=4>
+// CHECK-4-NEXT:   <USR abbrevid=4 op0=20 op1={{[0-9]+}} op2={{[0-9]+}} op3={{[0-9]+}} op4={{[0-9]+}} op5={{[0-9]+}} op6={{[0-9]+}} op7={{[0-9]+}} op8={{[0-9]+}} op9={{[0-9]+}} op10={{[0-9]+}} op11={{[0-9]+}} op12={{[0-9]+}} op13={{[0-9]+}} op14={{[0-9]+}} op15={{[0-9]+}} op16={{[0-9]+}} op17={{[0-9]+}} op18={{[0-9]+}} op19={{[0-9]+}} op20={{[0-9]+}}/>
+// CHECK-4-NEXT:   <Name abbrevid=5 op0=1/> blob data = 'Y'
+// CHECK-4-NEXT:   <ReferenceBlock NumWords=10 BlockCodeSize=4>
 // CHECK-4-NEXT:     <USR abbrevid=4 op0=20 op1={{[0-9]+}} op2={{[0-9]+}} op3={{[0-9]+}} op4={{[0-9]+}} op5={{[0-9]+}} op6={{[0-9]+}} op7={{[0-9]+}} op8={{[0-9]+}} op9={{[0-9]+}} op10={{[0-9]+}} op11={{[0-9]+}} op12={{[0-9]+}} op13={{[0-9]+}} op14={{[0-9]+}} op15={{[0-9]+}} op16={{[0-9]+}} op17={{[0-9]+}} op18={{[0-9]+}} op19={{[0-9]+}} op20={{[0-9]+}}/>
-// CHECK-4-NEXT:     <Name abbrevid=5 op0=2/> blob data = 'Bc'
-// CHECK-4-NEXT:     <DefLocation abbrevid=6 op0=19 op1=4/> blob data = '{{.*}}'
-// CHECK-4-NEXT:     <Scoped abbrevid=9 op0=1/>
-// CHECK-4-NEXT:     <Member abbrevid=8 op0=1/> blob data = 'A'
-// CHECK-4-NEXT:     <Member abbrevid=8 op0=1/> blob data = 'B'
-// CHECK-4-NEXT:   </EnumBlock>
-// CHECK-4-NEXT: </NamespaceBlock>
+// CHECK-4-NEXT:     <Name abbrevid=5 op0=1/> blob data = 'X'
+// CHECK-4-NEXT:     <RefType abbrevid=6 op0=2/>
+// CHECK-4-NEXT:     <Field abbrevid=7 op0=1/>
+// CHECK-4-NEXT:   </ReferenceBlock>
+// CHECK-4-NEXT:   <DefLocation abbrevid=6 op0=39 op1=4/> blob data = '{{.*}}'
+// CHECK-4-NEXT:   <TagType abbrevid=8 op0=3/>
+// CHECK-4-NEXT: </RecordBlock>
 
-// RUN: llvm-bcanalyzer --dump %t/docs/bc/0921737541208B8FA9BB42B60F78AC1D779AA054.bc | FileCheck %s --check-prefix CHECK-5
+// RUN: llvm-bcanalyzer --dump %t/docs/bc/0000000000000000000000000000000000000000.bc | FileCheck %s --check-prefix CHECK-5
 // CHECK-5: <BLOCKINFO_BLOCK/>
 // CHECK-5-NEXT: <VersionBlock NumWords=1 BlockCodeSize=4>
 // CHECK-5-NEXT:   <Version abbrevid=4 op0=2/>
 // CHECK-5-NEXT: </VersionBlock>
-// CHECK-5-NEXT: <RecordBlock NumWords=12 BlockCodeSize=4>
-// CHECK-5-NEXT:   <USR abbrevid=4 op0=20 op1={{[0-9]+}} op2={{[0-9]+}} op3={{[0-9]+}} op4={{[0-9]+}} op5={{[0-9]+}} op6={{[0-9]+}} op7={{[0-9]+}} op8={{[0-9]+}} op9={{[0-9]+}} op10={{[0-9]+}} op11={{[0-9]+}} op12={{[0-9]+}} op13={{[0-9]+}} op14={{[0-9]+}} op15={{[0-9]+}} op16={{[0-9]+}} op17={{[0-9]+}} op18={{[0-9]+}} op19={{[0-9]+}} op20={{[0-9]+}}/>
-// CHECK-5-NEXT:   <Name abbrevid=5 op0=1/> blob data = 'D'
-// CHECK-5-NEXT:   <DefLocation abbrevid=6 op0=23 op1=4/> blob data = '{{.*}}'
-// CHECK-5-NEXT:   <TagType abbrevid=8 op0=3/>
-// CHECK-5-NEXT: </RecordBlock>
+// CHECK-5-NEXT: <NamespaceBlock NumWords=19 BlockCodeSize=4>
+// CHECK-5-NEXT:   <EnumBlock NumWords=16 BlockCodeSize=4>
+// CHECK-5-NEXT:     <USR abbrevid=4 op0=20 op1={{[0-9]+}} op2={{[0-9]+}} op3={{[0-9]+}} op4={{[0-9]+}} op5={{[0-9]+}} op6={{[0-9]+}} op7={{[0-9]+}} op8={{[0-9]+}} op9={{[0-9]+}} op10={{[0-9]+}} op11={{[0-9]+}} op12={{[0-9]+}} op13={{[0-9]+}} op14={{[0-9]+}} op15={{[0-9]+}} op16={{[0-9]+}} op17={{[0-9]+}} op18={{[0-9]+}} op19={{[0-9]+}} op20={{[0-9]+}}/>
+// CHECK-5-NEXT:     <Name abbrevid=5 op0=2/> blob data = 'Bc'
+// CHECK-5-NEXT:     <DefLocation abbrevid=6 op0=19 op1=4/> blob data = '{{.*}}'
+// CHECK-5-NEXT:     <Scoped abbrevid=9 op0=1/>
+// CHECK-5-NEXT:     <Member abbrevid=8 op0=1/> blob data = 'A'
+// CHECK-5-NEXT:     <Member abbrevid=8 op0=1/> blob data = 'B'
+// CHECK-5-NEXT:   </EnumBlock>
+// CHECK-5-NEXT: </NamespaceBlock>
 
-// RUN: llvm-bcanalyzer --dump %t/docs/bc/E3B54702FABFF4037025BA194FC27C47006330B5.bc | FileCheck %s --check-prefix CHECK-6
+// RUN: llvm-bcanalyzer --dump %t/docs/bc/0921737541208B8FA9BB42B60F78AC1D779AA054.bc | FileCheck %s --check-prefix CHECK-6
 // CHECK-6: <BLOCKINFO_BLOCK/>
 // CHECK-6-NEXT: <VersionBlock NumWords=1 BlockCodeSize=4>
 // CHECK-6-NEXT:   <Version abbrevid=4 op0=2/>
 // CHECK-6-NEXT: </VersionBlock>
-// CHECK-6-NEXT: <RecordBlock NumWords=37 BlockCodeSize=4>
+// CHECK-6-NEXT: <RecordBlock NumWords=12 BlockCodeSize=4>
 // CHECK-6-NEXT:   <USR abbrevid=4 op0=20 op1={{[0-9]+}} op2={{[0-9]+}} op3={{[0-9]+}} op4={{[0-9]+}} op5={{[0-9]+}} op6={{[0-9]+}} op7={{[0-9]+}} op8={{[0-9]+}} op9={{[0-9]+}} op10={{[0-9]+}} op11={{[0-9]+}} op12={{[0-9]+}} op13={{[0-9]+}} op14={{[0-9]+}} op15={{[0-9]+}} op16={{[0-9]+}} op17={{[0-9]+}} op18={{[0-9]+}} op19={{[0-9]+}} op20={{[0-9]+}}/>
-// CHECK-6-NEXT:   <Name abbrevid=5 op0=1/> blob data = 'F'
-// CHECK-6-NEXT:   <DefLocation abbrevid=6 op0=36 op1=4/> blob data = '{{.*}}'
+// CHECK-6-NEXT:   <Name abbrevid=5 op0=1/> blob data = 'D'
+// CHECK-6-NEXT:   <DefLocation abbrevid=6 op0=23 op1=4/> blob data = '{{.*}}'
 // CHECK-6-NEXT:   <TagType abbrevid=8 op0=3/>
-// CHECK-6-NEXT:   <ReferenceBlock NumWords=10 BlockCodeSize=4>
-// CHECK-6-NEXT:     <USR abbrevid=4 op0=20 op1={{[0-9]+}} op2={{[0-9]+}} op3={{[0-9]+}} op4={{[0-9]+}} op5={{[0-9]+}} op6={{[0-9]+}} op7={{[0-9]+}} op8={{[0-9]+}} op9={{[0-9]+}} op10={{[0-9]+}} op11={{[0-9]+}} op12={{[0-9]+}} op13={{[0-9]+}} op14={{[0-9]+}} op15={{[0-9]+}} op16={{[0-9]+}} op17={{[0-9]+}} op18={{[0-9]+}} op19={{[0-9]+}} op20={{[0-9]+}}/>
-// CHECK-6-NEXT:     <Name abbrevid=5 op0=1/> blob data = 'E'
-// CHECK-6-NEXT:     <RefType abbrevid=6 op0=2/>
-// CHECK-6-NEXT:     <Field abbrevid=7 op0=2/>
-// CHECK-6-NEXT:   </ReferenceBlock>
-// CHECK-6-NEXT:   <ReferenceBlock NumWords=10 BlockCodeSize=4>
-// CHECK-6-NEXT:     <USR abbrevid=4 op0=20 op1={{[0-9]+}} op2={{[0-9]+}} op3={{[0-9]+}} op4={{[0-9]+}} op5={{[0-9]+}} op6={{[0-9]+}} op7={{[0-9]+}} op8={{[0-9]+}} op9={{[0-9]+}} op10={{[0-9]+}} op11={{[0-9]+}} op12={{[0-9]+}} op13={{[0-9]+}} op14={{[0-9]+}} op15={{[0-9]+}} op16={{[0-9]+}} op17={{[0-9]+}} op18={{[0-9]+}} op19={{[0-9]+}} op20={{[0-9]+}}/>
-// CHECK-6-NEXT:     <Name abbrevid=5 op0=1/> blob data = 'D'
-// CHECK-6-NEXT:     <RefType abbrevid=6 op0=2/>
-// CHECK-6-NEXT:     <Field abbrevid=7 op0=3/>
-// CHECK-6-NEXT:   </ReferenceBlock>
 // CHECK-6-NEXT: </RecordBlock>
 
-// RUN: llvm-bcanalyzer --dump %t/docs/bc/ACE81AFA6627B4CEF2B456FB6E1252925674AF7E.bc | FileCheck %s --check-prefix CHECK-7
+// RUN: llvm-bcanalyzer --dump %t/docs/bc/E3B54702FABFF4037025BA194FC27C47006330B5.bc | FileCheck %s --check-prefix CHECK-7
 // CHECK-7: <BLOCKINFO_BLOCK/>
 // CHECK-7-NEXT: <VersionBlock NumWords=1 BlockCodeSize=4>
 // CHECK-7-NEXT:   <Version abbrevid=4 op0=2/>
 // CHECK-7-NEXT: </VersionBlock>
-// CHECK-7-NEXT: <RecordBlock NumWords=33 BlockCodeSize=4>
+// CHECK-7-NEXT: <RecordBlock NumWords=37 BlockCodeSize=4>
 // CHECK-7-NEXT:   <USR abbrevid=4 op0=20 op1={{[0-9]+}} op2={{[0-9]+}} op3={{[0-9]+}} op4={{[0-9]+}} op5={{[0-9]+}} op6={{[0-9]+}} op7={{[0-9]+}} op8={{[0-9]+}} op9={{[0-9]+}} op10={{[0-9]+}} op11={{[0-9]+}} op12={{[0-9]+}} op13={{[0-9]+}} op14={{[0-9]+}} op15={{[0-9]+}} op16={{[0-9]+}} op17={{[0-9]+}} op18={{[0-9]+}} op19={{[0-9]+}} op20={{[0-9]+}}/>
-// CHECK-7-NEXT:   <Name abbrevid=5 op0=1/> blob data = 'A'
-// CHECK-7-NEXT:   <DefLocation abbrevid=6 op0=15 op1=4/> blob data = '{{.*}}'
-// CHECK-7-NEXT:   <TagType abbrevid=8 op0=2/>
-// CHECK-7-NEXT:   <MemberTypeBlock NumWords=8 BlockCodeSize=4>
-// CHECK-7-NEXT:     <ReferenceBlock NumWords=3 BlockCodeSize=4>
-// CHECK-7-NEXT:       <Name abbrevid=5 op0=3/> blob data = 'int'
-// CHECK-7-NEXT:       <Field abbrevid=7 op0=4/>
-// CHECK-7-NEXT:     </ReferenceBlock>
-// CHECK-7-NEXT:     <Name abbrevid=4 op0=1/> blob data = 'X'
-// CHECK-7-NEXT:   </MemberTypeBlock>
-// CHECK-7-NEXT:   <MemberTypeBlock NumWords=8 BlockCodeSize=4>
-// CHECK-7-NEXT:     <ReferenceBlock NumWords=3 BlockCodeSize=4>
-// CHECK-7-NEXT:       <Name abbrevid=5 op0=3/> blob data = 'int'
-// CHECK-7-NEXT:       <Field abbrevid=7 op0=4/>
-// CHECK-7-NEXT:     </ReferenceBlock>
-// CHECK-7-NEXT:     <Name abbrevid=4 op0=1/> blob data = 'Y'
-// CHECK-7-NEXT:   </MemberTypeBlock>
+// CHECK-7-NEXT:   <Name abbrevid=5 op0=1/> blob data = 'F'
+// CHECK-7-NEXT:   <DefLocation abbrevid=6 op0=36 op1=4/> blob data = '{{.*}}'
+// CHECK-7-NEXT:   <TagType abbrevid=8 op0=3/>
+// CHECK-7-NEXT:   <ReferenceBlock NumWords=10 BlockCodeSize=4>
+// CHECK-7-NEXT:     <USR abbrevid=4 op0=20 op1={{[0-9]+}} op2={{[0-9]+}} op3={{[0-9]+}} op4={{[0-9]+}} op5={{[0-9]+}} op6={{[0-9]+}} op7={{[0-9]+}} op8={{[0-9]+}} op9={{[0-9]+}} op10={{[0-9]+}} op11={{[0-9]+}} op12={{[0-9]+}} op13={{[0-9]+}} op14={{[0-9]+}} op15={{[0-9]+}} op16={{[0-9]+}} op17={{[0-9]+}} op18={{[0-9]+}} op19={{[0-9]+}} op20={{[0-9]+}}/>
+// CHECK-7-NEXT:     <Name abbrevid=5 op0=1/> blob data = 'E'
+// CHECK-7-NEXT:     <RefType abbrevid=6 op0=2/>
+// CHECK-7-NEXT:     <Field abbrevid=7 op0=2/>
+// CHECK-7-NEXT:   </ReferenceBlock>
+// CHECK-7-NEXT:   <ReferenceBlock NumWords=10 BlockCodeSize=4>
+// CHECK-7-NEXT:     <USR abbrevid=4 op0=20 op1={{[0-9]+}} op2={{[0-9]+}} op3={{[0-9]+}} op4={{[0-9]+}} op5={{[0-9]+}} op6={{[0-9]+}} op7={{[0-9]+}} op8={{[0-9]+}} op9={{[0-9]+}} op10={{[0-9]+}} op11={{[0-9]+}} op12={{[0-9]+}} op13={{[0-9]+}} op14={{[0-9]+}} op15={{[0-9]+}} op16={{[0-9]+}} op17={{[0-9]+}} op18={{[0-9]+}} op19={{[0-9]+}} op20={{[0-9]+}}/>
+// CHECK-7-NEXT:     <Name abbrevid=5 op0=1/> blob data = 'D'
+// CHECK-7-NEXT:     <RefType abbrevid=6 op0=2/>
+// CHECK-7-NEXT:     <Field abbrevid=7 op0=3/>
+// CHECK-7-NEXT:   </ReferenceBlock>
 // CHECK-7-NEXT: </RecordBlock>
+
+// RUN: llvm-bcanalyzer --dump %t/docs/bc/ACE81AFA6627B4CEF2B456FB6E1252925674AF7E.bc | FileCheck %s --check-prefix CHECK-8
+// CHECK-8: <BLOCKINFO_BLOCK/>
+// CHECK-8-NEXT: <VersionBlock NumWords=1 BlockCodeSize=4>
+// CHECK-8-NEXT:   <Version abbrevid=4 op0=2/>
+// CHECK-8-NEXT: </VersionBlock>
+// CHECK-8-NEXT: <RecordBlock NumWords=33 BlockCodeSize=4>
+// CHECK-8-NEXT:   <USR abbrevid=4 op0=20 op1={{[0-9]+}} op2={{[0-9]+}} op3={{[0-9]+}} op4={{[0-9]+}} op5={{[0-9]+}} op6={{[0-9]+}} op7={{[0-9]+}} op8={{[0-9]+}} op9={{[0-9]+}} op10={{[0-9]+}} op11={{[0-9]+}} op12={{[0-9]+}} op13={{[0-9]+}} op14={{[0-9]+}} op15={{[0-9]+}} op16={{[0-9]+}} op17={{[0-9]+}} op18={{[0-9]+}} op19={{[0-9]+}} op20={{[0-9]+}}/>
+// CHECK-8-NEXT:   <Name abbrevid=5 op0=1/> blob data = 'A'
+// CHECK-8-NEXT:   <DefLocation abbrevid=6 op0=15 op1=4/> blob data = '{{.*}}'
+// CHECK-8-NEXT:   <TagType abbrevid=8 op0=2/>
+// CHECK-8-NEXT:   <MemberTypeBlock NumWords=8 BlockCodeSize=4>
+// CHECK-8-NEXT:     <ReferenceBlock NumWords=3 BlockCodeSize=4>
+// CHECK-8-NEXT:       <Name abbrevid=5 op0=3/> blob data = 'int'
+// CHECK-8-NEXT:       <Field abbrevid=7 op0=4/>
+// CHECK-8-NEXT:     </ReferenceBlock>
+// CHECK-8-NEXT:     <Name abbrevid=4 op0=1/> blob data = 'X'
+// CHECK-8-NEXT:   </MemberTypeBlock>
+// CHECK-8-NEXT:   <MemberTypeBlock NumWords=8 BlockCodeSize=4>
+// CHECK-8-NEXT:     <ReferenceBlock NumWords=3 BlockCodeSize=4>
+// CHECK-8-NEXT:       <Name abbrevid=5 op0=3/> blob data = 'int'
+// CHECK-8-NEXT:       <Field abbrevid=7 op0=4/>
+// CHECK-8-NEXT:     </ReferenceBlock>
+// CHECK-8-NEXT:     <Name abbrevid=4 op0=1/> blob data = 'Y'
+// CHECK-8-NEXT:   </MemberTypeBlock>
+// CHECK-8-NEXT: </RecordBlock>

Modified: clang-tools-extra/trunk/test/clang-doc/md-record.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-doc/md-record.cpp?rev=343703&r1=343702&r2=343703&view=diff
==============================================================================
--- clang-tools-extra/trunk/test/clang-doc/md-record.cpp (original)
+++ clang-tools-extra/trunk/test/clang-doc/md-record.cpp Wed Oct  3 11:25:27 2018
@@ -39,6 +39,8 @@ class X {
   class Y {};
 };
 
+class G;
+
 // RUN: clang-doc --format=md --doxygen --public --extra-arg=-fmodules-ts -p %t %t/test.cpp -output=%t/docs
 
 
@@ -95,3 +97,6 @@ class X {
 // CHECK-6: ## Members
 // CHECK-6: int X
 // CHECK-6: int Y
+
+// RUN: cat %t/docs/./G.md | FileCheck %s --check-prefix CHECK-7
+// CHECK-7: # class G

Modified: clang-tools-extra/trunk/test/clang-doc/public-record.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-doc/public-record.cpp?rev=343703&r1=343702&r2=343703&view=diff
==============================================================================
--- clang-tools-extra/trunk/test/clang-doc/public-record.cpp (original)
+++ clang-tools-extra/trunk/test/clang-doc/public-record.cpp Wed Oct  3 11:25:27 2018
@@ -39,6 +39,8 @@ class X {
   class Y {};
 };
 
+class G;
+
 // RUN: clang-doc --format=yaml --doxygen --public --extra-arg=-fmodules-ts -p %t %t/test.cpp -output=%t/docs
 
 
@@ -90,119 +92,129 @@ class X {
 // CHECK-2-NEXT:     USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
 // CHECK-2-NEXT: ...
 
-// RUN: cat %t/docs/./E.yaml | FileCheck %s --check-prefix CHECK-3
+// RUN: cat %t/docs/./G.yaml | FileCheck %s --check-prefix CHECK-3
 // CHECK-3: ---
 // CHECK-3-NEXT: USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
-// CHECK-3-NEXT: Name:            'E'
-// CHECK-3-NEXT: DefLocation:     
-// CHECK-3-NEXT:   LineNumber:      25
-// CHECK-3-NEXT:   Filename:        'test'
+// CHECK-3-NEXT: Name:            'G'
+// CHECK-3-NEXT: Location:        
+// CHECK-3-NEXT:   - LineNumber:      42
+// CHECK-3-NEXT:     Filename:        'test'
 // CHECK-3-NEXT: TagType:         Class
-// CHECK-3-NEXT: ChildFunctions:  
-// CHECK-3-NEXT:   - USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
-// CHECK-3-NEXT:     Name:            'E'
-// CHECK-3-NEXT:     Namespace:       
-// CHECK-3-NEXT:       - Type:            Record
-// CHECK-3-NEXT:         Name:            'E'
-// CHECK-3-NEXT:         USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
-// CHECK-3-NEXT:     DefLocation:     
-// CHECK-3-NEXT:       LineNumber:      27
-// CHECK-3-NEXT:       Filename:        'test'
-// CHECK-3-NEXT:     IsMethod:        true
-// CHECK-3-NEXT:     Parent:          
-// CHECK-3-NEXT:       Type:            Record
-// CHECK-3-NEXT:       Name:            'E'
-// CHECK-3-NEXT:       USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
-// CHECK-3-NEXT:     ReturnType:      
-// CHECK-3-NEXT:       Type:            
-// CHECK-3-NEXT:         Name:            'void'
-// CHECK-3-NEXT:   - USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
-// CHECK-3-NEXT:     Name:            '~E'
-// CHECK-3-NEXT:     Namespace:       
-// CHECK-3-NEXT:       - Type:            Record
-// CHECK-3-NEXT:         Name:            'E'
-// CHECK-3-NEXT:         USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
-// CHECK-3-NEXT:     DefLocation:     
-// CHECK-3-NEXT:       LineNumber:      28
-// CHECK-3-NEXT:       Filename:        'test'
-// CHECK-3-NEXT:     IsMethod:        true
-// CHECK-3-NEXT:     Parent:          
-// CHECK-3-NEXT:       Type:            Record
-// CHECK-3-NEXT:       Name:            'E'
-// CHECK-3-NEXT:       USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
-// CHECK-3-NEXT:     ReturnType:      
-// CHECK-3-NEXT:       Type:            
-// CHECK-3-NEXT:         Name:            'void'
-// CHECK-3-NEXT:   - USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
-// CHECK-3-NEXT:     Name:            'ProtectedMethod'
-// CHECK-3-NEXT:     Namespace:       
-// CHECK-3-NEXT:       - Type:            Record
-// CHECK-3-NEXT:         Name:            'E'
-// CHECK-3-NEXT:         USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
-// CHECK-3-NEXT:     DefLocation:     
-// CHECK-3-NEXT:       LineNumber:      34
-// CHECK-3-NEXT:       Filename:        'test'
-// CHECK-3-NEXT:     Location:        
-// CHECK-3-NEXT:       - LineNumber:      31
-// CHECK-3-NEXT:         Filename:        'test'
-// CHECK-3-NEXT:     IsMethod:        true
-// CHECK-3-NEXT:     Parent:          
-// CHECK-3-NEXT:       Type:            Record
-// CHECK-3-NEXT:       Name:            'E'
-// CHECK-3-NEXT:       USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
-// CHECK-3-NEXT:     ReturnType:      
-// CHECK-3-NEXT:       Type:            
-// CHECK-3-NEXT:         Name:            'void'
 // CHECK-3-NEXT: ...
 
-// RUN: cat %t/docs/./D.yaml | FileCheck %s --check-prefix CHECK-4
+// RUN: cat %t/docs/./E.yaml | FileCheck %s --check-prefix CHECK-4
 // CHECK-4: ---
 // CHECK-4-NEXT: USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
-// CHECK-4-NEXT: Name:            'D'
+// CHECK-4-NEXT: Name:            'E'
 // CHECK-4-NEXT: DefLocation:     
-// CHECK-4-NEXT:   LineNumber:      23
+// CHECK-4-NEXT:   LineNumber:      25
 // CHECK-4-NEXT:   Filename:        'test'
 // CHECK-4-NEXT: TagType:         Class
+// CHECK-4-NEXT: ChildFunctions:  
+// CHECK-4-NEXT:   - USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
+// CHECK-4-NEXT:     Name:            'E'
+// CHECK-4-NEXT:     Namespace:       
+// CHECK-4-NEXT:       - Type:            Record
+// CHECK-4-NEXT:         Name:            'E'
+// CHECK-4-NEXT:         USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
+// CHECK-4-NEXT:     DefLocation:     
+// CHECK-4-NEXT:       LineNumber:      27
+// CHECK-4-NEXT:       Filename:        'test'
+// CHECK-4-NEXT:     IsMethod:        true
+// CHECK-4-NEXT:     Parent:          
+// CHECK-4-NEXT:       Type:            Record
+// CHECK-4-NEXT:       Name:            'E'
+// CHECK-4-NEXT:       USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
+// CHECK-4-NEXT:     ReturnType:      
+// CHECK-4-NEXT:       Type:            
+// CHECK-4-NEXT:         Name:            'void'
+// CHECK-4-NEXT:   - USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
+// CHECK-4-NEXT:     Name:            '~E'
+// CHECK-4-NEXT:     Namespace:       
+// CHECK-4-NEXT:       - Type:            Record
+// CHECK-4-NEXT:         Name:            'E'
+// CHECK-4-NEXT:         USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
+// CHECK-4-NEXT:     DefLocation:     
+// CHECK-4-NEXT:       LineNumber:      28
+// CHECK-4-NEXT:       Filename:        'test'
+// CHECK-4-NEXT:     IsMethod:        true
+// CHECK-4-NEXT:     Parent:          
+// CHECK-4-NEXT:       Type:            Record
+// CHECK-4-NEXT:       Name:            'E'
+// CHECK-4-NEXT:       USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
+// CHECK-4-NEXT:     ReturnType:      
+// CHECK-4-NEXT:       Type:            
+// CHECK-4-NEXT:         Name:            'void'
+// CHECK-4-NEXT:   - USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
+// CHECK-4-NEXT:     Name:            'ProtectedMethod'
+// CHECK-4-NEXT:     Namespace:       
+// CHECK-4-NEXT:       - Type:            Record
+// CHECK-4-NEXT:         Name:            'E'
+// CHECK-4-NEXT:         USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
+// CHECK-4-NEXT:     DefLocation:     
+// CHECK-4-NEXT:       LineNumber:      34
+// CHECK-4-NEXT:       Filename:        'test'
+// CHECK-4-NEXT:     Location:        
+// CHECK-4-NEXT:       - LineNumber:      31
+// CHECK-4-NEXT:         Filename:        'test'
+// CHECK-4-NEXT:     IsMethod:        true
+// CHECK-4-NEXT:     Parent:          
+// CHECK-4-NEXT:       Type:            Record
+// CHECK-4-NEXT:       Name:            'E'
+// CHECK-4-NEXT:       USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
+// CHECK-4-NEXT:     ReturnType:      
+// CHECK-4-NEXT:       Type:            
+// CHECK-4-NEXT:         Name:            'void'
 // CHECK-4-NEXT: ...
 
-// RUN: cat %t/docs/./X.yaml | FileCheck %s --check-prefix CHECK-5
+// RUN: cat %t/docs/./D.yaml | FileCheck %s --check-prefix CHECK-5
 // CHECK-5: ---
 // CHECK-5-NEXT: USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
-// CHECK-5-NEXT: Name:            'X'
+// CHECK-5-NEXT: Name:            'D'
 // CHECK-5-NEXT: DefLocation:     
-// CHECK-5-NEXT:   LineNumber:      38
+// CHECK-5-NEXT:   LineNumber:      23
 // CHECK-5-NEXT:   Filename:        'test'
 // CHECK-5-NEXT: TagType:         Class
 // CHECK-5-NEXT: ...
 
-// RUN: cat %t/docs/./GlobalNamespace.yaml | FileCheck %s --check-prefix CHECK-6
+// RUN: cat %t/docs/./X.yaml | FileCheck %s --check-prefix CHECK-6
 // CHECK-6: ---
 // CHECK-6-NEXT: USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
-// CHECK-6-NEXT: ChildFunctions:  
-// CHECK-6-NEXT:   - USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
-// CHECK-6-NEXT:     Name:            'H'
-// CHECK-6-NEXT:     DefLocation:     
-// CHECK-6-NEXT:       LineNumber:      11
-// CHECK-6-NEXT:       Filename:        'test'
-// CHECK-6-NEXT:     ReturnType:      
-// CHECK-6-NEXT:       Type:            
-// CHECK-6-NEXT:         Name:            'void'
-// CHECK-6-NEXT: ChildEnums:      
-// CHECK-6-NEXT:   - USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
-// CHECK-6-NEXT:     Name:            'B'
-// CHECK-6-NEXT:     DefLocation:     
-// CHECK-6-NEXT:       LineNumber:      17
-// CHECK-6-NEXT:       Filename:        'test'
-// CHECK-6-NEXT:     Members:         
-// CHECK-6-NEXT:       - 'X'
-// CHECK-6-NEXT:       - 'Y'
-// CHECK-6-NEXT:   - USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
-// CHECK-6-NEXT:     Name:            'Bc'
-// CHECK-6-NEXT:     DefLocation:     
-// CHECK-6-NEXT:       LineNumber:      19
-// CHECK-6-NEXT:       Filename:        'test'
-// CHECK-6-NEXT:     Scoped:          true
-// CHECK-6-NEXT:     Members:         
-// CHECK-6-NEXT:       - 'A'
-// CHECK-6-NEXT:       - 'B'
+// CHECK-6-NEXT: Name:            'X'
+// CHECK-6-NEXT: DefLocation:     
+// CHECK-6-NEXT:   LineNumber:      38
+// CHECK-6-NEXT:   Filename:        'test'
+// CHECK-6-NEXT: TagType:         Class
 // CHECK-6-NEXT: ...
+
+// RUN: cat %t/docs/./GlobalNamespace.yaml | FileCheck %s --check-prefix CHECK-7
+// CHECK-7: ---
+// CHECK-7-NEXT: USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
+// CHECK-7-NEXT: ChildFunctions:  
+// CHECK-7-NEXT:   - USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
+// CHECK-7-NEXT:     Name:            'H'
+// CHECK-7-NEXT:     DefLocation:     
+// CHECK-7-NEXT:       LineNumber:      11
+// CHECK-7-NEXT:       Filename:        'test'
+// CHECK-7-NEXT:     ReturnType:      
+// CHECK-7-NEXT:       Type:            
+// CHECK-7-NEXT:         Name:            'void'
+// CHECK-7-NEXT: ChildEnums:      
+// CHECK-7-NEXT:   - USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
+// CHECK-7-NEXT:     Name:            'B'
+// CHECK-7-NEXT:     DefLocation:     
+// CHECK-7-NEXT:       LineNumber:      17
+// CHECK-7-NEXT:       Filename:        'test'
+// CHECK-7-NEXT:     Members:         
+// CHECK-7-NEXT:       - 'X'
+// CHECK-7-NEXT:       - 'Y'
+// CHECK-7-NEXT:   - USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
+// CHECK-7-NEXT:     Name:            'Bc'
+// CHECK-7-NEXT:     DefLocation:     
+// CHECK-7-NEXT:       LineNumber:      19
+// CHECK-7-NEXT:       Filename:        'test'
+// CHECK-7-NEXT:     Scoped:          true
+// CHECK-7-NEXT:     Members:         
+// CHECK-7-NEXT:       - 'A'
+// CHECK-7-NEXT:       - 'B'
+// CHECK-7-NEXT: ...

Modified: clang-tools-extra/trunk/test/clang-doc/test_cases/record.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-doc/test_cases/record.cpp?rev=343703&r1=343702&r2=343703&view=diff
==============================================================================
--- clang-tools-extra/trunk/test/clang-doc/test_cases/record.cpp (original)
+++ clang-tools-extra/trunk/test/clang-doc/test_cases/record.cpp Wed Oct  3 11:25:27 2018
@@ -38,3 +38,5 @@ class F : virtual private D, public E {}
 class X {
   class Y {};
 };
+
+class G;

Modified: clang-tools-extra/trunk/test/clang-doc/yaml-record.cpp
URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-doc/yaml-record.cpp?rev=343703&r1=343702&r2=343703&view=diff
==============================================================================
--- clang-tools-extra/trunk/test/clang-doc/yaml-record.cpp (original)
+++ clang-tools-extra/trunk/test/clang-doc/yaml-record.cpp Wed Oct  3 11:25:27 2018
@@ -39,6 +39,8 @@ class X {
   class Y {};
 };
 
+class G;
+
 // RUN: clang-doc --format=yaml --doxygen --extra-arg=-fmodules-ts -p %t %t/test.cpp -output=%t/docs
 
 
@@ -90,133 +92,143 @@ class X {
 // CHECK-2-NEXT:     USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
 // CHECK-2-NEXT: ...
 
-// RUN: cat %t/docs/./E.yaml | FileCheck %s --check-prefix CHECK-3
+// RUN: cat %t/docs/./G.yaml | FileCheck %s --check-prefix CHECK-3
 // CHECK-3: ---
 // CHECK-3-NEXT: USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
-// CHECK-3-NEXT: Name:            'E'
-// CHECK-3-NEXT: DefLocation:     
-// CHECK-3-NEXT:   LineNumber:      25
-// CHECK-3-NEXT:   Filename:        'test'
+// CHECK-3-NEXT: Name:            'G'
+// CHECK-3-NEXT: Location:        
+// CHECK-3-NEXT:   - LineNumber:      42
+// CHECK-3-NEXT:     Filename:        'test'
 // CHECK-3-NEXT: TagType:         Class
-// CHECK-3-NEXT: ChildFunctions:  
-// CHECK-3-NEXT:   - USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
-// CHECK-3-NEXT:     Name:            'E'
-// CHECK-3-NEXT:     Namespace:       
-// CHECK-3-NEXT:       - Type:            Record
-// CHECK-3-NEXT:         Name:            'E'
-// CHECK-3-NEXT:         USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
-// CHECK-3-NEXT:     DefLocation:     
-// CHECK-3-NEXT:       LineNumber:      27
-// CHECK-3-NEXT:       Filename:        'test'
-// CHECK-3-NEXT:     IsMethod:        true
-// CHECK-3-NEXT:     Parent:          
-// CHECK-3-NEXT:       Type:            Record
-// CHECK-3-NEXT:       Name:            'E'
-// CHECK-3-NEXT:       USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
-// CHECK-3-NEXT:     ReturnType:      
-// CHECK-3-NEXT:       Type:            
-// CHECK-3-NEXT:         Name:            'void'
-// CHECK-3-NEXT:   - USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
-// CHECK-3-NEXT:     Name:            '~E'
-// CHECK-3-NEXT:     Namespace:       
-// CHECK-3-NEXT:       - Type:            Record
-// CHECK-3-NEXT:         Name:            'E'
-// CHECK-3-NEXT:         USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
-// CHECK-3-NEXT:     DefLocation:     
-// CHECK-3-NEXT:       LineNumber:      28
-// CHECK-3-NEXT:       Filename:        'test'
-// CHECK-3-NEXT:     IsMethod:        true
-// CHECK-3-NEXT:     Parent:          
-// CHECK-3-NEXT:       Type:            Record
-// CHECK-3-NEXT:       Name:            'E'
-// CHECK-3-NEXT:       USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
-// CHECK-3-NEXT:     ReturnType:      
-// CHECK-3-NEXT:       Type:            
-// CHECK-3-NEXT:         Name:            'void'
-// CHECK-3-NEXT:   - USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
-// CHECK-3-NEXT:     Name:            'ProtectedMethod'
-// CHECK-3-NEXT:     Namespace:       
-// CHECK-3-NEXT:       - Type:            Record
-// CHECK-3-NEXT:         Name:            'E'
-// CHECK-3-NEXT:         USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
-// CHECK-3-NEXT:     DefLocation:     
-// CHECK-3-NEXT:       LineNumber:      34
-// CHECK-3-NEXT:       Filename:        'test'
-// CHECK-3-NEXT:     Location:        
-// CHECK-3-NEXT:       - LineNumber:      31
-// CHECK-3-NEXT:         Filename:        'test'
-// CHECK-3-NEXT:     IsMethod:        true
-// CHECK-3-NEXT:     Parent:          
-// CHECK-3-NEXT:       Type:            Record
-// CHECK-3-NEXT:       Name:            'E'
-// CHECK-3-NEXT:       USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
-// CHECK-3-NEXT:     ReturnType:      
-// CHECK-3-NEXT:       Type:            
-// CHECK-3-NEXT:         Name:            'void'
 // CHECK-3-NEXT: ...
 
-// RUN: cat %t/docs/./D.yaml | FileCheck %s --check-prefix CHECK-4
+// RUN: cat %t/docs/./E.yaml | FileCheck %s --check-prefix CHECK-4
 // CHECK-4: ---
 // CHECK-4-NEXT: USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
-// CHECK-4-NEXT: Name:            'D'
+// CHECK-4-NEXT: Name:            'E'
 // CHECK-4-NEXT: DefLocation:     
-// CHECK-4-NEXT:   LineNumber:      23
+// CHECK-4-NEXT:   LineNumber:      25
 // CHECK-4-NEXT:   Filename:        'test'
 // CHECK-4-NEXT: TagType:         Class
+// CHECK-4-NEXT: ChildFunctions:  
+// CHECK-4-NEXT:   - USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
+// CHECK-4-NEXT:     Name:            'E'
+// CHECK-4-NEXT:     Namespace:       
+// CHECK-4-NEXT:       - Type:            Record
+// CHECK-4-NEXT:         Name:            'E'
+// CHECK-4-NEXT:         USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
+// CHECK-4-NEXT:     DefLocation:     
+// CHECK-4-NEXT:       LineNumber:      27
+// CHECK-4-NEXT:       Filename:        'test'
+// CHECK-4-NEXT:     IsMethod:        true
+// CHECK-4-NEXT:     Parent:          
+// CHECK-4-NEXT:       Type:            Record
+// CHECK-4-NEXT:       Name:            'E'
+// CHECK-4-NEXT:       USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
+// CHECK-4-NEXT:     ReturnType:      
+// CHECK-4-NEXT:       Type:            
+// CHECK-4-NEXT:         Name:            'void'
+// CHECK-4-NEXT:   - USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
+// CHECK-4-NEXT:     Name:            '~E'
+// CHECK-4-NEXT:     Namespace:       
+// CHECK-4-NEXT:       - Type:            Record
+// CHECK-4-NEXT:         Name:            'E'
+// CHECK-4-NEXT:         USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
+// CHECK-4-NEXT:     DefLocation:     
+// CHECK-4-NEXT:       LineNumber:      28
+// CHECK-4-NEXT:       Filename:        'test'
+// CHECK-4-NEXT:     IsMethod:        true
+// CHECK-4-NEXT:     Parent:          
+// CHECK-4-NEXT:       Type:            Record
+// CHECK-4-NEXT:       Name:            'E'
+// CHECK-4-NEXT:       USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
+// CHECK-4-NEXT:     ReturnType:      
+// CHECK-4-NEXT:       Type:            
+// CHECK-4-NEXT:         Name:            'void'
+// CHECK-4-NEXT:   - USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
+// CHECK-4-NEXT:     Name:            'ProtectedMethod'
+// CHECK-4-NEXT:     Namespace:       
+// CHECK-4-NEXT:       - Type:            Record
+// CHECK-4-NEXT:         Name:            'E'
+// CHECK-4-NEXT:         USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
+// CHECK-4-NEXT:     DefLocation:     
+// CHECK-4-NEXT:       LineNumber:      34
+// CHECK-4-NEXT:       Filename:        'test'
+// CHECK-4-NEXT:     Location:        
+// CHECK-4-NEXT:       - LineNumber:      31
+// CHECK-4-NEXT:         Filename:        'test'
+// CHECK-4-NEXT:     IsMethod:        true
+// CHECK-4-NEXT:     Parent:          
+// CHECK-4-NEXT:       Type:            Record
+// CHECK-4-NEXT:       Name:            'E'
+// CHECK-4-NEXT:       USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
+// CHECK-4-NEXT:     ReturnType:      
+// CHECK-4-NEXT:       Type:            
+// CHECK-4-NEXT:         Name:            'void'
 // CHECK-4-NEXT: ...
 
-// RUN: cat %t/docs/./X.yaml | FileCheck %s --check-prefix CHECK-5
+// RUN: cat %t/docs/./D.yaml | FileCheck %s --check-prefix CHECK-5
 // CHECK-5: ---
 // CHECK-5-NEXT: USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
-// CHECK-5-NEXT: Name:            'X'
+// CHECK-5-NEXT: Name:            'D'
 // CHECK-5-NEXT: DefLocation:     
-// CHECK-5-NEXT:   LineNumber:      38
+// CHECK-5-NEXT:   LineNumber:      23
 // CHECK-5-NEXT:   Filename:        'test'
 // CHECK-5-NEXT: TagType:         Class
 // CHECK-5-NEXT: ...
 
-// RUN: cat %t/docs/./GlobalNamespace.yaml | FileCheck %s --check-prefix CHECK-6
+// RUN: cat %t/docs/./X.yaml | FileCheck %s --check-prefix CHECK-6
 // CHECK-6: ---
 // CHECK-6-NEXT: USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
-// CHECK-6-NEXT: ChildFunctions:  
-// CHECK-6-NEXT:   - USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
-// CHECK-6-NEXT:     Name:            'H'
-// CHECK-6-NEXT:     DefLocation:     
-// CHECK-6-NEXT:       LineNumber:      11
-// CHECK-6-NEXT:       Filename:        'test'
-// CHECK-6-NEXT:     ReturnType:      
-// CHECK-6-NEXT:       Type:            
-// CHECK-6-NEXT:         Name:            'void'
-// CHECK-6-NEXT: ChildEnums:      
-// CHECK-6-NEXT:   - USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
-// CHECK-6-NEXT:     Name:            'B'
-// CHECK-6-NEXT:     DefLocation:     
-// CHECK-6-NEXT:       LineNumber:      17
-// CHECK-6-NEXT:       Filename:        'test'
-// CHECK-6-NEXT:     Members:         
-// CHECK-6-NEXT:       - 'X'
-// CHECK-6-NEXT:       - 'Y'
-// CHECK-6-NEXT:   - USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
-// CHECK-6-NEXT:     Name:            'Bc'
-// CHECK-6-NEXT:     DefLocation:     
-// CHECK-6-NEXT:       LineNumber:      19
-// CHECK-6-NEXT:       Filename:        'test'
-// CHECK-6-NEXT:     Scoped:          true
-// CHECK-6-NEXT:     Members:         
-// CHECK-6-NEXT:       - 'A'
-// CHECK-6-NEXT:       - 'B'
+// CHECK-6-NEXT: Name:            'X'
+// CHECK-6-NEXT: DefLocation:     
+// CHECK-6-NEXT:   LineNumber:      38
+// CHECK-6-NEXT:   Filename:        'test'
+// CHECK-6-NEXT: TagType:         Class
 // CHECK-6-NEXT: ...
 
-// RUN: cat %t/docs/X/Y.yaml | FileCheck %s --check-prefix CHECK-7
+// RUN: cat %t/docs/./GlobalNamespace.yaml | FileCheck %s --check-prefix CHECK-7
 // CHECK-7: ---
 // CHECK-7-NEXT: USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
-// CHECK-7-NEXT: Name:            'Y'
-// CHECK-7-NEXT: Namespace:       
-// CHECK-7-NEXT:   - Type:            Record
-// CHECK-7-NEXT:     Name:            'X'
-// CHECK-7-NEXT:     USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
-// CHECK-7-NEXT: DefLocation:     
-// CHECK-7-NEXT:   LineNumber:      39
-// CHECK-7-NEXT:   Filename:        'test'
-// CHECK-7-NEXT: TagType:         Class
+// CHECK-7-NEXT: ChildFunctions:  
+// CHECK-7-NEXT:   - USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
+// CHECK-7-NEXT:     Name:            'H'
+// CHECK-7-NEXT:     DefLocation:     
+// CHECK-7-NEXT:       LineNumber:      11
+// CHECK-7-NEXT:       Filename:        'test'
+// CHECK-7-NEXT:     ReturnType:      
+// CHECK-7-NEXT:       Type:            
+// CHECK-7-NEXT:         Name:            'void'
+// CHECK-7-NEXT: ChildEnums:      
+// CHECK-7-NEXT:   - USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
+// CHECK-7-NEXT:     Name:            'B'
+// CHECK-7-NEXT:     DefLocation:     
+// CHECK-7-NEXT:       LineNumber:      17
+// CHECK-7-NEXT:       Filename:        'test'
+// CHECK-7-NEXT:     Members:         
+// CHECK-7-NEXT:       - 'X'
+// CHECK-7-NEXT:       - 'Y'
+// CHECK-7-NEXT:   - USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
+// CHECK-7-NEXT:     Name:            'Bc'
+// CHECK-7-NEXT:     DefLocation:     
+// CHECK-7-NEXT:       LineNumber:      19
+// CHECK-7-NEXT:       Filename:        'test'
+// CHECK-7-NEXT:     Scoped:          true
+// CHECK-7-NEXT:     Members:         
+// CHECK-7-NEXT:       - 'A'
+// CHECK-7-NEXT:       - 'B'
 // CHECK-7-NEXT: ...
+
+// RUN: cat %t/docs/X/Y.yaml | FileCheck %s --check-prefix CHECK-8
+// CHECK-8: ---
+// CHECK-8-NEXT: USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
+// CHECK-8-NEXT: Name:            'Y'
+// CHECK-8-NEXT: Namespace:       
+// CHECK-8-NEXT:   - Type:            Record
+// CHECK-8-NEXT:     Name:            'X'
+// CHECK-8-NEXT:     USR:             '{{[0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z][0-9A-Z]}}'
+// CHECK-8-NEXT: DefLocation:     
+// CHECK-8-NEXT:   LineNumber:      39
+// CHECK-8-NEXT:   Filename:        'test'
+// CHECK-8-NEXT: TagType:         Class
+// CHECK-8-NEXT: ...




More information about the cfe-commits mailing list