Provided not located in the root, those two code samples have different behaviours:
#line 42 "file.c"
pragma(msg, __FILE_FULL_PATH__); //outputs the compiler's CWD ~ __FILE__
#line 42 "/file.c"
pragma(msg, __FILE_FULL_PATH__); //output omits DMD's CWD
static assert(__FILE_FULL_PATH__ == __FILE__); //succeeds
Looks like this function is responsible for this.
Is this the intended behaviour? Is it documented somewhere?
The first behaviour is weird and used to just respond with what's written in the #line
directive, before being changed by this commit.