Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: Varnish: Dev

[PATCH 2/2] Add __printflike and fix everything that brings to light

 

 

Varnish dev RSS feed   Index | Next | Previous | View Threaded


github at bsdchicks

Jan 15, 2012, 8:39 AM

Post #1 of 1 (139 views)
Permalink
[PATCH 2/2] Add __printflike and fix everything that brings to light

---
bin/varnishd/cache/cache.h | 12 ++++++++----
bin/varnishd/cache/cache_center.c | 2 +-
bin/varnishd/cache/cache_shmlog.c | 4 ++++
bin/varnishd/cache/cache_vrt_vmod.c | 3 ++-
bin/varnishd/mgt/mgt.h | 3 ++-
bin/varnishd/mgt/mgt_param.c | 2 +-
bin/varnishreplay/varnishreplay.c | 5 +++++
bin/varnishtest/vtc.c | 8 ++++----
bin/varnishtest/vtc.h | 9 ++++++---
bin/varnishtest/vtc_http.c | 6 +++---
bin/varnishtest/vtc_sema.c | 2 +-
include/vcli_common.h | 2 ++
include/vcli_priv.h | 3 ++-
include/vdef.h | 28 +++++++++++++++++++++++++++-
include/vsb.h | 6 ++----
lib/libvarnishapi/vsc.c | 1 +
lib/libvarnishapi/vsl.c | 1 +
lib/libvarnishapi/vsl_arg.c | 1 +
lib/libvarnishapi/vsm.c | 1 +
lib/libvarnishapi/vsm_api.h | 3 ++-
lib/libvcl/vcc_acl.c | 9 ++++-----
lib/libvcl/vcc_backend.c | 2 +-
lib/libvcl/vcc_compile.c | 2 +-
lib/libvcl/vcc_compile.h | 15 ++++++++++-----
lib/libvcl/vcc_dir_dns.c | 4 ++--
lib/libvcl/vcc_expr.c | 6 +++++-
lib/libvcl/vcc_parse.c | 4 ++--
27 files changed, 101 insertions(+), 43 deletions(-)

diff --git a/bin/varnishd/cache/cache.h b/bin/varnishd/cache/cache.h
index 6b0d0a9..356d138 100644
--- a/bin/varnishd/cache/cache.h
+++ b/bin/varnishd/cache/cache.h
@@ -809,7 +809,8 @@ void http_PutStatus(struct http *to, uint16_t status);
void http_PutResponse(struct worker *w, unsigned vsl_id, const struct http *to,
const char *response);
void http_PrintfHeader(struct worker *w, unsigned vsl_id, struct http *to,
- const char *fmt, ...);
+ const char *fmt, ...)
+ __printflike(4, 5);
void http_SetHeader(struct worker *w, unsigned vsl_id, struct http *to,
const char *hdr);
void http_SetH(const struct http *to, unsigned n, const char *fm);
@@ -928,10 +929,13 @@ void *VSM_Alloc(unsigned size, const char *class, const char *type,
const char *ident);
void VSM_Free(void *ptr);
#ifdef VSL_ENDMARKER
-void VSL(enum VSL_tag_e tag, int id, const char *fmt, ...);
+void VSL(enum VSL_tag_e tag, int id, const char *fmt, ...)
+ __printflike(3, 4);
void WSLR(struct worker *w, enum VSL_tag_e tag, int id, txt t);
-void WSL(struct worker *w, enum VSL_tag_e tag, int id, const char *fmt, ...);
-void WSLB(struct worker *w, enum VSL_tag_e tag, const char *fmt, ...);
+void WSL(struct worker *w, enum VSL_tag_e tag, int id, const char *fmt, ...)
+ __printflike(4, 5);
+void WSLB(struct worker *w, enum VSL_tag_e tag, const char *fmt, ...)
+ __printflike(3, 4);

void WSL_Flush(struct worker *w, int overflow);

