The main change here was to completely rewrite how conditions are handled.
[smatch.git] / smatch.c
blob66eaaa2da1a23c0682ef49882679a6d8db91758b
1 /*
2 * sparse/smatch.c
4 * Copyright (C) 2006 Dan Carpenter.
6 * Licensed under the Open Software License version 1.1
8 */
10 #include <stdio.h>
11 #include "smatch.h"
13 typedef void (*reg_func) (int id);
14 void register_derefed_params(int id);
15 void register_null_deref(int id);
16 void register_smatch_extra(int id);
17 void register_overflow(int id);
19 const reg_func reg_funcs[] = {
20 &register_smatch_extra, /* Smatch extra is hard coded to
21 0. Don't touch.*/
22 &register_derefed_params,
23 &register_null_deref,
24 &register_overflow,
25 NULL
28 int main(int argc, char **argv)
30 int i;
31 reg_func func;
33 for(i = 0; (func = reg_funcs[i]); i++){
34 func(i);
37 if (argc >= 2 && !strcmp(argv[1], "--debug")) {
38 debug_states = 1;
39 argc--;
40 argv++;
43 smatch(argc, argv);
44 return 0;