Its a pic related thing.... I can just get my head round it. I use C18 and UDATA and IDATA can at best be a pain,,, UDATA (if you don't already know) is uninitialized data were as IDATA is..... Initialized. With C18 I keep getting (out of memory) errors when I clearly have plenty ( pic18f4620 ) In C18 I can declare two pages in memory as "BIG" and point my UDATA to it I then have oodles of UDATA space.
I used SDCC once, but the pic16 port was too buggy for me. I have moved to the C18 which is also free (student edition) No problems now as the documentation is much, much better.
Ian