| /* PR tree-optimization/64715 */ |
| /* { dg-do compile } */ |
| /* { dg-options "-O2 -fdump-tree-optimized" } */ |
| |
| extern inline __attribute__ ((always_inline, gnu_inline, artificial, nothrow, leaf)) char * |
| strcpy (char *__restrict dest, const char *__restrict src) |
| { |
| return __builtin___strcpy_chk (dest, src, __builtin_object_size (dest, 2 > 1)); |
| } |
| |
| const char *str1 = "JIHGFEDCBA"; |
| void bar (char *); |
| |
| void |
| foo () |
| { |
| struct A { char buf1[9]; char buf2[1]; } a; |
| strcpy (a.buf1 + (0 + 4), str1 + 5); |
| bar ((char *) &a); |
| } |
| |
| /* { dg-final { scan-tree-dump "__builtin___strcpy_chk\[^;\n\r\]*, 5\\\);" "optimized" } } */ |