5.1 in practice

Moderators: misra-c, david ward

Post Reply
Posts: 7
Joined: Sun Apr 09, 2017 1:14 pm
Company: Evidente

5.1 in practice

Post by danielmarjamaki » Wed May 23, 2018 10:37 am

I am not technically against 5.1. I just wonder how useful it is in practice.

Do you actually know a modern compiler that does not work well?

If you create a "too long" identifier will the modern compiler misbehave and create wrong code, or will they abort and complain to the user that an identifier is too long?

I created 2 external variables with 32000 characters and compiled with gcc and it seems to work fine.

Posts: 571
Joined: Thu Jan 05, 2006 1:11 pm

Re: 5.1 in practice

Post by misra-c » Fri Jun 08, 2018 8:40 am

For clarification, the issue addressed by rule 5.1 is not the length of the external identifiers, but the number of significant characters in the identifier.

Even though you have found a compiler/linker with no obvious limit, this does not mean that other compiler/linkers do not have a limit. The gcc documentation states
"For external names, the number of significant characters are defined by the linker; for almost all targets, all characters are significant."

You will never violate rule 5.1 if your compiler/linker has no limit on the significant characters since the amplification for rule 5.1 states
This rule requires that different external identifiers be distinct within the limits imposed by the implementation
Posted by and on behalf of
the MISRA C Working Group

Post Reply

Return to “8.5 Identifers”