mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-01 05:01:59 +01:00
[libFuzzer] Use long long to ensure 64 bits.
We should always use unsigned long long to ensure 64 bits. On Windows, unsigned long is 4 bytes. This was the reason why value-profile-cmp4.test was failing on Windows. Differential Revision: https://reviews.llvm.org/D29617 llvm-svn: 294390
This commit is contained in:
parent
a987f5c9ea
commit
f7fe49c66d
@ -273,7 +273,7 @@ ATTRIBUTE_TARGET_POPCNT ALWAYS_INLINE
|
|||||||
ATTRIBUTE_NO_SANITIZE_ALL
|
ATTRIBUTE_NO_SANITIZE_ALL
|
||||||
void TracePC::HandleCmp(uintptr_t PC, T Arg1, T Arg2) {
|
void TracePC::HandleCmp(uintptr_t PC, T Arg1, T Arg2) {
|
||||||
uint64_t ArgXor = Arg1 ^ Arg2;
|
uint64_t ArgXor = Arg1 ^ Arg2;
|
||||||
uint64_t ArgDistance = __builtin_popcountl(ArgXor) + 1; // [1,65]
|
uint64_t ArgDistance = __builtin_popcountll(ArgXor) + 1; // [1,65]
|
||||||
uintptr_t Idx = ((PC & 4095) + 1) * ArgDistance;
|
uintptr_t Idx = ((PC & 4095) + 1) * ArgDistance;
|
||||||
if (sizeof(T) == 4)
|
if (sizeof(T) == 4)
|
||||||
TORC4.Insert(ArgXor, Arg1, Arg2);
|
TORC4.Insert(ArgXor, Arg1, Arg2);
|
||||||
|
@ -68,7 +68,7 @@ struct ValueBitMap {
|
|||||||
Other.Map[i] = 0;
|
Other.Map[i] = 0;
|
||||||
}
|
}
|
||||||
if (M)
|
if (M)
|
||||||
Res += __builtin_popcountl(M);
|
Res += __builtin_popcountll(M);
|
||||||
}
|
}
|
||||||
NumBits = Res;
|
NumBits = Res;
|
||||||
return OldNumBits < NumBits;
|
return OldNumBits < NumBits;
|
||||||
|
@ -14,7 +14,7 @@ extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
|
|||||||
uint64_t y;
|
uint64_t y;
|
||||||
memcpy(&x, Data, sizeof(x));
|
memcpy(&x, Data, sizeof(x));
|
||||||
memcpy(&y, Data + sizeof(x), sizeof(y));
|
memcpy(&y, Data + sizeof(x), sizeof(y));
|
||||||
if (labs(x) < 0 && y == 0xbaddcafedeadbeefUL) {
|
if (llabs(x) < 0 && y == 0xbaddcafedeadbeefULL) {
|
||||||
printf("BINGO; Found the target, exiting; x = 0x%lx y 0x%lx\n", x, y);
|
printf("BINGO; Found the target, exiting; x = 0x%lx y 0x%lx\n", x, y);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user