fix a few segfaults
authorMatthias Braun <matze@braunis.de>
Sun, 2 Dec 2007 22:13:56 +0000 (22:13 +0000)
committerMatthias Braun <matze@braunis.de>
Sun, 2 Dec 2007 22:13:56 +0000 (22:13 +0000)
[r18588]

Makefile
main.c
parser.c

index 2e6e0c0..4b88795 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -4,8 +4,8 @@ GOAL = $(BUILDDIR)/cparser
 
 BUILDDIR ?= build
 
-FIRM_CFLAGS ?= `pkg-config --cflags firm`
-FIRM_LIBS   ?= `pkg-config --libs firm`
+FIRM_CFLAGS ?= `pkg-config --cflags libfirm`
+FIRM_LIBS   ?= `pkg-config --libs libfirm`
 
 CPPFLAGS  = -DHAVE_CONFIG_H -DFIRM_BACKEND
 CPPFLAGS += -I.
diff --git a/main.c b/main.c
index 8ff4c06..3d9a12e 100644 (file)
--- a/main.c
+++ b/main.c
@@ -65,7 +65,7 @@ static void initialize_firm(void)
 
        /* initialize backend */
        be_params = be_init();
-       ir_set_debug_retrieve(retrieve_dbg);
+       be_set_debug_retrieve(retrieve_dbg);
        params.arch_op_settings = be_params->arch_op_settings;
        if_conv_info            = be_params->if_conv_info;
 
index a92c7e7..f63c266 100644 (file)
--- a/parser.c
+++ b/parser.c
@@ -2593,7 +2593,8 @@ static void parse_declaration(parsed_declaration_func finished_declaration)
 static void parse_kr_declaration_list(declaration_t *declaration)
 {
        type_t *type = skip_typeref(declaration->type);
-       assert(is_type_function(type));
+       if(!is_type_function(type))
+               return;
 
        if(!type->function.kr_style_parameters)
                return;
@@ -4924,6 +4925,8 @@ static statement_t *parse_return(void)
 
        if(return_type == NULL)
                return (statement_t*) statement;
+       if(return_value != NULL && return_value->base.datatype == NULL)
+               return (statement_t*) statement;
 
        return_type = skip_typeref(return_type);