diff --git a/bin/varnishd/cache/cache_center.c b/bin/varnishd/cache/cache_center.c
index a9d791e..7c8cea4 100644
--- a/bin/varnishd/cache/cache_center.c
+++ b/bin/varnishd/cache/cache_center.c
@@ -1776,7 +1776,7 @@ cli_debug_srandom(struct cli *cli, const char * const *av, void *priv)
seed = strtoul(av[2], NULL, 0);
srandom(seed);
srand48(random());
- VCLI_Out(cli, "Random(3) seeded with %lu", seed);
+ VCLI_Out(cli, "Random(3) seeded with %u", seed);
}

static struct cli_proto debug_cmds[] = {
diff --git a/bin/varnishd/cache/cache_shmlog.c b/bin/varnishd/cache/cache_shmlog.c
index c29f5a1..a839f5a 100644
--- a/bin/varnishd/cache/cache_shmlog.c
+++ b/bin/varnishd/cache/cache_shmlog.c
@@ -236,6 +236,10 @@ WSLR(struct worker *wrk, enum VSL_tag_e tag, int id, txt t)

static void
wsl(struct worker *wrk, enum VSL_tag_e tag, int id, const char *fmt, va_list ap)
+ __printflike(4, 0);
+
+static void
+wsl(struct worker *wrk, enum VSL_tag_e tag, int id, const char *fmt, va_list ap)
{
char *p;
unsigned n, mlen;
diff --git a/bin/varnishd/cache/cache_vrt_vmod.c b/bin/varnishd/cache/cache_vrt_vmod.c
index 6b3b846..93d82f9 100644
--- a/bin/varnishd/cache/cache_vrt_vmod.c
+++ b/bin/varnishd/cache/cache_vrt_vmod.c
@@ -104,7 +104,8 @@ VRT_Vmod_Init(void **hdl, void *ptr, int len, const char *nm,
AN(w);
if (strcmp(x, nm)) {
VCLI_Out(cli, "Loading VMOD %s from %s:\n", nm, path);
- VCLI_Out(cli, "File contain wrong VMOD (\"%s\")\n", x);
+ VCLI_Out(cli, "File contain wrong VMOD (\"%s\")\n",
+ (char *) x);
VCLI_Out(cli, "Check relative pathnames ?.\n");
(void)dlclose(v->hdl);
FREE_OBJ(v);
diff --git a/bin/varnishd/mgt/mgt.h b/bin/varnishd/mgt/mgt.h
index 0e3eb9e..ffaef56 100644
--- a/bin/varnishd/mgt/mgt.h
+++ b/bin/varnishd/mgt/mgt.h
@@ -50,7 +50,8 @@ void MGT_Child_Cli_Fail(void);
typedef void mgt_cli_close_f(void *priv);
void mgt_cli_setup(int fdi, int fdo, int verbose, const char *ident,
mgt_cli_close_f *close_func, void *priv);
-int mgt_cli_askchild(unsigned *status, char **resp, const char *fmt, ...);
+int mgt_cli_askchild(unsigned *status, char **resp, const char *fmt, ...)
+ __printflike(3, 4);
void mgt_cli_start_child(int fdi, int fdo);
void mgt_cli_stop_child(void);
void mgt_cli_telnet(const char *T_arg);
diff --git a/bin/varnishd/mgt/mgt_param.c b/bin/varnishd/mgt/mgt_param.c
index c488f23..8123bfc 100644
--- a/bin/varnishd/mgt/mgt_param.c
+++ b/bin/varnishd/mgt/mgt_param.c
@@ -261,7 +261,7 @@ tweak_generic_uint(struct cli *cli, volatile unsigned *dest, const char *arg,
}
*dest = u;
} else if (*dest == UINT_MAX) {
- VCLI_Out(cli, "unlimited", *dest);
+ VCLI_Out(cli, "unlimited");
} else {
VCLI_Out(cli, "%u", *dest);
}
diff --git a/bin/varnishreplay/varnishreplay.c b/bin/varnishreplay/varnishreplay.c
index 8e694da..02ad83e 100644
--- a/bin/varnishreplay/varnishreplay.c
+++ b/bin/varnishreplay/varnishreplay.c
@@ -44,6 +44,7 @@
#include <string.h>
#include <unistd.h>

+#include "vdef.h"
#include "vapi/vsl.h"
#include "vapi/vsm.h"
#include "vas.h"
@@ -171,6 +172,10 @@ static pthread_mutex_t log_mutex = PTHREAD_MUTEX_INITIALIZER;

static void
thread_log(int lvl, int errcode, const char *fmt, ...)
+ __printflike(3, 4);
+
+static void
+thread_log(int lvl, int errcode, const char *fmt, ...)
{
va_list ap;

diff --git a/bin/varnishtest/vtc.c b/bin/varnishtest/vtc.c
index 9581b3c..b8556ce 100644
--- a/bin/varnishtest/vtc.c
+++ b/bin/varnishtest/vtc.c
@@ -449,7 +449,7 @@ cmd_random(CMD_ARGS)
l = random();
if (l == random_expect[i])
continue;
- vtc_log(vl, 4, "random[%d] = 0x%x (expect 0x%x)",
+ vtc_log(vl, 4, "random[%d] = 0x%x (expect 0x%lx)",
i, l, random_expect[i]);
vtc_log(vl, 1, "SKIPPING test: unknown srandom(1) sequence.");
vtc_stop = 1;
@@ -538,17 +538,17 @@ exec_file(const char *fn, const char *script, const char *tmpdir,

/* Apply extmacro definitions */
VTAILQ_FOREACH(m, &extmacro_list, list)
- macro_def(vltop, NULL, m->name, m->val);
+ macro_def(vltop, NULL, m->name, "%s", m->val);

/* Other macro definitions */
cwd = getcwd(NULL, PATH_MAX);
- macro_def(vltop, NULL, "pwd", cwd);
+ macro_def(vltop, NULL, "pwd", "%s", cwd);
macro_def(vltop, NULL, "topbuild", "%s/%s", cwd, TOP_BUILDDIR);
macro_def(vltop, NULL, "bad_ip", "10.255.255.255");

/* Move into our tmpdir */
AZ(chdir(tmpdir));
- macro_def(vltop, NULL, "tmpdir", tmpdir);
+ macro_def(vltop, NULL, "tmpdir", "%s", tmpdir);

/* Drop file to tell what was going on here */
f = fopen("INFO", "w");
diff --git a/bin/varnishtest/vtc.h b/bin/varnishtest/vtc.h
index ee5308a..be20cb9 100644
--- a/bin/varnishtest/vtc.h
+++ b/bin/varnishtest/vtc.h
@@ -77,7 +77,8 @@ void cmd_server_genvcl(struct vsb *vsb);
void vtc_loginit(char *buf, unsigned buflen);
struct vtclog *vtc_logopen(const char *id);
void vtc_logclose(struct vtclog *vl);
-void vtc_log(struct vtclog *vl, int lvl, const char *fmt, ...);
+void vtc_log(struct vtclog *vl, int lvl, const char *fmt, ...)
+ __printflike(3, 4);
void vtc_dump(struct vtclog *vl, int lvl, const char *pfx,
const char *str, int len);
void vtc_hexdump(struct vtclog *vl, int lvl, const char *pfx,
@@ -87,7 +88,9 @@ int exec_file(const char *fn, const char *script, const char *tmpdir,
char *logbuf, unsigned loglen);

void macro_def(struct vtclog *vl, const char *instance, const char *name,
- const char *fmt, ...);
+ const char *fmt, ...)
+ __printflike(4, 5);
struct vsb *macro_expand(struct vtclog *vl, const char *text);

-void extmacro_def(const char *name, const char *fmt, ...);
+void extmacro_def(const char *name, const char *fmt, ...)
+ __printflike(2, 3);
diff --git a/bin/varnishtest/vtc_http.c b/bin/varnishtest/vtc_http.c
index d3753a5..00be0be 100644
--- a/bin/varnishtest/vtc_http.c
+++ b/bin/varnishtest/vtc_http.c
@@ -133,13 +133,13 @@ synth_body(const char *len, int rnd)
static void
http_write(const struct http *hp, int lvl, const char *pfx)
{
- int l;
+ ssize_t l;

AZ(VSB_finish(hp->vsb));
vtc_dump(hp->vl, lvl, pfx, VSB_data(hp->vsb), VSB_len(hp->vsb));
l = write(hp->fd, VSB_data(hp->vsb), VSB_len(hp->vsb));
if (l != VSB_len(hp->vsb))
- vtc_log(hp->vl, hp->fatal, "Write failed: (%d vs %d) %s",
+ vtc_log(hp->vl, hp->fatal, "Write failed: (%zd vs %zd) %s",
l, VSB_len(hp->vsb), strerror(errno));
}

@@ -387,7 +387,7 @@ http_rxchunk(struct http *hp)
bprintf(hp->chunklen, "%d", i);
if ((q == hp->rxbuf + l) ||
(*q != '\0' && !vct_islws(*q))) {
- vtc_log(hp->vl, hp->fatal, "chunked fail %02x @ %d",
+ vtc_log(hp->vl, hp->fatal, "chunked fail %02x @ %td",
*q, q - (hp->rxbuf + l));
}
assert(q != hp->rxbuf + l);
diff --git a/bin/varnishtest/vtc_sema.c b/bin/varnishtest/vtc_sema.c
index 48d4c68..fd4c561 100644
--- a/bin/varnishtest/vtc_sema.c
+++ b/bin/varnishtest/vtc_sema.c
@@ -63,7 +63,7 @@ sema_new(char *name, struct vtclog *vl)
AN(r);
r->name = name;
if (*name != 'r')
- vtc_log(vl, 0, "Sema name must start with 'r' (%s)", *name);
+ vtc_log(vl, 0, "Sema name must start with 'r' (%s)", name);

AZ(pthread_mutex_init(&r->mtx, NULL));
AZ(pthread_cond_init(&r->cond, NULL));
diff --git a/include/vcli_common.h b/include/vcli_common.h
index 8d0a623..fbb4e9f 100644
--- a/include/vcli_common.h
+++ b/include/vcli_common.h
@@ -28,6 +28,8 @@
*
*/

+#include "vdef.h"
+
struct vlu;
struct VCLS;

diff --git a/include/vcli_priv.h b/include/vcli_priv.h
index a265d2e..0129b83 100644
--- a/include/vcli_priv.h
+++ b/include/vcli_priv.h
@@ -53,6 +53,7 @@ struct cli_proto {

/* The implementation must provide these functions */
int VCLI_Overflow(struct cli *cli);
-void VCLI_Out(struct cli *cli, const char *fmt, ...);
+void VCLI_Out(struct cli *cli, const char *fmt, ...)
+ __printflike(2, 3);
void VCLI_Quote(struct cli *cli, const char *str);
void VCLI_SetResult(struct cli *cli, unsigned r);
diff --git a/include/vdef.h b/include/vdef.h
index c9b24c5..63a2a6b 100644
--- a/include/vdef.h
+++ b/include/vdef.h
@@ -1,10 +1,14 @@
/*-
* Copyright (c) 2006 Verdens Gang AS
- * Copyright (c) 2006-2011 Varnish Software AS
+ * Copyright (c) 2006-2012 Varnish Software AS
+ * Copyright (c) 2012 Fastly Inc
* All rights reserved.
*
* Author: Poul-Henning Kamp <phk [at] phk>
+ * Author: Rogier 'DocWilco' Mulhuijzen <rogier [at] fastly>
*
+ * Inspired by FreeBSD's <sys/cdefs.h>
+ *
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
@@ -28,6 +32,9 @@
*
*/

+#ifndef VDEF_H_INCLUDED
+#define VDEF_H_INCLUDED
+
/* Safe printf into a fixed-size buffer */
#define bprintf(buf, fmt, ...) \
do { \
@@ -42,3 +49,22 @@
< sizeof buf); \
} while (0)

+
+#ifndef __GNUC_PREREQ
+# if defined __GNUC__ && defined __GNUC_MINOR__
+# define __GNUC_PREREQ(maj, min) \
+ (__GNUC__ > (maj) || (__GNUC__ == (maj) && __GNUC_MINOR__ >= (min)))
+# else
+# define __GNUC_PREREQ(maj, min) 0
+# endif
+#endif
+
+#ifndef __printflike
+# if __GNUC_PREREQ(2, 95) || defined(__INTEL_COMPILER)
+# define __printflike(f,a) __attribute__((format(printf, f, a)))
+# else
+# define __printflike(f,a)
+# endif
+#endif
+
+#endif /* VDEF_H_INCLUDED */
diff --git a/include/vsb.h b/include/vsb.h
index 0a8e2bf..e17fe5b 100644
--- a/include/vsb.h
+++ b/include/vsb.h
@@ -31,6 +31,8 @@
#ifndef VSB_H_INCLUDED
#define VSB_H_INCLUDED

+#include "vdef.h"
+
/*
* Structure definition
*/
@@ -49,10 +51,6 @@ struct vsb {
int s_flags; /* flags */
};

-#ifndef __printflike
-#define __printflike(a,b)
-#endif
-
#ifdef __cplusplus
extern "C" {
#endif
diff --git a/lib/libvarnishapi/vsc.c b/lib/libvarnishapi/vsc.c
index accef82..5f992cf 100644
--- a/lib/libvarnishapi/vsc.c
+++ b/lib/libvarnishapi/vsc.c
@@ -39,6 +39,7 @@

#include "miniobj.h"
#include "vas.h"
+#include "vdef.h"

#include "vapi/vsc.h"
#include "vapi/vsm.h"
diff --git a/lib/libvarnishapi/vsl.c b/lib/libvarnishapi/vsl.c
index 6950c1b..8e7001a 100644
--- a/lib/libvarnishapi/vsl.c
+++ b/lib/libvarnishapi/vsl.c
@@ -41,6 +41,7 @@

#include "miniobj.h"
#include "vas.h"
+#include "vdef.h"

#include "vapi/vsl.h"
#include "vapi/vsm.h"
diff --git a/lib/libvarnishapi/vsl_arg.c b/lib/libvarnishapi/vsl_arg.c
index 068d539..8587fb1 100644
--- a/lib/libvarnishapi/vsl_arg.c
+++ b/lib/libvarnishapi/vsl_arg.c
@@ -43,6 +43,7 @@

#include "miniobj.h"
#include "vas.h"
+#include "vdef.h"

#include "vapi/vsl.h"
#include "vapi/vsm.h"
diff --git a/lib/libvarnishapi/vsm.c b/lib/libvarnishapi/vsm.c
index e11fe26..c175f10 100644
--- a/lib/libvarnishapi/vsm.c
+++ b/lib/libvarnishapi/vsm.c
@@ -44,6 +44,7 @@

#include "miniobj.h"
#include "vas.h"
+#include "vdef.h"

#include "vapi/vsm.h"
#include "vapi/vsm_int.h"
diff --git a/lib/libvarnishapi/vsm_api.h b/lib/libvarnishapi/vsm_api.h
index 79be982..af99798 100644
--- a/lib/libvarnishapi/vsm_api.h
+++ b/lib/libvarnishapi/vsm_api.h
@@ -51,6 +51,7 @@ struct VSM_data {
struct vsl *vsl;
};

-int vsm_diag(struct VSM_data *vd, const char *fmt, ...);
+int vsm_diag(struct VSM_data *vd, const char *fmt, ...)
+ __printflike(2, 3);
void VSC_Delete(struct VSM_data *vd);
void VSL_Delete(struct VSM_data *vd);
diff --git a/lib/libvcl/vcc_acl.c b/lib/libvcl/vcc_acl.c
index c962044..e6a1065 100644
--- a/lib/libvcl/vcc_acl.c
+++ b/lib/libvcl/vcc_acl.c
@@ -362,12 +362,12 @@ vcc_acl_emit(const struct vcc *tl, const char *acln, int anon)

Fh(tl, 0, "\n");
Fh(tl, 0, "\ta = p;\n");
- Fh(tl, 0, "\tVRT_memmove(&fam, a + %d, sizeof fam);\n",
+ Fh(tl, 0, "\tVRT_memmove(&fam, a + %zd, sizeof fam);\n",
offsetof(struct sockaddr, sa_family));
Fh(tl, 0, "\tif (fam == %d)\n", PF_INET);
- Fh(tl, 0, "\t\ta += %d;\n", offsetof(struct sockaddr_in, sin_addr));
+ Fh(tl, 0, "\t\ta += %zd;\n", offsetof(struct sockaddr_in, sin_addr));
Fh(tl, 0, "\telse if (fam == %d)\n", PF_INET6);
- Fh(tl, 0, "\t\ta += %d;\n", offsetof(struct sockaddr_in6, sin6_addr));
+ Fh(tl, 0, "\t\ta += %zd;\n", offsetof(struct sockaddr_in6, sin6_addr));
Fh(tl, 0, "\telse {\n");
Fh(tl, 0, "\t\tVRT_acl_log(sp, \"NO_FAM %s\");\n", acln);
Fh(tl, 0, "\t\treturn(0);\n");
@@ -422,8 +422,7 @@ vcc_acl_emit(const struct vcc *tl, const char *acln, int anon)

if (!anon) {
Fh(tl, 0, "\t%*sVRT_acl_log(sp, \"%sMATCH %s \" ",
- -i, "", ae->not ? "NEG_" : "", acln,
- PF(ae->t_addr));
+ -i, "", ae->not ? "NEG_" : "", acln);
EncToken(tl->fh, ae->t_addr);
if (ae->t_mask != NULL)
Fh(tl, 0, " \"/%.*s\" ", PF(ae->t_mask));
diff --git a/lib/libvcl/vcc_backend.c b/lib/libvcl/vcc_backend.c
index 03482c4..fb160e7 100644
--- a/lib/libvcl/vcc_backend.c
+++ b/lib/libvcl/vcc_backend.c
@@ -353,7 +353,7 @@ vcc_ParseProbeSpec(struct vcc *tl)
if (t_initial != NULL)
Fh(tl, 0, "\t.initial = %u,\n", initial);
else
- Fh(tl, 0, "\t.initial = ~0U,\n", initial);
+ Fh(tl, 0, "\t.initial = ~0U,\n");
if (status > 0)
Fh(tl, 0, "\t.exp_status = %u,\n", status);
Fh(tl, 0, "};\n");
diff --git a/lib/libvcl/vcc_compile.c b/lib/libvcl/vcc_compile.c
index 27447fe..66d89f5 100644
--- a/lib/libvcl/vcc_compile.c
+++ b/lib/libvcl/vcc_compile.c
@@ -286,7 +286,7 @@ LocTable(const struct vcc *tl)
pos++;

}
- Fc(tl, 0, " [%3u] = { %d, %8u, %4u, %3u, 0, ",
+ Fc(tl, 0, " [%3u] = { %d, %8tu, %4u, %3u, 0, ",
t->cnt, sp->idx, t->b - sp->b, lin, pos + 1);
if (t->tok == CSRC)
Fc(tl, 0, " \"C{\"},\n");
diff --git a/lib/libvcl/vcc_compile.h b/lib/libvcl/vcc_compile.h
index caacd73..b64564e 100644
--- a/lib/libvcl/vcc_compile.h
+++ b/lib/libvcl/vcc_compile.h
@@ -247,11 +247,16 @@ extern struct method method_tab[];
* I -> Initializer function
* F -> Finish function
*/
-void Fh(const struct vcc *tl, int indent, const char *fmt, ...);
-void Fc(const struct vcc *tl, int indent, const char *fmt, ...);
-void Fb(const struct vcc *tl, int indent, const char *fmt, ...);
-void Fi(const struct vcc *tl, int indent, const char *fmt, ...);
-void Ff(const struct vcc *tl, int indent, const char *fmt, ...);
+void Fh(const struct vcc *tl, int indent, const char *fmt, ...)
+ __printflike(3, 4);
+void Fc(const struct vcc *tl, int indent, const char *fmt, ...)
+ __printflike(3, 4);
+void Fb(const struct vcc *tl, int indent, const char *fmt, ...)
+ __printflike(3, 4);
+void Fi(const struct vcc *tl, int indent, const char *fmt, ...)
+ __printflike(3, 4);
+void Ff(const struct vcc *tl, int indent, const char *fmt, ...)
+ __printflike(3, 4);
void EncToken(struct vsb *sb, const struct token *t);
int IsMethod(const struct token *t);
void *TlAlloc(struct vcc *tl, unsigned len);
diff --git a/lib/libvcl/vcc_dir_dns.c b/lib/libvcl/vcc_dir_dns.c
index 174d1ab..55ed921 100644
--- a/lib/libvcl/vcc_dir_dns.c
+++ b/lib/libvcl/vcc_dir_dns.c
@@ -92,9 +92,9 @@ print_backend(struct vcc *tl,

Fb(tl, 0, "\t.hosthdr = \"");
if (b_defaults.hostheader != NULL)
- Fb(tl,0, b_defaults.hostheader);
+ Fb(tl, 0, "%s", b_defaults.hostheader);
else
- Fb(tl,0, strip);
+ Fb(tl, 0, "%s", strip);
Fb(tl, 0, "\",\n");

Fb(tl, 0, "\t.saintmode_threshold = %d,\n",b_defaults.saint);
diff --git a/lib/libvcl/vcc_expr.c b/lib/libvcl/vcc_expr.c
index 3dfeeaa..82e53ef 100644
--- a/lib/libvcl/vcc_expr.c
+++ b/lib/libvcl/vcc_expr.c
@@ -253,6 +253,10 @@ vcc_new_expr(void)

static struct expr *
vcc_mk_expr(enum var_type fmt, const char *str, ...)
+ __printflike(2, 3);
+
+static struct expr *
+vcc_mk_expr(enum var_type fmt, const char *str, ...)
{
va_list ap;
struct expr *e;
@@ -537,7 +541,7 @@ vcc_Eval_Func(struct vcc *tl, struct expr **e, const struct symbol *sym)
r = strchr(sym->name, '.');
AN(r);
e1 = vcc_mk_expr(VOID, "&vmod_priv_%.*s",
- r - sym->name, sym->name);
+ (int) (r - sym->name), sym->name);
p += strlen(p) + 1;
} else if (fmt == VOID && !strcmp(p, "PRIV_CALL")) {
bprintf(buf, "vmod_priv_%u", tl->nvmodpriv++);
diff --git a/lib/libvcl/vcc_parse.c b/lib/libvcl/vcc_parse.c
index 4023287..d8e74a4 100644
--- a/lib/libvcl/vcc_parse.c
+++ b/lib/libvcl/vcc_parse.c
@@ -154,7 +154,7 @@ vcc_Compound(struct vcc *tl)
return;
case CSRC:
Fb(tl, 1, "%.*s\n",
- tl->t->e - (tl->t->b + 2),
+ (int) (tl->t->e - (tl->t->b + 2)),
tl->t->b + 1);
vcc_NextToken(tl);
break;
@@ -274,7 +274,7 @@ vcc_Parse(struct vcc *tl)
switch (tl->t->tok) {
case CSRC:
Fc(tl, 0, "%.*s\n",
- tl->t->e - (tl->t->b + 4), tl->t->b + 2);
+ (int) (tl->t->e - (tl->t->b + 4)), tl->t->b + 2);
vcc_NextToken(tl);
break;
case EOI:
--
1.7.5.4


_______________________________________________
varnish-dev mailing list
varnish-dev [at] varnish-cache
https://www.varnish-cache.org/lists/mailman/listinfo/varnish-dev

Varnish dev RSS feed   Index | Next | Previous | View Threaded
 
 


Interested in having your list archived? Contact Gossamer Threads
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.