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 Actions That 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 16325 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.