mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-11-02 07:11:49 +00:00
Recently changed getelementptr to use 'long' indexes for sequential types
instead of uints. This adds a translation scheme to be backwards compatible with old .ll files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3679 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
dbd35c22e4
commit
0235fe2b72
@ -1705,6 +1705,16 @@ MemoryInst : MALLOC Types {
|
||||
delete $4; delete $6;
|
||||
}
|
||||
| GETELEMENTPTR Types ValueRef IndexList {
|
||||
for (unsigned i = 0, e = $4->size(); i != e; ++i) {
|
||||
if ((*$4)[i]->getType() == Type::UIntTy) {
|
||||
std::cerr << "WARNING: Use of uint type indexes to getelementptr "
|
||||
<< "instruction: replacing with casts to long type.\n";
|
||||
Instruction *I = new CastInst((*$4)[i], Type::LongTy);
|
||||
CurBB->getInstList().push_back(I);
|
||||
(*$4)[i] = I;
|
||||
}
|
||||
}
|
||||
|
||||
if (!isa<PointerType>($2->get()))
|
||||
ThrowException("getelementptr insn requires pointer operand!");
|
||||
if (!GetElementPtrInst::getIndexedType(*$2, *$4, true))
|
||||
|
Loading…
Reference in New Issue
Block a user