Я новичок в stackoverflow и новичок в использовании компилятора rose.Я пытаюсь получить общее количество массивов, к которым обращаются функции (не для каждого доступа к массиву, а для отдельных массивов).Вот что у меня получилось:
//for each function body
SgFunctionDeclaration *func = isSgFunctionDeclaration(*p);
SgFunctionDefinition *defn = func->get_definition();
Rose_STL_Container<SgNode*> arrayAccess = NodeQuery::querySubTree(defn,V_SgArrayType);
for (Rose_STL_Container<SgNode*>::iterator iter = arrayAccess.begin(); iter!= arrayAccess.end(); iter++ ) {
//in here i check if any iterators point to the same thing, and only increment counter if they do not point to the same
В некоторых примерах это работает, но в других он не обнаруживает никаких массивов ... Кажется, что я запрашиваю массив неправильноКто-нибудь знает об этом?