X-Git-Url: http://andersk.mit.edu/gitweb/splint.git/blobdiff_plain/abd7f89523564e5e238e5852585b98f72c3b48f4..ed62d3fbeda6bb085991cdd683ceacfc57f7afbe:/src/lcllib.c diff --git a/src/lcllib.c b/src/lcllib.c index efaa31f..205cbe4 100644 --- a/src/lcllib.c +++ b/src/lcllib.c @@ -1,6 +1,6 @@ /* ** Splint - annotation-assisted static program checker -** Copyright (C) 1994-2002 University of Virginia, +** Copyright (C) 1994-2003 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -37,18 +37,15 @@ */ # include "splintMacros.nf" -# include "llbasic.h" +# include "basic.h" # include "osd.h" +# include "version.h" -# ifndef NOLCL # include "gram.h" - # include "lclscan.h" -# endif # include "lcllib.h" # include "llmain.h" -# include "portab.h" /*@-incondefs@*/ /*@-redecl@*/ extern /*:open:*/ /*@dependent@*/ FILE *yyin; @@ -171,7 +168,6 @@ lcllib_isSkipHeader (cstring sname) if (context_getFlag (FLG_SKIPISOHEADERS) && context_usingAnsiLibrary ()) { - for (i = 0; i < NUMLIBS; i++) { if (mstring_equal (libname, stdlibs[i])) @@ -226,7 +222,14 @@ lcllib_isSkipHeader (cstring sname) if (context_getFlag (FLG_SKIPPOSIXHEADERS)) { cstring_free (xname); - return TRUE; /* evans 2002-03-02: investigate this warning */ + /*@-nullstate@*/ + return TRUE; + /*@=nullstate@*/ + + /* evans 2002-03-02: + the returned reference is possibly null, + but this should not change the null state of the parameter + */ } } else @@ -250,17 +253,14 @@ lcllib_isSkipHeader (cstring sname) cstring_free (xname); /*@noaccess cstring@*/ + /*@-nullstate@*/ /* same problem as above */ return FALSE; + /*@=nullstate@*/ } static void printDot (void) { - if (context_getFlag (FLG_SHOWSCAN)) - { - (void) fflush (g_msgstream); - fprintf (stderr, "."); - (void) fflush (stderr); - } + displayScanContinue (cstring_makeLiteralTemp (".")); } void @@ -269,12 +269,9 @@ dumpState (cstring cfname) FILE *f; cstring fname = fileLib_addExtension (cfname, cstring_makeLiteralTemp (DUMP_SUFFIX)); - f = fileTable_openFile (context_fileTable (), fname, "w"); + f = fileTable_openWriteFile (context_fileTable (), fname); - if (context_getFlag (FLG_SHOWSCAN)) - { - fprintf (stderr, "< Dumping to %s ", cstring_toCharsSafe (fname)); - } + displayScanOpen (message ("Dumping to %s ", fname)); if (f == NULL) { @@ -302,7 +299,7 @@ dumpState (cstring cfname) */ fprintf (f, "%s %s\n", LIBRARY_MARKER, cstring_toCharsSafe (fname)); - fprintf (f, ";;%s\n", SPLINT_VERSION); + fprintf (f, ";;Splint %f\n", SPLINT_LIBVERSION); fprintf (f, ";;lib:%d\n", (int) context_getLibrary ()); fprintf (f, ";;ctTable\n"); @@ -328,11 +325,7 @@ dumpState (cstring cfname) check (fileTable_closeFile (context_fileTable (), f)); } - if (context_getFlag (FLG_SHOWSCAN)) - { - fprintf (g_msgstream, " >\n"); - } - + displayScanClose (); cstring_free (fname); } @@ -357,7 +350,7 @@ loadStandardState () } else { - stdlib = fileTable_openFile (context_fileTable (), fpath, "r"); + stdlib = fileTable_openReadFile (context_fileTable (), fpath); if (stdlib == NULL) { @@ -407,7 +400,7 @@ loadStandardState () sfree (ot); check (fileTable_closeFile (context_fileTable (), stdlib)); - stdlib = fileTable_openFile (context_fileTable (), fpath, "r"); + stdlib = fileTable_openReadFile (context_fileTable (), fpath); } llassert (stdlib != NULL); @@ -417,17 +410,9 @@ loadStandardState () DPRINTF (("Loading: %s", fpath)); - if (context_getDebug (FLG_SHOWSCAN)) - { - fprintf (g_msgstream, "< loading standard library %s ", - cstring_toCharsSafe (fpath)); - result = loadLCDFile (stdlib, fpath); - fprintf (g_msgstream, " >\n"); - } - else - { - result = loadLCDFile (stdlib, fpath); - } + displayScanOpen (message ("loading standard library %s ", fpath)); + result = loadLCDFile (stdlib, fpath); + displayScanClose (); check (fileTable_closeFile (context_fileTable (), stdlib)); } @@ -496,10 +481,13 @@ loadLCDFile (FILE *f, cstring name) vname = cstring_fromChars (buf + 9); loadllmsg (message ("Load library %s is in obsolete Splint library " - "format (version %s). Attempting " + "format (version %f (%s), expecting version %f). Attempting " "to continue anyway, but results may be incorrect. Rebuild " "the library with this version of splint.", - name, vname)); + name, + version, + vname, + SPLINT_LIBVERSION)); } else { @@ -579,13 +567,11 @@ loadState (cstring cfname) FILE *f; cstring fname = fileLib_addExtension (cfname, cstring_makeLiteralTemp (DUMP_SUFFIX)); - f = fileTable_openFile (context_fileTable (), fname, "r"); + f = fileTable_openReadFile (context_fileTable (), fname); if (f == NULL) { - if (context_getDebug (FLG_SHOWSCAN)) - fprintf (g_msgstream, " >\n"); - + displayScanClose (); llfatalerror (message ("Cannot open dump file for loading: %s", fname)); }