From 85830386402e2050a3dc97778b3a28af2be16e90 Mon Sep 17 00:00:00 2001 From: Michael Dusan Date: Sat, 15 Feb 2020 05:14:31 -0500 Subject: [PATCH] =?UTF-8?q?translate-c:=20change=20OutOfMemory=20=E2=86=92?= =?UTF-8?q?=20ASTUnitFailure?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - return a better error when no diagnostics are available --- src-self-hosted/stage1.zig | 2 ++ src-self-hosted/translate_c.zig | 2 +- src/error.cpp | 1 + src/userland.h | 1 + 4 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src-self-hosted/stage1.zig b/src-self-hosted/stage1.zig index 961b95d481..ffa0754bb5 100644 --- a/src-self-hosted/stage1.zig +++ b/src-self-hosted/stage1.zig @@ -92,6 +92,7 @@ const Error = extern enum { InvalidCpuFeatures, InvalidLlvmCpuFeaturesFormat, UnknownApplicationBinaryInterface, + ASTUnitFailure, }; const FILE = std.c.FILE; @@ -114,6 +115,7 @@ export fn stage2_translate_c( out_errors_len.* = errors.len; return Error.CCompileErrors; }, + error.ASTUnitFailure => return Error.ASTUnitFailure, error.OutOfMemory => return Error.OutOfMemory, }; return Error.None; diff --git a/src-self-hosted/translate_c.zig b/src-self-hosted/translate_c.zig index 0c7b3868e2..cd8d0b9d63 100644 --- a/src-self-hosted/translate_c.zig +++ b/src-self-hosted/translate_c.zig @@ -264,7 +264,7 @@ pub fn translate( &errors.len, resources_path, ) orelse { - if (errors.len == 0) return error.OutOfMemory; + if (errors.len == 0) return error.ASTUnitFailure; return error.SemanticAnalyzeFail; }; defer ZigClangASTUnit_delete(ast_unit); diff --git a/src/error.cpp b/src/error.cpp index 5bf1667db9..08575d15ec 100644 --- a/src/error.cpp +++ b/src/error.cpp @@ -64,6 +64,7 @@ const char *err_str(Error err) { case ErrorInvalidCpuFeatures: return "invalid CPU features"; case ErrorInvalidLlvmCpuFeaturesFormat: return "invalid LLVM CPU features format"; case ErrorUnknownApplicationBinaryInterface: return "unknown application binary interface"; + case ErrorASTUnitFailure: return "ASTUnit failure"; } return "(invalid error)"; } diff --git a/src/userland.h b/src/userland.h index 6b16d2338e..a59f6b7da8 100644 --- a/src/userland.h +++ b/src/userland.h @@ -84,6 +84,7 @@ enum Error { ErrorInvalidCpuFeatures, ErrorInvalidLlvmCpuFeaturesFormat, ErrorUnknownApplicationBinaryInterface, + ErrorASTUnitFailure, }; // ABI warning