diff -r 55ffcf693d6d -r d0cdf1d00b74 stage4/generate_c/type_initial_value.cc --- a/stage4/generate_c/type_initial_value.cc Sat Nov 17 10:08:38 2007 +0100 +++ b/stage4/generate_c/type_initial_value.cc Thu Dec 06 18:01:58 2007 +0100 @@ -192,7 +192,10 @@ /* integer_type_name '(' subrange')' */ void *visit(subrange_specification_c *symbol) { /* if no initial value explicitly given, then use the lowest value of the subrange */ - return symbol->subrange->accept(*this); + if (symbol->subrange != NULL) + return symbol->subrange->accept(*this); + else + return symbol->integer_type_name->accept(*this); } /* signed_integer DOTDOT signed_integer */ void *visit(subrange_c *symbol) {return symbol->lower_limit;} @@ -253,7 +256,7 @@ // NOTE: We are leaking memory, as the array_initial_elements_list will never get free'd!! array_initial_elements_list_c *array_initial_elements_list = new array_initial_elements_list_c(); array_initial_elements_list->add_element(array_initial_elements); - return (void *)array_initial_elements_list; + return array_initial_elements_list; } /* helper symbol for array_specification */ /* array_subrange_list ',' subrange */