MINOR: diag: create cfgdiag module

This module is intended to serve as a placeholder for various
diagnostics executed after the configuration file has been fully loaded.
diff --git a/src/cfgdiag.c b/src/cfgdiag.c
new file mode 100644
index 0000000..35c8e67
--- /dev/null
+++ b/src/cfgdiag.c
@@ -0,0 +1,45 @@
+#include <stdarg.h>
+#include <stdlib.h>
+
+#include <haproxy/cfgdiag.h>
+#include <haproxy/log.h>
+
+/* Use this fonction to emit diagnostic.
+ * This can be used as a shortcut to set value pointed by <ret> to 1 at the
+ * same time.
+ */
+static inline void diag_warning(int *ret, char *fmt, ...)
+{
+	va_list argp;
+
+	va_start(argp, fmt);
+	*ret = 1;
+	_ha_vdiag_warning(fmt, argp);
+	va_end(argp);
+}
+
+/* Use this for dynamic allocation in diagnostics.
+ * In case of allocation failure, this will immediately terminates haproxy.
+ */
+static inline void *diag_alloc(size_t size)
+{
+	void *out = NULL;
+
+	if (!(out = malloc(size))) {
+		fprintf(stderr, "out of memory\n");
+		exit(1);
+	}
+
+	return out;
+}
+
+/* Placeholder to execute various diagnostic checks after the configuration file
+ * has been fully parsed. It will output a warning for each diagnostic found.
+ *
+ * Returns 0 if no diagnostic message has been found else 1.
+ */
+int cfg_run_diagnostics()
+{
+	int ret = 0;
+	return ret;
+}