DirectIO.h defines _SFR_ASM_COMPAT, which causes register definitions to be integer addresses instead of references to the actual port (e.g. SREG defined as 0x3F instead of *(uint8_t*) 0x3F). This breaks some other uses, e.g. the ATOMIC_RESTORESTATE macro in util/atomic.h. DirectIO should restore the normal definitions at the end of its include file.
DirectIO.h defines _SFR_ASM_COMPAT, which causes register definitions to be integer addresses instead of references to the actual port (e.g. SREG defined as 0x3F instead of
*(uint8_t*) 0x3F)
. This breaks some other uses, e.g. the ATOMIC_RESTORESTATE macro in util/atomic.h. DirectIO should restore the normal definitions at the end of its include file.