HomePhabricator

Implement _ExtInt conversion rules

Authored by aaron.ballman on Jul 22 2021, 6:10 AM.

Description

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.

Details

Committed
aaron.ballmanJul 22 2021, 6:10 AM
Parents
rG77440d644b3b: [lldb][NFC] Allow range-based for loops over DWARFDIE's children
Branches
Unknown
Tags
Unknown