]>
Commit | Line | Data |
---|---|---|
f1acdcd0 MM |
1 | /* { dg-do compile } |
2 | { dg-options "-O2 -Wstringop-overflow" } */ | |
3 | ||
4 | extern char* strchr (const char*, int); | |
5 | extern char* strcpy (char*, const char*); | |
6 | extern void* malloc (__SIZE_TYPE__); | |
7 | extern __SIZE_TYPE__ strlen (const char *); | |
8 | struct define_item { | |
9 | int len; | |
10 | char value[1]; | |
11 | }; | |
12 | ||
13 | struct define_item * foo(char *name) | |
14 | { | |
15 | char * p; | |
16 | char * value; | |
17 | struct define_item * ptr; | |
18 | ||
19 | p = strchr (name, '='); | |
20 | if (1 && p) { | |
21 | value = p+1; | |
22 | } else | |
23 | value = "1"; | |
24 | ||
25 | ptr = malloc(sizeof(struct define_item) + strlen(value)); | |
26 | strcpy(ptr->value, value); /* { dg-bogus "bytes into a region" } */ | |
27 | return ptr; | |
28 | } |