avr-gcc-list
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[avr-gcc-list] Re: sprintf


From: David Brown
Subject: [avr-gcc-list] Re: sprintf
Date: Tue, 03 Mar 2009 19:32:18 +0100
User-agent: Thunderbird 2.0.0.19 (Windows/20081209)

Joerg Wunsch wrote:
David Brown <address@hidden> wrote:

and
        memset((A_String + 16), 0, 1);

has the same effect as :

        A_String[16] = 0x00;
        delay_about_30_processor_cycles();
        waste_about_80_bytes_of_code_space();

Only if you're using -ffreestanding (e.g., in order to get GCC to
accept a return type "void" for main()).

If you're using -fhosted (the default), and optimize, it will
simply result in

        A_String[16] = 0;

because the compiler is allowed to use internal library knowledge
in hosted mode.

(The compiler would even be allowed to optimize the sprintf() case,
but by now, it doesn't do that.)

Is it possible for a compiler to be *too* good, if it generates optimal code despite terrible source?

mvh.,

David





reply via email to

[Prev in Thread] Current Thread [Next in Thread]