Why does gcc generate different executables for different sourcefilenames?

to test I have this c-programm called test.c and test2.c:

```
int main(){}

```

"gcc test.c -o test" and "gcc test2.c -o test2" generate different output files. Using a hex-editor I can see that there still is its source-filename hidden in it. Stripping the files still results in different results (the source-filename is gone). Why does gcc operate this way? I tested clang and tcc as well. Clang behaves the like gcc does, whereas tcc generates the same results for different filenames?

gcc version 4.9.1 (Debian 4.9.1-1)

clang 3.4.2-4

tcc version 0.9.25