/*
-** 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
*/
/*
** stateValue.c
*/
-# include "lclintMacros.nf"
-# include "llbasic.h"
+# include "splintMacros.nf"
+# include "basic.h"
extern
/*@notnull@*/ stateValue stateValue_create (int value, stateInfo info) {
fileloc_unparse (loc)));
s->value = value;
-
- if (fileloc_isDefined (loc)) {
- s->info = stateInfo_updateLoc (s->info, loc);
- }
+ s->info = stateInfo_updateLoc (s->info, SA_CHANGED, loc);
}
void stateValue_update (stateValue res, stateValue val)
{
llassert (stateValue_isDefined (res));
+ llassert (stateValue_isDefined (val));
+
res->value = val->value;
res->info = stateInfo_update (res->info, val->info);
+
DPRINTF (("update state: %s", stateValue_unparse (res)));
}
int stateValue_getValue (stateValue s)
{
- llassert (stateValue_isDefined (s));
+ if (!stateValue_isDefined (s))
+ {
+ llassert (stateValue_isDefined (s));
+ return stateValue_error;
+ }
+
return s->value;
}