From 4e2a035838630e736111af8235370e12e51a6170 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Antonio=20Ni=C3=B1o=20D=C3=ADaz?= Date: Sun, 9 Jul 2017 15:09:03 +0100 Subject: [PATCH] Print location of definition of redefined symbols MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When trying to define a symbol with a name that is used by another one, print the location of the first definition in the error message. Signed-off-by: Antonio Niño Díaz --- src/asm/symbol.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/asm/symbol.c b/src/asm/symbol.c index 2a90aafe..856826db 100644 --- a/src/asm/symbol.c +++ b/src/asm/symbol.c @@ -521,7 +521,8 @@ sym_AddEqu(char *tzSym, SLONG value) if ((nsym = findsymbol(tzSym, NULL)) != NULL) { if (nsym->nType & SYMF_DEFINED) { - yyerror("'%s' already defined", tzSym); + yyerror("'%s' already defined in %s(%d)", + tzSym, nsym->tzFileName, nsym->nFileLine); } } else nsym = createsymbol(tzSym); @@ -553,7 +554,8 @@ sym_AddString(char *tzSym, char *tzValue) if ((nsym = findsymbol(tzSym, NULL)) != NULL) { if (nsym->nType & SYMF_DEFINED) { - yyerror("'%s' already defined", tzSym); + yyerror("'%s' already defined in %s(%d)", + tzSym, nsym->tzFileName, nsym->nFileLine); } } else nsym = createsymbol(tzSym); @@ -656,7 +658,8 @@ sym_AddReloc(char *tzSym) if ((nsym = findsymbol(tzSym, scope)) != NULL) { if (nsym->nType & SYMF_DEFINED) { - yyerror("'%s' already defined", tzSym); + yyerror("'%s' already defined in %s(%d)", + tzSym, nsym->tzFileName, nsym->nFileLine); } } else nsym = createsymbol(tzSym); @@ -785,7 +788,8 @@ sym_AddMacro(char *tzSym) if ((nsym = findsymbol(tzSym, NULL)) != NULL) { if (nsym->nType & SYMF_DEFINED) { - yyerror("'%s' already defined", tzSym); + yyerror("'%s' already defined in %s(%d)", + tzSym, nsym->tzFileName, nsym->nFileLine); } } else nsym = createsymbol(tzSym);