Skip to content

Commit 11583d1

Browse files
committed
LLVMCodeBuilder: Fix NaN constants
1 parent 2bae9cc commit 11583d1

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

src/dev/engine/internal/llvmcodebuilder.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -877,8 +877,10 @@ llvm::Value *LLVMCodeBuilder::castRawValue(std::shared_ptr<Register> reg, Compil
877877
llvm::Constant *LLVMCodeBuilder::castConstValue(const Value &value, Compiler::StaticType targetType)
878878
{
879879
switch (targetType) {
880-
case Compiler::StaticType::Number:
881-
return llvm::ConstantFP::get(m_ctx, llvm::APFloat(value.toDouble()));
880+
case Compiler::StaticType::Number: {
881+
const double nan = std::numeric_limits<double>::quiet_NaN();
882+
return llvm::ConstantFP::get(m_ctx, llvm::APFloat(value.isNaN() ? nan : value.toDouble()));
883+
}
882884

883885
case Compiler::StaticType::Bool:
884886
return m_builder.getInt1(value.toBool());

0 commit comments

Comments
 (0)