--- /dev/null
+-passes=3
+
++libh mgt_event.h
++libh ../../config.h
+
+-emacro((???),va_arg) // the va_arg() macro can yield 415, 416, 661, 662
+ // 796 and 797 (out-of-bounds errors).
+-elib(123) // size is both a variable and a macro with args
+-emacro(736, isnan) // isnanf
+
+
+-sem(strchr, 1p, type(1), 2n == 0 ? (@p < 1p) : (@p < 1p || @p == 0 ))
+
+-sem(vsb_new, @p == malloc(1))
+-sem(vsb_delete, custodial(1))
+-sem(lbv_assert, r_no)
+-sem(lbv_xxxassert, r_no)
+
+-ffc // No automatic custody
+
+-e763 // Redundant declaration for symbol '...' previously declared
+-e726 // Extraneous comma ignored
+-e728 // Symbol ... not explicitly initialized
+-e716 // while(1) ...
+-e785 // Too few initializers for aggregate
+-e786 // String concatenation within initializer
+
+-emacro(740, VTAILQ_PREV) // Unusual pointer cast (incompatible indirect types)
+-emacro(740, VTAILQ_LAST) // Unusual pointer cast (incompatible indirect types)
+-emacro((826), VTAILQ_PREV) // Suspicious pointer-to-pointer conversion (area too small)
+-emacro((826), VTAILQ_LAST) // Suspicious pointer-to-pointer conversion (area too small)
+-emacro(506, VTAILQ_FOREACH_SAFE) // constant value boolean
+
+-esym(534, sprintf) // Ignoring return value of function
+-esym(534, asprintf) // Ignoring return value of function
+-esym(534, printf) // Ignoring return value of function
+-esym(534, fprintf) // Ignoring return value of function
+-esym(534, memset) // Ignoring return value of function
+-esym(534, memcpy) // Ignoring return value of function
+-esym(534, memmove) // Ignoring return value of function
+-esym(534, strcpy) // Ignoring return value of function
+-esym(534, vsb_printf) // Ignoring return value of function
+-esym(534, vsb_cat) // Ignoring return value of function
+-esym(534, vsb_bcat) // Ignoring return value of function
+-esym(534, vsb_putc) // Ignoring return value of function
+-esym(534, strcat) // Ignoring return value of function
+-esym(534, strcpy) // Ignoring return value of function
+-esym(534, strlcpy) // Ignoring return value of function
+
+-emacro(506, isnan) // constant value boolean
+-emacro(747, isnan) // significant coersion
+-emacro(506, assert) // constant value boolean
+-emacro(827, assert) // loop not reachable
+-emacro(774, assert) // booelan always true
+
+// cache.h
+-emacro(506, INCOMPL) // Constant value Boolean
+
+// Review all below this line ///////////////////////////////////////////////
+
+-e732 // Loss of sign (arg. no. 2) (int to unsigned
+-e737 // [45] Loss of sign in promotion from int to unsigned
+-e713 // Loss of precision (assignment) (unsigned long long to long long)
+-e574 // Signed-unsigned mix with relational
+-e712 // Loss of precision (assignment) (long long to
+-e747 // Significant prototype coercion (arg. no. 2) long
+
+/*
+
+-e767 // Macro redef (system queue.h vs ours )
+
+-e506 // Constant value boolean
+-e818 // Pointer parameter '...' could be declared as pointing to const
+-e774 // Boolean within 'if' always evaluates to False
+-e534 // Ignoring return value of function
+-e557 // unrecog format
+
+*/
#include <string.h>
#include <ctype.h>
#include <fcntl.h>
-#include <assert.h>
#include <stdlib.h>
#include <unistd.h>
#include <err.h>
+#include "libvarnish.h"
+
#include "vtc.h"
#define MAX_FILESIZE (1024 * 1024)
if (s <= 0)
err(1, "Cannot read %s", fn);
assert(s < sz); /* XXX: increase MAX_FILESIZE */
- close (fd);
+ AZ(close (fd));
buf[s] = '\0';
buf = realloc(buf, s + 1);
assert(buf != NULL);
assert(tn < MAX_TOKENS);
if (*p == '\n') { /* End on NL */
break;
- } else if (isspace(*p)) { /* Inter-token whitespace */
+ }
+ if (isspace(*p)) { /* Inter-token whitespace */
p++;
- } else if (*p == '\\' && p[1] == '\n') {
+ continue;
+ }
+ if (*p == '\\' && p[1] == '\n') { /* line-cont */
p += 2;
- } else if (*p == '"') { /* quotes */
+ continue;
+ }
+ if (*p == '"') { /* quotes */
token_s[tn] = ++p;
q = p;
for (; *p != '\0'; p++) {
}
assert(tn < MAX_TOKENS);
token_s[tn] = NULL;
- for (tn = 0; token_s[tn] != NULL; tn++)
- *token_e[tn] = '\0';
+ for (tn = 0; token_s[tn] != NULL; tn++) {
+ AN(token_e[tn]); /*lint !e771 */
+ *token_e[tn] = '\0'; /*lint !e771 */
+ }
for (cp = cmd; cp->name != NULL; cp++)
if (!strcmp(token_s[0], cp->name))