X-Git-Url: http://andersk.mit.edu/gitweb/splint.git/blobdiff_plain/abd7f89523564e5e238e5852585b98f72c3b48f4..061ece7d6fedbde47030222fea74b575c12707dc:/src/cppmain.c diff --git a/src/cppmain.c b/src/cppmain.c index 74c68ba..61bca21 100644 --- a/src/cppmain.c +++ b/src/cppmain.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 @@ -47,7 +47,7 @@ Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. what you give them. Help stamp out software-hoarding! */ # include "splintMacros.nf" -# include "llbasic.h" +# include "basic.h" # include "cpplib.h" # include "cpphash.h" # include "cpperror.h" @@ -89,6 +89,12 @@ void cppReader_initMod () /*@-compdef@*/ /* g_cppState is not yet innitialized */ } /*@=compdef@*/ +void cppReader_destroyMod () + /*@globals killed g_cppState@*/ +{ + cppCleanup (&g_cppState); +} + void cppReader_initialize () { cpplib_initializeReader (&g_cppState); @@ -116,7 +122,7 @@ int cppProcess (/*@dependent@*/ cstring infile, llexit (LLFAILURE); } - ofile = fileTable_openFile (context_fileTable (), outfile, "w"); + ofile = fileTable_createFile (context_fileTable (), outfile); if (ofile == NULL) { @@ -137,6 +143,8 @@ int cppProcess (/*@dependent@*/ cstring infile, if (!opts->no_output) { + DPRINTF (("Writing: %s", cstring_copyLength (g_cppState.token_buffer, cpplib_getWritten (&g_cppState)))); + (void) fwrite (g_cppState.token_buffer, (size_t) 1, cpplib_getWritten (&g_cppState), ofile); } @@ -174,6 +182,8 @@ void cppAddIncludeDir (cstring dir) ** Add the -I- code. This code provided by Robin Watts */ + DPRINTF (("Adding include: %s", dir)); + if (cstring_equalLit (dir, "-I-")) { struct cppOptions *opts = CPPOPTIONS (&g_cppState); @@ -181,11 +191,10 @@ void cppAddIncludeDir (cstring dir) } else { - /* -I option (Add directory to include path) */ struct file_name_list *dirtmp = (struct file_name_list *) dmalloc (sizeof (*dirtmp)); DPRINTF (("Add include: %s", dir)); - + dirtmp->next = 0; /* New one goes on the end */ dirtmp->control_macro = 0; dirtmp->c_system_include_path = FALSE;