brintos

brintos / llvm-project-archived public Read only

0
0
Text · 702 B · b26ddcb Raw
42 lines · cpp
1void f(int *p);2 3void testUseMiddleArgAfterDelete(int *p) {4  delete p;5  f(p); // warn: use after free6}7 8class SomeClass {9public:10  void f();11};12 13void test() {14  SomeClass *c = new SomeClass;15  delete c;16  c->f(); // warn: use after free17}18 19void test() {20  int *p = (int *)__builtin_alloca(sizeof(int));21  delete p; // warn: deleting memory allocated by alloca22}23 24void test() {25  int *p = new int;26  delete p;27  delete p; // warn: attempt to free released28}29 30void test() {31  int i;32  delete &i; // warn: delete address of local33}34 35void test() {36  int *p = new int[1];37  delete[] (++p);38    // warn: argument to 'delete[]' is offset by 4 bytes39    // from the start of memory allocated by 'new[]'40}41 42