With this patch, passing a va_list to another function and reading 10 int's from
it works correctly on a big-endian target.
Based on a pair of patches by David Chisnall, one of which I've reworked
for the current trunk.
Paths
| Differential D6248
Allow EmitVAArg() to promote types and use this to fix some N32/N64 vararg issues for Mips. ClosedPublic Authored by dsanders on Nov 13 2014, 6:27 AM.
Details
Summary With this patch, passing a va_list to another function and reading 10 int's from Based on a pair of patches by David Chisnall, one of which I've reworked
Diff Detail Event TimelineComment Actions Bring this patch into line with the overall way David solved the issue with int There's a still a couple differences compared to the original patches this is
theraven edited edge metadata. Comment ActionsThat looks a lot cleaner than my hacks!
This revision is now accepted and ready to land.Nov 18 2014, 7:06 AM Comment Actions Thanks, committed in r222339.
Revision Contents
Diff 16155 lib/CodeGen/CGExprScalar.cpp
lib/CodeGen/TargetInfo.cpp
test/CodeGen/mips-varargs.c
|
I think the real fix here is to move the CreateLoad into each of the EmitVAArg() call, but this is a simpler change.