2 * sparse/smatch_project.c
4 * Copyright (C) 2010 Dan Carpenter.
6 * Licensed under the Open Software License version 1.1
11 * This file is only for very generic stuff, that is reusable
12 * between projects. If you need something special create a
13 * check_your_project.c.
18 #include "smatch_extra.h"
20 static void register_no_return_funcs(void)
24 static char name
[256];
27 snprintf(name
, 256, "%s.no_return_funcs", option_project_str
);
29 token
= get_tokens_file(name
);
32 if (token_type(token
) != TOKEN_STREAMBEGIN
)
35 while (token_type(token
) != TOKEN_STREAMEND
) {
36 if (token_type(token
) != TOKEN_IDENT
)
38 func
= show_ident(token
->ident
);
39 add_function_hook(func
, &__match_nullify_path_hook
, NULL
);
45 static void register_ignored_macros(void)
49 static char name
[256];
51 snprintf(name
, 256, "%s.ignored_macros", option_project_str
);
53 token
= get_tokens_file(name
);
56 if (token_type(token
) != TOKEN_STREAMBEGIN
)
59 while (token_type(token
) != TOKEN_STREAMEND
) {
60 if (token_type(token
) != TOKEN_IDENT
)
62 macro
= alloc_string(show_ident(token
->ident
));
63 add_ptr_list(&__ignored_macros
, macro
);
69 void register_project(int id
)
71 if (option_project
!= PROJ_KERNEL
)
72 add_function_hook("exit", &__match_nullify_path_hook
, NULL
);
73 register_no_return_funcs();
74 register_ignored_macros();