MCPcopy Create free account
hub / github.com/chipsalliance/Surelog / getFileId

Method getFileId

src/SourceCompile/ParseFile.cpp:221–251  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

219}
220
221PathId ParseFile::getFileId(uint32_t line) {
222 if (!getCompileSourceFile()) {
223 return m_fileId;
224 }
225 PreprocessFile* pp = getCompileSourceFile()->getPreprocessor();
226 if (!pp) return BadPathId;
227 auto& infos = pp->getIncludeFileInfo();
228 if (!infos.empty()) {
229 if (!fileInfoCache.empty()) {
230 if (line > fileInfoCache.size()) {
231 SymbolId fileId = registerSymbol("CACHE OUT OF BOUND");
232 Location ppfile(fileId);
233 Error err(ErrorDefinition::PA_INTERNAL_WARNING, ppfile);
234 addError(err);
235 return m_fileId;
236 }
237 return fileInfoCache[line];
238 }
239 buildLineInfoCache_();
240 if (line > fileInfoCache.size()) {
241 SymbolId fileId = registerSymbol("CACHE OUT OF BOUND");
242 Location ppfile(fileId);
243 Error err(ErrorDefinition::PA_INTERNAL_WARNING, ppfile);
244 addError(err);
245 return m_fileId;
246 }
247 return fileInfoCache[line];
248 } else {
249 return m_fileId;
250 }
251}
252
253uint32_t ParseFile::getLineNb(uint32_t line) {
254 if (!getCompileSourceFile()) return line;

Callers 15

enterTop_level_ruleMethod · 0.45
enterLine_directiveMethod · 0.45
enterStringMethod · 0.45
enterSource_textMethod · 0.45
createFileList_Method · 0.45
parseinit_Method · 0.45

Calls 1

getPreprocessorMethod · 0.80

Tested by

no test coverage detected