# HG changeset patch # User Max Brister # Date 1341958472 18000 # Node ID 70ff15b6d9963149547bb51ccca1fcc837cc5e62 # Parent f5925478bc15cc3502bee249637b954278829d4a Ignore unkonwn functions during compilation * src/pt-jit.cc (jit_typeinfo::jit_typeinfo): Initialize unknown_function. (jit_typeinfo::type_of): Return unknown_function for unkonwn functions. * src/pt-jit.h (jit_typeinfo::unknown_function): New variable. diff --git a/src/pt-jit.cc b/src/pt-jit.cc --- a/src/pt-jit.cc +++ b/src/pt-jit.cc @@ -1188,6 +1188,9 @@ casts[complex->type_id ()].add_overload (fn, false, complex, complex); // -------------------- builtin functions -------------------- + add_builtin ("#unknown_function"); + unknown_function = builtins["#unknown_function"]; + add_builtin ("sin"); register_intrinsic ("sin", llvm::Intrinsic::sin, scalar, scalar); register_generic ("sin", matrix, matrix); @@ -1494,7 +1497,8 @@ // have octave_value fully support the needed functionality octave_builtin *builtin = dynamic_cast (ov.internal_rep ()); - return builtin ? builtin->to_jit () : 0; + return builtin && builtin->to_jit () ? builtin->to_jit () + : unknown_function; } if (ov.is_range ()) diff --git a/src/pt-jit.h b/src/pt-jit.h --- a/src/pt-jit.h +++ b/src/pt-jit.h @@ -697,6 +697,7 @@ jit_type *boolean; jit_type *index; jit_type *complex; + jit_type *unknown_function; std::map builtins; llvm::StructType *complex_ret;