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

Method getLineNb

src/SourceCompile/ParseFile.cpp:253–281  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

251}
252
253uint32_t ParseFile::getLineNb(uint32_t line) {
254 if (!getCompileSourceFile()) return line;
255 PreprocessFile* pp = getCompileSourceFile()->getPreprocessor();
256 if (!pp) return 0;
257 auto& infos = pp->getIncludeFileInfo();
258 if (!infos.empty()) {
259 if (!lineInfoCache.empty()) {
260 if (line > lineInfoCache.size()) {
261 SymbolId fileId = registerSymbol("CACHE OUT OF BOUND");
262 Location ppfile(fileId);
263 Error err(ErrorDefinition::PA_INTERNAL_WARNING, ppfile);
264 addError(err);
265 return line;
266 }
267 return lineInfoCache[line];
268 }
269 buildLineInfoCache_();
270 if (line > lineInfoCache.size()) {
271 SymbolId fileId = registerSymbol("CACHE OUT OF BOUND");
272 Location ppfile(fileId);
273 Error err(ErrorDefinition::PA_INTERNAL_WARNING, ppfile);
274 addError(err);
275 return line;
276 }
277 return lineInfoCache[line];
278 } else {
279 return line;
280 }
281}
282
283bool ParseFile::parseOneFile_(PathId fileId, uint32_t lineOffset) {
284 FileSystem* const fileSystem = FileSystem::getInstance();

Calls 1

getPreprocessorMethod · 0.80

Tested by

no test coverage detected