]> git.saurik.com Git - ldid.git/commitdiff
Wrap assertion strings, for configuration by host.
authorJay Freeman (saurik) <saurik@saurik.com>
Mon, 17 Sep 2018 09:54:58 +0000 (02:54 -0700)
committerJay Freeman (saurik) <saurik@saurik.com>
Mon, 17 Sep 2018 09:54:58 +0000 (02:54 -0700)
ldid.cpp

index 5f4c473595adc94da7bd2d9dc154e3d0c4d09951..f569dc00de6479c62b5bf1e0281a6326b3a120f2 100644 (file)
--- a/ldid.cpp
+++ b/ldid.cpp
 #define _assert__(line) \
     _assert___(line)
 
+#ifndef $
+#define $(value) value
+#endif
+
 #ifdef __EXCEPTIONS
 #define _assert_(expr, format, ...) \
     do if (!(expr)) { \
-        fprintf(stderr, "%s(%u): _assert(): " format "\n", __FILE__, __LINE__, ## __VA_ARGS__); \
-        throw __FILE__ "(" _assert__(__LINE__) "): _assert(" #expr ")"; \
+        fprintf(stderr, $("%s(%u): _assert(): " format "\n"), __FILE__, __LINE__, ## __VA_ARGS__); \
+        throw $(__FILE__ "(" _assert__(__LINE__) "): _assert(" #expr ")"); \
     } while (false)
 #else
 // XXX: this is not acceptable
 #define _assert_(expr, format, ...) \
     do if (!(expr)) { \
-        fprintf(stderr, "%s(%u): _assert(): " format "\n", __FILE__, __LINE__, ## __VA_ARGS__); \
+        fprintf(stderr, $("%s(%u): _assert(): " format "\n"), __FILE__, __LINE__, ## __VA_ARGS__); \
         exit(-1); \
     } while (false)
 #endif
 
 #define _assert(expr) \
-    _assert_(expr, "%s", #expr)
+    _assert_(expr, "%s", $(#expr))
 
 #define _syscall(expr, ...) [&] { for (;;) { \
     auto _value(expr); \
 } }()
 
 #define _trace() \
-    fprintf(stderr, "_trace(%s:%u): %s\n", __FILE__, __LINE__, __FUNCTION__)
+    fprintf(stderr, $("_trace(%s:%u): %s\n"), __FILE__, __LINE__, $(__FUNCTION__))
 
 #define _not(type) \
     ((type) ~ (type) 0)