With GCC r130284 --target=avr, a 116 byte static function that is called twice is inlined even with -Os, effectively doubling the function's footprint. I'd argue a function this large shouldn't even be inlined with -O2. What is the size cutoff for inlining functions? Can I modify it? If a code snippet would help troubleshoot this matter, I can certainly send one along.
Cheers, Shaun