# endif
void
-llfatalerror (cstring s)
+xllfatalerror (char *srcFile, int srcLine, cstring s)
{
prepareMessage ();
printError (g_errorstream, s);
printError (g_errorstream, cstring_makeLiteral ("*** Cannot continue."));
+ showSourceLoc (srcFile, srcLine);
llexit (LLFAILURE);
}
void
-llfatalerrorLoc (/*@only@*/ cstring s)
+xllfatalerrorLoc (char *srcFile, int srcLine, /*@only@*/ cstring s)
{
prepareMessage ();
(void) fflush (g_warningstream);
printError (g_errorstream, message ("%q: %q", fileloc_unparse (g_currentloc), s));
printError (g_errorstream, cstring_makeLiteral ("*** Cannot continue."));
+ showSourceLoc (srcFile, srcLine);
(void) fflush (g_warningstream);
llexit (LLFAILURE);
}
return FALSE;
}
-void llparseerror (cstring s)
+void xllparseerror (char *srcFile, int srcLine, cstring s)
{
if (context_getFlag (FLG_TRYTORECOVER))
{
{
if (cstring_isDefined (s))
{
- llfatalerror (message ("%q: Parse Error: %q. "
- "Too many errors, giving up.",
- fileloc_unparse (g_currentloc), s));
+ xllfatalerror (srcFile, srcLine,
+ message ("%q: Parse Error: %q. "
+ "Too many errors, giving up.",
+ fileloc_unparse (g_currentloc), s));
}
else
{
- llfatalerror (message ("%q: Parse Error. Too many errors, giving up.",
- fileloc_unparse (g_currentloc)));
+ xllfatalerror (srcFile, srcLine,
+ message ("%q: Parse Error. Too many errors, giving up.",
+ fileloc_unparse (g_currentloc)));
}
}
else
{
llreportparseerror (message ("Parse Error: %q. Attempting to continue.",
s));
+ showSourceLoc (srcFile, srcLine);
}
else
{
llreportparseerror (message ("Parse Error. Attempting to continue."));
+ showSourceLoc (srcFile, srcLine);
}
}
}
msg = message ("Parse Error.");
}
- llfatalerror
- (message ("%q: %s (For help on parse errors, "
+ xllfatalerror
+ (srcFile, srcLine,
+ message ("%q: %s (For help on parse errors, "
"see splint -help parseerrors.)",
fileloc_unparse (g_currentloc), msg));
}