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