#include <cstdint> | |
#include <cstdio> | |
struct Simple { | |
int x_; | |
Simple() { | |
x_ = 5; | |
} | |
~Simple() { | |
x_ += 1; | |
} | |
}; | |
Simple *volatile SimpleSink; | |
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { | |
if (Size < 4) return 0; | |
if (Data[0] == 'F' && Data[1] == 'U' && Data[2] == 'Z' && Data[3] == 'Z') { | |
{ | |
Simple S; | |
SimpleSink = &S; | |
} | |
if (SimpleSink->x_) fprintf(stderr, "Failed to catch use-after-dtor\n"); | |
} | |
return 0; | |
} | |