I’m looking at an ALGOL program which F-DSes with a FALSE ASSERTION. From the dump file I can see that the <arithmetic expression> of a Case statement has a value which is not explicitly handled - and since there is no Else condition it is clear whythe program fails.
However, I’ve built a simpler test case (by stripping out irrelevant code) to try to reproduce the problem – but that fails with an INVALID CASE exception (which is actually what I would expect).
So my question is: why does one program fail with FALSE ASSERT and the other with INVALID CASE? What's the difference?
Any ideas?
Thanks,
Barry.
Thanks for your reply Paul,
I'm reluctant to share publicly as this is client code, but I can try to send you something privately.
My test case is based heavily on the original, and in particular it includes all the original index values (which range from 900-922 with a significant gap at 919); even though I've reduced the code to just a dummy display statement in most cases.
The error actually occurs within a library call - and I've replicated that in my test - just in case. The only other difference I'm aware of is that the real code runs as an MCS.
Ultimately this is just for my own understanding. I can fix the code by including an Else - though it would be better to understand where the 919 has suddenly started appearing from, in a program that has been in production for many years!
Thanks again
Barry.
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 285 |
Nodes: | 16 (2 / 14) |
Uptime: | 62:36:06 |
Calls: | 6,488 |
Calls today: | 1 |
Files: | 12,096 |
Messages: | 5,274,568 |