31 if (rand() % 2)
return rand();
32 const char *Special =
"!*'();:@&=+$,/?%#[]123ABCxyz-`~.";
33 return Special[rand() % (
sizeof(Special) - 1)];
37 size_t Mutate(uint8_t *Data,
size_t Size,
size_t MaxSize) {
39 assert(Size <= MaxSize);
41 for (
size_t i = 0; i < MaxSize; i++)
46 size_t Idx = rand() % Size;
51 memmove(Data + Idx, Data + Idx + 1, Size - Idx - 1);
54 [[clang::fallthrough]];
58 memmove(Data + Idx + 1, Data + Idx, Size - Idx);
size_t Mutate(uint8_t *Data, size_t Size, size_t MaxSize)
static GCMetadataPrinterRegistry::Add< ErlangGCPrinter > X("erlang","erlang-compatible garbage collector")
static char FlipRandomBit(char X)