/* { dg-do compile } */ /* { dg-options "-O2 -fdump-tree-optimized" } */ /* { dg-final { scan-tree-dump-not "link_error" "optimized" } } */ /* { dg-final { scan-tree-dump-not "__builtin_strstr" "optimized" } } */ /* { dg-final { scan-tree-dump-times "return p_\[0-9]*.D.;" 1 "optimized" } } */ /* { dg-final { scan-tree-dump-times "__builtin_strchr" 1 "optimized" } } */ extern void link_error (void); void foo (void) { const char *p = "abcdef"; const char *q = "def"; p++; q++; if (__builtin_strstr (p, q) != p + 3) link_error (); } char * bar (const char *p) { return __builtin_strstr (p, ""); } char * baz (const char *p) { return __builtin_strstr (p, "d"); }