+static void check_format_string(const char *fmt, const char *arg)
+{
+ size_t sz = strlen(fmt) + strlen(arg);
+ const struct cdecl_error *err;
+ char *work;
+
+ work = malloc(sz + 1);
+ if (!work)
+ abort();
+ sprintf(work, fmt, arg);
+
+ cdecl__err(5432, fmt, arg);
+ err = cdecl_get_error();
+
+ tap_diag("cdecl__err(\"%s\", \"%s\")", fmt, arg);
+ check_code(err, 5432);
+
+ if (!tap_result(!strcmp(err->str, work), "returned string")) {
+ tap_diag("Failed, unexpected result");
+ tap_diag(" Received: %.*s", (int)sz, err->str);
+ tap_diag(" Expected: %s", work);
+ }
+
+ free(work);
+}
+