Hi Andreas, It might be a optimization issues.
Can you add the following to your program and test if the problem is gone? pragma opt expr_reduce no It will disable code optimization. Thanks. Kind regards, Rob ________________________________ Van: '[email protected]' via jallib <[email protected]> Verzonden: donderdag 17 augustus 2023 21:42 Aan: jallib <[email protected]> Onderwerp: Re: [jallib] IF statement fails Hi Rob, thanks that you are digging into this problem and maybe found the issue already. I'm a heavy Jal User I would call myself, but this is the first issue I found over the last years :-) On Thursday, August 17, 2023 at 9:31:13 PM UTC+2 Rob CJ wrote: Hi Andreas, I had a quick look at the generated assemble code for a PIC16. In your first code example the code is (I changed 3 times i into i, j and k so I could compile it): ; 10 i=test1() movlw 0 movwf v_i ; 11 if i>0 & i<13 then movf v_i,w bsf v__bitbucket, 0 ; _btemp1 btfsc v__status, v__z In your last code example where you removed the function the code is: clrf v_k ; 35 if k>0 & k<13 then movf v_k,w bsf v__bitbucket, 6 ; _btemp7 btfsc v__status, v__z If I am right - and I hope I am not - the first piece of code does not work because the Z flag (v__z) of the status register (v__status) is never affected by any of these instructions. In the last code example the clrf instruction sets the Z flag. In other words, moving the return value of 0 to v_i is not the same as clearing the value of v_k. So it might be a compiler bug. I wonder why it has not been discovered before. Still need to see if my draft conclusion is correct. Kind regards, Rob ________________________________ Van: '[email protected]' via jallib <[email protected]> Verzonden: donderdag 17 augustus 2023 21:07 Aan: jallib <[email protected]> Onderwerp: Re: [jallib] IF statement fails Hello Rob, PIC is a 18f26K83 compiler called with: ../jalv25r7/compiler/jalv2-x86-64 -no-variable-reuse no other specific setting Thanks, Andreas On Thursday, August 17, 2023 at 9:00:33 PM UTC+2 Rob CJ wrote: Hi, For which PIC did you compile this? 12, 16, 18? Did you use any compiler optimizations? Thanks. Kind regards, Rob ________________________________ Van: '[email protected]' via jallib <[email protected]> Verzonden: woensdag 16 augustus 2023 22:18 Aan: jallib <[email protected]> Onderwerp: [jallib] IF statement fails Hello everyone, I found this code is not working (using jal jalv25r7, but also older versions). Can anyone pls verify: var byte i function test() return byte is return 0 end function i=test() if i>0 & i<13 then -- goes here but is wrong else .. end if but this code works: var byte i function test() return byte is return 0 end function i=test() if i<13 & i>0 then .. else -- goes here and OK end if if you remove the function, it works, too: var byte i i=0 if i>0 & i<13 then .. else -- goes here and OK end if -- You received this message because you are subscribed to the Google Groups "jallib" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/jallib/2b197dbf-4628-4acd-b13c-11e3b6ba2228n%40googlegroups.com<https://groups.google.com/d/msgid/jallib/2b197dbf-4628-4acd-b13c-11e3b6ba2228n%40googlegroups.com?utm_medium=email&utm_source=footer>. -- You received this message because you are subscribed to the Google Groups "jallib" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/jallib/69c9a49a-e83c-4824-a27c-074f25bf0c29n%40googlegroups.com<https://groups.google.com/d/msgid/jallib/69c9a49a-e83c-4824-a27c-074f25bf0c29n%40googlegroups.com?utm_medium=email&utm_source=footer>. -- You received this message because you are subscribed to the Google Groups "jallib" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]<mailto:[email protected]>. To view this discussion on the web visit https://groups.google.com/d/msgid/jallib/f2b66222-389b-4f41-8705-41e46aad4528n%40googlegroups.com<https://groups.google.com/d/msgid/jallib/f2b66222-389b-4f41-8705-41e46aad4528n%40googlegroups.com?utm_medium=email&utm_source=footer>. -- You received this message because you are subscribed to the Google Groups "jallib" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/jallib/GVXP195MB163796017789018B9FCF43DAE61AA%40GVXP195MB1637.EURP195.PROD.OUTLOOK.COM.
