         offset = stackOffsetExpr bind.spOffset, bind.type
         if ty instanceof StructType
           return offset
-        return new Value U32(o), [new Index offset]
+        return new Value ty.view(o), [new Index offset]
       if inner.value is 'null' and ty instanceof PointerType
         # This matters for TI: null will cause the typeset of pointers to be
         # dimorphic.

  # Compute the ratio.
  if lalign < ralign
    ratio = ralign / lalign
    op = '<<'
  else
    ratio = lalign / ralign
    op = '>>'
  # Pretty sure this is true all the time, commenting it out for now.
  # if ratio and not ((ratio & (ratio - 1)) is 0)
  #   error this, "ratio between primitive type sizes must be a power of 2"

      v = makeDeref o, v, vty, field.offset + cumulativeOffset, fty
      vty = fty
      cumulativeOffset = 0
  if cumulativeOffset isnt 0
    offsetExpr v, vty, cumulativeOffset, fty
  else
    v

