[master] bdbba2e Return the symbol when referenced or defined

Dridi Boukelmoune dridi.boukelmoune at gmail.com
Mon Aug 14 11:02:06 CEST 2017


commit bdbba2ec194513cd79ab4ea533328cf21e4ea2cb
Author: Dridi Boukelmoune <dridi.boukelmoune at gmail.com>
Date:   Wed Jun 28 08:51:39 2017 +0200

    Return the symbol when referenced or defined

diff --git a/lib/libvcc/vcc_action.c b/lib/libvcc/vcc_action.c
index 924e3ed..17293f5 100644
--- a/lib/libvcc/vcc_action.c
+++ b/lib/libvcc/vcc_action.c
@@ -46,7 +46,7 @@ parse_call(struct vcc *tl)
 	vcc_NextToken(tl);
 	ExpectErr(tl, ID);
 	vcc_AddCall(tl, tl->t);
-	vcc_AddRef(tl, tl->t, SYM_SUB);
+	(void)vcc_AddRef(tl, tl->t, SYM_SUB);
 	Fb(tl, 1, "VGC_function_%.*s(ctx);\n", PF(tl->t));
 	vcc_NextToken(tl);
 }
diff --git a/lib/libvcc/vcc_backend.c b/lib/libvcc/vcc_backend.c
index 7377af6..6c9a178 100644
--- a/lib/libvcc/vcc_backend.c
+++ b/lib/libvcc/vcc_backend.c
@@ -263,7 +263,7 @@ vcc_ParseProbe(struct vcc *tl)
 
 	vcc_ParseProbeSpec(tl, t_probe, &p);
 	if (vcc_IdIs(t_probe, "default")) {
-		vcc_AddRef(tl, t_probe, SYM_PROBE);
+		(void)vcc_AddRef(tl, t_probe, SYM_PROBE);
 		tl->default_probe = p;
 	}
 }
@@ -395,7 +395,7 @@ vcc_ParseHostDef(struct vcc *tl, const struct token *t_be, const char *vgcname)
 				return;
 			}
 			Fb(tl, 0, "\t.probe = &vgc_probe_%.*s,\n", PF(tl->t));
-			vcc_AddRef(tl, tl->t, SYM_PROBE);
+			(void)vcc_AddRef(tl, tl->t, SYM_PROBE);
 			vcc_NextToken(tl);
 			SkipToken(tl, ';');
 		} else if (vcc_IdIs(t_field, "probe")) {
diff --git a/lib/libvcc/vcc_compile.c b/lib/libvcc/vcc_compile.c
index 1f9b0eb..bf57ee9 100644
--- a/lib/libvcc/vcc_compile.c
+++ b/lib/libvcc/vcc_compile.c
@@ -619,7 +619,7 @@ vcc_CompileSource(struct vcc *tl, struct source *sp)
 	}
 
 	/* Configure the default director */
-	vcc_AddRef(tl, tl->t_default_director, SYM_BACKEND);
+	(void)vcc_AddRef(tl, tl->t_default_director, SYM_BACKEND);
 
 	/* Check for orphans */
 	if (vcc_CheckReferences(tl))
diff --git a/lib/libvcc/vcc_compile.h b/lib/libvcc/vcc_compile.h
index 1768bdd..bc43b78 100644
--- a/lib/libvcc/vcc_compile.h
+++ b/lib/libvcc/vcc_compile.h
@@ -337,8 +337,10 @@ void vcc_ParseImport(struct vcc *tl);
 void vcc_ParseNew(struct vcc *tl);
 
 /* vcc_xref.c */
-int vcc_AddDef(struct vcc *tl, const struct token *t, enum symkind type);
-void vcc_AddRef(struct vcc *tl, const struct token *t, enum symkind type);
+struct symbol *vcc_AddDef(struct vcc *tl, const struct token *t,
+    enum symkind type);
+struct symbol *vcc_AddRef(struct vcc *tl, const struct token *t,
+    enum symkind type);
 int vcc_CheckReferences(struct vcc *tl);
 void VCC_XrefTable(struct vcc *);
 
