Allow EmitVAArg() to promote types and use this to fix some N32/N64 vararg issues...
authorDaniel Sanders <daniel.sanders@imgtec.com>
Wed, 19 Nov 2014 10:01:35 +0000 (10:01 +0000)
committerDaniel Sanders <daniel.sanders@imgtec.com>
Wed, 19 Nov 2014 10:01:35 +0000 (10:01 +0000)
commit59229dcb290d6503ef9c4ae1bff2933325b86d0a
tree72dd22ac9ad5798a11ba0627fb185e6a613989bf
parentb7adf34ee064057d21de889445502ae01106f797
Allow EmitVAArg() to promote types and use this to fix some N32/N64 vararg issues for Mips.

Summary:
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.

Reviewers: theraven, atanasyan

Reviewed By: theraven, atanasyan

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D6248

llvm-svn: 222339
clang/lib/CodeGen/CGExprScalar.cpp
clang/lib/CodeGen/TargetInfo.cpp
clang/test/CodeGen/mips-varargs.c