------- Comment #6 from rguenth at gcc dot gnu dot org 2010-05-28 14:44 ------- Not really. Comparing pointers that point to different objects invokes undefined behavior anyway.
You could try --p; if (p >= a && p < a + 10) { *p = 0; } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44300