diff options
| author | Tetralux <tetralux@teknik.io> | 2020-04-22 06:12:41 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-04-22 06:12:41 +0100 |
| commit | e7e936f4804d7e5ba5f5cb77818240216a80648b (patch) | |
| tree | 2ad8f308089222f37d32e0e6a3475a2a6d4c1710 /src/llvm_backend.cpp | |
| parent | 3afa2736b7c8826527cb71ec3ca220750e0d2a9e (diff) | |
| parent | 026bb8ed6f6e626c69ccfe32de5b2323d86b4620 (diff) | |
Merge branch 'master' into fix-sync-badopt
Diffstat (limited to 'src/llvm_backend.cpp')
| -rw-r--r-- | src/llvm_backend.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/llvm_backend.cpp b/src/llvm_backend.cpp index b03f195b9..cc6eccff6 100644 --- a/src/llvm_backend.cpp +++ b/src/llvm_backend.cpp @@ -8903,7 +8903,13 @@ lbValue lb_build_expr(lbProcedure *p, Ast *expr) { case_end; case_ast_node(ce, CallExpr, expr); - return lb_build_call_expr(p, expr); + lbValue res = lb_build_call_expr(p, expr); + if (ce->optional_ok_one) { // TODO(bill): Minor hack for #optional_ok procedures + GB_ASSERT(is_type_tuple(res.type)); + GB_ASSERT(res.type->Tuple.variables.count == 2); + return lb_emit_struct_ev(p, res, 0); + } + return res; case_end; case_ast_node(se, SliceExpr, expr); |