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
[email protected]
https://lists.sourceforge.net/lists/listinfo/sdcc-user