Malloc+NewDelete_intersections.cpp revision 68eb4c25e961d18f82b47a0a385f90d7af09bcc3
1e449edc5bdace60f9d754c32abc5459bc7d94a14Jordan Rose// RUN: %clang_cc1 -analyze -analyzer-checker=core,unix.Malloc,cplusplus.NewDelete -std=c++11 -verify %s
2e449edc5bdace60f9d754c32abc5459bc7d94a14Jordan Rose// RUN: %clang_cc1 -analyze -analyzer-checker=core,unix.Malloc,cplusplus.NewDelete,alpha.cplusplus.NewDeleteLeaks -std=c++11 -verify %s
3648cb71625a2ab3164b2cacac9e9cb3d22b03bd7Anton Yartsev
4648cb71625a2ab3164b2cacac9e9cb3d22b03bd7Anton Yartsevtypedef __typeof(sizeof(int)) size_t;
5648cb71625a2ab3164b2cacac9e9cb3d22b03bd7Anton Yartsevvoid *malloc(size_t);
6648cb71625a2ab3164b2cacac9e9cb3d22b03bd7Anton Yartsevvoid free(void *);
7648cb71625a2ab3164b2cacac9e9cb3d22b03bd7Anton Yartsev
8648cb71625a2ab3164b2cacac9e9cb3d22b03bd7Anton Yartsev//-------------------------------------------------------------------
9e85deb356f5d2d2172b7ef70314bc9cfc742a936Jordan Rose// Check that unix.Malloc + cplusplus.NewDelete does not enable
10648cb71625a2ab3164b2cacac9e9cb3d22b03bd7Anton Yartsev// warnings produced by unix.MismatchedDeallocator.
11648cb71625a2ab3164b2cacac9e9cb3d22b03bd7Anton Yartsev//-------------------------------------------------------------------
12648cb71625a2ab3164b2cacac9e9cb3d22b03bd7Anton Yartsevvoid testMismatchedDeallocator() {
13648cb71625a2ab3164b2cacac9e9cb3d22b03bd7Anton Yartsev  int *p = (int *)malloc(sizeof(int));
14648cb71625a2ab3164b2cacac9e9cb3d22b03bd7Anton Yartsev  delete p;
1568eb4c25e961d18f82b47a0a385f90d7af09bcc3Anna Zaks} // expected-warning{{Potential leak of memory pointed to by 'p'}}
16