Maybe this is a silly question: Are we supposedly able to support using a 32-bit build of
build/i686-unknown-linux-gnu/stage1/bin/rustc) to build a 64-bit target (e.g.
crossbuilds from any target to any target should work
provided memory is sufficient and cross toolchain exists
that is, I'm just playing locally with such a 32-bit build and then seeing the compiler ICE on that test
@pnkfelix that’s a bug in the compiler
FieldPlacement::count should return
u64 rather than
I'll file it. Its obviously not high priority.
yeah, there should be no usizes in the compiler usually, other than to refer to its own indexes and other memory-ey things.
are there CI builds that correspond to this?
my assumption is that there must not be, since this test would have been flagging this problem on any such CI build, right?
to be fair this code is impossible to build one way or the other
because that array is too large to fit into the 32-bit address sapce
it is a compile-fail test, yes
but a i686 compiler should definitely be able to build a x86_64 program which is valid here
but I do wonder if there might be a variant that could get into this same issue...
well other than the fact that the array would probably not fit
on the disk (actually it would due to
or in memory when the program is loaded
might we sometimes call
FieldLayout::count with such a count for something that is only constructed at runtime?
(I don't know enough about the overall control flow here)
I dont think so.
hmm yeah the code in
FieldPlacement::index_by_increasing_offset seems doomed