1*885c5593SDmitri Gribenko // REQUIRES: static-analyzer 2*885c5593SDmitri Gribenko // RUN: clang-tidy %s -checks='-*,clang-analyzer-*' -- | FileCheck %s 3*885c5593SDmitri Gribenko extern void *malloc(unsigned long); 4*885c5593SDmitri Gribenko extern void free(void *); 5*885c5593SDmitri Gribenko f()6*885c5593SDmitri Gribenkovoid f() { 7*885c5593SDmitri Gribenko int *p = new int(42); 8*885c5593SDmitri Gribenko delete p; 9*885c5593SDmitri Gribenko delete p; 10*885c5593SDmitri Gribenko // CHECK: warning: Attempt to free released memory [clang-analyzer-cplusplus.NewDelete] 11*885c5593SDmitri Gribenko } 12*885c5593SDmitri Gribenko g()13*885c5593SDmitri Gribenkovoid g() { 14*885c5593SDmitri Gribenko void *q = malloc(132); 15*885c5593SDmitri Gribenko free(q); 16*885c5593SDmitri Gribenko free(q); 17*885c5593SDmitri Gribenko // CHECK: warning: Attempt to free released memory [clang-analyzer-unix.Malloc] 18*885c5593SDmitri Gribenko } 19