mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-14 14:24:05 +00:00
Do not allow bytecode files with unresolved references to be read. Doing
so lets wierd ConstantPlaceholder objects sneak into the system which confuses it greatly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18487 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -1312,7 +1312,7 @@ Constant *BytecodeReader::ParseConstantValue(unsigned TypeID) {
|
||||
// Construct a ConstantExpr of the appropriate kind
|
||||
if (isExprNumArgs == 1) { // All one-operand expressions
|
||||
if (Opcode != Instruction::Cast)
|
||||
error("Only Cast instruction has one argument for ConstantExpr");
|
||||
error("Only cast instruction has one argument for ConstantExpr");
|
||||
|
||||
Constant* Result = ConstantExpr::getCast(ArgVec[0], getType(TypeID));
|
||||
if (Handler) Handler->handleConstantExpression(Opcode, ArgVec, Result);
|
||||
@ -1568,6 +1568,12 @@ void BytecodeReader::ParseConstantPool(ValueTable &Tab,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// After we have finished parsing the constant pool, we had better not have
|
||||
// any dangling references left.
|
||||
if (!ConstantFwdRefs.empty())
|
||||
error("Unresolved constant references exist!");
|
||||
|
||||
checkPastBlockEnd("Constant Pool");
|
||||
if (Handler) Handler->handleGlobalConstantsEnd();
|
||||
}
|
||||
|
Reference in New Issue
Block a user