mirror of
https://github.com/esphome/esphome.git
synced 2026-09-02 19:16:06 +00:00
On ESP8266 (GCC 10.3), std::vector::push_back() emits a separate _M_realloc_insert<DeferredEvent> function (198 bytes) that is only called from one site. Adding __attribute__((flatten)) forces the compiler to inline it, eliminating the out-of-line function's prologue/epilogue and call overhead. This matches what GCC 14.2 (ESP-IDF toolchain) already does naturally for the equivalent code in web_server_idf.cpp. Saves 80 bytes of flash on ESP8266.