From: Klaus H. <kla...@rt...> - 2001-03-01 21:31:02
|
Hi, tonight I fixed two bugs that I have found with following code snipped: 1: void (* foo)(int x, int y) reentrant; 2: 3: void bar () 4: { 5: if (foo) 6: foo(1,2); 7: } 1. PCALL-Bug The Compiler generated for the PCALL in line 6 a normal CALL ("lcall" for a mcs51). 2. Stack adjustment bug In some cases the Compiler did not generate code to adjust the stack after calls to functions that expect parameters on stack. To fix this problem I had to heavily change the argStack (SDCCsymt) and parmBytes (SDCCicode) stuff. Now parmBytes is located in the iCode structure. I think that is the best location for it because parmBytes is a typical backend stuff. Regards Klaus |