• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #include <cstdint>
2 #include <cstdio>
3 
4 struct Simple {
5   int x_;
SimpleSimple6   Simple() {
7     x_ = 5;
8   }
~SimpleSimple9   ~Simple() {
10     x_ += 1;
11   }
12 };
13 
14 Simple *volatile SimpleSink;
15 
LLVMFuzzerTestOneInput(const uint8_t * Data,size_t Size)16 extern "C" int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) {
17   if (Size < 4) return 0;
18   if (Data[0] == 'F' && Data[1] == 'U' && Data[2] == 'Z' && Data[3] == 'Z') {
19     {
20       Simple S;
21       SimpleSink = &S;
22     }
23     if (SimpleSink->x_) fprintf(stderr, "Failed to catch use-after-dtor\n");
24   }
25   return 0;
26 }
27 
28