brintos

brintos / llvm-project-archived public Read only

0
0
Text · 989 B · b0cef25 Raw
40 lines · cpp
1// RUN: %clang_analyze_cc1 -analyzer-checker=core,unix.Malloc,unix.MismatchedDeallocator -std=c++11 -verify %s2// expected-no-diagnostics3 4typedef __typeof(sizeof(int)) size_t;5void *malloc(size_t);6void free(void *);7 8//--------------------------------------------------------------------9// Check that unix.Malloc + unix.MismatchedDeallocator does not enable10// warnings produced by the alpha.cplusplus.NewDelete checker.11//--------------------------------------------------------------------12void testNewDeleteNoWarn() {13  int i;14  delete &i; // no-warning15 16  int *p1 = new int;17  delete ++p1; // no-warning18 19  int *p2 = new int;20  delete p2;21  delete p2; // no-warning22 23  int *p3 = new int; // no-warning24 25  int *p4 = new int;26  delete p4;27  int j = *p4; // no-warning28}29 30void testUseZeroAllocNoWarn() {31  int *p1 = (int *)operator new(0);32  *p1 = 1; // no-warning33 34  int *p2 = (int *)operator new[](0);35  p2[0] = 1; // no-warning36 37  int *p3 = new int[0];38  p3[0] = 1; // no-warning39}40