I've noticed that the C51 linker does not always generate an error when the code space overflows its alloted space. For example, the following directive is used for the linker:
CODE (0X0000-0X1BFF, ?CO?* (0X0080), ?PR?*, ?C_INITSEG, ?C_C51STARTUP, ?C?LIB_CODE)
Program Size: data=145.1 xdata=4204 code=9067 LINK/LOCATE RUN COMPLETE. 0 WARNING(S), 0 ERROR(S)
CODE (0X0000-0X1BFF, ?CO?* (0X0080), ?PR?*, ?C_INITSEG, ?C_C51STARTUP)
*** ERROR L107: ADDRESS SPACE OVERFLOW SPACE: CODE SEGMENT: ?C?LIB_CODE LENGTH: 01D2H (more errors are displayed) Program Size: data=145.1 xdata=4204 code=9067 LINK/LOCATE RUN COMPLETE. 0 WARNING(S), 40 ERROR(S)