Mercurial > octave-nkf
comparison src/jit-typeinfo.cc @ 15095:9df70a18aa27
Correct division by zero check in JIT
* src/jit-typeinfo.cc (jit_typinfo::jit_typinfo): Correct division by zero
check.
* src/pt-jit.cc: Add division by zero tests.
author | Max Brister <max@2bass.com> |
---|---|
date | Fri, 03 Aug 2012 10:14:57 -0500 |
parents | fe4752f772e2 |
children |
comparison
equal
deleted
inserted
replaced
15094:f51f0f288997 | 15095:9df70a18aa27 |
---|---|
1160 { | 1160 { |
1161 llvm::BasicBlock *warn_block = fn.new_block ("warn"); | 1161 llvm::BasicBlock *warn_block = fn.new_block ("warn"); |
1162 llvm::BasicBlock *normal_block = fn.new_block ("normal"); | 1162 llvm::BasicBlock *normal_block = fn.new_block ("normal"); |
1163 | 1163 |
1164 llvm::Value *zero = llvm::ConstantFP::get (scalar_t, 0); | 1164 llvm::Value *zero = llvm::ConstantFP::get (scalar_t, 0); |
1165 llvm::Value *check = builder.CreateFCmpUEQ (zero, fn.argument (builder, 0)); | 1165 llvm::Value *check = builder.CreateFCmpUEQ (zero, fn.argument (builder, 1)); |
1166 builder.CreateCondBr (check, warn_block, normal_block); | 1166 builder.CreateCondBr (check, warn_block, normal_block); |
1167 | 1167 |
1168 builder.SetInsertPoint (warn_block); | 1168 builder.SetInsertPoint (warn_block); |
1169 gripe_div0.call (builder); | 1169 gripe_div0.call (builder); |
1170 builder.CreateBr (normal_block); | 1170 builder.CreateBr (normal_block); |