Hi, I am trying to solve a problem with regards with getline()
/usr/home/muhammad/Open64/osprey/../osprey/ipa/main/analyze/ipa_devirtual.cxx: In member function 'void IPA_VIRTUAL_FUNCTION_TRANSFORM::Read_Callsite()':
/usr/home/muhammad/Open64/osprey/../osprey/ipa/main/analyze/ipa_devirtual.cxx:830: error: no matching function for call to 'getline(char**, long unsigned int*, FILE*&)'
gmake[3]: *** [ipa_devirtual.o] Error 1
gmake[3]: Leaving directory `/usr/home/muhammad/Open64/osprey/targdir/ipa'
gmake[2]: *** [default] Error 2
Code snippet here:
Thank you.Code:void IPA_VIRTUAL_FUNCTION_TRANSFORM::Read_Callsite() { if (IPA_Devirtualization_Input_File) { FILE *fp = fopen(IPA_Devirtualization_Input_File, "r"); if (fp == NULL) { fprintf(stderr, "Invalid DEVIR_CALLSITE file %s!\n", IPA_Devirtualization_Input_File); return; } size_t sz = 4096; char *linebuf = (char*)malloc(sz); char buffer[2048]; int lineno; int callsite_id; while (getline(&linebuf, &sz, fp) != -1) { if (*linebuf == '#') { // comment line starts with # continue; } if ( sscanf(linebuf, "Caller:%s line:%d callsite_id:%d", buffer, &lineno, &callsite_id) == 3) { DevirCallsiteInfo *p = new DevirCallsiteInfo(buffer, lineno, callsite_id); DevirCallsiteMap::iterator itr = theDevirCallsiteMap.find(buffer); if (itr == theDevirCallsiteMap.end()) { // create a new entry with a new vector vector<DevirCallsiteInfo *> *v = new vector<DevirCallsiteInfo *> ( ); v->push_back(p); theDevirCallsiteMap.insert(std::make_pair(strdup(buffer), v)); } else { // add the callsite info to the end of the exisiting vector itr->second->push_back(p); } }



LinkBack URL
About LinkBacks


