diff --git a/TODOLIST b/TODOLIST
index 19d94d413599e7eac584f47cdd6c3a8893577fee..7868552ba621fb34e309b663e0f169b65841dc52 100644
--- a/TODOLIST
+++ b/TODOLIST
@@ -3,3 +3,16 @@ Passe de compilation pour trouver les appels aux fonctions collectives : Oui
 Définition d'une numérotation permettant de suivre la position d'une fonction collective dans la séquence d'appel : Oui
 
 Utilisation de la frontière de post dominance itérée pour retrouver le noeud d'origine du deadlock potentiel : Non
+
+PRAGMAS : 
+
+Si on utilise pas les pragmas -> passer dans toutes les fonctions : Oui
+
+Reconnaitre les noms de fonctions et filtrer dans la gate : Oui
+
+Ne pas mettre deux fois la meme fonction via les pragmas : Non
+
+Pas de pragma dans les fonctions : Oui
+
+Warning envoyé si l'utilisateur a donné une fonction qui n'existe pas dans le source : Non
+
diff --git a/plugin.cpp b/plugin.cpp
index ff70c3541ead07c469b92ea13936691a42323d35..a52eea79551d765af76ca22b620c6843d8441f77 100755
--- a/plugin.cpp
+++ b/plugin.cpp
@@ -119,15 +119,19 @@ class cleanup_pass : public gimple_opt_pass
                 /* Gate function (shall we apply this pass?) */
                 bool gate (function * fun)
                 {
+			bool func_to_be_analyzed = true;
                         printf("=> plugin: cleanup_pass... \n");
                         printf("=> plugin: gate... \n");
-			printf("List of functions to be checked :\n");
-			while(pragma_func_names.length() != 0){
-				printf("- %s\n",pragma_func_names.pop());
+			if((pragma_func_names.length() == 0)){
+				printf("\nNOT USING PRAGMAS - ANALYSING ALL FUNCS\n\n");
+				return true;
 			}
 	
-			
-                        return true;
+                        const char *elt;
+                        for(int ix = 0; pragma_func_names.iterate (ix, &elt); ix++)
+                                func_to_be_analyzed = strcmp(elt,function_name(fun)) && func_to_be_analyzed;
+			printf("USING PRAGMAS - FUNC IS : %s", function_name(fun));
+			return func_to_be_analyzed;
                 }