Sparse only returns the used symbol. By the time it return
the symbol, it already destroyed the file scope.

This patch preserve the file scope. The caller can
examine the unused symbols. e.g. If I want to generate
ctags base on sparse, it need those unused symbols.

Signed-off-by: Christopher Li <[EMAIL PROTECTED]>

Index: sparse/lib.c
===================================================================
--- sparse.orig/lib.c   2006-11-30 01:55:06.000000000 -0800
+++ sparse/lib.c        2006-11-30 01:55:23.000000000 -0800
@@ -661,9 +661,8 @@
        /* Clear previous symbol list */
        translation_unit_used_list = NULL;
 
-       start_file_scope();
+       new_file_scope();
        res = sparse_file(filename);
-       end_file_scope();
 
        /* Drop the tokens for this file after parsing */
        clear_token_alloc();
Index: sparse/scope.c
===================================================================
--- sparse.orig/scope.c 2006-11-30 01:54:23.000000000 -0800
+++ sparse/scope.c      2006-11-30 01:55:23.000000000 -0800
@@ -96,6 +96,13 @@
        end_scope(&file_scope);
 }
 
+void new_file_scope(void)
+{
+       if (file_scope != &builtin_scope)
+               end_file_scope();
+       start_file_scope();
+}
+
 void end_symbol_scope(void)
 {
        end_scope(&block_scope);
Index: sparse/scope.h
===================================================================
--- sparse.orig/scope.h 2006-11-30 01:54:23.000000000 -0800
+++ sparse/scope.h      2006-11-30 01:55:23.000000000 -0800
@@ -28,6 +28,7 @@
 
 extern void start_file_scope(void);
 extern void end_file_scope(void);
+extern void new_file_scope(void);
 
 extern void start_symbol_scope(void);
 extern void end_symbol_scope(void);
-
To unsubscribe from this list: send the line "unsubscribe linux-sparse" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to