Allow the Bad node to be set in set_store(). This is neccessary, because Bad might...
[libfirm] / ir / ir / irvrfy_t.h
index 0c5fd63..66c3b66 100644 (file)
@@ -23,13 +23,13 @@ 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 { \