You can easily solve that mystery by printing a bit more:

printf("\n %.10e %.10e %.10e",a1,a2,(a1-a2)/a2);

Floating point arithmetic happens on your CPU hardware, so you will always get the same result with the same numbers, no matter what compiler you use. But with slightly different numbers you get slightly different results. It's the precompiler that interprets your constants which is different. See: https://zorro-project.com/manual/en/aarray.htm