summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CodeGenAction.cpp
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2014-08-29 07:27:49 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2014-08-29 07:27:49 +0000
commit0392cf892fcbad8224380c36c3e91dcaff18ece9 (patch)
tree3ce48e5827aa39b4a969fda9f02b6e7ba0f28c29 /clang/lib/CodeGen/CodeGenAction.cpp
parent486f440cf12caa14a96b7fbc822d1f910c688e2d (diff)
downloadbcm5719-llvm-0392cf892fcbad8224380c36c3e91dcaff18ece9.tar.gz
bcm5719-llvm-0392cf892fcbad8224380c36c3e91dcaff18ece9.zip
CodeGen: Don't completely mess-up optimized atomic libcalls
Summary: We did a great job getting this wrong: - We messed up which LLVM IR types to use for arguments and return values. The optimized libcalls use integer types for values. Clang attempted to use the IR type which corresponds to the value passed in instead of using an appropriately sized integer type. This would result in violations of the ABI for, as an example, floating point types. - We didn't bother recording the result of the atomic libcall in the destination memory. Instead, call the functions with arguments matching the type of the libcall prototype's parameters. This fixes PR20780. Differential Revision: http://reviews.llvm.org/D5098 llvm-svn: 216714
Diffstat (limited to 'clang/lib/CodeGen/CodeGenAction.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud