aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/evaluate.c
diff options
authorLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2019-12-17 01:13:53 +0100
committerLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2019-12-17 01:13:53 +0100
commit341daf20fd91d57fa7c5c2a49a1a9f01dc0fe7e6 (patch)
tree32c0f48fe0df8fb67c3406e15189af07a9c9b49b /evaluate.c
parent3f90fa99393dd2b16eea3eaabe48e3e644890728 (diff)
parent2094267c7d36d8696897c509558fc63e8a695765 (diff)
downloadsparse-dev-341daf20fd91d57fa7c5c2a49a1a9f01dc0fe7e6.tar.gz
Merge branch 'msg-wrong-redecl' into next
* improve diagnostic message about wrong redeclaration
Diffstat (limited to 'evaluate.c')
-rw-r--r--evaluate.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/evaluate.c b/evaluate.c
index 91547bc6..f1a266be 100644
--- a/evaluate.c
+++ b/evaluate.c
@@ -3390,9 +3390,11 @@ void check_duplicates(struct symbol *sym)
declared++;
typediff = type_difference(&sym->ctype, &next->ctype, 0, 0);
if (typediff) {
- sparse_error(sym->pos, "symbol '%s' redeclared with different type (originally declared at %s:%d) - %s",
- show_ident(sym->ident),
- stream_name(next->pos.stream), next->pos.line, typediff);
+ sparse_error(sym->pos, "symbol '%s' redeclared with different type (%s):",
+ show_ident(sym->ident), typediff);
+ info(sym->pos, " %s", show_typename(sym));
+ info(next->pos, "note: previously declared as:");
+ info(next->pos, " %s", show_typename(next));
return;
}
}