I'm aware that Microsoft's 64-bit compilers now have only one calling convention. So __cdecl, __stdcall, __fastcall and (apparently) even __thiscall are now all equivalent.

So what happens if I'm building some older code which explicitly declared a calling convention. If the compiler encounters a symbol that's explicitly declared as __cdecl, __stdcall or whatever is that regarded as an error or does it just get ignored?