diff options
author | Aaron Ballman <aaron@aaronballman.com> | 2021-07-22 09:10:36 -0400 |
---|---|---|
committer | Aaron Ballman <aaron@aaronballman.com> | 2021-07-22 09:10:36 -0400 |
commit | 6bb042e70024354acc65457e153b40d50cada4f5 (patch) | |
tree | c2bfbb896e7f01620255b76d09deaacbcdd22142 /llvm/lib/Transforms/Utils/ModuleUtils.cpp | |
parent | 77440d644b3ba26443c1d14d04a4046fab07d731 (diff) | |
download | llvm-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