From fdfdd3b701a873f6d8f82eced2ded4998c9a26b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9otime=20DONNENFELD?= <theotime.donnenfeld@ensiie.fr> Date: Sun, 21 Oct 2018 20:27:26 +0200 Subject: [PATCH] =?UTF-8?q?Ajout=20du=20warning=20si=20deux=20fois=20la=20?= =?UTF-8?q?meme=20fonction=20est=20demand=C3=A9e=20par=20pragma?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- functions/.pragma.c.swp | Bin 0 -> 12288 bytes functions/pragma.c | 19 +++++++++++++++---- plugin.cpp | 2 +- 3 files changed, 16 insertions(+), 5 deletions(-) create mode 100644 functions/.pragma.c.swp diff --git a/functions/.pragma.c.swp b/functions/.pragma.c.swp new file mode 100644 index 0000000000000000000000000000000000000000..8f4a55176f396d4c18ff1e593bc881c447b2796d GIT binary patch literal 12288 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 HP+|Z8GK}D~ literal 0 HcmV?d00001 diff --git a/functions/pragma.c b/functions/pragma.c index a98fc77..3d716af 100644 --- a/functions/pragma.c +++ b/functions/pragma.c @@ -11,7 +11,7 @@ static void my_pragma_action(cpp_reader *ARG_UNUSED(dummy)) const char* elt; token = pragma_lex (&x); bool close_paren_needed_p = false; - + bool already_in; if (cfun){ printf("!!Pragma placed inside function!!\n"); @@ -33,9 +33,20 @@ static void my_pragma_action(cpp_reader *ARG_UNUSED(dummy)) if (TREE_STRING_LENGTH (x) > 0) args = tree_cons (NULL_TREE, x, args); - printf("Arg found : %s\n", IDENTIFIER_POINTER(x)); - - pragma_func_names_temp.safe_push(IDENTIFIER_POINTER(x)); + printf("\nArg found : %s\n", IDENTIFIER_POINTER(x)); + + already_in = false; + for (int ix = 0; pragma_func_names.iterate (ix, &elt); ix++){ + if(strcmp(elt, IDENTIFIER_POINTER(x))==0) + already_in = true; + } + + if(already_in){ + printf("WARNING : 2 pragmas refering to same func"); + } + else{ + pragma_func_names_temp.safe_push(IDENTIFIER_POINTER(x)); + } token = pragma_lex (&x); //Cleans COMAS while (token == CPP_COMMA){ diff --git a/plugin.cpp b/plugin.cpp index a52eea7..06c12cb 100755 --- a/plugin.cpp +++ b/plugin.cpp @@ -129,7 +129,7 @@ class cleanup_pass : public gimple_opt_pass 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; + func_to_be_analyzed = (strcmp(elt,function_name(fun))==0) && func_to_be_analyzed; printf("USING PRAGMAS - FUNC IS : %s", function_name(fun)); return func_to_be_analyzed; } -- GitLab