[PATCH] delay removing file scope

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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 <sparse@xxxxxxxxxxx>

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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Newbies FAQ]     [LKML]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Trinity Fuzzer Tool]

  Powered by Linux