| /* PR tree-optimization/91570 - ICE in get_range_strlen_dynamic on |
| a conditional of two strings |
| { dg-do compile } |
| { dg-options "-O2 -Wall" } */ |
| |
| extern char a[], b[]; |
| |
| /* Test case from comment #0 on the bug. */ |
| |
| void comment_0 (int i) |
| { |
| a[0] = 0; |
| b[0] = '1'; |
| |
| const char *p = i ? b : a; |
| |
| if (__builtin_snprintf (0, 0, "%s", p) < 4) |
| __builtin_abort (); |
| } |
| |
| |
| /* Test case from comment #2 on the bug. */ |
| |
| void comment_2 (char *s) |
| { |
| char *t = __builtin_strrchr (s, '/'); |
| __builtin_strcat (s, ".SIF"); |
| t = t ? t : s; |
| __builtin_printf ("%s", t); |
| } |