In some cases a inlined return of just a byte produce unnecessary treatment of the high byte, like it should fulfill the ABI calling convention.
The problem with the unoptimized inlined returs seams (after some trials) to raise (long) after constant assignment in combination with other facts. The example is compiled with gcc/avr/3.4.5, gnu99 and -Os, but the same effects are visible in combinations with gnu++98 and -O3. To show the difference between the oldstyle #define-macro and a inline function which should be 'as fast as a macro' I feed the .c-source instead of the .i-file. -- Summary: inlined return of a byte partial unoptimized Product: gcc Version: unknown Status: UNCONFIRMED Severity: enhancement Priority: P3 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: familie dot glaser at web dot de GCC host triplet: WIN GCC target triplet: AVR http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27847