I don't know the answer, though I offer an observation.

Most compilers will optimize away the delay that you are trying to
implement.  Therefore you should declare timeout this way:

  volatile int timeout;

Also, when I do it that way, I don't get the warning.

-Ken Jackson

Mary-Ann Johnson writes:
 > If I compile the following code (SDCC 2.7.0):
 > 
 > ------------------------------------------------
 > void func(void)
 > {
 >   int timeout;
 > 
 >   return;
 > 
 >   timeout = 0xFFFF;
 >   while (timeout--);
 > }
 > ------------------------------------------------
 > 
 > SDCC produces the following warnings:
 > "src/test.c:8: warning 84: 'auto' variable 'timeout' may be used before
 > initialization
 > src/test.c:8: warning 84: 'auto' variable 'timeout' may be used before
 > initialization
 > src/test.c:8: warning 84: 'auto' variable 'timeout' may be used before
 > initialization"
 > 
 > Any idea why?
 > 
 > And before someone says "Don't call 'return' there!" - this scenario
 > happens when a macro is set to "return" to eliminate the 2nd half of a
 > function.
 > 
 > Thanks,
 > Mary-Ann

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Sdcc-user mailing list
Sdcc-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sdcc-user

Reply via email to