@@ -198,8 +198,8 @@ class MLIRGenImpl
198198
199199 filesToProcess.pop_back();
200200
201- std::string ignored ;
202- auto id = sourceMgr.AddIncludeFile(std::string(fullPath), SMLoc(), ignored );
201+ std::string actualFilePath ;
202+ auto id = sourceMgr.AddIncludeFile(std::string(fullPath), SMLoc(), actualFilePath );
203203 if (!id)
204204 {
205205 emitError(location, "can't open file: ") << fullPath;
@@ -210,7 +210,7 @@ class MLIRGenImpl
210210
211211 Parser parser;
212212 auto includeFile =
213- parser.parseSourceFile(includeFileName , stows(sourceBuf->getBuffer().str()), ScriptTarget::Latest);
213+ parser.parseSourceFile(ConvertUTF8toWide(actualFilePath) , stows(sourceBuf->getBuffer().str()), ScriptTarget::Latest);
214214 for (auto refFile : includeFile->referencedFiles)
215215 {
216216 filesToProcess.push_back(refFile.fileName);
@@ -404,6 +404,10 @@ class MLIRGenImpl
404404
405405 for (auto includeFile : includeFiles)
406406 {
407+ MLIRValueGuard<llvm::StringRef> vgFileName(fileName);
408+ auto fileNameUtf8 = convertWideToUTF8(includeFile->fileName);
409+ fileName = fileNameUtf8;
410+
407411 if (failed(mlirGen(includeFile->statements, genContextPartial)))
408412 {
409413 outputDiagnostics(postponedMessages, 1);
@@ -453,8 +457,13 @@ class MLIRGenImpl
453457
454458 for (auto includeFile : includeFiles)
455459 {
460+ MLIRValueGuard<llvm::StringRef> vgFileName(fileName);
461+ auto fileNameUtf8 = convertWideToUTF8(includeFile->fileName);
462+ fileName = fileNameUtf8;
463+
456464 if (failed(mlirGen(includeFile->statements, genContext)))
457465 {
466+ outputDiagnostics(postponedMessages, 1);
458467 return mlir::failure();
459468 }
460469 }
0 commit comments