Table of Contents        Previous topic       Next topic       

LINKER->Cross Module Type Checking

Towards the end of the link process, the linker will have gathered information on all of the global variables and functions used in the program.  It will use this information to perform a full type check across the complete program.  This is particularly important for the Crossware 8051 Ansi C compiler to ensure that any global smart pointers have configured themselves in an identical way in different modules.  An added benefit is that your program is fully checked for cross-module integrity.  So if you have a global variable that is for instance a pointer to a double in one module and an array of integers in another module the linker will issue a warning.  The linker generates a warning rather than an error because there are many instances in C where such a situation is intentional.  However, you should carefully examine these wanings to ensure that they are not errors.  A full type listing of  each of the conflicting objects is given in conjunction with the warning and so it is quite straight forward to determine what the differences are.

Note that the linker will not diagnose differences that occur within a single module.  You should examine the compilers warnings for this information.