]> andersk Git - splint.git/blobdiff - src/flagSpec.c
Fixed previously ignored splintme warnings in loopHeuristics.c
[splint.git] / src / flagSpec.c
index d2acb8b6dc9df4e28d1aef8e9d526febe3f9622d..e2b2d9e336e052573a43c7a16863487ed8ffe0a4 100644 (file)
@@ -1,6 +1,6 @@
 /*
-** LCLint - annotation-assisted static program checker
-** Copyright (C) 1994-2001 University of Virginia,
+** Splint - annotation-assisted static program checker
+** Copyright (C) 1994-2003 University of Virginia,
 **         Massachusetts Institute of Technology
 **
 ** This program is free software; you can redistribute it and/or modify it
 ** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
 ** MA 02111-1307, USA.
 **
-** For information on lclint: lclint-request@cs.virginia.edu
-** To report a bug: lclint-bug@cs.virginia.edu
-** For more information: http://lclint.cs.virginia.edu
+** For information on splint: info@splint.org
+** To report a bug: splint-bug@splint.org
+** For more information: http://www.splint.org
 */
 /*
 ** flagSpec.c
 */
 
-# include "lclintMacros.nf"
+# include "splintMacros.nf"
 # include "basic.h"
 
 static /*@only@*/ flagSpecItem flagSpecItem_create (/*@only@*/ cstring fname)
 {
-  flagSpecItem res = (flagSpecItem) dmalloc (sizeof (*res));
+  flagSpecItem res = (flagSpecItem) dmalloc (sizeof (*res));\r
+  DPRINTF (("Creating item: [%p]", fname));\r
+  DPRINTF (("The name is: %s", fname));\r
+
   res->name = fname;
-  res->code = identifyFlag (fname);
+  res->code = flags_identifyFlag (fname);
   /* Invalid flag okay for now... */
   return res;
 }
@@ -48,14 +51,16 @@ static /*@only@*/ flagSpec flagSpec_create (/*@only@*/ flagSpecItem fitem,
 {
   flagSpec res = (flagSpec) dmalloc (sizeof (*res));
   res->tspec = fitem;
-  res->trest = frest;
+  res->trest = frest;\r
+  DPRINTF (("New flag spec: %s", flagSpec_unparse (res)));
   return res;
 }
 
 flagSpec flagSpec_createPlain (cstring fname)
 {
-  flagSpecItem fitem = flagSpecItem_create (fname);
-  flagSpec res = flagSpec_create (fitem, flagSpec_undefined);
+  flagSpecItem fitem = flagSpecItem_create (fname);\r
+    flagSpec res = flagSpec_create (fitem, flagSpec_undefined);
+       DPRINTF (("New flag spec: %s", flagSpec_unparse (res)));\r
   return res;
 }
 
@@ -78,6 +83,26 @@ void flagSpec_free (flagSpec f)
     }
 }
 
+flagSpec flagSpec_copy (flagSpec f)
+{
+  if (flagSpec_isDefined (f))
+    {
+      if (flagSpec_isDefined (f->trest))
+       {
+         return flagSpec_createOr (cstring_copy (f->tspec->name), 
+                                   flagSpec_copy (f->trest));
+       }
+      else
+       {
+         return flagSpec_createPlain (cstring_copy (f->tspec->name));
+       }
+    }
+  else
+    {
+      return flagSpec_undefined;
+    }
+}
+
 cstring flagSpec_unparse (flagSpec f)
 {
   if (flagSpec_isDefined (f))
@@ -174,4 +199,6 @@ flagSpec_getFirstOn (flagSpec fs, fileloc loc)
     {
       BADBRANCH;
     }
+
+  BADBRANCHRET (INVALID_FLAG); 
 }
This page took 0.038008 seconds and 4 git commands to generate.