Skip to content

Commit 3a96e99

Browse files
committed
[sil-llvm-gen] Run Sema before we attempt to emit IR.
1 parent b1f37f6 commit 3a96e99

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

lib/DriverTool/sil_llvm_gen_main.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -433,6 +433,15 @@ int sil_llvm_gen_main(ArrayRef<const char *> argv, void *MainAddr) {
433433
desc.out = &outFile->getOS();
434434

435435
if (options.OutputKind == IRGenOutputKind::LLVMAssemblyBeforeOptimization) {
436+
// We need to perform Sema here since IRGenRequest itself does not perform
437+
// Sema (unlike OptimizedIRRequest).
438+
CI.performSema();
439+
440+
// If Sema produced an error, exit early.
441+
bool HadError = CI.getASTContext().hadError();
442+
if (HadError)
443+
exit(-1);
444+
436445
auto generatedMod = evaluateOrFatal(eval, IRGenRequest{desc});
437446
if (!generatedMod)
438447
return 1;

0 commit comments

Comments
 (0)