From fced334a177a503a5f6f49356e3115da5ec51ca7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9otime=20DONNENFELD?= <theotime.donnenfeld@ensiie.fr> Date: Sun, 21 Oct 2018 21:21:47 +0200 Subject: [PATCH] A checker: la comparaison de fonctions pragma/ensemble de fonctions du code --- functions/.pragma.c.swp | Bin 12288 -> 0 bytes functions/pragma.c | 21 +++++++++++++++++++++ functions/pragma.h | 2 +- plugin.cpp | 2 ++ 4 files changed, 24 insertions(+), 1 deletion(-) delete mode 100644 functions/.pragma.c.swp diff --git a/functions/.pragma.c.swp b/functions/.pragma.c.swp deleted file mode 100644 index 8f4a55176f396d4c18ff1e593bc881c447b2796d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12288 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 HP+|Z8GK}D~ diff --git a/functions/pragma.c b/functions/pragma.c index 164607e..078fc96 100644 --- a/functions/pragma.c +++ b/functions/pragma.c @@ -2,6 +2,7 @@ vec<const char*> pragma_func_names; vec<const char*> pragma_func_names_temp; +vec<const char*> analyzed_functions; static void my_pragma_action(cpp_reader *ARG_UNUSED(dummy)) { @@ -96,3 +97,23 @@ static void register_my_pragma(void *event_data, void *data) } +void compare_pragma_funcs_analyzed_funcs(){ + const char *pragma_elt; + const char *analyzed_elt; + for(int ix = 0; pragma_func_names.iterate (ix, &pragma_elt); ix++){ + for(int jx = 0; analyzed_functions.iterate (jx, &analyzed_elt); jx++){ + if(strcmp(pragma_elt, analyzed_elt)!=0) + printf("WARNING :Pragma indicates unexisting function %s\n ",pragma_elt ); + } + } +} + + + + + + + + + + diff --git a/functions/pragma.h b/functions/pragma.h index 5fdc160..1501a05 100644 --- a/functions/pragma.h +++ b/functions/pragma.h @@ -3,5 +3,5 @@ static void register_my_pragma(void *event_data, void *data); static void my_pragma_action(cpp_reader *ARG_UNUSED(dummy)); - +void compare_pragma_funcs_analyzed_funcs(); #endif diff --git a/plugin.cpp b/plugin.cpp index 19dd67a..687fd70 100755 --- a/plugin.cpp +++ b/plugin.cpp @@ -75,6 +75,7 @@ class split_count_pass : public gimple_opt_pass { bool func_to_be_analyzed = true; + printf("=> plugin: split_count_pass... \n"); printf("=> plugin: gate... \n"); if((pragma_func_names.length() == 0)){ @@ -145,6 +146,7 @@ class cleanup_pass : public gimple_opt_pass printf("=> plugin: execute...\n"); printf("... in function %s\n\n", function_name(fun)); + compare_pragma_funcs_analyzed_funcs(); edit_all_aux_value(fun,(int*)NULL); return 0; } -- GitLab