loader: avoid UB when doing count trailing zeros

This commit is contained in:
Michael Scire 2021-04-30 10:03:54 -07:00
parent 15381409dc
commit dbcb1e1564
2 changed files with 49 additions and 10 deletions

View file

@ -44,7 +44,7 @@ namespace ams::ldr::caps {
constexpr ALWAYS_INLINE typename name::Type Get##name() const { return this->Get<name>(); }
constexpr ALWAYS_INLINE CapabilityId GetCapabilityId(util::BitPack32 cap) {
return static_cast<CapabilityId>(__builtin_ctz(~cap.value));
return static_cast<CapabilityId>(util::CountTrailingZeros<u32>(~cap.value));
}
constexpr inline util::BitPack32 EmptyCapability = {~u32{}};