MLton/mlton — pull request #21 by MatthewFluet (2013-06-11 13:08:22+00:00)
Title: Preserve types in RSSA to Machine translation of bogus operands.

An RSSA Offset operand with a non-location base is translated to a
dummy Machine Offset; in particular, to a zero Word of the appropriate
size. However, this can lead to a Machine program with a statement
like the following:
SP(24): Objptr (opt_3) = 0x0
Although this only arises in dead-code, a codegen that targets a
language with a static type system (like an in-progress LLVM codegen)
may dislike the treatment of a word as a pointer.

When introducing a bogus operand, use a Cast operand to preserve the
expected type of the operand.