I have defined variable as
static volatile unsigned char __xdata __at(0x123) foo;
then in code i am doing (&foo +1), but to my surprise compiler don't know that its address is fixed so any math can
be done before compiling. I workarounded that by using defined const for addr and using it in pointer arithmetic
but thats somewhat suboptimal.

Is there better solution besides making patch myself?
best regards