2014-08-14 Richard Biener <rguenther@suse.de>
PR lto/62067
* lto-lang.c (def_fn_type): Fix error handling wrt va_end.
From-SVN: r213960
+2014-08-14 Richard Biener <rguenther@suse.de>
+
+ PR lto/62067
+ * lto-lang.c (def_fn_type): Fix error handling wrt va_end.
+
2014-08-08 Richard Biener <rguenther@suse.de>
* lto.c (lto_read_decls): Adjust for lto_input_block changes.
tree *args = XALLOCAVEC (tree, n);
va_list list;
int i;
+ bool err = false;
va_start (list, n);
for (i = 0; i < n; ++i)
builtin_type a = (builtin_type) va_arg (list, int);
t = builtin_types[a];
if (t == error_mark_node)
- goto egress;
+ err = true;
args[i] = t;
}
va_end (list);
t = builtin_types[ret];
+ if (err)
+ t = error_mark_node;
if (t == error_mark_node)
- goto egress;
- if (var)
+ ;
+ else if (var)
t = build_varargs_function_type_array (t, n, args);
else
t = build_function_type_array (t, n, args);
- egress:
builtin_types[def] = t;
- va_end (list);
}
/* Used to help initialize the builtin-types.def table. When a type of