Add concrete type overloads to PDBSymbol::findChildren().
authorZachary Turner <zturner@google.com>
Thu, 12 Feb 2015 21:09:24 +0000 (21:09 +0000)
committerZachary Turner <zturner@google.com>
Thu, 12 Feb 2015 21:09:24 +0000 (21:09 +0000)
commitc074de041b92af6a8279ea84a3675ab79579ec20
tree6dba14e46c1e40f84304087e8ded45dfa6ac04f6
parentcf7d164ec1c85e9f4d7a1508486342b67828e408
Add concrete type overloads to PDBSymbol::findChildren().

Frequently you only want to iterate over children of a specific
type (e.g. functions).  Previously you would get back a generic
interface that allowed iteration over the base symbol type,
which you would have to dyn_cast<> each one of.  With this patch,
we allow the user to specify the concrete type as a template
parameter, and it will return an iterator which returns instances
of the concrete type directly.

llvm-svn: 228960
39 files changed:
llvm/include/llvm/DebugInfo/PDB/ConcreteSymbolEnumerator.h [new file with mode: 0644]
llvm/include/llvm/DebugInfo/PDB/PDBSymbol.h
llvm/include/llvm/DebugInfo/PDB/PDBSymbolAnnotation.h
llvm/include/llvm/DebugInfo/PDB/PDBSymbolBlock.h
llvm/include/llvm/DebugInfo/PDB/PDBSymbolCompiland.h
llvm/include/llvm/DebugInfo/PDB/PDBSymbolCompilandDetails.h
llvm/include/llvm/DebugInfo/PDB/PDBSymbolCompilandEnv.h
llvm/include/llvm/DebugInfo/PDB/PDBSymbolCustom.h
llvm/include/llvm/DebugInfo/PDB/PDBSymbolData.h
llvm/include/llvm/DebugInfo/PDB/PDBSymbolExe.h
llvm/include/llvm/DebugInfo/PDB/PDBSymbolFunc.h
llvm/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugEnd.h
llvm/include/llvm/DebugInfo/PDB/PDBSymbolFuncDebugStart.h
llvm/include/llvm/DebugInfo/PDB/PDBSymbolLabel.h
llvm/include/llvm/DebugInfo/PDB/PDBSymbolPublicSymbol.h
llvm/include/llvm/DebugInfo/PDB/PDBSymbolThunk.h
llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeArray.h
llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeBaseClass.h
llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeBuiltin.h
llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeCustom.h
llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeDimension.h
llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeEnum.h
llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeFriend.h
llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionArg.h
llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeFunctionSig.h
llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeManaged.h
llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypePointer.h
llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeTypedef.h
llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeUDT.h
llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTable.h
llvm/include/llvm/DebugInfo/PDB/PDBSymbolTypeVTableShape.h
llvm/include/llvm/DebugInfo/PDB/PDBSymbolUsingNamespace.h
llvm/lib/DebugInfo/PDB/PDBExtras.cpp
llvm/lib/DebugInfo/PDB/PDBSymbol.cpp
llvm/lib/DebugInfo/PDB/PDBSymbolCompiland.cpp
llvm/lib/DebugInfo/PDB/PDBSymbolData.cpp
llvm/lib/DebugInfo/PDB/PDBSymbolFunc.cpp
llvm/lib/DebugInfo/PDB/PDBSymbolThunk.cpp
llvm/tools/llvm-pdbdump/llvm-pdbdump.cpp