X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fexternal%2Fread.c;h=be932e85dee91fe38fa9a6b74c9c4ee47eadcb9d;hb=5d8d9dd24e9705d84ddf762adefcc51bddf7065d;hp=7a418aeea01fe2b8e7335e4e7a5fa7871bb3ce59;hpb=8a953adb0fdd8f7e8cad68baa26bb6a8e8f829b0;p=libfirm diff --git a/ir/external/read.c b/ir/external/read.c index 7a418aeea..be932e85d 100644 --- a/ir/external/read.c +++ b/ir/external/read.c @@ -730,7 +730,7 @@ parseEffect (xmlDocPtr doc, xmlNodePtr effelm) static -void read_extern (const char *filename) +int read_extern (const char *filename) { /* xmlNsPtr ns = NULL; */ /* no namespace for us */ xmlDocPtr doc; /* whole document */ @@ -743,7 +743,8 @@ void read_extern (const char *filename) LIBXML_TEST_VERSION xmlKeepBlanksDefault (0); VERBOSE_PRINT((stdout, "read file %s\n", filename)); doc = xmlParseFile (filename); - CHECK (doc, "xmlParseFile"); + if (! doc) + return 0; cur = xmlDocGetRootElement (doc); CHECK (cur, "xmlDocGetRootElement"); @@ -793,6 +794,8 @@ void read_extern (const char *filename) module -> next = modules; modules = module; + + return 1; } /********************************************************************/ @@ -1223,7 +1226,7 @@ static void create_abstract_call(ir_graph *irg, proc_t *proc, eff_t *eff) addr = find_valueid_in_proc_effects(eff -> effect.call.valrefid, proc); assert(addr && "no address for load"); - /* if addr is Unknown, set propper mode */ + /* if addr is Unknown, set proper mode */ if(iro_Unknown == get_irn_opcode(addr -> firmnode)) { set_irn_mode(addr -> firmnode, mode_P); } @@ -1231,16 +1234,16 @@ static void create_abstract_call(ir_graph *irg, proc_t *proc, eff_t *eff) if(ent) { /* the address */ sel = new_simpleSel(get_store(), addr -> firmnode, ent); - /* mthod type */ + /* method type */ mtype = get_entity_type(ent); - mik = true; + mik = 1; } else { /* the address */ sel = addr -> firmnode; - /* mthod type */ + /* method type */ mtype = get_unknown_type(); - mik = false; + mik = 0; } /* the args */ @@ -1465,7 +1468,7 @@ static void create_abstract_firm(module_t *module, proc_t *proc, entity *fent) VERBOSE_PRINT((stdout, "verify graph\n")); irg_vrfy(irg); VERBOSE_PRINT((stdout, "finalize construction\n")); - finalize_cons (irg); + irg_finalize_cons (irg); } /********************************************************************/ @@ -1635,12 +1638,13 @@ void create_abstract_module(module_t *module) } -void create_abstraction(const char *filename) +int create_abstraction(const char *filename) { module_t *module; /* read and parse XML file */ - read_extern(filename); + if (! read_extern(filename)) + return 0; /* finished reading and parsing here */ /* build FIRM graphs */ @@ -1659,6 +1663,8 @@ void create_abstraction(const char *filename) entities = NULL; procs = NULL; modules = NULL; + + return 1; } @@ -1677,6 +1683,16 @@ void free_abstraction(void) { /* * $Log$ + * Revision 1.23 2005/11/18 09:46:50 beck + * removed depency of bool type and stdbool.h (not C89) + * + * Revision 1.22 2005/08/16 10:18:35 beck + * create_abstraction() now returns an error code if the file could not + * be opened. + * + * Revision 1.21 2005/03/10 10:05:38 goetz + * chanmged method name + * * Revision 1.20 2005/01/05 14:28:35 beck * renames all is_x*_type() functions to is_X*_type() to prevent name clash with EDG frontend *