diff options
Diffstat (limited to 'contrib/llvm/patches/patch-r262262-clang-r199188-sparc.diff')
-rw-r--r-- | contrib/llvm/patches/patch-r262262-clang-r199188-sparc.diff | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/contrib/llvm/patches/patch-r262262-clang-r199188-sparc.diff b/contrib/llvm/patches/patch-r262262-clang-r199188-sparc.diff new file mode 100644 index 0000000..77e5eaf --- /dev/null +++ b/contrib/llvm/patches/patch-r262262-clang-r199188-sparc.diff @@ -0,0 +1,35 @@ +Pull in r199188 from upstream clang trunk (by Jakob Stoklund Olesen): + + Puny 24-byte structs are returned by value on SPARC. + + Pad these structs up so they are sret-returned even on that + architecture. + +Introduced here: http://svn.freebsd.org/changeset/base/262262 + +Index: tools/clang/test/CodeGen/sret.c +=================================================================== +--- tools/clang/test/CodeGen/sret.c ++++ tools/clang/test/CodeGen/sret.c +@@ -4,6 +4,8 @@ struct abc { + long a; + long b; + long c; ++ long d; ++ long e; + }; + + struct abc foo1(void); +Index: tools/clang/test/CodeGen/sret2.c +=================================================================== +--- tools/clang/test/CodeGen/sret2.c ++++ tools/clang/test/CodeGen/sret2.c +@@ -4,6 +4,8 @@ struct abc { + long a; + long b; + long c; ++ long d; ++ long e; + }; + + struct abc foo2(){} |