[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