diff --git a/esphome/components/mdns/mdns_rp2040.cpp b/esphome/components/mdns/mdns_rp2040.cpp index e62e88f79f..0a8e939461 100644 --- a/esphome/components/mdns/mdns_rp2040.cpp +++ b/esphome/components/mdns/mdns_rp2040.cpp @@ -8,17 +8,11 @@ #include "mdns_component.h" // Arduino-Pico's PolledTimeout.h (pulled in by ESP8266mDNS.h) redefines IRAM_ATTR to empty. -// Save the current definition (from hal.h), undef before include to avoid a redefinition warning, -// then restore the original value afterwards. -#ifdef IRAM_ATTR -#define ESPHOME_SAVED_IRAM_ATTR IRAM_ATTR +// Save and restore our definition around the include to avoid a redefinition warning. +#pragma push_macro("IRAM_ATTR") #undef IRAM_ATTR -#endif #include -#ifdef ESPHOME_SAVED_IRAM_ATTR -#define IRAM_ATTR ESPHOME_SAVED_IRAM_ATTR -#undef ESPHOME_SAVED_IRAM_ATTR -#endif +#pragma pop_macro("IRAM_ATTR") namespace esphome::mdns {