aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
diff options
context:
space:
mode:
authorLion Yang <lion@aosc.io>2018-09-14 21:26:05 +0000
committerLion Yang <lion@aosc.io>2018-09-14 21:26:05 +0000
commitc68f78d5d86e4d3a2e69c5f1ed8d6a17f3e16233 (patch)
tree51ef277c69b7f86c63dcd8e684f8a64fd4eba78e /clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp
parenta3937b231db67c33b4f06e1a5a90a1168487bf21 (diff)
downloadllvm-c68f78d5d86e4d3a2e69c5f1ed8d6a17f3e16233.zip
llvm-c68f78d5d86e4d3a2e69c5f1ed8d6a17f3e16233.tar.gz
llvm-c68f78d5d86e4d3a2e69c5f1ed8d6a17f3e16233.tar.bz2
[PowerPC] Fix the calling convention for i1 arguments on PPC32
Summary: Integer types smaller than i32 must be extended to i32 by default. The feature "crbits" introduced at r202451 handles i1 as a special case, but it did not extend properly. The caller was, therefore, passing i1 stack arguments by writing 0/1 to the first byte of the 4-byte stack object and callee was reading the first byte for the value. "crbits" is enabled if the optimization level is greater than 1, which is very common in "release builds". Such discrepancies with ABI specification also introduces potential incompatibility with programs or libraries built with other compilers e.g. GCC. Fixes PR38661 Reviewers: hfinkel, cuviper Subscribers: sylvestre.ledru, glaubitz, nagisa, nemanjai, kbarton, llvm-commits Differential Revision: https://reviews.llvm.org/D51108 llvm-svn: 342288
Diffstat (limited to 'clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions