This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Strange warning L16 (LX51)

Former Member
Former Member

Very simple code:

#define LEVELS	8
	unsigned int code	table[LEVELS] =
		{   1,    8,   27,   64,  125,  216,  343,  512 };

unsigned int	get_distance (void) {
	unsigned char	ii;

	ii = 3;
//	return table[ii];	// (A)
	return table[ii-1];	// (B)
}


C51 COMPILER V7.07, COMPILATION OF MODULE TESTMOD
OBJECT MODULE PLACED IN TESTMOD.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE TESTMOD.C51 OMF2 ROM(COMPACT) OPTIMIZE(SIZE
                    -) BROWSE VARBANKING DEBUG CODE SYMBOLS

Linker gives a warning L16 in case (B):
LX51 LINKER/LOCATER V3.60, INVOKED BY:
C:\KEIL\C51\BIN\LX51.EXE TESTI.obj, TESTMOD.obj TO TESTI IXREF PR (TESTI.MAP)


*** WARNING L16: UNCALLED FUNCTION, IGNORED FOR OVERLAY PROCESS
    NAME:    ?CO?TESTMOD

No warning if compiled without subtraction (A).


Also if a c-function is called from a asm-code only (e.g. XBANKING.A51), linker gives a L16-warning.

0