/* { dg-do link } */ /* { dg-options "-O -fdump-tree-optimized" } */ extern void link_error (void); void foo(int n) { int * f = (int*) __builtin_malloc (n * sizeof (int)); int * ff = (int*) __builtin_malloc (n * sizeof (int)); int i; for (i = 0; i < n; ++i) { f[i] = 1; ff[i] = 2; if (f[i] != 1) link_error (); if (ff[i] != 2) link_error (); } __builtin_free (f); __builtin_free (ff); } int main() { return 0; } /* We should have removed the calls to link_error () and all stores to the allocated memory. */ /* { dg-final { scan-tree-dump-times "\\\*D" 0 "optimized" } } */ /* { dg-final { cleanup-tree-dump "optimized" } } */