On 20.08.2025 14:44, Dmytro Prokopchuk1 wrote: > MISRA C Rule 18.3 states:"The relational operators >, >=, < and <= shall > not be applied to objects of pointer type except where they point into > the same object." > > Comparisons in the 'find_text_region()' function are safe because linker > symbols '_stext' and '_etext' represent fixed virtual addresses within
All symbols, after linking, "represent fixed virtual addresses". Not sure what you're actually meaning to get across here. > the same '.text' region, and the function 'addr' argument is explicitly > compared to known valid memory bounds ('text_start' and 'text_end') > derived from these linker symbols: > if ( (void *)addr >= iter->text_start && > (void *)addr < iter->text_end ) Overall I don't think the deviation can be justified this way. Or else the same could be said about other similar checks, which may not be valid to deviate. One particularly important aspect that imo needs discussing is the safety of the logic with code transformations in mind that a compiler may in principle do (leveraging UB for optimization purposes). Jan