#include #include #include char volatile * __attribute__((noinline)) foo (unsigned i) { char volatile buffer[10]; char volatile *k = i ? & buffer[i] : NULL; /* defeat addr-of-local-returned warning */ return k; } int main () { char volatile *f = foo (5); f[0] = 'b'; return 0; } /* { dg-output "mudflap violation 1.*" } */ /* { dg-output "Nearby object.*" } */ /* { dg-output "mudflap dead object.*buffer.*alloc.*dealloc" } */ /* { dg-do run { xfail *-*-* } } */