Page 1 of 1

Assembly encapsulation in macros?

Posted: Mon Apr 26, 2010 7:41 pm
by gs
Is this code compliant with rule #2.1?

Code: Select all

#define ASM_MACRO_1 asm { "abc" }
#define ASM_MACRO_2 asm { "xyz" }

extern void g();

void f( void )
    {
    ASM_MACRO_1;    /* Do something in assembly.    */
    g();            /* Do something in C.           */
    ASM_MACRO_2;    /* Do something in assembly.    */
    }

Re: Assembly encapsulation in macros?

Posted: Thu May 13, 2010 9:04 am
by misra-c
The MISRA C Working Group considers this code to be compliant with Rule 2.1.

However, both this code and the example given in Rule 2.1 are not compliant with Rule 19.4 because the macro body is not of the permitted form.

A Technical Corrigendum is being considered to permit this form of macro under 19.4. The MISRA C Working Group considers the code as presented to be acceptable.