diff options
| author | Chris Lattner <sabre@nondot.org> | 2007-05-05 23:49:02 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2007-05-05 23:49:02 +0000 |
| commit | c2d05300307a5896731b4ee40687492af2b0d6ac (patch) | |
| tree | 757476a713cacbc06274abf410eaa610d325c303 /llvm/lib | |
| parent | 34b2735f209b6cff040ba2dbbaf56174786df0fb (diff) | |
| download | bcm5719-llvm-c2d05300307a5896731b4ee40687492af2b0d6ac.tar.gz bcm5719-llvm-c2d05300307a5896731b4ee40687492af2b0d6ac.zip | |
handle gep aliasee
llvm-svn: 36815
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/VMCore/Globals.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/llvm/lib/VMCore/Globals.cpp b/llvm/lib/VMCore/Globals.cpp index 021d6bf8012..eb0df60757b 100644 --- a/llvm/lib/VMCore/Globals.cpp +++ b/llvm/lib/VMCore/Globals.cpp @@ -210,7 +210,7 @@ void GlobalAlias::setAliasee(Constant *Aliasee) setOperand(0, Aliasee); } -const GlobalValue *GlobalAlias::getAliasedGlobal() const { +const GlobalValue *GlobalAlias::getAliasedGlobal() const { const Constant *C = getAliasee(); if (C) { if (const GlobalValue *GV = dyn_cast<GlobalValue>(C)) @@ -218,8 +218,9 @@ const GlobalValue *GlobalAlias::getAliasedGlobal() const { else { const ConstantExpr *CE = 0; if ((CE = dyn_cast<ConstantExpr>(C)) && - (CE->getOpcode() == Instruction::BitCast)) - return cast<GlobalValue>(CE->getOperand(0)); + (CE->getOpcode() == Instruction::BitCast || + CE->getOpcode() == Instruction::GetElementPtr)) + return dyn_cast<GlobalValue>(CE->getOperand(0)); else assert(0 && "Unsupported aliasee"); } |

