The inlining performed with -Os has often a tendency to increase the code size for the AVR target, so it misses the entire point behind using -Os.
This might be related to bug #30908. -- Summary: Inlining with -Os increases code size Product: gcc Version: 4.1.2 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: j at uriah dot heep dot sax dot de GCC target triplet: avr-*-* http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31528