fixes
[henge/apc.git] / src / ir.c
index 10c053e..27b4d15 100644 (file)
--- a/src/ir.c
+++ b/src/ir.c
@@ -619,10 +619,10 @@ union ir_setdata_t* ir_set_link
 ( struct ir_set_t* set )\r
 { return (union ir_setdata_t*) set->links; }\r
 \r
-#define assert_link(linkdata) do {                                     \\r
+#define assert_link(linkdata) if (DEBUG) {                             \\r
     if (linkdata->header.type != LDAT)                                 \\r
       eprintf("Data %s is not a link\n", linkdata->header.data_name);  \\r
-  } while (0)\r
+  }\r
 \r
 /* Return the link type */\r
 enum ltype ir_linkdata_type\r
@@ -724,13 +724,17 @@ void ir_linkdata_resolve_set
 \r
 /* Assign a linkdatas trg_set */\r
 void ir_linkdata_assign_set\r
-( struct ir_link_t* link, struct ir_set_t* set )\r
-{ link->trg_set = set; }\r
+( union ir_setdata_t* link, struct ir_set_t* set )\r
+{ assert_link(link);\r
+  link->link.trg_set = set;\r
+}\r
 \r
 /* Assign a linkdatas type */\r
 void ir_linkdata_assign_type\r
-( struct ir_link_t* link, ltype type; )\r
-{ link->type = type; }\r
+( union ir_setdata_t* link, enum ltype type )\r
+{ assert_link(link);\r
+  link->link.type = type;\r
+}\r
 \r
 /* Get a setdata's next sibling */\r
 union ir_setdata_t* ir_setdata_nextsib\r