cassemblymisrapc-lintwind-river-workbench

__asm and PCLint 9.0L Error 14: Symbol 'TS_IntDisableAsm(void)' previously defined


I using the PCLint-Check 9.0L for a Project and got the current Error Message during a Lint-Check on all Lint-Object-Files(*.lob) of the Project:

The PCLInt Help manual explains here: Symbol 'Symbol' previously defined (Location) -- The named object has been defined a second time.

But there exists only the following definition on the whole Project inside the TSPlatforms.h at Line 90:

#define TS_IntDisable()     TS_IntDisableAsm()
__asm TS_IntStatusType TS_IntDisableAsm(void)
{
 .set noreorder
! "r3"
    mfmsr   r3
    wrteei  0
 .set reorder
}

The TSPlatforms.h is included several times in different C-Files of my project, but the code is of course wrapped in a redefinition protection:

#if (!defined TSPLATFORMS_H)
#define TSPLATFORMS_H
...
#endif

Has anyone a hint for me to identify the error?

Thanks! HJ


Solution

  • My guess: the code TS_IntDisableAsm() is intended to be inlined. PCLint is not aware of that and thinks it is defined in multiple .c files and that there will be a conflict when everything will be linked together.

    Adding a static keyword in front of your declaration should help.