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