diff options
| author | Linus Torvalds <torvalds@g5.osdl.org> | 2005-11-02 07:40:19 -0800 |
|---|---|---|
| committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-11-02 07:40:19 -0800 |
| commit | 9e90d65e2527a2baca4867ef9648436abca4c41c (patch) | |
| tree | 24b5383e3acf9d2d35bea7c7abcc46c2ee5b9bc0 | |
| parent | fc8a7aa2be7e0f497278377945b390e64abde7ce (diff) | |
| download | sparse-dev-9e90d65e2527a2baca4867ef9648436abca4c41c.tar.gz | |
Handle symbols from "-include" file too
Noted by Mitesh Shah
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| -rw-r--r-- | check.c | 2 | ||||
| -rw-r--r-- | compile.c | 2 | ||||
| -rw-r--r-- | example.c | 2 | ||||
| -rw-r--r-- | lib.c | 12 | ||||
| -rw-r--r-- | lib.h | 2 | ||||
| -rw-r--r-- | obfuscate.c | 2 | ||||
| -rw-r--r-- | test-linearize.c | 2 | ||||
| -rw-r--r-- | test-parsing.c | 15 |
8 files changed, 26 insertions, 13 deletions
@@ -266,7 +266,7 @@ static void check_symbols(struct symbol_list *list) int main(int argc, char **argv) { // Expand, linearize and show it. - sparse_initialize(argc, argv); + check_symbols(sparse_initialize(argc, argv)); while (*argv) check_symbols(sparse(argv)); return 0; @@ -39,7 +39,7 @@ int main(int argc, char **argv) { const char *filename; - sparse_initialize(argc, argv); + clean_up_symbols(sparse_initialize(argc, argv)); while ((filename = *argv) != NULL) { struct symbol_list *list; const char *basename = strrchr(filename, '/'); @@ -1958,7 +1958,7 @@ static int compile(struct symbol_list *list) int main(int argc, char **argv) { - sparse_initialize(argc, argv); + compile(sparse_initialize(argc, argv)); while (*argv) compile(sparse(argv)); return 0; @@ -560,7 +560,7 @@ static struct symbol_list *sparse_file(const char *filename) * affect all subsequent files too, ie we can have non-local * behaviour between files! */ -static void sparse_initial(void) +static struct symbol_list *sparse_initial(void) { struct token *token; @@ -572,13 +572,14 @@ static void sparse_initial(void) // Prepend the initial built-in stream token = tokenize_buffer(pre_buffer, pre_buffer_size, token); - sparse_tokenstream(token); + return sparse_tokenstream(token); } -int sparse_initialize(int argc, char **argv) +struct symbol_list *sparse_initialize(int argc, char **argv) { char **args; int files = 0; + struct symbol_list *list; // Initialize symbol stream first, so that we can add defines etc init_symbols(); @@ -601,6 +602,7 @@ int sparse_initialize(int argc, char **argv) argv[files++] = arg; } + list = NULL; argv[files] = NULL; if (files) { // Initialize type system @@ -611,7 +613,7 @@ int sparse_initialize(int argc, char **argv) if (!preprocess_only) declare_builtin_functions(); - sparse_initial(); + list = sparse_initial(); /* * Protect the initial token allocations, since @@ -619,7 +621,7 @@ int sparse_initialize(int argc, char **argv) */ protect_token_alloc(); } - return files; + return list; } struct symbol_list * sparse(char **argv) @@ -81,7 +81,7 @@ extern int Wcast_to_address_space; extern void declare_builtin_functions(void); extern void create_builtin_stream(void); -extern int sparse_initialize(int argc, char **argv); +extern struct symbol_list *sparse_initialize(int argc, char **argv); extern struct symbol_list *sparse(char **argv); static inline int symbol_list_size(struct symbol_list* list) diff --git a/obfuscate.c b/obfuscate.c index 277c956c..1e10bf7a 100644 --- a/obfuscate.c +++ b/obfuscate.c @@ -49,7 +49,7 @@ static void emit_symbol_list(struct symbol_list *list) int main(int argc, char **argv) { - sparse_initialize(argc, argv); + emit_symbol_list(sparse_initialize(argc, argv)); while (*argv) emit_symbol_list(sparse(argv)); return 0; diff --git a/test-linearize.c b/test-linearize.c index 63ecdc71..ab6385b0 100644 --- a/test-linearize.c +++ b/test-linearize.c @@ -38,7 +38,7 @@ static void clean_up_symbols(struct symbol_list *list) int main(int argc, char **argv) { - sparse_initialize(argc, argv); + clean_up_symbols(sparse_initialize(argc, argv)); while (*argv) clean_up_symbols(sparse(argv)); return 0; diff --git a/test-parsing.c b/test-parsing.c index d2b95750..5aafae9b 100644 --- a/test-parsing.c +++ b/test-parsing.c @@ -34,9 +34,20 @@ static void clean_up_symbols(struct symbol_list *list) int main(int argc, char **argv) { - sparse_initialize(argc, argv); + struct symbol_list * list; + + list = sparse_initialize(argc, argv); + + // Simplification + clean_up_symbols(list); + +#if 1 + show_symbol_list(list, "\n\n"); + printf("\n\n"); +#endif + while (*argv) { - struct symbol_list *list = sparse(argv); + list = sparse(argv); // Simplification clean_up_symbols(list); |
