I don’t know, but you can easily create a workaround like this:
int *var = (int*)0x40001000; *var = 4;
It’s not exactly the same thing, but in most situations a perfect substitute. It will work with any compiler, not just GCC.
I imagine letting the linker do that job is pretty common.
Inspired by answer by @rib, I’ll add that if the absolute address is for some control register, I’d add
volatile to the pointer definition. If it is just RAM, it doesn’t matter.