X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firvrfy_t.h;h=66c3b66cec122d1756b04b953c7f2bf18ce371d4;hb=d904350bc3a4b3b9c77a71d683be6c44b041a33d;hp=10249ddc6c7369144dacabd434350e679c9a57f4;hpb=67499260e61f041dc855885ce8ded6ef213760d7;p=libfirm diff --git a/ir/ir/irvrfy_t.h b/ir/ir/irvrfy_t.h index 10249ddc6..66c3b66ce 100644 --- a/ir/ir/irvrfy_t.h +++ b/ir/ir/irvrfy_t.h @@ -12,10 +12,10 @@ #ifndef _IRVRFY_T_H_ #define _IRVRFY_T_H_ +#include "irflag_t.h" #include "irvrfy.h" #include "irdump.h" -extern node_verification_t opt_do_node_verification; extern const char *firm_vrfy_failure_msg; #ifdef NDEBUG @@ -23,22 +23,22 @@ extern const char *firm_vrfy_failure_msg; * in RELEASE mode, returns ret if the expression expr evaluates to zero * in ASSERT mode, asserts the expression expr (and the string string). */ -#define ASSERT_AND_RET(expr, string, ret) if (!(expr)) return (ret) +#define ASSERT_AND_RET(expr, string, ret) do { if (!(expr)) return (ret); } while (0) /* * in RELEASE mode, returns ret if the expression expr evaluates to zero * in ASSERT mode, executes blk if the expression expr evaluates to zero and asserts expr */ -#define ASSERT_AND_RET_DBG(expr, string, ret, blk) if (!(expr)) return (ret) +#define ASSERT_AND_RET_DBG(expr, string, ret, blk) do { if (!(expr)) return (ret); } while (0) #else #define ASSERT_AND_RET(expr, string, ret) \ do { \ - if (opt_do_node_verification == NODE_VERIFICATION_ON) {\ + if (opt_do_node_verification == FIRM_VERIFICATION_ON) {\ if (!(expr) && current_ir_graph != get_const_code_irg()) \ dump_ir_block_graph(current_ir_graph, "-assert"); \ assert((expr) && string); } \ if (!(expr)) { \ - if (opt_do_node_verification == NODE_VERIFICATION_REPORT) \ + if (opt_do_node_verification == FIRM_VERIFICATION_REPORT) \ fprintf(stderr, #expr " : " string "\n"); \ firm_vrfy_failure_msg = #expr " && " string; \ return (ret); \ @@ -49,11 +49,14 @@ do { \ do { \ if (!(expr)) { \ firm_vrfy_failure_msg = #expr " && " string; \ - if (opt_do_node_verification != NODE_VERIFICATION_ERROR_ONLY) { blk; } \ - if (opt_do_node_verification == NODE_VERIFICATION_REPORT) \ + if (opt_do_node_verification != FIRM_VERIFICATION_ERROR_ONLY) { blk; } \ + if (opt_do_node_verification == FIRM_VERIFICATION_REPORT) \ fprintf(stderr, #expr " : " string "\n"); \ - else if (opt_do_node_verification == NODE_VERIFICATION_ON) \ + else if (opt_do_node_verification == FIRM_VERIFICATION_ON) { \ + if (!(expr) && current_ir_graph != get_const_code_irg()) \ + dump_ir_block_graph(current_ir_graph, "-assert"); \ assert((expr) && string); \ + } \ return (ret); \ } \ } while(0) @@ -61,8 +64,8 @@ do { \ #endif /** - * Set the default verify_node and verify_proj_node operation. + * Set the default verify_node and verify_proj_node operation for an ir_op_ops. */ -void firm_set_default_verifyer(ir_op *op); +void firm_set_default_verifyer(opcode code, ir_op_ops *ops); #endif /* _IRVRFY_T_H_ */