Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
5.1 in practice
#1
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.
<t></t>
Reply
#2
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
Quote: 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
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)