Commit 210d0017c4

Andrew Kelley <superjoe30@gmail.com>
2017-11-30 05:09:35
fix build broken by previous commit
now we report a compile error for unusual failures from translate-c
1 parent 7729f6c
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)";
 }
src/error.hpp
@@ -26,6 +26,7 @@ enum Error {
     ErrorExactDivRemainder,
     ErrorNegativeDenominator,
     ErrorShiftedOutOneBits,
+    ErrorCCompileErrors,
 };
 
 const char *err_str(int err);
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) {
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();