diff --git a/functions/pragma.c b/functions/pragma.c
index 5ddb90ffc442b6a62d1c59da8fdb563e3cb8e0bc..9e039237787c9d9eec02ae95521b5a227b131c1d 100644
--- a/functions/pragma.c
+++ b/functions/pragma.c
@@ -15,7 +15,7 @@ static void my_pragma_action(cpp_reader *ARG_UNUSED(dummy))
 	bool already_in;
 	
 	if (cfun){
-        	printf("!!Pragma placed inside function!!\n");
+        	printf("WARNING :Pragma placed inside function!!\n");
        		
 		return;
     	}
@@ -64,7 +64,7 @@ static void my_pragma_action(cpp_reader *ARG_UNUSED(dummy))
 				
 			}
 			else{
-				printf("Missing closed parenthesis\n");
+				printf("WARNING :Missing closed parenthesis\n");
 				
 				return;
 			}
@@ -72,13 +72,13 @@ static void my_pragma_action(cpp_reader *ARG_UNUSED(dummy))
 	
 	}
 	else{
-		printf("Invalid pragma - not starting with name or open parenthesis\n");
+		printf("WARNING :Invalid pragma - not starting with name or open parenthesis\n");
 		return;
 	}
 
 	if (token != CPP_EOF)
         {
-          printf("Error : arg read but EOL not reached");
+          printf("Error :arg read but EOL not reached");
 	  
           return;
         }
@@ -96,6 +96,13 @@ static void register_my_pragma(void *event_data, void *data)
 	c_register_pragma ("ProjetCA", "mpicoll_check", my_pragma_action);
 }
 
+static void pass_summary(void *event_data, void *data)
+{
+	printf("\nIn PASS summary\n");
+        compare_pragma_funcs_analyzed_funcs();
+}
+
+
 
 void compare_pragma_funcs_analyzed_funcs(){
 	const char *pragma_elt;
diff --git a/functions/pragma.h b/functions/pragma.h
index 1501a051dcc968bd1591b34ff43afb0c84d9dcaf..b652c195931eefe540bcc0d4181b53b409f54874 100644
--- a/functions/pragma.h
+++ b/functions/pragma.h
@@ -3,5 +3,7 @@
 
 static void register_my_pragma(void *event_data, void *data);
 static void my_pragma_action(cpp_reader *ARG_UNUSED(dummy));
+static void pass_summary(void *event_data, void *data);
+void add_function_to_analyzed_funcs(function * fun);
 void compare_pragma_funcs_analyzed_funcs();
 #endif
diff --git a/plugin.cpp b/plugin.cpp
index a825ce1f2d55b2b8153714abbe4676220a668da5..bdb17daadeaaf4afe0b6db6d91886899803c8e81 100755
--- a/plugin.cpp
+++ b/plugin.cpp
@@ -153,7 +153,7 @@ class cleanup_pass : public gimple_opt_pass
 			for (int ix = 0; analyzed_functions.iterate (ix, &elt); ix++){
                                 printf("- %s\n", elt);
                         }
-			compare_pragma_funcs_analyzed_funcs();
+			
 			edit_all_aux_value(fun,(int*)NULL);
 			return 0;
                 }
@@ -204,7 +204,7 @@ int plugin_init(struct plugin_name_args * plugin_info, struct plugin_gcc_version
 
 	// REGISTER PRAGMA
 	register_callback("plugin_name", PLUGIN_PRAGMAS, register_my_pragma, NULL );
-
+	register_callback("plugin_name", PLUGIN_FINISH_UNIT, pass_summary, NULL );
 
 	return 0;
 }