C and C++


LANG.ASM : Inline Assembly Code

Summary

A procedure contains inline assembly code.

This class is a strict superset of Mixed Assembly and Code.

Properties

Class Name Inline Assembly Code
Significance security
Mnemonic LANG.ASM
Categories
MisraC2023 MisraC2023:D.4.3 Assembly language shall be encapsulated and isolated
Misra2012 Misra2012:D.4.3 Assembly language shall be encapsulated and isolated
Misra2004 Misra2004:2.1 Assembly language shall be encapsulated and isolated
AUTOSARC++14 AUTOSARC++14:A7-4-1 The asm declaration shall not be used.
  AUTOSARC++14:M7-4-3 Assembly language shall be encapsulated and isolated.
MisraC++2008 MisraC++2008:7-4-3 Assembly language shall be encapsulated and isolated.
MisraC++2023 MisraC++2023:10.4.1 The asm declaration shall not be used
Availability Available for C only (not C++).
Enabling Checks for this warning class are disabled by default. To enable them, add the following WARNING_FILTER rule to the project configuration file.
WARNING_FILTER += allow class="Inline Assembly Code"

Example

void do_something(void);

void use_asm(void){   
    asm("CLI");        /* 'Inline Assembly Code' warning issued here (covers both occurrences) */
                                   /* ('Mixed Assembly and Code' warning also issued) */
    do_something();
    asm("STI");
}

void only_asm(){
    asm("CLI");        /* 'Inline Assembly Code' warning issued here */
                                   /* (procedure contains no source, so no 'Mixed Assembly and Code' warning) */
    asm("STI");
}

Relevant Configuration File Parameters

The following configuration file parameters affect checks for this warning class.