aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/Utils/ModuleUtils.cpp
diff options
context:
space:
mode:
authorAaron Ballman <aaron@aaronballman.com>2021-07-22 09:10:36 -0400
committerAaron Ballman <aaron@aaronballman.com>2021-07-22 09:10:36 -0400
commit6bb042e70024354acc65457e153b40d50cada4f5 (patch)
treec2bfbb896e7f01620255b76d09deaacbcdd22142 /llvm/lib/Transforms/Utils/ModuleUtils.cpp
parent77440d644b3ba26443c1d14d04a4046fab07d731 (diff)
downloadllvm-6bb042e70024354acc65457e153b40d50cada4f5.zip
llvm-6bb042e70024354acc65457e153b40d50cada4f5.tar.gz
llvm-6bb042e70024354acc65457e153b40d50cada4f5.tar.bz2
Implement _ExtInt conversion rules
Clang implemented the _ExtInt datatype as a bit-precise integer type, which was then proposed to WG14. WG14 has accepted the proposal (http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2709.pdf), but Clang requires some additional work as a result. In the original Clang implementation, we elected to disallow implicit conversions involving these types until after WG14 finalized the rules. This patch implements the rules decided by WG14: no integer promotion for bit-precise types, conversions prefer the larger of the two types and in the event of a tie (say _ExtInt(32) and a 32-bit int), the standard type wins. There are more changes still needed to conform to N2709, but those will be handled in follow-up patches.
Diffstat (limited to 'llvm/lib/Transforms/Utils/ModuleUtils.cpp')
0 files changed, 0 insertions, 0 deletions