diff options
Diffstat (limited to 'gcc/testsuite/gcc.c-torture/compile/pr33382.c')
-rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/pr33382.c | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr33382.c b/gcc/testsuite/gcc.c-torture/compile/pr33382.c new file mode 100644 index 000000000..c939cf7b7 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/pr33382.c @@ -0,0 +1,95 @@ +typedef __SIZE_TYPE__ size_t; +typedef struct { + int disable; + char *searchconfig[]; +} config_t; +typedef struct { + void *lng; +} arglist_t; +config_t config = { + .searchconfig = { + ((void *) 0)} +}; + +arglist_t arglist[] = { + { + &config.searchconfig[0]} +}; +const int arglistsize = ((int) (sizeof(arglist) / sizeof(arglist_t))); +void show_configuration(char *arg) +{ + int i; + + if (!__extension__( { + size_t + __s1_len, + __s2_len; (__builtin_constant_p(arglist[i].lng) + && (__s1_len = (!((size_t) + (const void *) + 1) + || __s2_len >= 4)) + ? : (__builtin_constant_p(arglist[i].lng) + && ((size_t) + (const void *) + 4) + ? (__builtin_constant_p(arg) + && ((size_t) (const void *) 1) ? + : (__extension__( { + __const * __s2 = + (__const *) + (arg); + register + __result = + (((__const + *) (arglist + [i]. + lng))[0] + - __s2[0]); + if (__s1_len == + 0) { + if (__s1_len == + 0) { + __result = + (((__const + unsigned char + *) (__const + char + *) + (arglist[i]. + lng))[3] - + __s2[3]);} + } + __result;} + ))): + (__builtin_constant_p(arg) + ? + (__builtin_constant_p + (arglist[i].lng) + ? : (__extension__( { + char + __result + = + ((__const + unsigned *) + (arg))[0]; + if + (__s2_len + > 0 + && __result == + 0) { + if (__s2_len > + 1 + && __result + == 0) { + } + } + __result;} + ))): + + + + __builtin_strcmp(arglist[i].lng, + arg))));} + )) + return; +} |