[PATCH] D56852: [AArch64] Use LL for 64-bit arguments

Petr Hosek via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Jan 24 17:17:06 PST 2019


phosek added a comment.

This broke our kernel build which uses `PRIx64` to print the return value of `__builtin_arm_rsr64`. This is correct because according to ACLE, the return type of that builtin should be `uint64_t`. Problem is that on AArch64, `unsigned long` is equivalent to `uint64_t`, not `unsigned long long` (at least on Linux and other platforms like Fuchsia).

The reason this wasn't caught by the test is because that test isn't strict enough. I've updated the test in D57210 <https://reviews.llvm.org/D57210>. I believe this change should be reverted because it's wrong and I created revert in D57209 <https://reviews.llvm.org/D57209>. I think the correct solution might be what rnk suggested in his comment, that is to use `W` instead of `LL`. I plan on landing my revert if I don't hear back by EOD because this is currently blocking our kernel build with the latest Clang.


Repository:
  rL LLVM

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

https://reviews.llvm.org/D56852





More information about the cfe-commits mailing list