summaryrefslogtreecommitdiff
path: root/include/llvm/SymbolTableListTraits.h
diff options
context:
space:
mode:
authorGabor Greif <ggreif@gmail.com>2009-03-07 12:33:24 +0000
committerGabor Greif <ggreif@gmail.com>2009-03-07 12:33:24 +0000
commit0dd2a6a89f49438b239638ab147ac5746d6c32c3 (patch)
treed56d4d2f8f90f2b2ae6248e18631cc6896968f12 /include/llvm/SymbolTableListTraits.h
parent7afd3e1599222dc691cca9e601800878c8546663 (diff)
downloadllvm-0dd2a6a89f49438b239638ab147ac5746d6c32c3.tar.gz
llvm-0dd2a6a89f49438b239638ab147ac5746d6c32c3.tar.bz2
llvm-0dd2a6a89f49438b239638ab147ac5746d6c32c3.tar.xz
simplify the way how traits get hold of the symbol table
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66336 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/SymbolTableListTraits.h')
-rw-r--r--include/llvm/SymbolTableListTraits.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/include/llvm/SymbolTableListTraits.h b/include/llvm/SymbolTableListTraits.h
index 44f64dc57f..337b76f766 100644
--- a/include/llvm/SymbolTableListTraits.h
+++ b/include/llvm/SymbolTableListTraits.h
@@ -55,8 +55,12 @@ public:
}
static iplist<ValueSubClass> &getList(ItemParentClass *Par) {
- return Par->*(Par->getSublistAccess((ValueSubClass*)0));
-}
+ return Par->*(Par->getSublistAccess((ValueSubClass*)0));
+ }
+
+ static ValueSymbolTable *getSymTab(ItemParentClass *Par) {
+ return Par ? toPtr(Par->getValueSymbolTable()) : 0;
+ }
void addNodeToList(ValueSubClass *V);
void removeNodeFromList(ValueSubClass *V);
@@ -66,6 +70,8 @@ public:
//private:
template<typename TPtr>
void setSymTabObject(TPtr *, TPtr);
+ static ValueSymbolTable *toPtr(ValueSymbolTable *P) { return P; }
+ static ValueSymbolTable *toPtr(ValueSymbolTable &R) { return &R; }
};
} // End llvm namespace