diff options
| author | Karl Zylinski <karl@zylinski.se> | 2024-09-14 11:26:41 +0200 |
|---|---|---|
| committer | Karl Zylinski <karl@zylinski.se> | 2024-09-14 11:26:41 +0200 |
| commit | 86e291235dd7225e3ce21c916a68efba0bd9232c (patch) | |
| tree | 90f127e1a588f78447521c28e460ccf26d5a632a /src/llvm_backend_expr.cpp | |
| parent | f9de8fdaba12746b9c458e916ba6bb9d7c5b7aa7 (diff) | |
| parent | 129d85fe7d05a41732cea3bd15b02a4286276a15 (diff) | |
Merge remote-tracking branch 'origin/master' into file-tags-without-comments
Diffstat (limited to 'src/llvm_backend_expr.cpp')
| -rw-r--r-- | src/llvm_backend_expr.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/llvm_backend_expr.cpp b/src/llvm_backend_expr.cpp index f20c52e88..58467db2e 100644 --- a/src/llvm_backend_expr.cpp +++ b/src/llvm_backend_expr.cpp @@ -3451,8 +3451,14 @@ gb_internal lbValue lb_build_expr_internal(lbProcedure *p, Ast *expr) { switch (expr->kind) { case_ast_node(bl, BasicLit, expr); + if (type != nullptr && type->Named.name == "Error") { + Entity *e = type->Named.type_name; + if (e->pkg && e->pkg->name == "os") { + return lb_const_nil(p->module, type); + } + } TokenPos pos = bl->token.pos; - GB_PANIC("Non-constant basic literal %s - %.*s", token_pos_to_string(pos), LIT(token_strings[bl->token.kind])); + GB_PANIC("Non-constant basic literal %s - %.*s (%s)", token_pos_to_string(pos), LIT(token_strings[bl->token.kind]), type_to_string(type)); case_end; case_ast_node(bd, BasicDirective, expr); |