extern void abort (void); typedef struct { long r[(19 + sizeof (long))/(sizeof (long))]; } realvaluetype; typedef void *tree; static realvaluetype real_value_from_int_cst (tree x, tree y) { realvaluetype r; int i; for (i = 0; i < sizeof(r.r)/sizeof(long); ++i) r.r[i] = -1; return r; } struct brfic_args { tree type; tree i; realvaluetype d; }; static void build_real_from_int_cst_1 (data) void * data; { struct brfic_args *args = (struct brfic_args *) data; args->d = real_value_from_int_cst (args->type, args->i); } int main() { struct brfic_args args; __builtin_memset (&args, 0, sizeof(args)); build_real_from_int_cst_1 (&args); if (args.d.r[0] == 0) abort (); return 0; }