------- Comment #7 from rguenth at gcc dot gnu dot org 2007-12-05 19:11 ------- extern void free (void *__ptr); struct shparam { char **p; int foo; }; static struct shparam shellparam; inline void freeparam (volatile struct shparam *param, char **ap) { free ((void *) (*ap)); free ((void *) (param->p)); } void dotcmd (char **p) { freeparam (&shellparam, p); } void evaltree (void) { void (*evalfn) (char **); evalfn = dotcmd; }
Still ICEs at -O2 for me. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34138