[previous] 3006 [next] This function contains a mixture of in-line assembler statements and C statements.
Functions

In-line assembler code has been encountered in a context where it is interspersed with C statements.

Message 3006 will be generated on any function which is defined with a mixture of assembler code and executable C statements, unless the assembler code is encapsulated in a macro.

For example:


/*PRQA S 753,1006,3120,3122,3205,3408,3412,3447,3625 ++ */
/******************************
 * OPTIONS: -ex asm
 *****************************/

#define ASM asm { ... }
extern int sia;
extern int sib;

extern void foo1(void)                    /* No Message */
{
   int x;

   ASM;

   asm ( Some assembler code );

   return;
}
extern void foo2(void)                    /* Message 3006 */
{
   int x = 100 ;

   asm( Some assembler code );

   return;
}


extern void foo3(void)                    /* Message 3006 */
{
   char *msg = "hello";

   asm { Some assembler code }

   return;
}


extern void foo4(void)                    /* Message 3006 */
{
   __asm { Some assembler code }

   sia = sib;

   return;
}

extern void foo5(void)                    /* Message 3006 */
{
   asm ( Some assembler code );

   sia += sib;

   return;
}





QA·C Source Code Analyser 8.1.2
© 2013 Programming Research.
www.programmingresearch.com
Personality Groups | Glossary | Message Index Contents