@@ -136,6 +136,7 @@ NAN_MODULE_INIT(IRBuilderWrapper::Init) {
136136 Nan::SetPrototypeMethod (functionTemplate, " createSIToFP" , &IRBuilderWrapper::ConvertOperation<&llvm::IRBuilder<>::CreateSIToFP>);
137137 Nan::SetPrototypeMethod (functionTemplate, " createUDiv" , &NANBinaryOperation<&ToBinaryOp<&llvm::IRBuilder<>::CreateUDiv>>);
138138 Nan::SetPrototypeMethod (functionTemplate, " createURem" , &NANBinaryOperation<&ToBinaryOp<&llvm::IRBuilder<>::CreateURem>>);
139+ Nan::SetPrototypeMethod (functionTemplate, " createUnreachable" , IRBuilderWrapper::CreateUnreachable);
139140 Nan::SetPrototypeMethod (functionTemplate, " createUIToFP" , &IRBuilderWrapper::ConvertOperation<&llvm::IRBuilder<>::CreateUIToFP>);
140141 Nan::SetPrototypeMethod (functionTemplate, " createStore" , IRBuilderWrapper::CreateStore);
141142 Nan::SetPrototypeMethod (functionTemplate, " createZExt" , IRBuilderWrapper::ConvertOperation<&llvm::IRBuilder<>::CreateZExt>);
@@ -641,6 +642,12 @@ NAN_METHOD(IRBuilderWrapper::CreateRetVoid) {
641642 info.GetReturnValue ().Set (ValueWrapper::of (returnInstruction));
642643}
643644
645+ NAN_METHOD (IRBuilderWrapper::CreateUnreachable) {
646+ auto & builder = IRBuilderWrapper::FromValue (info.Holder ())->irBuilder ;
647+ auto * returnInstruction = builder.CreateUnreachable ();
648+ info.GetReturnValue ().Set (ValueWrapper::of (returnInstruction));
649+ }
650+
644651NAN_METHOD (IRBuilderWrapper::CreateSelect) {
645652 if (info.Length () < 3 || !ValueWrapper::isInstance (info[0 ]) || !ValueWrapper::isInstance (info[1 ]) || !ValueWrapper::isInstance (info[2 ]) ||
646653 (info.Length () == 4 && !(info[3 ]->IsString () || info[3 ]->IsUndefined ())) ||
0 commit comments