X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/4c08549f10ee20718e7896b869dc60fac25008b7..6d3e309f245083feee40b5583aa0088583caea10:/src/smpi/replace_globals.cocci diff --git a/src/smpi/replace_globals.cocci b/src/smpi/replace_globals.cocci index d64b380267..c112eb81d6 100644 --- a/src/smpi/replace_globals.cocci +++ b/src/smpi/replace_globals.cocci @@ -1,7 +1,6 @@ // FIXME: problems -// - cannot change type on multiple variable declaration +// - does not want to match dynamic arrays... // - does not match array initializers -// - dereferencing outside access macro? (maybe not an issue...) // Function prototype looks like variable dec, but has parentheses @funcproto@ @@ -38,29 +37,44 @@ var = E type T; identifier var; position p != { localvardecl.p, funcproto.p }; -expression E; +expression value; +constant size; @@ ( T@p -var -+ = SMPI_INITIALIZE_GLOBAL(T) +- var ++ *var = SMPI_INITIALIZE_GLOBAL(var, T) +; +| +T@p +- var = value ++ *var = SMPI_INITIALIZE_AND_SET_GLOBAL(var, T, value) +; +| +T@p +- var[] ++ *var[] = SMPI_INITIALIZE_GLOBAL_ARRAY(T, size) +; +| +T@p +- var[size] ++ *var[] = SMPI_INITIALIZE_GLOBAL_STATIC_ARRAY(T, size) ; | T@p -var = -- E -+ SMPI_INITIALIZE_AND_SET_GLOBAL(T, E) +- var[size] = { ... } ++ *var[] = SMPI_INITIALIZE_AND_SET_GLOBAL_STATIC_ARRAY(T, size) ; ) @rewritelocalaccess@ -local idexpression x; +local idexpression lvar; identifier globalvardecl.var; @@ { <... ( -x +lvar | +SMPI_GLOBAL_VAR_LOCAL_ACCESS( var