MISRA Discussion Forums

Full Version: Interpretation of Dir 4.3
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi All,

Would you please advise me if a macro containing both assembly and C code
is a violation of Dir 4.3?

Example:
#define M_def do { asm( "mv r0,r1" ); use_uint32( 0 ); } while( 0 )

Please note that 'use_uint32( 0 );' is a function call.

Regards,
Tad
Directive 4.3 states that the assembly language instruction shall "encapsulated and isolated". The meaning of the word "isolated" is that a macro containing assembly language instructions should contain only assembly instructions and no other C code.

Therefore your code violates Dir 4.3.