[libc-commits] [PATCH] D83931: Update Test (EXPECT_EQ and friends) to accept __uint128_t and floating point types (float, double, long double).

Alex Brachet via Phabricator via libc-commits libc-commits at lists.llvm.org
Tue Jul 21 10:56:29 PDT 2020


abrachet added inline comments.


================
Comment at: libc/utils/UnitTest/Test.cpp:40
+          cpp::EnableIfType<cpp::IsIntegral<T>::Value, int> N = sizeof(T) * 2>
+std::string uintToHex(T X, bool LowerCase = false) {
+  std::string s(N, '0');
----------------
abrachet wrote:
> lntue wrote:
> > lntue wrote:
> > > sivachandra wrote:
> > > > abrachet wrote:
> > > > > sivachandra wrote:
> > > > > > Nit: Do we need the flexibility in case? If not, just remove it?
> > > > > Is it more flexible? It's semantically the same as making this `std::string uintToHex(__uint128_t X, ...)` but inflates the binary.
> > > > Not sure I understand your comment. My comment was about `LowerCase` not being important. We want this function to be a template because it is called with values of different `T` types but the case seems not required.
> > > I also use this to display float, double, and exponent fields.  I can move the length N to a function parameter instead to reduce the generated binary.
> > Removed the case.
> > I can move the length N to a function parameter instead to reduce the generated binary.
> If you want the different number of leading `'0'`'s based on the width of the type then this is fine.
> 
> I didn't catch this before but this function has changed semantics between patches. This now returns "00000{hex number}" not just "{hex number}" Is that really what we want or should s be initialized like `(Length, '\0')`? If it is supposed to be with '\0' then I still think that this should just take a `__uint128_t`, but if the leading 0's are what we want then this is fine.
Actually I guess it wouldn't need to be initialized like that, that would just return "", oops. But last function returned a substring and didn't have any leading 0's and no need for the size of the type


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D83931/new/

https://reviews.llvm.org/D83931





More information about the libc-commits mailing list