Mercurial > hg > CbC > CbC_llvm
view clang/test/Sema/warn-free-nonheap-object.c @ 266:00f31e85ec16 default tip
Added tag current for changeset 31d058e83c98
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Sat, 14 Oct 2023 10:13:55 +0900 |
parents | c4bab56944e8 |
children |
line wrap: on
line source
// RUN: %clang_cc1 -Wfree-nonheap-object -fsyntax-only -verify %s typedef __SIZE_TYPE__ size_t; void *malloc(size_t); void free(void *); struct S { int I; char *P; }; int GI; void test(void) { { free(&GI); // expected-warning {{attempt to call free on non-heap object 'GI'}} } { static int SI = 0; free(&SI); // expected-warning {{attempt to call free on non-heap object 'SI'}} } { int I = 0; free(&I); // expected-warning {{attempt to call free on non-heap object 'I'}} } { int I = 0; int *P = &I; free(P); // FIXME diagnosing this would require control flow analysis. } { void *P = malloc(8); free(P); } { int A[] = {0, 1, 2, 3}; free(A); // expected-warning {{attempt to call free on non-heap object 'A'}} free(&A); // expected-warning {{attempt to call free on non-heap object 'A'}} } { struct S s; free(&s.I); // expected-warning {{attempt to call free on non-heap object 'I'}} free(s.P); } }