diff options
| author | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2019-12-17 01:13:53 +0100 |
|---|---|---|
| committer | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2019-12-17 01:13:53 +0100 |
| commit | 341daf20fd91d57fa7c5c2a49a1a9f01dc0fe7e6 (patch) | |
| tree | 32c0f48fe0df8fb67c3406e15189af07a9c9b49b /evaluate.c | |
| parent | 3f90fa99393dd2b16eea3eaabe48e3e644890728 (diff) | |
| parent | 2094267c7d36d8696897c509558fc63e8a695765 (diff) | |
| download | sparse-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.c | 8 |
1 files changed, 5 insertions, 3 deletions
@@ -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; } } |
