/*@constant observer char *LCL_PARSE_VERSION;@*/
# define LCL_PARSE_VERSION "LCLint 3.0b-alpha"
/*@constant observer char *LCL_COMPILE;@*/
-# define LCL_COMPILE "Compiled using gcc -DSTDC_HEADERS=1 -g -Wall on Linux fowler 2.4.3-12 #1 Fri Jun 8 13:35:30 EDT 2001 i686 unknown by drl7x"
+# define LCL_COMPILE "Compiled using gcc -Wall -g on Linux paisley 2.4.3-12 #1 Fri Jun 8 13:35:30 EDT 2001 i686 unknown by evans"
/*@constant observer char *LCL_PARSE_VERSION;@*/
# define LCL_PARSE_VERSION "LCLint 3.0b-alpha"
/*@constant observer char *LCL_COMPILE;@*/
-# define LCL_COMPILE "Compiled using gcc -DSTDC_HEADERS=1 -g -Wall on Linux fowler 2.4.3-12 #1 Fri Jun 8 13:35:30 EDT 2001 i686 unknown by drl7x"
+# define LCL_COMPILE "Compiled using gcc -Wall -g on Linux paisley 2.4.3-12 #1 Fri Jun 8 13:35:30 EDT 2001 i686 unknown by evans"
/*@constant observer char *SYSTEM_LIBDIR;@*/
# define SYSTEM_LIBDIR "/usr/include"
/*@constant observer char *DEFAULT_LARCHPATH;@*/
-# define DEFAULT_LARCHPATH ".:/af9/drl7x/re3/LCLintDev/lib"
+# define DEFAULT_LARCHPATH "/usr/local/lclint-2.5m/lib"
/*@constant observer char *DEFAULT_LCLIMPORTDIR;@*/
-# define DEFAULT_LCLIMPORTDIR "/af9/drl7x/re3/LCLintDev/imports"
+# define DEFAULT_LCLIMPORTDIR "/usr/local/lclint-2.5m/imports"
/*@constant observer char *SYSTEM_LIBDIR;@*/
# define SYSTEM_LIBDIR "/usr/include"
/*@constant observer char *DEFAULT_LARCHPATH;@*/
-# define DEFAULT_LARCHPATH ".:/af9/drl7x/re3/LCLintDev/lib"
+# define DEFAULT_LARCHPATH "/usr/local/lclint-2.5m/lib"
/*@constant observer char *DEFAULT_LCLIMPORTDIR;@*/
-# define DEFAULT_LCLIMPORTDIR "/af9/drl7x/re3/LCLintDev/imports"
+# define DEFAULT_LCLIMPORTDIR "/usr/local/lclint-2.5m/imports"
TRBRACE
{ $$ = declareUnnamedStruct ($7); }
| NotType CUNION IsType TLBRACE { sRef_setGlobalScopeSafe (); }
- CreateStructInnerScope
- structDeclList DeleteStructInnerScope { sRef_clearGlobalScopeSafe (); }
+ CreateStructInnerScope structDeclList DeleteStructInnerScope
+ { sRef_clearGlobalScopeSafe (); }
TRBRACE
{ $$ = declareUnnamedUnion ($7); }
| NotType CSTRUCT IsType TLBRACE TRBRACE
** right values are available in the right place.
*/
-/*drl*/
-/*@only@*/ static constraintList fcnConstraints = NULL;
-
-/*end drl*/
-
/*drl */
static /*@only@*/ constraintList implicitFcnConstraints = NULL;
}
static bool oldInFunction = FALSE;
+static int nestedScope = 0;
void sRef_setGlobalScopeSafe ()
{
- oldInFunction = inFunction;
- DPRINTF (("leave function"));
+ if (nestedScope == 0)
+ {
+ oldInFunction = inFunction;
+ }
+
+ nestedScope++;
+ DPRINTF (("leave function safe"));
inFunction = FALSE;
}
void sRef_clearGlobalScopeSafe ()
{
- inFunction = oldInFunction;
- DPRINTF (("clear function: %s", bool_unparse (inFunction)));
+ nestedScope--;
+ llassert (nestedScope >= 0);
+
+ if (nestedScope == 0)
+ {
+ inFunction = oldInFunction;
+ }
+
+ DPRINTF (("clear function: %s", bool_unparse (inFunction)));
}
void sRef_enterFunctionScope ()
}
void sRef_exitFunctionScope ()
-{
-
+{
if (inFunction)
{
DPRINTF (("Exit function scope."));
valueTable tvalues = sRef_getValueTable (tref);
DPRINTF (("Metastate transfer: from %s", exprNode_unparse (fexp)));
-
+
DPRINTF (("Metastate transfer: %s => %s",
sRef_unparseFull (fref),
sRef_unparseFull (tref)));
+
+init.c:1:16: Global c[0] initialized to null value: c[0] = NULL
+init.c:1:43: Initial value of c[2][2] is type int, expects char: 3
+init.c:1:48: Global c[3] initialized to null value: c[3] = NULL
+init.c:4:23: Global st.uname initialized to null value: st.uname = NULL
+init.c:4:29: Initial value of st.y is type double, expects int: 1.2
+init.c:7:7: Initializer block for st2[0] has 3 fields, but struct { char *
+ name; int [] x; char * uname;, ... } has 4 fields: "bob", { 1, 2 }, NULL
+init.c:8:19: Initial value of st2[1].x is type int, expects int []: 3
+init.c:8:22: Global st2[1].uname initialized to null value: st2[1].uname = NULL
+init.c:10:27: Initial value of a[4] is type double, expects int: 3.4
+init.c:12:34: Initial value of aa[1][1] is type double, expects int: 3.2
+init.c:14:15: Initializer block used for b[0] where int is expected: { 1, 2 }
+init.c:14:25: Initializer block used for b[1] where int is expected: { 3, 4 }
+
+Finished LCLint checking --- 12 code errors found, as expected
+
+init.c:1:16: Global c[0] initialized to null value: c[0] = NULL
+init.c:1:22: Read-only string literal storage used as initial value for
+ unqualified storage: c[1] = "hullo"
+init.c:1:43: Initial value of c[2][2] is type int, expects char: 3
+init.c:1:48: Global c[3] initialized to null value: c[3] = NULL
+init.c:4:7: Read-only string literal storage used as initial value for
+ unqualified storage: st.name = "bob"
+init.c:4:23: Global st.uname initialized to null value: st.uname = NULL
+init.c:4:29: Initial value of st.y is type double, expects int: 1.2
+init.c:7:7: Initializer block for st2[0] has 3 fields, but struct { char *
+ name; int [] x; char * uname;, ... } has 4 fields: "bob", { 1, 2 }, NULL
+init.c:8:9: Read-only string literal storage used as initial value for
+ unqualified storage: st2[1].name = "charly"
+init.c:8:19: Initial value of st2[1].x is type int, expects int []: 3
+init.c:8:22: Global st2[1].uname initialized to null value: st2[1].uname = NULL
+init.c:10:27: Initial value of a[4] is type double, expects int: 3.4
+init.c:12:34: Initial value of aa[1][1] is type double, expects int: 3.2
+init.c:14:15: Initializer block used for b[0] where int is expected: { 1, 2 }
+init.c:14:25: Initializer block used for b[1] where int is expected: { 3, 4 }
+
+Finished LCLint checking --- 15 code errors found, as expected