[experimental-ims] 931ef7d Emit __match_proto__() for compiled functions

Poul-Henning Kamp phk at FreeBSD.org
Thu Dec 18 10:27:48 CET 2014


commit 931ef7d8c4a3c24574c5411ef69c1fb76efb3ae6
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date:   Thu Jun 14 12:49:04 2012 +0000

    Emit __match_proto__() for compiled functions

diff --git a/lib/libvcl/vcc_compile.c b/lib/libvcl/vcc_compile.c
index db8b37a..a16fbed 100644
--- a/lib/libvcl/vcc_compile.c
+++ b/lib/libvcl/vcc_compile.c
@@ -609,6 +609,8 @@ vcc_CompileSource(const struct vcc *tl0, struct vsb *sb, struct source *sp)
 	/* Macro for accessing directors */
 	Fh(tl, 0, "#define VGCDIR(n) VCL_conf.director[VGC_backend_##n]\n");
 
+	Fh(tl, 0, "#define __match_proto__(xxx)		/*lint -e{818} */\n");
+
 	/* Register and lex the main source */
 	VTAILQ_INSERT_TAIL(&tl->sources, sp, list);
 	sp->idx = tl->nsources++;
@@ -669,7 +671,7 @@ vcc_CompileSource(const struct vcc *tl0, struct vsb *sb, struct source *sp)
 
 	/* Emit method functions */
 	for (i = 0; i < VCL_MET_MAX; i++) {
-		Fc(tl, 1, "\nstatic int\n");
+		Fc(tl, 1, "\nstatic int __match_proto__(vcl_func_f)\n");
 		Fc(tl, 1, "VGC_function_%s(struct sess *sp, struct req *req)\n",
 		    method_tab[i].name);
 		AZ(VSB_finish(tl->fm[i]));
diff --git a/lib/libvcl/vcc_parse.c b/lib/libvcl/vcc_parse.c
index 369aca8..1a6bbf3 100644
--- a/lib/libvcl/vcc_parse.c
+++ b/lib/libvcl/vcc_parse.c
@@ -227,7 +227,7 @@ vcc_Function(struct vcc *tl)
 		Fh(tl, 0, "static int VGC_function_%.*s "
 		    "(struct sess *, struct req *);\n",
 		    PF(tl->t));
-		Fc(tl, 1, "\nstatic int\n");
+		Fc(tl, 1, "\nstatic int __match_proto__(vcl_func_t)\n");
 		Fc(tl, 1, "VGC_function_%.*s"
 		    "(struct sess *sp, struct req *req)\n",
 		    PF(tl->t));



More information about the varnish-commit mailing list