aaronpuchert added a comment.

In D125429#3511648 <https://reviews.llvm.org/D125429#3511648>, @aaronpuchert 
wrote:

> And it appears that `unsigned long` does not have a clear favorite here.

Found it on StackOverflow: 
https://stackoverflow.com/questions/11603818/why-is-there-ambiguity-between-uint32-t-and-uint64-t-when-using-size-t-on-mac-os.

> Is that because `long` is 32-bit like on Windows, but at the same time it's 
> not the same as `unsigned` which is also 32-bit?

No. Mac is LP64 
<https://en.wikipedia.org/wiki/64-bit_computing#64-bit_data_models>, but uses 
`long long` for `(u)int64_t`.

> Perhaps we should overload on `(u)int32_t` instead `int`/`unsigned`?

Hence this doesn't solve it. I'm thinking that perhaps we should overload on 
`int`, `long`, `long long`. Seems silly, but C++ defines them as different 
types. Proposed this in D125580 <https://reviews.llvm.org/D125580>.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D125429

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to