Closed
Description
Test
let a = -1 * 0
Crashes with
fatal.nim(39) sysFatal
Error: unhandled exception: int128.nim(383, 11) `false` overflow [AssertionError]
Stack trace
.../Nim/compiler/nim.nim(106) nim
.../Nim/compiler/nim.nim(83) handleCmdLine
.../Nim/compiler/cmdlinehelper.nim(98) loadConfigsAndRunMainCommand
.../Nim/compiler/main.nim(188) mainCommand
.../Nim/compiler/main.nim(92) commandCompileToC
.../Nim/compiler/modules.nim(144) compileProject
.../Nim/compiler/modules.nim(85) compileModule
.../Nim/compiler/passes.nim(213) processModule
.../Nim/compiler/passes.nim(86) processTopLevelStmt
.../Nim/compiler/sem.nim(600) myProcess
.../Nim/compiler/sem.nim(568) semStmtAndGenerateGenerics
.../Nim/compiler/semstmts.nim(2214) semStmt
.../Nim/compiler/semexprs.nim(986) semExprNoType
.../Nim/compiler/semexprs.nim(2758) semExpr
.../Nim/compiler/semstmts.nim(1990) semProc
.../Nim/compiler/semstmts.nim(1910) semProcAux
.../Nim/compiler/semexprs.nim(1744) semProcBody
.../Nim/compiler/semexprs.nim(2740) semExpr
.../Nim/compiler/semstmts.nim(2154) semStmtList
.../Nim/compiler/semexprs.nim(2718) semExpr
.../Nim/compiler/semstmts.nim(164) semIf
.../Nim/compiler/semstmts.nim(104) semExprBranch
.../Nim/compiler/semexprs.nim(2740) semExpr
.../Nim/compiler/semstmts.nim(2154) semStmtList
.../Nim/compiler/semexprs.nim(2750) semExpr
.../Nim/compiler/semstmts.nim(881) semFor
.../Nim/compiler/semstmts.nim(762) semForVars
.../Nim/compiler/semstmts.nim(104) semExprBranch
.../Nim/compiler/semexprs.nim(2740) semExpr
.../Nim/compiler/semstmts.nim(2154) semStmtList
.../Nim/compiler/semexprs.nim(2738) semExpr
.../Nim/compiler/semexprs.nim(1696) semAsgn
.../Nim/compiler/semexprs.nim(64) semExprWithType
.../Nim/compiler/semexprs.nim(2637) semExpr
.../Nim/compiler/semexprs.nim(968) semDirectOp
.../Nim/compiler/semexprs.nim(861) afterCallActions
.../Nim/compiler/semexprs.nim(34) semTemplateExpr
.../Nim/compiler/sem.nim(441) semAfterMacroCall
.../Nim/compiler/semexprs.nim(2740) semExpr
.../Nim/compiler/semstmts.nim(2154) semStmtList
.../Nim/compiler/semexprs.nim(2662) semExpr
.../Nim/compiler/semexprs.nim(967) semDirectOp
.../Nim/compiler/semexprs.nim(816) semOverloadedCallAnalyseEffects
.../Nim/compiler/semcall.nim(532) semOverloadedCall
.../Nim/compiler/semcall.nim(335) resolveOverloads
.../Nim/compiler/semcall.nim(93) pickBestCandidate
.../Nim/compiler/sigmatch.nim(2520) matches
.../Nim/compiler/sigmatch.nim(2457) matchesAux
.../Nim/compiler/sigmatch.nim(2259) prepareOperand
.../Nim/compiler/semexprs.nim(49) semOperand
.../Nim/compiler/semexprs.nim(2662) semExpr
.../Nim/compiler/semexprs.nim(967) semDirectOp
.../Nim/compiler/semexprs.nim(816) semOverloadedCallAnalyseEffects
.../Nim/compiler/semcall.nim(532) semOverloadedCall
.../Nim/compiler/semcall.nim(335) resolveOverloads
.../Nim/compiler/semcall.nim(93) pickBestCandidate
.../Nim/compiler/sigmatch.nim(2520) matches
.../Nim/compiler/sigmatch.nim(2457) matchesAux
.../Nim/compiler/sigmatch.nim(2259) prepareOperand
.../Nim/compiler/semexprs.nim(49) semOperand
.../Nim/compiler/semexprs.nim(2662) semExpr
.../Nim/compiler/semexprs.nim(968) semDirectOp
.../Nim/compiler/semexprs.nim(875) afterCallActions
.../Nim/compiler/semexprs.nim(735) evalAtCompileTime
.../Nim/compiler/semfold.nim(661) getConstExpr
.../Nim/compiler/semfold.nim(417) magicCall
.../Nim/compiler/semfold.nim(207) evalOp
.../Nim/compiler/semfold.nim(93) foldMul
.../Nim/compiler/int128.nim(383) *
.../Nim/lib/system/assertions.nim(27) failedAssertImpl
.../Nim/lib/system/assertions.nim(20) raiseAssert
.../Nim/lib/system/fatal.nim(39) sysFatal
Error: unhandled exception: .../Nim/compiler/int128.nim(383, 11) `false` overflow [AssertionError]
FAILURE
Tagging high-priority because it's hard to workaround, you need to insert indirections so that the compiler doesn't semfold