diff --git a/lib/libvcc/vcc_expr.c b/lib/libvcc/vcc_expr.c
index abd210e..0d41901 100644
--- a/lib/libvcc/vcc_expr.c
+++ b/lib/libvcc/vcc_expr.c
@@ -469,10 +469,10 @@ vcc_Eval_Handle(struct vcc *tl, struct expr **e, const struct symbol *sym,
 
 	if (sym->fmt != STRING && (fmt == STRING || fmt == STRING_LIST)) {
 		*e = vcc_mk_expr(STRING, "\"%s\"", sym->name);
-		vcc_AddRef(tl, tl->t, sym->kind);
+		(void)vcc_AddRef(tl, tl->t, sym->kind);
 	} else {
 		vcc_ExpectCid(tl, "handle");
-		vcc_AddRef(tl, tl->t, sym->kind);
+		(void)vcc_AddRef(tl, tl->t, sym->kind);
 		*e = vcc_mk_expr(sym->fmt, "%s", sym->rname);
 		(*e)->constant = EXPR_VAR;	/* XXX ? */
 	}
@@ -1203,7 +1203,7 @@ vcc_expr_cmp(struct vcc *tl, struct expr **e, vcc_type_t fmt)
 		not = tl->t->tok == '~' ? "" : "!";
 		vcc_NextToken(tl);
 		vcc_ExpectCid(tl, "ACL");
-		vcc_AddRef(tl, tl->t, SYM_ACL);
+		(void)vcc_AddRef(tl, tl->t, SYM_ACL);
 		bprintf(buf, "%smatch_acl_named_%.*s(ctx, \v1)",
 		    not, PF(tl->t));
 		vcc_NextToken(tl);
diff --git a/lib/libvcc/vcc_parse.c b/lib/libvcc/vcc_parse.c
index 6e28970..abc58b2 100644
--- a/lib/libvcc/vcc_parse.c
+++ b/lib/libvcc/vcc_parse.c
@@ -209,6 +209,7 @@ vcc_Compound(struct vcc *tl)
 static void
 vcc_ParseFunction(struct vcc *tl)
 {
+	struct symbol *sym;
 	int m, i;
 
 	vcc_NextToken(tl);
@@ -229,7 +230,7 @@ vcc_ParseFunction(struct vcc *tl)
 		tl->fb = tl->fm[m];
 		if (tl->mprocs[m] == NULL) {
 			(void)vcc_AddDef(tl, tl->t, SYM_SUB);
-			vcc_AddRef(tl, tl->t, SYM_SUB);
+			(void)vcc_AddRef(tl, tl->t, SYM_SUB);
 			tl->mprocs[m] = vcc_AddProc(tl, tl->t);
 		}
 		tl->curproc = tl->mprocs[m];
@@ -238,8 +239,8 @@ vcc_ParseFunction(struct vcc *tl)
 		Fb(tl, 0, " */\n");
 	} else {
 		tl->fb = tl->fc;
-		i = vcc_AddDef(tl, tl->t, SYM_SUB);
-		if (i > 1) {
+		sym = vcc_AddDef(tl, tl->t, SYM_SUB);
+		if (sym->ndef > 1) {
 			VSB_printf(tl->sb,
 			    "Function '%.*s' redefined\n", PF(tl->t));
 			vcc_ErrWhere(tl, tl->t);
diff --git a/lib/libvcc/vcc_xref.c b/lib/libvcc/vcc_xref.c
index 166bfe4..7b6f6a7 100644
--- a/lib/libvcc/vcc_xref.c
+++ b/lib/libvcc/vcc_xref.c
@@ -73,7 +73,7 @@ struct proc {
  * Keep track of definitions and references
  */
 
-void
+struct symbol *
 vcc_AddRef(struct vcc *tl, const struct token *t, enum symkind kind)
 {
 	struct symbol *sym;
@@ -83,9 +83,10 @@ vcc_AddRef(struct vcc *tl, const struct token *t, enum symkind kind)
 		sym->ref_b = t;
 	AN(sym);
 	sym->nref++;
+	return (sym);
 }
 
-int
+struct symbol *
 vcc_AddDef(struct vcc *tl, const struct token *t, enum symkind kind)
 {
 	struct symbol *sym;
@@ -95,7 +96,7 @@ vcc_AddDef(struct vcc *tl, const struct token *t, enum symkind kind)
 		sym->def_b = t;
 	AN(sym);
 	sym->ndef++;
-	return (sym->ndef);
+	return (sym);
 }
 
 /*--------------------------------------------------------------------*/



More information about the varnish-commit mailing list