- •Preface
- •Who should read this guide
- •What this guide contains
- •Other documentation
- •Document conventions
- •General options
- •MISRA C
- •Compiler options
- •MISRA C
- •Command line compiler options
- •Options summary
- •Descriptions of options
- •--misrac
- •MISRA C rules reference
- •Why MISRA C?
- •Implementation and interpretation of the MISRA C rules
- •Enabling MISRA C rules
- •Summary of rules
- •Environment rules
- •Rule 1 (required)
- •Rule 2 (advisory)
- •Rule 3 (advisory)
- •Rule 4 (advisory)
- •Character sets
- •Rule 5 (required)
- •Rule 6 (required)
- •Rule 7 (required)
- •Rule 8 (required)
- •Comments
- •Rule 9 (required)
- •Rule 10 (advisory)
- •Identifiers
- •Rule 11 (required)
- •Rule 12 (required)
- •Types
- •Rule 13 (advisory)
- •Rule 14 (required)
- •Rule 15 (advisory)
- •Rule 16 (required)
- •Rule 17 (required)
- •Constants
- •Rule 18 (advisory)
- •Rule 19 (required)
- •Declarations and definitions
- •Rule 20 (required)
- •Rule 21 (required)
- •Rule 22 (advisory)
- •Rule 23 (advisory)
- •Rule 24 (required)
- •Rule 25 (required)
- •Rule 26 (required)
- •Rule 27 (advisory)
- •Rule 28 (advisory)
- •Rule 29 (required)
- •Initialization
- •Rule 30 (required)
- •Rule 31 (required)
- •Rule 32 (required)
- •Operators
- •Rule 33 (required)
- •Rule 34 (required)
- •Rule 35 (required)
- •Rule 36 (advisory)
- •Rule 37 (required)
- •Rule 38 (required)
- •Rule 39 (required)
- •Rule 40 (advisory)
- •Rule 41 (advisory)
- •Rule 42 (required)
- •Conversions
- •Rule 43 (required)
- •Rule 44 (advisory)
- •Rule 45 (required)
- •Expressions
- •Rule 46 (required)
- •Rule 47 (advisory)
- •Rule 48 (advisory)
- •Rule 49 (advisory)
- •Rule 50 (required)
- •Rule 51 (advisory)
- •Control flow
- •Rule 52 (required)
- •Rule 53 (required)
- •Rule 54 (required)
- •Rule 55 (advisory)
- •Rule 56 (required)
- •Rule 57 (required)
- •Rule 58 (required)
- •Rule 59 (required)
- •Rule 60 (advisory)
- •Rule 61 (required)
- •Rule 62 (required)
- •Rule 63 (advisory)
- •Rule 64 (required)
- •Rule 65 (required)
- •Rule 66 (advisory)
- •Rule 67 (advisory)
- •Functions
- •Rule 68 (required)
- •Rule 69 (required)
- •Rule 70 (required)
- •Rule 71 (required)
- •Rule 72 (required)
- •Rule 73 (required)
- •Rule 74 (required)
- •Rule 75 (required)
- •Rule 76 (required)
- •Rule 77 (required)
- •Rule 78 (required)
- •Rule 79 (required)
- •Rule 80 (required)
- •Rule 81 (advisory)
- •Rule 82 (advisory)
- •Rule 83 (required)
- •Rule 84 (required)
- •Rule 85 (advisory)
- •Rule 86 (advisory)
- •Preprocessing directives
- •Rule 87 (required)
- •Rule 88 (required)
- •Rule 89 (required)
- •Rule 90 (required)
- •Rule 91 (required)
- •Rule 92 (advisory)
- •Rule 93 (advisory)
- •Rule 94 (required)
- •Rule 95 (required)
- •Rule 96 (require)
- •Rule 97 (advisory)
- •Rule 98 (required)
- •Rule 99 (required)
- •Rule 100 (required)
- •Pointers and arrays
- •Rule 101 (advisory)
- •Rule 102 (advisory)
- •Rule 103 (required)
- •Rule 104 (required)
- •Rule 105 (required)
- •Rule 106 (required)
- •Rule 107 (required)
- •Structures and unions
- •Rule 108 (required)
- •Rule 109 (required)
- •Rule 110 (required)
- •Rule 111 (required)
- •Rule 112 (required)
- •Rule 113 (required)
- •Standard libraries
- •Rule 114 (required)
- •Rule 115 (required)
- •Rule 116 (required)
- •Rule 117 (required)
- •Rule 118 (required)
- •Rule 119 (required)
- •Rule 120 (required)
- •Rule 121 (required)
- •Rule 122 (required)
- •Rule 123 (required)
- •Rule 124 (required)
- •Rule 125 (required)
- •Rule 126 (required)
- •Rule 127 (required)
Command line compiler options
This chapter explains how to set the compiler options from the command line,
and gives detailed reference information about each option.
Options summary
The following table summarizes the compiler command line options:
Command line option Description
--misrac |
Enables MISRA C-specific |
|
error messages |
--misrac_verbose |
Enables verbose logging of |
|
MISRA C checking |
|
|
Table 2: Compiler options summary |
|
Descriptions of options
The following section gives detailed reference information about each compiler option.
--misrac --misrac[={tag1,tag2-tag3,…|all|required}]
Use this option to enable the compiler to check for deviations from the rules described in the MISRA Guidelines for the Use of the C Language in Vehicle Based Software. By
using one or more arguments with the option, you can restrict the checking to a specific subset of the MISRA C rules. The possible arguments are described in this table:
Command line option |
Description |
--misrac |
Enables checking for all MISRA C rules |
--misrac=n |
Enables checking for the MISRA C rule with number n |
--misrac=m,n |
Enables checking for the MISRA C rules with numbers m |
|
and n |
--misrac=k-n |
Enables checking for all MISRA C rules with numbers from |
|
k to n |
Table 3: Enabling MISRA C rules (--misrac)
5
Descriptions of options
Command line option |
Description |
|
|
--misrac=k,m,r-t |
Enables checking for MISRA C rules with numbers k, m, and |
|
from r to t |
--misrac=all |
Enables checking for all MISRA C rules |
--misrac=required |
Enables checking for all MISRA C rules categorized as |
|
required |
Table 3: Enabling MISRA C rules (--misrac) (Continued)
If the compiler is unable to check for a rule, specifying the option for that rule has no effect. For instance, MISRA C rule 15 is a documentation issue, and the rule is not checked by the compiler. As a consequence, specifying --misrac=15 has no effect.
Note: MISRA C is not supported by all IAR Systems products. If MISRA C checking is not supported by the compiler, using this option will generate an error.
To set the equivalent option in the IAR Embedded Workbench, select
Project>Options>General Options>MISRA C or Project>Options>C/C++
Compiler>MISRA C.
--misrac_verbose --misrac_verbose
Use this option to generate a MISRA C log during compilation and linking. This is a list of the rules that are enabled—but not necessarily checked—and a list of rules that are actually checked.
If this option is enabled, the compiler displays a text at sign-on that shows both enabled and checked MISRA C rules.
To set the equivalent option in the IAR Embedded Workbench, select
Project>Options>General Options>MISRA C.
IAR Embedded Workbench® MISRA C
6 Reference Guide