Byval argument pair formation assumes that if a type is less than 8 bytes
it must be an integer and not a pointer, which is not true for x32 and NaCl.
Relax the assertion and add a test for a codegen case that triggered it.
Differential D10701
Relax assertion in x86_64 byval argument handling for 32-bit pointers dschuff on Jun 24 2015, 11:27 AM. Authored by
Details Byval argument pair formation assumes that if a type is less than 8 bytes Relax the assertion and add a test for a codegen case that triggered it.
Diff Detail Event Timeline
Comment Actions
|
For the old "two sorts of types..." comment, technically a pointer type is still a separate type from i8/i16/i32, so it would be worth updating the comment for x32 pointers.
I assume that the rest of the code knows how to cast a pointer type to the wider i64 type.