On Friday, 6 June 2014 at 10:10:25 UTC, Mikko Aarnos wrote:
Hello all, I have a program which works perfectly when compiled
without -release:
parser "a implies b equivalent not b implies not a"
Input: ((a implies b) equivalent ((not b) implies (not a)))
CNF: (((((not a) or b) or (not b)) and (((not a) or b) or a))
and (((b or (not a
)) or a) and ((b or (not a)) or (not b))))
Time(in ms) = 0
However, when I add -release, this happens:
parser "a implies b equivalent not b implies not a"
object.Error: assert(0) or HLT instruction
----------------
0x0040220C
0x0040208F
0x0040206B
0x00403AAF
0x004084C8
0x0040849B
0x004083B4
0x0040454B
0x74F0338A in BaseThreadInitThunk
0x774A9F72 in RtlInitializeExceptionChain
0x774A9F45 in RtlInitializeExceptionChain
Does anybody here have any idea what could cause this? The
error seems to happen in a completely innocent part of code
without any reason so I haven't the faintest idea what could
cause it. I can post the source code if necessary, it's not
long (under 1000 lines including unit tests) but it's probably
pretty hard to read on some parts, mainly the parser.
-Mikko Aarnos
Please try compiling with -g (generate debug info). The magic
numbers should turn into a stack trace, so you know where the
assert is triggered.