fix build
[gltest.git] / glutil.h
index 3c1a6d2058f5b0565285dec3e02cbd97f20a708c..dd1051e26c66eb1c0f27ab76008e5195d475596a 100644 (file)
--- a/glutil.h
+++ b/glutil.h
 #include <GL/gl.h>
 #endif
 
 #include <GL/gl.h>
 #endif
 
+/**
+ * GNUC has the ability to check format strings that follow the syntax used in printf and others.
+Hide the differences between different compilers in this GNUC_FORMAT_CHECK macro.
+Copied from Wireshark sources.
+*/
+#if __GNUC__ >= 2
+       #define GNUC_FORMAT_CHECK(archetype, string_index, first_to_check) __attribute__((format (archetype, string_index, first_to_check)))
+#else
+       #define GNUC_FORMAT_CHECK(archetype, string_index, first_to_check)
+#endif
+
 /* Function name resolving: Call this after initialising the context, but before any utility function is called */
 typedef void (*T_proc)(void);
 typedef T_proc (*T_glGetProcAddress)(char const *  procname);
 void resolveFunctionPointers(T_glGetProcAddress p_glGetProcAddress);
 
 /* The actual utility functions */
 /* Function name resolving: Call this after initialising the context, but before any utility function is called */
 typedef void (*T_proc)(void);
 typedef T_proc (*T_glGetProcAddress)(char const *  procname);
 void resolveFunctionPointers(T_glGetProcAddress p_glGetProcAddress);
 
 /* The actual utility functions */
+void die(const char *msg, ...) GNUC_FORMAT_CHECK(printf, 1, 2);
 void checkGlError(const char *what);
 void initialise2dProjection();
 void drawQuad(GLfloat red, GLfloat green, GLfloat blue, GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2);
 void checkGlError(const char *what);
 void initialise2dProjection();
 void drawQuad(GLfloat red, GLfloat green, GLfloat blue, GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2);