1. Bug in Phix (with fix)

In code such as the following

integer cdx = find(cemi,"CEeMm")-(cemi='m') 

The (cem='m') part was overwriting the result from find, in eax, then subtracting eax from eax, and therefore always setting cdx to 0.
Embarrassing, to be sure, but the fix is pretty trivial, and I figured I ought to post it here just in case it saves someone a bit of grief.
(Either that or ship the next version of Phix a bit prematurely.)

In pmain,e/StoreVar(), add 5 lines after the BranchOp check on line 2135:

    elsif opTopIsOp=BranchOp then   -- branch, I mean relational... 
 
        --added 29/3/17 
        if newEBP then 
            -- save eax if rqd 
            saveFunctionResultVars(opsidx,INTSTOO) 
        end if 

Pete

new topic     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu