Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
MISRA C 2012 rule 8.6
#1
The rule definition is "An identifier with external linkage shall have exactly one external definition." When I look at where it says there are multiple definitions, it points to the same line.
Ie.
global variable 'CALIBRATION_MISMATCH' has multiple tentatives of definitions (C:\User\Desktop\globals.c:137, C:\Users\Desktop\globals.c:137) (Required)
U8 CALIBRATION_MISMATCH;
<t></t>
Reply
#2
Given the limited information provided, it is not possible to give a definitive answer.

This answer assumes that there are no other declarations or definitions of CALIBRATION_MISMATCH in the translation unit. "U8 CALIBRATION_MISMATCH;" is then a tentative definition which becomes an external definition at the end of the translation unit.

This is compliant with rule 8.6 if there are no other definitions of CALIBRATION_MISMATCH in any other translation unit in the system. Note that including "globals.c" as a header file in another translation unit would mean that there was more than one definition in the system.

The MISRA-C working group can make no comments on messages from a particular tool. You should raise the issue with your tool vendor.
Posted by and on behalf of the MISRA C Working Group
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)