ARR_APP1(entity_t*, inner_functions, entity);
}
-ir_node *uninitialized_local_var(ir_graph *irg, ir_mode *mode, int pos)
+static ir_node *uninitialized_local_var(ir_graph *irg, ir_mode *mode, int pos)
{
const entity_t *entity = get_irg_loc_description(irg, pos);
type_t *type = skip_typeref(builtin->base.type);
assert(is_type_pointer(type));
- type_t *function_type = skip_typeref(type->pointer.points_to);
+ type_t *function_type = skip_typeref(type->pointer.points_to);
switch (builtin->entity->function.btk) {
case bk_gnu_builtin_alloca: {
}
}
case bk_gnu_builtin_return_address: {
-
expression_t *const expression = call->arguments->expression;
ir_node *in[2];
return process_builtin_call(call);
}
+#if 0
if (irentity == rts_entities[rts_alloca]) {
/* handle alloca() call */
expression_t *argument = call->arguments->expression;
return res;
}
+#endif
}
}
ir_node *callee = expression_to_firm(function);
return;
}
case IR_INITIALIZER_COMPOUND: {
- assert(is_compound_type(type));
+ assert(is_compound_type(type) || is_Array_type(type));
int n_members;
if (is_Array_type(type)) {
assert(has_array_upper_bound(type, 0));
set_type_size_bytes(frame_type, offset);
set_type_alignment_bytes(frame_type, align_all);
- irg_vrfy(irg);
+ irg_verify(irg, VERIFY_ENFORCE_SSA);
current_function = old_current_function;
if (current_trampolines != NULL) {
{
/* initialize firm arithmetic */
tarval_set_integer_overflow_mode(TV_OVERFLOW_WRAP);
+ ir_set_uninitialized_local_variable_func(uninitialized_local_var);
/* just to be sure */
continue_label = NULL;