commit 210d0017c40ee24215ce705fcee342fe34b9dccb (tree)
parent 7729f6cf4edd7c8eda935b1c7c8b4276d73b6e69
Author: Andrew Kelley <superjoe30@gmail.com>
Date: Wed, 29 Nov 2017 23:09:35 -0500
fix build broken by previous commit
now we report a compile error for unusual failures from translate-c
Diffstat:
4 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/error.cpp b/src/error.cpp
@@ -26,6 +26,7 @@ const char *err_str(int err) {
case ErrorExactDivRemainder: return "exact division had a remainder";
case ErrorNegativeDenominator: return "negative denominator";
case ErrorShiftedOutOneBits: return "exact shift shifted out one bits";
+ case ErrorCCompileErrors: return "C compile errors";
}
return "(invalid error)";
}
diff --git a/src/error.hpp b/src/error.hpp
@@ -26,6 +26,7 @@ enum Error {
ErrorExactDivRemainder,
ErrorNegativeDenominator,
ErrorShiftedOutOneBits,
+ ErrorCCompileErrors,
};
const char *err_str(int err);
diff --git a/src/ir.cpp b/src/ir.cpp
@@ -13870,7 +13870,10 @@ static TypeTableEntry *ir_analyze_instruction_c_import(IrAnalyze *ira, IrInstruc
int err;
if ((err = parse_h_buf(child_import, &errors, &cimport_scope->buf, ira->codegen, node))) {
- zig_panic("unable to parse C file: %s\n", err_str(err));
+ if (err != ErrorCCompileErrors) {
+ ir_add_error_node(ira, node, buf_sprintf("C import failed: %s", err_str(err)));
+ return ira->codegen->builtin_types.entry_invalid;
+ }
}
if (errors.length > 0) {
diff --git a/src/translate_c.cpp b/src/translate_c.cpp
@@ -4313,7 +4313,7 @@ int parse_h_file(ImportTableEntry *import, ZigList<ErrorMsg *> *errors, const ch
}
}
- return ErrorUnexpected;
+ return ErrorCCompileErrors;
}
c->ctx = &ast_unit->getASTContext();