commit 85830386402e2050a3dc97778b3a28af2be16e90 (tree)
parent b15958c557d3b29c8d4cee9951a8bfd30c215482
Author: Michael Dusan <michael.dusan@gmail.com>
Date: Sat, 15 Feb 2020 05:14:31 -0500
translate-c: change OutOfMemory → ASTUnitFailure
- return a better error when no diagnostics are available
Diffstat:
4 files changed, 5 insertions(+), 1 deletion(-)
diff --git 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
@@ -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
@@ -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
@@ -84,6 +84,7 @@ enum Error {
ErrorInvalidCpuFeatures,
ErrorInvalidLlvmCpuFeaturesFormat,
ErrorUnknownApplicationBinaryInterface,
+ ErrorASTUnitFailure,
};
// ABI warning