[PATCH] Allow EmitVAArg() to promote types and use this to fix some N32/N64 vararg issues for Mips.

Daniel Sanders daniel.sanders at imgtec.com
Tue Nov 18 05:46:22 PST 2014


Bring this patch into line with the overall way David solved the issue with int
not being a promotable integer. That is, promote the Clang type rather than
promote the LLVM IR type.

There's a still a couple differences compared to the original patches this is
based on:
* intptr_t/uintptr_t is 32-bit for N32 so we explicitly ask for a 64-bit integer
  type.
* We only promote if the integer type is smaller than the one we promote to.
  This prevents accidental demotion of 128-bit ints.

http://reviews.llvm.org/D6248

Files:
  lib/CodeGen/CGExprScalar.cpp
  lib/CodeGen/TargetInfo.cpp
  test/CodeGen/mips-varargs.c
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D6248.16325.patch
Type: text/x-patch
Size: 10826 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20141118/671e8769/attachment.bin>


More information about the cfe-commits mailing list