MISRA C 2012 rule 8.6

Questions and discussions about MISRA C not fitting under migration or rules forums

Moderators: misra-c, david ward

Post Reply
mcorles5
Posts: 1
Joined: Tue Oct 20, 2015 12:51 pm
Company: Ford Motor Company

MISRA C 2012 rule 8.6

Post by mcorles5 » Wed Nov 18, 2015 2:00 pm

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;

misra-c
Posts: 561
Joined: Thu Jan 05, 2006 1:11 pm

Re: MISRA C 2012 rule 8.6

Post by misra-c » Fri Dec 11, 2015 1:10 pm

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

Post Reply

Return to “General Questions”