/* PR middle-end/20739 */ | |
/* { dg-do compile } */ | |
/* { dg-options "-O" } */ | |
/* We used to fail to compile this because gimplification dropped the | |
conversion that added the const qualifier to the sub-expression | |
involving baz, and then immediately noticed and reported its | |
absence. */ | |
typedef struct | |
{ | |
char chars[5]; | |
} | |
baz_t; | |
extern baz_t * baz; | |
extern void foo (baz_t); | |
int | |
bar (const baz_t * ls) | |
{ | |
foo (ls == 0 ? *(&baz[0]) : *ls); | |
} |