I didn't contact them yet. See my reply on the other port. Maybe I will. I agreed that they are helpful. But If there is a better compiler, I am willing to try. ----- Original Message ----- From: "Ken Pergola" To: Sent: Tuesday, August 12, 2003 12:53 PM Subject: Re: [PIC]: Seek C Complier Recommendations > Hi Tony, > > Have you contacted HI-TECH to see if they can help you with your concerns? > I've found them to be very helpful -- they are a bunch of sharp cookies > (compliment). Most companies don't want to lose customers. If you have not > contacted them directly or by e-mail, I would recommend doing so, and state > that you are at a point where you are looking to switch compilers and > desperately need their help (which is the truth, right?). You never know, > things might turn out great -- it's worth a try. > > Hope it works out for you. > > Good luck, > > Ken Pergola > > > > > > -----Original Message----- > From: pic microcontroller discussion list > [mailto:PICLIST@MITVMA.MIT.EDU]On Behalf Of Tony Pan > Sent: Tuesday, August 12, 2003 12:29 PM > To: PICLIST@MITVMA.MIT.EDU > Subject: Re: [PIC]: Seek C Complier Recommendations > > > I think you are right that I misunderstood the bug description. However it's > a fact that my code compiled with 7.87PL4 does not work logically when > compiled with 8.00PL3. My code is similar to the example that I gave. It > worked only after I made all local variables global (by adding a "static" > before the "unsigned char" and removing parameters passed onto a function.) > > However, if I add "static" everywhere I have local variables many of my > projects cannot compile due to insufficient memory. That, together with the > problem that I stated above, are what I meant by "renders my old projects > un-reusable". > > > > ----- Original Message ----- > From: "Olin Lathrop" > To: > Sent: Tuesday, August 12, 2003 12:07 PM > Subject: Re: [PIC]: Seek C Complier Recommendations > > > > > - Functions which have variables declared within multiple blocks where > > > code within the block requires the use of temporary memory may be get > > > corrupted when compiled with global optimizations. A work around is to > > > move the variable outside of the block. > > > > > For example, it you have code like below the compiler *may* mess up your > > > program: > > > > > > unsigned char foo1() > > > { > > > unsigned char i; > > > i = 1; > > > foo2(); > > > return i; // should return 1 > > > } > > > > > > void foo2() > > > { > > > unsigned char i; > > > // code here... > > > i = 2; > > > // code here... > > > } > > > > I agree that it would be a serious bug if FOO1 returned anything other > > than 1, but I don't see how this example matches the bug description. All > > the variables in each function are declared in a single block in a single > > scope. Maybe there is yet another bug lurking? > > > > > > ***************************************************************** > > Embed Inc, embedded system specialists in Littleton Massachusetts > > (978) 742-9014, http://www.embedinc.com > > > > -- > > http://www.piclist.com hint: The PICList is archived three different > > ways. See http://www.piclist.com/#archives for details. > > > > -- > http://www.piclist.com hint: The PICList is archived three different > ways. See http://www.piclist.com/#archives for details. > > -- > http://www.piclist.com hint: The PICList is archived three different > ways. See http://www.piclist.com/#archives for details. -- http://www.piclist.com hint: The PICList is archived three different ways. See http://www.piclist.com/#archives for details.