JavaScript is not currently enabled, but is required for full CodeSonar manual search and browse functionality.

If you are viewing this file in your hub's Web GUI, enable JavaScript in your browser: you will also need it for GUI functionality.

If you opened this file directly from disk, your browser may be directly suppressing JavaScript functionality: certain browsers perform this suppression on local files (but not files delivered by web servers) for security reasons.

CodeSonar® 9.2p0 CONFIDENTIAL CodeSecure Inc
General

Compiler-Independent Configuration File Parameters

This section lists the parameters that can be set through a CodeSonar general template or general project configuration file. Each parameter is listed with its default value in the general template (if any).

For a list of all parameter names on this page, see Contents: Compiler-Independent Configuration File Parameters.

Modify the CFLAGs being passed to the parser.

Type a list of CFLAGS
Behavior The parser will be passed the same CFLAGs as the real compiler, with these additional CFLAGs prepended.
Notes CFLAGS_PREPEND is only suitable for use in the general template configuration file and general project configuration files. It is not suitable for use in compiler template or project-compiler configuration files.

Most compilers will implicitly define various preprocessor symbols and include directories. Unless you are using gcc (which can be queried for its definitions), specify those implicit definitions here to avoid parse errors.

Typically, the implicit definitions specify the CPU architecture, the operating system, and the compiler's include directory.

The += operator will actually prepend to this preference (in all cases except for other parameters with names of the form *_PREPEND, the += operator appends). This means that if you have two CFLAGS_PREPEND += statements in this file, the CFLAGS in the second statement will be prepended to the CFLAGS in the first statement.

Tags
  • Governs the Build/Analysis

Modify the CFLAGs being passed to the parser.

Type a list of CFLAGS
Behavior The parser will be passed the same CFLAGs as the real compiler, with these additional CFLAGs appended.
Notes CFLAGS_APPEND is only suitable for use in the general template configuration file and general project configuration files. It is not suitable for use in compiler template or project-compiler configuration files.

Most compilers will implicitly define various preprocessor symbols and include directories. If the real compiler cannot be automatically queried for its implicit definitions (this only works for gcc), then the user must specify them here to avoid parse errors. Typically, these flags specify the CPU architecture, the operating system, and the compiler's include directory.

Factory Setting
  • CFLAGS_APPEND +=
Tags
  • Governs the Build/Analysis

Defines a map from compiler executable basenames to compiler models. If your compiler executable basename is not listed below as a 'default', then you should add an entry mapping it to the compiler model it is most similar to.

Type Whitespace-separated list of rules of the form
    [path/to/]executable -> model[:ABIkey]

On Windows systems, include .exe suffix on the executable name.

Microsoft libc command line encoding rules apply (even on non-Windows systems).

Behavior Invocations of executable will be modeled using model.

If [path/to/] is provided, the mapping only applies to executables with matching paths or subpaths. For example,

  COMPILER_MODELS += bin\mycc.exe -> cl

will match invocations of c:\bin\mycc.exe and c:\very\long\path\to\bin\mycc.exe, but not c:\mybin\mycc.exe or c:\usr\lib\mycc.exe.

[Windows only] Absolute paths referring to files on network file systems do not currently work, unless they are specified using the \Device\Mup\... syntax used by the kernel. You may wish to use a path suffix omitting the machine and share name instead. This will change in future releases if we can determine a sanctioned and portable way to normalize paths to the \Device\Mup\... syntax (please contact us if you are aware of such a mechanism).

If [:ABIkey] is provided, CodeSonar will associate the specified ABI key with all compilation units compiled by the specified executable.

  • The project-compiler configuration file loaded during the build phase will include the ABI key in its name. This allows users to specify different configuration settings for different ABIs.
  • CodeSonar will prefer to link compilation units with the same ABI key when constructing the CodeSonar project.
  • When a single source file is compiled multiple times with different ABI keys, one instance will be kept for each key.
  • Keys are only used within CodeSonar.
  • Keys can be arbitrary, user-selected strings; some compiler models also provide special model-specific formats that can be used to convey additional information to the compiler model (see individual compiler model documentation pages for details). If you specify arbitrary ABI keys, we recommend that you select them so that they don't conflict with compiler model names or with the special model-specific formats.

Later COMPILER_MODELS rules can supersede earlier ones. For example, if the configuration file contains the following rule sequence:

  COMPILER_MODELS += a/b/mycc -> cl:AB
  COMPILER_MODELS += c/d/mycc -> cl:CD
  COMPILER_MODELS += mycc -> cl:EF

then all compilations with mycc, including compilations with a/b/mycc and c/d/mycc, will be associated with compiler model cl and ABI key EF.

Notes On Windows, the file extension (which should be .exe or .com) for the executable is not optional. Some examples are given below. The range of the map is the list of 'model used' entries in the appropriate Compilers Recognized table. Users can also author new compiler models in C++, thereby expanding the range.

Windows default models:

  COMPILER_MODELS += arm-none-eabi-g++.exe -> gpp
  COMPILER_MODELS += arm-none-eabi-gcc.exe -> gcc
  COMPILER_MODELS += armcc.exe -> armcc
  COMPILER_MODELS += armcl.exe -> cl6x
  COMPILER_MODELS += armclang.exe -> armclang
  COMPILER_MODELS += armcpp.exe -> armcc
  COMPILER_MODELS += bcc32.exe -> borland
  COMPILER_MODELS += c166.exe -> tasking
  COMPILER_MODELS += c251.exe -> c251
  COMPILER_MODELS += c51.exe -> c51
  COMPILER_MODELS += cc21k.exe -> visualdsp
  COMPILER_MODELS += ccblkfn.exe -> visualdsp
  COMPILER_MODELS += ccrx.exe -> ccrx
  COMPILER_MODELS += ccts.exe -> visualdsp
  COMPILER_MODELS += ch38.exe -> ch38
  COMPILER_MODELS += cl.exe -> cl
  COMPILER_MODELS += cl2000.exe -> cl6x
  COMPILER_MODELS += cl30.exe -> cl30
  COMPILER_MODELS += cl430.exe -> cl6x
  COMPILER_MODELS += cl470.exe -> cl6x
  COMPILER_MODELS += cl55.exe -> cl6x
  COMPILER_MODELS += cl6x.exe -> cl6x
  COMPILER_MODELS += clang++.exe -> clangpp
  COMPILER_MODELS += clang.exe -> clang
  COMPILER_MODELS += clarm.exe -> cl
  COMPILER_MODELS += clmips.exe -> cl
  COMPILER_MODELS += clsh.exe -> cl
  COMPILER_MODELS += clthumb.exe -> cl
  COMPILER_MODELS += cosmic.exe -> cosmic
  COMPILER_MODELS += cp166.exe -> tasking
  COMPILER_MODELS += cpcp.exe -> tasking
  COMPILER_MODELS += cptc.exe -> tasking
  COMPILER_MODELS += ctc.exe -> tasking
  COMPILER_MODELS += cvavr-null.exe -> cvavr
  COMPILER_MODELS += cw-cc.exe -> xcc
  COMPILER_MODELS += dcc.exe -> dcc
  COMPILER_MODELS += dplus.exe -> dcc
  COMPILER_MODELS += ecom68.exe -> ecomppc
  COMPILER_MODELS += ecom800.exe -> ecomppc
  COMPILER_MODELS += ecom86.exe -> ecomppc
  COMPILER_MODELS += ecomarm.exe -> ecomppc
  COMPILER_MODELS += ecommip.exe -> ecomppc
  COMPILER_MODELS += ecomppc.exe -> ecomppc
  COMPILER_MODELS += ecomx86.exe -> ecomppc
  COMPILER_MODELS += g++-3.exe -> gpp
  COMPILER_MODELS += g++-4.exe -> gpp
  COMPILER_MODELS += g++.exe -> gpp
  COMPILER_MODELS += gcc-3.exe -> gcc
  COMPILER_MODELS += gcc-4.exe -> gcc
  COMPILER_MODELS += gcc.exe -> gcc
  COMPILER_MODELS += gpp.exe -> gpp
  COMPILER_MODELS += gxx.exe -> gpp
  COMPILER_MODELS += i686-pc-mingw32-g++.exe -> gpp
  COMPILER_MODELS += i686-pc-mingw32-gcc.exe -> gcc
  COMPILER_MODELS += icc430.exe -> icc430
  COMPILER_MODELS += icc78k.exe -> icc78k
  COMPILER_MODELS += iccarm.exe -> iccarm
  COMPILER_MODELS += iccavr.exe -> iccavr
  COMPILER_MODELS += iccm16c.exe -> iccm16c
  COMPILER_MODELS += iccm32c.exe -> iccm32c
  COMPILER_MODELS += iccrx.exe -> iccrx
  COMPILER_MODELS += iccstm8.exe -> iccstm8
  COMPILER_MODELS += iccv850.exe -> iccv850
  COMPILER_MODELS += mwccarm.exe -> mwccarm
  COMPILER_MODELS += mwccmcf.exe -> mwccmcf
  COMPILER_MODELS += null-cc.exe -> xcc
  COMPILER_MODELS += picc.exe -> picc
  COMPILER_MODELS += q++.exe -> qpp
  COMPILER_MODELS += qcc.exe -> qcc
  COMPILER_MODELS += shc.exe -> shc
  COMPILER_MODELS += shcpp.exe -> shcpp
  COMPILER_MODELS += tcc.exe -> armcc
  COMPILER_MODELS += tcpp.exe -> armcc
  COMPILER_MODELS += x86_64-pc-mingw32-g++.exe -> gpp
  COMPILER_MODELS += x86_64-pc-mingw32-gcc.exe -> gcc

POSIX default models:

  COMPILER_MODELS += QCC -> qpp
  COMPILER_MODELS += arm-none-eabi-g++ -> gpp
  COMPILER_MODELS += arm-none-eabi-gcc -> gcc
  COMPILER_MODELS += armcc -> armcc
  COMPILER_MODELS += armclang -> armclang
  COMPILER_MODELS += armcpp -> armcc
  COMPILER_MODELS += c++ -> gpp
  COMPILER_MODELS += cc -> cc
  COMPILER_MODELS += ccblkfn -> visualdsp
  COMPILER_MODELS += ch38 -> ch38
  COMPILER_MODELS += clang -> clang
  COMPILER_MODELS += clang++ -> clangpp
  COMPILER_MODELS += cosmic -> cosmic
  COMPILER_MODELS += cpcp -> tasking
  COMPILER_MODELS += cptc -> tasking
  COMPILER_MODELS += ctc -> tasking
  COMPILER_MODELS += dcc -> dcc
  COMPILER_MODELS += dplus -> dcc
  COMPILER_MODELS += ecom68 -> ecomppc
  COMPILER_MODELS += ecom800 -> ecomppc
  COMPILER_MODELS += ecom86 -> ecomppc
  COMPILER_MODELS += ecomarm -> ecomppc
  COMPILER_MODELS += ecommip -> ecomppc
  COMPILER_MODELS += ecomppc -> ecomppc
  COMPILER_MODELS += ecomx86 -> ecomppc
  COMPILER_MODELS += g++ -> gpp
  COMPILER_MODELS += gcc -> gcc
  COMPILER_MODELS += gpp -> gpp
  COMPILER_MODELS += gxx -> gpp
  COMPILER_MODELS += mcpcom -> mcpcom
  COMPILER_MODELS += null-cc -> xcc
  COMPILER_MODELS += q++ -> qpp
  COMPILER_MODELS += qcc -> qcc
  COMPILER_MODELS += shc -> shc
  COMPILER_MODELS += shcpp -> shcpp
  COMPILER_MODELS += tcc -> armcc
  COMPILER_MODELS += tcpp -> armcc

On all EXCEPT Windows:

  COMPILER_MODELS += QCC -> qcc

To activate the Hi-Tech compiler model for Linux:

    COMPILER_MODELS += picc -> picc

To activate the IAR compiler models for Linux:

    COMPILER_MODELS += iccarm -> iccarm
    COMPILER_MODELS += iccavr -> iccavr
    COMPILER_MODELS += iccm32c -> iccm32c
    COMPILER_MODELS += icc430 -> icc430
    COMPILER_MODELS += icc78k -> icc78k
    COMPILER_MODELS += iccrx -> iccrx
    COMPILER_MODELS += iccstm8 -> iccstm8
    COMPILER_MODELS += iccv850 -> iccv850
    COMPILER_MODELS += iccm16c -> iccm16c

To use the IAR compiler model for other IAR compilers, specify a similar COMPILER_MODELS rule for your compiler executable name. For example, if you are using icc8051 on Linux:

    COMPILER_MODELS += icc8051 -> iccgeneric

To activate the TI CodeComposer compiler models for non-Windows systems:

    COMPILER_MODELS += cl6x -> cl6x
    COMPILER_MODELS += cl30 -> cl30x
    COMPILER_MODELS += armcl -> cl6x 
    COMPILER_MODELS += cl430 -> cl6x 
    COMPILER_MODELS += cl470 -> cl6x 
    COMPILER_MODELS += cl55 -> cl6x
    COMPILER_MODELS += cl2000 -> cl6x 

To activate the MPLAB compiler models for Linux:

    COMPILER_MODELS += mcc18 -> mcc18
    COMPILER_MODELS += mcc30 -> mcc30

To activate the MPLAB compiler models for Windows:

    COMPILER_MODELS += mcc18.exe -> mcc18
    COMPILER_MODELS += mcc30.exe -> mcc30

To activate the Freescale CodeWarrior for HC12 compiler model for Linux:

    COMPILER_MODELS += chc12 -> chc12

To activate the Freescale CodeWarrior for HC12 compiler model for Windows:

    COMPILER_MODELS += chc12.exe -> chc12

To activate Wind River compiler models, use the following. This will disable recognition of some Green Hills compilers because of an executable name conflict.

 (Windows)
    COMPILER_MODELS += ccppc.exe -> ccppc
    COMPILER_MODELS += c++ppc.exe -> c++ppc
 (other systems)
    COMPILER_MODELS += ccppc -> ccppc
    COMPILER_MODELS += c++ppc -> c++ppc

[Windows only] To activate additional Cosmic compiler mappings, use the following.

    COMPILER_MODELS += cpcorm0.exe -> cosmic
    COMPILER_MODELS += cpppc.exe -> cosmic
    COMPILER_MODELS += cpstm8.exe -> cosmic
    COMPILER_MODELS += cpst7.exe -> cosmic

The cc1 model is disabled by default due to executable name conflicts. In particular, it will interfere with the behavior of the gcc and clang compiler models and any models based on them. Enable the cc1 model with the COMPILER_MODELS rules shown here only if you are compiling with Rowley CrossWorks or another compiler that uses the GCC/LLVM cc1 compiler internally but does not have a compiler driver. Especially, do not specify these rules if you are compiling with gcc or clang.

    COMPILER_MODELS += cc1.exe -> cc1
    COMPILER_MODELS += cc1plus.exe -> cc1

Custom Usage Examples

[Windows] Treat anything named mycc.exe like cl.

     COMPILER_MODELS += mycc.exe -> cl

[Windows] Treat c:\compilers\mycc.exe (but not, eg, c:\usr\local\mycc.exe) like cl.

     COMPILER_MODELS += c:\compilers\mycc.exe -> cl

[Windows] Treat C:\Program Files (x86)\My IDE v8\bin\mycc.exe like cl. Note that the path must be quoted because it contains spaces.

     COMPILER_MODELS += "C:\Program Files (x86)\My IDE v8\bin\mycc.exe" -> cl

[Windows] Treat any executable with path suffix bin\mycc.exe like cl. Note that this will match the path in the previous example, but not (for example) C:\mybin\mycc.exe.

     COMPILER_MODELS +=  bin\mycc.exe -> cl

[Windows] Treat anything named mycc.exe like cl. Associate ABI key ABC with any translation units compiled by this compiler.

     COMPILER_MODELS +=  mycc.exe -> cl:ABC

[Windows] Handle all compilations with any cl.exe executable using the cl compiler model, using ABI keys to distinguish compilations from certain cl.exe installations.

      COMPILER_MODELS +=  cl.exe -> cl:default
      COMPILER_MODELS +=  C:\bin\a\b\cl.exe -> cl:AB
      COMPILER_MODELS +=  C:\bin\c\d\cl.exe -> cl:CD

[Posix] Treat anything named mycc like gcc.

     COMPILER_MODELS +=  mycc -> gcc

[Posix] Treat /tmp/mycc (an absolute path) like gcc.

     COMPILER_MODELS += /tmp/mycc -> gcc

[Posix] Treat any executable with path suffix tmp/mycc like gcc. Note that this will match the path in the previous example, but not (for example) /u/mytmp/mycc.

     COMPILER_MODELS += tmp/mycc -> gcc

[Posix] Handle all compilations with any gcc executable using the gcc compiler model, using ABI keys to distinguish compilations from certain gcc installations.

      COMPILER_MODELS +=  gcc -> gcc:default
      COMPILER_MODELS += /a/b/gcc -> gcc:AB
      COMPILER_MODELS += /c/d/gcc -> gcc:CD

If your build system generates randomly-named files each time it runs, you may be able to use a combination of COMPILER_MODELS and DISABLED_COMPILERS to model compilation without incurring a separate license cost for each randomly-named file.

For example, suppose your regular software built uses a tool called mybuild, whose behavior is such that

   mybuild gcc [options] -c A.c

creates a randomly-named copy <rname>.c of A.c and then invokes

   gcc [options] -c <rname>.c

Then you can model the compilation as taking place on A.c rather than a succession of <rname>.c using the following pair of rules.

  [Posix]
      COMPILER_MODELS += mybuild -> gcc
      DISABLED_COMPILERS += gcc
  [Windows]
      COMPILER_MODELS += mybuild.exe -> gcc
      DISABLED_COMPILERS += gcc.exe
Tags
  • Governs the Build/Analysis

Specifies whether or not compiler models will override type kinds specified in the compiler-specific configuration file with information obtained by invoking the native compiler. It is up to the compiler model implementation to respect this parameter. Currently only the gcc model uses this parameter.

Type { Yes, No }
Notes It is up to the compiler model implementation to respect this parameter. When authoring a compiler model, you should check this parameter before passing any EDG front-end options that modify type kinds.
Factory Setting
  • OVERRIDE_COMPILER_CONF = Yes
Tags
  • Governs the Build/Analysis

Forces the project builder to ignore certain compilers that it would, by default, notice.

Type Whitespace separated list of compiler names (basenames, path prefixes, or full paths).

Microsoft libc command line encoding rules apply (even on non-Windows systems).

Behavior Invocations of compilers listed here will be ignored by the project builder.

Behavior is undefined if the same compiler executable appears in both the COMPILER_MODELS domain and the DISABLED_COMPILERS set.

Notes On Windows, always include the file extension of the executable (which should be .exe or .com).

The following compiler executables are recognized by default on Windows systems. To ignore invocations of a specific executable, use the corresponding DISABLED_COMPILERS rule.

  DISABLED_COMPILERS += arm-none-eabi-g++.exe
  DISABLED_COMPILERS += arm-none-eabi-gcc.exe
  DISABLED_COMPILERS += armcc.exe
  DISABLED_COMPILERS += armcl.exe
  DISABLED_COMPILERS += armclang.exe
  DISABLED_COMPILERS += armcpp.exe
  DISABLED_COMPILERS += bcc32.exe
  DISABLED_COMPILERS += c166.exe
  DISABLED_COMPILERS += c251.exe
  DISABLED_COMPILERS += c51.exe
  DISABLED_COMPILERS += cc21k.exe
  DISABLED_COMPILERS += ccblkfn.exe
  DISABLED_COMPILERS += ccrx.exe
  DISABLED_COMPILERS += ccts.exe
  DISABLED_COMPILERS += ch38.exe
  DISABLED_COMPILERS += cl.exe
  DISABLED_COMPILERS += cl2000.exe
  DISABLED_COMPILERS += cl30.exe
  DISABLED_COMPILERS += cl430.exe
  DISABLED_COMPILERS += cl470.exe
  DISABLED_COMPILERS += cl55.exe
  DISABLED_COMPILERS += cl6x.exe
  DISABLED_COMPILERS += clang++.exe
  DISABLED_COMPILERS += clang.exe
  DISABLED_COMPILERS += clarm.exe
  DISABLED_COMPILERS += clmips.exe
  DISABLED_COMPILERS += clsh.exe
  DISABLED_COMPILERS += clthumb.exe
  DISABLED_COMPILERS += cosmic.exe
  DISABLED_COMPILERS += cp166.exe
  DISABLED_COMPILERS += cpcp.exe
  DISABLED_COMPILERS += cptc.exe
  DISABLED_COMPILERS += ctc.exe
  DISABLED_COMPILERS += cvavr-null.exe
  DISABLED_COMPILERS += cw-cc.exe
  DISABLED_COMPILERS += dcc.exe
  DISABLED_COMPILERS += dplus.exe
  DISABLED_COMPILERS += ecom68.exe
  DISABLED_COMPILERS += ecom800.exe
  DISABLED_COMPILERS += ecom86.exe
  DISABLED_COMPILERS += ecomarm.exe
  DISABLED_COMPILERS += ecommip.exe
  DISABLED_COMPILERS += ecomppc.exe
  DISABLED_COMPILERS += ecomx86.exe
  DISABLED_COMPILERS += g++-3.exe
  DISABLED_COMPILERS += g++-4.exe
  DISABLED_COMPILERS += g++.exe
  DISABLED_COMPILERS += gcc-3.exe
  DISABLED_COMPILERS += gcc-4.exe
  DISABLED_COMPILERS += gcc.exe
  DISABLED_COMPILERS += gpp.exe
  DISABLED_COMPILERS += gxx.exe
  DISABLED_COMPILERS += i686-pc-mingw32-g++.exe
  DISABLED_COMPILERS += i686-pc-mingw32-gcc.exe
  DISABLED_COMPILERS += icc430.exe
  DISABLED_COMPILERS += icc78k.exe
  DISABLED_COMPILERS += iccarm.exe
  DISABLED_COMPILERS += iccavr.exe
  DISABLED_COMPILERS += iccm16c.exe
  DISABLED_COMPILERS += iccm32c.exe
  DISABLED_COMPILERS += iccrx.exe
  DISABLED_COMPILERS += iccstm8.exe
  DISABLED_COMPILERS += iccv850.exe
  DISABLED_COMPILERS += mwccarm.exe
  DISABLED_COMPILERS += mwccmcf.exe
  DISABLED_COMPILERS += null-cc.exe
  DISABLED_COMPILERS += picc.exe
  DISABLED_COMPILERS += q++.exe
  DISABLED_COMPILERS += qcc.exe
  DISABLED_COMPILERS += shc.exe
  DISABLED_COMPILERS += shcpp.exe
  DISABLED_COMPILERS += tcc.exe
  DISABLED_COMPILERS += tcpp.exe
  DISABLED_COMPILERS += x86_64-pc-mingw32-g++.exe
  DISABLED_COMPILERS += x86_64-pc-mingw32-gcc.exe

The following compiler executables are recognized by default on Posix systems. To ignore invocations of a specific executable, use the corresponding DISABLED_COMPILERS rule.

  DISABLED_COMPILERS += QCC
  DISABLED_COMPILERS += arm-none-eabi-g++
  DISABLED_COMPILERS += arm-none-eabi-gcc
  DISABLED_COMPILERS += armcc
  DISABLED_COMPILERS += armclang
  DISABLED_COMPILERS += armcpp
  DISABLED_COMPILERS += c++
  DISABLED_COMPILERS += cc
  DISABLED_COMPILERS += ccblkfn
  DISABLED_COMPILERS += ch38
  DISABLED_COMPILERS += clang
  DISABLED_COMPILERS += clang++
  DISABLED_COMPILERS += cosmic
  DISABLED_COMPILERS += cpcp
  DISABLED_COMPILERS += cptc
  DISABLED_COMPILERS += ctc
  DISABLED_COMPILERS += dcc
  DISABLED_COMPILERS += dplus
  DISABLED_COMPILERS += ecom68
  DISABLED_COMPILERS += ecom800
  DISABLED_COMPILERS += ecom86
  DISABLED_COMPILERS += ecomarm
  DISABLED_COMPILERS += ecommip
  DISABLED_COMPILERS += ecomppc
  DISABLED_COMPILERS += ecomx86
  DISABLED_COMPILERS += g++
  DISABLED_COMPILERS += gcc
  DISABLED_COMPILERS += gpp
  DISABLED_COMPILERS += gxx
  DISABLED_COMPILERS += mcpcom
  DISABLED_COMPILERS += null-cc
  DISABLED_COMPILERS += q++
  DISABLED_COMPILERS += qcc
  DISABLED_COMPILERS += shc
  DISABLED_COMPILERS += shcpp
  DISABLED_COMPILERS += tcc
  DISABLED_COMPILERS += tcpp
Tags
  • Governs the Build/Analysis

Instructs CodeSonar not to monitor certain executables or their subprocesses.

Type Whitespace separated list of program names (basenames, path prefixes, or full paths).

Microsoft libc command line encoding rules apply (even on non-Windows systems).

Behavior Some programs contain security measures that cause them to fail if they detect they are being monitored. It is beneficial to add such programs to this list.
Notes This parameter has no effect on Windows systems.

If programs listed here transitively invoke compilers, CodeSonar will not notice those invocations.

Factory Settings
  • HOOK_BLACKLIST += ibtoold
  • HOOK_BLACKLIST += momc
  • HOOK_BLACKLIST += mapc
  • HOOK_BLACKLIST += ssh
  • HOOK_BLACKLIST += rpm
  • HOOK_BLACKLIST += chroot
  • HOOK_BLACKLIST += qemu-aarch64
  • HOOK_BLACKLIST += qemu-arm
  • HOOK_BLACKLIST += qemu-i386
  • HOOK_BLACKLIST += qemu-mips
  • HOOK_BLACKLIST += qemu-mips64
  • HOOK_BLACKLIST += qemu-mipsel
  • HOOK_BLACKLIST += qemu-mips.real
  • HOOK_BLACKLIST += qemu-ppc
  • HOOK_BLACKLIST += qemu-system-aarch64
  • HOOK_BLACKLIST += qemu-system-arm
  • HOOK_BLACKLIST += qemu-system-i386
  • HOOK_BLACKLIST += qemu-system-mips
  • HOOK_BLACKLIST += qemu-system-mips64
  • HOOK_BLACKLIST += qemu-system-mipsel
  • HOOK_BLACKLIST += qemu-system-ppc
  • HOOK_BLACKLIST += qemu-system-x86_64
  • HOOK_BLACKLIST += qemu-x86_64
Tags
  • Governs the Build/Analysis

Specifies whether or not to prevent the software build system (for example, make) from writing over environment variables necessary for proper process hooking on POSIX systems.

Type { Yes, No }
Behavior Every time a process calls exec, if any important environment variables (such as LD_PRELOAD, LD_LIBRARY_PATH) have been written over, they will be repaired in the environment used to create the new process.
Notes This parameter has no effect on Windows systems.

Most build systems do not need this to be set. The most common cause for setting this to "Yes" is a build system that wipes the environment, such as SCons.

Setting this to "Yes" can prevent build systems from causing compiler invocations to be missed. If you believe source files (compilation units) are missing from your project, COMPILER_MODELS is set correctly, and the compiler is actually getting executed by the build system, then setting this to "Yes" may help. It is slightly invasive and could conceivably cause problems, although none have been observed.

Factory Setting
  • FORCE_ENVIRONMENT = Yes
Tags
  • Governs the Build/Analysis

Specifies whether or not to perform crlf -> lf translations on stdout and stderr and do the inverse on stdin.

Type { Yes, No }
Notes This parameter is ignored by the Windows build wizard and on non-Windows systems.

Setting this to "Yes" can be useful if running an interactive Cygwin shell inside a hook command.

Tags
  • Governs the Build/Analysis

Specifies whether or not to invoke the real compiler before invoking the CodeSonar parser.

Type { Yes, No }
Notes Its use is to make sure the parser has access to output files produced by the compiler, for example, precompiled headers
Tags
  • Governs the Build/Analysis

Specifies whether or not to log the contents of argument files processed by compiler models to the Native Compilation Details Log.

Type { Yes, No }
Notes The purpose of this parameter is to log the contents of argument files used by the native compiler (such as .rsp files) for debugging purposes. These files are often temporary and deleted as part of the build process.

The responsibility for respecting this parameter falls to the compiler models.

  • If you have custom compiler models, ensure that the model checks the value of LOG_COMPILER_ARGUMENT_FILES and performs the appropriate logging when it is set to Yes.
  • The compiler models shipped with CodeSonar all support this parameter.
Tags
  • Additional Outputs from the Build/Analysis

[Windows only] Specifies whether or not CodeSonar on Windows should virtually proxy compiler executables in order to detect compiler executions.

Type { Yes, No }
Behavior
  • Yes : CodeSonar will automatically proxy compiler executables on Windows without actually modifying your toolchain installations. You do not need to manually replace compiler executables with a proxy executable.
  • No : CodeSonar will not automatically proxy compiler executables on Windows. You will need to do so manually. See the notes below.
Notes This setting is ignored on non-Windows systems.

This should only be set to "No" as a last resort when the virtual compiler proxying technology is incompatible with your environment. Normally, CodeSonar proxies your compiler executables in a virtual way without needing to mutate your compiler installation. However, under some circumstances a more manual approach may be required.

If set to "No" then you must manually rename your compiler executables and then place our proxy (spawncs_userland.exe) where the real compiler used to be. Example:

      rename cl.exe cl.orig.exe
      copy "c:\Program Files\CodeSecure\CodeSonar\codesonar\bin\spawncs_userland.exe" cl.exe

Additionally, it will not be possible to concurrently have multiple CodeSonar analyses in the build stage in the same Windows session with a setting of "No."

As of January 2024, this must be set to No within Windows Docker containers. See https://github.com/microsoft/Windows-Containers/issues/450. On Windows systems, the example Dockerfile at INSTALL/codesonar/docker/Dockerfile includes a command that sets VIRTUAL_COMPILER_PROXY=No.

Factory Setting
  • VIRTUAL_COMPILER_PROXY = Yes
Tags
  • Governs the Build/Analysis

Specifies whether CodeSonar should be willing to run beside known-incompatible versions of Symantec Endpoint Protection. Certain versions of Symantec Endpoint Protection can trigger Windows kernel deadlock in the presence of CodeSonar.

Type { Yes, No }
Behavior
  • No : CodeSonar will check for the existence of the Symantec Endpoint Protection's Application and Device Control component (sysplant.sys). If a version between 12.1.3001.165 - 12.1.4xxx.xxx is installed, then CodeSonar will refuse to run.
  • Yes : CodeSonar will not perform this check. We do not recommend this setting, since it may result in kernel deadlock. Either upgrade to SEP 12 RU5 or later, or uninstall the Application and Device Control component to safely work around the issue. Disabling SEP has no effect.
Factory Setting
  • ALLOW_INCOMPATIBLE_SYMANTEC = No

Specifies whether or not to hold the stdout, stderr, and stdin streams open.

Type { Yes, No }
Behavior When this is set to "Yes", the stdout, stderr, and stdin streams will be kept open even after the real compiler closes them or exits.
Notes This setting has no effect on non-Windows operating systems.

Setting this to "Yes" can cause deadlock if closing one of these streams signals something to another process.

Setting this to "Yes" can reduce the probability of exercising race conditions in the IAR Embedded Workbench IDE. If that IDE is producing the spurious and harmless error message "Error while running C/C++ Compiler" then setting this to "Yes" may prevent the message. It has also been observed that setting INVOKE_COMPILER_FIRST to "No" while running an expensive program in the background can prevent the error message.

Tags
  • Governs the Build/Analysis

Specifies whether or not to always create a hidden conhost.exe process when one does not already exist when launching compiler processes.

Type { Yes, No }
Behavior By default, when creating a new compiler process after intercepting a compiler invocation, CodeSonar will use the DETACHED_PROCESS Windows API flag if it detects that the current process has no associated console. This prevents CodeSonar from creating many unecessary conhost.exe processes in most cases. However, in some cases this can cause compilers that launch their own subprocesses to unintentionally create new console processes of their own.

If you observe console windows popping up when running CodeSonar that do not normally show up during the build, then setting this option to Yes can help.

Notes This setting has no effect on non-Windows operating systems.
Tags
  • Governs the Build/Analysis

For use with CodeWarrior installations that use DLLs (see CodeSonar with CodeWarrior: DLL Approach): specifies CodeWarrior install directories so that compiler IDE plug-ins can be identified for interception.

Type Whitespace-separated list of directories

Microsoft libc command line encoding rules apply (even on non-Windows systems).

Behavior Invocations of all compiler IDE plug-ins of CodeWarrior install directories in this list will be intercepted.
Notes Read about using CodeSonar with CodeWarrior before basing a project on a CodeWarrior build.

This parameter is ignored by the Windows project builder GUI and on non-Windows systems.

To configure interception of some subset of the compiler plug-ins, use CODEWARRIOR_PLUGINS instead. If you are running from the command line and neither CODEWARRIOR_INSTALLS nor CODEWARRIOR_PLUGINS is specified in the template or project configuration file, then the settings specified at install time will be used.

For example:

  CODEWARRIOR_INSTALLS += "C:\Program Files\Freescale\CodeWarrior for Microcontrollers V6.0"
Tags
  • Governs the Build/Analysis

For use with CodeWarrior installations that use DLLs (see CodeSonar with CodeWarrior: DLL Approach): specifies individual CodeWarrior compiler IDE plug-ins for interception.

Type Whitespace-separated list of directories

Microsoft libc command line encoding rules apply (even on non-Windows systems).

Behavior Invocations of CodeWarrior compiler IDE plug-ins in this parameter will be intercepted.
Notes Read about using CodeSonar with CodeWarrior before basing a project on a CodeWarrior build.

This parameter is ignored by the Windows project builder GUI and on non-Windows systems.

To configure interception of all CodeWarrior IDE compiler plug-ins, use the CODEWARRIOR_INSTALLS parameter instead. If you are running from the command line and neither CODEWARRIOR_INSTALLS nor CODEWARRIOR_PLUGINS is specified in the template or project configuration file, then the settings specified at install time will be used.

For example:

  CODEWARRIOR_PLUGINS += "C:\Program Files\Freescale\CodeWarrior for Microcontrollers V6.0\bin\plugins\compiler\MCFCCompiler.dll"
Tags
  • Governs the Build/Analysis

Specifies files whose compilations should be ignored.

Type C/C++ analyses: Boost 'POSIX Extended Regular Expression'
Behavior For C and C++ analyses: If a file in a compilation command has a path that matches the regular expression, that compilation will be ignored.
Notes [C/C++ analyses only] This option cannot be used to ignore header files. Only top level files (e.g., .c and .cpp) can be ignored. CodeSonar users looking to discard warnings in certain include files might be interested in the WARNING_FILTER examples for discard path:<dir>, or the SYSTEM_INCLUDE_PATHS setting.

You can specify as many IGNORED_COMPILATIONS entries as you want.

Note that backslashes used as directory separators need to be escaped, so a rule containing a Windows path will look (something) like the following:

  IGNORED_COMPILATIONS += bar\\foo\.c

The forward slashes used as directory separators on other systems do not require escaping:

  IGNORED_COMPILATIONS += bar/foo\.c

Example 1: Ignore compilations of files whose paths end in "foo.c". This includes compilations of foo.c, /usr/local/foo.c, and mydir/myfoo.c, but not foo.cpp.

  IGNORED_COMPILATIONS += ^.*foo\.c$

Example 2: Ignore compilations of files located in or under directory /usr/local/testdir/. This includes compilations of /usr/local/testdir/foo.c and /usr/local/testdir/test1/foo.c.

  IGNORED_COMPILATIONS += ^/usr/local/testdir/

Example 3: Ignore compilations of files located directly in directory /usr/local/testdir/. This includes compilations of /usr/local/testdir/foo.c and /usr/local/testdir/foo.cpp but not /usr/local/testdir/test1/foo.c.

  IGNORED_COMPILATIONS += ^/usr/local/testdir/[^/]+$

Example 4: Ignore compilations of files located in or under Windows directory C:\Program Files\IAR Systems\

  IGNORED_COMPILATIONS += C:\\Program\ Files\\IAR\ Systems\\.*
Tags
  • Governs the Build/Analysis

Specifies compilation commands that should be ignored.

Type string

Microsoft libc command line encoding rules apply (even on non-Windows systems).

Behavior Ignore compilation command lines containing the specified substring.
Notes This can be significantly faster than using IGNORED_COMPILATIONS, but is not as precise. IGNORED_COMPILATIONS could ignore foo.c and not bar.c in the command "gcc -c foo.c bar.c", but IGNORED_COMPILATION_COMMANDS must either accept the entire command or none of it.

For example:

  IGNORED_COMPILATION_COMMANDS += gcc -c foo.c
Tags
  • Governs the Build/Analysis

Specifies the maximum number of parse errors allowed in a compilation before the compilation is excluded from the analysis.

Type integer
Behavior If the percentage of project compilation units exceeding this limit is greater than MINIMUM_GOOD_COMPILATIONS, no analysis will take place.
Factory Setting
  • ERROR_LIMIT_PER_COMPILATION = 30
Tags
  • Analysis resource/effort limit

At least this percentage of the project compilation units must be "good compilations", meaning that they have no more parse errors than the limit specified by ERROR_LIMIT_PER_COMPILATION.

Type integer between 0 and 100, inclusive
Behavior If the percentage of good compilations in the project is below this value, the analysis will not proceed.
Factory Setting
  • MINIMUM_GOOD_COMPILATIONS = 80
Tags
  • Analysis resource/effort limit

Specifies the treatment of allocators such as malloc/calloc/alloca/realloc/new/new[] on failure.

Type { RETURN_NULL, DOESNT_FAIL }
Behavior
  • RETURN_NULL : allocators are modeled as returning NULL on failure
  • DOESNT_FAIL : allocators are assumed never to fail.This setting is mainly useful for users who don't care what their software does when it runs out of memory.
Notes We do not recommend changing the MALLOC_FAILURE_BEHAVIOR setting between incremental analyses because the different handling of allocators in the parent and child analyses is likely to confuse users: re-analyzed (and newly-analyzed) allocators will be handled as specified by the updated setting, but handling for any other allocators in the project will reflect the previous setting.
Factory Setting
  • MALLOC_FAILURE_BEHAVIOR = RETURN_NULL
Tags
  • Treatment of Language Constructs

Specifies the treatment of new/new[] on failure.

Type { EXCEPTION, RETURN_NULL, DOESNT_FAIL }
Behavior
  • EXCEPTION : new/new[] are modeled as throwing an exception on failure
  • RETURN_NULL : new/new[] are modeled as returning NULL on failure
  • DOESNT_FAIL : new/new[] are assumed never to fail
Notes MALLOC_FAILURE_BEHAVIOR = DOESNT_FAIL takes precedence over this parameter.

Different C++ runtimes have different behaviors. We recommend that you write a small test program to see what your compiler does.

We do not recommend changing the NEW_FAILURE_BEHAVIOR setting between incremental analyses because the different handling of allocators in the parent and child analyses is likely to confuse users. Any new/new[] operators (or allocators modeled in terms of those operators) that are re-analyzed or newly-analyzed will be handled as specified by the updated setting, but the remainder will reflect the previous setting.

Factory Setting
  • NEW_FAILURE_BEHAVIOR = EXCEPTION
Tags
  • Treatment of Language Constructs

Specifies the treatment of lock acquisition and release functions such as pthread_mutex_lock on failure.

Type { RETURN_ERR, DOESNT_FAIL }
Behavior
  • RETURN_ERR : lock acquire/release functions are modeled as returning an error code on failure
  • DOESNT_FAIL : lock acquire/release functions are assumed never to fail
Notes It is dangerous to choose DOESNT_FAIL when using an API (such as POSIX threads) that allows lock acquire/release functions to fail spuriously.

We do not recommend changing the MUTEX_FAILURE_BEHAVIOR setting between incremental analyses because the different handling of lock operations in the parent and child analyses is likely to confuse users: any lock acquisition or release functions that are re-analyzed or newly-analyzed will be handled as specified by the updated setting, but the remainder will reflect the previous setting.

Factory Setting
  • MUTEX_FAILURE_BEHAVIOR = RETURN_ERR
Tags
  • Treatment of Language Constructs

Specifies an upper bound on the number of elements in an initializer.

Type integer
Behavior Initializers containing more elements than this limit will be ignored by the analysis.

A value of -1 means that there is no limit on initializer size

Notes Very large initializers can significantly affect analysis time.
Factory Setting
  • INITIALIZER_LIMIT = 512
Tags
  • Analysis resource/effort limit

Specifies an upper bound on the number of constructor calls CodeSonar is willing to make for each end of an array.

Type integer

Behavior Elements on each end of the array will be initialized individually. Elements in the middle will be initialized using a for-loop.

A value of -1 means that there is no limit on the number of calls.

Notes Number of calls can significantly affect analysis time.
Factory Setting
  • ARRAY_CTOR_CALL_LIMIT = 2
Tags
  • Analysis resource/effort limit

Specifies an upper bound on the depth of constexpr calls that can be folded

Type integer
Behavior constexpr calls deeper than this limit are considered non-foldable.

A value of -1 means that there is no limit.

Notes A large value can cause stack overflow.
Factory Setting
  • CONSTEXPR_CALL_DEPTH_LIMIT = 64
Tags
  • Analysis resource/effort limit

Specifies an upper bound on the depth of expression ASTs.

Type integer
Behavior For every expression AST, the analysis will only consider those parts of the AST that lie within this limit.

A value of -1 means that there is no limit.

Notes This is for preventing the front end or the analyzer from exhausting the stack when processing deeply nested expressions. For example, var + var2 + ... with 4000 additions.

Using "ulimit -s unlimited" in the shell from which the analysis runs will make it possible to use higher values.

Factory Setting
  • AST_DEPTH_LIMIT = 256
Tags
  • Analysis resource/effort limit

States that an implicit default clause should not be generated when a switch statement is being parsed.

Type { Yes, No }
Behavior
  • Yes : When a switch statement is being parsed, and there is no default clause in that statement, the switch expression is an enum type, and all of the values of all of the enumerants of that enum type are arguments of cases inside that switch statement, then no implicit default clause is to be generated for that switch statement.
  • No : When a switch statement is being parsed, and there is no default clause in that statement, then an implicit default clause is to be generated for that switch statement.
Notes This is to prevent the generation of false positives for a missing default clause when it has been demonstrated that the default situation can never occur.

This code only works for enum types whose values of enumerants are valid signed 64-bit integers.

Factory Setting
  • NO_IMPLICIT_DEFAULT_FOR_ENUM_SWITCH = No
Tags
  • Treatment of Language Constructs

Specifies an approximate upper bound on the number of CFG nodes a procedure can have.

Type integer
Behavior
  • -1 : There is no limit.
  • N (for N>=0) : The analysis will ignore procedures containing more than N CFG nodes.
Notes Very large procedures can cause CodeSonar to run out of memory.
Factory Setting
  • MAX_CFG_NODES = 100000
Tags
  • Analysis resource/effort limit

Specifies an approximate upper bound on the number of CFG edges a procedure can have.

Type integer
Behavior
  • -1 : There is no limit.
  • N (for N>=0) : The analysis will ignore procedures containing more than N CFG edges.
A value of -1 means that there is no limit.
Notes Very large procedures can cause CodeSonar to run out of memory.
Factory Setting
  • MAX_CFG_EDGES = 3000000
Tags
  • Analysis resource/effort limit

Specifies status message verbosity

Type { 0, 1, 2, 3, ..., 10 }
Behavior The higher the VERBOSITY value, the more status messages are issued. If the value is 0 or 1, messages will only be issued for fatal and near-fatal errors.

When the value is 6 or higher the Native Compilation Details Log will include some trace output for source patching (from directories specified with SOURCE_PATCH_DIRECTORIES) and source replacement (as specified with SOURCE_REPLACE_COMMAND and SOURCE_PATTERN_REPLACEMENT rules).

Notes In general, higher VERBOSITY values will result in longer running time; this effect is particularly marked in the analysis phase. If you are using higher settings to debug source patching or source replacement, we recommend doing the build and analysis in separate phases:
  • Set VERBOSITY to 6 and build the project with codesonar build.
  • Use the trace information in the Native Compilation Details Log to perform any necessary debugging, repeating the project build as necessary.
  • Once you are satisfied that the project has built correctly, set VERBOSITY to a lower value and analyze the project with codesonar analyze.
Factory Setting
  • VERBOSITY = 2
Tags
  • Analysis Properties

Specifies front end options to prepend to the front end command line, in front of any CodeSurfer build options specified.

Type a list of front-end options

Microsoft libc command line encoding rules apply (even on non-Windows systems).

Behavior See section Front-End Options for descriptions of the available options.
Notes The += operator will actually prepend to this preference (in all cases except for other parameters with names of the form *_PREPEND, the += operator appends). This means that if you have two EDG_FRONTEND_OPTIONS_PREPEND += statements in this file, the options in the second statement will be prepended to the options in the first statement.

If you are using this parameter to define a preprocessor macro whose definition contains spaces, double-quote the definition. Microsoft libc command line encoding rules apply (even on non-Windows systems). For example:

   EDG_FRONTEND_OPTIONS_PREPEND += -DM_INT_TYPE=int
   EDG_FRONTEND_OPTIONS_PREPEND += -DM_ULONG_TYPE="unsigned long int"
Factory Setting
  • EDG_FRONTEND_OPTIONS_PREPEND +=
Tags
  • Governs the Build/Analysis

Specifies front end options to append to the front end command line.

Type a list of front-end options

Microsoft libc command line encoding rules apply (even on non-Windows systems).

Behavior See section Front-End Options for descriptions of the available options.
Notes To add mydir to the list of directories searched for include files:
  EDG_FRONTEND_OPTIONS_APPEND += -Imydir

To set macro MYMACRO to the empty string (useful if you are getting a parser error complaining that MYMACRO is undefined):

  EDG_FRONTEND_OPTIONS_APPEND += -DMYMACRO= 

If you are using this parameter to define a preprocessor macro whose definition contains spaces, double-quote the definition. Microsoft libc command line encoding rules apply (even on non-Windows systems). For example:

   EDG_FRONTEND_OPTIONS_APPEND += -DM_CHAR_P_TYPE=char*
   EDG_FRONTEND_OPTIONS_APPEND += -DM_UINT_TYPE="unsigned int"
Factory Setting
  • EDG_FRONTEND_OPTIONS_APPEND +=
Tags
  • Governs the Build/Analysis

Specifies the amount of memory (in Megabytes) to allocate for managed IR objects in master processes.

Type integer
Behavior When the intermediate representation (IR) of the program being analyzed occupies approximately this much virtual address space, a portion of the IR will be paged out.

A low value may cause thrashing. A high value may cause the tool to exhaust memory.

Notes Only a subset of the objects in memory are managed under this limit.
Factory Setting
  • MANAGED_OBJECTS_RESIDENT_LIMIT = 1024
Tags
  • Analysis resource/effort limit

Specifies the amount of memory (in Megabytes) to allocate for managed IR objects in slave processes.

Type integer
Behavior When the intermediate representation (IR) of the program being analyzed occupies approximately this much virtual address space, a portion of the IR will be paged out.

A low value may cause thrashing. A high value may cause the tool to exhaust memory.

Notes Only a subset of the objects in memory are managed under this limit.
Factory Setting
  • SLAVE_MANAGED_OBJECTS_RESIDENT_LIMIT = 256
Tags
  • Analysis resource/effort limit

Specifies the amount of memory (in Megabytes) to allocate for I/O buffering in master processes.

Type integer
Notes A low value may cause thrashing. A high value may cause the tool to exhaust virtual address space.
Factory Setting
  • MANAGED_OBJECTS_IO_BUFFER_CAPACITY = 128
Tags
  • Analysis resource/effort limit

Specifies the amount of memory (in Megabytes) to allocate for I/O buffering in slave processes.

Type integer
Notes A low value may cause thrashing. A high value may cause the tool to exhaust virtual address space.
Factory Setting
  • SLAVE_MANAGED_OBJECTS_IO_BUFFER_CAPACITY = 128
Tags
  • Analysis resource/effort limit

Specifies whether kernel page buffering should be enabled for files that are buffered in userland (according to MANAGED_OBJECTS_IO_BUFFER_CAPACITY), in master processes.

Type { Yes, No }
Notes In order to avoid the cost of context switches and OS overhead, I/O buffers for managed objects are stored in userland. Having the OS kernel ALSO buffer the data can be wasteful if the file in question is only being used by one long-running process, since the userland buffer will obviate the need for the kernel buffer. Therefore, it can be desirable to simply disable kernel buffering in order that the OS's file system buffers can be used for other purposes.

With short lived processes, parallel analysis, or machines with large amounts of physical memory, kernel buffering is often beneficial. Kernel buffering is always enabled for front end processes since they are short lived.

Disabling kernel buffering can make other processes on the same computer seem more responsive.

Factory Setting
  • MANAGED_OBJECTS_IO_KERNEL_BUFFERING = No
Tags
  • Analysis Properties

Specifies whether kernel page buffering should be enabled for files that are buffered in userland (according to SLAVE_MANAGED_OBJECTS_IO_BUFFER_CAPACITY), in slave processes.

Type { Yes, No }
Notes In order to avoid the cost of context switches and OS overhead, I/O buffers for managed objects are stored in userland. Having the OS kernel ALSO buffer the data can be wasteful if the file in question is only being used by one long-running process, since the userland buffer will obviate the need for the kernel buffer. Therefore, it can be desirable to simply disable kernel buffering in order that the OS's file system buffers can be used for other purposes.

With short lived processes, parallel analysis, or machines with large amounts of physical memory, kernel buffering is often beneficial. Kernel buffering is always enabled for front end processes since they are short lived.

Disabling kernel buffering can make other processes on the same computer seem more responsive.

Factory Setting
  • SLAVE_MANAGED_OBJECTS_IO_KERNEL_BUFFERING = Yes
Tags
  • Analysis Properties

Specifies whether checksums should be computed/checked when performing I/O in master processes. Generally only necessary if the hardware or network is unreliable.

Type { Yes, No }
Factory Setting
  • MANAGED_OBJECTS_IO_CHECKSUMS = No
Tags
  • Analysis Properties

Specifies whether checksums should be computed/checked when performing I/O in slave processes. Generally only necessary if the hardware or network is unreliable.

Type { Yes, No }
Factory Setting
  • SLAVE_MANAGED_OBJECTS_IO_CHECKSUMS = No
Tags
  • Analysis Properties

Specifies whether in-memory pages of managed objects should be protected when not in immediate use in master processes.

Type { Yes, No }
Notes This is a debugging feature that typically causes a minor performance hit.
Factory Setting
  • MANAGED_OBJECTS_PROTECT_PAGES = No
Tags
  • Analysis Properties

Specifies whether in-memory pages of managed objects should be protected when not in immediate use in slave processes.

Type { Yes, No }
Notes This is a debugging feature that typically causes a minor performance hit.
Factory Setting
  • SLAVE_MANAGED_OBJECTS_PROTECT_PAGES = No
Tags
  • Analysis Properties

When performing source replacement with SOURCE_PATTERN_REPLACEMENT, this is the size (in bytes) of the buffer used to hold the part of the source file currently undergoing matching.

Type integer
Notes File substrings whose length exceeds this value will never be matched, but too high a value can cause performance problems.
Factory Setting
  • MAX_MATCH_LENGTH = 4095
Tags
  • Analysis resource/effort limit
  • Operations on Un-Preprocessed Files

Specifies a regular expression based replacement to be carried out over the source code being analyzed (before parsing occurs).

Type A string of the form
     s/<pattern>/<replacement>/<flag>+

where:

  • The delimiter '/' can be replaced by any character (except null).
  • <pattern> is a Boost 'POSIX Extended Regular Expression' describing a pattern that could occur in the source code. The pattern can match multiple-line substrings in the source file. Double-quote <pattern> if you want it to include leading or trailing spaces.
  • <replacement> is the string that should replace source code substrings that match <pattern>. This can be a multiple-line string. Double-quote <replacement> if you want it to include leading or trailing spaces.
  • <flag> is a process modifier, corresponding to a Boost regular expression syntax option or flag as shown below.

Boost regular expression syntax_option_type correspondences:

  -M    no_mod_m 
  -S    no_mod_s 
  A     awk 
  B     basic 
  C     no_char_classes 
  D     sed 
  E     extended 
  G     grep 
  H     egrep 
  I     icase 
  L     literal 
  N     normal 
  O     collate 
  P     perl 
  Q     bk_plus_qm 
  S     mod_s 
  T     no_intervals 
  X     mod_x 

Boost regular expression match_flag_type correspondences:

  a     match_not_bob 
  c     match_continuous 
  d     match_default 
  e     match_extra 
  fa    format_all 
  fc    format_no_copy 
  fd    format_default 
  ff    format_first_only 
  fl    format_literal 
  fp    format_perl 
  fs    format_sed 
  m     match_single_line 
  n     match_not_null 
  z     match_not_eob 
  $     match_not_eol 
  *     match_any 
  .     match_not_dot_newline 
  <     match_not_bow 
  >     match_not_eow 
  ^     match_not_bol 
Notes SOURCE_PATTERN_REPLACEMENT rules are typically used to improve analysis result quality by
  • removing code that CodeSonar has difficulty understanding, or
  • adding code that clarifies program behavior, or
  • both.

Matching and replacement is carried out within each source file in the project, including those imported with codesonar import_sarif.py and codesonar add_source_files.py, before parsing occurs.

The updated text is saved in the store: the analysis back end never sees the original code. Note that this means that any error reporting will involve line numbers and text from the updated files. If you want to preserve line numbering correspondence between the original and updated files, design your <replacement> expressions so that the replacement string has the same number of lines as the source string matched by the <pattern> expression.

If no <pattern> is specified for a SOURCE_PATTERN_REPLACEMENT entry, the entry will be ignored with a warning.

The '/' character is the standard delimiter, but you can use a different delimiter if necessary. Occurrences of the delimiter inside <replacement> and <flag> must be escaped.

If you don't wish to use the delimited expression form at all, you can use the combination of SOURCE_PATTERN, SOURCE_REPLACEMENT, and SOURCE_MODIFIERS to specify a regular expression based replacement as described below.

For example,

  SOURCE_PATTERN_REPLACEMENT+=s/foo//I

specifies that all occurrences of "foo" in the source code, regardless of case, should be deleted. This is exactly equivalent to

  SOURCE_PATTERN_REPLACEMENT+=s*foo**I

(the same expression with a different delimiter), and to

  SOURCE_PATTERN=foo
  SOURCE_REPLACEMENT=
  SOURCE_MODIFIERS=I

You can specify as many SOURCE_PATTERN_REPLACEMENT entries as you want: replacements will be carried out in the same order that the entries are specified. All SOURCE_PATTERN_REPLACEMENTs will be carried out after all SOURCE_REPLACE_COMMANDs.

Tags
  • Operations on Un-Preprocessed Files

An alternative to SOURCE_PATTERN_REPLACEMENT for specifying regular expression based replacements in the source code.

Type SOURCE_PATTERN : Boost 'POSIX Extended Regular Expression'

SOURCE_REPLACEMENT : string

SOURCE_MODIFIERS : one or modifiers as described in the entry for SOURCE_PATTERN_REPLACEMENT

Behavior
  • SOURCE_PATTERN corresponds to the <pattern> part of a SOURCE_PATTERN_REPLACEMENT expression
  • SOURCE_REPLACEMENT corresponds to the <replacement> part of a SOURCE_PATTERN_REPLACEMENT expression
  • SOURCE_MODIFIERS corresponds to the <flag>+ part of a SOURCE_PATTERN_REPLACEMENT expression
Notes For the sake of execution order determination, a SOURCE_PATTERN/SOURCE_REPLACEMENT/SOURCE_MODIFIERS triple is treated as if it is a SOURCE_PATTERN_REPLACEMENT rule whose location is that of the next SOURCE_PATTERN rule, or at the end of the file if there is no such rule.

A SOURCE_REPLACEMENT entry is associated with the most-recently-seen SOURCE_PATTERN not already associated with a SOURCE_REPLACEMENT.

A SOURCE_REPLACEMENT or SOURCE_MODIFIERS entry with which no SOURCE_PATTERN can be associated is ignored with a warning.

A SOURCE_PATTERN with which no SOURCE_REPLACEMENT can be associated will associated with the empty string as its source replacement

A SOURCE_PATTERN with which no SOURCE_MODIFIERS can be associated will assumed to have no modifiers.

See the entry for SOURCE_PATTERN_REPLACEMENT for more information, including an example.

Tags
  • Operations on Un-Preprocessed Files

Specifies a text-replacement command to be executed on each source file being analyzed (before parsing occurs).

Type A string corresponding to a command that reads from stdin and writes to stdout.

Microsoft libc command line encoding rules apply (even on non-Windows systems).

Behavior The command will be executed on all source files in the CodeSonar project, including those imported with codesonar import_sarif.py and codesonar add_source_files.py, before parsing occurs.
Notes For example,
  SOURCE_REPLACE_COMMAND+=sed -e "s#@ *0x[0-9a-fA-F][0-9a-fA-F]*#/* CSURF: At removed */#"

specifies that all strings consisting of "@" followed by zero or more spaces followed by a hexadecimal number should be replaced by a comment reading "/* CSURF: At removed */"

You can specify as many SOURCE_REPLACE_COMMAND entries as you want: replacements will be carried out in the same order that the entries are specified.

All replacements specified with SOURCE_REPLACE_COMMAND will be carried out before any replacements specified with SOURCE_PATTERN_REPLACEMENT (or SOURCE_PATTERN, SOURCE_REPLACEMENT, SOURCE_MODIFIERS).

Analysis results are reported with respect to the modified versions of source files. Note that this means that any error reporting will involve line numbers and text from the updated files. If you want to preserve line numbering correspondence between the original and updated files, design your commands so that the replacement string has the same number of lines as the source string it replaces.

Here is an example of how to convert from a popular shift JIS variant to UTF8:

  SOURCE_REPLACE_COMMAND += $GTHOME/codesonar/bin/cspython -c "import sys; sys.stdout.buffer.write(sys.stdin.buffer.read().decode('cp932').encode('utf8'))"
Tags
  • Operations on Un-Preprocessed Files

Specifies whether or not preprocessed versions of compilation units containing parse errors will be saved.

Type { Yes, No }
Notes If (deprecated) environment variable CS_PREPROCESS_IF_FAIL is set, its value will override the setting of this parameter.
Factory Setting
  • PREPROCESS_IF_FAIL = No
Tags
  • Analysis Properties

Specifies whether or not preprocessed versions of all compilation units will be saved.

Type { Yes, No }
Notes If (deprecated) environment variable CS_PREPROCESS_ALWAYS is set, its value will override the setting of this parameter.
Factory Setting
  • PREPROCESS_ALWAYS = No
Tags
  • Analysis Properties

Specifies a log file for hook* sub-commands.

Type file path
Behavior All process invocations inside a build, analyze, hook, hook-build, or hook-html sub-command will be logged to the specified file.
Notes For example:
    HOOK_LOG = /PATH/TO/log_file

This parameter has no effect on Windows systems.

If environment variable CS_HOOK_LOG is set, its value will override the setting of this parameter.

Tags
  • Additional Outputs from the Build/Analysis

Specifies whether or not to give users a chance to stop the build when we detect that the file system the project is being put on could cause reliability or performance problems.

Type { Yes, No }
Notes If environment variable GT_BADFS_NOSLEEP is set, its value will override the setting of this parameter.
Factory Setting
  • BADFS_NOSLEEP = No
Tags
  • Governs the Build/Analysis

Use to gather diagnostic information for CodeSonar support.

Type file path
Behavior If specified, diagnostic information will be saved to this file
Notes If environment variable FATSTATS_DUMP_FILE is set, its value will override the setting of this parameter.

For example:

     FATSTATS_DUMP_FILE = /PATH/TO/dump_file
Tags
  • Additional Outputs from the Build/Analysis

Limits the number of concurrent processes in the CodeSonar project build phase. Note that concurrent CodeSonar project building only occurs insofar as your normal build system invokes the compiler concurrently.

Type integer
Notes This limit is necessary because each concurrent compilation contributes to 5 files, and eventually the analysis needs to open all files simultaneously (estimated at 50 + 5 * NUMBER_OF_CONCURRENT_PARSES). Most systems have various limits on the number of files a process can open. Typical file descriptor limits for this platform are:
  • getrlimit(RLIMIT_NOFILE) = 1024
  • CodeSecure-Internal Limit = 4096

Increasing this value may cause the product to exhaust available file descriptors. Environments with low ulimits may need to decrease this value.

Factory Setting
  • MAX_CONCURRENT_BUILD_PROCESSES = 582
Tags
  • Analysis resource/effort limit

Seconds spent computing a metric for a single procedure before the operation is aborted.

Type integer
Behavior A value of -1 disables the timeout. Values of 0 or greater specify the maximum number of seconds (elapsed time) to spend computing a single procedure metric value. If the timeout occurs for a given procedure and metric, no metric value will be reported for that procedure and metric.
Notes Only applies to the following metrics:
  • Module Design Complexity (ivG)
  • Essential Complexity (evG)
Factory Setting
  • PROCEDURE_METRIC_TIMEOUT = 60

Provide paths to additional compiler model plugins.

Type string (representing a file path)
Notes CodeSonar will search in csurf/lib directory for user compiler models, then examine each compiler model specified in COMPILER_MODEL_PLUGINS. Compiler model plug-in names are prefixed with "lib". User compiler models override builtin compiler models that ship with CodeSonar.

For example:

     COMPILER_MODEL_PLUGINS += /PATH/TO/libsamplecm.so

Will add the compiler model samplecm.

Specifies directories under which patches to source are located.

Type string
Behavior For every directory D specified with SOURCE_PATCH_DIRECTORIES, patch files in subdirectory D/fname.x/ are applied to the source file named fname.x, where fname.x is the source file name as specified in the build command or #include statements, before any redirection (such as symbolic link resolution).
  • fname.x/ must be a direct subdirectory of D - it cannot be more deeply nested.
  • All patches in any such D/fname.x/ are applied to fname.x. There could be several such patches for a given file, whether because there are multiple SOURCE_PATCH_DIRECTORIES rules, because a single fname.x/ directory contains multiple patches, or both. The success or failure of any individual application does not affect the application of other patches.
  • If any part of a patch file fails, no part of that file is applied.
  • If there are multiple SOURCE_PATCH_DIRECTORIES rules, the directories are processed in reverse order: patches from the directory specified by the last SOURCE_PATCH_DIRECTORIES rule are applied first.

The successful application of one patch does not preclude attempts to subsequently apply additional patches: Every matching patch is attempted.

CodeSonar will instantiate variable $GTHOME with the path to the CodeSonar installation.

Notes This process is independent of the names of the patch files themselves - only the subdirectory name matters. Similarly, any from-file and to-file filenames specified in a patch file are ignored.
Factory Setting
  • SOURCE_PATCH_DIRECTORIES += $GTHOME/codesonar/libmodels/header_patches
Tags
  • Operations on Un-Preprocessed Files

Specifies whether or not the build/analysis will be incremental.

Type { Yes, No }
Behavior Let P be the name of the project. Then behavior is as follows.
  • Yes : Incrementality will be enabled for this build/analysis of P and all its descendant builds/analyses. If the project directory already contains a P.prj_files/ subdirectory, the current build/analysis will be an incremental child of the corresponding analysis, otherwise it will be a new base analysis.
  • No : Incrementality will not be enabled for this build/analysis - it will not have a parent, and cannot have any descendants. If the underlying software project is not being fully rebuilt, the CodeSonar project (and therefore any analysis of the project) will reflect only those parts that are being built.
Languages C/C++
Factory Setting
  • INCREMENTAL_BUILD = Yes
Tags
  • Governs the Build/Analysis

Dry runs are useful for counting lines and locating parse errors without running the CodeSonar analysis, and therefore without consuming licensed lines.

Type { Yes, No }
Behavior
  • Yes : CodeSonar will perform a "dry run" - it will count lines and report parse errors, but not perform the CodeSonar analysis. Because the analysis is not performed, no warnings are issued.
  • No : CodeSonar will perform the full build/analysis based on the specified build command.
Notes It can be useful to perform a dry run on a project before analyzing it to see whether it will exhaust your license (without actually exhausting your license).

Dry run results are presented in an Analysis page in the Web GUI. See Analysis: Dry Runs for more information.

CodeSonar does not require a license key to perform a dry run.

Mixing dry runs and analysis runs for the same .prj_files directory (that is, the same project name) is not supported.

Do not use DRY_RUN if the hub is running version 3.5p1 or earlier: older hubs do not understand this parameter and will consume licensed lines regardless of its setting.

Factory Setting
  • DRY_RUN = No
Tags
  • Governs the Build/Analysis
  • Do Not Change Between Incremental Analyses or Stages of a Single Build/Analysis

Specifies the hub address CodeSonar should use.

Type String of the form <host>:<port>
Behavior CodeSonar will use the specified hub address.
  • If an address is specified on the command line, then it takes precedence.
  • The HUB_ADDRESS setting takes precedence over the CODESONAR_HUB environment variable.
  • Setting HUB_ADDRESS in template.conf affects the following codesonar commands: analyze, build, generate-hub-cert, hub-info, hub-start, hub-stop, relocate.
  • Setting HUB_ADDRESS in any other configuration file affects only the following commands, and only if they are using that file: analyze, build, relocate.
Notes For example:
  HUB_ADDRESS = 127.0.0.1:7340
  HUB_ADDRESS = 0.0.0.0:7340
  HUB_ADDRESS = [::1]:7340
  HUB_ADDRESS = [::]:7340

This parameter is ignored by the CodeSonar Windows build wizard.

Offline build/analysis does not interact with a hub. If both HUB_ADDRESS and OFFLINE=Yes are specified, the build/analysis will fail unless a hub address or -offline is specified on the command line, in which case the command line option will take precedence.

Tags
  • Governs the Build/Analysis

Specifies how many concurrent upload streams may be used to upload warnings to the hub.

Type integer N such that 1 <= N <= 64
Behavior The analysis will employ up to this many simultaneous HTTP (or HTTPS) connections to the hub in order to upload warnings.
Notes Typically, only analyses with hundreds of thousands or more warnings are likely to benefit substantially from settings larger than 4. Usually this can only occur when performing checks related to a standard (e.g., MISRA) on code that has historically made no attempt to comply with that standard, leading to a large number of warnings. Values in the upper part of the permissible range are not suitable for use with hubs using default settings.

Higher settings will occupy more hub connection slots. The maximum number of slots is governed by the hub's Max Processes setting: you can modify this from the Settings: HTTP tab. If the hub is overloaded, there will be a warning in the footer about Max Processes being tripped.

A higher setting can reduce the amount of time spent flushing transactions to the hub after the analysis has finished. (To determine whether this is occurring, examine the Analysis Log for occurrences of "Flushing Transactions".)

You may wish to lower the HUB_UPLOAD_STREAMS setting for a particular project if:

  • other hub users also need to make use of hub connections, or
  • previous analyses of the project have not spent much time flushing transactions.

codesonar/bin/cshub_inspect may be used during analysis to monitor the hub's connections.

Factory Setting
  • HUB_UPLOAD_STREAMS = 4

Specifies a name for the analysis.

Type string
Behavior CodeSonar will label the analysis with the specified name. If a name is specified on the command line, then it takes precedence. Different analyses of the same project may have different names (e.g., to distinguish different versions).
Notes For example:
  ANALYSIS_NAME = Bob's Project Revision 472

CodeSonar will generate a name for the analysis if none is specified.

The -name command line flag takes precedence over this setting.

Offline build/analysis does not interact with the hub, so cannot assign an analysis name. If both ANALYSIS_NAME and OFFLINE=Yes are specified, the build/analysis will fail unless -name or -offline is specified on the command line, in which case the command line option will take precedence.

Tags
  • Analysis Properties

[Windows only] Specifies whether or not the CodeSonar launch daemon process will be created as a Windows service.

Type { Yes, No }
Behavior
  • Yes : any launch daemon started by "codesonar analyze" will be created as a Windows service, unless the -no-services option is specified.
  • No : launch daemons started by "codesonar analyze" will not be created as Windows services. This means that Windows will kill launch daemon processes when the user logs out, unless those processes were started from the Scheduled Tasks panel or by another Windows service.
Notes This parameter is ignored by the CodeSonar Windows build wizard and by the "codesonar install-launchd" command.

This parameter has no effect on non-Windows systems.

For example:

  USE_SERVICES = Yes

The -no-services command line flag takes precedence over this setting.

Offline build/analysis does not use a launch daemon, so will never use Windows services. If both USE_SERVICES=Yes and OFFLINE=Yes are specified, the build/analysis will fail unless -no-services or -offline is specified on the command line, in which case the command line option will take precedence.

Tags
  • Governs the Build/Analysis

Specifies whether or not a "codesonar analyze" command will run the analysis in the codesonar analyze process itself.

Type { Yes, No }
Behavior
  • Yes : the "codesonar analyze" command runs the analysis itself.
  • No : a separate background process runs the analysis after control returns to the shell.
Notes This parameter is ignored by the CodeSonar Windows build wizard.

The CodeSonar Analysis Log in the web GUI will not be populated when this is set to "Yes". Instead, the log will show up on the analyze command's stdout and stderr. With factory settings, analysis processes run in the background and can continue running after the user has logged out.

The CodeSonar analysis will not implicitly start a launch daemon on behalf of a foreground analysis. For more information, see Letting codesonar analyze Start a Launch Daemon Implicitly.

Tags
  • Governs the Build/Analysis

Specifies whether or not the parse mode phase of the CodeSonar analysis will run in parallel. For local-requesting parse masters (REQUEST_REMOTE_PARSE_SLAVES=No), additionally specifies a bound below which the parse master may automatically start new slaves as needed.

Type { Auto, Serial } or integer
Behavior
  • Serial with REQUEST_REMOTE_PARSE_SLAVES=No: parse mode is "nearly serial". The parse master will spawn front end processes as required to accomplish deep parsing, but at most two processes will run at any given time: the master process plus at most one front end process. There is no provision for manually attaching slaves. This setting will use the minimum amount of memory, but does not permit multiple front end processes to run in parallel, and does not provide fault tolerance during parsing. It is useful on single-core systems and when resources are scarce.
  • Auto with REQUEST_REMOTE_PARSE_SLAVES=No : CodeSonar will determine the appropriate maximum number of parse slaves based on the total number of logical cores (Cores) on the machine and the amount of free physical memory (Mem) using the following formula: min(Cores, max(0, floor(Mem / MEMORY_PER_PARSE_PROCESS ) - 1)). If the result is less than or equal to 1, behavior is "nearly serial" as described for PARSE_SLAVES=Serial with REQUEST_REMOTE_PARSE_SLAVES=No.
  • integer with REQUEST_REMOTE_PARSE_SLAVES=No : if fewer than this many parse slaves are running, CodeSonar will automatically start new parse slaves as needed. Empirically, each process might use up to about (TODO) of memory.
  • any setting (including Serial) with REQUEST_REMOTE_PARSE_SLAVES=Yes : the parse mode phase of the CodeSonar analysis will be parallel and distributed. The precise setting of this parameter will not be used (except as described for computing the parse slave upper bound): the parse master will request new slaves from the hub as it wants them, the hub in turn will request slaves from those launch daemons that have not reached their analysis cloud process limits, and the master will accept the newly-started slaves up to the parse slave upper bound.
Notes The optimal number of slave processes depends on available system resources; each slave process uses CPU cycles and memory.

Use PARSE_MASTER_LISTEN_INTERFACE to specify the address on which the master process will listen.

See also:

For more information, see the manual section on Parallelism in CodeSonar.

Factory Setting
  • PARSE_SLAVES = Auto

Specifies whether or not automatically-started parse slaves can be distributed through the hub's analysis cloud.

Type {Yes, No}
Behavior Determines how the parse master will obtain additional slaves during the parse mode phase of the CodeSonar analysis.
  • Yes : if the parse master determines that it requires additional parse slaves, it will send a request to the hub. The hub determines which cslaunchd processes in its analysis cloud register have available capacity, then instructs each of these to start a new parse slave.
  • No : if the parse master determines that it requires additional parse slaves, it will directly start one local slave at a time.
Notes Setting this to No is not sufficient to guarantee that parsing will run entirely locally. If the master process is listening on an address to which other machines have access, it can accept manually-started slaves from those other machines. To eliminate this possibility, use a restrictive PARSE_MASTER_LISTEN_INTERFACE setting.

For more information, see the manual sections on Parallelism in CodeSonar and Distributed Analysis.

Offline analyses are always local-requesting. If both REQUEST_REMOTE_PARSE_SLAVES=Yes and OFFLINE=Yes are specified, the build/analysis will fail unless -offline is specified on the command line, in which case the command line option will take precedence.

Factory Setting
  • REQUEST_REMOTE_PARSE_SLAVES = No

Specifies whether or not the analysis mode phase of the CodeSonar analysis will run in parallel. For local-requesting analysis masters (REQUEST_REMOTE_ANALYSIS_SLAVES=No), additionally specifies a bound below which the analysis master may automatically start new slaves as needed.

Type { Auto, Serial } or integer
Behavior
  • Serial with REQUEST_REMOTE_ANALYSIS_SLAVES=No: analysis mode will take place in a single process. This will use the minimum amount of memory, but provides no parallelism or fault tolerance during analysis. It is useful on single-core systems and when resources are scarce.
  • Auto with REQUEST_REMOTE_ANALYSIS_SLAVES=No : CodeSonar will determine the appropriate maximum number of analysis slaves based on the total number of logical cores (Cores) on the machine and the amount of free physical memory (Mem) using the following formula: min(Cores, max(0, floor(Mem / MEMORY_PER_ANALYSIS_PROCESS ) - 1)). If the result is less than or equal to 1, a serial analysis is performed.
  • integer with REQUEST_REMOTE_ANALYSIS_SLAVES=No : if fewer than this many analysis slaves are running, CodeSonar will automatically start new analysis slaves as needed. Empirically, each process might use up to about 512MB of memory.
  • any setting (including Serial) with REQUEST_REMOTE_ANALYSIS_SLAVES=Yes : the analysis mode phase of the CodeSonar analysis will be parallel and distributed. The precise setting of this parameter will not be used (except as described for computing the analysis slave upper bound): the analysis master will request new slaves from the hub as it wants them, the hub in turn will request slaves from those launch daemons that have not reached their analysis cloud process limits, and the master will accept the newly-started slaves up to the analysis slave upper bound.
Notes The optimal number of slave processes depends on available system resources; each slave process uses CPU cycles and memory.

Use ANALYSIS_MASTER_LISTEN_INTERFACE to specify the address on which the master process will listen.

See also:

For more information, see the manual section on Parallelism in CodeSonar.

Factory Setting
  • ANALYSIS_SLAVES = Auto

Specifies whether or not automatically-started analysis slaves can be distributed through the hub's analysis cloud.

Type {Yes, No}
Behavior Determines how the analysis master will obtain additional slaves during the analysis mode phase of the CodeSonar analysis.
  • Yes : if the analysis master determines that it requires additional analysis slaves, it will send a request to the hub. The hub determines which cslaunchd processes in its analysis cloud register have available capacity, then instructs each of these to start a new analysis slave.
  • No : if the analysis master determines that it requires additional analysis slaves, it will directly start one local slave at a time.
Notes Setting this to No is not sufficient to guarantee that an analysis will run entirely locally. If the master process is listening on an address to which other machines have access, it can accept manually-started slaves from those other machines. To eliminate this possibility, use a restrictive ANALYSIS_MASTER_LISTEN_INTERFACE setting.

For more information, see the manual sections on Parallelism in CodeSonar and Distributed Analysis.

Offline analyses are always local-requesting. If both REQUEST_REMOTE_ANALYSIS_SLAVES=Yes and OFFLINE=Yes are specified, the build/analysis will fail unless -offline is specified on the command line, in which case the command line option will take precedence.

Factory Setting
  • REQUEST_REMOTE_ANALYSIS_SLAVES = No

Specifies whether or not automatically-started daemon slaves can be distributed through the hub's analysis cloud.

Type {Yes, No}
Behavior Determines how the daemon master will obtain additional slaves during the daemon mode phase of the CodeSonar analysis.
  • Yes : if the daemon master determines that it requires additional daemon slaves, it will send a request to the hub. The hub determines which cslaunchd processes in its analysis cloud register have available capacity, then instructs each of these to start a new daemon slave.
  • No : if the daemon master determines that it requires additional daemon slaves, it will directly start one local slave at a time.
Notes Setting this to No is not sufficient to guarantee that daemon mode will run entirely locally. If the master process is listening on an address to which other machines have access, it can accept manually-started slaves from those other machines. To eliminate this possibility, use a restrictive DAEMON_MASTER_LISTEN_INTERFACE setting.

For more information, see the manual sections on Parallelism in CodeSonar and Distributed Analysis.

Factory Setting
  • REQUEST_REMOTE_DAEMON_SLAVES = No

Specifies the launch daemon or daemons from which parse slaves may be requested.

Type string or integer
Behavior Parse slaves for an analysis with remote-requesting parse master will only be requested from launch daemons that match the specified value, which can take any of the following forms.
  • Positive Integer N : Matches all launch daemons that are transitive descendants of the launchd group whose LDGroup ID is N.
  • Negative Integer -M : Matches the single launch daemon whose Launch Daemon ID is M.
  • (Integer 0 is not a valid setting.)
  • /Foo/Bar/* : Matches all launch daemons that are transitive descendants of the launch daemon group(s) whose LDGroup Path is /Foo/Bar. Case sensitive.
  • /Foo/Bar/user@machine : Matches all launch laemon(s) whose Parent LDGroup is /Foo/Bar, System User is user, and Machine is machine. Case sensitive.
Notes If security is a concern, then it is safer to use the positive integer and negative integer forms, since IDs are never reused, whereas multiple launch daemon groups can have the same path, and the truthfulness of the human readable launch daemon names (user@machine) cannot be verified by the hub.

It is advisable to only use trusted launch daemons. For best performance, it is advisable to only use launch daemons with reasonable performance and an ethernet quality network connection to the parse master.

By default, all launch daemons on the hub will be used.

This setting has no effect if REQUEST_REMOTE_PARSE_SLAVES=No.

Examples:

     REMOTE_PARSE_SLAVES_LAUNCHDS += /siteA/*
     REMOTE_PARSE_SLAVES_LAUNCHDS += /siteA/alex@sparky
     REMOTE_PARSE_SLAVES_LAUNCHDS += 123
     REMOTE_PARSE_SLAVES_LAUNCHDS += -123

For more information, see the manual section on Distributed Analysis.

Specifies the launch daemon or daemons from which analysis slaves may be requested.

Type string or integer
Behavior Analysis slaves for an analysis with remote-requesting analysis master will only be requested from launch daemons that match the specified value, which can take any of the following forms.
  • Positive Integer N : Matches all launch daemons that are transitive descendants of the launchd group whose LDGroup ID is N.
  • Negative Integer -M : Matches the single launch daemon whose Launch Daemon ID is M.
  • (Integer 0 is not a valid setting.)
  • /Foo/Bar/* : Matches all launch daemons that are transitive descendants of the launch daemon group(s) whose LDGroup Path is /Foo/Bar. Case sensitive.
  • /Foo/Bar/user@machine : Matches all launch laemon(s) whose Parent LDGroup is /Foo/Bar, System User is user, and Machine is machine. Case sensitive.
Notes If security is a concern, then it is safer to use the positive integer and negative integer forms, since IDs are never reused, whereas multiple launch daemon groups can have the same path, and the truthfulness of the human readable launch daemon names (user@machine) cannot be verified by the hub.

It is advisable to only use trusted launch daemons. For best performance, it is advisable to only use launch daemons with reasonable performance and an ethernet quality network connection to the analysis master.

By default, all launch daemons on the hub will be used.

This setting has no effect if REQUEST_REMOTE_ANALYSIS_SLAVES=No.

Examples:

     REMOTE_ANALYSIS_SLAVES_LAUNCHDS += /siteA/*
     REMOTE_ANALYSIS_SLAVES_LAUNCHDS += /siteA/alex@sparky
     REMOTE_ANALYSIS_SLAVES_LAUNCHDS += 123
     REMOTE_ANALYSIS_SLAVES_LAUNCHDS += -123

For more information, see the manual section on Distributed Analysis.

Specifies the launch daemon or daemons from which daemon slaves may be requested.

Type string or integer
Behavior Daemon slaves for an analysis with remote-requesting daemon master will only be requested from launch daemons that match the specified value, which can take any of the following forms.
  • Positive Integer N : Matches all launch daemons that are transitive descendants of the launchd group whose LDGroup ID is N.
  • Negative Integer -M : Matches the single launch daemon whose Launch Daemon ID is M.
  • (Integer 0 is not a valid setting.)
  • /Foo/Bar/* : Matches all launch daemons that are transitive descendants of the launch daemon group(s) whose LDGroup Path is /Foo/Bar. Case sensitive.
  • /Foo/Bar/user@machine : Matches all launch laemon(s) whose Parent LDGroup is /Foo/Bar, System User is user, and Machine is machine. Case sensitive.
Notes If security is a concern, then it is safer to use the positive integer and negative integer forms, since IDs are never reused, whereas multiple launch daemon groups can have the same path, and the truthfulness of the human readable launch daemon names (user@machine) cannot be verified by the hub.

It is advisable to only use trusted launch daemons. For best performance, it is advisable to only use launch daemons with reasonable performance and an ethernet quality network connection to the daemon master.

By default, all launch daemons on the hub will be used.

This setting has no effect if REQUEST_REMOTE_DAEMON_SLAVES=No.

Examples:

     REMOTE_DAEMON_SLAVES_LAUNCHDS += /siteA/*
     REMOTE_DAEMON_SLAVES_LAUNCHDS += /siteA/alex@sparky
     REMOTE_DAEMON_SLAVES_LAUNCHDS += 123
     REMOTE_DAEMON_SLAVES_LAUNCHDS += -123

For more information, see the manual section on Distributed Analysis.

Specifies that the CodeSonar analyze interval should be remote-managed, using the specified launch daemon.

Type string or integer
Behavior If no value is specified for this parameter, the analyze interval will be local-managed.

If a value <analysis-launchd> is specified, the analyze interval will be remote-managed by an analysis launch daemon matching <analysis-launchd>, which can take any of the following forms. At least one launch daemon matching <analysis-launchd> must already be running. If there are multiple matching launch daemons, the hub will select one.

  • Positive Integer N : Matches all launch daemons that are transitive descendants of the launchd group whose LDGroup ID is N.
  • Negative Integer -M : Matches the single launch daemon whose Launch Daemon ID is M.
  • (Integer 0 is not a valid setting.)
  • /Foo/Bar/* : Matches all launch daemons that are transitive descendants of the launch daemon group(s) whose LDGroup Path is /Foo/Bar. Case sensitive.
  • /Foo/Bar/user@machine : Matches all launch laemon(s) whose Parent LDGroup is /Foo/Bar, System User is user, and Machine is machine. Case sensitive.

When the analysis transitions to daemon mode, behavior depends on whether or not a separate launch daemon <archive_launchd> has been specified with REMOTE_DAEMON_LAUNCHD=<archive_launchd> or -remote-archive <archive-launchd>.

  • If so, data and control are transferred to <archive_launchd>, which will then service requests from the hub for information about the analysis.
  • Otherwise, <analysis-launchd> remains the analysis launch daemon after transition to daemon mode.
Notes The specified launch daemon is used for the entire analyze interval. If you are performing a parallel/distributed analysis, it's important to note that the analyze interval includes both the parse mode phase and the analysis mode phase, so the specified launch daemon will always control both the parse master and the analysis master.

For more information about remote-managed analysis, see Analysis: Local and Remote Analysis Management.

If security is a concern:

  • Use only trusted launch daemons.
  • Specify a positive or negative integer value for REMOTE_ANALYSIS_LAUNCHD rather than a path: IDs are never reused, whereas multiple launch daemon groups can have the same path, and the truthfulness of human-readable launch daemon names (user@machine) cannot be verified by the hub.

This setting does not affect the build interval.

The -remote command line flag takes precedence over this setting.

An analysis cannot be both offline and remote-managed. If both REMOTE_ANALYSIS_LAUNCHD and OFFLINE=Yes are specified, the build/analysis will fail unless -remote or -offline is specified on the command line, in which case the command line option will take precedence.

Examples:

     REMOTE_ANALYSIS_LAUNCHD += /siteA/*
     REMOTE_ANALYSIS_LAUNCHD += /siteA/alex@sparky
     REMOTE_ANALYSIS_LAUNCHD += 123
     REMOTE_ANALYSIS_LAUNCHD += -123

Specifies that the CodeSonar analysis should be remote-managed after it transitions to daemon mode, using the specified launch daemon.

Type string or integer
Behavior If a value <archive-launchd> is specified, the analysis phase will be remote-managed by an analysis launch daemon matching <archive-launchd>, which can take any of the following forms. If there are multiple matching launch daemons, the hub will select one.
  • Positive Integer N : Matches all launch daemons that are transitive descendants of the launchd group whose LDGroup ID is N.
  • Negative Integer -M : Matches the single launch daemon whose Launch Daemon ID is M.
  • (Integer 0 is not a valid setting.)
  • /Foo/Bar/* : Matches all launch daemons that are transitive descendants of the launch daemon group(s) whose LDGroup Path is /Foo/Bar. Case sensitive.
  • /Foo/Bar/user@machine : Matches all launch laemon(s) whose Parent LDGroup is /Foo/Bar, System User is user, and Machine is machine. Case sensitive.

In the following cases, the analysis launch daemon will not change when the analysis transitions into daemon mode.

  • No value specified for this parameter (or -remote-archive).
  • REMOTE_DAEMON_LAUNCHD=<A> specified, but no launch daemon matching <A> is running.
  • REMOTE_ANALYSIS_LAUNCHD=<A> and REMOTE_DAEMON_LAUNCHD=<A> specified with identical values <A>. (If the two are specified with different but overlapping values REMOTE_ANALYSIS_LAUNCHD=<A> REMOTE_DAEMON_LAUNCHD=<B> CodeSonar will select the launch daemons for the analysis phase and daemon mode independently. If there is overlap between <A> and <B> then the same launch daemon may be selected for both, but this is not guaranteed.)
Notes For more information about remote-managed analysis, see Analysis: Local and Remote Analysis Management.

If security is a concern:

  • Use only trusted launch daemons.
  • Specify a positive or negative integer value for REMOTE_DAEMON_LAUNCHD rather than a path: IDs are never reused, whereas multiple launch daemon groups can have the same path, and the truthfulness of human-readable launch daemon names (user@machine) cannot be verified by the hub.

You can specify REMOTE_DAEMON_LAUNCHD=<archive_launchd> without specifying a value for REMOTE_ANALYSIS_LAUNCHD (or -remote-archive). When you do this, the analysis phase will run locally, then data and control will be transferred to <archive_launchd> for remote management in daemon mode.

The -remote-archive command line flag takes precedence over this setting.

An offline analysis will not transition to daemon mode until the analysis results have been submitted with codesonar submit-results. If both REMOTE_DAEMON_LAUNCHD and OFFLINE=Yes are specified, the build/analysis will fail unless -remote-archive or -offline is specified on the command line, in which case the command line option will take precedence.

Examples:

     REMOTE_DAEMON_LAUNCHD += /siteA/*
     REMOTE_DAEMON_LAUNCHD += /siteA/alex@sparky
     REMOTE_DAEMON_LAUNCHD += 123
     REMOTE_DAEMON_LAUNCHD += -123

Specifies the parent launchd group for new CodeSonar launch daemons.

Type string or integer
Behavior If a parent launchd group is not specified in a command that creates a launch daemon, this value will be used. If neither is specified, the root launchd group will be used. (In all cases, the command will fail if the authorizing user does not have LAUNCHDGROUP_ADD_CHILD permission for the launchd group in question.)

The parent launchd group G can be specified as either an integer or a string.

Notes This parameter is only used in creating new launch daemons: those whose identifying property tuples are not already present in the analysis cloud register). You can change the parent launchd group for an existing launch daemon from the corresponding Launchd Group page.

The -launchd-group command line flag takes precedence over this setting.

Offline build/analysis does not use an analysis launch daemon. If both LAUNCHD_GROUP and OFFLINE=Yes are specified, the build/analysis will fail unless -launchd-group or -offline is specified on the command line, in which case the command line option will take precedence.

Specifies extra key data for CodeSonar launch daemon identification.

Type string
Behavior If a launch daemon key is not specified in a command that creates or specifies a launch daemon, this value will be used. If neither are specified, the empty string will be used.
Notes Usually, specifying a launchd key is unnecessary and CodeSonar can distinguish launch daemons by the other members of the launch daemon's identifying property tuple [Machine, System User, Hub User, Installation, Key].

However, in some circumstances, the other elements of the identifying tuple may not be sufficient to distinguish two launch daemons that should be handled separately.

  • If two machines A and B have the same name and CodeSonar installation location, a user who is running analyses on both A and B should specify distinct launch daemon keys for each so that the hub can distinguish the launch daemons.
  • If CodeSonar is being used from multiple chroot environments on the same machine, each chroot should specify a distinct launchd key to identify itself.
  • The situation is similar for tools like clearcase. If the .prj_files directory is being stored inside a view (not recommended for performance reasons), then each view should identify itself using a distinct launchd key.

The -launchd-key command line flag takes precedence over this setting.

Offline build/analysis does not use an analysis launch daemon. If both LAUNCHD_KEY and OFFLINE=Yes are specified, the build/analysis will fail unless -launchd-key or -offline is specified on the command line, in which case the command line option will take precedence.

Specifies an upper bound on the total number of parse slaves that may be attached to the parse master during the parse mode phase of the CodeSonar analysis.

Type integer
Behavior The upper bound on the number of CodeSonar parse slaves is set to the higher of this value and the value of PARSE_SLAVES (either the explicit value specified or the value computed for Auto). We refer to this value as the "parse slave upper bound".

If the current number of parse slaves matches this upper bound, any attempt to attach a new slave to the analysis will fail.

The number of possible duplicate copies of certain parse data is also governed by this upper bound. It therefore serves as a trade off between parallelism and disk space. More parallelism will cost more disk space.

For local-requesting parse masters (REQUEST_REMOTE_PARSE_SLAVES=No), the parse slave upper bound only affects manually-started parse slaves: the upper bound for automatically-started slaves is determined by PARSE_SLAVES only. This means that if there are currently N parse slaves attached to a local-requesting parse master, then:

  • If N is less than the value of PARSE_SLAVES, both automatically-started and manually-started parse slaves can be attached to the parse master.
  • If N is greater than or equal to the value of PARSE_SLAVES, but less than the parse slave upper bound, the parse master will no longer automatically start parse slaves but manually-started parse slaves can still be attached. Note that there are no N in this range if the value of PARSE_SLAVES is greater than or equal to that of MAX_PARSE_SLAVES.
  • If N is greater than or equal to the parse slave upper bound, no new parse slaves can be attached, regardless of how they were started.

For remote-requesting parse masters (REQUEST_REMOTE_PARSE_SLAVES=Yes), the parse slave upper bound affects both manually-started parse slaves and slaves started due to a remote request.

Notes If parsing is running in "nearly serial" mode (either because PARSE_SLAVES=Serial, or because PARSE_SLAVES=Auto and REQUEST_REMOTE_PARSE_SLAVES=No and CodeSonar determined a maximum number less than or equal to 1), MAX_PARSE_SLAVES has no effect.
Factory Setting
  • MAX_PARSE_SLAVES = 128

Specifies an upper bound on the total number of CodeSonar analysis slaves.

Type integer
Behavior The upper bound on the number of CodeSonar analysis slaves is set to the higher of this value and the value of ANALYSIS_SLAVES (either the explicit value specified or the value computed for Auto). We refer to this value as the "analysis slave upper bound".

If the current number of analysis slaves matches this upper bound, any attempt to attach a new slave to the analysis will fail.

For local-requesting analysis masters (REQUEST_REMOTE_ANALYSIS_SLAVES=No), the analysis slave upper bound only affects manually-started analysis slaves: the upper bound for automatically-started slaves is determined by ANALYSIS_SLAVES only. This means that if there are currently N analysis slaves attached to a local-requesting analysis master, then:

  • If N is less than the value of ANALYSIS_SLAVES, both automatically-started and manually-started analysis slaves can be attached to the analysis master.
  • If N is greater than or equal to the value of ANALYSIS_SLAVES, but less than the analysis slave upper bound, the analysis master will no longer automatically start analysis slaves but manually-started analysis slaves can still be attached. Note that there are no N in this range if the value of ANALYSIS_SLAVES is greater than or equal to that of MAX_ANALYSIS_SLAVES.
  • If N is greater than or equal to the analysis slave upper bound, no new analysis slaves can be attached, regardless of how they were started.

For remote-requesting analyses (REQUEST_REMOTE_ANALYSIS_SLAVES=Yes), the analysis slave upper bound affects both manually-started analysis slaves and slaves started due to a remote request.

Notes If the analysis is running serially (either because ANALYSIS_SLAVES=Serial, or because ANALYSIS_SLAVES=Auto and REQUEST_REMOTE_ANALYSIS_SLAVES=No and CodeSonar determined that it should run serially), MAX_ANALYSIS_SLAVES has no effect.
Factory Setting
  • MAX_ANALYSIS_SLAVES = 256

Specifies whether or not the daemon mode phase of the CodeSonar analysis will run in parallel. For local-requesting daemon masters (REQUEST_REMOTE_DAEMON_SLAVES=No), additionally specifies a bound below which the daemon master may automatically start new slaves as needed.

Type { Auto, Serial } or integer
Behavior
  • Serial with REQUEST_REMOTE_DAEMON_SLAVES=No : web requests are serviced by a single process.
  • Auto with REQUEST_REMOTE_DAEMON_SLAVES=No : CodeSonar will determine the appropriate maximum number of slaves based on the total number of logical cores (Cores) on the machine and the amount of free physical memory (Mem) using the following formula: min(Cores, max(0, floor(Mem / MEMORY_PER_ANALYSIS_PROCESS) - 1)). If the result is less than or equal to 1, web requests are serviced by a single process.
  • integer with REQUEST_REMOTE_DAEMON_SLAVES=No : if fewer than this many slaves are running to service web requests, the daemon master will automatically start/request new slaves as needed.
  • any setting (including Serial) with REQUEST_REMOTE_DAEMON_SLAVES=Yes : the daemon mode phase of the CodeSonar analysis will be parallel and distributed. The precise setting of this parameter will not be used (except as described for computing the daemon slave upper bound): the daemon master will request new slaves from the hub as it wants them, the hub in turn will request slaves from those launch daemons that have not reached their analysis cloud process limits, and the master will accept the newly-started slaves up to the limit imposed by the daemon slave upper bound.
Notes Multiple daemon slaves will only be required if multiple web requests are pending concurrently.

The optimal number of slave processes depends on available system resources; each slave process uses CPU cycles and memory.

Use DAEMON_MASTER_LISTEN_INTERFACE to specify the address on which the master process will listen.

See also:

For more information, see the manual sections on Parallelism in CodeSonar and Distributed Analysis.

Factory Setting
  • DAEMON_SLAVES = Auto

Specifies an upper bound on the total number of CodeSonar daemon slaves.

Type integer
Behavior The upper bound on the number of CodeSonar daemon slaves is set to the higher of this value and the value of DAEMON_SLAVES (either the explicit value specified or the value computed for Auto). We refer to this value as the "daemon slave upper bound".

If the current number of daemon slaves matches this upper bound, any attempt to attach a new slave to the daemon master will fail.

For local-requesting daemon masters (REQUEST_REMOTE_DAEMON_SLAVES=No), the daemon slave upper bound only affects manually-started daemon slaves: the upper bound for automatically-started slaves is determined by DAEMON_SLAVES only. This means that if there are currently N daemon slaves attached to a local-requesting daemon master, then:

  • If N is less than the value of DAEMON_SLAVES, both automatically-started and manually-started daemon slaves can be attached to the daemon master.
  • If N is greater than or equal to the value of DAEMON_SLAVES, but less than the daemon slave upper bound, the daemon master will no longer automatically start daemon slaves but manually-started daemon slaves can still be attached. Note that there are no N in this range if the value of DAEMON_SLAVES is greater than or equal to that of MAX_DAEMON_SLAVES.
  • If N is greater than or equal to the daemon slave upper bound, no new daemon slaves can be attached, regardless of how they were started.

For remote-requesting analyses (REQUEST_REMOTE_DAEMON_SLAVES=Yes), the daemon slave upper bound affects both manually-started daemon slaves and slaves started due to a remote request.

Notes If the analysis is running serially in daemon mode (either because DAEMON_SLAVES=Serial, or because DAEMON_SLAVES=Auto and REQUEST_REMOTE_DAEMON_SLAVES=No and CodeSonar determined that it should run serially), MAX_DAEMON_SLAVES has no effect.
Factory Setting
  • MAX_DAEMON_SLAVES = 256

Used to compute analysis slave and daemon slave limits when other settings specify that these computations should be made automatically.

Type integer
Behavior When set to integer N, on a system with R megabytes (MB) available memory and C logical cores, CodeSonar will set the maximum number of slaves to min(C, max(0, floor(R/N) - 1)) in cases where an automatically-computed analysis slave or daemon slave limit is required.

For analysis slaves, an automatically-computed limit is required if:

For daemon slaves, an automatically-computed limit is required if:

In all other cases, this parameter has no effect.

Notes This parameter is used for automatically computing limits on the number of analysis and daemon slaves. It does not affect the memory consumption of individual CodeSonar processes. Rather, it represents an estimate of that consumption.

As the setting of this parameter decreases, the slave limit increases in a stepped manner up to the upper bound provided by the C (number of logical cores) term in the computation formula. Note that the stepping imposed by the rounding down of the R/N term means that small adjustments in this setting may not result in a change to the computed limit.

Depending on the relationship between R and C, too low a setting - and thus too high a slave limit - may result in the system runing out of memory.

Conversely, too high a setting will result in a slave limit that is lower than necessary, which could cause the analysis to run more slowly than it would with more slaves.

Parse slaves generally require more memory than analysis slaves or daemon slaves, so a separate parameter - MEMORY_PER_PARSE_PROCESS - is used for computing parse slave limits.

Factory Setting
  • MEMORY_PER_ANALYSIS_PROCESS = 512

Used to compute parse slave limits when other settings specify that these computations should be made automatically.

Type integer
Behavior When set to integer N, on a system with R megabytes (MB) available memory and C logical cores, CodeSonar will set the maximum number of slaves to min(C, max(0, floor(R/N) - 1)) in cases where an automatically-computed parse slave limit is required.

For parse slaves, an automatically-computed limit is required if:

In all other cases, this parameter has no effect.

Notes This parameter is used for automatically computing limits on the number of parse slaves. It does not affect the memory consumption of individual CodeSonar processes. Rather, it represents an estimate of that consumption.

As the setting of this parameter decreases, the slave limit increases in a stepped manner up to the upper bound provided by the C (number of logical cores) term in the computation formula. Note that the stepping imposed by the rounding down of the R/N term means that small adjustments in this setting may not result in a change to the computed limit.

Depending on the relationship between R and C, too low a setting - and thus too high a slave limit - may result in the system runing out of memory.

Conversely, too high a setting will result in a slave limit that is lower than necessary, which could cause the analysis to run more slowly than it would with more slaves.

Factory Setting
  • MEMORY_PER_PARSE_PROCESS = 2048

Specifies how many units of work may be failed before the master should terminate the analysis.

Type integer
Behavior
  • negative N: keep going no matter how many units of work fail. UNIT_OF_WORK_RETRIES will still limit the number of times any individual unit of work is retried
  • non-negative N: Fail after N units of work fail.
Factory Setting
  • MAX_FAILED_UNITS_OF_WORK = -1

Specifies how many times the build/analysis master process (parse master, analysis master, or daemon master) should retry a failing unit of work before giving up on it and moving on.

Type integer
Behavior
  • negative N: keep retrying the unit of work forever.
  • zero: do not retry; move on after the first failure.
  • positive N: retry the unit of work N times before moving on.
Notes When CodeSonar is running in parallel, slaves may experience various modes of failure, such as network socket disconnection or the slave process being killed by the user. Some of these modes of failure are intermittent and indepent of the particular unit of work being analyzed. Therefore, retrying a failed unit of work might be fruitful. On the other hand, if the slave is crashing due to the content of a particular unit of work, then repeated attempts on that unit of work will likely result in repeating crashes.

With factory settings, CodeSonar retries a failing unit of work up to three times before giving up on that unit of work and moving on. This strikes a balance between retrying forever and giving up immediately.

For more information, see the manual sections on Parallelism in CodeSonar and the CodeSonar Plug-In API.

Factory Setting
  • UNIT_OF_WORK_RETRIES = 3

Specifies the address on which the build master process will listen while it is in build mode (to build the project).

Type String of the form <host> or <host>:<port>
Behavior
  • If <port> is specified and available, the build master will listen on <host>:<port>.
  • If <port> is specified but unavailable, the master will not run and the analysis will crash. There will be an error message in output.
  • If <port> is not specified, the master will listen on the interface specified by <host>, on a port allocated by the operating system. Inspect the output to identify the port that is being used.
Notes Examples:
     BUILD_MASTER_LISTEN_INTERFACE=0.0.0.0
     BUILD_MASTER_LISTEN_INTERFACE=0.0.0.0:1234
     BUILD_MASTER_LISTEN_INTERFACE=127.0.0.1
     BUILD_MASTER_LISTEN_INTERFACE=127.0.0.1:1234
     BUILD_MASTER_LISTEN_INTERFACE=[::]
     BUILD_MASTER_LISTEN_INTERFACE=[::]:1234
     BUILD_MASTER_LISTEN_INTERFACE=[::1]
     BUILD_MASTER_LISTEN_INTERFACE=[::1]:1234
     BUILD_MASTER_LISTEN_INTERFACE=mymachine
     BUILD_MASTER_LISTEN_INTERFACE=mymachine:1234

Specifies the address on which the parse master will listen during the parse mode phase of the CodeSonar analysis.

Type String of the form <host> or <host>:<port>
Behavior
  • If <port> is specified and available, the parse master will listen on <host>:<port>.
  • If <port> is specified but unavailable, the parse master will not run and the analysis will crash. There will be an error message in the Analysis Log.
  • If <port> is not specified, the parse master will listen on the interface specified by <host>, on a port allocated by the operating system. Inspect the analysis log to identify the port that is being used.
Notes Examples:
     PARSE_MASTER_LISTEN_INTERFACE=0.0.0.0
     PARSE_MASTER_LISTEN_INTERFACE=0.0.0.0:1234
     PARSE_MASTER_LISTEN_INTERFACE=127.0.0.1
     PARSE_MASTER_LISTEN_INTERFACE=127.0.0.1:1234
     PARSE_MASTER_LISTEN_INTERFACE=[::]
     PARSE_MASTER_LISTEN_INTERFACE=[::]:1234
     PARSE_MASTER_LISTEN_INTERFACE=[::1]
     PARSE_MASTER_LISTEN_INTERFACE=[::1]:1234
     PARSE_MASTER_LISTEN_INTERFACE=mymachine
     PARSE_MASTER_LISTEN_INTERFACE=mymachine:1234

For distributed parsing, ensure that <host> specifies an interface that other machines in the analysis cloud will be able to communicate with.

With factory settings, PARSE_MASTER_LISTEN_INTERFACE is not specified. In this case, it is determined based on the value of REQUEST_REMOTE_PARSE_SLAVES.

  • 0.0.0.0 or [::] if REQUEST_REMOTE_PARSE_SLAVES=Yes
  • 127.0.0.1 or [::1] if REQUEST_REMOTE_PARSE_SLAVES=No

Specifies whether parse master<->slave sockets should use TLS.

Type {Yes, No}
Behavior
  • Yes : TLS sockets will be used for communications between parse masters and parse slaves. This imposes some additional computational cost.
  • No : Plain TCP sockets will be used for communications between parse masters and parse slaves.
  • unspecified : TLS sockets will be used if and only if HTTPS is enabled on the hub and PARSE_MASTER_LISTEN_INTERFACE is not 127.0.0.1 ([::1] for IPv6). (Visit the hub's Configure HTTPS page to view or modify its HTTPS enabling status.)
Notes Set this to Yes if secrecy is desired.

Two way authentication takes place regardless of the PARSE_MASTER_USE_TLS setting, but is vulnerable to snooping when TLS is not used.

The master will generate a fresh 2048 bit RSA private key for each master analysis process. The corresponding certificate is provided to all slaves on startup.

The number of seconds a parse slave will wait for network operations with the parse master to time out.

Type integer
Behavior
  • 0 : There is no timeout.
  • N (for N>0) : A parse slave will exit if a network operation does not make progress for N seconds.
Notes There are several reasons why timeouts can occur.
  • The network link is not functioning.
  • The master has lost power, blue screened, panicked, etc.
  • The parse master has disconnected the slave, but the slave never became aware of it.
  • The parse master has not given the slave any new work in the last N seconds (the slave is idle for a long time).
  • The parse master process is busy and isn't responding in a timely fashion.
  • The slave has asked the parse master to do work that takes longer than the timeout.

The latter two situations are unlikely to occur with the factory setting.

Timing out slaves that have been idle for a long time allows wasted system resources to be relinquished and put to better use. New slaves will be started if more slaves are desired.

When certain types of network errors occur, this setting can be important for preventing orphaned slaves from waiting indefinitely on a master that no longer exists.

Slaves obtain this timeout setting from the parse master. However, slaves use the very connection that the timeout affects to download the timeout setting from the master. Before the timeout setting has been downloaded from the master, the effective timeout is the one in the template.conf file in the slave's installation. The startup window that uses the slave's template.conf setting is typically short.

For more information, see the manual section on Parallelism in CodeSonar.

Factory Setting
  • PARSE_SLAVE_TIMEOUT = 1800

Specifies how often the parse master will broadcast keepalive requests to all parse slaves.

Type integer
Behavior
  • 0 : Keepalive requests are disabled.
  • N (for N>0) : A keepalive will be broadcast every N seconds. If it is time to broadcast another request, but nothing has been received from a slave since the previous request, then the slave is disconnected for being non-responsive.
Notes There are several reasons why keepalives can fail.
  • The network link is not functioning.
  • The slave has lost power, blue screened, panicked, etc.
  • The slave has disconnected the master, but the master never became aware of it.
  • The slave process got busy doing something for longer than this period.

The latter two situations are unlikely to occur with the factory setting.

This setting can be important to prevent the master from starving because it is waiting on slaves that no longer exist.

For more information, see the manual section on Parallelism in CodeSonar.

Factory Setting
  • PARSE_MASTER_KEEPALIVE_PERIOD = 3000

Specifies the address on which the analysis master will listen during the analysis mode phase of the CodeSonar analysis.

Type String of the form <host> or <host>:<port>
Behavior
  • If <port> is specified and available, the analysis master will listen on <host>:<port>.
  • If <port> is specified but unavailable, the master will not run and the analysis will crash. There will be an error message in the Analysis Log.
  • If <port> is not specified, the analysis master will listen on the interface specified by <host>, on a port allocated by the operating system. Inspect the analysis log to identify the port that is being used.
Notes Examples:
     ANALYSIS_MASTER_LISTEN_INTERFACE=0.0.0.0
     ANALYSIS_MASTER_LISTEN_INTERFACE=0.0.0.0:1234
     ANALYSIS_MASTER_LISTEN_INTERFACE=127.0.0.1
     ANALYSIS_MASTER_LISTEN_INTERFACE=127.0.0.1:1234
     ANALYSIS_MASTER_LISTEN_INTERFACE=[::]
     ANALYSIS_MASTER_LISTEN_INTERFACE=[::]:1234
     ANALYSIS_MASTER_LISTEN_INTERFACE=[::1]
     ANALYSIS_MASTER_LISTEN_INTERFACE=[::1]:1234
     ANALYSIS_MASTER_LISTEN_INTERFACE=mymachine
     ANALYSIS_MASTER_LISTEN_INTERFACE=mymachine:1234

For distributed analysis, ensure that <host> specifies an interface that other machines in the analysis cloud will be able to communicate with.

With factory settings, ANALYSIS_MASTER_LISTEN_INTERFACE is not specified. In this case, it is determined based on the value of REQUEST_REMOTE_ANALYSIS_SLAVES.

  • 0.0.0.0 or [::] if REQUEST_REMOTE_ANALYSIS_SLAVES=Yes
  • 127.0.0.1 or [::1] if REQUEST_REMOTE_ANALYSIS_SLAVES=No

Specifies whether analysis master<->slave sockets should use TLS.

Type {Yes, No}
Behavior
  • Yes : TLS sockets will be used for communications between analysis masters and analysis slaves. This imposes some additional computational cost.
  • No : Plain TCP sockets will be used for communications between analysis masters and slaves.
  • unspecified : TLS sockets will be used if and only if HTTPS is enabled on the hub and ANALYSIS_MASTER_LISTEN_INTERFACE is not 127.0.0.1 ([::1] for IPv6). (Visit the hub's Configure HTTPS page to view or modify its HTTPS enabling status.)
Notes Set this to Yes if secrecy is desired.

Two way authentication takes place regardless of the ANALYSIS_MASTER_USE_TLS setting, but is vulnerable to snooping when TLS is not used.

The master will generate a fresh 2048 bit RSA private key for each master analysis process. The corresponding certificate is provided to all slaves on startup.

The number of seconds an analysis slave will wait for network operations with the analysis master to time out.

Type integer
Behavior
  • 0 : There is no timeout.
  • N (for N>0) : An analysis slave will exit if a network operation does not make progress for N seconds.
Notes There are several reasons why timeouts can occur.
  • The network link is not functioning.
  • The master has lost power, blue screened, panicked, etc.
  • The master has disconnected the slave, but the slave never became aware of it.
  • The master has not given the slave any new work in the last N seconds (the slave is idle for a long time).
  • The master process is busy and isn't responding in a timely fashion.
  • The slave has asked the master to do work that takes longer than the timeout.

The latter two situations are unlikely to occur with the factory setting.

Timing out slaves that have been idle for a long time allows wasted system resources to be relinquished and put to better use. New slaves will be started if more slaves are desired.

When certain types of network errors occur, this setting can be important for preventing orphaned slaves from waiting indefinitely on a master that no longer exists.

Slaves obtain this timeout setting from the analysis master. However, slaves use the very connection that the timeout affects to download the timeout setting from the master. Before the timeout setting has been downloaded from the master, the effective timeout is the one in the template.conf file in the slave's installation. The startup window that uses the slave's template.conf setting is typically short.

For more information, see the manual section on Parallelism in CodeSonar.

Factory Setting
  • ANALYSIS_SLAVE_TIMEOUT = 1800

Specifies how often the analysis master will broadcast keepalive requests to all analysis slaves.

Type integer
Behavior
  • 0 : Keepalive requests are disabled.
  • N (for N>0) : A keepalive will be broadcast every N seconds. If it is time to broadcast another request, but nothing has been received from a slave since the previous request, then the slave is disconnected for being non-responsive.
Notes There are several reasons why keepalives can fail.
  • The network link is not functioning.
  • The slave has lost power, blue screened, panicked, etc.
  • The slave has disconnected the master, but the master never became aware of it.
  • The slave process got busy doing something for longer than this period.

The latter two situations are unlikely to occur with the factory setting.

This setting can be important to prevent the master from starving because it is waiting on slaves that no longer exist.

For more information, see the manual section on Parallelism in CodeSonar.

Factory Setting
  • ANALYSIS_MASTER_KEEPALIVE_PERIOD = 3000

Specifies the address on which the daemon master will listen during the daemon mode phase of the CodeSonar analysis.

Type String of the form <host> or <host>:<port>
Behavior
  • If <port> is specified and available, the daemon master will listen on <host>:<port>.
  • If <port> is specified but unavailable, the daemon master will not run: the daemon will not start and requests will not be serviced. There will be an error message in the Analysis Log.
  • If <port> is not specified, the daemon master will listen on the interface specified by <host>, on a port allocated by the operating system. Inspect the analysis log to identify the port that is being used.
Notes Examples:
     DAEMON_MASTER_LISTEN_INTERFACE=0.0.0.0
     DAEMON_MASTER_LISTEN_INTERFACE=0.0.0.0:1234
     DAEMON_MASTER_LISTEN_INTERFACE=127.0.0.1
     DAEMON_MASTER_LISTEN_INTERFACE=127.0.0.1:1234
     DAEMON_MASTER_LISTEN_INTERFACE=[::]
     DAEMON_MASTER_LISTEN_INTERFACE=[::]:1234
     DAEMON_MASTER_LISTEN_INTERFACE=[::1]
     DAEMON_MASTER_LISTEN_INTERFACE=[::1]:1234
     DAEMON_MASTER_LISTEN_INTERFACE=mymachine
     DAEMON_MASTER_LISTEN_INTERFACE=mymachine:1234

For distributed analysis, ensure that <host> specifies an interface that other machines in the analysis cloud will be able to communicate with.

With factory settings, DAEMON_MASTER_LISTEN_INTERFACE is not specified. In this case, it is determined based on the value of REQUEST_REMOTE_DAEMON_SLAVES.

  • 0.0.0.0 or [::] if REQUEST_REMOTE_DAEMON_SLAVES=Yes
  • 127.0.0.1 or [::] if REQUEST_REMOTE_DAEMON_SLAVES=No

Specifies whether daemon master<->slave sockets should use TLS.

Type {Yes, No}
Behavior
  • Yes : TLS sockets will be used for communications between daemon masters and daemon slaves. This imposes some additional computational cost.
  • No : Plain TCP sockets will be used for communications between daemon masters and daemon slaves.
  • unspecified : TLS sockets will be used if and only if HTTPS is enabled on the hub and DAEMON_MASTER_LISTEN_INTERFACE is not 127.0.0.1 ([::1] for IPv6). (Visit the hub's Configure HTTPS page to view or modify its HTTPS enabling status.)
Notes Set this to Yes if secrecy is desired.

Two way authentication takes place regardless of the DAEMON_MASTER_USE_TLS setting, but is vulnerable to snooping when TLS is not used.

The master will generate a fresh 2048 bit RSA private key for each master analysis process. The corresponding certificate is provided to all slaves on startup.

The number of seconds a daemon slave will wait for network operations with the daemon master to time out.

Type integer
Behavior
  • 0 : There is no timeout.
  • N (for N>0) : A slave will exit if a network operation does not make progress for N seconds.
Notes There are several reasons why timeouts can occur.
  • The network link is not functioning.
  • The master has lost power, blue screened, panicked, etc.
  • The master has disconnected the slave, but the slave never became aware of it.
  • The master has not given the slave any new work in the last N seconds (the slave is idle for a long time).
  • The master process is busy and isn't responding in a timely fashion.
  • The slave has asked the master to do work that takes longer than the timeout.

The latter two situations are unlikely to occur with the factory setting.

Timing out slaves that have been idle for a long time allows wasted system resources to be relinquished and put to better use. New slaves will be started if more slaves are desired.

When certain types of network errors occur, this setting can be important for preventing orphaned slaves from waiting indefinitely on a master that no longer exists.

Slaves obtain this timeout setting from the daemon master. However, slaves use the very connection that the timeout affects to download the timeout setting from the master. Before the timeout setting has been downloaded from the master, the effective timeout is the one in the template.conf file in the slave's installation. The startup window that uses the slave's template.conf setting is typically short.

For more information, see the manual section on Parallelism in CodeSonar.

Factory Setting
  • DAEMON_SLAVE_TIMEOUT = 1800

Specifies how often the daemon master will broadcast keepalive requests to all daemon slaves.

Type integer
Behavior
  • 0 : Keepalive requests are disabled.
  • N (for N>0) : A keepalive will be broadcast every N seconds. If it is time to broadcast another request, but nothing has been received from a slave since the previous request, then the slave is disconnected for being non-responsive.
Notes There are several reasons why keepalives can fail.
  • The network link is not functioning.
  • The slave has lost power, blue screened, panicked, etc.
  • The slave has disconnected the master, but the master never became aware of it.
  • The slave process got busy doing something for longer than this period.

The latter two situations are unlikely to occur with the factory setting.

This setting can be important to prevent the master from starving because it is waiting on slaves that no longer exist.

For more information, see the manual section on Parallelism in CodeSonar.

Factory Setting
  • DAEMON_MASTER_KEEPALIVE_PERIOD = 3000

Allows warnings to be modified before they are submitted to the hub, or discarded entirely without being submitted.

Type Zero or more patterns, each consisting of an <action> followed by one or more <rule>s.

<action> is one of:

  • discard
  • allow
  • priority:=<priority>
  • owner:=<owner>

<rule> is one of:

  • categories <matcher> <string>
  • class <matcher> <string>
  • compilation_unit <matcher> <string>
  • file <matcher> <string>
  • is_sysinclude
  • language <matcher> <string>
  • line= <int>
  • line_contents <matcher> <string>
  • listing_xml <matcher> <string>
  • path_start_procedure <matcher> <string>
  • path <matcher> <string>
  • procedure <matcher> <string>
  • procedure_typed <matcher> <string>
  • reachable= <int>
  • starts_in_source_libraries= <int>
  • effective_parse_error <matcher> <string>
  • parse_severity <matcher> <string>

and <matcher> is one of:

Behavior Depends on the <action> and the <rule>s.

<action> is interpreted as follows.

  • discard : warnings matching the rules will be discarded instead of being submitted to the hub.
  • allow : warnings matching the rules will be submitted to the hub, even if they matched a previous "discard"
  • priority:=<priority> : warnings matching the rules will have their Priority set to <priority> before being submitted to the hub. If <priority> is not a legal priority value on the hub, the hub will be updated to add <priority> to the list of priority values.
  • owner:=<owner> : warnings matching the rules will have their Owner set to <owner> before being submitted to the hub. If <owner> is not an active user on the hub, the pattern has no effect.

Each <rule> specifies a condition that a warning must satisfy in order to match the rule. The different <rule> types represent constraints on various warning properties.

  • categories : Warning Class . Categories
  • class : Warning Class
  • compilation_unit : Compilation Unit - the full path name of the top level source file containing the warning point. Use system-appropriate path separators; escape special characters (including backslashes) if enclosing the path in quotes "".
  • file : the basename of Warning File
  • is_sysinclude matches warnings for which Listing XML lies entirely within system include files (as designated by SYSTEM_INCLUDE_PATHS), with no user code involved.
  • language : Warning File . Language
  • line : Line Number
  • line_contents : the contents of the source line on which the warning was issued (that is, the Line'th line of Warning File)
  • listing_xml : Listing XML
  • path : the full path name of Warning File. Use system-appropriate path separators; escape special characters (including backslashes) if enclosing the path in quotes "".
  • path_start_procedure : the first procedure in Listing
  • procedure : Procedure friendly name [C++: procedure::name() | Python: procedure.name() | C: cs_pdg_friendly_name()] .
  • procedure_typed : Procedure verbose name [C++: procedure::verbose_name() | Python: procedure.verbose_name() | C: cs_pdg_procedure_name()] . This depends on the warning Language. If C++, rules specify constraints on the fully typed rendering of the warning Procedure (including template instantiations, name qualification, and argument types; the rendering is also whitespace-sensitive). If C, specifies a constraint on the warning Procedure (so has the same behavior as a procedure rule).
  • reachable : whether or not the first function in Listing XML belongs to set REACHABLE_FROM_ROOTS_EXTENDED. Set to non-zero to specify that the rule applies only to warnings for which the first function is in this set; zero to specify that the rule only applies to warnings for which the first function is NOT in this set. CodeSonar will issue an alert if there are one or more WARNING_FILTER reachable rules but set REACHABLE_FROM_ROOTS is empty.
  • starts_in_source_libraries : whether or not the first function in Listing XML belongs to set CONSERVATIVELY_REACHABLE_FROM_SOURCE_LIBRARIES. Set to non-zero to specify that the rule applies only to warnings for which the first function is in this set; zero to specify that it applies only to warnings for which the first function is not in this set.
  • effective_parse_error : Effective Parse Error? (true if the warning corresponds to a parser error; false if the warning corresponds to a parser warning or does not belong to a C/C++ parser warning class)
  • parse_severity : Parse Diagnostic Severity (a value from remark, warning, cmdline_warning, discretionary_error, error, catastrophe, cmdline_error, internal_error} if the warning belongs to a C/C++ parser warning class; undefined otherwise)
Notes WARNING_FILTER rules are applied to all warnings submitted by the CodeSonar analysis, including those that originate from imported SARIF files.

If there are two or more <rule>s in a pattern, the pattern <action> will be applied to warnings that match ALL of the rules.

If WARNING_FILTER settings specify that all warnings of a specific class should be discarded (with no exceptions from subsequent "allow" patterns), CodeSonar will not even carry out checks for that class. This will generally lead to time savings.

Most configuration presets are composed primarily of WARNING_FILTER "allow" rules, plus the supporting configuration settings required by the allowed warning classes.

String guidelines:

  • Strings that contains spaces must be quoted.
  • Characters in quoted strings that must be backslash-escaped: " and \
  • Newlines and tabs are represented as \n and \t, respectively.

Example 1: Discard all warnings belonging to any class with a LANG.MEM.* mnemonic.

  WARNING_FILTER += discard categories:LANG.MEM

Example 2: Discard all warnings whose class is Buffer Underrun, Type Underrun, or any user-defined class with "underrun" in its name.

  WARNING_FILTER += discard class:underrun

Example 3: Discard all warnings in any compilation unit whose top level file has basename mylib.cpp

  WARNING_FILTER += discard compilation_unit:/mylib.cpp

Example 4: Assign all warnings in file mylib.h to alex. If the hub has no user called alex, this rule has no effect.

  WARNING_FILTER += owner:=alex file=mylib.h

Example 5: Assign all warnings in system include files to sandy. If the hub has no user called sandy, this rule has no effect.

  WARNING_FILTER += owner:=sandy is_sysinclude

Example 6: Discard all warnings in C compilation units.

  WARNING_FILTER += discard language=c

Example 7: Discard all warnings issued at line 47 (of any file).

  WARNING_FILTER += discard line=47

Example 8: Discard all warnings whose associated Listing XML contains substring 'callPrinter'.

  WARNING_FILTER += discard listing_xml:callPrinter

Example 9: For all warnings issued in procedure writeThis(), set Priority to "Incredible". For all warnings issued in any other procedure whose name contains substring 'write', set priority to "P0: High"

  • procedure writeThis() will match both rules, so the rule order is important.
  • if "Incredible" was not already a candidate Priority value on the hub, it will be added to the list of candidates once a warning with "Incredible" Priority is submitted.
  WARNING_FILTER += priority:="P0: High" procedure:write
  WARNING_FILTER += priority:="Incredible" procedure=writeThis

Example 10: In C compilation units, discard all warnings issued in a procedure whose name contains substring 'gridproc'. In C++ compilation units, discard all warnings issued in a procedure such that the fully-qualified procedure name contains substring 'gridproc', or one of the argument type names contains substring gridproc.

  WARNING_FILTER += discard procedure_typed:gridproc

Example 11: In C++ compilation units, discard all warnings issued in a procedure with exactly one, unsigned int, argument. Procedures with more complex types may also have "(unsigned int)" as a substring of their fully-typed name (for example, because of templating): warnings issued in those procedures will also be discarded. In C compilation units, this rule will not match anything.

  WARNING_FILTER += discard procedure_typed:"(unsigned int)"

Example 12: In C++ compilation units, discard all warnings issued inside the procedures with the specified (fully-qualified) names. If you are specifying a complicated procedure_typed argument (like these ones), it can be useful to check the exact rendering of the procedure name with cs_pdg_procedure_name() before creating the WARNING_FILTER rule.

  WARNING_FILTER += discard procedure_typed:"std::vector<int, std::allocator<int>>::operator [](unsigned long)"
  WARNING_FILTER += discard procedure_typed:"only_param::return_S(int *)"

Example 13: Discard all warnings in procedures that are not reachable from main() (this REACHABILITY_ROOTS rule matches any function called main occurring in any file in the project).

  REACHABILITY_ROOTS = :main
  WARNING_FILTER += discard reachable=0

Example 14: Discard all warnings whose Listing begins with a procedure whose name is "ignoreme" followed by one or more digits (eg ignoreme1(), ignoreme275(), ...).

  WARNING_FILTER += discard path_start_procedure=~ignoreme\d+

Example 15: Discard all warnings in files whose path includes directory ignoredir. Using two rules with different path separators provides (some) portability.

  WARNING_FILTER += discard path:/ignoredir/
  WARNING_FILTER += discard path:\ignoredir\ 

Example 16: Discard all warnings in files whose path includes directory "ignore dir" (note the space). Using two rules with different path separators provides (some) portability. Patterns containing spaces must be quoted, and backslashes must be escaped in quoted strings.

  WARNING_FILTER += discard path:"/ignore dir/"
  WARNING_FILTER += discard path:"\\ignore dir\\"

Example 17: Discard all warnings occurring on a source line that contains the text "do not issue a warning here" (presumably in a comment).

  WARNING_FILTER += discard line_contents:"do not issue a warning here"

Example 18: Discard all warnings for which the first function in Listing XML is a library model or is called (directly or transitively) by a library model.

  WARNING_FILTER += discard starts_in_source_libraries=1

Example 19: Discard all warnings whose file path does not contain a directory called src.

  WARNING_FILTER += discard path!:"/src/"
  WARNING_FILTER += discard path!:"\\src\\"

Example 20: Discard all warnings considered parser remarks.

  WARNING_FILTER += discard parse_severity=remark

The following checks are enabled by default. To discard warnings of a particular class, use the corresponding "discard" rule.

 (C and C++ warning classes) 
    WARNING_FILTER += discard class="#assert Directive" 
    WARNING_FILTER += discard class="#else Already Appeared" 
    WARNING_FILTER += discard class="#error Directive" 
    WARNING_FILTER += discard class="#include Recursion" 
    WARNING_FILTER += discard class="#include_next in Primary Source File" 
    WARNING_FILTER += discard class="#info Directive" 
    WARNING_FILTER += discard class="#pragma GCC system_header in Primary File" 
    WARNING_FILTER += discard class="#pragma Inside Function" 
    WARNING_FILTER += discard class="#pragma May Not Be Used Here" 
    WARNING_FILTER += discard class="#pragma Must Precede Declaration or Statement" 
    WARNING_FILTER += discard class="#pragma Must Precede Declaration" 
    WARNING_FILTER += discard class="#pragma Must Precede Statement" 
    WARNING_FILTER += discard class="#pragma pack(show) Arguments Ignored" 
    WARNING_FILTER += discard class="--anachronisms Requires C++" 
    WARNING_FILTER += discard class="--arg_dep_lookup Requires C++" 
    WARNING_FILTER += discard class="--array_new_and_delete Requires C++" 
    WARNING_FILTER += discard class="--auto_instantiation Requires C++" 
    WARNING_FILTER += discard class="--auto_storage Requires C++" 
    WARNING_FILTER += discard class="--auto_type Requires C++" 
    WARNING_FILTER += discard class="--bool Requires C++" 
    WARNING_FILTER += discard class="--c23_typeof Requires C" 
    WARNING_FILTER += discard class="--class_name_injection Requires C++" 
    WARNING_FILTER += discard class="--compound_literals Requires C" 
    WARNING_FILTER += discard class="--cs_iar Deprecated" 
    WARNING_FILTER += discard class="--cs_iar Unrecognized" 
    WARNING_FILTER += discard class="--dep_name Requires C++" 
    WARNING_FILTER += discard class="--embedded_c Incompatible With Individual Feature Options" 
    WARNING_FILTER += discard class="--embedded_c Requires C" 
    WARNING_FILTER += discard class="--embedded_c++ Requires C++" 
    WARNING_FILTER += discard class="--enum_overloading Requires C++" 
    WARNING_FILTER += discard class="--exceptions Requires C++" 
    WARNING_FILTER += discard class="--explicit Requires C++" 
    WARNING_FILTER += discard class="--export Incompatible With --no_dep_name" 
    WARNING_FILTER += discard class="--export Incompatible With Modules" 
    WARNING_FILTER += discard class="--export Requires C++" 
    WARNING_FILTER += discard class="--extended_designators Requires C" 
    WARNING_FILTER += discard class="--extern_inline Requires C++" 
    WARNING_FILTER += discard class="--fixed_point Requires C" 
    WARNING_FILTER += discard class="--for_init_diff_warning Requires C++" 
    WARNING_FILTER += discard class="--friend_injection Requires C++" 
    WARNING_FILTER += discard class="--func_prototype_tags Requires C" 
    WARNING_FILTER += discard class="--gen_move_operations Incompatible With --rvalue_ctor_is_copy_ctor" 
    WARNING_FILTER += discard class="--gen_move_operations Requires C++" 
    WARNING_FILTER += discard class="--guiding_decls Requires C++" 
    WARNING_FILTER += discard class="--ignore_std Requires C++" 
    WARNING_FILTER += discard class="--implicit_include Requires C++" 
    WARNING_FILTER += discard class="--implicit_typename Requires C++" 
    WARNING_FILTER += discard class="--lambdas Requires C++" 
    WARNING_FILTER += discard class="--late_tiebreaker Requires C++" 
    WARNING_FILTER += discard class="--named_address_spaces Requires C" 
    WARNING_FILTER += discard class="--named_registers Requires C" 
    WARNING_FILTER += discard class="--namespaces Requires C++" 
    WARNING_FILTER += discard class="--nonstd_qualifier_deduction Requires C++" 
    WARNING_FILTER += discard class="--nonstd_using_decl Requires C++" 
    WARNING_FILTER += discard class="--old_for_init Requires C++" 
    WARNING_FILTER += discard class="--old_specializations Requires C++" 
    WARNING_FILTER += discard class="--one_instantiation_per_object Requires C++" 
    WARNING_FILTER += discard class="--parse_templates Requires C++" 
    WARNING_FILTER += discard class="--pending_instantiations Requires C++" 
    WARNING_FILTER += discard class="--rtti Requires C++" 
    WARNING_FILTER += discard class="--rvalue_ctor_is_copy_ctor Requires C++" 
    WARNING_FILTER += discard class="--special_subscript_cost Requires C++" 
    WARNING_FILTER += discard class="--svr4 Requires ANSI C" 
    WARNING_FILTER += discard class="--type_traits_helpers Requires C++" 
    WARNING_FILTER += discard class="--typename Requires C++" 
    WARNING_FILTER += discard class="--unrestricted_unions Requires C++" 
    WARNING_FILTER += discard class="--vla Requires C" 
    WARNING_FILTER += discard class=".ii File Name Incompatible With Multiple Inputs" 
    WARNING_FILTER += discard class="3rd Argument of __builtin_assumed_aligned Must Be Integral" 
    WARNING_FILTER += discard class="Absolute File Name in __has_include_next" 
    WARNING_FILTER += discard class="Abstract Class Object Not Allowed" 
    WARNING_FILTER += discard class="Abstract Class Parameter Type" 
    WARNING_FILTER += discard class="Abstract Class catch Type" 
    WARNING_FILTER += discard class="Abstract Declarator Pack Is Nested" 
    WARNING_FILTER += discard class="Access Already Specified" 
    WARNING_FILTER += discard class="Access Prevents Destructor Generation" 
    WARNING_FILTER += discard class="Access Suppresses Copy Assignment Declaration" 
    WARNING_FILTER += discard class="Access Suppresses Copy Constructor Declaration" 
    WARNING_FILTER += discard class="Address of Array" 
    WARNING_FILTER += discard class="Address of Bit Field" 
    WARNING_FILTER += discard class="Address of Constructor or Destructor" 
    WARNING_FILTER += discard class="Address of Function With pass_object_size Attribute" 
    WARNING_FILTER += discard class="Address of Managed Member Function" 
    WARNING_FILTER += discard class="Address of Nontrue enable_if Function" 
    WARNING_FILTER += discard class="Address of Reference Class" 
    WARNING_FILTER += discard class="Address of Unqualified Explicit this Function" 
    WARNING_FILTER += discard class="Address of consteval Function Leaked" 
    WARNING_FILTER += discard class="Address of consteval Function" 
    WARNING_FILTER += discard class="Address of initonly Field" 
    WARNING_FILTER += discard class="Address of register Variable" 
    WARNING_FILTER += discard class="Alias Cannot Have Definition" 
    WARNING_FILTER += discard class="Alias Declaration Requires C++11" 
    WARNING_FILTER += discard class="Alias Loop" 
    WARNING_FILTER += discard class="Alias Template Deduction Guide" 
    WARNING_FILTER += discard class="Alias Template Requires C++11" 
    WARNING_FILTER += discard class="Alias Used in Type" 
    WARNING_FILTER += discard class="Aliased Name Bad Kind" 
    WARNING_FILTER += discard class="Aliased Name Undeclared" 
    WARNING_FILTER += discard class="Aliased Variable Cannot Have register Storage Class" 
    WARNING_FILTER += discard class="Align Not Equivalent" 
    WARNING_FILTER += discard class="Alignment Reduction Ignored" 
    WARNING_FILTER += discard class="Alignment Reduction Unconditionally Ignored" 
    WARNING_FILTER += discard class="All Arguments Must Have Same Type" 
    WARNING_FILTER += discard class="All Prototyped Parameters Must Be Named" 
    WARNING_FILTER += discard class="Allocation Operator in namespace" 
    WARNING_FILTER += discard class="Already Defined" 
    WARNING_FILTER += discard class="Already Initialized" 
    WARNING_FILTER += discard class="Already in consteval Context" 
    WARNING_FILTER += discard class="Ambiguous Assignment Operator" 
    WARNING_FILTER += discard class="Ambiguous Base Class" 
    WARNING_FILTER += discard class="Ambiguous Block Size Specification" 
    WARNING_FILTER += discard class="Ambiguous C11 Generic Previous Match" 
    WARNING_FILTER += discard class="Ambiguous C11 Generic" 
    WARNING_FILTER += discard class="Ambiguous Cast Selects Direct Base" 
    WARNING_FILTER += discard class="Ambiguous Class Call" 
    WARNING_FILTER += discard class="Ambiguous Constructor for Conversion" 
    WARNING_FILTER += discard class="Ambiguous Constructor" 
    WARNING_FILTER += discard class="Ambiguous Conversion Function" 
    WARNING_FILTER += discard class="Ambiguous Conversion to Builtin" 
    WARNING_FILTER += discard class="Ambiguous Copy Constructor" 
    WARNING_FILTER += discard class="Ambiguous Default Constructor" 
    WARNING_FILTER += discard class="Ambiguous Derived Class" 
    WARNING_FILTER += discard class="Ambiguous Destructor Constraints" 
    WARNING_FILTER += discard class="Ambiguous Destructor" 
    WARNING_FILTER += discard class="Ambiguous Finalizer" 
    WARNING_FILTER += discard class="Ambiguous Function for Delegate" 
    WARNING_FILTER += discard class="Ambiguous Guiding Declaration" 
    WARNING_FILTER += discard class="Ambiguous Injected Template Name" 
    WARNING_FILTER += discard class="Ambiguous Literal Operator" 
    WARNING_FILTER += discard class="Ambiguous Microsoft Attribute" 
    WARNING_FILTER += discard class="Ambiguous Name" 
    WARNING_FILTER += discard class="Ambiguous Operator Function" 
    WARNING_FILTER += discard class="Ambiguous Option" 
    WARNING_FILTER += discard class="Ambiguous Overloaded Function" 
    WARNING_FILTER += discard class="Ambiguous Partial Specialization" 
    WARNING_FILTER += discard class="Ambiguous Pointer to Overloaded Function" 
    WARNING_FILTER += discard class="Ambiguous Question Operator" 
    WARNING_FILTER += discard class="Ambiguous Suppresses Copy Assignment Declaration" 
    WARNING_FILTER += discard class="Ambiguous Suppresses Copy Constructor Declaration" 
    WARNING_FILTER += discard class="Ambiguous User Defined Conversion" 
    WARNING_FILTER += discard class="Ambiguous Virtual Function Override" 
    WARNING_FILTER += discard class="Annotation After using" 
    WARNING_FILTER += discard class="Annotation Must Have Literal Type" 
    WARNING_FILTER += discard class="Anonymous union Alias Member Template" 
    WARNING_FILTER += discard class="Anonymous union Class Member Template" 
    WARNING_FILTER += discard class="Anonymous union Member Access" 
    WARNING_FILTER += discard class="Anonymous union Member Function" 
    WARNING_FILTER += discard class="Anonymous union Qualifier Ignored" 
    WARNING_FILTER += discard class="Anonymous union Reference in Lambda" 
    WARNING_FILTER += discard class="Anonymous union Storage Class" 
    WARNING_FILTER += discard class="Anonymous union at Declaration Position" 
    WARNING_FILTER += discard class="Anonymous union using Declaration" 
    WARNING_FILTER += discard class="Apparent Module Preprocessor Directive" 
    WARNING_FILTER += discard class="Arctangent Domain Error" 
    WARNING_FILTER += discard class="Argument Too High" 
    WARNING_FILTER += discard class="Argument Too Low" 
    WARNING_FILTER += discard class="Argument for Empty Parameter Pack" 
    WARNING_FILTER += discard class="Arguments Provided for Attribute" 
    WARNING_FILTER += discard class="Array Condition Always True" 
    WARNING_FILTER += discard class="Array Member Initialization" 
    WARNING_FILTER += discard class="Array Size Must Be Positive" 
    WARNING_FILTER += discard class="Array Size One Assumed" 
    WARNING_FILTER += discard class="Array Size Too Large" 
    WARNING_FILTER += discard class="Array Subobject Not Initialized" 
    WARNING_FILTER += discard class="Array Type Not Allowed" 
    WARNING_FILTER += discard class="Array of Abstract Class" 
    WARNING_FILTER += discard class="Array of Function" 
    WARNING_FILTER += discard class="Array of Generic Parameter" 
    WARNING_FILTER += discard class="Array of Handle" 
    WARNING_FILTER += discard class="Array of Incomplete Type" 
    WARNING_FILTER += discard class="Array of Managed Class" 
    WARNING_FILTER += discard class="Array of Reference" 
    WARNING_FILTER += discard class="Array of void" 
    WARNING_FILTER += discard class="Assign Where Compare Meant" 
    WARNING_FILTER += discard class="Assigned goto Requires void Pointer" 
    WARNING_FILTER += discard class="Assignment in Value Class Type" 
    WARNING_FILTER += discard class="Assignment to this" 
    WARNING_FILTER += discard class="Assumption Failed" 
    WARNING_FILTER += discard class="Atomic Constraint Evaluation Failed" 
    WARNING_FILTER += discard class="Atomic Constraint False" 
    WARNING_FILTER += discard class="Atomic Constraint Substitution Failed" 
    WARNING_FILTER += discard class="Attempt to Read Past End of Object" 
    WARNING_FILTER += discard class="Attribute After Parenthesized Initializer" 
    WARNING_FILTER += discard class="Attribute Argument Out of Small Integer Range" 
    WARNING_FILTER += discard class="Attribute Conflict" 
    WARNING_FILTER += discard class="Attribute Declared Here" 
    WARNING_FILTER += discard class="Attribute Disallows Automatic Storage" 
    WARNING_FILTER += discard class="Attribute Disallows Bit Field" 
    WARNING_FILTER += discard class="Attribute Disallows Definition" 
    WARNING_FILTER += discard class="Attribute Disallows External Linkage" 
    WARNING_FILTER += discard class="Attribute Disallows Function Type" 
    WARNING_FILTER += discard class="Attribute Disallows Handler Parameter" 
    WARNING_FILTER += discard class="Attribute Disallows Member Function" 
    WARNING_FILTER += discard class="Attribute Disallows Pure Virtual Function" 
    WARNING_FILTER += discard class="Attribute Disallows Virtual Function" 
    WARNING_FILTER += discard class="Attribute Disallows inline" 
    WARNING_FILTER += discard class="Attribute Disallows register Storage" 
    WARNING_FILTER += discard class="Attribute Does Not Apply to Local Variable" 
    WARNING_FILTER += discard class="Attribute Does Not Apply to Type" 
    WARNING_FILTER += discard class="Attribute Ignored for Thread-local" 
    WARNING_FILTER += discard class="Attribute Ignored on Incomplete Class Declaration" 
    WARNING_FILTER += discard class="Attribute Ignored on Non-static Member Function" 
    WARNING_FILTER += discard class="Attribute Ignored on Nondefinition" 
    WARNING_FILTER += discard class="Attribute Ignored on Unnamed Type" 
    WARNING_FILTER += discard class="Attribute Is GNU Extension" 
    WARNING_FILTER += discard class="Attribute Must Also Appear in First Declaration" 
    WARNING_FILTER += discard class="Attribute Must Appear in Class Definition" 
    WARNING_FILTER += discard class="Attribute Not Allowed" 
    WARNING_FILTER += discard class="Attribute Not Applied to Function Type" 
    WARNING_FILTER += discard class="Attribute Not Supported in x86_64" 
    WARNING_FILTER += discard class="Attribute Requires Automatic Storage" 
    WARNING_FILTER += discard class="Attribute Requires Bit Field" 
    WARNING_FILTER += discard class="Attribute Requires Definition" 
    WARNING_FILTER += discard class="Attribute Requires External Linkage" 
    WARNING_FILTER += discard class="Attribute Requires Function Type" 
    WARNING_FILTER += discard class="Attribute Requires Handler Parameter" 
    WARNING_FILTER += discard class="Attribute Requires Local Variable" 
    WARNING_FILTER += discard class="Attribute Requires Member Function" 
    WARNING_FILTER += discard class="Attribute Requires Pure Virtual Function" 
    WARNING_FILTER += discard class="Attribute Requires Virtual Function" 
    WARNING_FILTER += discard class="Attribute Requires inline" 
    WARNING_FILTER += discard class="Attribute Requires register Storage" 
    WARNING_FILTER += discard class="Attribute Twice in Group" 
    WARNING_FILTER += discard class="Attribute cleanup Requires Automatic Storage" 
    WARNING_FILTER += discard class="Attribute cleanup for Parameter" 
    WARNING_FILTER += discard class="Attribute on Explicit Instantiation" 
    WARNING_FILTER += discard class="Attributes Ignored" 
    WARNING_FILTER += discard class="Attributes With No Declaration" 
    WARNING_FILTER += discard class="Attributes in Routine Definition" 
    WARNING_FILTER += discard class="Back End Requires IL File" 
    WARNING_FILTER += discard class="Bad #pragma Comment String" 
    WARNING_FILTER += discard class="Bad Address of Ellipsis" 
    WARNING_FILTER += discard class="Bad Affinity" 
    WARNING_FILTER += discard class="Bad Alias Template Redeclaration" 
    WARNING_FILTER += discard class="Bad Argument Type for operator new" 
    WARNING_FILTER += discard class="Bad Argument for __bases" 
    WARNING_FILTER += discard class="Bad Argument for __underlying_type" 
    WARNING_FILTER += discard class="Bad Argument to __make_signed" 
    WARNING_FILTER += discard class="Bad Argument to __make_unsigned" 
    WARNING_FILTER += discard class="Bad Array Element Type" 
    WARNING_FILTER += discard class="Bad Array Member Initialization" 
    WARNING_FILTER += discard class="Bad Assembly Index" 
    WARNING_FILTER += discard class="Bad Attribute Alignment" 
    WARNING_FILTER += discard class="Bad Attribute Template Substitution" 
    WARNING_FILTER += discard class="Bad Base Class" 
    WARNING_FILTER += discard class="Bad Binary Digit" 
    WARNING_FILTER += discard class="Bad Bit Field Size" 
    WARNING_FILTER += discard class="Bad Bit Field Type" 
    WARNING_FILTER += discard class="Bad C++/CX Event add Return" 
    WARNING_FILTER += discard class="Bad C++/CX Event remove Parameter" 
    WARNING_FILTER += discard class="Bad C++/CX Event remove Return" 
    WARNING_FILTER += discard class="Bad C++/CX dynamic_cast Type" 
    WARNING_FILTER += discard class="Bad C++11 Constant Function Call" 
    WARNING_FILTER += discard class="Bad CLI dynamic_cast Type" 
    WARNING_FILTER += discard class="Bad Call of Class Object" 
    WARNING_FILTER += discard class="Bad Call of Handle" 
    WARNING_FILTER += discard class="Bad Cast" 
    WARNING_FILTER += discard class="Bad Character Value" 
    WARNING_FILTER += discard class="Bad Class Template Declaration" 
    WARNING_FILTER += discard class="Bad Combination of DLL Attributes" 
    WARNING_FILTER += discard class="Bad Combination of Type Specifiers" 
    WARNING_FILTER += discard class="Bad Command Line Macro" 
    WARNING_FILTER += discard class="Bad Command Line" 
    WARNING_FILTER += discard class="Bad Complex Operation Result" 
    WARNING_FILTER += discard class="Bad Compound Literal Type" 
    WARNING_FILTER += discard class="Bad Constant Function Call" 
    WARNING_FILTER += discard class="Bad Constant Lambda" 
    WARNING_FILTER += discard class="Bad Constant Operator" 
    WARNING_FILTER += discard class="Bad Constructor Declaration" 
    WARNING_FILTER += discard class="Bad Constructor Parameter" 
    WARNING_FILTER += discard class="Bad Constructor Type" 
    WARNING_FILTER += discard class="Bad Conversion Constant Expression Type" 
    WARNING_FILTER += discard class="Bad Conversion Function Declaration" 
    WARNING_FILTER += discard class="Bad Data Member Initialization" 
    WARNING_FILTER += discard class="Bad Declaration for export" 
    WARNING_FILTER += discard class="Bad Deduction Guide Access" 
    WARNING_FILTER += discard class="Bad Deduction Guide Return Type" 
    WARNING_FILTER += discard class="Bad Deduction Guide Scope" 
    WARNING_FILTER += discard class="Bad Default Argument Type" 
    WARNING_FILTER += discard class="Bad Default Assignment" 
    WARNING_FILTER += discard class="Bad Delegate Initialization Priority List" 
    WARNING_FILTER += discard class="Bad Destructor Declaration" 
    WARNING_FILTER += discard class="Bad Digit Separator Position" 
    WARNING_FILTER += discard class="Bad Event Compound Assignment" 
    WARNING_FILTER += discard class="Bad Event add or remove Return" 
    WARNING_FILTER += discard class="Bad Exception Specification for Specialization" 
    WARNING_FILTER += discard class="Bad Export Information File" 
    WARNING_FILTER += discard class="Bad Extra Argument for Postfix Operator" 
    WARNING_FILTER += discard class="Bad File Scope Storage Class" 
    WARNING_FILTER += discard class="Bad Final __builtin_fpclassify Argument" 
    WARNING_FILTER += discard class="Bad Finalizer Declaration" 
    WARNING_FILTER += discard class="Bad First Argument Type for operator delete" 
    WARNING_FILTER += discard class="Bad Fixed Operation Result" 
    WARNING_FILTER += discard class="Bad Fixed Point Value" 
    WARNING_FILTER += discard class="Bad Float Constant" 
    WARNING_FILTER += discard class="Bad Float Operation Result" 
    WARNING_FILTER += discard class="Bad Float Value" 
    WARNING_FILTER += discard class="Bad Float or Fixed Suffix" 
    WARNING_FILTER += discard class="Bad Function Return Type" 
    WARNING_FILTER += discard class="Bad Function Storage Class" 
    WARNING_FILTER += discard class="Bad Function for Delegate" 
    WARNING_FILTER += discard class="Bad Function for GNU va_arg Pack" 
    WARNING_FILTER += discard class="Bad GNU Statement Return" 
    WARNING_FILTER += discard class="Bad GRO on Allocation Fail" 
    WARNING_FILTER += discard class="Bad Generic Declaration Scope" 
    WARNING_FILTER += discard class="Bad Handle dynamic_cast Operand" 
    WARNING_FILTER += discard class="Bad Hex Digit" 
    WARNING_FILTER += discard class="Bad Identifier String" 
    WARNING_FILTER += discard class="Bad Initialization Priority Capture Capture" 
    WARNING_FILTER += discard class="Bad Initialization Priority for Thread-local" 
    WARNING_FILTER += discard class="Bad Initializer Type" 
    WARNING_FILTER += discard class="Bad Initializer for Array With Unspecified Bound" 
    WARNING_FILTER += discard class="Bad Injection Scope" 
    WARNING_FILTER += discard class="Bad Integral Compound Literal" 
    WARNING_FILTER += discard class="Bad Integral Operator" 
    WARNING_FILTER += discard class="Bad Line Number" 
    WARNING_FILTER += discard class="Bad Linkage Specifier" 
    WARNING_FILTER += discard class="Bad Linkage for Declaration" 
    WARNING_FILTER += discard class="Bad Linkage for Redefine External Name" 
    WARNING_FILTER += discard class="Bad Linkage of Reference Within inline Function" 
    WARNING_FILTER += discard class="Bad Local Variable in Lambda" 
    WARNING_FILTER += discard class="Bad Macro Mode Name" 
    WARNING_FILTER += discard class="Bad Macro Redefine" 
    WARNING_FILTER += discard class="Bad Member Storage Class" 
    WARNING_FILTER += discard class="Bad Member Template Declaration" 
    WARNING_FILTER += discard class="Bad Member Template Symbol" 
    WARNING_FILTER += discard class="Bad Member Type in Pointer to Member" 
    WARNING_FILTER += discard class="Bad Multibyte Character Locale" 
    WARNING_FILTER += discard class="Bad Multibyte Character" 
    WARNING_FILTER += discard class="Bad Non-const Reference Initializer" 
    WARNING_FILTER += discard class="Bad Nonstandard Anonymous union Field" 
    WARNING_FILTER += discard class="Bad Nontype Template Argument" 
    WARNING_FILTER += discard class="Bad Octal Digit" 
    WARNING_FILTER += discard class="Bad Ordering Type" 
    WARNING_FILTER += discard class="Bad PCH File" 
    WARNING_FILTER += discard class="Bad Pack Alignment" 
    WARNING_FILTER += discard class="Bad Parameter Kind for Generic" 
    WARNING_FILTER += discard class="Bad Parameter Specifier" 
    WARNING_FILTER += discard class="Bad Parameter Storage Class" 
    WARNING_FILTER += discard class="Bad Parameter Type for Defaulted Comparison" 
    WARNING_FILTER += discard class="Bad Parameter Type for static Member Operator" 
    WARNING_FILTER += discard class="Bad Partial Specialization" 
    WARNING_FILTER += discard class="Bad Pointer dynamic_cast Operand" 
    WARNING_FILTER += discard class="Bad Predefined Macro Line" 
    WARNING_FILTER += discard class="Bad Predefined Macro Redefine" 
    WARNING_FILTER += discard class="Bad Preprocessor Directive Keyword" 
    WARNING_FILTER += discard class="Bad Preprocessor Operator" 
    WARNING_FILTER += discard class="Bad Property get Return" 
    WARNING_FILTER += discard class="Bad Property set Return" 
    WARNING_FILTER += discard class="Bad Prototype Argument for __bases" 
    WARNING_FILTER += discard class="Bad Pure Specifier" 
    WARNING_FILTER += discard class="Bad Qualified Function Type Parameter" 
    WARNING_FILTER += discard class="Bad Qualified Function Type" 
    WARNING_FILTER += discard class="Bad Qualifier for Delayed Class Definition" 
    WARNING_FILTER += discard class="Bad Qualifier for Member enum Declaration" 
    WARNING_FILTER += discard class="Bad Qualifier for Nested Class Declaration" 
    WARNING_FILTER += discard class="Bad Raw String Delimiter Character" 
    WARNING_FILTER += discard class="Bad Reference dynamic_cast Operand" 
    WARNING_FILTER += discard class="Bad Reflection Kind for Expression Splice" 
    WARNING_FILTER += discard class="Bad Register Name" 
    WARNING_FILTER += discard class="Bad Return Type for operator delete" 
    WARNING_FILTER += discard class="Bad Return Type for operator new" 
    WARNING_FILTER += discard class="Bad Return Type on Virtual Function Override" 
    WARNING_FILTER += discard class="Bad Return Type on main" 
    WARNING_FILTER += discard class="Bad Return Value Type" 
    WARNING_FILTER += discard class="Bad Rvalue Array" 
    WARNING_FILTER += discard class="Bad Rvalue Reference const_cast Operand" 
    WARNING_FILTER += discard class="Bad Rvalue Reference dynamic_cast Operand" 
    WARNING_FILTER += discard class="Bad STDC #pragma Argument for Mode" 
    WARNING_FILTER += discard class="Bad STDC #pragma Argument" 
    WARNING_FILTER += discard class="Bad STDC Fixed-point Overflow #pragma Argument" 
    WARNING_FILTER += discard class="Bad Scope for Defaulted Comparison" 
    WARNING_FILTER += discard class="Bad Scope for Definition" 
    WARNING_FILTER += discard class="Bad Scope for Explicit Instantiation" 
    WARNING_FILTER += discard class="Bad Scope for Partial Specialization" 
    WARNING_FILTER += discard class="Bad Scope for Redeclaration" 
    WARNING_FILTER += discard class="Bad Scope for Specialization" 
    WARNING_FILTER += discard class="Bad Scope for concept" 
    WARNING_FILTER += discard class="Bad Shared Storage Class" 
    WARNING_FILTER += discard class="Bad Size for Static Address Initialization" 
    WARNING_FILTER += discard class="Bad Specifier Outside Class Declaration" 
    WARNING_FILTER += discard class="Bad Splicer Operand" 
    WARNING_FILTER += discard class="Bad Statement in Statement Expression" 
    WARNING_FILTER += discard class="Bad Storage Class With inline" 
    WARNING_FILTER += discard class="Bad Storage Class for Named Address Space Variable" 
    WARNING_FILTER += discard class="Bad Storage Class on Template Declaration" 
    WARNING_FILTER += discard class="Bad Strong using Scope" 
    WARNING_FILTER += discard class="Bad Suffix" 
    WARNING_FILTER += discard class="Bad Template Argument Expression Operator" 
    WARNING_FILTER += discard class="Bad Template Declaration Scope" 
    WARNING_FILTER += discard class="Bad Template Declaration" 
    WARNING_FILTER += discard class="Bad Template Member Definition" 
    WARNING_FILTER += discard class="Bad Template Name" 
    WARNING_FILTER += discard class="Bad Tracking Reference Initializer" 
    WARNING_FILTER += discard class="Bad Tracking Reference dynamic_cast Operand" 
    WARNING_FILTER += discard class="Bad Type From Instantiation" 
    WARNING_FILTER += discard class="Bad Type Name Redeclaration" 
    WARNING_FILTER += discard class="Bad Type Qualifier" 
    WARNING_FILTER += discard class="Bad Type for Atomic Fetch" 
    WARNING_FILTER += discard class="Bad Type for Cleanup Routine" 
    WARNING_FILTER += discard class="Bad Type for GNU __sync Function" 
    WARNING_FILTER += discard class="Bad UPC Shared Array Layout Qualifier" 
    WARNING_FILTER += discard class="Bad UPC Shared Pointer Layout Qualifier" 
    WARNING_FILTER += discard class="Bad UPC Shared void Pointer Layout Qualifier" 
    WARNING_FILTER += discard class="Bad Unary * Operand" 
    WARNING_FILTER += discard class="Bad Unevaluated Lambda" 
    WARNING_FILTER += discard class="Bad Unicode Character in Preprocessor Output" 
    WARNING_FILTER += discard class="Bad Unicode Character in String" 
    WARNING_FILTER += discard class="Bad Use of CLI Array Type" 
    WARNING_FILTER += discard class="Bad Use of Delegate Type" 
    WARNING_FILTER += discard class="Bad Use of Function Modifier" 
    WARNING_FILTER += discard class="Bad Use of Member Function typedef" 
    WARNING_FILTER += discard class="Bad Use of \"#\"" 
    WARNING_FILTER += discard class="Bad Use of main" 
    WARNING_FILTER += discard class="Bad User Defined Suffix" 
    WARNING_FILTER += discard class="Bad Variable for-init Priority" 
    WARNING_FILTER += discard class="Bad Vector Conditional Size" 
    WARNING_FILTER += discard class="Bad Vector Float Operand Size" 
    WARNING_FILTER += discard class="Bad _Noreturn" 
    WARNING_FILTER += discard class="Bad __auto_type" 
    WARNING_FILTER += discard class="Bad __declspec restrict Return" 
    WARNING_FILTER += discard class="Bad __declspec(property)" 
    WARNING_FILTER += discard class="Bad asm Constraint Letter" 
    WARNING_FILTER += discard class="Bad asm Constraint Modifier" 
    WARNING_FILTER += discard class="Bad asm Function Definition" 
    WARNING_FILTER += discard class="Bad asm Function Ellipsis" 
    WARNING_FILTER += discard class="Bad assembly_info Attribute" 
    WARNING_FILTER += discard class="Bad const volatile Reference Initializer" 
    WARNING_FILTER += discard class="Bad const_cast Type" 
    WARNING_FILTER += discard class="Bad const_cast" 
    WARNING_FILTER += discard class="Bad csonar_ignore String" 
    WARNING_FILTER += discard class="Bad decltype Qualifier" 
    WARNING_FILTER += discard class="Bad dynamic_cast Type" 
    WARNING_FILTER += discard class="Bad enum Template Declaration" 
    WARNING_FILTER += discard class="Bad friend Declaration" 
    WARNING_FILTER += discard class="Bad malloc Attribute" 
    WARNING_FILTER += discard class="Bad return" 
    WARNING_FILTER += discard class="Bad std::string_view" 
    WARNING_FILTER += discard class="Bad this" 
    WARNING_FILTER += discard class="Bad tls_model Attribute Argument" 
    WARNING_FILTER += discard class="Bad union Field" 
    WARNING_FILTER += discard class="Bad uuid String" 
    WARNING_FILTER += discard class="Bad va_arg" 
    WARNING_FILTER += discard class="Bad va_copy" 
    WARNING_FILTER += discard class="Bad va_end" 
    WARNING_FILTER += discard class="Bad va_start" 
    WARNING_FILTER += discard class="Base Class Already Initialized" 
    WARNING_FILTER += discard class="Base Class Has Different DLL Interface" 
    WARNING_FILTER += discard class="Base Class Initializer Anachronism" 
    WARNING_FILTER += discard class="Base Class Not Allowed for union" 
    WARNING_FILTER += discard class="Base Class Offset Too Large" 
    WARNING_FILTER += discard class="Base Class With Nonvirtual Destructor" 
    WARNING_FILTER += discard class="Base Subobject Not Initialized" 
    WARNING_FILTER += discard class="Base Uses Tail Padding" 
    WARNING_FILTER += discard class="Base With Flexible Array" 
    WARNING_FILTER += discard class="Based Requires Variable Name" 
    WARNING_FILTER += discard class="Bases Not in Template" 
    WARNING_FILTER += discard class="Bitfields Not Allowed" 
    WARNING_FILTER += discard class="Block Scope Function Must Be extern" 
    WARNING_FILTER += discard class="Block extern Initializer Not Allowed" 
    WARNING_FILTER += discard class="Blocking in Critical Section" 
    WARNING_FILTER += discard class="Boolean Controlling Expression Is Constant" 
    WARNING_FILTER += discard class="Both Arguments Must Have Same Type" 
    WARNING_FILTER += discard class="Both Reference and Value Constraints" 
    WARNING_FILTER += discard class="Bound Function Cast Anachronism" 
    WARNING_FILTER += discard class="Bound Function Must Be Called" 
    WARNING_FILTER += discard class="Brace Initialization Not Allowed" 
    WARNING_FILTER += discard class="Braced Initialization Priority List Not Allowed" 
    WARNING_FILTER += discard class="Braced Initialization Priority in Parentheses" 
    WARNING_FILTER += discard class="Braced Initialization Priority in Parenthesized Initializer" 
    WARNING_FILTER += discard class="Braced List Passed to Ellipsis" 
    WARNING_FILTER += discard class="Braced List for Implicit Lambda Type" 
    WARNING_FILTER += discard class="Braced List for Implicit Return Type" 
    WARNING_FILTER += discard class="Braced List for Microsoft Parameter Array" 
    WARNING_FILTER += discard class="Branch Into Handler" 
    WARNING_FILTER += discard class="Branch Into Statement Expression" 
    WARNING_FILTER += discard class="Branch Into constexpr if" 
    WARNING_FILTER += discard class="Branch Into finally" 
    WARNING_FILTER += discard class="Branch Into if consteval" 
    WARNING_FILTER += discard class="Branch Into try Block" 
    WARNING_FILTER += discard class="Branch Out of Constant" 
    WARNING_FILTER += discard class="Branch Past Initialization" 
    WARNING_FILTER += discard class="Buffer Overrun" 
    WARNING_FILTER += discard class="Buffer Underrun" 
    WARNING_FILTER += discard class="Builtin Function Hidden" 
    WARNING_FILTER += discard class="Builtin Function Overloaded" 
    WARNING_FILTER += discard class="Builtin Needs 128 Bit Floats" 
    WARNING_FILTER += discard class="Builtin Needs 128 Bit Integers" 
    WARNING_FILTER += discard class="Builtin Needs Vector Types" 
    WARNING_FILTER += discard class="Builtin Needs char8_t" 
    WARNING_FILTER += discard class="Builtin Operator Nonviable Because Argument Mismatch" 
    WARNING_FILTER += discard class="C++/CLI Attribute Only" 
    WARNING_FILTER += discard class="C++/CLI Enumerator Requires Explicit Value" 
    WARNING_FILTER += discard class="C++/CLI Explicit Conversion Is Virtual" 
    WARNING_FILTER += discard class="C++/CLI Explicit Conversion Requires Reference and Value Classes" 
    WARNING_FILTER += discard class="C++/CLI Not Enabled" 
    WARNING_FILTER += discard class="C++/CLI Requires Microsoft C++" 
    WARNING_FILTER += discard class="C++/CLI Requires Newer ABI Version" 
    WARNING_FILTER += discard class="C++/CX Array Only One Dimension Allowed" 
    WARNING_FILTER += discard class="C++/CX Bad Delegate Initialization Priority List" 
    WARNING_FILTER += discard class="C++/CX Box Invalid Type" 
    WARNING_FILTER += discard class="C++/CX Generic Constraints Not Allowed" 
    WARNING_FILTER += discard class="C++/CX Generic Method Not Allowed" 
    WARNING_FILTER += discard class="C++/CX Generic Type Not Allowed" 
    WARNING_FILTER += discard class="C++/CX Handle or Reference to Generic Parameter" 
    WARNING_FILTER += discard class="C++/CX Invalid Array Property set Value Parameter" 
    WARNING_FILTER += discard class="C++/CX Invalid Delegate Object" 
    WARNING_FILTER += discard class="C++/CX Non-const Array Parameter" 
    WARNING_FILTER += discard class="C++/CX Not Enabled" 
    WARNING_FILTER += discard class="C++/CX Public Global Type" 
    WARNING_FILTER += discard class="C++/CX Public Indexed Property" 
    WARNING_FILTER += discard class="C++/CX Public Native Type" 
    WARNING_FILTER += discard class="C++/CX Public Nested Delegate" 
    WARNING_FILTER += discard class="C++/CX Public Value Class Constructor" 
    WARNING_FILTER += discard class="C++/CX Requires Microsoft C++" 
    WARNING_FILTER += discard class="C++/CX Tracking Reference on Standard Class Type" 
    WARNING_FILTER += discard class="C++/CX Value Type Contains Virtual Function" 
    WARNING_FILTER += discard class="C++/CX Value Type Deriving From Interface" 
    WARNING_FILTER += discard class="C++/CX and C++/CLI" 
    WARNING_FILTER += discard class="C++/CX enum Base Has No Platform Counterpart" 
    WARNING_FILTER += discard class="C++20 Reversed Comparison Ambiguity" 
    WARNING_FILTER += discard class="C99 Constant in Unsigned Long Long Range" 
    WARNING_FILTER += discard class="CLI Abstract Member Function Definition" 
    WARNING_FILTER += discard class="CLI Array Invalid Element Type" 
    WARNING_FILTER += discard class="CLI Array Invalid Number of Dimensions" 
    WARNING_FILTER += discard class="CLI Array Invalid Number of Subscripts" 
    WARNING_FILTER += discard class="CLI Array Must Have new or Array Initialization Priority" 
    WARNING_FILTER += discard class="CLI Attribute Inaccessible Field" 
    WARNING_FILTER += discard class="CLI Attribute Invalid Argument" 
    WARNING_FILTER += discard class="CLI Attribute Invalid Field" 
    WARNING_FILTER += discard class="CLI Entity Not Loaded" 
    WARNING_FILTER += discard class="CLI Interface Cannot Have Assignment" 
    WARNING_FILTER += discard class="CLI Interface Member Function Definition" 
    WARNING_FILTER += discard class="CLI Parameter Array Attribute Deprecated" 
    WARNING_FILTER += discard class="CLI Parameter Array Must Be Last Parameter" 
    WARNING_FILTER += discard class="CLI enum Base Has No System Counterpart" 
    WARNING_FILTER += discard class="CLI get Accessor Missing" 
    WARNING_FILTER += discard class="CLI set Accessor Missing" 
    WARNING_FILTER += discard class="CLI typeid of Generic Parameter in Attribute" 
    WARNING_FILTER += discard class="CLI typeid of Managed Pointer" 
    WARNING_FILTER += discard class="Call Requires Floating Point Argument" 
    WARNING_FILTER += discard class="Call Requires One Argument" 
    WARNING_FILTER += discard class="Call Requires String Literal" 
    WARNING_FILTER += discard class="Call Result Should Be Used" 
    WARNING_FILTER += discard class="Call With Unusable Argument Conversion" 
    WARNING_FILTER += discard class="Call of Pure Virtual" 
    WARNING_FILTER += discard class="Call of Zero" 
    WARNING_FILTER += discard class="Called Function Redeclared inline" 
    WARNING_FILTER += discard class="Calling Convention Ignored for Type" 
    WARNING_FILTER += discard class="Calling Convention Ignored" 
    WARNING_FILTER += discard class="Calling Convention May Not Precede Nested Declarator" 
    WARNING_FILTER += discard class="Calling Convention Not Allowed" 
    WARNING_FILTER += discard class="Candidate Explicit Template Argument Substitution Failed" 
    WARNING_FILTER += discard class="Candidate Failed Constraint" 
    WARNING_FILTER += discard class="Candidate Wrong Parameter Count" 
    WARNING_FILTER += discard class="Cannot #undef Predefined Macro" 
    WARNING_FILTER += discard class="Cannot Assign to Microsoft Attribute" 
    WARNING_FILTER += discard class="Cannot Be Declared in Scope" 
    WARNING_FILTER += discard class="Cannot Be common internal_linkage" 
    WARNING_FILTER += discard class="Cannot Be const-qualified" 
    WARNING_FILTER += discard class="Cannot Build Temporary File Name" 
    WARNING_FILTER += discard class="Cannot Call Member on Lvalue" 
    WARNING_FILTER += discard class="Cannot Call Member on Rvalue" 
    WARNING_FILTER += discard class="Cannot Call Named Member on Lvalue" 
    WARNING_FILTER += discard class="Cannot Call Named Member on Rvalue" 
    WARNING_FILTER += discard class="Cannot Capture Variable" 
    WARNING_FILTER += discard class="Cannot Capture this by Reference" 
    WARNING_FILTER += discard class="Cannot Capture this" 
    WARNING_FILTER += discard class="Cannot Cast Away const" 
    WARNING_FILTER += discard class="Cannot Change Access" 
    WARNING_FILTER += discard class="Cannot Create Instantiation Request File" 
    WARNING_FILTER += discard class="Cannot Deduce Class Template Arguments" 
    WARNING_FILTER += discard class="Cannot Deduce Type in Range-based for" 
    WARNING_FILTER += discard class="Cannot Deduce auto Template Parameter" 
    WARNING_FILTER += discard class="Cannot Deduce auto Type" 
    WARNING_FILTER += discard class="Cannot Deduce decltype(auto) Type" 
    WARNING_FILTER += discard class="Cannot Define dllimport Function" 
    WARNING_FILTER += discard class="Cannot Elide Braces" 
    WARNING_FILTER += discard class="Cannot Evaluate __builtin_offsetof" 
    WARNING_FILTER += discard class="Cannot Export Fragment" 
    WARNING_FILTER += discard class="Cannot Find Header for Import" 
    WARNING_FILTER += discard class="Cannot Import Metadata" 
    WARNING_FILTER += discard class="Cannot Import Module Bad Checksum" 
    WARNING_FILTER += discard class="Cannot Import Module With No Name" 
    WARNING_FILTER += discard class="Cannot Import Module" 
    WARNING_FILTER += discard class="Cannot Initialization Priority auto Flexible Array Member" 
    WARNING_FILTER += discard class="Cannot Initialize Destructible Flexible Array" 
    WARNING_FILTER += discard class="Cannot Initialize Fields" 
    WARNING_FILTER += discard class="Cannot Initialize Flexible Array Member" 
    WARNING_FILTER += discard class="Cannot Initialize Indirect Flexible Array" 
    WARNING_FILTER += discard class="Cannot Initialize" 
    WARNING_FILTER += discard class="Cannot Interpret Target Bits" 
    WARNING_FILTER += discard class="Cannot Open File" 
    WARNING_FILTER += discard class="Cannot Open PCH Input File" 
    WARNING_FILTER += discard class="Cannot Splice General Expression" 
    WARNING_FILTER += discard class="Cannot Splice Member Access" 
    WARNING_FILTER += discard class="Cannot Use Thread-local Storage" 
    WARNING_FILTER += discard class="Cannot chdir" 
    WARNING_FILTER += discard class="Cannot inline Call" 
    WARNING_FILTER += discard class="Cannot inline" 
    WARNING_FILTER += discard class="Capture Mode Matches Default" 
    WARNING_FILTER += discard class="Capture of static Duration Variable" 
    WARNING_FILTER += discard class="Captured Local Variable Not in Innermost Function" 
    WARNING_FILTER += discard class="Captured Variable Type Not Copyable" 
    WARNING_FILTER += discard class="Capturing Structured Bindings Requires C++20" 
    WARNING_FILTER += discard class="Cast Alters Value" 
    WARNING_FILTER += discard class="Cast Interior Pointer to Pointer" 
    WARNING_FILTER += discard class="Cast Not Arithmetic or enum or Pointer" 
    WARNING_FILTER += discard class="Cast Not Integral or enum" 
    WARNING_FILTER += discard class="Cast Not Integral" 
    WARNING_FILTER += discard class="Cast Not Scalar" 
    WARNING_FILTER += discard class="Cast in Requires Clause" 
    WARNING_FILTER += discard class="Cast to Abstract Class" 
    WARNING_FILTER += discard class="Cast to Bad Type" 
    WARNING_FILTER += discard class="Cast to CLI Interface Class" 
    WARNING_FILTER += discard class="Cast to Incomplete Array Type" 
    WARNING_FILTER += discard class="Cast to Qualified Type" 
    WARNING_FILTER += discard class="Cfront Incompatible With Microsoft" 
    WARNING_FILTER += discard class="Character Not Latin 1" 
    WARNING_FILTER += discard class="Character Too Wide for Rep" 
    WARNING_FILTER += discard class="Circular Constraint" 
    WARNING_FILTER += discard class="Circular Constraints" 
    WARNING_FILTER += discard class="Class Definition in Statement Expression" 
    WARNING_FILTER += discard class="Class Metadata Not Representable" 
    WARNING_FILTER += discard class="Class Qualified Name Not Allowed" 
    WARNING_FILTER += discard class="Class Qualified Name Required" 
    WARNING_FILTER += discard class="Class Template Same Name as Template Parameter" 
    WARNING_FILTER += discard class="Class Too Large" 
    WARNING_FILTER += discard class="Class Type Required" 
    WARNING_FILTER += discard class="Class With operator delete but No operator new" 
    WARNING_FILTER += discard class="Class With operator new but No operator delete" 
    WARNING_FILTER += discard class="Class and Inherited Member Instance Have DLL Interface" 
    WARNING_FILTER += discard class="Class and Member Function Name Conflict" 
    WARNING_FILTER += discard class="Class and Member Have DLL Interface" 
    WARNING_FILTER += discard class="Class and Member Name Conflict" 
    WARNING_FILTER += discard class="Coercion Alters Value" 
    WARNING_FILTER += discard class="Comma Operator in Array Subscript Deprecated" 
    WARNING_FILTER += discard class="Comma Operator in CLI Subscript" 
    WARNING_FILTER += discard class="Command Injection" 
    WARNING_FILTER += discard class="Comment Unclosed at EOF" 
    WARNING_FILTER += discard class="Comparison Defaulted in Class Must Be First Declaration" 
    WARNING_FILTER += discard class="Comparison Operator Does Not Return bool" 
    WARNING_FILTER += discard class="Comparison of Pointers to void and Function" 
    WARNING_FILTER += discard class="Comparison of Unrelated Pointers" 
    WARNING_FILTER += discard class="Compiler Generated Function Cannot Be Instantiated" 
    WARNING_FILTER += discard class="Complex Template Parameter" 
    WARNING_FILTER += discard class="Complex Type Not Allowed" 
    WARNING_FILTER += discard class="Compound Literal Is Nonstandard" 
    WARNING_FILTER += discard class="Compound Lvalue as asm Operand" 
    WARNING_FILTER += discard class="Concatenation Yields Invalid Token" 
    WARNING_FILTER += discard class="Condition Declaration Must Have Initializer" 
    WARNING_FILTER += discard class="Condition Does Not Declare a Variable" 
    WARNING_FILTER += discard class="Condition With Multiple Declarators" 
    WARNING_FILTER += discard class="Conflicting Attribute in Other Translation Unit" 
    WARNING_FILTER += discard class="Conflicting CLI Class Template Kinds" 
    WARNING_FILTER += discard class="Conflicting CLI Class Type Kinds" 
    WARNING_FILTER += discard class="Conflicting Calling Conventions" 
    WARNING_FILTER += discard class="Conflicting Nullability" 
    WARNING_FILTER += discard class="Conflicting Properties" 
    WARNING_FILTER += discard class="Conflicts With Predeclared Type" 
    WARNING_FILTER += discard class="Conflicts With using Declaration" 
    WARNING_FILTER += discard class="Confusable Identifier" 
    WARNING_FILTER += discard class="Constant Addresses Local Variable" 
    WARNING_FILTER += discard class="Constant Must Be Positive" 
    WARNING_FILTER += discard class="Constant Narrowing Conversion to Float" 
    WARNING_FILTER += discard class="Constant Narrowing Conversion" 
    WARNING_FILTER += discard class="Constant Value Not Known" 
    WARNING_FILTER += discard class="Constraint Mismatch" 
    WARNING_FILTER += discard class="Constraint Number Mismatch" 
    WARNING_FILTER += discard class="Constraint concept Template" 
    WARNING_FILTER += discard class="Constructor Destructor Priority Reserved" 
    WARNING_FILTER += discard class="Constructor Type Mismatch" 
    WARNING_FILTER += discard class="Conversion From Inaccessible Base Class" 
    WARNING_FILTER += discard class="Conversion Function Not Usable" 
    WARNING_FILTER += discard class="Conversion of Pointer to Member to Function Pointer" 
    WARNING_FILTER += discard class="Conversion of Unbound Pointer to Member to Function Pointer" 
    WARNING_FILTER += discard class="Conversion to Pointer Loses Bits" 
    WARNING_FILTER += discard class="Converting to Incomplete Class" 
    WARNING_FILTER += discard class="Copy Constructor With Default Argument Cannot Be Defaulted" 
    WARNING_FILTER += discard class="Copy Constructor in Value Class Type" 
    WARNING_FILTER += discard class="Copy-Paste Error" 
    WARNING_FILTER += discard class="Coroutine With Deduced Return Type" 
    WARNING_FILTER += discard class="Coroutine With Ellipsis Parameter" 
    WARNING_FILTER += discard class="Corresponding Declaration Incompatible" 
    WARNING_FILTER += discard class="Corresponding Member Template Is Different Kind" 
    WARNING_FILTER += discard class="Corrupted Export Template File" 
    WARNING_FILTER += discard class="Could Not Open IL File" 
    WARNING_FILTER += discard class="Covariant Override in Managed Class" 
    WARNING_FILTER += discard class="Creating PCH" 
    WARNING_FILTER += discard class="DLL Interface Conflict None Assumed" 
    WARNING_FILTER += discard class="DLL Interface Conflict dllexport Assumed" 
    WARNING_FILTER += discard class="DLL Interface Ignored on Class Template" 
    WARNING_FILTER += discard class="DLL Interface Ignored on Qualified Declaration" 
    WARNING_FILTER += discard class="DLL Interface Requires External Linkage" 
    WARNING_FILTER += discard class="DLL Interface in Unnamed namespace" 
    WARNING_FILTER += discard class="DLL Thread Conflict" 
    WARNING_FILTER += discard class="Dangerous Function Cast" 
    WARNING_FILTER += discard class="Data Member With Interface Type" 
    WARNING_FILTER += discard class="Deadlock" 
    WARNING_FILTER += discard class="Deallocation Operator in namespace" 
    WARNING_FILTER += discard class="Declaration After Statements" 
    WARNING_FILTER += discard class="Declaration Hides Function Parameter" 
    WARNING_FILTER += discard class="Declaration Hides Template Parameter" 
    WARNING_FILTER += discard class="Declaration Hides catch Parameter" 
    WARNING_FILTER += discard class="Declaration Hides for-init" 
    WARNING_FILTER += discard class="Declaration Incompatible With Previous Use" 
    WARNING_FILTER += discard class="Declaration Modifiers Ignored" 
    WARNING_FILTER += discard class="Declaration Modifiers Incompatible With Previous Declaration" 
    WARNING_FILTER += discard class="Declaration Modifiers Invalid for this Declaration" 
    WARNING_FILTER += discard class="Declaration Should Be of Parameter" 
    WARNING_FILTER += discard class="Declaration With Local Type but Not Defined" 
    WARNING_FILTER += discard class="Declaration With No Linkage Type but Not Defined" 
    WARNING_FILTER += discard class="Declaration in Prototype Scope" 
    WARNING_FILTER += discard class="Declaration of void Ignored" 
    WARNING_FILTER += discard class="Deduced Return Type Conflict" 
    WARNING_FILTER += discard class="Deduced Return Types Requires C++14" 
    WARNING_FILTER += discard class="Deduction Failed" 
    WARNING_FILTER += discard class="Deduction Guide Definition" 
    WARNING_FILTER += discard class="Default Argument Already Defined" 
    WARNING_FILTER += discard class="Default Argument Differs in Other Translation Unit" 
    WARNING_FILTER += discard class="Default Argument Expression Not Allowed" 
    WARNING_FILTER += discard class="Default Argument Not at End" 
    WARNING_FILTER += discard class="Default Argument Requires friend to Be Definition" 
    WARNING_FILTER += discard class="Default Argument Used in Parameter Array Function" 
    WARNING_FILTER += discard class="Default Argument for Literal Operator" 
    WARNING_FILTER += discard class="Default Argument on Function Template Not Allowed" 
    WARNING_FILTER += discard class="Default Argument on Member Declaration" 
    WARNING_FILTER += discard class="Default Argument on Member Template Definition" 
    WARNING_FILTER += discard class="Default Argument on Member friend" 
    WARNING_FILTER += discard class="Default Arguments Incompatible" 
    WARNING_FILTER += discard class="Default Association Appears More Than Once" 
    WARNING_FILTER += discard class="Default Constructor Call Not Constant" 
    WARNING_FILTER += discard class="Default Constructor Not constexpr" 
    WARNING_FILTER += discard class="Default Constructor in Value Class Type" 
    WARNING_FILTER += discard class="Default Label Appears More Than Once" 
    WARNING_FILTER += discard class="Default Label Must Be in switch" 
    WARNING_FILTER += discard class="Default Member Initialization Priority for Value Class" 
    WARNING_FILTER += discard class="Default Not Allowed on Partial Specialization" 
    WARNING_FILTER += discard class="Default Template Argument Not Allowed" 
    WARNING_FILTER += discard class="Default-initialization of Reference" 
    WARNING_FILTER += discard class="Defaulted Assignment Cannot Have const Parameter" 
    WARNING_FILTER += discard class="Defaulted Copy Constructor Cannot Have const Parameter" 
    WARNING_FILTER += discard class="Defaulted Default Constructor Cannot Be constexpr" 
    WARNING_FILTER += discard class="Defaulted Functions Requires C++11" 
    WARNING_FILTER += discard class="Definition of Implicitly Declared Function" 
    WARNING_FILTER += discard class="Delegate Requires Managed Class" 
    WARNING_FILTER += discard class="Delegating Constructor Requires C++11" 
    WARNING_FILTER += discard class="Delegating Constructor Requires Newer ABI Version" 
    WARNING_FILTER += discard class="Delegation Initialization Priority and Member Initialization Priority" 
    WARNING_FILTER += discard class="Delegation Loop" 
    WARNING_FILTER += discard class="Deleted Default Constructor" 
    WARNING_FILTER += discard class="Deleted Elided Copy Constructor" 
    WARNING_FILTER += discard class="Deleted Function Definition Must Be First Declaration" 
    WARNING_FILTER += discard class="Deleted Function Overrides Nondeleted Function" 
    WARNING_FILTER += discard class="Deleted Function" 
    WARNING_FILTER += discard class="Deleted Functions Requires C++11" 
    WARNING_FILTER += discard class="Deleted Inherited Definition Constructor" 
    WARNING_FILTER += discard class="Deleted main" 
    WARNING_FILTER += discard class="Dependent Statement Is Declaration" 
    WARNING_FILTER += discard class="Dependent Vector Size" 
    WARNING_FILTER += discard class="Deprecated Access Specifier" 
    WARNING_FILTER += discard class="Deprecated Entity" 
    WARNING_FILTER += discard class="Deprecated String Conversion" 
    WARNING_FILTER += discard class="Derived Class Too Far" 
    WARNING_FILTER += discard class="Designator Requires Aggregate Type" 
    WARNING_FILTER += discard class="Designator for Non-POD" 
    WARNING_FILTER += discard class="Designator for Template Dependent Type" 
    WARNING_FILTER += discard class="Destroying delete With Extra Parameters" 
    WARNING_FILTER += discard class="Destroying delete Wrong Type" 
    WARNING_FILTER += discard class="Destructor Name Must Be Qualified" 
    WARNING_FILTER += discard class="Destructor Position" 
    WARNING_FILTER += discard class="Destructor Qualifier Type Mismatch" 
    WARNING_FILTER += discard class="Destructor Type Mismatch" 
    WARNING_FILTER += discard class="Destructor in Value Class Type" 
    WARNING_FILTER += discard class="Destructor or Finalizer With Named Override" 
    WARNING_FILTER += discard class="Different Return Type on Virtual Function Override" 
    WARNING_FILTER += discard class="Different enum Comparison" 
    WARNING_FILTER += discard class="Digit Separators Not Enabled" 
    WARNING_FILTER += discard class="Dimension Not const Unsigned Integer" 
    WARNING_FILTER += discard class="Direct Access to Field of C Atomic Object" 
    WARNING_FILTER += discard class="Division By Zero" 
    WARNING_FILTER += discard class="Double Close" 
    WARNING_FILTER += discard class="Double Free" 
    WARNING_FILTER += discard class="Double Initialization" 
    WARNING_FILTER += discard class="Double Lock" 
    WARNING_FILTER += discard class="Double Unlock" 
    WARNING_FILTER += discard class="Dual Lookup Ambiguous Name" 
    WARNING_FILTER += discard class="Duplicate Base Class Name" 
    WARNING_FILTER += discard class="Duplicate Calling Convention" 
    WARNING_FILTER += discard class="Duplicate Class Modifier" 
    WARNING_FILTER += discard class="Duplicate Constraint" 
    WARNING_FILTER += discard class="Duplicate Declaration Specifier" 
    WARNING_FILTER += discard class="Duplicate Designator" 
    WARNING_FILTER += discard class="Duplicate File Name" 
    WARNING_FILTER += discard class="Duplicate Function Modifier" 
    WARNING_FILTER += discard class="Duplicate Get or Put" 
    WARNING_FILTER += discard class="Duplicate Header Unit Map" 
    WARNING_FILTER += discard class="Duplicate Inheriting Constructor" 
    WARNING_FILTER += discard class="Duplicate Macro Parameter Name" 
    WARNING_FILTER += discard class="Duplicate Memory Attribute" 
    WARNING_FILTER += discard class="Duplicate Microsoft Attribute Argument" 
    WARNING_FILTER += discard class="Duplicate Module Map" 
    WARNING_FILTER += discard class="Duplicate Parameter Name" 
    WARNING_FILTER += discard class="Duplicate Threads Dimension" 
    WARNING_FILTER += discard class="Duplicate Type Qualifier" 
    WARNING_FILTER += discard class="Duplicate Type in C11 Generic" 
    WARNING_FILTER += discard class="Duplicate asm Qualifier" 
    WARNING_FILTER += discard class="Duplicate friend Declaration" 
    WARNING_FILTER += discard class="Duplicate typedef in Class" 
    WARNING_FILTER += discard class="Duplicate typedef" 
    WARNING_FILTER += discard class="Duplicate using Declaration" 
    WARNING_FILTER += discard class="Dynamic Exception Specifications Deprecated" 
    WARNING_FILTER += discard class="Dynamic Local static in Statement Expression" 
    WARNING_FILTER += discard class="ELF Visibility Pop Mismatch" 
    WARNING_FILTER += discard class="ELF Visibility Stack Empty" 
    WARNING_FILTER += discard class="Element Type Incomplete" 
    WARNING_FILTER += discard class="Ellipsis After Parameter Array" 
    WARNING_FILTER += discard class="Ellipsis CLI Accessor" 
    WARNING_FILTER += discard class="Ellipsis Not Allowed" 
    WARNING_FILTER += discard class="Ellipsis Parameter for Literal Operator" 
    WARNING_FILTER += discard class="Ellipsis on Operator Function" 
    WARNING_FILTER += discard class="Empty Anonymous union" 
    WARNING_FILTER += discard class="Empty Branch Statement" 
    WARNING_FILTER += discard class="Empty Clobbers List" 
    WARNING_FILTER += discard class="Empty Delimited Escape" 
    WARNING_FILTER += discard class="Empty Include Search Path" 
    WARNING_FILTER += discard class="Empty Lambda Template Parameter List" 
    WARNING_FILTER += discard class="Empty Macro Argument" 
    WARNING_FILTER += discard class="Empty Pack Alignment Stack" 
    WARNING_FILTER += discard class="Empty Pack Expansion" 
    WARNING_FILTER += discard class="Empty Property Indices" 
    WARNING_FILTER += discard class="Empty Requires Expression" 
    WARNING_FILTER += discard class="Empty Template Parameter List" 
    WARNING_FILTER += discard class="Empty Translation Unit" 
    WARNING_FILTER += discard class="Empty Unicode Name" 
    WARNING_FILTER += discard class="Empty Wide Character" 
    WARNING_FILTER += discard class="Empty for Statement" 
    WARNING_FILTER += discard class="Empty if Statement" 
    WARNING_FILTER += discard class="Empty switch Statement" 
    WARNING_FILTER += discard class="Empty throw Specification Not C++20" 
    WARNING_FILTER += discard class="Empty while Statement" 
    WARNING_FILTER += discard class="Encryption without Padding" 
    WARNING_FILTER += discard class="Entity Cannot Be Specialized" 
    WARNING_FILTER += discard class="Entity Defined Twice" 
    WARNING_FILTER += discard class="Entity Defined in Other Translation Unit" 
    WARNING_FILTER += discard class="Entity Differs in Other Translation Unit" 
    WARNING_FILTER += discard class="Enumerator Already Declared" 
    WARNING_FILTER += discard class="Equals Assumed in Command Line Macro Definition" 
    WARNING_FILTER += discard class="Error in Debug Option Argument" 
    WARNING_FILTER += discard class="Event Accessor Missing Value Parameter" 
    WARNING_FILTER += discard class="Event Accessor Value Parameter Mismatch" 
    WARNING_FILTER += discard class="Event Name Not Allowed" 
    WARNING_FILTER += discard class="Event Requires Managed Class" 
    WARNING_FILTER += discard class="Event Without raise Invoked" 
    WARNING_FILTER += discard class="Event add Already Declared" 
    WARNING_FILTER += discard class="Event in C++/CX Value Type" 
    WARNING_FILTER += discard class="Event raise Already Declared" 
    WARNING_FILTER += discard class="Event raise Type Mismatch" 
    WARNING_FILTER += discard class="Event remove Already Declared" 
    WARNING_FILTER += discard class="Exception Handler Used" 
    WARNING_FILTER += discard class="Exception Specification Ignored" 
    WARNING_FILTER += discard class="Exception Specification Not Allowed" 
    WARNING_FILTER += discard class="Exception Specification Override Incompatible" 
    WARNING_FILTER += discard class="Exceptions in Embedded C++" 
    WARNING_FILTER += discard class="Excess Characters in Literal Ignored" 
    WARNING_FILTER += discard class="Excess Initializers Ignored" 
    WARNING_FILTER += discard class="Excess Pack Expansion" 
    WARNING_FILTER += discard class="Excessive Comparison Rewrites" 
    WARNING_FILTER += discard class="Excessive Rescan Depth" 
    WARNING_FILTER += discard class="Excessive constexpr Complexity" 
    WARNING_FILTER += discard class="Exit upc_forall" 
    WARNING_FILTER += discard class="Expansion Contains No Packs" 
    WARNING_FILTER += discard class="Expected Attribute Name" 
    WARNING_FILTER += discard class="Expected C++ Keyword" 
    WARNING_FILTER += discard class="Expected Class Type" 
    WARNING_FILTER += discard class="Expected Colon" 
    WARNING_FILTER += discard class="Expected Comma or Greater Than" 
    WARNING_FILTER += discard class="Expected Comma or \"]\"" 
    WARNING_FILTER += discard class="Expected Comma" 
    WARNING_FILTER += discard class="Expected Declaration" 
    WARNING_FILTER += discard class="Expected Definition of Tag" 
    WARNING_FILTER += discard class="Expected Ellipsis" 
    WARNING_FILTER += discard class="Expected Error Argument" 
    WARNING_FILTER += discard class="Expected Field Access" 
    WARNING_FILTER += discard class="Expected Field Name" 
    WARNING_FILTER += discard class="Expected File Name" 
    WARNING_FILTER += discard class="Expected Greater Than Not Shift Right" 
    WARNING_FILTER += discard class="Expected Greater Than" 
    WARNING_FILTER += discard class="Expected Identifier in for each Declaration" 
    WARNING_FILTER += discard class="Expected Identifier" 
    WARNING_FILTER += discard class="Expected Integer Constant" 
    WARNING_FILTER += discard class="Expected Less Than" 
    WARNING_FILTER += discard class="Expected Line Number" 
    WARNING_FILTER += discard class="Expected Macro Parameter" 
    WARNING_FILTER += discard class="Expected Member Name" 
    WARNING_FILTER += discard class="Expected Microsoft Attribute Argument List" 
    WARNING_FILTER += discard class="Expected Microsoft Attribute bool Value" 
    WARNING_FILTER += discard class="Expected Microsoft Attribute enum Value" 
    WARNING_FILTER += discard class="Expected Operator" 
    WARNING_FILTER += discard class="Expected Pointer to Member" 
    WARNING_FILTER += discard class="Expected Primary Expression" 
    WARNING_FILTER += discard class="Expected Push Pop" 
    WARNING_FILTER += discard class="Expected Semicolon" 
    WARNING_FILTER += discard class="Expected Statement" 
    WARNING_FILTER += discard class="Expected String Literal" 
    WARNING_FILTER += discard class="Expected Template Argument" 
    WARNING_FILTER += discard class="Expected Type Name" 
    WARNING_FILTER += discard class="Expected Type Specifier" 
    WARNING_FILTER += discard class="Expected \"(\" or \"{\"" 
    WARNING_FILTER += discard class="Expected \"(\"" 
    WARNING_FILTER += discard class="Expected \")\" and #pragma Ignored" 
    WARNING_FILTER += discard class="Expected \")\"" 
    WARNING_FILTER += discard class="Expected \":]\"" 
    WARNING_FILTER += discard class="Expected \"=\"" 
    WARNING_FILTER += discard class="Expected \"[:\"" 
    WARNING_FILTER += discard class="Expected \"[\"" 
    WARNING_FILTER += discard class="Expected \"]\"" 
    WARNING_FILTER += discard class="Expected \"{\"" 
    WARNING_FILTER += discard class="Expected \"}\"" 
    WARNING_FILTER += discard class="Expected __except or __finally" 
    WARNING_FILTER += discard class="Expected an Attribute" 
    WARNING_FILTER += discard class="Expected asm Clobber" 
    WARNING_FILTER += discard class="Expected asm Label" 
    WARNING_FILTER += discard class="Expected asm Operand" 
    WARNING_FILTER += discard class="Expected asm String" 
    WARNING_FILTER += discard class="Expected auto" 
    WARNING_FILTER += discard class="Expected class or typename" 
    WARNING_FILTER += discard class="Expected class" 
    WARNING_FILTER += discard class="Expected concept Name" 
    WARNING_FILTER += discard class="Expected in" 
    WARNING_FILTER += discard class="Expected on or off" 
    WARNING_FILTER += discard class="Expected string_view Value" 
    WARNING_FILTER += discard class="Expected template" 
    WARNING_FILTER += discard class="Expected while" 
    WARNING_FILTER += discard class="Expired Reflection Value" 
    WARNING_FILTER += discard class="Explicit Instantiation Not in namespace Scope" 
    WARNING_FILTER += discard class="Explicit Lambda Template Parameters Requires C++20" 
    WARNING_FILTER += discard class="Explicit Specialization Not in namespace Scope" 
    WARNING_FILTER += discard class="Explicit Specialization friend" 
    WARNING_FILTER += discard class="Explicit Template Arguments Ignored" 
    WARNING_FILTER += discard class="Explicit Template Arguments Not Allowed" 
    WARNING_FILTER += discard class="Explicit this Defaulted Comparison" 
    WARNING_FILTER += discard class="Explicit this Needs this" 
    WARNING_FILTER += discard class="Explicit this Parameter Must Be First" 
    WARNING_FILTER += discard class="Explicitly Specialized Alias Template" 
    WARNING_FILTER += discard class="Export Cannot Contain Export" 
    WARNING_FILTER += discard class="Export Cannot Contain Import" 
    WARNING_FILTER += discard class="Export Class Members" 
    WARNING_FILTER += discard class="Export Internal Linkage" 
    WARNING_FILTER += discard class="Export Must Introduce Name" 
    WARNING_FILTER += discard class="Export Removed" 
    WARNING_FILTER += discard class="Export Requires Modules" 
    WARNING_FILTER += discard class="Exported Instantiation and Specialized" 
    WARNING_FILTER += discard class="Exported in Unnamed namespace" 
    WARNING_FILTER += discard class="Expression Not Arithmetic or Unscoped enum or Pointer" 
    WARNING_FILTER += discard class="Expression Not Arithmetic or Unscoped enum" 
    WARNING_FILTER += discard class="Expression Not Arithmetic or enum or Pointer" 
    WARNING_FILTER += discard class="Expression Not Arithmetic or enum" 
    WARNING_FILTER += discard class="Expression Not Arithmetic" 
    WARNING_FILTER += discard class="Expression Not Constant" 
    WARNING_FILTER += discard class="Expression Not Fixed Point" 
    WARNING_FILTER += discard class="Expression Not Integral Constant" 
    WARNING_FILTER += discard class="Expression Not Integral or Fixed Point" 
    WARNING_FILTER += discard class="Expression Not Integral or Unscoped enum or Fixed Point" 
    WARNING_FILTER += discard class="Expression Not Integral or Unscoped enum" 
    WARNING_FILTER += discard class="Expression Not Integral or enum or Fixed Point" 
    WARNING_FILTER += discard class="Expression Not Integral or enum" 
    WARNING_FILTER += discard class="Expression Not Integral" 
    WARNING_FILTER += discard class="Expression Not Object Pointer" 
    WARNING_FILTER += discard class="Expression Not Pointer nor Handle" 
    WARNING_FILTER += discard class="Expression Not Pointer or Array Handle" 
    WARNING_FILTER += discard class="Expression Not Pointer to Function" 
    WARNING_FILTER += discard class="Expression Not Pointer to Member" 
    WARNING_FILTER += discard class="Expression Not Pointer to Object" 
    WARNING_FILTER += discard class="Expression Not Pointer to class" 
    WARNING_FILTER += discard class="Expression Not Pointer to struct or union" 
    WARNING_FILTER += discard class="Expression Not Pointer" 
    WARNING_FILTER += discard class="Expression Not Scalar" 
    WARNING_FILTER += discard class="Expression Not a Glvalue" 
    WARNING_FILTER += discard class="Expression Not a Modifiable Lvalue" 
    WARNING_FILTER += discard class="Expression Not an Lvalue or Function Designator" 
    WARNING_FILTER += discard class="Expression Not an Lvalue" 
    WARNING_FILTER += discard class="Expression Not bool" 
    WARNING_FILTER += discard class="Expression Not class" 
    WARNING_FILTER += discard class="Expression Not struct or union" 
    WARNING_FILTER += discard class="Extended Designator Is GNU Extension" 
    WARNING_FILTER += discard class="Extended Friends Requires C++11" 
    WARNING_FILTER += discard class="Extended Modifier Ignored on enum" 
    WARNING_FILTER += discard class="External Name Clash" 
    WARNING_FILTER += discard class="Extra Arguments Ignored" 
    WARNING_FILTER += discard class="Extra Bits Ignored" 
    WARNING_FILTER += discard class="Extra Braces on Simple Initialization Priority" 
    WARNING_FILTER += discard class="Extra Characters on Number" 
    WARNING_FILTER += discard class="Extra Event Accessor Parameters" 
    WARNING_FILTER += discard class="Extra Property Accessor Parameters" 
    WARNING_FILTER += discard class="Extra Text in Preprocessor Directive" 
    WARNING_FILTER += discard class="Extraneous Injected Declaration Tokens" 
    WARNING_FILTER += discard class="Extraneous Injected Member Tokens" 
    WARNING_FILTER += discard class="Extraneous Injected Statement Tokens" 
    WARNING_FILTER += discard class="Failed Destructor Constraints" 
    WARNING_FILTER += discard class="Failed Tuple Container Member Get" 
    WARNING_FILTER += discard class="Fallthrough Must Precede switch case" 
    WARNING_FILTER += discard class="Feature Not Allowed in Current Mode" 
    WARNING_FILTER += discard class="Feature Requires C" 
    WARNING_FILTER += discard class="Feature Test Macro Ignored" 
    WARNING_FILTER += discard class="Feature Test Macro Requires Identifier" 
    WARNING_FILTER += discard class="Field Cannot Be Tracking Reference" 
    WARNING_FILTER += discard class="Field Cannot Involve VLA Type" 
    WARNING_FILTER += discard class="Field Initializer Is Not Constant" 
    WARNING_FILTER += discard class="Field Initializers Requires C++11" 
    WARNING_FILTER += discard class="Field Name Conflicts With Class" 
    WARNING_FILTER += discard class="Field Subobject Not Initialized" 
    WARNING_FILTER += discard class="Field Target on Nontrivial Property or Event" 
    WARNING_FILTER += discard class="Field Type Cannot Be Qualified With Named Address Space" 
    WARNING_FILTER += discard class="Field Uses Tail Padding" 
    WARNING_FILTER += discard class="Field With asm Name Not Allowed" 
    WARNING_FILTER += discard class="Field Without DLL Interface" 
    WARNING_FILTER += discard class="Field initializer_list" 
    WARNING_FILTER += discard class="File Ends With Unterminated Type Definition" 
    WARNING_FILTER += discard class="File Open for Both Read and Write" 
    WARNING_FILTER += discard class="File System Race Condition" 
    WARNING_FILTER += discard class="File for Module Not Found" 
    WARNING_FILTER += discard class="Final Suspend Cannot throw" 
    WARNING_FILTER += discard class="Finalize Does Not Override Object Finalize" 
    WARNING_FILTER += discard class="Finalizer Does Not Exist" 
    WARNING_FILTER += discard class="Finalizer Name Must Be Qualified" 
    WARNING_FILTER += discard class="Finalizer Qualifier Type Mismatch" 
    WARNING_FILTER += discard class="Finalizer Requires Reference Type" 
    WARNING_FILTER += discard class="Finalizer Type Mismatch" 
    WARNING_FILTER += discard class="First Argument Must Be Integer Constant" 
    WARNING_FILTER += discard class="First Declaration Not gnu_inline" 
    WARNING_FILTER += discard class="First inline After Definition" 
    WARNING_FILTER += discard class="Fixed Sign Change" 
    WARNING_FILTER += discard class="Fixed Template Parameter" 
    WARNING_FILTER += discard class="Fixed register Clobbered" 
    WARNING_FILTER += discard class="Fixed register Used" 
    WARNING_FILTER += discard class="Fixed to Fixed Conversion" 
    WARNING_FILTER += discard class="Fixed to Float Conversion" 
    WARNING_FILTER += discard class="Fixed to Integer Conversion" 
    WARNING_FILTER += discard class="Flexible Array Member Not Allowed" 
    WARNING_FILTER += discard class="Float Division By Zero" 
    WARNING_FILTER += discard class="Float Template Parameter" 
    WARNING_FILTER += discard class="Float to Fixed Conversion" 
    WARNING_FILTER += discard class="Float to Float Conversion" 
    WARNING_FILTER += discard class="Float to Integer Conversion" 
    WARNING_FILTER += discard class="Floating Point Domain Error" 
    WARNING_FILTER += discard class="Floating Point Range Error" 
    WARNING_FILTER += discard class="Fold Expression Operator Mismatch" 
    WARNING_FILTER += discard class="Format Argument Does Not Exist" 
    WARNING_FILTER += discard class="Format Argument Is Not String" 
    WARNING_FILTER += discard class="Format String Injection" 
    WARNING_FILTER += discard class="Format String Type Error" 
    WARNING_FILTER += discard class="Format String" 
    WARNING_FILTER += discard class="Found From Header Unit Map" 
    WARNING_FILTER += discard class="Found From Module Map" 
    WARNING_FILTER += discard class="Free Null Pointer" 
    WARNING_FILTER += discard class="Fully Qualified Constructor Call" 
    WARNING_FILTER += discard class="Function Call Has No Effect" 
    WARNING_FILTER += discard class="Function Defaulted in friend Declaration" 
    WARNING_FILTER += discard class="Function Does Not Match Arguments" 
    WARNING_FILTER += discard class="Function Ineligible" 
    WARNING_FILTER += discard class="Function Modifier Requires Virtual Function" 
    WARNING_FILTER += discard class="Function Modifiers abstract and sealed" 
    WARNING_FILTER += discard class="Function Qualifier on Constructor or Destructor" 
    WARNING_FILTER += discard class="Function Qualifier on Finalizer" 
    WARNING_FILTER += discard class="Function Qualifier on Nonmember" 
    WARNING_FILTER += discard class="Function Qualifier on new or delete" 
    WARNING_FILTER += discard class="Function Qualifier on static Member" 
    WARNING_FILTER += discard class="Function Returning Abstract Class" 
    WARNING_FILTER += discard class="Function Returning Array" 
    WARNING_FILTER += discard class="Function Returning Function" 
    WARNING_FILTER += discard class="Function Returning Named Address Space" 
    WARNING_FILTER += discard class="Function Returning Shared" 
    WARNING_FILTER += discard class="Function Template Cannot Be Defaulted" 
    WARNING_FILTER += discard class="Function Template Named main" 
    WARNING_FILTER += discard class="Function Type Must Come From Declarator" 
    WARNING_FILTER += discard class="Function Type Not Allowed" 
    WARNING_FILTER += discard class="Function Type Required" 
    WARNING_FILTER += discard class="GCC #pragma Nothing to Pop" 
    WARNING_FILTER += discard class="GCC Lvalue Cast Ignored" 
    WARNING_FILTER += discard class="GCC Use of Cast as Lvalue" 
    WARNING_FILTER += discard class="GNU Attribute on Template Redeclaration but Original Kept" 
    WARNING_FILTER += discard class="GNU Attribute on Template Redeclaration" 
    WARNING_FILTER += discard class="GNU C89 --inlining Requires C" 
    WARNING_FILTER += discard class="GNU May Use Bit Padding" 
    WARNING_FILTER += discard class="GNU Multiversion Only One arch=" 
    WARNING_FILTER += discard class="GNU Multiversion default Missing" 
    WARNING_FILTER += discard class="GNU Virtual Base Gap" 
    WARNING_FILTER += discard class="GNU Visibility Conflict" 
    WARNING_FILTER += discard class="Gamma on Zero" 
    WARNING_FILTER += discard class="Generated Default Constructor Exception Specification Circularity" 
    WARNING_FILTER += discard class="Generated Default Constructor Used in Field Initializer" 
    WARNING_FILTER += discard class="Generated Exception Specification Override Incompatible" 
    WARNING_FILTER += discard class="Generic Class Cannot Be Custom Attribute" 
    WARNING_FILTER += discard class="Generic Class Must Be Managed" 
    WARNING_FILTER += discard class="Generic Lambda Cannot Capture" 
    WARNING_FILTER += discard class="Generic Parameter Cannot Have Default" 
    WARNING_FILTER += discard class="Generic Parameter Does Not Permit Varargs" 
    WARNING_FILTER += discard class="Generic Parameter Requires __clrcall" 
    WARNING_FILTER += discard class="Generic Selection With Points to" 
    WARNING_FILTER += discard class="Generic Type in Template Argument" 
    WARNING_FILTER += discard class="Generic in Template" 
    WARNING_FILTER += discard class="Global Defined After Nested Type" 
    WARNING_FILTER += discard class="Global Module Fragment Declaration Must Come First" 
    WARNING_FILTER += discard class="Global Module Source Conflict" 
    WARNING_FILTER += discard class="Global Namespace Has No Actual Member" 
    WARNING_FILTER += discard class="Global Qualifier Not Allowed" 
    WARNING_FILTER += discard class="GlobalHandle on GMEM_FIXED Memory" 
    WARNING_FILTER += discard class="GlobalLock on GMEM_FIXED Memory" 
    WARNING_FILTER += discard class="GlobalUnlock on GMEM_FIXED Memory" 
    WARNING_FILTER += discard class="Handle Member in Standard Class" 
    WARNING_FILTER += discard class="Handle of Nonmanaged" 
    WARNING_FILTER += discard class="Handle to Address Type" 
    WARNING_FILTER += discard class="Handle to Array" 
    WARNING_FILTER += discard class="Handle to Function" 
    WARNING_FILTER += discard class="Handle to Standard Class Type" 
    WARNING_FILTER += discard class="Handle to Unscoped enum Type" 
    WARNING_FILTER += discard class="Handle to Value Class" 
    WARNING_FILTER += discard class="Handle to enum" 
    WARNING_FILTER += discard class="Handle to void" 
    WARNING_FILTER += discard class="Handler Redeclares Parameter" 
    WARNING_FILTER += discard class="Hardcoded Authentication" 
    WARNING_FILTER += discard class="Hardcoded Crypto Key" 
    WARNING_FILTER += discard class="Hardcoded Crypto Salt" 
    WARNING_FILTER += discard class="Hardcoded Seed in PRNG" 
    WARNING_FILTER += discard class="Header Not Importable" 
    WARNING_FILTER += discard class="Header Unit Creation Failure" 
    WARNING_FILTER += discard class="Hex Floating Point Constant" 
    WARNING_FILTER += discard class="Hidden Anonymous union Field" 
    WARNING_FILTER += discard class="Hidden by Old for-init" 
    WARNING_FILTER += discard class="IFC Bad Function Definition" 
    WARNING_FILTER += discard class="IFC Bad Function Parameter Counts Multiple Multiple" 
    WARNING_FILTER += discard class="IFC Bad Function Parameter Counts Multiple Single" 
    WARNING_FILTER += discard class="IFC Bad Function Parameter Counts Single Multiple" 
    WARNING_FILTER += discard class="IFC Bad Function Parameter Name" 
    WARNING_FILTER += discard class="IFC Bad Function Parameter Wrong Chart" 
    WARNING_FILTER += discard class="IFC Bad Identifier" 
    WARNING_FILTER += discard class="IFC Entity Reference Failure" 
    WARNING_FILTER += discard class="IFC File Incompatibility" 
    WARNING_FILTER += discard class="IFC Function Template Parse Failure" 
    WARNING_FILTER += discard class="IFC Line Number Overflow" 
    WARNING_FILTER += discard class="IFC Missing Function Definition" 
    WARNING_FILTER += discard class="IFC No Corresponding Calling Conversion" 
    WARNING_FILTER += discard class="IFC No Corresponding Operator" 
    WARNING_FILTER += discard class="IFC Partition Bad Entry Size" 
    WARNING_FILTER += discard class="IFC Partition Mismatch" 
    WARNING_FILTER += discard class="IFC Partition Missing Element" 
    WARNING_FILTER += discard class="IFC Requirement Failure Fill in" 
    WARNING_FILTER += discard class="IFC Requirement Failure" 
    WARNING_FILTER += discard class="IFC Too Few Template Arguments" 
    WARNING_FILTER += discard class="IFC Too Many Template Arguments" 
    WARNING_FILTER += discard class="IFC Unexpected Null Scope Member" 
    WARNING_FILTER += discard class="IL Display Requires IL File Name" 
    WARNING_FILTER += discard class="IL File Must Be Specified" 
    WARNING_FILTER += discard class="IL File Version Change" 
    WARNING_FILTER += discard class="Identifier Already Declared" 
    WARNING_FILTER += discard class="Identifier Can Only Appear in Function" 
    WARNING_FILTER += discard class="Identifier Must Be Class or Type Name" 
    WARNING_FILTER += discard class="Identifier Must Be Class or namespace Name" 
    WARNING_FILTER += discard class="Identifier Not Keyword" 
    WARNING_FILTER += discard class="Ignored Return Value" 
    WARNING_FILTER += discard class="Ignoring Attribute on Anonymous namespace" 
    WARNING_FILTER += discard class="Ignoring Attribute on Non-inline namespace" 
    WARNING_FILTER += discard class="Imaginary Times Assign" 
    WARNING_FILTER += discard class="Implicit Address of Explicit this Function" 
    WARNING_FILTER += discard class="Implicit Call of Ambiguous Name" 
    WARNING_FILTER += discard class="Implicit Copy this Capture Deprecated" 
    WARNING_FILTER += discard class="Implicit Fixed Point to Floating Point Conversion" 
    WARNING_FILTER += discard class="Implicit Function Declaration" 
    WARNING_FILTER += discard class="Implicit co_return With No return_void" 
    WARNING_FILTER += discard class="Implicit int on main" 
    WARNING_FILTER += discard class="Implicitly Deleted Move Candidate Ignored" 
    WARNING_FILTER += discard class="Import Requires Microsoft" 
    WARNING_FILTER += discard class="Import Skipped" 
    WARNING_FILTER += discard class="Improperly Terminated Macro Call" 
    WARNING_FILTER += discard class="Inaccessible Base Class" 
    WARNING_FILTER += discard class="Inaccessible Destructor Not Invoked" 
    WARNING_FILTER += discard class="Inaccessible Elided Copy Constructor" 
    WARNING_FILTER += discard class="Inaccessible Elided Destructor" 
    WARNING_FILTER += discard class="Inaccessible Rvalue Destructor" 
    WARNING_FILTER += discard class="Inaccessible Special Function" 
    WARNING_FILTER += discard class="Inappropriate C Atomic Initialization" 
    WARNING_FILTER += discard class="Inappropriate Call Outside Loop" 
    WARNING_FILTER += discard class="Include Directory Both System and Nonsystem" 
    WARNING_FILTER += discard class="Include Kind Mismatch" 
    WARNING_FILTER += discard class="Incompatible Assignment Operands" 
    WARNING_FILTER += discard class="Incompatible Delegate Object" 
    WARNING_FILTER += discard class="Incompatible Exception Specification" 
    WARNING_FILTER += discard class="Incompatible Exception Specifications" 
    WARNING_FILTER += discard class="Incompatible Language Modes" 
    WARNING_FILTER += discard class="Incompatible Linkage Specifier" 
    WARNING_FILTER += discard class="Incompatible Operands" 
    WARNING_FILTER += discard class="Incompatible Parameter" 
    WARNING_FILTER += discard class="Incompatible Pointer to Member Selection Operands" 
    WARNING_FILTER += discard class="Incompatible Shuffle Mask" 
    WARNING_FILTER += discard class="Incompatible Shuffle Source Operands" 
    WARNING_FILTER += discard class="Incompatible Thread Locality" 
    WARNING_FILTER += discard class="Incompatible Vectors Conversion" 
    WARNING_FILTER += discard class="Incompatible __builtin_complex Types" 
    WARNING_FILTER += discard class="Incompatible enum Base Types" 
    WARNING_FILTER += discard class="Incompatible enum Kinds" 
    WARNING_FILTER += discard class="Incompatible ifunc Resolver Type" 
    WARNING_FILTER += discard class="Incompatible inline Specifier on Specific Declaration" 
    WARNING_FILTER += discard class="Incompatible std::meta::value_of Type" 
    WARNING_FILTER += discard class="Incomplete Class Return Type" 
    WARNING_FILTER += discard class="Incomplete Class Type" 
    WARNING_FILTER += discard class="Incomplete Function Prototype" 
    WARNING_FILTER += discard class="Incomplete Function Return Type" 
    WARNING_FILTER += discard class="Incomplete Return Type" 
    WARNING_FILTER += discard class="Incomplete Type Not Allowed" 
    WARNING_FILTER += discard class="Incomplete User Type" 
    WARNING_FILTER += discard class="Incomplete Variable Type" 
    WARNING_FILTER += discard class="Incomplete enum Bit Field or Bad Opaque enum" 
    WARNING_FILTER += discard class="Inconsistent Alignment" 
    WARNING_FILTER += discard class="Inconsistent Deduction of auto" 
    WARNING_FILTER += discard class="Inconsistent std::string_view" 
    WARNING_FILTER += discard class="Inconsistent tls_model Attribute Argument" 
    WARNING_FILTER += discard class="Incorrect Host Identifier" 
    WARNING_FILTER += discard class="Incrementing of bool Deprecated" 
    WARNING_FILTER += discard class="Incrementing of bool Not Allowed" 
    WARNING_FILTER += discard class="Indeterminate Overloaded Function" 
    WARNING_FILTER += discard class="Indirect Anonymous union Designator" 
    WARNING_FILTER += discard class="Indirect Nonvirtual Base Class Not Allowed" 
    WARNING_FILTER += discard class="Ineligible Default Constructor" 
    WARNING_FILTER += discard class="Ineligible Member Function" 
    WARNING_FILTER += discard class="Inexact Fixed Conversion" 
    WARNING_FILTER += discard class="Inexact Fixed-point Conversion" 
    WARNING_FILTER += discard class="Inexact Floating Point Conversion" 
    WARNING_FILTER += discard class="Inheritance Kind Already Set" 
    WARNING_FILTER += discard class="Inheritance Kind Ignored on enum" 
    WARNING_FILTER += discard class="Inherited Member Not Allowed" 
    WARNING_FILTER += discard class="Inheriting Constructor Ignored for Copy" 
    WARNING_FILTER += discard class="Inheriting Constructor Not From Direct Base" 
    WARNING_FILTER += discard class="Inheriting Constructor Requires C++11" 
    WARNING_FILTER += discard class="Initialization Needing Temporary Not Allowed" 
    WARNING_FILTER += discard class="Initialization Priority List Element Type Not Complete Object" 
    WARNING_FILTER += discard class="Initialization Priority Priority Reserved" 
    WARNING_FILTER += discard class="Initialization Priority Statement in Range for Nonstandard" 
    WARNING_FILTER += discard class="Initializer Differs in Other Translation Unit" 
    WARNING_FILTER += discard class="Initializer Not Allowed on Array new" 
    WARNING_FILTER += discard class="Initializer Not Constant" 
    WARNING_FILTER += discard class="Initializer in Parameter" 
    WARNING_FILTER += discard class="Initializers Incompatible" 
    WARNING_FILTER += discard class="Input After Output Without Positioning" 
    WARNING_FILTER += discard class="Instantiation Option Requires C++" 
    WARNING_FILTER += discard class="Instantiation Requested No Definition Supplied" 
    WARNING_FILTER += discard class="Instantiation Requested and Specialized" 
    WARNING_FILTER += discard class="Insufficient enum Range" 
    WARNING_FILTER += discard class="Integer May Not Fit in Fixed Point Result" 
    WARNING_FILTER += discard class="Integer Overflow Class Internal" 
    WARNING_FILTER += discard class="Integer Overflow Internal" 
    WARNING_FILTER += discard class="Integer Overflow of Allocation Size" 
    WARNING_FILTER += discard class="Integer Overflow" 
    WARNING_FILTER += discard class="Integer Pack Element for Template" 
    WARNING_FILTER += discard class="Integer Pack Element for Type" 
    WARNING_FILTER += discard class="Integer Too Large" 
    WARNING_FILTER += discard class="Integer Truncated" 
    WARNING_FILTER += discard class="Integer to Fixed Conversion" 
    WARNING_FILTER += discard class="Integer to Float Conversion" 
    WARNING_FILTER += discard class="Interface Cannot Be Local" 
    WARNING_FILTER += discard class="Interface Cannot Be Nested Class" 
    WARNING_FILTER += discard class="Interface Cannot Have Constructor or Destructor" 
    WARNING_FILTER += discard class="Interface Cannot Have Data Member" 
    WARNING_FILTER += discard class="Interface Cannot Have Member Generics" 
    WARNING_FILTER += discard class="Interface Cannot Have Member Templates" 
    WARNING_FILTER += discard class="Interface Cannot Have Operator" 
    WARNING_FILTER += discard class="Interface Cannot Have Virtual Base" 
    WARNING_FILTER += discard class="Interface Cannot Have friend" 
    WARNING_FILTER += discard class="Interface Cannot Have private or protected" 
    WARNING_FILTER += discard class="Interface Cannot Have static Members" 
    WARNING_FILTER += discard class="Interface Cannot Have typedef" 
    WARNING_FILTER += discard class="Interface Must Derive From Interface" 
    WARNING_FILTER += discard class="Interface Non-static Data Member" 
    WARNING_FILTER += discard class="Interface Not Implemented" 
    WARNING_FILTER += discard class="Intrinsic Name Released" 
    WARNING_FILTER += discard class="Intrinsic Requires Template Instance" 
    WARNING_FILTER += discard class="Invalid #import Directory" 
    WARNING_FILTER += discard class="Invalid #pragma Conform Kind" 
    WARNING_FILTER += discard class="Invalid Access Specifier" 
    WARNING_FILTER += discard class="Invalid Alignment Reducing Attribute" 
    WARNING_FILTER += discard class="Invalid Argument to Attribute" 
    WARNING_FILTER += discard class="Invalid Assignment Operator to Be Defaulted" 
    WARNING_FILTER += discard class="Invalid Attribute Location" 
    WARNING_FILTER += discard class="Invalid Attribute Target for Microsoft Attribute" 
    WARNING_FILTER += discard class="Invalid Attribute Target for Standalone Microsoft Attribute" 
    WARNING_FILTER += discard class="Invalid Base for Microsoft Attributes" 
    WARNING_FILTER += discard class="Invalid Bit Cast Type" 
    WARNING_FILTER += discard class="Invalid CWD" 
    WARNING_FILTER += discard class="Invalid Character in Unicode Name" 
    WARNING_FILTER += discard class="Invalid Character" 
    WARNING_FILTER += discard class="Invalid Cleanup Routine" 
    WARNING_FILTER += discard class="Invalid Constraint" 
    WARNING_FILTER += discard class="Invalid Constructor to Be Defaulted" 
    WARNING_FILTER += discard class="Invalid Declaration" 
    WARNING_FILTER += discard class="Invalid Default Argument" 
    WARNING_FILTER += discard class="Invalid Delegate Type" 
    WARNING_FILTER += discard class="Invalid Designator Kind" 
    WARNING_FILTER += discard class="Invalid Destructor Name" 
    WARNING_FILTER += discard class="Invalid EDG Base Directory" 
    WARNING_FILTER += discard class="Invalid Empty Attribute Argument List" 
    WARNING_FILTER += discard class="Invalid Empty Fold Expression" 
    WARNING_FILTER += discard class="Invalid Empty Initializer List" 
    WARNING_FILTER += discard class="Invalid Entity for Pending Constraint" 
    WARNING_FILTER += discard class="Invalid Enumerator Value" 
    WARNING_FILTER += discard class="Invalid Error Limit" 
    WARNING_FILTER += discard class="Invalid Error Number" 
    WARNING_FILTER += discard class="Invalid Error Tag" 
    WARNING_FILTER += discard class="Invalid Event Accessor Declaration" 
    WARNING_FILTER += discard class="Invalid Event Handler Type" 
    WARNING_FILTER += discard class="Invalid Event Type" 
    WARNING_FILTER += discard class="Invalid Event Use" 
    WARNING_FILTER += discard class="Invalid Explicit Exception Specification" 
    WARNING_FILTER += discard class="Invalid Finalizer Name" 
    WARNING_FILTER += discard class="Invalid Flag Name" 
    WARNING_FILTER += discard class="Invalid Float Parameter for Literal Operator" 
    WARNING_FILTER += discard class="Invalid Fold Expression Operator" 
    WARNING_FILTER += discard class="Invalid Function to Be Defaulted" 
    WARNING_FILTER += discard class="Invalid GNU Version" 
    WARNING_FILTER += discard class="Invalid GNU __sync Size" 
    WARNING_FILTER += discard class="Invalid Generic Argument" 
    WARNING_FILTER += discard class="Invalid Generic Specialization" 
    WARNING_FILTER += discard class="Invalid IDisposable Dispose" 
    WARNING_FILTER += discard class="Invalid IFC Partition" 
    WARNING_FILTER += discard class="Invalid IFC Position Backtrace Field" 
    WARNING_FILTER += discard class="Invalid IFC Position Backtrace Position" 
    WARNING_FILTER += discard class="Invalid IFC Sort Value" 
    WARNING_FILTER += discard class="Invalid Identifier Start Universal Character Name" 
    WARNING_FILTER += discard class="Invalid Identifier Universal Character Name" 
    WARNING_FILTER += discard class="Invalid Inheritance Kind for Class" 
    WARNING_FILTER += discard class="Invalid Initialization Priority Statement" 
    WARNING_FILTER += discard class="Invalid Instantiation Argument" 
    WARNING_FILTER += discard class="Invalid Instantiation Directory" 
    WARNING_FILTER += discard class="Invalid Instantiation Mode" 
    WARNING_FILTER += discard class="Invalid Integer Kind" 
    WARNING_FILTER += discard class="Invalid Integer Parameter for Literal Operator" 
    WARNING_FILTER += discard class="Invalid Interface Class Base" 
    WARNING_FILTER += discard class="Invalid Kind" 
    WARNING_FILTER += discard class="Invalid Link Scope" 
    WARNING_FILTER += discard class="Invalid Literal Operator Identifier" 
    WARNING_FILTER += discard class="Invalid Literal Type" 
    WARNING_FILTER += discard class="Invalid Locale" 
    WARNING_FILTER += discard class="Invalid Macro Definition" 
    WARNING_FILTER += discard class="Invalid Macro Undefinition" 
    WARNING_FILTER += discard class="Invalid Member Constant Type" 
    WARNING_FILTER += discard class="Invalid Microsoft Attribute Name" 
    WARNING_FILTER += discard class="Invalid Microsoft Attribute Target" 
    WARNING_FILTER += discard class="Invalid Microsoft Attribute enum Value" 
    WARNING_FILTER += discard class="Invalid Microsoft Attribute uuid Value" 
    WARNING_FILTER += discard class="Invalid Microsoft Version" 
    WARNING_FILTER += discard class="Invalid Misaligned IFC Position" 
    WARNING_FILTER += discard class="Invalid NEON Polyvector Element Type" 
    WARNING_FILTER += discard class="Invalid NEON Vector Element Type" 
    WARNING_FILTER += discard class="Invalid NEON Vector Size" 
    WARNING_FILTER += discard class="Invalid Name After template" 
    WARNING_FILTER += discard class="Invalid Nested Class Redeclaration" 
    WARNING_FILTER += discard class="Invalid Nontype Template Argument" 
    WARNING_FILTER += discard class="Invalid Number" 
    WARNING_FILTER += discard class="Invalid Object Finalize" 
    WARNING_FILTER += discard class="Invalid Operator in Requires Clause" 
    WARNING_FILTER += discard class="Invalid Option" 
    WARNING_FILTER += discard class="Invalid Output Mode" 
    WARNING_FILTER += discard class="Invalid Overflowing IFC Position" 
    WARNING_FILTER += discard class="Invalid PCH Directory" 
    WARNING_FILTER += discard class="Invalid PCH File" 
    WARNING_FILTER += discard class="Invalid PCH Size" 
    WARNING_FILTER += discard class="Invalid Parameter Array Type" 
    WARNING_FILTER += discard class="Invalid Parameter Type for Literal Operator" 
    WARNING_FILTER += discard class="Invalid Parameter for Literal Operator Template" 
    WARNING_FILTER += discard class="Invalid Placeholder for Defaulted Spaceship Return" 
    WARNING_FILTER += discard class="Invalid Pointer Parameter for Literal Operator" 
    WARNING_FILTER += discard class="Invalid Previous Declaration Iterator" 
    WARNING_FILTER += discard class="Invalid Property Accessor Declaration" 
    WARNING_FILTER += discard class="Invalid Reference Class Base" 
    WARNING_FILTER += discard class="Invalid Reference Tracking Reference Combination" 
    WARNING_FILTER += discard class="Invalid Reflection Equality" 
    WARNING_FILTER += discard class="Invalid Reflection for Intrinsic" 
    WARNING_FILTER += discard class="Invalid Scalable Vector Element Type" 
    WARNING_FILTER += discard class="Invalid Scalable Vector Tuple Elements" 
    WARNING_FILTER += discard class="Invalid Scoped enum Elaboration" 
    WARNING_FILTER += discard class="Invalid Second Parameter Type for Literal Operator" 
    WARNING_FILTER += discard class="Invalid Selective Overrider Declaration" 
    WARNING_FILTER += discard class="Invalid Spaceship Types" 
    WARNING_FILTER += discard class="Invalid Specific Reference Class Base" 
    WARNING_FILTER += discard class="Invalid Specifier for Deduction Guide" 
    WARNING_FILTER += discard class="Invalid Standard Comparison Type" 
    WARNING_FILTER += discard class="Invalid Standard Comparison Value" 
    WARNING_FILTER += discard class="Invalid Start of Member Declaration" 
    WARNING_FILTER += discard class="Invalid Start of Requires Clause Expression" 
    WARNING_FILTER += discard class="Invalid Statement in constexpr Constructor" 
    WARNING_FILTER += discard class="Invalid Statement in constexpr Function" 
    WARNING_FILTER += discard class="Invalid Storage Class in for-init" 
    WARNING_FILTER += discard class="Invalid String Literal Operator Template" 
    WARNING_FILTER += discard class="Invalid Structured Binding Specifier" 
    WARNING_FILTER += discard class="Invalid Structured Binding Syntax" 
    WARNING_FILTER += discard class="Invalid Structured Binding Type" 
    WARNING_FILTER += discard class="Invalid Symbolic asm Operand Name" 
    WARNING_FILTER += discard class="Invalid Target" 
    WARNING_FILTER += discard class="Invalid Template Directory" 
    WARNING_FILTER += discard class="Invalid Template Parameter for Literal Operator Template" 
    WARNING_FILTER += discard class="Invalid Token After template" 
    WARNING_FILTER += discard class="Invalid Type Constraint" 
    WARNING_FILTER += discard class="Invalid Type Pointed to for interior_ptr or pin_ptr" 
    WARNING_FILTER += discard class="Invalid Type for Builtin" 
    WARNING_FILTER += discard class="Invalid Type for Nullability" 
    WARNING_FILTER += discard class="Invalid Type for __w64" 
    WARNING_FILTER += discard class="Invalid Universal Character Name" 
    WARNING_FILTER += discard class="Invalid Unrepresentable IFC Position" 
    WARNING_FILTER += discard class="Invalid Use of Custom Microsoft Attribute" 
    WARNING_FILTER += discard class="Invalid Use of Microsoft Attribute" 
    WARNING_FILTER += discard class="Invalid Use of Standalone Custom Microsoft Attribute" 
    WARNING_FILTER += discard class="Invalid Use of Standalone Microsoft Attribute" 
    WARNING_FILTER += discard class="Invalid Use of concept" 
    WARNING_FILTER += discard class="Invalid User-defined Literal Value" 
    WARNING_FILTER += discard class="Invalid Value Class Base" 
    WARNING_FILTER += discard class="Invalid Variable main" 
    WARNING_FILTER += discard class="Invalid Vector Element Type" 
    WARNING_FILTER += discard class="Invalid _Pragma operator" 
    WARNING_FILTER += discard class="Invalid __INTADDR__ Address" 
    WARNING_FILTER += discard class="Invalid __builtin_fpclassify Arguments" 
    WARNING_FILTER += discard class="Invalid __pragma operator" 
    WARNING_FILTER += discard class="Invalid asm Qualifiers" 
    WARNING_FILTER += discard class="Invalid case Range" 
    WARNING_FILTER += discard class="Invalid clang Version" 
    WARNING_FILTER += discard class="Invalid co_return" 
    WARNING_FILTER += discard class="Invalid concept Identifier" 
    WARNING_FILTER += discard class="Invalid concept Redeclaration" 
    WARNING_FILTER += discard class="Invalid consteval" 
    WARNING_FILTER += discard class="Invalid constexpr Body" 
    WARNING_FILTER += discard class="Invalid constexpr memcmp" 
    WARNING_FILTER += discard class="Invalid constexpr" 
    WARNING_FILTER += discard class="Invalid constinit" 
    WARNING_FILTER += discard class="Invalid gcnew Type" 
    WARNING_FILTER += discard class="Invalid mmap Address" 
    WARNING_FILTER += discard class="Invalid noexcept Specifier Operand" 
    WARNING_FILTER += discard class="Invalid sentinel Argument" 
    WARNING_FILTER += discard class="Invalid std::initializer_list Parameter List" 
    WARNING_FILTER += discard class="Invalid std::meta::infovec for Reflection" 
    WARNING_FILTER += discard class="Invalid std::string_view for Reflection" 
    WARNING_FILTER += discard class="Invalid std::tuple_size" 
    WARNING_FILTER += discard class="Invalid target Attribute" 
    WARNING_FILTER += discard class="Invalid typename Specifier" 
    WARNING_FILTER += discard class="Is Constant Evaluated in Constant Expression" 
    WARNING_FILTER += discard class="Is Constant Evaluated in Non-constexpr Context" 
    WARNING_FILTER += discard class="Is Constant Evaluated in consteval Context" 
    WARNING_FILTER += discard class="K&R Mode Field Ambiguity" 
    WARNING_FILTER += discard class="Keyword Dropped" 
    WARNING_FILTER += discard class="LDAP Injection" 
    WARNING_FILTER += discard class="Label Operand Number Out of Range" 
    WARNING_FILTER += discard class="Label in constexpr Function" 
    WARNING_FILTER += discard class="Labeled Declaration" 
    WARNING_FILTER += discard class="Lambda Capture Involves Variable Length Array" 
    WARNING_FILTER += discard class="Lambda Capture Structured Binding" 
    WARNING_FILTER += discard class="Lambda Captures Handle or Tracking Reference" 
    WARNING_FILTER += discard class="Lambda Captures Managed Class Type" 
    WARNING_FILTER += discard class="Lambda Not Allowed Here" 
    WARNING_FILTER += discard class="Lambda Not Constant Expression" 
    WARNING_FILTER += discard class="Lambda Without Parameters Nonstandard" 
    WARNING_FILTER += discard class="Lambda Without Parameters Requires Clause" 
    WARNING_FILTER += discard class="Lambda in noexcept Specifier" 
    WARNING_FILTER += discard class="Lambda mutable and static" 
    WARNING_FILTER += discard class="Lambdas Requires C++11" 
    WARNING_FILTER += discard class="Last Line Backslash" 
    WARNING_FILTER += discard class="Leading Character Ignored in Character Literal" 
    WARNING_FILTER += discard class="Leak" 
    WARNING_FILTER += discard class="Library Injection" 
    WARNING_FILTER += discard class="Likely Unlikely Conflict" 
    WARNING_FILTER += discard class="Link Scope Relaxation" 
    WARNING_FILTER += discard class="Link Scope Requires External Linkage" 
    WARNING_FILTER += discard class="Linkage Conflict" 
    WARNING_FILTER += discard class="Linkage Specifier Not Allowed" 
    WARNING_FILTER += discard class="Linkage main" 
    WARNING_FILTER += discard class="List Initialization Priority of Incomplete" 
    WARNING_FILTER += discard class="List Initializer Nonstandard in Current Mode" 
    WARNING_FILTER += discard class="List Macros Incompatible With Multiple Translation Units" 
    WARNING_FILTER += discard class="List Make Dependencies Incompatible With Multiple Translation Units" 
    WARNING_FILTER += discard class="Literal Fields Disallowed in C++/CX Mode" 
    WARNING_FILTER += discard class="Literal Operator Not Found" 
    WARNING_FILTER += discard class="Literal Requires Managed Class" 
    WARNING_FILTER += discard class="Literal Suffix No Underscore" 
    WARNING_FILTER += discard class="Literal Without Initializer" 
    WARNING_FILTER += discard class="Literal const Has No Effect" 
    WARNING_FILTER += discard class="Local #pragma pack" 
    WARNING_FILTER += discard class="Local CLI Managed Class Type" 
    WARNING_FILTER += discard class="Local Class Function Definition Missing" 
    WARNING_FILTER += discard class="Local Class friend Requires Prior Declaration" 
    WARNING_FILTER += discard class="Local Class in Managed Member Function" 
    WARNING_FILTER += discard class="Local Conflicts With auto Instantiation" 
    WARNING_FILTER += discard class="Local Function Attribute Ignored" 
    WARNING_FILTER += discard class="Local Lambda in Managed Member Function" 
    WARNING_FILTER += discard class="Local Named register Initializer Not Allowed" 
    WARNING_FILTER += discard class="Local Type Used in Exception" 
    WARNING_FILTER += discard class="Local Type in Function" 
    WARNING_FILTER += discard class="Local Type in Nonlocal Variable" 
    WARNING_FILTER += discard class="Local Type in Template Argument" 
    WARNING_FILTER += discard class="Local Variable Passed to Thread" 
    WARNING_FILTER += discard class="LocalHandle on LMEM_FIXED Memory" 
    WARNING_FILTER += discard class="LocalLock on LMEM_FIXED Memory" 
    WARNING_FILTER += discard class="LocalUnlock on LMEM_FIXED Memory" 
    WARNING_FILTER += discard class="Logarithm on Negative Value" 
    WARNING_FILTER += discard class="Logarithm on Zero" 
    WARNING_FILTER += discard class="Lone Flexible Array Member" 
    WARNING_FILTER += discard class="Long Lifetime Temporaries Incompatible With Newer Features" 
    WARNING_FILTER += discard class="Lossy Conversion" 
    WARNING_FILTER += discard class="MAX_PATH Exceeded" 
    WARNING_FILTER += discard class="MYTHREAD Constant Not Allowed" 
    WARNING_FILTER += discard class="Macro Not User-defined Literal Suffix" 
    WARNING_FILTER += discard class="Macro Recursion" 
    WARNING_FILTER += discard class="Macro in Preprocessor Directive" 
    WARNING_FILTER += discard class="Malformed Universal Character" 
    WARNING_FILTER += discard class="Managed Base for Standard Class" 
    WARNING_FILTER += discard class="Managed Class Cannot Have friend" 
    WARNING_FILTER += discard class="Managed Class Type Cannot Have private or protected Base" 
    WARNING_FILTER += discard class="Managed Member Exception Specification" 
    WARNING_FILTER += discard class="Managed Member Function Cannot Have Ellipsis Parameter" 
    WARNING_FILTER += discard class="Managed Object Not Caught by Handle" 
    WARNING_FILTER += discard class="Managed Object Not Thrown by Handle" 
    WARNING_FILTER += discard class="Managed nullptr Not Allowed" 
    WARNING_FILTER += discard class="Mangled Name Too Long" 
    WARNING_FILTER += discard class="Mangling for requires" 
    WARNING_FILTER += discard class="Masked by Default Handler" 
    WARNING_FILTER += discard class="Masked by Handler" 
    WARNING_FILTER += discard class="Match Limit for Symbolic asm Operand" 
    WARNING_FILTER += discard class="Maximum constexpr Option Requires C++" 
    WARNING_FILTER += discard class="Member Access Requires Pointer" 
    WARNING_FILTER += discard class="Member Already Initialized" 
    WARNING_FILTER += discard class="Member Cannot Have Internal Linkage" 
    WARNING_FILTER += discard class="Member Constant Not const" 
    WARNING_FILTER += discard class="Member Function Call on initonly Field" 
    WARNING_FILTER += discard class="Member Function Modifier on Template" 
    WARNING_FILTER += discard class="Member Function Modifier on static Member" 
    WARNING_FILTER += discard class="Member Function Redeclaration Outside Class" 
    WARNING_FILTER += discard class="Member Function Redeclaration" 
    WARNING_FILTER += discard class="Member Name Reserved by CLI operator" 
    WARNING_FILTER += discard class="Member Name Reserved by Property" 
    WARNING_FILTER += discard class="Member Partial Specialization Not in namespace" 
    WARNING_FILTER += discard class="Member Reference Requires Object" 
    WARNING_FILTER += discard class="Member Special After Class Definition" 
    WARNING_FILTER += discard class="Member using Must Be Visible in Direct Base" 
    WARNING_FILTER += discard class="Memory Attribute Ignored" 
    WARNING_FILTER += discard class="Memory Attribute Incompatible" 
    WARNING_FILTER += discard class="Memory Attribute May Not Precede Nested Declarator" 
    WARNING_FILTER += discard class="Memory Mismatch" 
    WARNING_FILTER += discard class="Microsoft Attribute Not Allowed" 
    WARNING_FILTER += discard class="Microsoft IFC Unavailable" 
    WARNING_FILTER += discard class="Microsoft Metadata Initialization Priority Failed" 
    WARNING_FILTER += discard class="Microsoft Parenthesized Member" 
    WARNING_FILTER += discard class="Microsoft Pointer Sign Extension" 
    WARNING_FILTER += discard class="Microsoft Pointer Signedness Conflict" 
    WARNING_FILTER += discard class="Microsoft Pointer Signedness Must Follow Star" 
    WARNING_FILTER += discard class="Microsoft Pointer Signedness on Pointer to Member" 
    WARNING_FILTER += discard class="Microsoft Pointer Width Conflict" 
    WARNING_FILTER += discard class="Microsoft Pointer Width Must Follow Star" 
    WARNING_FILTER += discard class="Microsoft Version Does Not Support C++14 Mode" 
    WARNING_FILTER += discard class="Microsoft Version Does Not Support C++17 Mode" 
    WARNING_FILTER += discard class="Microsoft Version Does Not Support C++20 Mode" 
    WARNING_FILTER += discard class="Microsoft Version Does Not Support C++23 Mode" 
    WARNING_FILTER += discard class="Microsoft Version Does Not Support C++latest Mode" 
    WARNING_FILTER += discard class="Microsoft inline Not Allowed Here" 
    WARNING_FILTER += discard class="Misaligned Object" 
    WARNING_FILTER += discard class="Mismatched Function for Delegate" 
    WARNING_FILTER += discard class="Mismatched Shared Block Size" 
    WARNING_FILTER += discard class="Missing != on Range-based for Type" 
    WARNING_FILTER += discard class="Missing != on for each Type" 
    WARNING_FILTER += discard class="Missing Access Specifier" 
    WARNING_FILTER += discard class="Missing Argument" 
    WARNING_FILTER += discard class="Missing Attribute Arguments" 
    WARNING_FILTER += discard class="Missing Attribute in Other Translation Unit" 
    WARNING_FILTER += discard class="Missing Attribute namespace" 
    WARNING_FILTER += discard class="Missing Base Class or Member Name" 
    WARNING_FILTER += discard class="Missing Bindings" 
    WARNING_FILTER += discard class="Missing Class Definition" 
    WARNING_FILTER += discard class="Missing Constraint Letter" 
    WARNING_FILTER += discard class="Missing Declaration Specifiers" 
    WARNING_FILTER += discard class="Missing Default Constructor on Unnamed const" 
    WARNING_FILTER += discard class="Missing Default Constructor on const" 
    WARNING_FILTER += discard class="Missing Delegate Object" 
    WARNING_FILTER += discard class="Missing Exception Declaration" 
    WARNING_FILTER += discard class="Missing Floating Point Type" 
    WARNING_FILTER += discard class="Missing GNU std::source_location Type" 
    WARNING_FILTER += discard class="Missing Handler" 
    WARNING_FILTER += discard class="Missing Header Unit Map" 
    WARNING_FILTER += discard class="Missing Increment on Range-based for Type" 
    WARNING_FILTER += discard class="Missing Increment on for each Type" 
    WARNING_FILTER += discard class="Missing Indirect on Range-based for Type" 
    WARNING_FILTER += discard class="Missing Indirect on for each Type" 
    WARNING_FILTER += discard class="Missing Initializer List" 
    WARNING_FILTER += discard class="Missing Initializer on Fields With constexpr Constructor" 
    WARNING_FILTER += discard class="Missing Initializer on Fields" 
    WARNING_FILTER += discard class="Missing Initializer on Reference" 
    WARNING_FILTER += discard class="Missing Initializer on Unnamed const" 
    WARNING_FILTER += discard class="Missing Initializer on const" 
    WARNING_FILTER += discard class="Missing Initializer" 
    WARNING_FILTER += discard class="Missing Label Operand Number" 
    WARNING_FILTER += discard class="Missing Lambda Body" 
    WARNING_FILTER += discard class="Missing Named register Storage Class" 
    WARNING_FILTER += discard class="Missing Raw String Delimiter \"(\"" 
    WARNING_FILTER += discard class="Missing Raw String Delimiter" 
    WARNING_FILTER += discard class="Missing Return Statement" 
    WARNING_FILTER += discard class="Missing Return Value" 
    WARNING_FILTER += discard class="Missing Source File Name" 
    WARNING_FILTER += discard class="Missing Template Argument List" 
    WARNING_FILTER += discard class="Missing Template Parameter List" 
    WARNING_FILTER += discard class="Missing Template Parameter" 
    WARNING_FILTER += discard class="Missing Trailing Return Type" 
    WARNING_FILTER += discard class="Missing Type Specifier" 
    WARNING_FILTER += discard class="Missing __VA_OPT__ Parenthesis" 
    WARNING_FILTER += discard class="Missing __implements List" 
    WARNING_FILTER += discard class="Missing add or remove Accessor" 
    WARNING_FILTER += discard class="Missing const Assignment Operator" 
    WARNING_FILTER += discard class="Missing const Copy Constructor" 
    WARNING_FILTER += discard class="Missing constinit" 
    WARNING_FILTER += discard class="Missing finally" 
    WARNING_FILTER += discard class="Missing get and set Accessors" 
    WARNING_FILTER += discard class="Missing gnu_inline Attribute on Redeclaration" 
    WARNING_FILTER += discard class="Missing initializer_list Constructor" 
    WARNING_FILTER += discard class="Missing namespace Name" 
    WARNING_FILTER += discard class="Missing override Attribute in base_check Class" 
    WARNING_FILTER += discard class="Missing std::tuple Element Instance" 
    WARNING_FILTER += discard class="Missing std::tuple Element" 
    WARNING_FILTER += discard class="Missing target Attribute" 
    WARNING_FILTER += discard class="Missing typedef Name" 
    WARNING_FILTER += discard class="Mixed Encodings in String Concatenation" 
    WARNING_FILTER += discard class="Mixed Vector Scalar Operation" 
    WARNING_FILTER += discard class="Mixed enum Type Anachronism" 
    WARNING_FILTER += discard class="Mixed enum Type" 
    WARNING_FILTER += discard class="Mode Incompatible With Type" 
    WARNING_FILTER += discard class="Modification of initonly Field" 
    WARNING_FILTER += discard class="Modification of static initonly Field" 
    WARNING_FILTER += discard class="Modified Class Template Placeholder" 
    WARNING_FILTER += discard class="Modified __auto_type" 
    WARNING_FILTER += discard class="Modified decltype(auto) Type" 
    WARNING_FILTER += discard class="Modifier Not Allowed on Destructor" 
    WARNING_FILTER += discard class="Modifier Not Allowed on Finalizer" 
    WARNING_FILTER += discard class="Module Already Imported" 
    WARNING_FILTER += discard class="Module Cannot Depend on Itself" 
    WARNING_FILTER += discard class="Module Declaration Only After Global Module" 
    WARNING_FILTER += discard class="Module File Contains Unsupported Constructs" 
    WARNING_FILTER += discard class="Module File Mismatch" 
    WARNING_FILTER += discard class="Module File Not Found" 
    WARNING_FILTER += discard class="Module Import Conflict" 
    WARNING_FILTER += discard class="Module Read Error" 
    WARNING_FILTER += discard class="Module Requires Primary Name" 
    WARNING_FILTER += discard class="Module Use With export Template" 
    WARNING_FILTER += discard class="Module Use in Multiple Translation Unit Mode" 
    WARNING_FILTER += discard class="Modules Not Enabled" 
    WARNING_FILTER += discard class="More Than One Capture" 
    WARNING_FILTER += discard class="More Than One Fragment Declaration" 
    WARNING_FILTER += discard class="More Than One Module Declaration" 
    WARNING_FILTER += discard class="Move Constructor or Assign Copy of Lvalue" 
    WARNING_FILTER += discard class="Move Operations Require Rvalue References" 
    WARNING_FILTER += discard class="Multicharacter User-defined Literal" 
    WARNING_FILTER += discard class="Multiple Attribute Namespaces" 
    WARNING_FILTER += discard class="Multiple Block Sizes" 
    WARNING_FILTER += discard class="Multiple Class Constraints" 
    WARNING_FILTER += discard class="Multiple Constraint Clauses" 
    WARNING_FILTER += discard class="Multiple Explicit Instantiations" 
    WARNING_FILTER += discard class="Multiple Header Map Matches" 
    WARNING_FILTER += discard class="Multiple Inheritance in Embedded C++" 
    WARNING_FILTER += discard class="Multiple Link Scope Specifiers" 
    WARNING_FILTER += discard class="Multiple Module Matches" 
    WARNING_FILTER += discard class="Multiple Named Address Spaces" 
    WARNING_FILTER += discard class="Multiple Nested Types" 
    WARNING_FILTER += discard class="Multiple Overrides" 
    WARNING_FILTER += discard class="Multiple Storage Classes" 
    WARNING_FILTER += discard class="Multiple Template Declarations Not Allowed" 
    WARNING_FILTER += discard class="Multiple Thread-local Storage Specifiers" 
    WARNING_FILTER += discard class="Multiple Visibility Specifiers" 
    WARNING_FILTER += discard class="Multiple __declspec(align(...))" 
    WARNING_FILTER += discard class="Multiple union Designators" 
    WARNING_FILTER += discard class="Multiple union Field Initializers Empty" 
    WARNING_FILTER += discard class="Multiple union Field Initializers" 
    WARNING_FILTER += discard class="Must Be Prototype Instantiation" 
    WARNING_FILTER += discard class="Must Be _Atomic Qualified Type" 
    WARNING_FILTER += discard class="Must Introduce Attribute" 
    WARNING_FILTER += discard class="Must Specify C++11 Mode" 
    WARNING_FILTER += discard class="Must Specify C++14 Mode" 
    WARNING_FILTER += discard class="Name Before typeid Not Type" 
    WARNING_FILTER += discard class="Name Linkage Mismatch for Variable" 
    WARNING_FILTER += discard class="Name Lookup Bug" 
    WARNING_FILTER += discard class="Name Must Be Prototype Instantiation" 
    WARNING_FILTER += discard class="Name Not Class in File Scope" 
    WARNING_FILTER += discard class="Name Not Found in File Scope" 
    WARNING_FILTER += discard class="Name Not Member of Class or Base Classes" 
    WARNING_FILTER += discard class="Name Not Tag in File Scope" 
    WARNING_FILTER += discard class="Named Address Space Not Allowed" 
    WARNING_FILTER += discard class="Named Address Space for Parameter" 
    WARNING_FILTER += discard class="Named Address Space on Function Type" 
    WARNING_FILTER += discard class="Named Module Source Conflict" 
    WARNING_FILTER += discard class="Named Override Requires Managed Type" 
    WARNING_FILTER += discard class="Named Override Requires virtual" 
    WARNING_FILTER += discard class="Named Override Type Mismatch" 
    WARNING_FILTER += discard class="Named register Not Allowed" 
    WARNING_FILTER += discard class="Namespaces in Embedded C++" 
    WARNING_FILTER += discard class="Narrowing Conversion" 
    WARNING_FILTER += discard class="Negative Character Value" 
    WARNING_FILTER += discard class="Negative Shift Amount" 
    WARNING_FILTER += discard class="Negative Value" 
    WARNING_FILTER += discard class="Negative file descriptor" 
    WARNING_FILTER += discard class="Nested Class Anachronism" 
    WARNING_FILTER += discard class="Nested Comment" 
    WARNING_FILTER += discard class="Nested __VA_OPT__" 
    WARNING_FILTER += discard class="Nested upc_forall" 
    WARNING_FILTER += discard class="Never Defined" 
    WARNING_FILTER += discard class="No Access or using Declaration in union" 
    WARNING_FILTER += discard class="No Access to Name" 
    WARNING_FILTER += discard class="No Access to Type Cfront Mode" 
    WARNING_FILTER += discard class="No Alignment on Definition" 
    WARNING_FILTER += discard class="No Appropriate delete" 
    WARNING_FILTER += discard class="No Array Designators in C++ Mode" 
    WARNING_FILTER += discard class="No Array new and delete Support" 
    WARNING_FILTER += discard class="No Chained Designators With Destructor" 
    WARNING_FILTER += discard class="No Chained Designators in C++ Mode" 
    WARNING_FILTER += discard class="No Class Template Guide" 
    WARNING_FILTER += discard class="No Classification for Fixed Point Type" 
    WARNING_FILTER += discard class="No Common Type" 
    WARNING_FILTER += discard class="No Constructor for Conversion" 
    WARNING_FILTER += discard class="No Constructor or Destructor using Declaration" 
    WARNING_FILTER += discard class="No Conversion Function" 
    WARNING_FILTER += discard class="No Corresponding Member delete" 
    WARNING_FILTER += discard class="No Corresponding Push" 
    WARNING_FILTER += discard class="No Corresponding delete" 
    WARNING_FILTER += discard class="No Default Constructor" 
    WARNING_FILTER += discard class="No Default delete in Virtual Destructor" 
    WARNING_FILTER += discard class="No Designator Value" 
    WARNING_FILTER += discard class="No Exception Support" 
    WARNING_FILTER += discard class="No Export Support" 
    WARNING_FILTER += discard class="No Finalizer using Declaration" 
    WARNING_FILTER += discard class="No Float128" 
    WARNING_FILTER += discard class="No Float80" 
    WARNING_FILTER += discard class="No GNU Virtual Base Gap" 
    WARNING_FILTER += discard class="No Implicit Capture on Enclosing Lambda" 
    WARNING_FILTER += discard class="No Internal Linkage for new or delete" 
    WARNING_FILTER += discard class="No Match for Address of Overloaded Function" 
    WARNING_FILTER += discard class="No Match for Type of Overloaded Function" 
    WARNING_FILTER += discard class="No Match in C11 Generic" 
    WARNING_FILTER += discard class="No Matching Arity" 
    WARNING_FILTER += discard class="No Matching Constructor" 
    WARNING_FILTER += discard class="No Matching Function Due to Selector" 
    WARNING_FILTER += discard class="No Matching Function" 
    WARNING_FILTER += discard class="No Matching Operator Function" 
    WARNING_FILTER += discard class="No Matching forScope Stack Entry" 
    WARNING_FILTER += discard class="No Matching new Function" 
    WARNING_FILTER += discard class="No Matching target Attribute" 
    WARNING_FILTER += discard class="No Mixed Initialization Priority in C++ Mode" 
    WARNING_FILTER += discard class="No Named Fields" 
    WARNING_FILTER += discard class="No Named register for Array" 
    WARNING_FILTER += discard class="No Negative Designator Range" 
    WARNING_FILTER += discard class="No Ordinary and Extended Designators" 
    WARNING_FILTER += discard class="No Out of Order Initialization Priority in C++ Mode" 
    WARNING_FILTER += discard class="No Output File Needed" 
    WARNING_FILTER += discard class="No Overloaded Subscript With offsetof" 
    WARNING_FILTER += discard class="No Overrider for Pure Virtual Function" 
    WARNING_FILTER += discard class="No Pack Expansion in Designator" 
    WARNING_FILTER += discard class="No Pack in Fold Expression" 
    WARNING_FILTER += discard class="No Packing of Non-POD Field" 
    WARNING_FILTER += discard class="No Parameter for Literal Operator" 
    WARNING_FILTER += discard class="No Parameters With Class Type" 
    WARNING_FILTER += discard class="No Parameters With Class or enum Type" 
    WARNING_FILTER += discard class="No Pointer Parameters" 
    WARNING_FILTER += discard class="No Prior Declaration" 
    WARNING_FILTER += discard class="No Prior push_macro" 
    WARNING_FILTER += discard class="No Qualified friend Definition" 
    WARNING_FILTER += discard class="No Range Designator With Dynamic Initializer" 
    WARNING_FILTER += discard class="No Space For Null Terminator" 
    WARNING_FILTER += discard class="No Suitable Assignment Operator" 
    WARNING_FILTER += discard class="No Suitable Copy Constructor" 
    WARNING_FILTER += discard class="No Suitable Synthesis Assignment Operator" 
    WARNING_FILTER += discard class="No Type of Specified Width" 
    WARNING_FILTER += discard class="No User Defined Conversion" 
    WARNING_FILTER += discard class="No Viable delete for Coroutine" 
    WARNING_FILTER += discard class="No abi_tag on Declaration" 
    WARNING_FILTER += discard class="No char16_t Representation" 
    WARNING_FILTER += discard class="No constexpr Coroutine" 
    WARNING_FILTER += discard class="No get Property" 
    WARNING_FILTER += discard class="No mutable Allowed on Anonymous union" 
    WARNING_FILTER += discard class="No nothrow Global new for Coroutine" 
    WARNING_FILTER += discard class="No put Property" 
    WARNING_FILTER += discard class="No return_value and return_void" 
    WARNING_FILTER += discard class="No sentinel Argument" 
    WARNING_FILTER += discard class="No typename in friend Class Declaration" 
    WARNING_FILTER += discard class="Non-POD Passed to Ellipsis" 
    WARNING_FILTER += discard class="Non-POD va_arg" 
    WARNING_FILTER += discard class="Non-bool Atomic Constraint" 
    WARNING_FILTER += discard class="Non-const Defaulted Member Comparison" 
    WARNING_FILTER += discard class="Non-const Reference Initializer Anachronism" 
    WARNING_FILTER += discard class="Non-const Reference Initializer From Rvalue" 
    WARNING_FILTER += discard class="Non-consteval Overrides consteval" 
    WARNING_FILTER += discard class="Non-constexpr Call in Member Initializer" 
    WARNING_FILTER += discard class="Non-constexpr Member Initialization Priority Constructor for constexpr Constructor" 
    WARNING_FILTER += discard class="Non-static Address of Operator in Managed Class" 
    WARNING_FILTER += discard class="Non-static Member Definition Not Allowed" 
    WARNING_FILTER += discard class="Nonarithmetic Operation in Template Argument" 
    WARNING_FILTER += discard class="Nonautomatic Variable in constexpr Function" 
    WARNING_FILTER += discard class="Nonautonomous Opaque enum Declaration" 
    WARNING_FILTER += discard class="Nonconstant Field Initializer in Member Initializer" 
    WARNING_FILTER += discard class="Nonconstant Member Initialization Priority for constexpr Constructor" 
    WARNING_FILTER += discard class="Nonconstant Splicer Operand" 
    WARNING_FILTER += discard class="Nonconstant enable_if Attribute" 
    WARNING_FILTER += discard class="Nonconstant offsetof" 
    WARNING_FILTER += discard class="Nondefining friend Requires Clause" 
    WARNING_FILTER += discard class="Nondeleted Function Overrides Deleted Function" 
    WARNING_FILTER += discard class="Nonexternal Entity in Template Argument" 
    WARNING_FILTER += discard class="Nonintegral Operation in Template Argument" 
    WARNING_FILTER += discard class="Nonintegral Shuffle Mask" 
    WARNING_FILTER += discard class="Nonliteral Parameter Type in constexpr Function" 
    WARNING_FILTER += discard class="Nonliteral Return Type in constexpr Function" 
    WARNING_FILTER += discard class="Nonliteral Variable in constexpr Function" 
    WARNING_FILTER += discard class="Nonlocal Label Reference" 
    WARNING_FILTER += discard class="Nonlocal VLA Not Allowed" 
    WARNING_FILTER += discard class="Nonmanaged Function for Delegate" 
    WARNING_FILTER += discard class="Nonmember Operator Not Allowed" 
    WARNING_FILTER += discard class="Nonmember Reflection for Intrinsic" 
    WARNING_FILTER += discard class="Nonmember enum Template" 
    WARNING_FILTER += discard class="Nonobject Pointer Arithmetic" 
    WARNING_FILTER += discard class="Nonpublic Data Member in Public C++/CX Value Type" 
    WARNING_FILTER += discard class="Nonpublic Implicit Interface Match" 
    WARNING_FILTER += discard class="Nonscalar Vacuous Destructor Call" 
    WARNING_FILTER += discard class="Nonshared Strict Relaxed" 
    WARNING_FILTER += discard class="Nonshared upc_blocksizeof" 
    WARNING_FILTER += discard class="Nonstandard Array Cast" 
    WARNING_FILTER += discard class="Nonstandard Array With Flexible Array Element" 
    WARNING_FILTER += discard class="Nonstandard Character at Start of Macro Definition" 
    WARNING_FILTER += discard class="Nonstandard Conversion for Cleanup" 
    WARNING_FILTER += discard class="Nonstandard Default Argument on Function Template Redeclaration" 
    WARNING_FILTER += discard class="Nonstandard Default Argument" 
    WARNING_FILTER += discard class="Nonstandard Ellipsis Only Parameter" 
    WARNING_FILTER += discard class="Nonstandard Fixed Point Suffix" 
    WARNING_FILTER += discard class="Nonstandard Forward Declaration enum" 
    WARNING_FILTER += discard class="Nonstandard Ignored Array Cast" 
    WARNING_FILTER += discard class="Nonstandard Implicit Integer" 
    WARNING_FILTER += discard class="Nonstandard Long Long" 
    WARNING_FILTER += discard class="Nonstandard Old Specialization" 
    WARNING_FILTER += discard class="Nonstandard Opaque enum Declaration in Type Identifier" 
    WARNING_FILTER += discard class="Nonstandard Parenthesized String Initializer" 
    WARNING_FILTER += discard class="Nonstandard Pointer Minus Pointer" 
    WARNING_FILTER += discard class="Nonstandard Preprocessor Directive" 
    WARNING_FILTER += discard class="Nonstandard Qualified void Parameter List" 
    WARNING_FILTER += discard class="Nonstandard Qualifier in Global Scope Declaration" 
    WARNING_FILTER += discard class="Nonstandard Qualifier in namespace Member Declaration" 
    WARNING_FILTER += discard class="Nonstandard Secondary Declaration Specifiers" 
    WARNING_FILTER += discard class="Nonstandard Template void Parameter List" 
    WARNING_FILTER += discard class="Nonstandard Unnamed Field" 
    WARNING_FILTER += discard class="Nonstandard Unnamed Member" 
    WARNING_FILTER += discard class="Nonstandard asm Function" 
    WARNING_FILTER += discard class="Nonstandard const Member Declaration Not Allowed" 
    WARNING_FILTER += discard class="Nonstandard const Member" 
    WARNING_FILTER += discard class="Nonstandard friend Declaration" 
    WARNING_FILTER += discard class="Nonstandard reinterpret_cast" 
    WARNING_FILTER += discard class="Nonstandard void Parameter List" 
    WARNING_FILTER += discard class="Nonthread Local Follows Thread-local" 
    WARNING_FILTER += discard class="Nonunicode Character in Header" 
    WARNING_FILTER += discard class="Nonunicode Character in Identifier" 
    WARNING_FILTER += discard class="Nonvalue Class Type Cannot Be Value Class Member" 
    WARNING_FILTER += discard class="Nonviable Because Argument Mismatch" 
    WARNING_FILTER += discard class="Nonzero Integer Conversion to Pointer" 
    WARNING_FILTER += discard class="Normal Reference Bound to C++/CX Lvalue" 
    WARNING_FILTER += discard class="Normal Reference Bound to Garbage Collected Lvalue" 
    WARNING_FILTER += discard class="Not Captured Local Variable in Lambda" 
    WARNING_FILTER += discard class="Not Captured this in Lambda" 
    WARNING_FILTER += discard class="Not Class Member" 
    WARNING_FILTER += discard class="Not Compatible With Previous Declaration" 
    WARNING_FILTER += discard class="Not Compatible With Template Template Parameter" 
    WARNING_FILTER += discard class="Not Enough Preallocated Memory" 
    WARNING_FILTER += discard class="Not Found on Pack Alignment Stack" 
    WARNING_FILTER += discard class="Not Generic Parameter of Current Declaration" 
    WARNING_FILTER += discard class="Not Global namespace" 
    WARNING_FILTER += discard class="Not Instantiatable Entity" 
    WARNING_FILTER += discard class="Not Used in Partial Specialization Argument List" 
    WARNING_FILTER += discard class="Not Used in Template Function Parameters" 
    WARNING_FILTER += discard class="Not a Base Class Member" 
    WARNING_FILTER += discard class="Not a Class Template" 
    WARNING_FILTER += discard class="Not a Class or struct Name" 
    WARNING_FILTER += discard class="Not a Field Name" 
    WARNING_FILTER += discard class="Not a Field or Base Class" 
    WARNING_FILTER += discard class="Not a Field" 
    WARNING_FILTER += discard class="Not a Generic Parameter" 
    WARNING_FILTER += discard class="Not a Line Splice" 
    WARNING_FILTER += discard class="Not a Member Class" 
    WARNING_FILTER += discard class="Not a Member" 
    WARNING_FILTER += discard class="Not a Tag Member" 
    WARNING_FILTER += discard class="Not a Template Name" 
    WARNING_FILTER += discard class="Not a Template" 
    WARNING_FILTER += discard class="Not a Type Member" 
    WARNING_FILTER += discard class="Not a Type Name" 
    WARNING_FILTER += discard class="Not a Type Reflection" 
    WARNING_FILTER += discard class="Not a Variable" 
    WARNING_FILTER += discard class="Not an Actual Member" 
    WARNING_FILTER += discard class="Not an enum Type Name" 
    WARNING_FILTER += discard class="Not an enum Type" 
    WARNING_FILTER += discard class="Null Argument for nonnull Parameter" 
    WARNING_FILTER += discard class="Null Character Ignored" 
    WARNING_FILTER += discard class="Null Character in Header Name" 
    WARNING_FILTER += discard class="Null Character in String" 
    WARNING_FILTER += discard class="Null Pointer Dereference" 
    WARNING_FILTER += discard class="Null Reference" 
    WARNING_FILTER += discard class="Null Security Descriptor" 
    WARNING_FILTER += discard class="Null Test After Dereference" 
    WARNING_FILTER += discard class="Object Not Initialized" 
    WARNING_FILTER += discard class="Object Slicing" 
    WARNING_FILTER += discard class="Offset in Non-POD Nonstandard" 
    WARNING_FILTER += discard class="Old Fashioned Assignment Operator" 
    WARNING_FILTER += discard class="Old Fashioned Field Selection" 
    WARNING_FILTER += discard class="Old Fashioned Initializer" 
    WARNING_FILTER += discard class="Old Fashioned Pointer Field Selection" 
    WARNING_FILTER += discard class="Old Specialization Not Allowed" 
    WARNING_FILTER += discard class="Old Style Incompatible Parameter" 
    WARNING_FILTER += discard class="Old Style Parameter List" 
    WARNING_FILTER += discard class="Omitted Exception Specification on Specialization" 
    WARNING_FILTER += discard class="Omitted Exception Specification" 
    WARNING_FILTER += discard class="Only Applies to Float Types" 
    WARNING_FILTER += discard class="Only GNU Attributes Here" 
    WARNING_FILTER += discard class="Operand Must Be Real Floating Value" 
    WARNING_FILTER += discard class="Operand Must Be Vector" 
    WARNING_FILTER += discard class="Operation May Not Fit in Fixed Point Result" 
    WARNING_FILTER += discard class="Operator Name Not Allowed" 
    WARNING_FILTER += discard class="Operator Not Allowed After new" 
    WARNING_FILTER += discard class="Out of Class Initializer Ignored" 
    WARNING_FILTER += discard class="Out of Memory During PCH Allocation" 
    WARNING_FILTER += discard class="Out of Order Member Initializers" 
    WARNING_FILTER += discard class="Output After Input Without Positioning" 
    WARNING_FILTER += discard class="Output File Incompatible With Multiple Inputs" 
    WARNING_FILTER += discard class="Overlapping Memory Regions" 
    WARNING_FILTER += discard class="Overloaded Function Linkage" 
    WARNING_FILTER += discard class="Override Name Is Destructor or Finalizer" 
    WARNING_FILTER += discard class="Override Name Must Be a Base Class Member Function" 
    WARNING_FILTER += discard class="Override Name Nonvirtual" 
    WARNING_FILTER += discard class="Override With Constraint Mismatch" 
    WARNING_FILTER += discard class="Override With Trivial Property or Event" 
    WARNING_FILTER += discard class="Override of Sealed Function" 
    WARNING_FILTER += discard class="Override of final Function" 
    WARNING_FILTER += discard class="Overriding Reduces Accessibility in Managed Type" 
    WARNING_FILTER += discard class="PCH Command Line Option Mismatch" 
    WARNING_FILTER += discard class="PCH Current Directory Changed" 
    WARNING_FILTER += discard class="PCH File Cannot Be Created" 
    WARNING_FILTER += discard class="PCH File Incomplete" 
    WARNING_FILTER += discard class="PCH File Not Found" 
    WARNING_FILTER += discard class="PCH File Prefix Mismatch" 
    WARNING_FILTER += discard class="PCH Header Files Have Changed" 
    WARNING_FILTER += discard class="PCH Incompatible With Multiple Inputs" 
    WARNING_FILTER += discard class="PCH Must Be First" 
    WARNING_FILTER += discard class="PCH Not Directory" 
    WARNING_FILTER += discard class="PCH hdrstop Cannot Be Found" 
    WARNING_FILTER += discard class="Pack Expansion for Field Member Initialization Priority" 
    WARNING_FILTER += discard class="Pack Initialization Priority Capture Not Enabled" 
    WARNING_FILTER += discard class="Pack Initialization Priority Capture Requires C++20" 
    WARNING_FILTER += discard class="Pack Initialization Priority Capture in Nonvariadic Context" 
    WARNING_FILTER += discard class="Pack Length Mismatch" 
    WARNING_FILTER += discard class="Pack Not Expanded" 
    WARNING_FILTER += discard class="Pack Not Last Argument" 
    WARNING_FILTER += discard class="Padding Passed Across a Trust Boundary" 
    WARNING_FILTER += discard class="Parameter Array on Operator Function" 
    WARNING_FILTER += discard class="Parameter Cannot Be Completed" 
    WARNING_FILTER += discard class="Parameter Identifier List Needs Function Definition" 
    WARNING_FILTER += discard class="Parameter Is Abstract" 
    WARNING_FILTER += discard class="Parameter Is Incomplete" 
    WARNING_FILTER += discard class="Parameter Not Allowed" 
    WARNING_FILTER += discard class="Parameter Pack Cannot Have Default" 
    WARNING_FILTER += discard class="Parameter Pack Declaration Not Allowed" 
    WARNING_FILTER += discard class="Parameter With Interface Type" 
    WARNING_FILTER += discard class="Parameter With Link Scope Specifier" 
    WARNING_FILTER += discard class="Parenthesized Initialization Priority Not Allowed" 
    WARNING_FILTER += discard class="Partial Override" 
    WARNING_FILTER += discard class="Partial Specialization After Instantiation Ambiguous" 
    WARNING_FILTER += discard class="Partial Specialization Argument Depends on Template Parameter" 
    WARNING_FILTER += discard class="Partial Specialization Is Primary Template" 
    WARNING_FILTER += discard class="Partial Specialization Not Allowed" 
    WARNING_FILTER += discard class="Paste Cannot Be First in __VA_OPT__" 
    WARNING_FILTER += discard class="Paste Cannot Be First" 
    WARNING_FILTER += discard class="Paste Cannot Be Last in __VA_OPT__" 
    WARNING_FILTER += discard class="Paste Cannot Be Last" 
    WARNING_FILTER += discard class="Period Used as Qualifier" 
    WARNING_FILTER += discard class="Placeholder Type Failed Constraint" 
    WARNING_FILTER += discard class="Placement new Refers to Nonplacement delete" 
    WARNING_FILTER += discard class="Plaintext Storage of Password" 
    WARNING_FILTER += discard class="Plaintext Transmission of Password" 
    WARNING_FILTER += discard class="Pointer Conversion Loses Bits" 
    WARNING_FILTER += discard class="Pointer Conversion to bool" 
    WARNING_FILTER += discard class="Pointer Function Pointer Data Conversion" 
    WARNING_FILTER += discard class="Pointer Handle or Reference to Generic Parameter" 
    WARNING_FILTER += discard class="Pointer Handle or Reference to interior_ptr" 
    WARNING_FILTER += discard class="Pointer Handle or Reference to pin_ptr" 
    WARNING_FILTER += discard class="Pointer Incomplete throw" 
    WARNING_FILTER += discard class="Pointer Outside Base Object" 
    WARNING_FILTER += discard class="Pointer or Reference to CLI Array" 
    WARNING_FILTER += discard class="Pointer or Reference to Incomplete Type" 
    WARNING_FILTER += discard class="Pointer or Reference to Qualified Function Type" 
    WARNING_FILTER += discard class="Pointer to Member Call Object Not Lvalue" 
    WARNING_FILTER += discard class="Pointer to Member Call Object Not Rvalue" 
    WARNING_FILTER += discard class="Pointer to Member Cast to Pointer to Function" 
    WARNING_FILTER += discard class="Pointer to Member Conversion to bool" 
    WARNING_FILTER += discard class="Pointer to Member Derived Class From Virtual Base" 
    WARNING_FILTER += discard class="Pointer to Member Virtual Base From Derived Class" 
    WARNING_FILTER += discard class="Pointer to Member of Handle Type" 
    WARNING_FILTER += discard class="Pointer to Member of Incomplete Class" 
    WARNING_FILTER += discard class="Pointer to Member of Managed Class" 
    WARNING_FILTER += discard class="Pointer to Member of Reference Type" 
    WARNING_FILTER += discard class="Pointer to Member of Type void" 
    WARNING_FILTER += discard class="Pointer to Member of VLA Type" 
    WARNING_FILTER += discard class="Pointer to Member typedef" 
    WARNING_FILTER += discard class="Pointer to Non-const for Literal Operator" 
    WARNING_FILTER += discard class="Pointer to Reference or Interface Class" 
    WARNING_FILTER += discard class="Pointer to Reference" 
    WARNING_FILTER += discard class="Pool Mismatch" 
    WARNING_FILTER += discard class="Positional After Named" 
    WARNING_FILTER += discard class="Positional Format Specifier Zero" 
    WARNING_FILTER += discard class="Predeclared Function Cannot Be Deleted" 
    WARNING_FILTER += discard class="Predictable Seed in PRNG" 
    WARNING_FILTER += discard class="Preprocessor Output Incompatible With Multiple Translation Units" 
    WARNING_FILTER += discard class="Previous Namespace Not inline" 
    WARNING_FILTER += discard class="Previous Namespace inline" 
    WARNING_FILTER += discard class="Previous Non-consteval Declaration Conflict" 
    WARNING_FILTER += discard class="Previous Non-constexpr Declaration Conflict" 
    WARNING_FILTER += discard class="Previous consteval Declaration Conflict" 
    WARNING_FILTER += discard class="Previous constexpr Declaration Conflict" 
    WARNING_FILTER += discard class="Private Module Fragment Only After Module" 
    WARNING_FILTER += discard class="Private Virtual Member Function Not sealed" 
    WARNING_FILTER += discard class="Probable Guiding friend" 
    WARNING_FILTER += discard class="Probable Inadvertent \"#\" Digraph" 
    WARNING_FILTER += discard class="Probable Inadvertent \"[\" Digraph" 
    WARNING_FILTER += discard class="Program Entity Too Large for PCH" 
    WARNING_FILTER += discard class="Program Too Large" 
    WARNING_FILTER += discard class="Promise Type Returns Return void" 
    WARNING_FILTER += discard class="Property Name Not Allowed" 
    WARNING_FILTER += discard class="Property Requires Managed Class" 
    WARNING_FILTER += discard class="Property get Already Declared" 
    WARNING_FILTER += discard class="Property get Cannot Have Parameter" 
    WARNING_FILTER += discard class="Property get Index Type Mismatch" 
    WARNING_FILTER += discard class="Property get Index Type Missing" 
    WARNING_FILTER += discard class="Property set Already Declared" 
    WARNING_FILTER += discard class="Property set Index Type Mismatch" 
    WARNING_FILTER += discard class="Property set Index Type Missing" 
    WARNING_FILTER += discard class="Property set Missing Value Parameter" 
    WARNING_FILTER += discard class="Property set Value Parameter Mismatch" 
    WARNING_FILTER += discard class="Protected Access Problem" 
    WARNING_FILTER += discard class="Prototype Lost" 
    WARNING_FILTER += discard class="Public Data Member in Public Nonvalue Type" 
    WARNING_FILTER += discard class="Public Nested Type in C++/CX Type" 
    WARNING_FILTER += discard class="Public Nondata Member in Public C++/CX Value Type" 
    WARNING_FILTER += discard class="Pure Specifier on Nonvirtual Function" 
    WARNING_FILTER += discard class="Pure Specifier on Sealed Member" 
    WARNING_FILTER += discard class="Pure Virtual Definition" 
    WARNING_FILTER += discard class="Pure Virtual Function" 
    WARNING_FILTER += discard class="Pure Virtual Member Template" 
    WARNING_FILTER += discard class="Pure final virtual" 
    WARNING_FILTER += discard class="Qualified CLI Accessor" 
    WARNING_FILTER += discard class="Qualified Name Not Allowed" 
    WARNING_FILTER += discard class="Qualified Name Required" 
    WARNING_FILTER += discard class="Qualified Reference Type" 
    WARNING_FILTER += discard class="Qualified Unnamed Bit Field Type" 
    WARNING_FILTER += discard class="Qualified void Return Type" 
    WARNING_FILTER += discard class="Qualifier Dropped in Reference Initializer" 
    WARNING_FILTER += discard class="Qualifier Ignored on Local Declaration" 
    WARNING_FILTER += discard class="Qualifier Must Be Base Class" 
    WARNING_FILTER += discard class="Qualifier Not Allowed on Managed Member Function" 
    WARNING_FILTER += discard class="Qualifier in Member Declaration" 
    WARNING_FILTER += discard class="Qualifier in namespace Member Declaration" 
    WARNING_FILTER += discard class="RTTI in Embedded C++" 
    WARNING_FILTER += discard class="Raises FE_INVALID" 
    WARNING_FILTER += discard class="Range-based for Incomplete Array Type" 
    WARNING_FILTER += discard class="Range-based for Missing Function" 
    WARNING_FILTER += discard class="Range-based for No Matching Overload" 
    WARNING_FILTER += discard class="Range-based for Nonstandard" 
    WARNING_FILTER += discard class="Range-based for Undefined Identifier" 
    WARNING_FILTER += discard class="Read Past Null Terminator" 
    WARNING_FILTER += discard class="Real Imaginary Conversion" 
    WARNING_FILTER += discard class="Recursive Definition Argument Instantiation" 
    WARNING_FILTER += discard class="Recursive Initializer Instantiation" 
    WARNING_FILTER += discard class="Recursive Instantiation of Template Default Argument" 
    WARNING_FILTER += discard class="Redeclaration Adds DLL Interface" 
    WARNING_FILTER += discard class="Redeclaration Changes Access" 
    WARNING_FILTER += discard class="Redeclaration of Condition Declaration Name" 
    WARNING_FILTER += discard class="Redeclaration of Range Iterator" 
    WARNING_FILTER += discard class="Redeclaration of Template Parameter Name" 
    WARNING_FILTER += discard class="Redeclaration of for-init Declaration Name" 
    WARNING_FILTER += discard class="Redeclaration of friend With Default Arguments" 
    WARNING_FILTER += discard class="Redefinition After #hard_define" 
    WARNING_FILTER += discard class="Redundant Condition" 
    WARNING_FILTER += discard class="Redundant Exception Specification Type" 
    WARNING_FILTER += discard class="Reference Bound to initonly Field" 
    WARNING_FILTER += discard class="Reference Class Has Multiple Reference Bases" 
    WARNING_FILTER += discard class="Reference Class Not Satisfied" 
    WARNING_FILTER += discard class="Reference Class initonly Field" 
    WARNING_FILTER += discard class="Reference Declared mutable" 
    WARNING_FILTER += discard class="Reference Member Suppresses Copy Assignment Declaration" 
    WARNING_FILTER += discard class="Reference Not Allowed in union" 
    WARNING_FILTER += discard class="Reference Qualifier Ignored" 
    WARNING_FILTER += discard class="Reference Qualifier Nonstandard" 
    WARNING_FILTER += discard class="Reference Qualifier Not Allowed" 
    WARNING_FILTER += discard class="Reference Type Not Allowed" 
    WARNING_FILTER += discard class="Reference or Interface Class Member in Standard Class" 
    WARNING_FILTER += discard class="Reference to Nested Function Variable" 
    WARNING_FILTER += discard class="Reference to Reference or Interface Class" 
    WARNING_FILTER += discard class="Reference to Reference" 
    WARNING_FILTER += discard class="Reference to void" 
    WARNING_FILTER += discard class="Reflection of Overloaded Set" 
    WARNING_FILTER += discard class="Relaxed Abstract Checking Requires C++" 
    WARNING_FILTER += discard class="Relaxed constexpr Requires bool" 
    WARNING_FILTER += discard class="Requested Size Too Large" 
    WARNING_FILTER += discard class="Requires Clause Argument List Substitution Failed" 
    WARNING_FILTER += discard class="Requires Expression Ellipsis Parameter" 
    WARNING_FILTER += discard class="Requires Incompatible With Previous Declaration" 
    WARNING_FILTER += discard class="Reserved Dispose" 
    WARNING_FILTER += discard class="Reserved Enumerator Name" 
    WARNING_FILTER += discard class="Reserved Finalize" 
    WARNING_FILTER += discard class="Resolver Routine Required" 
    WARNING_FILTER += discard class="Return From Constructor Function try Block Handler" 
    WARNING_FILTER += discard class="Return From finally" 
    WARNING_FILTER += discard class="Return Pointer to Freed" 
    WARNING_FILTER += discard class="Return Pointer to Local" 
    WARNING_FILTER += discard class="Return Reference Initializer Requires Temporary" 
    WARNING_FILTER += discard class="Return Type Cannot Distinguish Functions" 
    WARNING_FILTER += discard class="Return Type Is Interface" 
    WARNING_FILTER += discard class="Return Type of Default Comparison Must Be bool" 
    WARNING_FILTER += discard class="Return Type on Constructor" 
    WARNING_FILTER += discard class="Return Type on Conversion Function" 
    WARNING_FILTER += discard class="Return Type on Destructor" 
    WARNING_FILTER += discard class="Return Type on Finalizer" 
    WARNING_FILTER += discard class="Return from noreturn" 
    WARNING_FILTER += discard class="Runaway Recursive Instantiation" 
    WARNING_FILTER += discard class="Rvalue Defaulted Member Comparison" 
    WARNING_FILTER += discard class="Rvalue Reference Bound to Lvalue" 
    WARNING_FILTER += discard class="Rvalue Reference Template Parameter" 
    WARNING_FILTER += discard class="Rvalue Reference catch Type" 
    WARNING_FILTER += discard class="Rvalue Reference in Exception Specification" 
    WARNING_FILTER += discard class="Rvalue References Option Requires C++" 
    WARNING_FILTER += discard class="Rvalue References Requires C++11" 
    WARNING_FILTER += discard class="SFINAE Requires Newer ABI Version" 
    WARNING_FILTER += discard class="SQL Injection" 
    WARNING_FILTER += discard class="STDC #pragma Not Allowed Here" 
    WARNING_FILTER += discard class="SVR4 Token Pasting Comment" 
    WARNING_FILTER += discard class="Same Parameter Types With Different Exception Specifications" 
    WARNING_FILTER += discard class="Same Parameter Types With and Without Reference Qualifiers" 
    WARNING_FILTER += discard class="Scoped enum Operation Type Mismatch" 
    WARNING_FILTER += discard class="Sealed Base Class" 
    WARNING_FILTER += discard class="Sealed CLI Interface" 
    WARNING_FILTER += discard class="Sealed Constraint" 
    WARNING_FILTER += discard class="Secondary Specifier Ignored" 
    WARNING_FILTER += discard class="Self Friendship" 
    WARNING_FILTER += discard class="Shared Affinity Type" 
    WARNING_FILTER += discard class="Shared Block Size Must Be Positive" 
    WARNING_FILTER += discard class="Shared Block Size Too Large" 
    WARNING_FILTER += discard class="Shared Inside struct" 
    WARNING_FILTER += discard class="Shared Nonthreads Dimension" 
    WARNING_FILTER += discard class="Shared Parameter" 
    WARNING_FILTER += discard class="Shift Amount Exceeds Bit Width" 
    WARNING_FILTER += discard class="Show #pragma Conform forScope Is Nonstandard" 
    WARNING_FILTER += discard class="Show #pragma Conform forScope Is Standard" 
    WARNING_FILTER += discard class="Signed One Bit Field" 
    WARNING_FILTER += discard class="Similar typedef" 
    WARNING_FILTER += discard class="Simple Incompatible Parameter" 
    WARNING_FILTER += discard class="Single Argument Postfix Increment/Decrement Anachronism" 
    WARNING_FILTER += discard class="Size Affected by Tail Padding" 
    WARNING_FILTER += discard class="Sizeless Type Not Allowed" 
    WARNING_FILTER += discard class="Skipped Inaccessible Function" 
    WARNING_FILTER += discard class="Special Class Template Not Found" 
    WARNING_FILTER += discard class="Special Member Coroutine" 
    WARNING_FILTER += discard class="Specialization Follows Parameter List" 
    WARNING_FILTER += discard class="Specialization Out of namespace" 
    WARNING_FILTER += discard class="Specialization after Use" 
    WARNING_FILTER += discard class="Specialization of Called inline Template Function" 
    WARNING_FILTER += discard class="Specialization of Unscoped enum" 
    WARNING_FILTER += discard class="Splice Is Not a Member of Class" 
    WARNING_FILTER += discard class="Standard Array Member in Managed Class" 
    WARNING_FILTER += discard class="Standard Attributes Require C++11" 
    WARNING_FILTER += discard class="Standard Class Member in Managed Class" 
    WARNING_FILTER += discard class="Standard Class Nested in Managed Class" 
    WARNING_FILTER += discard class="Star this Not Constant Valued" 
    WARNING_FILTER += discard class="Statement Expression Is GNU Extension" 
    WARNING_FILTER += discard class="Statement Expression With VLA Type" 
    WARNING_FILTER += discard class="Statement Expression in Default Argument" 
    WARNING_FILTER += discard class="Statement Expression in Function Only" 
    WARNING_FILTER += discard class="Static Assertion Failed" 
    WARNING_FILTER += discard class="Stop Map Region Ignored" 
    WARNING_FILTER += discard class="Storage Class Not Allowed in Specialization" 
    WARNING_FILTER += discard class="Storage Class Not Allowed" 
    WARNING_FILTER += discard class="Storage Class Requires Function or Variable" 
    WARNING_FILTER += discard class="Storage Class in friend Declaration" 
    WARNING_FILTER += discard class="Storage Specifier Ignored" 
    WARNING_FILTER += discard class="Stray Carriage Return" 
    WARNING_FILTER += discard class="Strict Mode Forbids Treating Namespace std as Global Namespace" 
    WARNING_FILTER += discard class="Strict Mode Incompatible With Anachronisms" 
    WARNING_FILTER += discard class="Strict Mode Incompatible With Cfront" 
    WARNING_FILTER += discard class="Strict Mode Incompatible With K&R Mode" 
    WARNING_FILTER += discard class="Strict Mode Incompatible With Long Preserving" 
    WARNING_FILTER += discard class="Strict Mode Incompatible With Microsoft" 
    WARNING_FILTER += discard class="Strict Mode Incompatible With SVR4" 
    WARNING_FILTER += discard class="Strict Mode Incompatible With Sun" 
    WARNING_FILTER += discard class="String Literal Cannot Initialize Flexible Array Member" 
    WARNING_FILTER += discard class="Structured Binding Incomplete Type" 
    WARNING_FILTER += discard class="Structured Binding Lambda" 
    WARNING_FILTER += discard class="Structured Binding Restricted Storage Class" 
    WARNING_FILTER += discard class="Structured Binding Storage Class" 
    WARNING_FILTER += discard class="Structured Binding Template" 
    WARNING_FILTER += discard class="Structured Binding Undefined Identifier" 
    WARNING_FILTER += discard class="Structured Binding With Multiple Declarators" 
    WARNING_FILTER += discard class="Structured Binding consteval" 
    WARNING_FILTER += discard class="Structured Binding constexpr" 
    WARNING_FILTER += discard class="Structured Binding in Condition" 
    WARNING_FILTER += discard class="Structured Binding inline" 
    WARNING_FILTER += discard class="Structured Binding of Private Member" 
    WARNING_FILTER += discard class="Structured Bindings Requires C++17" 
    WARNING_FILTER += discard class="Subobject Copy Assignment Declaration Suppressed" 
    WARNING_FILTER += discard class="Subobject Copy Constructor Declaration Suppressed" 
    WARNING_FILTER += discard class="Subscript Mechanism Conflict" 
    WARNING_FILTER += discard class="Substitution Argument Is Not Variable" 
    WARNING_FILTER += discard class="Subtraction of Unrelated Pointers" 
    WARNING_FILTER += discard class="Sun Incompatible With Cfront" 
    WARNING_FILTER += discard class="Sun Mode Requires C++" 
    WARNING_FILTER += discard class="Superfluous Delegate Object" 
    WARNING_FILTER += discard class="Suppressed Destructor Needed" 
    WARNING_FILTER += discard class="Suppressed Module Error Diagnostic" 
    WARNING_FILTER += discard class="Suppressed Module Errors Diagnostic" 
    WARNING_FILTER += discard class="Suppressed Module Warning Diagnostic" 
    WARNING_FILTER += discard class="Suppressed Module Warnings Diagnostic" 
    WARNING_FILTER += discard class="Suspicious Comment Formatting" 
    WARNING_FILTER += discard class="Suspicious String Formatting" 
    WARNING_FILTER += discard class="Symbol Not a Class Template" 
    WARNING_FILTER += discard class="Symbol Not a Template" 
    WARNING_FILTER += discard class="Symbol Not a Type Name" 
    WARNING_FILTER += discard class="Tag Defined in constexpr Body" 
    WARNING_FILTER += discard class="Tag Kind Incompatible With Declaration" 
    WARNING_FILTER += discard class="Tag Kind Incompatible With Template Parameter" 
    WARNING_FILTER += discard class="Tainted Buffer Access" 
    WARNING_FILTER += discard class="Tainted Environment Variable" 
    WARNING_FILTER += discard class="Taking Address of Temporary" 
    WARNING_FILTER += discard class="Target String Must Be Narrow" 
    WARNING_FILTER += discard class="Target Unmatched Parentheses" 
    WARNING_FILTER += discard class="Template Argument Cannot Point to Subobject" 
    WARNING_FILTER += discard class="Template Argument Index Out of Bounds" 
    WARNING_FILTER += discard class="Template Constraint Not Satisfied" 
    WARNING_FILTER += discard class="Template Delegate" 
    WARNING_FILTER += discard class="Template Dependent Designator" 
    WARNING_FILTER += discard class="Template Depth Mismatch" 
    WARNING_FILTER += discard class="Template Identifier Not Allowed" 
    WARNING_FILTER += discard class="Template Instance Already Used" 
    WARNING_FILTER += discard class="Template Missing Closing Brace" 
    WARNING_FILTER += discard class="Template Parameter Has Class Type" 
    WARNING_FILTER += discard class="Template Parameter Has Nonstructural Class Type" 
    WARNING_FILTER += discard class="Template Parameter List Not Allowed" 
    WARNING_FILTER += discard class="Template Parameter List Too Long" 
    WARNING_FILTER += discard class="Template Parameter Pack Not at End" 
    WARNING_FILTER += discard class="Template Parameter in Elaborated Type" 
    WARNING_FILTER += discard class="Template Template Parameter Same Name as Template Parameter" 
    WARNING_FILTER += discard class="Template and Instance Linkage Conflict" 
    WARNING_FILTER += discard class="Template friend Definition Not Allowed" 
    WARNING_FILTER += discard class="Template in Generic" 
    WARNING_FILTER += discard class="Template in Managed Class" 
    WARNING_FILTER += discard class="Template operator delete" 
    WARNING_FILTER += discard class="Template operator new" 
    WARNING_FILTER += discard class="Templates in Embedded C++" 
    WARNING_FILTER += discard class="Terse static_assert Not Enabled" 
    WARNING_FILTER += discard class="Thread is not Joinable" 
    WARNING_FILTER += discard class="Thread-local Follows Nonthread Local" 
    WARNING_FILTER += discard class="Thread-local Ignored" 
    WARNING_FILTER += discard class="Thread-local Must Include static or extern" 
    WARNING_FILTER += discard class="Thread-local Not Allowed" 
    WARNING_FILTER += discard class="Threads Constant Not Allowed" 
    WARNING_FILTER += discard class="Threads Dimension Requires Definite Block Size" 
    WARNING_FILTER += discard class="Too Few Arguments for Operator" 
    WARNING_FILTER += discard class="Too Few Arguments" 
    WARNING_FILTER += discard class="Too Few Array Bounds" 
    WARNING_FILTER += discard class="Too Few Generic Arguments" 
    WARNING_FILTER += discard class="Too Few Macro Arguments" 
    WARNING_FILTER += discard class="Too Few Template Arguments" 
    WARNING_FILTER += discard class="Too Few Template Parameters" 
    WARNING_FILTER += discard class="Too Few printf Arguments" 
    WARNING_FILTER += discard class="Too Large to inline" 
    WARNING_FILTER += discard class="Too Many Arguments Provided for Attribute" 
    WARNING_FILTER += discard class="Too Many Arguments for Conversion" 
    WARNING_FILTER += discard class="Too Many Arguments for Operator" 
    WARNING_FILTER += discard class="Too Many Arguments" 
    WARNING_FILTER += discard class="Too Many Array Bounds" 
    WARNING_FILTER += discard class="Too Many Cast Operands" 
    WARNING_FILTER += discard class="Too Many Characters" 
    WARNING_FILTER += discard class="Too Many Constraints" 
    WARNING_FILTER += discard class="Too Many Generic Arguments" 
    WARNING_FILTER += discard class="Too Many Initializer Values" 
    WARNING_FILTER += discard class="Too Many Macro Arguments" 
    WARNING_FILTER += discard class="Too Many Microsoft Attribute Arguments" 
    WARNING_FILTER += discard class="Too Many Named Address Space" 
    WARNING_FILTER += discard class="Too Many Parameters for Destructor" 
    WARNING_FILTER += discard class="Too Many Parameters for Finalizer" 
    WARNING_FILTER += discard class="Too Many Parameters for Literal Operator" 
    WARNING_FILTER += discard class="Too Many Structured Bindings" 
    WARNING_FILTER += discard class="Too Many Template Arguments" 
    WARNING_FILTER += discard class="Too Many Template Parameters" 
    WARNING_FILTER += discard class="Too Many Unused Instantiations" 
    WARNING_FILTER += discard class="Too Many Virtual Functions" 
    WARNING_FILTER += discard class="Too Many printf Arguments" 
    WARNING_FILTER += discard class="Tracking Reference Member in Standard Class" 
    WARNING_FILTER += discard class="Tracking Reference to Constant" 
    WARNING_FILTER += discard class="Tracking Reference to Delegate" 
    WARNING_FILTER += discard class="Tracking Reference to Function" 
    WARNING_FILTER += discard class="Tracking Reference to System String" 
    WARNING_FILTER += discard class="Tracking Reference to Value Class" 
    WARNING_FILTER += discard class="Tracking Reference to enum" 
    WARNING_FILTER += discard class="Trailing Requires Clause Not on Template" 
    WARNING_FILTER += discard class="Trailing Requires on Virtual Function" 
    WARNING_FILTER += discard class="Trailing Return Type Function Without Simple auto" 
    WARNING_FILTER += discard class="Trailing Return Type Requires auto" 
    WARNING_FILTER += discard class="Trailing Return Type in Nested Declarator" 
    WARNING_FILTER += discard class="Transparent Attribute Ignored" 
    WARNING_FILTER += discard class="Transparent Type Is Not union" 
    WARNING_FILTER += discard class="Transparent union Cannot Have Bit Field First" 
    WARNING_FILTER += discard class="Transparent union Cannot Have Floating First Field" 
    WARNING_FILTER += discard class="Trivial Indexed Property" 
    WARNING_FILTER += discard class="Trivial Reference Property" 
    WARNING_FILTER += discard class="Trivial const or volatile Property" 
    WARNING_FILTER += discard class="Try-lock that will never succeed" 
    WARNING_FILTER += discard class="Tuple Get No Matching Overload" 
    WARNING_FILTER += discard class="Tuple Index Overflow" 
    WARNING_FILTER += discard class="Two Packs in Fold Expression" 
    WARNING_FILTER += discard class="Type Cannot Be Class Member" 
    WARNING_FILTER += discard class="Type Cannot Be Parameter Name" 
    WARNING_FILTER += discard class="Type Constraint Failed" 
    WARNING_FILTER += discard class="Type Constraint Requires Type concept" 
    WARNING_FILTER += discard class="Type Declaration in Anonymous union" 
    WARNING_FILTER += discard class="Type Definition Not Allowed in Function Type Declaration" 
    WARNING_FILTER += discard class="Type Definition Not Allowed" 
    WARNING_FILTER += discard class="Type Generic Function Mismatch" 
    WARNING_FILTER += discard class="Type Identifier Not Allowed" 
    WARNING_FILTER += discard class="Type Is Declared abstract" 
    WARNING_FILTER += discard class="Type Is Interface" 
    WARNING_FILTER += discard class="Type Mismatch" 
    WARNING_FILTER += discard class="Type Must Be Integral" 
    WARNING_FILTER += discard class="Type Must Be Object Type" 
    WARNING_FILTER += discard class="Type Must Be Trivially Copyable" 
    WARNING_FILTER += discard class="Type Not Allowed Here" 
    WARNING_FILTER += discard class="Type Not Arithmetic or Unscoped enum or Pointer" 
    WARNING_FILTER += discard class="Type Not Arithmetic or enum or Pointer" 
    WARNING_FILTER += discard class="Type Not Pointer" 
    WARNING_FILTER += discard class="Type Not Satisfied" 
    WARNING_FILTER += discard class="Type Not Scalar" 
    WARNING_FILTER += discard class="Type Overrun" 
    WARNING_FILTER += discard class="Type Qualifier Ignored on Constructor" 
    WARNING_FILTER += discard class="Type Qualifier Ignored" 
    WARNING_FILTER += discard class="Type Qualifier Not Allowed" 
    WARNING_FILTER += discard class="Type Qualifier on Function Type" 
    WARNING_FILTER += discard class="Type Qualifier on Lambda" 
    WARNING_FILTER += discard class="Type Qualifier on void Return Type" 
    WARNING_FILTER += discard class="Type Qualifiers Ignored on Reference" 
    WARNING_FILTER += discard class="Type Specifier Not Allowed" 
    WARNING_FILTER += discard class="Type Underrun" 
    WARNING_FILTER += discard class="Type With Named Address Space Not Allowed" 
    WARNING_FILTER += discard class="Type With No Linkage in Function" 
    WARNING_FILTER += discard class="Type With No Linkage in Template Argument" 
    WARNING_FILTER += discard class="Type With No Linkage in Variable With Linkage" 
    WARNING_FILTER += discard class="Types Must Have Same Size" 
    WARNING_FILTER += discard class="UPC Requires ANSI C Dialect" 
    WARNING_FILTER += discard class="UPC Shared void Comparison" 
    WARNING_FILTER += discard class="UTF-16 Character Literal Too Long" 
    WARNING_FILTER += discard class="UTF-8 Character Literal Too Long" 
    WARNING_FILTER += discard class="UTF-8 Literal No U-literal" 
    WARNING_FILTER += discard class="Unable to Get Mapped Memory" 
    WARNING_FILTER += discard class="Unattached Attribute" 
    WARNING_FILTER += discard class="Unavailable Entity" 
    WARNING_FILTER += discard class="Unbalanced Attribute Argument" 
    WARNING_FILTER += discard class="Unbounded constexpr Constructor Initialization Priority Recursion" 
    WARNING_FILTER += discard class="Uncallable Elided Copy Constructor" 
    WARNING_FILTER += discard class="Unclosed String" 
    WARNING_FILTER += discard class="Unclosed __VA_OPT__" 
    WARNING_FILTER += discard class="Unconvertible Constant Expression" 
    WARNING_FILTER += discard class="Undeclared Parameter" 
    WARNING_FILTER += discard class="Undefined Declaration using Local Type" 
    WARNING_FILTER += discard class="Undefined Declaration using No Linkage Type" 
    WARNING_FILTER += discard class="Undefined IFC Partition" 
    WARNING_FILTER += discard class="Undefined Identifier" 
    WARNING_FILTER += discard class="Undefined Macro in #if" 
    WARNING_FILTER += discard class="Undefined Power of Zero" 
    WARNING_FILTER += discard class="Undefined static Function Treated as extern" 
    WARNING_FILTER += discard class="Unexpected Designator" 
    WARNING_FILTER += discard class="Unexpected End of Default Argument" 
    WARNING_FILTER += discard class="Unexpected Template Argument List" 
    WARNING_FILTER += discard class="Unexpected Type for size_t" 
    WARNING_FILTER += discard class="Unfinished Base Class" 
    WARNING_FILTER += discard class="Unhandled IFC Construct" 
    WARNING_FILTER += discard class="Unhandled Swizzle Operand" 
    WARNING_FILTER += discard class="Unicode Name Not Found" 
    WARNING_FILTER += discard class="Unimplemented Keyword" 
    WARNING_FILTER += discard class="Uninitialized Base Class With const Member" 
    WARNING_FILTER += discard class="Uninitialized Field With const Member" 
    WARNING_FILTER += discard class="Uninitialized Variable in constexpr Function" 
    WARNING_FILTER += discard class="Uninitialized Variable" 
    WARNING_FILTER += discard class="Universal Character Name Names Basic Character" 
    WARNING_FILTER += discard class="Universal Character Name Names Invalid Code Point" 
    WARNING_FILTER += discard class="Universal Character Name Names Surrogate Code Point" 
    WARNING_FILTER += discard class="Unknown IFC Partition Conversion" 
    WARNING_FILTER += discard class="Unknown IFC Partition" 
    WARNING_FILTER += discard class="Unknown Parent Named Address Space" 
    WARNING_FILTER += discard class="Unnamed CLI Managed Class Type" 
    WARNING_FILTER += discard class="Unnamed Class Virtual Function Definition Missing" 
    WARNING_FILTER += discard class="Unnamed Module Map" 
    WARNING_FILTER += discard class="Unnamed Object With Uninitialized Field" 
    WARNING_FILTER += discard class="Unnamed Require Expression Parameter" 
    WARNING_FILTER += discard class="Unnamed Scoped enum" 
    WARNING_FILTER += discard class="Unnamed Type in Template Argument" 
    WARNING_FILTER += discard class="Unqualified Function With Qualified Object" 
    WARNING_FILTER += discard class="Unqualified Named Function With Qualified Object" 
    WARNING_FILTER += discard class="Unqualified __super" 
    WARNING_FILTER += discard class="Unreachable Call" 
    WARNING_FILTER += discard class="Unreachable Computation" 
    WARNING_FILTER += discard class="Unreachable Conditional" 
    WARNING_FILTER += discard class="Unreachable Data Flow" 
    WARNING_FILTER += discard class="Unreasonable Size Argument" 
    WARNING_FILTER += discard class="Unrecognized Character Escape" 
    WARNING_FILTER += discard class="Unrecognized Unicode Source Kind" 
    WARNING_FILTER += discard class="Unrestricted Unions in Microsoft Mode" 
    WARNING_FILTER += discard class="Unsequenced Use of Variable" 
    WARNING_FILTER += discard class="Unsigned Compare With Negative" 
    WARNING_FILTER += discard class="Unsigned Fixed Point Negation" 
    WARNING_FILTER += discard class="Unsigned enum Bit Field With Signed Enumerator" 
    WARNING_FILTER += discard class="Unsupported Header Unit Feature" 
    WARNING_FILTER += discard class="Unterminated C String" 
    WARNING_FILTER += discard class="Unterminated Delimited Escape" 
    WARNING_FILTER += discard class="Unterminated Unicode Name" 
    WARNING_FILTER += discard class="Unusable Pack" 
    WARNING_FILTER += discard class="Unused Dereference of Reference Class" 
    WARNING_FILTER += discard class="Unused Value" 
    WARNING_FILTER += discard class="Use After Close" 
    WARNING_FILTER += discard class="Use After Free" 
    WARNING_FILTER += discard class="Use of Generic Class With Pending Constraint" 
    WARNING_FILTER += discard class="Use of GetTempFileName" 
    WARNING_FILTER += discard class="Use of SO_REUSEADDR" 
    WARNING_FILTER += discard class="Use of Undefined Function With Deduced Return Type" 
    WARNING_FILTER += discard class="Use of Weak Cryptographic Algorithm" 
    WARNING_FILTER += discard class="Use of crypt" 
    WARNING_FILTER += discard class="Use of drem" 
    WARNING_FILTER += discard class="Use of gamma" 
    WARNING_FILTER += discard class="Use of gets" 
    WARNING_FILTER += discard class="Use of mktemp" 
    WARNING_FILTER += discard class="Use of tmpfile" 
    WARNING_FILTER += discard class="Use of tmpnam" 
    WARNING_FILTER += discard class="Useless Assignment" 
    WARNING_FILTER += discard class="Useless Declaration" 
    WARNING_FILTER += discard class="Useless Placement delete" 
    WARNING_FILTER += discard class="Useless Type Qualifier on Return Type" 
    WARNING_FILTER += discard class="Useless Type Qualifiers in Type Name" 
    WARNING_FILTER += discard class="Useless Type Qualifiers" 
    WARNING_FILTER += discard class="Useless using Declaration" 
    WARNING_FILTER += discard class="User-defined Literal Cannot Be Class Member" 
    WARNING_FILTER += discard class="User-defined String Suffix Mismatch" 
    WARNING_FILTER += discard class="VLA Is Not auto" 
    WARNING_FILTER += discard class="VLA Not Allowed" 
    WARNING_FILTER += discard class="VLA Size Ignored" 
    WARNING_FILTER += discard class="VLA Type in Template Argument" 
    WARNING_FILTER += discard class="VLA With Unspecified Bound Not Allowed" 
    WARNING_FILTER += discard class="VLA in Return Type" 
    WARNING_FILTER += discard class="VLA in Statement Expression" 
    WARNING_FILTER += discard class="Vacuous Destructor Not Called" 
    WARNING_FILTER += discard class="Value Class Not Satisfied" 
    WARNING_FILTER += discard class="Value Initialization Priority of Function" 
    WARNING_FILTER += discard class="Value Initialization Priority of Incomplete" 
    WARNING_FILTER += discard class="Value Initialization Priority of Reference" 
    WARNING_FILTER += discard class="Value Initialization Priority of Sizeless Type" 
    WARNING_FILTER += discard class="Value Returned in Constructor" 
    WARNING_FILTER += discard class="Value Returned in void Function" 
    WARNING_FILTER += discard class="Value of #pragma pack(show)" 
    WARNING_FILTER += discard class="Vararg __clrcall" 
    WARNING_FILTER += discard class="Vararg __thiscall" 
    WARNING_FILTER += discard class="Varargs Function Cast" 
    WARNING_FILTER += discard class="Variable Align Attribute Not on Definition" 
    WARNING_FILTER += discard class="Variable Not Constant Addressed" 
    WARNING_FILTER += discard class="Variable Not Constant Valued" 
    WARNING_FILTER += discard class="Variable Retained Incomplete Type" 
    WARNING_FILTER += discard class="Variable Template Function Type" 
    WARNING_FILTER += discard class="Variable Templates Requires C++14" 
    WARNING_FILTER += discard class="Variable Used as Destructor" 
    WARNING_FILTER += discard class="Variable Used as Finalizer" 
    WARNING_FILTER += discard class="Variable With Interface Type" 
    WARNING_FILTER += discard class="Variable With Uninitialized Field" 
    WARNING_FILTER += discard class="Variable With Uninitialized Member" 
    WARNING_FILTER += discard class="Variable With Virtual Bases in constexpr Function" 
    WARNING_FILTER += discard class="Variably Modified Type Not Allowed Here" 
    WARNING_FILTER += discard class="Variably Modified Type Not Allowed" 
    WARNING_FILTER += discard class="Variadic Templates Requires C++" 
    WARNING_FILTER += discard class="Vector Element Type Mismatch" 
    WARNING_FILTER += discard class="Vector Length Too Large" 
    WARNING_FILTER += discard class="Vector Operation Requires Integer Vector" 
    WARNING_FILTER += discard class="Vector Size Must Be Multiple of Element Size" 
    WARNING_FILTER += discard class="Vector Size Must Be Power of Two" 
    WARNING_FILTER += discard class="Vector Size Too Large" 
    WARNING_FILTER += discard class="Vector Template Parameter" 
    WARNING_FILTER += discard class="Vector Type Required" 
    WARNING_FILTER += discard class="Vector Types Differ in Length" 
    WARNING_FILTER += discard class="Vectors Must Have Same Size" 
    WARNING_FILTER += discard class="Virtual Base for Managed Class" 
    WARNING_FILTER += discard class="Virtual Call in Constructor" 
    WARNING_FILTER += discard class="Virtual Call in Destructor" 
    WARNING_FILTER += discard class="Virtual Function Cannot Have Deduced Return Type" 
    WARNING_FILTER += discard class="Virtual Function Declaration Hidden" 
    WARNING_FILTER += discard class="Virtual Function Never Defined" 
    WARNING_FILTER += discard class="Virtual With Explicit this" 
    WARNING_FILTER += discard class="Virtual inline Never Defined" 
    WARNING_FILTER += discard class="Virtual static Event Accessor" 
    WARNING_FILTER += discard class="Virtual static Event" 
    WARNING_FILTER += discard class="Virtual static Not Allowed" 
    WARNING_FILTER += discard class="Virtual static Property Accessor" 
    WARNING_FILTER += discard class="Virtual static Property" 
    WARNING_FILTER += discard class="Visibility Specifier Requires Definition" 
    WARNING_FILTER += discard class="Visibility Specifier on Nested Type" 
    WARNING_FILTER += discard class="Warning Directive" 
    WARNING_FILTER += discard class="White Space Inside Splice" 
    WARNING_FILTER += discard class="White Space Required After Macro Name" 
    WARNING_FILTER += discard class="Wide Deprecation String" 
    WARNING_FILTER += discard class="Wide String Invalid in asm" 
    WARNING_FILTER += discard class="Wide String Not Allowed" 
    WARNING_FILTER += discard class="Wrong Entity for Attribute" 
    WARNING_FILTER += discard class="Wrong Entity for alignas" 
    WARNING_FILTER += discard class="Wrong Number of Arguments" 
    WARNING_FILTER += discard class="Yield Outside of Function" 
    WARNING_FILTER += discard class="Yield in catch" 
    WARNING_FILTER += discard class="Zero Length Array Is GNU Extension" 
    WARNING_FILTER += discard class="Zero Length Bit Field Must Be Unnamed" 
    WARNING_FILTER += discard class="Zero Length String" 
    WARNING_FILTER += discard class="\"(\" After Function" 
    WARNING_FILTER += discard class="_Alignas Deprecated" 
    WARNING_FILTER += discard class="_Alignof Deprecated" 
    WARNING_FILTER += discard class="_Atomic Array or Function Type" 
    WARNING_FILTER += discard class="_Atomic Bit Field" 
    WARNING_FILTER += discard class="_Atomic Specifier With Qualified Type" 
    WARNING_FILTER += discard class="_Bool Deprecated" 
    WARNING_FILTER += discard class="_Noreturn Deprecated" 
    WARNING_FILTER += discard class="_Static_assert Deprecated" 
    WARNING_FILTER += discard class="_Thread_local Deprecated" 
    WARNING_FILTER += discard class="__VA_ARGS__ Not Allowed" 
    WARNING_FILTER += discard class="__VA_OPT__ Not Allowed" 
    WARNING_FILTER += discard class="__auto_type Brace Initialization Not Allowed" 
    WARNING_FILTER += discard class="__auto_type With Secondary Declarator" 
    WARNING_FILTER += discard class="__auto_type Without Initializer" 
    WARNING_FILTER += discard class="__based Not Allowed Here" 
    WARNING_FILTER += discard class="__based Not Followed by Star" 
    WARNING_FILTER += discard class="__based Variable Cannot Be Local" 
    WARNING_FILTER += discard class="__based Variable Must Be Pointer" 
    WARNING_FILTER += discard class="__clrcall Requires C++/CLI" 
    WARNING_FILTER += discard class="__declspec(align(...)) Reduction Ignored" 
    WARNING_FILTER += discard class="__declspec(property) Not Allowed" 
    WARNING_FILTER += discard class="__event __interface Cannot Have Definition" 
    WARNING_FILTER += discard class="__event __interface Must Be Previously Defined" 
    WARNING_FILTER += discard class="__has_cpp_attribute Not in #if" 
    WARNING_FILTER += discard class="__has_include Not in if" 
    WARNING_FILTER += discard class="__has_include_next in Primary Source File" 
    WARNING_FILTER += discard class="__if_exists Not Allowed" 
    WARNING_FILTER += discard class="__if_exists Not Closed" 
    WARNING_FILTER += discard class="__implements Must Precede Virtual Functions" 
    WARNING_FILTER += discard class="__implements Requires Interface" 
    WARNING_FILTER += discard class="__is_signed No Longer a Keyword" 
    WARNING_FILTER += discard class="__leave Must Be in __try" 
    WARNING_FILTER += discard class="__real and __imag Require Complex Argument" 
    WARNING_FILTER += discard class="__real/__imag Applied to Real Value" 
    WARNING_FILTER += discard class="__super After Scope" 
    WARNING_FILTER += discard class="__super Not in Class" 
    WARNING_FILTER += discard class="__thiscall Requires Non-static Member" 
    WARNING_FILTER += discard class="__unaligned Qualifier Dropped" 
    WARNING_FILTER += discard class="__uuidof Requires uuid Class Type" 
    WARNING_FILTER += discard class="abi_tag Ignored in C Mode" 
    WARNING_FILTER += discard class="abi_tag Ignored on Specialization" 
    WARNING_FILTER += discard class="abi_tag Ignored" 
    WARNING_FILTER += discard class="abi_tag Redefinition" 
    WARNING_FILTER += discard class="abstract Requires virtual" 
    WARNING_FILTER += discard class="abstract or sealed on union" 
    WARNING_FILTER += discard class="alignof Function Type" 
    WARNING_FILTER += discard class="alignof Incomplete Array" 
    WARNING_FILTER += discard class="alignof Incomplete Type" 
    WARNING_FILTER += discard class="alignof With Expression Argument" 
    WARNING_FILTER += discard class="always_inline Requires inline" 
    WARNING_FILTER += discard class="always_inline Suppressed" 
    WARNING_FILTER += discard class="asm Declaration Not Allowed" 
    WARNING_FILTER += discard class="asm Function Must Be Prototyped" 
    WARNING_FILTER += discard class="asm Input Must Not Have Output Modifier" 
    WARNING_FILTER += discard class="asm Name After Definition" 
    WARNING_FILTER += discard class="asm Name Conflict" 
    WARNING_FILTER += discard class="asm Name Is GNU Extension" 
    WARNING_FILTER += discard class="asm Name in Routine Definition" 
    WARNING_FILTER += discard class="asm Name in typedef" 
    WARNING_FILTER += discard class="asm Name on auto Variable" 
    WARNING_FILTER += discard class="asm Not Allowed" 
    WARNING_FILTER += discard class="asm Operand Specification Is GNU Extension" 
    WARNING_FILTER += discard class="asm Output Must Have Output Modifier" 
    WARNING_FILTER += discard class="assume Expression Discarded" 
    WARNING_FILTER += discard class="assume Statement Applies to Null Statements" 
    WARNING_FILTER += discard class="auto Brace Initialization Not Allowed" 
    WARNING_FILTER += discard class="auto Cannot Be Disabled" 
    WARNING_FILTER += discard class="auto Cast Requires C++23" 
    WARNING_FILTER += discard class="auto Direct List Initialization Priority Requires Singleton" 
    WARNING_FILTER += discard class="auto Ignored" 
    WARNING_FILTER += discard class="auto Not Allowed Here" 
    WARNING_FILTER += discard class="auto Type Requires Initializer" 
    WARNING_FILTER += discard class="auto Type in Array Type" 
    WARNING_FILTER += discard class="auto Type in Function Type" 
    WARNING_FILTER += discard class="auto Used Two Ways" 
    WARNING_FILTER += discard class="auto Variable in Own Initializer" 
    WARNING_FILTER += discard class="auto new With Braced Initialization Priority" 
    WARNING_FILTER += discard class="availability Attribute Ignored" 
    WARNING_FILTER += discard class="begin/end Type Mismatch in Range-based for" 
    WARNING_FILTER += discard class="bool Type Not Allowed" 
    WARNING_FILTER += discard class="break Cannot Be in finally Block" 
    WARNING_FILTER += discard class="break Must Be in Loop or switch" 
    WARNING_FILTER += discard class="carries_dependency Ignored" 
    WARNING_FILTER += discard class="carries_dependency Not on First Declaration" 
    WARNING_FILTER += discard class="case Label Conflict" 
    WARNING_FILTER += discard class="case Label Must Be in switch" 
    WARNING_FILTER += discard class="cleanup Attribute in constexpr Function" 
    WARNING_FILTER += discard class="co_await Not Allowed Outside Function Scope" 
    WARNING_FILTER += discard class="co_await Not Allowed in Static Initializer" 
    WARNING_FILTER += discard class="co_await Not Allowed in catch Clause" 
    WARNING_FILTER += discard class="co_await Operand Not a Class" 
    WARNING_FILTER += discard class="co_await in Unevaluated Operand" 
    WARNING_FILTER += discard class="co_await on Nonrange Based for" 
    WARNING_FILTER += discard class="coclass Base Requirements Not Met" 
    WARNING_FILTER += discard class="concept Argument List Substitution Failed" 
    WARNING_FILTER += discard class="concept Failed" 
    WARNING_FILTER += discard class="const Function Anachronism" 
    WARNING_FILTER += discard class="const Ignored" 
    WARNING_FILTER += discard class="const Member Suppresses Copy Assignment Declaration" 
    WARNING_FILTER += discard class="const volatile Reference Initializer Anachronism" 
    WARNING_FILTER += discard class="const volatile Reference Initializer From Rvalue" 
    WARNING_FILTER += discard class="consteval Call Nonconstant" 
    WARNING_FILTER += discard class="consteval Constructor With Virtual Base" 
    WARNING_FILTER += discard class="consteval Destructor" 
    WARNING_FILTER += discard class="consteval Explicit Instantiation" 
    WARNING_FILTER += discard class="consteval Overrides Non-consteval" 
    WARNING_FILTER += discard class="consteval Variable" 
    WARNING_FILTER += discard class="consteval Virtual Combination" 
    WARNING_FILTER += discard class="consteval main" 
    WARNING_FILTER += discard class="consteval new or delete Operator" 
    WARNING_FILTER += discard class="constexpr Access One Past Array End" 
    WARNING_FILTER += discard class="constexpr Access Past Object" 
    WARNING_FILTER += discard class="constexpr Access to Expired Storage" 
    WARNING_FILTER += discard class="constexpr Access to Runtime Storage" 
    WARNING_FILTER += discard class="constexpr Address Unknown" 
    WARNING_FILTER += discard class="constexpr Allocation Mismatch" 
    WARNING_FILTER += discard class="constexpr Allocation Position" 
    WARNING_FILTER += discard class="constexpr Allocation Too Large" 
    WARNING_FILTER += discard class="constexpr Allocation Too Small" 
    WARNING_FILTER += discard class="constexpr Bad Deallocation Size" 
    WARNING_FILTER += discard class="constexpr Bad Deallocation Type" 
    WARNING_FILTER += discard class="constexpr Bad Deallocation" 
    WARNING_FILTER += discard class="constexpr Bad Derived Class Cast" 
    WARNING_FILTER += discard class="constexpr Bad Mantissa String" 
    WARNING_FILTER += discard class="constexpr Call Not Interpretable" 
    WARNING_FILTER += discard class="constexpr Call to Non-constexpr Function" 
    WARNING_FILTER += discard class="constexpr Called From Routine" 
    WARNING_FILTER += discard class="constexpr Called From" 
    WARNING_FILTER += discard class="constexpr Cannot Make Zero Length Array" 
    WARNING_FILTER += discard class="constexpr Class Specific new" 
    WARNING_FILTER += discard class="constexpr Comparison Calls Non-constexpr Function" 
    WARNING_FILTER += discard class="constexpr Constructor Does Not Initialize Base" 
    WARNING_FILTER += discard class="constexpr Constructor Initializes No Variant Field" 
    WARNING_FILTER += discard class="constexpr Constructor With Destructor" 
    WARNING_FILTER += discard class="constexpr Constructor With Function try Block" 
    WARNING_FILTER += discard class="constexpr Constructor With Virtual Base" 
    WARNING_FILTER += discard class="constexpr Dependent Array Size" 
    WARNING_FILTER += discard class="constexpr Destructor" 
    WARNING_FILTER += discard class="constexpr Equality Past the End Address" 
    WARNING_FILTER += discard class="constexpr Expiring Temporary" 
    WARNING_FILTER += discard class="constexpr Explicit Destructor Call" 
    WARNING_FILTER += discard class="constexpr Explicit Instantiation" 
    WARNING_FILTER += discard class="constexpr Expression Cannot Be Interpreted" 
    WARNING_FILTER += discard class="constexpr Flexible Array Initializer" 
    WARNING_FILTER += discard class="constexpr Float Error" 
    WARNING_FILTER += discard class="constexpr Floating Point Conversion Failed" 
    WARNING_FILTER += discard class="constexpr Floating Point Error" 
    WARNING_FILTER += discard class="constexpr Floating Point Values Not Comparable" 
    WARNING_FILTER += discard class="constexpr Function Undefined" 
    WARNING_FILTER += discard class="constexpr Function With Function try Block" 
    WARNING_FILTER += discard class="constexpr Ignored on Microsoft Non-static Member" 
    WARNING_FILTER += discard class="constexpr Implied Source Nonconstant" 
    WARNING_FILTER += discard class="constexpr Incomplete Type" 
    WARNING_FILTER += discard class="constexpr Integer Overflow" 
    WARNING_FILTER += discard class="constexpr Interpreter Address" 
    WARNING_FILTER += discard class="constexpr Invalid Constant Kind" 
    WARNING_FILTER += discard class="constexpr Invalid Intrinsic Signature" 
    WARNING_FILTER += discard class="constexpr Invalid Null Pointer Operation" 
    WARNING_FILTER += discard class="constexpr Invalid Pointer Difference" 
    WARNING_FILTER += discard class="constexpr Invalid Pointer to Member Access" 
    WARNING_FILTER += discard class="constexpr Invalid Type Conversion" 
    WARNING_FILTER += discard class="constexpr Invalid dynamic_cast" 
    WARNING_FILTER += discard class="constexpr Lambdas Not Enabled" 
    WARNING_FILTER += discard class="constexpr Leftover Allocations" 
    WARNING_FILTER += discard class="constexpr Length Too Long for make_constexpr_array" 
    WARNING_FILTER += discard class="constexpr Local static" 
    WARNING_FILTER += discard class="constexpr Missing Initializer for Field" 
    WARNING_FILTER += discard class="constexpr Missing Return Value" 
    WARNING_FILTER += discard class="constexpr Modifying const Storage" 
    WARNING_FILTER += discard class="constexpr Multiple union Initializers" 
    WARNING_FILTER += discard class="constexpr Negative Shift" 
    WARNING_FILTER += discard class="constexpr No Active union Field" 
    WARNING_FILTER += discard class="constexpr No Current Parameters" 
    WARNING_FILTER += discard class="constexpr Nonarray Pointer Arithmetic" 
    WARNING_FILTER += discard class="constexpr Nonarray Subscript" 
    WARNING_FILTER += discard class="constexpr Nonvirtual Subobject delete" 
    WARNING_FILTER += discard class="constexpr Not const" 
    WARNING_FILTER += discard class="constexpr Null Callee" 
    WARNING_FILTER += discard class="constexpr Null Dereference" 
    WARNING_FILTER += discard class="constexpr Null Pointer to Member Data" 
    WARNING_FILTER += discard class="constexpr Object With Virtual Base" 
    WARNING_FILTER += discard class="constexpr Out of Bounds Array Access" 
    WARNING_FILTER += discard class="constexpr Placement new" 
    WARNING_FILTER += discard class="constexpr Pointer Ahead of Array" 
    WARNING_FILTER += discard class="constexpr Pointers Not Comparable" 
    WARNING_FILTER += discard class="constexpr Reflection Not of Constant" 
    WARNING_FILTER += discard class="constexpr Return Not Constant" 
    WARNING_FILTER += discard class="constexpr Shift Excess" 
    WARNING_FILTER += discard class="constexpr Shift Negative Value" 
    WARNING_FILTER += discard class="constexpr Statement Cannot Be Interpreted" 
    WARNING_FILTER += discard class="constexpr String Not Null Terminated" 
    WARNING_FILTER += discard class="constexpr Too Many Nested Anonymous Types" 
    WARNING_FILTER += discard class="constexpr Type Invalid" 
    WARNING_FILTER += discard class="constexpr Type Too Large" 
    WARNING_FILTER += discard class="constexpr VLA" 
    WARNING_FILTER += discard class="constexpr Vacuous Destructor Call" 
    WARNING_FILTER += discard class="constexpr Variable Declaration Must Be Definition" 
    WARNING_FILTER += discard class="constexpr Variable Must Have Literal Type" 
    WARNING_FILTER += discard class="constexpr Virtual Base" 
    WARNING_FILTER += discard class="constexpr Virtual Combination" 
    WARNING_FILTER += discard class="constexpr and consteval Specifiers" 
    WARNING_FILTER += discard class="constexpr goto" 
    WARNING_FILTER += discard class="constexpr main" 
    WARNING_FILTER += discard class="constexpr memcpy Distinct Types" 
    WARNING_FILTER += discard class="constexpr memcpy Nontrivial Type" 
    WARNING_FILTER += discard class="constexpr memcpy Operand Not Object" 
    WARNING_FILTER += discard class="constexpr memcpy Overflow" 
    WARNING_FILTER += discard class="constexpr memcpy Overlap" 
    WARNING_FILTER += discard class="constexpr memcpy Partial Object" 
    WARNING_FILTER += discard class="constexpr mutable Field Load" 
    WARNING_FILTER += discard class="constexpr reinterpret_cast" 
    WARNING_FILTER += discard class="constexpr static Data Member Without Initializer" 
    WARNING_FILTER += discard class="constexpr union Field Inactive" 
    WARNING_FILTER += discard class="constexpr volatile Fetch" 
    WARNING_FILTER += discard class="constexpr weak Address" 
    WARNING_FILTER += discard class="constinit Variable Has Dynamic Initializer" 
    WARNING_FILTER += discard class="constinit Variable Storage" 
    WARNING_FILTER += discard class="continue Cannot Be in finally Block" 
    WARNING_FILTER += discard class="continue Must Be in Loop" 
    WARNING_FILTER += discard class="cosh on High Number" 
    WARNING_FILTER += discard class="cosh on Low Number" 
    WARNING_FILTER += discard class="decltype Is Not Base Class" 
    WARNING_FILTER += discard class="decltype(auto) Cannot Be Qualified" 
    WARNING_FILTER += discard class="decltype(auto) Not Allowed Here" 
    WARNING_FILTER += discard class="decltype(auto) Return Must Be Standalone" 
    WARNING_FILTER += discard class="decltype(auto) Type Requires Initializer" 
    WARNING_FILTER += discard class="decltype-qualified Declared Name" 
    WARNING_FILTER += discard class="defined Always False" 
    WARNING_FILTER += discard class="delete Count Anachronism" 
    WARNING_FILTER += discard class="delete of Array Type Nonstandard" 
    WARNING_FILTER += discard class="delete of Array Type" 
    WARNING_FILTER += discard class="delete of Function Pointer" 
    WARNING_FILTER += discard class="delete of Incomplete Class" 
    WARNING_FILTER += discard class="dep_name Requires Parse Nonclass Templates" 
    WARNING_FILTER += discard class="deprecated Attribute" 
    WARNING_FILTER += discard class="dllimport Defined" 
    WARNING_FILTER += discard class="double for long double" 
    WARNING_FILTER += discard class="dynamic_cast Operand Must Be Polymorphic" 
    WARNING_FILTER += discard class="dynamic_cast Without RTTI" 
    WARNING_FILTER += discard class="dynamic_cast to Value Generic" 
    WARNING_FILTER += discard class="enum Attribute Ignored" 
    WARNING_FILTER += discard class="enum Base Type Must Be Integral" 
    WARNING_FILTER += discard class="enum Base Type Too Limited" 
    WARNING_FILTER += discard class="enum Bit Field Too Small" 
    WARNING_FILTER += discard class="enum Not Allowed" 
    WARNING_FILTER += discard class="enum Type Not Allowed" 
    WARNING_FILTER += discard class="enum Type Replacement" 
    WARNING_FILTER += discard class="enum Value Out of Integer Range" 
    WARNING_FILTER += discard class="enum Value Out of Underlying Range" 
    WARNING_FILTER += discard class="enum const_cast" 
    WARNING_FILTER += discard class="enum in Managed Class Missing Definition" 
    WARNING_FILTER += discard class="explicit Constructor in Copy List Initialization Priority" 
    WARNING_FILTER += discard class="explicit Deduction Guide in Copy List Initialization Priority" 
    WARNING_FILTER += discard class="explicit Not Allowed" 
    WARNING_FILTER += discard class="export After Definition" 
    WARNING_FILTER += discard class="export Not Allowed" 
    WARNING_FILTER += discard class="export Not at namespace Scope" 
    WARNING_FILTER += discard class="export Template Requires Distinct Template Signatures" 
    WARNING_FILTER += discard class="export Template Requires No implicit_include" 
    WARNING_FILTER += discard class="export on Instantiation" 
    WARNING_FILTER += discard class="ext_vector_type Invalid Size" 
    WARNING_FILTER += discard class="ext_vector_type Not in typedef" 
    WARNING_FILTER += discard class="ext_vector_type Requires Integral Floating Type" 
    WARNING_FILTER += discard class="ext_vector_type Requires bool Integral Floating Type" 
    WARNING_FILTER += discard class="extern C Literal Operator" 
    WARNING_FILTER += discard class="extern Template Follows Instantiation" 
    WARNING_FILTER += discard class="extern inline Never Defined" 
    WARNING_FILTER += discard class="fallthrough Applies to Null Statement" 
    WARNING_FILTER += discard class="fallthrough Not in switch" 
    WARNING_FILTER += discard class="final Base Class" 
    WARNING_FILTER += discard class="final Managed Class" 
    WARNING_FILTER += discard class="final Modifier Requires Virtual Function" 
    WARNING_FILTER += discard class="for each GetEnumerator Return Type Invalid" 
    WARNING_FILTER += discard class="for each Incompatible Type" 
    WARNING_FILTER += discard class="for each Invalid Return Type for Move Next" 
    WARNING_FILTER += discard class="for each Missing Field" 
    WARNING_FILTER += discard class="for each Missing Function" 
    WARNING_FILTER += discard class="for each No Matching Overload" 
    WARNING_FILTER += discard class="for each Undefined Identifier" 
    WARNING_FILTER += discard class="for each static Function" 
    WARNING_FILTER += discard class="for-init Hidden Declaration" 
    WARNING_FILTER += discard class="for-init Hides Declaration" 
    WARNING_FILTER += discard class="forScope Stack Empty" 
    WARNING_FILTER += discard class="format Routine Not Varargs" 
    WARNING_FILTER += discard class="friend Attribute Requires Definition" 
    WARNING_FILTER += discard class="friend Cannot Add Default Arguments" 
    WARNING_FILTER += discard class="friend Class Template Default Argument Not Allowed" 
    WARNING_FILTER += discard class="friend Is Nonreal Template" 
    WARNING_FILTER += discard class="friend Partial Specialization" 
    WARNING_FILTER += discard class="friend Qualification Ignored" 
    WARNING_FILTER += discard class="friend Specifier Ignored" 
    WARNING_FILTER += discard class="friend Template in Local Class" 
    WARNING_FILTER += discard class="friend With Definition Argument Must Be Definition" 
    WARNING_FILTER += discard class="friend With Definition Argument Must Be Only Declaration" 
    WARNING_FILTER += discard class="gcnew Bad Type Used With Array Initialization Priority" 
    WARNING_FILTER += discard class="gcnew Used With Placement Syntax" 
    WARNING_FILTER += discard class="gcnew Used With auto Syntax" 
    WARNING_FILTER += discard class="gcnew and Abstract" 
    WARNING_FILTER += discard class="gcnew and No Constructor" 
    WARNING_FILTER += discard class="gcnew and No gcnew" 
    WARNING_FILTER += discard class="gcnew of Native Array" 
    WARNING_FILTER += discard class="get Property Function Missing" 
    WARNING_FILTER += discard class="gnu_inline Requires inline" 
    WARNING_FILTER += discard class="hiding Attribute Required" 
    WARNING_FILTER += discard class="hiding Attribute on Nonhiding Member" 
    WARNING_FILTER += discard class="hiding Attribute on Unhidden Member" 
    WARNING_FILTER += discard class="if consteval Requires Braced Dependent Statement" 
    WARNING_FILTER += discard class="if consteval in Non-constexpr Function" 
    WARNING_FILTER += discard class="if constexpr Requires C++17" 
    WARNING_FILTER += discard class="ifunc Cannot Be Alias" 
    WARNING_FILTER += discard class="ifunc Cannot Be weak" 
    WARNING_FILTER += discard class="implementation_key Outside Mapping Region" 
    WARNING_FILTER += discard class="implicit_extern_c_type_conversion Only in C++" 
    WARNING_FILTER += discard class="implicit_include Incompatible With Multiple Translation Units" 
    WARNING_FILTER += discard class="implicit_noexcept Requires noexcept Support" 
    WARNING_FILTER += discard class="import Name Not Allowed" 
    WARNING_FILTER += discard class="initializer_list Not Included" 
    WARNING_FILTER += discard class="initonly Requires Managed Class" 
    WARNING_FILTER += discard class="initonly const Has No Effect" 
    WARNING_FILTER += discard class="initonly static Data Member Not Initialized" 
    WARNING_FILTER += discard class="initonly volatile Not Allowed" 
    WARNING_FILTER += discard class="inline Function Cannot Be Instantiated" 
    WARNING_FILTER += discard class="inline GNU noinline Conflict" 
    WARNING_FILTER += discard class="inline Never Defined" 
    WARNING_FILTER += discard class="inline Non-static Data Member" 
    WARNING_FILTER += discard class="inline Not Allowed" 
    WARNING_FILTER += discard class="inline Qualifier Ignored" 
    WARNING_FILTER += discard class="inline and Nonfunction" 
    WARNING_FILTER += discard class="inline main" 
    WARNING_FILTER += discard class="inline new or delete Operator" 
    WARNING_FILTER += discard class="inline on Alias" 
    WARNING_FILTER += discard class="inline on Nested namespace" 
    WARNING_FILTER += discard class="internal_linkage Not on Prior Declaration" 
    WARNING_FILTER += discard class="main Coroutine" 
    WARNING_FILTER += discard class="main First Parameter Not Integer" 
    WARNING_FILTER += discard class="main Second Parameter Wrong Type" 
    WARNING_FILTER += discard class="microsoft_version Insufficient for C++/CLI" 
    WARNING_FILTER += discard class="microsoft_version Insufficient for C++/CX" 
    WARNING_FILTER += discard class="module Directive in Macro" 
    WARNING_FILTER += discard class="module Directive in if" 
    WARNING_FILTER += discard class="module Name Not Allowed" 
    WARNING_FILTER += discard class="mutable Not Allowed" 
    WARNING_FILTER += discard class="mutable Qualifier on Explicit this Lambda" 
    WARNING_FILTER += discard class="mutable in Embedded C++" 
    WARNING_FILTER += discard class="namespace Alias Definition Not Allowed" 
    WARNING_FILTER += discard class="namespace CLI Cannot Be Extended" 
    WARNING_FILTER += discard class="namespace Default Cannot Be Extended" 
    WARNING_FILTER += discard class="namespace Definition Not Allowed" 
    WARNING_FILTER += discard class="namespace Name Not Allowed" 
    WARNING_FILTER += discard class="namespace Not Allowed" 
    WARNING_FILTER += discard class="namespace Qualified Name Required" 
    WARNING_FILTER += discard class="new Array Size Must Be Nonnegative" 
    WARNING_FILTER += discard class="new Cast in Embedded C++" 
    WARNING_FILTER += discard class="new Requires Matching Base Member" 
    WARNING_FILTER += discard class="new Used on Handle or Tracking Reference Type" 
    WARNING_FILTER += discard class="new Used on Managed Class Type" 
    WARNING_FILTER += discard class="new Used on Unsuitable Value Type" 
    WARNING_FILTER += discard class="new of CLI Interface Class" 
    WARNING_FILTER += discard class="new of initializer_list" 
    WARNING_FILTER += discard class="new or override Required" 
    WARNING_FILTER += discard class="new or virtual Required" 
    WARNING_FILTER += discard class="nodiscard Constructor" 
    WARNING_FILTER += discard class="nodiscard Does Not Apply" 
    WARNING_FILTER += discard class="nodiscard Object Type" 
    WARNING_FILTER += discard class="nodiscard Return Type" 
    WARNING_FILTER += discard class="nodiscard Routine" 
    WARNING_FILTER += discard class="nonnull Parameter Number Too Large" 
    WARNING_FILTER += discard class="nonnull on Nonpointer" 
    WARNING_FILTER += discard class="nonstd_gnu_keywords Requires GNU Mode" 
    WARNING_FILTER += discard class="noreturn With Return Type" 
    WARNING_FILTER += discard class="nullptr Conversion to bool" 
    WARNING_FILTER += discard class="offsetof Bit Field" 
    WARNING_FILTER += discard class="offsetof Nonfield" 
    WARNING_FILTER += discard class="offsetof Reference Field" 
    WARNING_FILTER += discard class="offsetof Virtual Base Member" 
    WARNING_FILTER += discard class="one_instantiation_per_object Incompatible With Multiple Inputs" 
    WARNING_FILTER += discard class="operator-> Loop" 
    WARNING_FILTER += discard class="operator->* in Managed Class" 
    WARNING_FILTER += discard class="overload Anachronism" 
    WARNING_FILTER += discard class="overloadable Attribute Requires Prototype" 
    WARNING_FILTER += discard class="override Member Does Not override" 
    WARNING_FILTER += discard class="override Requires virtual" 
    WARNING_FILTER += discard class="override and final Requires C++11" 
    WARNING_FILTER += discard class="override for Interface Member" 
    WARNING_FILTER += discard class="partial Class Incorrect Type or Location" 
    WARNING_FILTER += discard class="pass_object_size Not in Function Declaration" 
    WARNING_FILTER += discard class="pin_ptr Parameter Not Allowed" 
    WARNING_FILTER += discard class="pin_ptr Return Type Not Allowed" 
    WARNING_FILTER += discard class="property Attribute in Managed Class" 
    WARNING_FILTER += discard class="put Property Function Missing" 
    WARNING_FILTER += discard class="register Clobbered Twice" 
    WARNING_FILTER += discard class="register Keyword Deprecated" 
    WARNING_FILTER += discard class="register Keyword Disallowed" 
    WARNING_FILTER += discard class="register Mapped Variable Cannot Have Initializer" 
    WARNING_FILTER += discard class="register Mapped Variable Must Be POD" 
    WARNING_FILTER += discard class="register Name on Non-register" 
    WARNING_FILTER += discard class="register Storage Class Conflict" 
    WARNING_FILTER += discard class="register Too Small" 
    WARNING_FILTER += discard class="register Used Twice" 
    WARNING_FILTER += discard class="register Used and Clobbered" 
    WARNING_FILTER += discard class="register in Address Space" 
    WARNING_FILTER += discard class="register in Use" 
    WARNING_FILTER += discard class="reinterpret_cast of Handle" 
    WARNING_FILTER += discard class="report_gnu_extensions Requires GNU Mode" 
    WARNING_FILTER += discard class="restrict Not Allowed" 
    WARNING_FILTER += discard class="restrict Pointer to Function" 
    WARNING_FILTER += discard class="restrict Qualifier Dropped" 
    WARNING_FILTER += discard class="restrict Qualifier Ignored" 
    WARNING_FILTER += discard class="return in Coroutine" 
    WARNING_FILTER += discard class="sealed Requires virtual" 
    WARNING_FILTER += discard class="sentinel Attribute Requires Ellipsis" 
    WARNING_FILTER += discard class="sentinel Must Be Ellipsis Argument" 
    WARNING_FILTER += discard class="short_enums Requires GCC Mode" 
    WARNING_FILTER += discard class="shufflevector Index Out of Range" 
    WARNING_FILTER += discard class="sizeof Bit Field" 
    WARNING_FILTER += discard class="sizeof Function" 
    WARNING_FILTER += discard class="sizeof Operand Not Parameter Pack" 
    WARNING_FILTER += discard class="sizeof Pack in Nonvariadic Context" 
    WARNING_FILTER += discard class="sizeof Reference or Interface Class" 
    WARNING_FILTER += discard class="sqrt on Negative Value" 
    WARNING_FILTER += discard class="start_map_region Ignored" 
    WARNING_FILTER += discard class="static Accessor in Non-static Property or Event" 
    WARNING_FILTER += discard class="static Constructor Member Template" 
    WARNING_FILTER += discard class="static Constructor With Named Override" 
    WARNING_FILTER += discard class="static Constructor With Parameters" 
    WARNING_FILTER += discard class="static Conversion Function Must Have One Parameter" 
    WARNING_FILTER += discard class="static Data Member Not Allowed" 
    WARNING_FILTER += discard class="static Default Indexed Property" 
    WARNING_FILTER += discard class="static Lambda Nonstandard" 
    WARNING_FILTER += discard class="static Lambda With Capture" 
    WARNING_FILTER += discard class="static Literal Field" 
    WARNING_FILTER += discard class="static Member Operator Not Allowed" 
    WARNING_FILTER += discard class="static Non-static With Same Parameter Types" 
    WARNING_FILTER += discard class="static Not Allowed" 
    WARNING_FILTER += discard class="static Storage Variable With Handle or Tracking Reference Type" 
    WARNING_FILTER += discard class="static Storage Variable With Reference Class Type" 
    WARNING_FILTER += discard class="static Variable in inline Function" 
    WARNING_FILTER += discard class="static With Explicit this" 
    WARNING_FILTER += discard class="static extern Template" 
    WARNING_FILTER += discard class="std::float128_t Not Supported" 
    WARNING_FILTER += discard class="std::initializer_list Has Destructor" 
    WARNING_FILTER += discard class="std::meta::infovec Not Initialized" 
    WARNING_FILTER += discard class="std::meta::substitute Bad Argument Reflection" 
    WARNING_FILTER += discard class="std::meta::substitute Failed" 
    WARNING_FILTER += discard class="std::source_location Column Bounds" 
    WARNING_FILTER += discard class="std::source_location Line Bounds" 
    WARNING_FILTER += discard class="struct Not Allowed" 
    WARNING_FILTER += discard class="struct Too Large" 
    WARNING_FILTER += discard class="struct __declspec Ignored in C Mode" 
    WARNING_FILTER += discard class="target on Special Function" 
    WARNING_FILTER += discard class="template Not Allowed" 
    WARNING_FILTER += discard class="template Not in template" 
    WARNING_FILTER += discard class="this Not Constant" 
    WARNING_FILTER += discard class="this Used Incorrectly" 
    WARNING_FILTER += discard class="this in Lambda" 
    WARNING_FILTER += discard class="typedef Cannot Be Parameter Name" 
    WARNING_FILTER += discard class="typedef Modification Is Nonstandard" 
    WARNING_FILTER += discard class="typedef Not Allowed" 
    WARNING_FILTER += discard class="typedef in Elaborated Type" 
    WARNING_FILTER += discard class="typeid Needs <typeinfo>" 
    WARNING_FILTER += discard class="typeid of Incomplete Type" 
    WARNING_FILTER += discard class="typeid of Managed Type" 
    WARNING_FILTER += discard class="typename Needed" 
    WARNING_FILTER += discard class="typename Not in Template" 
    WARNING_FILTER += discard class="typeof Is GNU Extension" 
    WARNING_FILTER += discard class="unavailable Attribute" 
    WARNING_FILTER += discard class="union Already Initialized" 
    WARNING_FILTER += discard class="union Base" 
    WARNING_FILTER += discard class="union Cannot Be Transparent Symbol" 
    WARNING_FILTER += discard class="union Cannot Be Transparent" 
    WARNING_FILTER += discard class="union Non-union Mismatch" 
    WARNING_FILTER += discard class="union constexpr Constructor Initializes No Field" 
    WARNING_FILTER += discard class="using Declaration Conflicts With Previous Declaration" 
    WARNING_FILTER += discard class="using Declaration in Embedded C++" 
    WARNING_FILTER += discard class="using Not at File Scope" 
    WARNING_FILTER += discard class="using Out of Scope Declaration" 
    WARNING_FILTER += discard class="using PCH" 
    WARNING_FILTER += discard class="using enum Conflicts" 
    WARNING_FILTER += discard class="using enum Redeclaration" 
    WARNING_FILTER += discard class="using or Access Declaration in Managed Class" 
    WARNING_FILTER += discard class="va_arg Would Have Been Promoted" 
    WARNING_FILTER += discard class="va_start Requires Ellipsis Function" 
    WARNING_FILTER += discard class="vector_size Attribute Requires Integral Floating or enum Type" 
    WARNING_FILTER += discard class="vector_size Attribute on Complex Type" 
    WARNING_FILTER += discard class="vector_size Attribute on enum Type" 
    WARNING_FILTER += discard class="virtual Function Template" 
    WARNING_FILTER += discard class="virtual Has No Effect" 
    WARNING_FILTER += discard class="virtual Ignored" 
    WARNING_FILTER += discard class="virtual Not Allowed" 
    WARNING_FILTER += discard class="virtual Required for Base Override" 
    WARNING_FILTER += discard class="virtual Required for Interface Implementation" 
    WARNING_FILTER += discard class="void Named register" 
    WARNING_FILTER += discard class="void Parameter Not Allowed" 
    WARNING_FILTER += discard class="void Property Index Type" 
    WARNING_FILTER += discard class="void Template Parameter" 
    WARNING_FILTER += discard class="void Template Variable" 
    WARNING_FILTER += discard class="void throw" 
    WARNING_FILTER += discard class="volatile Assignment Deprecated" 
    WARNING_FILTER += discard class="volatile Function Parameter Deprecated" 
    WARNING_FILTER += discard class="volatile Increment/Decrement Deprecated" 
    WARNING_FILTER += discard class="volatile Return Type Deprecated" 
    WARNING_FILTER += discard class="volatile Structured Binding Deprecated" 
    WARNING_FILTER += discard class="volatile Type Not Allowed" 
    WARNING_FILTER += discard class="volatile asm Is GNU Extension" 
    WARNING_FILTER += discard class="volatile operator= Deprecated" 
    WARNING_FILTER += discard class="vtbl Option Requires C++" 
    WARNING_FILTER += discard class="warn_unused_result With void Return" 
    WARNING_FILTER += discard class="wchar_t Option Requires C++" 

 (Java warning classes) 
    WARNING_FILTER += discard class="== Always Fails Because Types Always Different (Java)" 
    WARNING_FILTER += discard class="Abs on random (Java)" 
    WARNING_FILTER += discard class="Accessing File in Permissive Mode (Java)" 
    WARNING_FILTER += discard class="Ambiguous Call from Inner Class (Java)" 
    WARNING_FILTER += discard class="Android Leak (Java)" 
    WARNING_FILTER += discard class="Anonymous LDAP Authentication (Java)" 
    WARNING_FILTER += discard class="Approximate e Constant (Java)" 
    WARNING_FILTER += discard class="Approximate pi Constant (Java)" 
    WARNING_FILTER += discard class="Array Parameter Empty (Java)" 
    WARNING_FILTER += discard class="Assertion Contains Side Effects (Java)" 
    WARNING_FILTER += discard class="Assignment in Conditional (Java)" 
    WARNING_FILTER += discard class="Asymmetric compareTo (Java)" 
    WARNING_FILTER += discard class="Bitwise AND on Boolean (Java)" 
    WARNING_FILTER += discard class="Bitwise AND on Boolean Constant (Java)" 
    WARNING_FILTER += discard class="Bitwise OR on Boolean (Java)" 
    WARNING_FILTER += discard class="Bitwise OR on Boolean Constant (Java)" 
    WARNING_FILTER += discard class="Blocking in Critical Section (Java)" 
    WARNING_FILTER += discard class="Broad Throws Clause (Java)" 
    WARNING_FILTER += discard class="Call Might Return Null (Java)" 
    WARNING_FILTER += discard class="Cast: Integer to Floating Point (Java)" 
    WARNING_FILTER += discard class="Cast: int Computation to long (Java)" 
    WARNING_FILTER += discard class="Class Enables Debug Features (Java)" 
    WARNING_FILTER += discard class="Clone Call to Super is Missing (Java)" 
    WARNING_FILTER += discard class="Closeable Not Closed (Java)" 
    WARNING_FILTER += discard class="Closeable Not Stored (Java)" 
    WARNING_FILTER += discard class="Code Injection (Java)" 
    WARNING_FILTER += discard class="Command Injection (Java)" 
    WARNING_FILTER += discard class="Comparison to Class Names (Java)" 
    WARNING_FILTER += discard class="Comparison to Empty String (Java)" 
    WARNING_FILTER += discard class="Copy-Paste Error" 
    WARNING_FILTER += discard class="Cross Site Scripting (Java)" 
    WARNING_FILTER += discard class="Cross Site Scripting In Error Message Web Page (Java)" 
    WARNING_FILTER += discard class="Cryptographic Algorithm with Risky Default Cipher (Java)" 
    WARNING_FILTER += discard class="Cryptographic Algorithm with Weak Cipher (Java)" 
    WARNING_FILTER += discard class="Cryptographic Algorithm with Weak Hash (Java)" 
    WARNING_FILTER += discard class="DLL Injection (Java)" 
    WARNING_FILTER += discard class="DOS Injection (Java)" 
    WARNING_FILTER += discard class="Debug Call (Java)" 
    WARNING_FILTER += discard class="Debug Warning (Java)" 
    WARNING_FILTER += discard class="Defines equals but not hashCode (Java)" 
    WARNING_FILTER += discard class="Defines hashCode but not equals (Java)" 
    WARNING_FILTER += discard class="Deprecated Cryptography Provider (Java)" 
    WARNING_FILTER += discard class="Direct Thread Usage in Http Servlet (Java)" 
    WARNING_FILTER += discard class="Double-Checked Locking (Java)" 
    WARNING_FILTER += discard class="Empty Branch Statement (Java)" 
    WARNING_FILTER += discard class="Empty Exception Handler (Java)" 
    WARNING_FILTER += discard class="Empty jar File Archived (Java)" 
    WARNING_FILTER += discard class="Empty zip File Archived (Java)" 
    WARNING_FILTER += discard class="Exception Information Disclosure (Java)" 
    WARNING_FILTER += discard class="Execution After Redirect (Java)" 
    WARNING_FILTER += discard class="Explicit Finalize (Java)" 
    WARNING_FILTER += discard class="Field Never Read (Java)" 
    WARNING_FILTER += discard class="Field Never Written (Java)" 
    WARNING_FILTER += discard class="Floating Point Equality (Java)" 
    WARNING_FILTER += discard class="Format String Injection (Java)" 
    WARNING_FILTER += discard class="Fragment Injection (Java)" 
    WARNING_FILTER += discard class="Generic Exception Handler (Java)" 
    WARNING_FILTER += discard class="Hardcoded Cryptographic Key (Java)" 
    WARNING_FILTER += discard class="Hardcoded Filename (Java)" 
    WARNING_FILTER += discard class="Hardcoded Password (Java)" 
    WARNING_FILTER += discard class="Hardcoded Random Seed (Java)" 
    WARNING_FILTER += discard class="Hostname in Condition (Java)" 
    WARNING_FILTER += discard class="Ignored Return Value (Java)" 
    WARNING_FILTER += discard class="Ignored Return Value for Pure Function (Java)" 
    WARNING_FILTER += discard class="Impossible Client Side Locking (Java)" 
    WARNING_FILTER += discard class="Impossible reference comparison (Java)" 
    WARNING_FILTER += discard class="Inappropriate Exception Handler (Java)" 
    WARNING_FILTER += discard class="Inappropriate Instanceof (Java)" 
    WARNING_FILTER += discard class="Ineffective Cleansing of Fragment Taint (Java)" 
    WARNING_FILTER += discard class="Inefficient Bitwise AND (Java)" 
    WARNING_FILTER += discard class="Inefficient Bitwise OR (Java)" 
    WARNING_FILTER += discard class="Inefficient Box-Unbox (Java)" 
    WARNING_FILTER += discard class="Inefficient Instantiation (Java)" 
    WARNING_FILTER += discard class="Inner Class Should be Static (Java)" 
    WARNING_FILTER += discard class="Insecure Cookie (Java)" 
    WARNING_FILTER += discard class="Insecure Key Derivation (Java)" 
    WARNING_FILTER += discard class="Insecure Random Number Generator (Java)" 
    WARNING_FILTER += discard class="Insecure Socket Factory (Java)" 
    WARNING_FILTER += discard class="Insecure XSLT Execution (Java)" 
    WARNING_FILTER += discard class="Insecure verifier Override for Hostname (Java)" 
    WARNING_FILTER += discard class="Insecure verify Override for Certificate (Java)" 
    WARNING_FILTER += discard class="Instanceof Always False (Java)" 
    WARNING_FILTER += discard class="Instanceof Always True (Java)" 
    WARNING_FILTER += discard class="JavaScript Enabled (Java)" 
    WARNING_FILTER += discard class="JavaScript File Access from File URLs (Java)" 
    WARNING_FILTER += discard class="LDAP Authentication Disabled (Java)" 
    WARNING_FILTER += discard class="Lambda Parameter may be null (Java)" 
    WARNING_FILTER += discard class="Legacy Random Generator (Java)" 
    WARNING_FILTER += discard class="Method Enables Debug Features (Java)" 
    WARNING_FILTER += discard class="Method Names Differ Only in Case (Java)" 
    WARNING_FILTER += discard class="Method Should Not Return null (Java)" 
    WARNING_FILTER += discard class="Missing Authentication Annotation (Java)" 
    WARNING_FILTER += discard class="Missing Call to super (Java)" 
    WARNING_FILTER += discard class="Missing Equals Override (Java)" 
    WARNING_FILTER += discard class="Missing JavaScript Entry Point (Java)" 
    WARNING_FILTER += discard class="Missing JavaScript Execution (Java)" 
    WARNING_FILTER += discard class="Missing Required Cryptographic Step (Java)" 
    WARNING_FILTER += discard class="Missing Serial Version Field (Java)" 
    WARNING_FILTER += discard class="Missing isValidFragment Override (Java)" 
    WARNING_FILTER += discard class="Mutable Enumeration (Java)" 
    WARNING_FILTER += discard class="Mutable Public Static Final Array (Java)" 
    WARNING_FILTER += discard class="Non-Object compareTo Parameter (Java)" 
    WARNING_FILTER += discard class="Non-overriding Method Signature (Java)" 
    WARNING_FILTER += discard class="Nonserializable Field (Java)" 
    WARNING_FILTER += discard class="Nonserializable Field Element (Java)" 
    WARNING_FILTER += discard class="Nonserializable Outer Class (Java)" 
    WARNING_FILTER += discard class="Null Parameter Dereference (Java)" 
    WARNING_FILTER += discard class="Null Pointer Dereference (Java)" 
    WARNING_FILTER += discard class="Open Redirect (Java)" 
    WARNING_FILTER += discard class="Password in Property File (Java)" 
    WARNING_FILTER += discard class="Permissive File Mode (Java)" 
    WARNING_FILTER += discard class="Possible XML External Entity Reference (Java)" 
    WARNING_FILTER += discard class="Potential Infinite Recursion (Java)" 
    WARNING_FILTER += discard class="Potential LDAP Poisoning (Java)" 
    WARNING_FILTER += discard class="Redundant Call for Integral Argument (Java)" 
    WARNING_FILTER += discard class="Redundant Call for String Argument (Java)" 
    WARNING_FILTER += discard class="Redundant Condition (Java)" 
    WARNING_FILTER += discard class="Redundant Implements Clause (Java)" 
    WARNING_FILTER += discard class="Reflection Bypasses Member Accessibility (Java)" 
    WARNING_FILTER += discard class="Reflection Injection (Java)" 
    WARNING_FILTER += discard class="Reflection Modifies Member Accessibility (Java)" 
    WARNING_FILTER += discard class="Return null Array (Java)" 
    WARNING_FILTER += discard class="Return null Boolean (Java)" 
    WARNING_FILTER += discard class="Return null Optional (Java)" 
    WARNING_FILTER += discard class="Risky Cipher Algorithm (Java)" 
    WARNING_FILTER += discard class="Risky Cipher Field (Java)" 
    WARNING_FILTER += discard class="Risky Class Cast (Java)" 
    WARNING_FILTER += discard class="Risky Cryptographic Algorithm (Java)" 
    WARNING_FILTER += discard class="Risky Cryptographic Field (Java)" 
    WARNING_FILTER += discard class="Risky JavaScript Interface (Java)" 
    WARNING_FILTER += discard class="Risky array store (Java)" 
    WARNING_FILTER += discard class="SQL Injection (Java)" 
    WARNING_FILTER += discard class="Shadowed Identifier (Java)" 
    WARNING_FILTER += discard class="Should Use == Instead of equals() (Java)" 
    WARNING_FILTER += discard class="Should Use equals() Instead of == (Java)" 
    WARNING_FILTER += discard class="Single-use Random Number Generator (Java)" 
    WARNING_FILTER += discard class="Static Field Assigned Non-Static (Java)" 
    WARNING_FILTER += discard class="Synchronization on Interned String (Java)" 
    WARNING_FILTER += discard class="Synchronization on static (Java)" 
    WARNING_FILTER += discard class="Synchronous Call to Thread Body (Java)" 
    WARNING_FILTER += discard class="Tainted @Trusted Value (Java)" 
    WARNING_FILTER += discard class="Tainted Allocation Size (Java)" 
    WARNING_FILTER += discard class="Tainted Bundle (Java)" 
    WARNING_FILTER += discard class="Tainted Control (Java)" 
    WARNING_FILTER += discard class="Tainted Data in Vulnerable Method (Java)" 
    WARNING_FILTER += discard class="Tainted Expression Evaluation (Java)" 
    WARNING_FILTER += discard class="Tainted HTTP Response (Java)" 
    WARNING_FILTER += discard class="Tainted Hardware Device Property (Java)" 
    WARNING_FILTER += discard class="Tainted LDAP Attribute (Java)" 
    WARNING_FILTER += discard class="Tainted LDAP Filter (Java)" 
    WARNING_FILTER += discard class="Tainted Log (Java)" 
    WARNING_FILTER += discard class="Tainted Message (Java)" 
    WARNING_FILTER += discard class="Tainted Network Address (Java)" 
    WARNING_FILTER += discard class="Tainted Path (Java)" 
    WARNING_FILTER += discard class="Tainted Regular Expression (Java)" 
    WARNING_FILTER += discard class="Tainted Resource (Java)" 
    WARNING_FILTER += discard class="Tainted Session (Java)" 
    WARNING_FILTER += discard class="Tainted URL (Java)" 
    WARNING_FILTER += discard class="Tainted XAML (Java)" 
    WARNING_FILTER += discard class="Tainted XML (Java)" 
    WARNING_FILTER += discard class="Tainted Xpath (Java)" 
    WARNING_FILTER += discard class="Unchecked Parameter Dereference (Java)" 
    WARNING_FILTER += discard class="Unexpected Serial Version Field (Java)" 
    WARNING_FILTER += discard class="Universal JavaScript Access to File URLs (Java)" 
    WARNING_FILTER += discard class="Unnecessary Field (Java)" 
    WARNING_FILTER += discard class="Unnecessary Instantiation for GetClass (Java)" 
    WARNING_FILTER += discard class="Unreachable Instruction (Java)" 
    WARNING_FILTER += discard class="Unsafe Session Expiration Time (Java)" 
    WARNING_FILTER += discard class="Unsafe hash comparison (Java)" 
    WARNING_FILTER += discard class="Untrusted Network Host (Java)" 
    WARNING_FILTER += discard class="Unused Class (Java)" 
    WARNING_FILTER += discard class="Unused Field (Java)" 
    WARNING_FILTER += discard class="Unused Method (Java)" 
    WARNING_FILTER += discard class="Unused Object (Java)" 
    WARNING_FILTER += discard class="Unused Value: Actual Parameter (Java)" 
    WARNING_FILTER += discard class="Unused Value: Variable (Java)" 
    WARNING_FILTER += discard class="Unused Value: Write to Parameter (Java)" 
    WARNING_FILTER += discard class="Use of Hardware ID (Java)" 
    WARNING_FILTER += discard class="Use of Hash without a Salt (Java)" 
    WARNING_FILTER += discard class="Use of Insecure verify for Certificate (Java)" 
    WARNING_FILTER += discard class="Use of Insecure verify for Hostname (Java)" 
    WARNING_FILTER += discard class="Use of Same Seed (Java)" 
    WARNING_FILTER += discard class="Useless Assignment (Java)" 
    WARNING_FILTER += discard class="Useless Assignment to Default (Java)" 
    WARNING_FILTER += discard class="Useless Class Cast (Java)" 
    WARNING_FILTER += discard class="Useless Synchronization (Java)" 
    WARNING_FILTER += discard class="Useless volatile Modifier (Java)" 
    WARNING_FILTER += discard class="Weak Cryptographic Value (Java)" 
    WARNING_FILTER += discard class="Weak Hash Algorithm (Java)" 
    WARNING_FILTER += discard class="Weak Hash Algorithm Field (Java)" 
    WARNING_FILTER += discard class="Weak Initialization Vector Field (Java)" 
    WARNING_FILTER += discard class="Weak Initialization Vector Value (Java)" 
    WARNING_FILTER += discard class="clone Non-cloneable (Java)" 
    WARNING_FILTER += discard class="clone not final (Java)" 
    WARNING_FILTER += discard class="compareTo in Non-Comparable Class (Java)" 
    WARNING_FILTER += discard class="compareTo without equals (Java)" 
    WARNING_FILTER += discard class="compareTo/equals mismatch (Java)" 
    WARNING_FILTER += discard class="equals Always Fails (Java)" 
    WARNING_FILTER += discard class="equals Parameter Should Be Object (Java)" 
    WARNING_FILTER += discard class="equals on Array (Java)" 
    WARNING_FILTER += discard class="toString on Array (Java)" 

 (C# warning classes) 
    WARNING_FILTER += discard class="'Buffer.BlockCopy' expects the number of bytes to be copied for the 'count' argument (C#)" 
    WARNING_FILTER += discard class="'ThreadStatic' only affects static fields (C#)" 
    WARNING_FILTER += discard class="== Always Fails Because Types Always Different (C#)" 
    WARNING_FILTER += discard class="A constant is expected for the parameter (C#)" 
    WARNING_FILTER += discard class="Abs on random (C#)" 
    WARNING_FILTER += discard class="All members declared in parent interfaces must have an implementation in a DynamicInterfaceCastableImplementation-attributed interface (C#)" 
    WARNING_FILTER += discard class="Ambiguous Call from Inner Class (C#)" 
    WARNING_FILTER += discard class="Anonymous LDAP Authentication (C#)" 
    WARNING_FILTER += discard class="Approximate e Constant (C#)" 
    WARNING_FILTER += discard class="Approximate pi Constant (C#)" 
    WARNING_FILTER += discard class="Argument passed to TaskCompletionSource constructor should be TaskCreationOptions enum instead of TaskContinuationOptions enum (C#)" 
    WARNING_FILTER += discard class="Assigning symbol and its member in the same statement (C#)" 
    WARNING_FILTER += discard class="Assignment in Conditional (C#)" 
    WARNING_FILTER += discard class="Asymmetric compareTo (C#)" 
    WARNING_FILTER += discard class="Avoid 'StringBuilder' parameters for P/Invokes (C#)" 
    WARNING_FILTER += discard class="Avoid constant arrays as arguments (C#)" 
    WARNING_FILTER += discard class="Avoid inexact read with 'Stream.Read' (C#)" 
    WARNING_FILTER += discard class="Avoid infinite recursion (C#)" 
    WARNING_FILTER += discard class="Avoid redundant length argument (C#)" 
    WARNING_FILTER += discard class="Avoid using 'Enumerable.Any()' extension method (C#)" 
    WARNING_FILTER += discard class="Avoid using cref tags with a prefix (C#)" 
    WARNING_FILTER += discard class="Avoid zero-length array allocations (C#)" 
    WARNING_FILTER += discard class="Bitwise AND on Boolean (C#)" 
    WARNING_FILTER += discard class="Bitwise AND on Boolean Constant (C#)" 
    WARNING_FILTER += discard class="Bitwise OR on Boolean (C#)" 
    WARNING_FILTER += discard class="Bitwise OR on Boolean Constant (C#)" 
    WARNING_FILTER += discard class="Blocking in Critical Section (C#)" 
    WARNING_FILTER += discard class="Cache and reuse 'JsonSerializerOptions' instances (C#)" 
    WARNING_FILTER += discard class="Call Might Return Null (C#)" 
    WARNING_FILTER += discard class="CancellationToken parameters must come last (C#)" 
    WARNING_FILTER += discard class="Cast: Integer to Floating Point (C#)" 
    WARNING_FILTER += discard class="Cast: int Computation to long (C#)" 
    WARNING_FILTER += discard class="Class Enables Debug Features (C#)" 
    WARNING_FILTER += discard class="Closeable Not Closed (C#)" 
    WARNING_FILTER += discard class="Closeable Not Stored (C#)" 
    WARNING_FILTER += discard class="Code Injection (C#)" 
    WARNING_FILTER += discard class="Command Injection (C#)" 
    WARNING_FILTER += discard class="Comparison to Class Names (C#)" 
    WARNING_FILTER += discard class="Comparison to Empty String (C#)" 
    WARNING_FILTER += discard class="Consider using 'StringBuilder.Append(char)' when applicable (C#)" 
    WARNING_FILTER += discard class="Consider using 'string.Contains' instead of 'string.IndexOf' (C#)" 
    WARNING_FILTER += discard class="Copy-Paste Error" 
    WARNING_FILTER += discard class="Cross Site Scripting (C#)" 
    WARNING_FILTER += discard class="Cross Site Scripting In Error Message Web Page (C#)" 
    WARNING_FILTER += discard class="Cryptographic Algorithm with Risky Default Cipher (C#)" 
    WARNING_FILTER += discard class="Cryptographic Algorithm with Weak Cipher (C#)" 
    WARNING_FILTER += discard class="Cryptographic Algorithm with Weak Hash (C#)" 
    WARNING_FILTER += discard class="DLL Injection (C#)" 
    WARNING_FILTER += discard class="DOS Injection (C#)" 
    WARNING_FILTER += discard class="Debug Call (C#)" 
    WARNING_FILTER += discard class="Debug Warning (C#)" 
    WARNING_FILTER += discard class="Declare types in namespaces (C#)" 
    WARNING_FILTER += discard class="Defines equals but not hashCode (C#)" 
    WARNING_FILTER += discard class="Defines hashCode but not equals (C#)" 
    WARNING_FILTER += discard class="Deprecated Cryptography Provider (C#)" 
    WARNING_FILTER += discard class="Dispose methods should call SuppressFinalize (C#)" 
    WARNING_FILTER += discard class="Dispose methods should call base class dispose (C#)" 
    WARNING_FILTER += discard class="Do Not Add Schema By URL (C#)" 
    WARNING_FILTER += discard class="Do Not Call Dangerous Methods In Deserialization (C#)" 
    WARNING_FILTER += discard class="Do Not Disable Certificate Validation (C#)" 
    WARNING_FILTER += discard class="Do Not Disable HTTP Header Checking (C#)" 
    WARNING_FILTER += discard class="Do Not Disable Request Validation (C#)" 
    WARNING_FILTER += discard class="Do Not Use Broken Cryptographic Algorithms (C#)" 
    WARNING_FILTER += discard class="Do Not Use Deprecated Security Protocols (C#)" 
    WARNING_FILTER += discard class="Do Not Use Digital Signature Algorithm (DSA) (C#)" 
    WARNING_FILTER += discard class="Do Not Use Weak Cryptographic Algorithms (C#)" 
    WARNING_FILTER += discard class="Do Not Use XslTransform (C#)" 
    WARNING_FILTER += discard class="Do not assign a property to itself (C#)" 
    WARNING_FILTER += discard class="Do not call Enumerable.Cast<T> or Enumerable.OfType<T> with incompatible types (C#)" 
    WARNING_FILTER += discard class="Do not call ToImmutableCollection on an ImmutableCollection value (C#)" 
    WARNING_FILTER += discard class="Do not compare Span<T> to 'null' or 'default' (C#)" 
    WARNING_FILTER += discard class="Do not declare event fields as virtual (C#)" 
    WARNING_FILTER += discard class="Do not declare protected member in sealed type (C#)" 
    WARNING_FILTER += discard class="Do not declare static members on generic types (C#)" 
    WARNING_FILTER += discard class="Do not declare visible instance fields (C#)" 
    WARNING_FILTER += discard class="Do not define finalizers for types derived from MemoryManager<T> (C#)" 
    WARNING_FILTER += discard class="Do not duplicate indexed element initializations (C#)" 
    WARNING_FILTER += discard class="Do not hide base class methods (C#)" 
    WARNING_FILTER += discard class="Do not ignore method results (C#)" 
    WARNING_FILTER += discard class="Do not initialize unnecessarily (C#)" 
    WARNING_FILTER += discard class="Do not pass a non-nullable value to 'ArgumentNullException.ThrowIfNull' (C#)" 
    WARNING_FILTER += discard class="Do not pass a nullable struct to 'ArgumentNullException.ThrowIfNull' (C#)" 
    WARNING_FILTER += discard class="Do not prefix enum values with type name (C#)" 
    WARNING_FILTER += discard class="Do not raise exceptions in finally clauses (C#)" 
    WARNING_FILTER += discard class="Do not raise reserved exception types (C#)" 
    WARNING_FILTER += discard class="Do not use 'OutAttribute' on string parameters for P/Invokes (C#)" 
    WARNING_FILTER += discard class="Do not use 'WaitAll' with a single task (C#)" 
    WARNING_FILTER += discard class="Do not use 'WhenAll' with a single task (C#)" 
    WARNING_FILTER += discard class="Do not use ConfigureAwaitOptions.SuppressThrowing with Task<TResult> (C#)" 
    WARNING_FILTER += discard class="Do not use Count() or LongCount() when Any() can be used (C#)" 
    WARNING_FILTER += discard class="Do not use CountAsync() or LongCountAsync() when AnyAsync() can be used (C#)" 
    WARNING_FILTER += discard class="Do not use Enumerable methods on indexable collections (C#)" 
    WARNING_FILTER += discard class="Do not use ReferenceEquals with value types (C#)" 
    WARNING_FILTER += discard class="Do not use deprecated SslProtocols values (C#)" 
    WARNING_FILTER += discard class="Do not use obsolete key derivation function (C#)" 
    WARNING_FILTER += discard class="Do not use stackalloc in loops (C#)" 
    WARNING_FILTER += discard class="Double-Checked Locking (C#)" 
    WARNING_FILTER += discard class="Empty Branch Statement (C#)" 
    WARNING_FILTER += discard class="Empty Exception Handler (C#)" 
    WARNING_FILTER += discard class="Empty zip File Archived (C#)" 
    WARNING_FILTER += discard class="Ensure Key Derivation Function algorithm is sufficiently strong (C#)" 
    WARNING_FILTER += discard class="Enums values should not be duplicated (C#)" 
    WARNING_FILTER += discard class="Exception Information Disclosure (C#)" 
    WARNING_FILTER += discard class="Execution After Redirect (C#)" 
    WARNING_FILTER += discard class="Field Never Read (C#)" 
    WARNING_FILTER += discard class="Field Never Written (C#)" 
    WARNING_FILTER += discard class="Floating Point Equality (C#)" 
    WARNING_FILTER += discard class="Format String Injection (C#)" 
    WARNING_FILTER += discard class="Forward the 'CancellationToken' parameter to methods (C#)" 
    WARNING_FILTER += discard class="Generic Exception Handler (C#)" 
    WARNING_FILTER += discard class="Generic interface should also be implemented (C#)" 
    WARNING_FILTER += discard class="Hardcoded Cryptographic Key (C#)" 
    WARNING_FILTER += discard class="Hardcoded Filename (C#)" 
    WARNING_FILTER += discard class="Hardcoded Password (C#)" 
    WARNING_FILTER += discard class="Hardcoded Random Seed (C#)" 
    WARNING_FILTER += discard class="Hostname in Condition (C#)" 
    WARNING_FILTER += discard class="Identifier contains type name (C#)" 
    WARNING_FILTER += discard class="Identifiers should differ by more than case (C#)" 
    WARNING_FILTER += discard class="Identifiers should have correct prefix (C#)" 
    WARNING_FILTER += discard class="Identifiers should have correct suffix (C#)" 
    WARNING_FILTER += discard class="Identifiers should not contain underscores (C#)" 
    WARNING_FILTER += discard class="Identifiers should not have incorrect suffix (C#)" 
    WARNING_FILTER += discard class="Identifiers should not match keywords (C#)" 
    WARNING_FILTER += discard class="Ignored Return Value (C#)" 
    WARNING_FILTER += discard class="Ignored Return Value for Pure Function (C#)" 
    WARNING_FILTER += discard class="Impossible Client Side Locking (C#)" 
    WARNING_FILTER += discard class="Impossible reference comparison (C#)" 
    WARNING_FILTER += discard class="Improper 'ThreadStatic' field initialization (C#)" 
    WARNING_FILTER += discard class="Inappropriate Exception Handler (C#)" 
    WARNING_FILTER += discard class="Inappropriate Instanceof (C#)" 
    WARNING_FILTER += discard class="Incorrect usage of ConstantExpected attribute (C#)" 
    WARNING_FILTER += discard class="Inefficient Bitwise AND (C#)" 
    WARNING_FILTER += discard class="Inefficient Bitwise OR (C#)" 
    WARNING_FILTER += discard class="Insecure Cookie (C#)" 
    WARNING_FILTER += discard class="Insecure DTD processing in XML (C#)" 
    WARNING_FILTER += discard class="Insecure Key Derivation (C#)" 
    WARNING_FILTER += discard class="Insecure Processing in API Design, XmlDocument and XmlTextReader (C#)" 
    WARNING_FILTER += discard class="Insecure Random Number Generator (C#)" 
    WARNING_FILTER += discard class="Insecure XSLT Execution (C#)" 
    WARNING_FILTER += discard class="Insecure XSLT script processing (C#)" 
    WARNING_FILTER += discard class="Instanceof Always False (C#)" 
    WARNING_FILTER += discard class="Instanceof Always True (C#)" 
    WARNING_FILTER += discard class="Instantiate argument exceptions correctly (C#)" 
    WARNING_FILTER += discard class="Legacy Random Generator (C#)" 
    WARNING_FILTER += discard class="Mark Verb Handlers With Validate Antiforgery Token (C#)" 
    WARNING_FILTER += discard class="Mark assemblies with NeutralResourcesLanguageAttribute (C#)" 
    WARNING_FILTER += discard class="Mark assemblies with assembly version (C#)" 
    WARNING_FILTER += discard class="Mark attributes with AttributeUsageAttribute (C#)" 
    WARNING_FILTER += discard class="Mark members as static (C#)" 
    WARNING_FILTER += discard class="Members defined on an interface with the 'DynamicInterfaceCastableImplementationAttribute' should be 'static' (C#)" 
    WARNING_FILTER += discard class="Method Enables Debug Features (C#)" 
    WARNING_FILTER += discard class="Method Names Differ Only in Case (C#)" 
    WARNING_FILTER += discard class="Method Should Not Return null (C#)" 
    WARNING_FILTER += discard class="Missing Authentication Annotation (C#)" 
    WARNING_FILTER += discard class="Missing Call to super (C#)" 
    WARNING_FILTER += discard class="Missing Equals Override (C#)" 
    WARNING_FILTER += discard class="Missing Required Cryptographic Step (C#)" 
    WARNING_FILTER += discard class="Mutable Enumeration (C#)" 
    WARNING_FILTER += discard class="Mutable Public Static Final Array (C#)" 
    WARNING_FILTER += discard class="Named placeholders should not be numeric values (C#)" 
    WARNING_FILTER += discard class="Non-Object compareTo Parameter (C#)" 
    WARNING_FILTER += discard class="Non-constant fields should not be visible (C#)" 
    WARNING_FILTER += discard class="Non-overriding Method Signature (C#)" 
    WARNING_FILTER += discard class="Nonserializable Field (C#)" 
    WARNING_FILTER += discard class="Nonserializable Field Element (C#)" 
    WARNING_FILTER += discard class="Nonserializable Outer Class (C#)" 
    WARNING_FILTER += discard class="Null Parameter Dereference (C#)" 
    WARNING_FILTER += discard class="Null Pointer Dereference (C#)" 
    WARNING_FILTER += discard class="Open Redirect (C#)" 
    WARNING_FILTER += discard class="Overload operator equals on overriding value type Equals (C#)" 
    WARNING_FILTER += discard class="Override Object.Equals(object) when implementing IEquatable<T> (C#)" 
    WARNING_FILTER += discard class="Override methods on comparable types (C#)" 
    WARNING_FILTER += discard class="P/Invokes should not be visible (C#)" 
    WARNING_FILTER += discard class="Parameter count mismatch (C#)" 
    WARNING_FILTER += discard class="Parameter names should match base declaration (C#)" 
    WARNING_FILTER += discard class="Password in Property File (C#)" 
    WARNING_FILTER += discard class="Possible XML External Entity Reference (C#)" 
    WARNING_FILTER += discard class="Potential Infinite Recursion (C#)" 
    WARNING_FILTER += discard class="Prefer 'AsSpan' over 'Substring' (C#)" 
    WARNING_FILTER += discard class="Prefer 'Clear' over 'Fill' (C#)" 
    WARNING_FILTER += discard class="Prefer 'Convert.ToHexString' and 'Convert.ToHexStringLower' over call chains based on 'BitConverter.ToString' (C#)" 
    WARNING_FILTER += discard class="Prefer Dictionary.Contains methods (C#)" 
    WARNING_FILTER += discard class="Prefer IsEmpty over Count (C#)" 
    WARNING_FILTER += discard class="Prefer generic overload when type is known (C#)" 
    WARNING_FILTER += discard class="Prefer static 'HashData' method over 'ComputeHash' (C#)" 
    WARNING_FILTER += discard class="Prefer strongly-typed Append and Insert method overloads on StringBuilder (C#)" 
    WARNING_FILTER += discard class="Prefer the 'IDictionary.TryAdd(TKey, TValue)' method (C#)" 
    WARNING_FILTER += discard class="Prefer the 'IDictionary.TryGetValue(TKey, out TValue)' method (C#)" 
    WARNING_FILTER += discard class="Prefer the 'Memory'-based overloads for 'ReadAsync' and 'WriteAsync' (C#)" 
    WARNING_FILTER += discard class="Prevent behavioral change (C#)" 
    WARNING_FILTER += discard class="Property, type, or attribute requires runtime marshalling (C#)" 
    WARNING_FILTER += discard class="Provide ObsoleteAttribute message (C#)" 
    WARNING_FILTER += discard class="Provide a parameterless constructor that is as visible as the containing type for concrete types derived from 'System.Runtime.InteropServices.SafeHandle' (C#)" 
    WARNING_FILTER += discard class="Provide correct 'enum' argument to 'Enum.HasFlag' (C#)" 
    WARNING_FILTER += discard class="Provide correct arguments to formatting methods (C#)" 
    WARNING_FILTER += discard class="Provide memory-based overrides of async methods when subclassing 'Stream' (C#)" 
    WARNING_FILTER += discard class="Providing a 'DynamicInterfaceCastableImplementation' interface in Visual Basic is unsupported (C#)" 
    WARNING_FILTER += discard class="Redundant Call for Integral Argument (C#)" 
    WARNING_FILTER += discard class="Redundant Call for String Argument (C#)" 
    WARNING_FILTER += discard class="Redundant Condition (C#)" 
    WARNING_FILTER += discard class="Reflection Bypasses Member Accessibility (C#)" 
    WARNING_FILTER += discard class="Reflection Injection (C#)" 
    WARNING_FILTER += discard class="Reflection Modifies Member Accessibility (C#)" 
    WARNING_FILTER += discard class="Remove empty Finalizers (C#)" 
    WARNING_FILTER += discard class="Rethrow to preserve stack details (C#)" 
    WARNING_FILTER += discard class="Return null Array (C#)" 
    WARNING_FILTER += discard class="Risky Cipher Algorithm (C#)" 
    WARNING_FILTER += discard class="Risky Cipher Field (C#)" 
    WARNING_FILTER += discard class="Risky Class Cast (C#)" 
    WARNING_FILTER += discard class="Risky Cryptographic Algorithm (C#)" 
    WARNING_FILTER += discard class="Risky Cryptographic Field (C#)" 
    WARNING_FILTER += discard class="Risky array store (C#)" 
    WARNING_FILTER += discard class="SQL Injection (C#)" 
    WARNING_FILTER += discard class="Seal internal types (C#)" 
    WARNING_FILTER += discard class="Set 'MaxResponseHeadersLength' properly (C#)" 
    WARNING_FILTER += discard class="Set ViewStateUserKey For Classes Derived From Page (C#)" 
    WARNING_FILTER += discard class="Shadowed Identifier (C#)" 
    WARNING_FILTER += discard class="Should Use == Instead of equals() (C#)" 
    WARNING_FILTER += discard class="Should Use equals() Instead of == (C#)" 
    WARNING_FILTER += discard class="Single-use Random Number Generator (C#)" 
    WARNING_FILTER += discard class="Specify CultureInfo (C#)" 
    WARNING_FILTER += discard class="Specify IFormatProvider (C#)" 
    WARNING_FILTER += discard class="Specify StringComparison for correctness (C#)" 
    WARNING_FILTER += discard class="Specify a culture or use an invariant version (C#)" 
    WARNING_FILTER += discard class="Specify marshaling for P/Invoke string arguments (C#)" 
    WARNING_FILTER += discard class="Static Field Assigned Non-Static (C#)" 
    WARNING_FILTER += discard class="Synchronization on Interned String (C#)" 
    WARNING_FILTER += discard class="Synchronization on static (C#)" 
    WARNING_FILTER += discard class="Synchronous Call to Thread Body (C#)" 
    WARNING_FILTER += discard class="Tainted @Trusted Value (C#)" 
    WARNING_FILTER += discard class="Tainted Allocation Size (C#)" 
    WARNING_FILTER += discard class="Tainted Bundle (C#)" 
    WARNING_FILTER += discard class="Tainted Control (C#)" 
    WARNING_FILTER += discard class="Tainted Expression Evaluation (C#)" 
    WARNING_FILTER += discard class="Tainted HTTP Response (C#)" 
    WARNING_FILTER += discard class="Tainted Hardware Device Property (C#)" 
    WARNING_FILTER += discard class="Tainted LDAP Attribute (C#)" 
    WARNING_FILTER += discard class="Tainted LDAP Filter (C#)" 
    WARNING_FILTER += discard class="Tainted Log (C#)" 
    WARNING_FILTER += discard class="Tainted Message (C#)" 
    WARNING_FILTER += discard class="Tainted Network Address (C#)" 
    WARNING_FILTER += discard class="Tainted Path (C#)" 
    WARNING_FILTER += discard class="Tainted Regular Expression (C#)" 
    WARNING_FILTER += discard class="Tainted Resource (C#)" 
    WARNING_FILTER += discard class="Tainted Session (C#)" 
    WARNING_FILTER += discard class="Tainted URL (C#)" 
    WARNING_FILTER += discard class="Tainted XAML (C#)" 
    WARNING_FILTER += discard class="Tainted XML (C#)" 
    WARNING_FILTER += discard class="Tainted Xpath (C#)" 
    WARNING_FILTER += discard class="Template should be a static expression (C#)" 
    WARNING_FILTER += discard class="Test for NaN correctly (C#)" 
    WARNING_FILTER += discard class="The 'ModuleInitializer' attribute should not be used in libraries (C#)" 
    WARNING_FILTER += discard class="This API requires opting into preview features (C#)" 
    WARNING_FILTER += discard class="This method uses runtime marshalling even when the 'DisableRuntimeMarshallingAttribute' is applied (C#)" 
    WARNING_FILTER += discard class="Types that own disposable fields should be disposable (C#)" 
    WARNING_FILTER += discard class="Unchecked Parameter Dereference (C#)" 
    WARNING_FILTER += discard class="Unnecessary Field (C#)" 
    WARNING_FILTER += discard class="Unnecessary call to 'Contains(item)' (C#)" 
    WARNING_FILTER += discard class="Unnecessary call to 'Dictionary.ContainsKey(key)' (C#)" 
    WARNING_FILTER += discard class="Unreachable Instruction (C#)" 
    WARNING_FILTER += discard class="Unsafe Session Expiration Time (C#)" 
    WARNING_FILTER += discard class="Unsafe hash comparison (C#)" 
    WARNING_FILTER += discard class="Unused Class (C#)" 
    WARNING_FILTER += discard class="Unused Field (C#)" 
    WARNING_FILTER += discard class="Unused Method (C#)" 
    WARNING_FILTER += discard class="Unused Object (C#)" 
    WARNING_FILTER += discard class="Unused Value: Actual Parameter (C#)" 
    WARNING_FILTER += discard class="Unused Value: Variable (C#)" 
    WARNING_FILTER += discard class="Unused Value: Write to Parameter (C#)" 
    WARNING_FILTER += discard class="Use 'CompositeFormat' (C#)" 
    WARNING_FILTER += discard class="Use 'Environment.CurrentManagedThreadId' (C#)" 
    WARNING_FILTER += discard class="Use 'Environment.ProcessId' (C#)" 
    WARNING_FILTER += discard class="Use 'Environment.ProcessPath' (C#)" 
    WARNING_FILTER += discard class="Use 'StartsWith' instead of 'IndexOf' (C#)" 
    WARNING_FILTER += discard class="Use 'ThrowIfCancellationRequested' (C#)" 
    WARNING_FILTER += discard class="Use 'string.Equals' (C#)" 
    WARNING_FILTER += discard class="Use ArgumentException throw helper (C#)" 
    WARNING_FILTER += discard class="Use ArgumentNullException throw helper (C#)" 
    WARNING_FILTER += discard class="Use ArgumentOutOfRangeException throw helper (C#)" 
    WARNING_FILTER += discard class="Use AsSpan or AsMemory instead of Range-based indexers (C#)" 
    WARNING_FILTER += discard class="Use AsSpan or AsMemory instead of Range-based indexers for getting Span of an array (C#)" 
    WARNING_FILTER += discard class="Use AsSpan or AsMemory instead of Range-based indexers when appropriate (C#)" 
    WARNING_FILTER += discard class="Use Length/Count property instead of Count() when available (C#)" 
    WARNING_FILTER += discard class="Use ObjectDisposedException throw helper (C#)" 
    WARNING_FILTER += discard class="Use PascalCase for named placeholders (C#)" 
    WARNING_FILTER += discard class="Use Rivest-Shamir-Adleman (RSA) Algorithm With Sufficient Key Size (C#)" 
    WARNING_FILTER += discard class="Use ValueTasks correctly (C#)" 
    WARNING_FILTER += discard class="Use XmlReader for 'DataSet.ReadXml()' (C#)" 
    WARNING_FILTER += discard class="Use XmlReader for 'XmlSchema.Read()' (C#)" 
    WARNING_FILTER += discard class="Use XmlReader for 'XmlSerializer.Deserialize()' (C#)" 
    WARNING_FILTER += discard class="Use XmlReader for XPathDocument constructor (C#)" 
    WARNING_FILTER += discard class="Use XmlReader for XmlValidatingReader constructor (C#)" 
    WARNING_FILTER += discard class="Use a cached 'SearchValues' instance (C#)" 
    WARNING_FILTER += discard class="Use char literal for a single character lookup (C#)" 
    WARNING_FILTER += discard class="Use char overload, CA1865 (C#)" 
    WARNING_FILTER += discard class="Use char overload, CA1866 (C#)" 
    WARNING_FILTER += discard class="Use concrete types when possible for improved performance (C#)" 
    WARNING_FILTER += discard class="Use correct type parameter (C#)" 
    WARNING_FILTER += discard class="Use nameof to express symbol names (C#)" 
    WARNING_FILTER += discard class="Use of Same Seed (C#)" 
    WARNING_FILTER += discard class="Use ordinal string comparison (C#)" 
    WARNING_FILTER += discard class="Use span-based 'string.Concat' (C#)" 
    WARNING_FILTER += discard class="Use the 'StringComparison' method overloads to perform case-insensitive string comparisons (C#)" 
    WARNING_FILTER += discard class="Use the LoggerMessage delegates (C#)" 
    WARNING_FILTER += discard class="Use valid platform string (C#)" 
    WARNING_FILTER += discard class="Useless Assignment (C#)" 
    WARNING_FILTER += discard class="Useless Assignment to Default (C#)" 
    WARNING_FILTER += discard class="Useless Class Cast (C#)" 
    WARNING_FILTER += discard class="Useless Synchronization (C#)" 
    WARNING_FILTER += discard class="Useless volatile Modifier (C#)" 
    WARNING_FILTER += discard class="Validate platform compatibility (C#)" 
    WARNING_FILTER += discard class="Validate platform compatibility - obsoleted APIs (C#)" 
    WARNING_FILTER += discard class="Weak Cryptographic Value (C#)" 
    WARNING_FILTER += discard class="Weak Hash Algorithm (C#)" 
    WARNING_FILTER += discard class="Weak Hash Algorithm Field (C#)" 
    WARNING_FILTER += discard class="Weak Initialization Vector Field (C#)" 
    WARNING_FILTER += discard class="Weak Initialization Vector Value (C#)" 
    WARNING_FILTER += discard class="clone Non-cloneable (C#)" 
    WARNING_FILTER += discard class="clone not final (C#)" 
    WARNING_FILTER += discard class="compareTo in Non-Comparable Class (C#)" 
    WARNING_FILTER += discard class="compareTo without equals (C#)" 
    WARNING_FILTER += discard class="compareTo/equals mismatch (C#)" 
    WARNING_FILTER += discard class="equals Always Fails (C#)" 
    WARNING_FILTER += discard class="equals Parameter Should Be Object (C#)" 
    WARNING_FILTER += discard class="equals on Array (C#)" 
    WARNING_FILTER += discard class="toString on Array (C#)" 

 (Go warning classes) 
    WARNING_FILTER += discard class="'&*x' Gets Simplified to 'x', It Does Not Copy 'x' (Staticcheck)" 
    WARNING_FILTER += discard class="'(*net Url.URL).Query' Returns a Copy, Modifying It Doesn't Change the URL (Staticcheck)" 
    WARNING_FILTER += discard class="'(*regexp.Regexp).FindAll' Called With 'n == 0', Which Will Always Return Zero Results (Staticcheck)" 
    WARNING_FILTER += discard class="'Printf' With Dynamic First Argument and No Further Arguments (Staticcheck)" 
    WARNING_FILTER += discard class="'TestMain' Doesn't Call 'os.Exit', Hiding Test Failures (Staticcheck)" 
    WARNING_FILTER += discard class="'else' Branch of a Type Assertion Is Probably Not Reading the Right Value (Staticcheck)" 
    WARNING_FILTER += discard class="'io.Seeker.Seek' Is Being Called With the Whence Constant As the First Argument, but It Should Be the Second (Staticcheck)" 
    WARNING_FILTER += discard class="'sort.Slice' Can Only Be Used on Slices (Staticcheck)" 
    WARNING_FILTER += discard class="'strings.Replace' Called With 'n == 0', Which Does Nothing (Staticcheck)" 
    WARNING_FILTER += discard class="'sync.WaitGroup.Add' Called Inside the Goroutine, Leading to a Race Condition (Staticcheck)" 
    WARNING_FILTER += discard class="'x % 1' Is Always Zero (Staticcheck)" 
    WARNING_FILTER += discard class="A Function Argument Is Overwritten Before Its First Use (Staticcheck)" 
    WARNING_FILTER += discard class="A Function's Error Value Should Be Its Last Return Value (Staticcheck)" 
    WARNING_FILTER += discard class="A Nil 'context.Context' Is Being Passed to a Function, Consider Using 'context.TODO' Instead (Staticcheck)" 
    WARNING_FILTER += discard class="A String Cutset Contains Duplicate Characters (Staticcheck)" 
    WARNING_FILTER += discard class="A Switch's Default Case Should Be the First or Last Case (Staticcheck)" 
    WARNING_FILTER += discard class="A Value Assigned to a Variable Is Never Read Before Being Overwritten. Forgotten Error Check or Dead Code? (Staticcheck)" 
    WARNING_FILTER += discard class="An If Else If Chain Has Repeated Conditions and No Side-effects; If the Condition Didn't Match the First Time, It Won't Match the Second Time, Either (Staticcheck)" 
    WARNING_FILTER += discard class="Assigning to 'b.N' in Benchmarks Distorts the Results (Staticcheck)" 
    WARNING_FILTER += discard class="Assignment to Nil Map (Staticcheck)" 
    WARNING_FILTER += discard class="Atomic Access to 64-bit Variable Must Be 64-bit Aligned (Staticcheck)" 
    WARNING_FILTER += discard class="Avoid Zero-width and Control Characters in String Literals (Staticcheck)" 
    WARNING_FILTER += discard class="Binary Operator Has Identical Expressions on Both Sides (Staticcheck)" 
    WARNING_FILTER += discard class="Break Statement With No Effect. Did You Mean to Break Out of an Outer Loop? (Staticcheck)" 
    WARNING_FILTER += discard class="Called 'testing.T.FailNow' or 'SkipNow' in a Goroutine, Which Isn't Allowed (Staticcheck)" 
    WARNING_FILTER += discard class="Calling Functions Like 'math.Ceil' on Floats Converted From Integers Doesn't Do Anything Useful (Staticcheck)" 
    WARNING_FILTER += discard class="Cannot Marshal Channels or Functions (Staticcheck)" 
    WARNING_FILTER += discard class="Certain Bitwise Operations, Such As 'x ^ 0', Do Not Do Anything Useful (Staticcheck)" 
    WARNING_FILTER += discard class="Channels Used With 'os Signal.Notify' Should Be Buffered (Staticcheck)" 
    WARNING_FILTER += discard class="Checking Never-nil Value Against Nil (Staticcheck)" 
    WARNING_FILTER += discard class="Checking for Impossible Return Value From a Builtin Function (Staticcheck)" 
    WARNING_FILTER += discard class="Comparing 'runtime.GOOS' or 'runtime.GOARCH' Against Impossible Value (Staticcheck)" 
    WARNING_FILTER += discard class="Comparing Unsigned Values Against Negative Values Is Pointless (Staticcheck)" 
    WARNING_FILTER += discard class="Comparing a Value Against NaN Even Though No Value Is Equal to NaN (Staticcheck)" 
    WARNING_FILTER += discard class="Comparing the Address of a Variable Against Nil (Staticcheck)" 
    WARNING_FILTER += discard class="Converting a String to a Slice of Runes Before Ranging Over It (Staticcheck)" 
    WARNING_FILTER += discard class="Copy-Paste Error" 
    WARNING_FILTER += discard class="Deferred 'Lock' Right After Locking, Likely Meant to Defer 'Unlock' Instead (Staticcheck)" 
    WARNING_FILTER += discard class="Deferring 'Close' Before Checking for a Possible Error (Staticcheck)" 
    WARNING_FILTER += discard class="Defers in Infinite Loops Will Never Execute (Staticcheck)" 
    WARNING_FILTER += discard class="Defers in Range Loops May Not Run When You Expect Them to (Staticcheck)" 
    WARNING_FILTER += discard class="Deleting a Directory That Shouldn't Be Deleted (Staticcheck)" 
    WARNING_FILTER += discard class="Discarding the Return Values of a Function Without Side Effects, Making the Call Pointless (Staticcheck)" 
    WARNING_FILTER += discard class="Don't Use 'fmt.Sprintf(\"%s\", X)' Unnecessarily (Staticcheck)" 
    WARNING_FILTER += discard class="Don't Use Yoda Conditions (Staticcheck)" 
    WARNING_FILTER += discard class="Dot Imports Are Discouraged (Staticcheck)" 
    WARNING_FILTER += discard class="Drop Unnecessary Use of the Blank Identifier (Staticcheck)" 
    WARNING_FILTER += discard class="Dubious Bit Shifting of a Fixed Size Integer Value (Staticcheck)" 
    WARNING_FILTER += discard class="Elaborate Way of Sleeping (Staticcheck)" 
    WARNING_FILTER += discard class="Empty Body in an If or Else Branch (Staticcheck)" 
    WARNING_FILTER += discard class="Empty Critical Section, Did You Mean to Defer the Unlock? (Staticcheck)" 
    WARNING_FILTER += discard class="Field Assignment That Will Never Be Observed. Did You Mean to Use a Pointer Receiver? (Staticcheck)" 
    WARNING_FILTER += discard class="Go Constants Cannot Express Negative Zero (Staticcheck)" 
    WARNING_FILTER += discard class="Importing the Same Package Multiple Times (Staticcheck)" 
    WARNING_FILTER += discard class="Impossible Comparison of Interface Value With Untyped Nil (Staticcheck)" 
    WARNING_FILTER += discard class="Impossible Type Assertion (Staticcheck)" 
    WARNING_FILTER += discard class="Inappropriate Key in Call to 'context.WithValue' (Staticcheck)" 
    WARNING_FILTER += discard class="Incorrect or Missing Package Comment (Staticcheck)" 
    WARNING_FILTER += discard class="Incorrectly Formatted Error String (Staticcheck)" 
    WARNING_FILTER += discard class="Ineffective Attempt at Generating Random Number (Staticcheck)" 
    WARNING_FILTER += discard class="Ineffective Attempt at Sorting Slice (Staticcheck)" 
    WARNING_FILTER += discard class="Inefficient String Comparison With 'strings.ToLower' or 'strings.ToUpper' (Staticcheck)" 
    WARNING_FILTER += discard class="Infinite Recursive Call (Staticcheck)" 
    WARNING_FILTER += discard class="Integer Division of Literals That Results in Zero (Staticcheck)" 
    WARNING_FILTER += discard class="Invalid Argument in Call to a 'strconv' Function (Staticcheck)" 
    WARNING_FILTER += discard class="Invalid First Argument to 'exec.Command' (Staticcheck)" 
    WARNING_FILTER += discard class="Invalid Format in 'time.Parse' (Staticcheck)" 
    WARNING_FILTER += discard class="Invalid Printf Call (Staticcheck)" 
    WARNING_FILTER += discard class="Invalid Regular Expression (Staticcheck)" 
    WARNING_FILTER += discard class="Invalid Struct Tag (Staticcheck)" 
    WARNING_FILTER += discard class="Invalid Template (Staticcheck)" 
    WARNING_FILTER += discard class="Invalid URL in 'net Url.Parse' (Staticcheck)" 
    WARNING_FILTER += discard class="It Is Not Possible to Use '(*time.Timer).Reset''s Return Value Correctly (Staticcheck)" 
    WARNING_FILTER += discard class="Merge Variable Declaration and Assignment (Staticcheck)" 
    WARNING_FILTER += discard class="Missing an Optimization Opportunity When Indexing Maps By Byte Slices (Staticcheck)" 
    WARNING_FILTER += discard class="Modifying the Buffer in an 'io.Writer' Implementation (Staticcheck)" 
    WARNING_FILTER += discard class="Multiple, Identical Build Constraints in the Same File (Staticcheck)" 
    WARNING_FILTER += discard class="Negating a Boolean Twice ('!!b') Is the Same As Writing 'b'. This Is Either Redundant, or a Typo. (Staticcheck)" 
    WARNING_FILTER += discard class="Non-canonical Key in 'http.Header' Map (Staticcheck)" 
    WARNING_FILTER += discard class="Non-pointer Value Passed to 'Unmarshal' or 'Decode' (Staticcheck)" 
    WARNING_FILTER += discard class="Omit Comparison With Boolean Constant (Staticcheck)" 
    WARNING_FILTER += discard class="Omit Default Slice Index (Staticcheck)" 
    WARNING_FILTER += discard class="Omit Redundant Control Flow (Staticcheck)" 
    WARNING_FILTER += discard class="Omit Redundant Nil Check Around Loop (Staticcheck)" 
    WARNING_FILTER += discard class="Omit Redundant Nil Check in Type Assertion (Staticcheck)" 
    WARNING_FILTER += discard class="Omit Redundant Nil Check on Slices (Staticcheck)" 
    WARNING_FILTER += discard class="Only the First Constant Has an Explicit Type (Staticcheck)" 
    WARNING_FILTER += discard class="Overlapping Byte Slices Passed to an Encoder (Staticcheck)" 
    WARNING_FILTER += discard class="Passing Odd-sized Slice to Function Expecting Even Size (Staticcheck)" 
    WARNING_FILTER += discard class="Poorly Chosen Identifier (Staticcheck)" 
    WARNING_FILTER += discard class="Poorly Chosen Name for Error Variable (Staticcheck)" 
    WARNING_FILTER += discard class="Poorly Chosen Name for Variable of Type 'time.Duration' (Staticcheck)" 
    WARNING_FILTER += discard class="Poorly Chosen Receiver Name (Staticcheck)" 
    WARNING_FILTER += discard class="Possible Nil Pointer Dereference (Staticcheck)" 
    WARNING_FILTER += discard class="Range Over the String Directly (Staticcheck)" 
    WARNING_FILTER += discard class="Redundant Call to 'net Http.CanonicalHeaderKey' in Method Call on 'net Http.Header' (Staticcheck)" 
    WARNING_FILTER += discard class="Redundant Type in Variable Declaration (Staticcheck)" 
    WARNING_FILTER += discard class="Replace 'time.Now().Sub(x)' With 'time.Since(x)' (Staticcheck)" 
    WARNING_FILTER += discard class="Replace 'x.Sub(time.Now())' With 'time.Until(x)' (Staticcheck)" 
    WARNING_FILTER += discard class="Replace Call to 'bytes.Compare' With 'bytes.Equal' (Staticcheck)" 
    WARNING_FILTER += discard class="Replace Call to 'strings.Index' With 'strings.Contains' (Staticcheck)" 
    WARNING_FILTER += discard class="Replace Manual Trimming With 'strings.TrimPrefix' (Staticcheck)" 
    WARNING_FILTER += discard class="Replace for Loop With Call to Copy (Staticcheck)" 
    WARNING_FILTER += discard class="Self-assignment of Variables (Staticcheck)" 
    WARNING_FILTER += discard class="Should Use Constants for HTTP Error Codes, Not Magic Numbers (Staticcheck)" 
    WARNING_FILTER += discard class="Simplify Error Construction With 'fmt.Errorf' (Staticcheck)" 
    WARNING_FILTER += discard class="Simplify Regular Expression By Using Raw String Literal (Staticcheck)" 
    WARNING_FILTER += discard class="Simplify Returning Boolean Expression (Staticcheck)" 
    WARNING_FILTER += discard class="Simplify \"make\" Call By Omitting Redundant Arguments (Staticcheck)" 
    WARNING_FILTER += discard class="Storing Non-pointer Values in 'sync.Pool' Allocates Memory (Staticcheck)" 
    WARNING_FILTER += discard class="Suspiciously Small Untyped Constant in 'time.Sleep' (Staticcheck)" 
    WARNING_FILTER += discard class="The Documentation of an Exported Function Should Start With the Function's Name (Staticcheck)" 
    WARNING_FILTER += discard class="The Documentation of an Exported Type Should Start With Type's Name (Staticcheck)" 
    WARNING_FILTER += discard class="The Documentation of an Exported Variable or Constant Should Start With Variable's Name (Staticcheck)" 
    WARNING_FILTER += discard class="The Empty for Loop (\"for {}\") Spins and Can Block the Scheduler (Staticcheck)" 
    WARNING_FILTER += discard class="The Finalizer References the Finalized Object, Preventing Garbage Collection (Staticcheck)" 
    WARNING_FILTER += discard class="The Loop Exits Unconditionally After One Iteration (Staticcheck)" 
    WARNING_FILTER += discard class="The Result of 'append' Will Never Be Observed Anywhere (Staticcheck)" 
    WARNING_FILTER += discard class="The Variable in the Loop Condition Never Changes, Are You Incrementing the Wrong Variable? (Staticcheck)" 
    WARNING_FILTER += discard class="Trapping a Signal That Cannot Be Trapped (Staticcheck)" 
    WARNING_FILTER += discard class="Trying to Marshal a Struct With No Public Fields Nor Custom Marshaling (Staticcheck)" 
    WARNING_FILTER += discard class="Type Assertion to Current Type (Staticcheck)" 
    WARNING_FILTER += discard class="Unnecessarily Complex Way of Printing Formatted String (Staticcheck)" 
    WARNING_FILTER += discard class="Unnecessary Guard Around Call to \"delete\" (Staticcheck)" 
    WARNING_FILTER += discard class="Unnecessary Guard Around Map Access (Staticcheck)" 
    WARNING_FILTER += discard class="Unnecessary Use of 'fmt.Sprint' (Staticcheck)" 
    WARNING_FILTER += discard class="Unreachable Case Clause in a Type Switch (Staticcheck)" 
    WARNING_FILTER += discard class="Unsupported Argument to Functions in 'encoding Binary' (Staticcheck)" 
    WARNING_FILTER += discard class="Unused Code (Staticcheck)" 
    WARNING_FILTER += discard class="Use 'bytes.Buffer.String' or 'bytes.Buffer.Bytes' (Staticcheck)" 
    WARNING_FILTER += discard class="Use 'sort.Ints(x)', 'sort.Float64s(x)', and 'sort.Strings(x)' (Staticcheck)" 
    WARNING_FILTER += discard class="Use Consistent Method Receiver Names (Staticcheck)" 
    WARNING_FILTER += discard class="Use Plain Channel Send or Receive Instead of Single-case Select (Staticcheck)" 
    WARNING_FILTER += discard class="Use Result of Type Assertion to Simplify Cases (Staticcheck)" 
    WARNING_FILTER += discard class="Use \"copy\" for Sliding Elements (Staticcheck)" 
    WARNING_FILTER += discard class="Use \"for { ... }\" for Infinite Loops (Staticcheck)" 
    WARNING_FILTER += discard class="Use a Single 'append' to Concatenate Two Slices (Staticcheck)" 
    WARNING_FILTER += discard class="Use a Type Conversion Instead of Manually Copying Struct Fields (Staticcheck)" 
    WARNING_FILTER += discard class="Using 'bytes.Equal' to Compare Two 'net.IP' (Staticcheck)" 
    WARNING_FILTER += discard class="Using 'regexp.Match' or Related in a Loop, Should Use 'regexp.Compile' (Staticcheck)" 
    WARNING_FILTER += discard class="Using 'time.Tick' in a Way That Will Leak. Consider Using 'time.NewTicker', and Only Use 'time.Tick' in Tests, Commands and Endless Functions (Staticcheck)" 
    WARNING_FILTER += discard class="Using Io.WriteString to Write '[]byte' (Staticcheck)" 
    WARNING_FILTER += discard class="Using a Deprecated Function, Variable, Constant or Field (Staticcheck)" 
    WARNING_FILTER += discard class="Using a Non-octal 'os.FileMode' That Looks Like It Was Meant to Be in Octal. (Staticcheck)" 
    WARNING_FILTER += discard class="Using an Invalid Host:port Pair With a 'net.Listen'-related Function (Staticcheck)" 
    WARNING_FILTER += discard class="Various Methods in the \"strings\" Package Expect Valid UTF-8, but Invalid Input Is Provided (Staticcheck)" 
    WARNING_FILTER += discard class="\"for { Select { ...\" With an Empty Default Branch Spins (Staticcheck)" 
    WARNING_FILTER += discard class="\"x = Append(y)\" Is Equivalent to \"x = Y\" (Staticcheck)" 

 (Kotlin warning classes) 
    WARNING_FILTER += discard class="Absent or Wrong File License (detekt)" 
    WARNING_FILTER += discard class="Also Could Be Apply (detekt)" 
    WARNING_FILTER += discard class="Array Primitive (detekt)" 
    WARNING_FILTER += discard class="Avoid Referential Equality (detekt)" 
    WARNING_FILTER += discard class="Boolean Property Naming (detekt)" 
    WARNING_FILTER += discard class="Braces on If Statements (detekt)" 
    WARNING_FILTER += discard class="Braces on When Statements (detekt)" 
    WARNING_FILTER += discard class="Can Be Non Nullable (detekt)" 
    WARNING_FILTER += discard class="Cascading Call Wrapping (detekt)" 
    WARNING_FILTER += discard class="Cast Nullable to Non Nullable Type (detekt)" 
    WARNING_FILTER += discard class="Cast to Nullable Type (detekt)" 
    WARNING_FILTER += discard class="Class Naming (detekt)" 
    WARNING_FILTER += discard class="Class Ordering (detekt)" 
    WARNING_FILTER += discard class="Code Injection (Java)" 
    WARNING_FILTER += discard class="Cognitive Complex Method (detekt)" 
    WARNING_FILTER += discard class="Collapsible If Statements (detekt)" 
    WARNING_FILTER += discard class="Command Injection (Java)" 
    WARNING_FILTER += discard class="Comment Over Private Function (detekt)" 
    WARNING_FILTER += discard class="Comment Over Private Property (detekt)" 
    WARNING_FILTER += discard class="Complex Condition (detekt)" 
    WARNING_FILTER += discard class="Complex Interface (detekt)" 
    WARNING_FILTER += discard class="Constructor Parameter Naming (detekt)" 
    WARNING_FILTER += discard class="Copy-Paste Error" 
    WARNING_FILTER += discard class="Could Be Sequence (detekt)" 
    WARNING_FILTER += discard class="Cryptographic Algorithm with Risky Default Cipher (Java)" 
    WARNING_FILTER += discard class="Cryptographic Algorithm with Weak Cipher (Java)" 
    WARNING_FILTER += discard class="Cryptographic Algorithm with Weak Hash (Java)" 
    WARNING_FILTER += discard class="Cyclomatic Complex Method (detekt)" 
    WARNING_FILTER += discard class="Data Class Contains Functions (detekt)" 
    WARNING_FILTER += discard class="Data Class Should Be Immutable (detekt)" 
    WARNING_FILTER += discard class="Deprecated Block Tag (detekt)" 
    WARNING_FILTER += discard class="Deprecated Cryptography Provider (Java)" 
    WARNING_FILTER += discard class="Deprecation (detekt)" 
    WARNING_FILTER += discard class="Destructuring Declaration With Too Many Entries (detekt)" 
    WARNING_FILTER += discard class="Dont Downcast Collection Types (detekt)" 
    WARNING_FILTER += discard class="Double Mutability for Collection (detekt)" 
    WARNING_FILTER += discard class="Double Negative Lambda (detekt)" 
    WARNING_FILTER += discard class="Else Case Instead of Exhaustive When (detekt)" 
    WARNING_FILTER += discard class="Empty Catch Block (detekt)" 
    WARNING_FILTER += discard class="Empty Class Block (detekt)" 
    WARNING_FILTER += discard class="Empty Default Constructor (detekt)" 
    WARNING_FILTER += discard class="Empty Do While Block (detekt)" 
    WARNING_FILTER += discard class="Empty Else Block (detekt)" 
    WARNING_FILTER += discard class="Empty Finally Block (detekt)" 
    WARNING_FILTER += discard class="Empty Function Block (detekt)" 
    WARNING_FILTER += discard class="Empty If Block (detekt)" 
    WARNING_FILTER += discard class="Empty Init Block (detekt)" 
    WARNING_FILTER += discard class="Empty Kt File (detekt)" 
    WARNING_FILTER += discard class="Empty Secondary Constructor (detekt)" 
    WARNING_FILTER += discard class="Empty Try Block (detekt)" 
    WARNING_FILTER += discard class="Empty When Block (detekt)" 
    WARNING_FILTER += discard class="Empty While Block (detekt)" 
    WARNING_FILTER += discard class="Empty for Block (detekt)" 
    WARNING_FILTER += discard class="End of Sentence Format (detekt)" 
    WARNING_FILTER += discard class="Enum Naming (detekt)" 
    WARNING_FILTER += discard class="Equals Always Returns True or False (detekt)" 
    WARNING_FILTER += discard class="Equals Null Call (detekt)" 
    WARNING_FILTER += discard class="Equals With Hash Code Exist (detekt)" 
    WARNING_FILTER += discard class="Equals on Signature Line (detekt)" 
    WARNING_FILTER += discard class="Exception Raised in Unexpected Location (detekt)" 
    WARNING_FILTER += discard class="Exit Outside Main (detekt)" 
    WARNING_FILTER += discard class="Explicit Collection Element Access Method (detekt)" 
    WARNING_FILTER += discard class="Explicit Garbage Collection Call (detekt)" 
    WARNING_FILTER += discard class="Explicit It Lambda Parameter (detekt)" 
    WARNING_FILTER += discard class="Expression Body Syntax (detekt)" 
    WARNING_FILTER += discard class="For Each on Range (detekt)" 
    WARNING_FILTER += discard class="Forbidden Annotation (detekt)" 
    WARNING_FILTER += discard class="Forbidden Class Name (detekt)" 
    WARNING_FILTER += discard class="Forbidden Comment (detekt)" 
    WARNING_FILTER += discard class="Forbidden Import (detekt)" 
    WARNING_FILTER += discard class="Forbidden Method Call (detekt)" 
    WARNING_FILTER += discard class="Forbidden Suppress (detekt)" 
    WARNING_FILTER += discard class="Forbidden Void (detekt)" 
    WARNING_FILTER += discard class="Function Max Length (detekt)" 
    WARNING_FILTER += discard class="Function Min Length (detekt)" 
    WARNING_FILTER += discard class="Function Naming (detekt)" 
    WARNING_FILTER += discard class="Function Only Returning Constant (detekt)" 
    WARNING_FILTER += discard class="Function Parameter Naming (detekt)" 
    WARNING_FILTER += discard class="Global Coroutine Usage (detekt)" 
    WARNING_FILTER += discard class="Hardcoded Cryptographic Key (Java)" 
    WARNING_FILTER += discard class="Hardcoded Password (Java)" 
    WARNING_FILTER += discard class="Has Platform Type (detekt)" 
    WARNING_FILTER += discard class="Ignored Return Value (detekt)" 
    WARNING_FILTER += discard class="Implicit Default Locale (detekt)" 
    WARNING_FILTER += discard class="Implicit Unit Return Type (detekt)" 
    WARNING_FILTER += discard class="Inject Dispatcher (detekt)" 
    WARNING_FILTER += discard class="Insecure Key Derivation (Java)" 
    WARNING_FILTER += discard class="Instance of Check for Exception (detekt)" 
    WARNING_FILTER += discard class="Invalid Package Declaration (detekt)" 
    WARNING_FILTER += discard class="Invalid Range (detekt)" 
    WARNING_FILTER += discard class="Iterator Has Next Calls Next Method (detekt)" 
    WARNING_FILTER += discard class="Iterator Not Throwing No Such Element Exception (detekt)" 
    WARNING_FILTER += discard class="KDoc References Non Public Property (detekt)" 
    WARNING_FILTER += discard class="Labeled Expression (detekt)" 
    WARNING_FILTER += discard class="Lambda Parameter Naming (detekt)" 
    WARNING_FILTER += discard class="Large Class (detekt)" 
    WARNING_FILTER += discard class="Lateinit Usage (detekt)" 
    WARNING_FILTER += discard class="Long Method (detekt)" 
    WARNING_FILTER += discard class="Long Parameter List (detekt)" 
    WARNING_FILTER += discard class="Loop With Too Many Jump Statements (detekt)" 
    WARNING_FILTER += discard class="Magic Number (detekt)" 
    WARNING_FILTER += discard class="Mandatory Braces Loops (detekt)" 
    WARNING_FILTER += discard class="Map Get With Not Null Assertion Operator (detekt)" 
    WARNING_FILTER += discard class="Matching Declaration Name (detekt)" 
    WARNING_FILTER += discard class="Max Chained Calls on Same Line (detekt)" 
    WARNING_FILTER += discard class="Max Line Length (detekt)" 
    WARNING_FILTER += discard class="May Be Const (detekt)" 
    WARNING_FILTER += discard class="Member Name Equals Class Name (detekt)" 
    WARNING_FILTER += discard class="Method Overloading (detekt)" 
    WARNING_FILTER += discard class="Missing Package Declaration (detekt)" 
    WARNING_FILTER += discard class="Missing Required Cryptographic Step (Java)" 
    WARNING_FILTER += discard class="Modifier Order (detekt)" 
    WARNING_FILTER += discard class="Multiline Lambda It Parameter (detekt)" 
    WARNING_FILTER += discard class="Multiline Raw String Indentation (detekt)" 
    WARNING_FILTER += discard class="Named Arguments (detekt)" 
    WARNING_FILTER += discard class="Nested Block Depth (detekt)" 
    WARNING_FILTER += discard class="Nested Classes Visibility (detekt)" 
    WARNING_FILTER += discard class="Nested Scope Functions (detekt)" 
    WARNING_FILTER += discard class="New Line at End of File (detekt)" 
    WARNING_FILTER += discard class="No Name Shadowing (detekt)" 
    WARNING_FILTER += discard class="No Tabs (detekt)" 
    WARNING_FILTER += discard class="Non Boolean Property Prefixed With Is (detekt)" 
    WARNING_FILTER += discard class="Not Implemented Declaration (detekt)" 
    WARNING_FILTER += discard class="Null Check on Mutable Property (detekt)" 
    WARNING_FILTER += discard class="Nullable Boolean Check (detekt)" 
    WARNING_FILTER += discard class="Nullable to String Call (detekt)" 
    WARNING_FILTER += discard class="Object Extends Throwable (detekt)" 
    WARNING_FILTER += discard class="Object Literal to Lambda (detekt)" 
    WARNING_FILTER += discard class="Object Property Naming (detekt)" 
    WARNING_FILTER += discard class="Optional Abstract Keyword (detekt)" 
    WARNING_FILTER += discard class="Optional Unit (detekt)" 
    WARNING_FILTER += discard class="Outdated Documentation (detekt)" 
    WARNING_FILTER += discard class="Package Naming (detekt)" 
    WARNING_FILTER += discard class="Possible XML External Entity Reference (Java)" 
    WARNING_FILTER += discard class="Prefer to Over Pair Syntax (detekt)" 
    WARNING_FILTER += discard class="Print Stack Trace (detekt)" 
    WARNING_FILTER += discard class="Property Used Before Declaration (detekt)" 
    WARNING_FILTER += discard class="Protected Member in Final Class (detekt)" 
    WARNING_FILTER += discard class="Redundant Explicit Type (detekt)" 
    WARNING_FILTER += discard class="Redundant Higher Order Map Usage (detekt)" 
    WARNING_FILTER += discard class="Redundant Suspend Modifier (detekt)" 
    WARNING_FILTER += discard class="Redundant Visibility Modifier Rule (detekt)" 
    WARNING_FILTER += discard class="Reflection Injection (Java)" 
    WARNING_FILTER += discard class="Replace Safe Call Chain With Run (detekt)" 
    WARNING_FILTER += discard class="Rethrow Caught Exception (detekt)" 
    WARNING_FILTER += discard class="Return Count (detekt)" 
    WARNING_FILTER += discard class="Return From Finally (detekt)" 
    WARNING_FILTER += discard class="Risky Cipher Algorithm (Java)" 
    WARNING_FILTER += discard class="Risky Cipher Field (Java)" 
    WARNING_FILTER += discard class="Risky Cryptographic Algorithm (Java)" 
    WARNING_FILTER += discard class="Risky Cryptographic Field (Java)" 
    WARNING_FILTER += discard class="SQL Injection (Java)" 
    WARNING_FILTER += discard class="Safe Cast (detekt)" 
    WARNING_FILTER += discard class="Serial Version UIDIn Serializable Class (detekt)" 
    WARNING_FILTER += discard class="Sleep Instead of Delay (detekt)" 
    WARNING_FILTER += discard class="Spacing Between Package and Imports (detekt)" 
    WARNING_FILTER += discard class="Spread Operator (detekt)" 
    WARNING_FILTER += discard class="String Literal Duplication (detekt)" 
    WARNING_FILTER += discard class="String Should Be Raw String (detekt)" 
    WARNING_FILTER += discard class="Suspend Fun Swallowed Cancellation (detekt)" 
    WARNING_FILTER += discard class="Suspend Fun With Coroutine Scope Receiver (detekt)" 
    WARNING_FILTER += discard class="Suspend Fun With Flow Return Type (detekt)" 
    WARNING_FILTER += discard class="Swallowed Exception (detekt)" 
    WARNING_FILTER += discard class="Tainted @Trusted Value (Java)" 
    WARNING_FILTER += discard class="Tainted Allocation Size (Java)" 
    WARNING_FILTER += discard class="Tainted Bundle (Java)" 
    WARNING_FILTER += discard class="Tainted Control (Java)" 
    WARNING_FILTER += discard class="Tainted Data in Vulnerable Method (Java)" 
    WARNING_FILTER += discard class="Tainted Expression Evaluation (Java)" 
    WARNING_FILTER += discard class="Tainted HTTP Response (Java)" 
    WARNING_FILTER += discard class="Tainted LDAP Attribute (Java)" 
    WARNING_FILTER += discard class="Tainted LDAP Filter (Java)" 
    WARNING_FILTER += discard class="Tainted Log (Java)" 
    WARNING_FILTER += discard class="Tainted Message (Java)" 
    WARNING_FILTER += discard class="Tainted Network Address (Java)" 
    WARNING_FILTER += discard class="Tainted Path (Java)" 
    WARNING_FILTER += discard class="Tainted Regular Expression (Java)" 
    WARNING_FILTER += discard class="Tainted Resource (Java)" 
    WARNING_FILTER += discard class="Tainted Session (Java)" 
    WARNING_FILTER += discard class="Tainted URL (Java)" 
    WARNING_FILTER += discard class="Tainted XAML (Java)" 
    WARNING_FILTER += discard class="Tainted XML (Java)" 
    WARNING_FILTER += discard class="Tainted Xpath (Java)" 
    WARNING_FILTER += discard class="Throwing Exception From Finally (detekt)" 
    WARNING_FILTER += discard class="Throwing Exception in Main (detekt)" 
    WARNING_FILTER += discard class="Throwing Exceptions Without Message or Cause (detekt)" 
    WARNING_FILTER += discard class="Throwing New Instance of Same Exception (detekt)" 
    WARNING_FILTER += discard class="Throws Count (detekt)" 
    WARNING_FILTER += discard class="Too Generic Exception Caught (detekt)" 
    WARNING_FILTER += discard class="Too Generic Exception Thrown (detekt)" 
    WARNING_FILTER += discard class="Too Many Functions (detekt)" 
    WARNING_FILTER += discard class="Top Level Property Naming (detekt)" 
    WARNING_FILTER += discard class="Trailing Whitespace (detekt)" 
    WARNING_FILTER += discard class="Trim Multiline Raw String (detekt)" 
    WARNING_FILTER += discard class="Unconditional Jump Statement in Loop (detekt)" 
    WARNING_FILTER += discard class="Underscores in Numeric Literals (detekt)" 
    WARNING_FILTER += discard class="Undocumented Public Class (detekt)" 
    WARNING_FILTER += discard class="Undocumented Public Function (detekt)" 
    WARNING_FILTER += discard class="Undocumented Public Property (detekt)" 
    WARNING_FILTER += discard class="Unnecessary Abstract Class (detekt)" 
    WARNING_FILTER += discard class="Unnecessary Annotation Use Site Target (detekt)" 
    WARNING_FILTER += discard class="Unnecessary Apply (detekt)" 
    WARNING_FILTER += discard class="Unnecessary Backticks (detekt)" 
    WARNING_FILTER += discard class="Unnecessary Braces Around Trailing Lambda (detekt)" 
    WARNING_FILTER += discard class="Unnecessary Filter (detekt)" 
    WARNING_FILTER += discard class="Unnecessary Inheritance (detekt)" 
    WARNING_FILTER += discard class="Unnecessary Inner Class (detekt)" 
    WARNING_FILTER += discard class="Unnecessary Let (detekt)" 
    WARNING_FILTER += discard class="Unnecessary Not Null Check (detekt)" 
    WARNING_FILTER += discard class="Unnecessary Not Null Operator (detekt)" 
    WARNING_FILTER += discard class="Unnecessary Parentheses (detekt)" 
    WARNING_FILTER += discard class="Unnecessary Part of Binary Expression (detekt)" 
    WARNING_FILTER += discard class="Unnecessary Safe Call (detekt)" 
    WARNING_FILTER += discard class="Unnecessary Temporary Instantiation (detekt)" 
    WARNING_FILTER += discard class="Unreachable Catch Block (detekt)" 
    WARNING_FILTER += discard class="Unreachable Code (detekt)" 
    WARNING_FILTER += discard class="Unsafe Call on Nullable Type (detekt)" 
    WARNING_FILTER += discard class="Unsafe Cast (detekt)" 
    WARNING_FILTER += discard class="Unsafe hash comparison (Java)" 
    WARNING_FILTER += discard class="Until Instead of Range to (detekt)" 
    WARNING_FILTER += discard class="Unused Imports (detekt)" 
    WARNING_FILTER += discard class="Unused Object (Java)" 
    WARNING_FILTER += discard class="Unused Parameter (detekt)" 
    WARNING_FILTER += discard class="Unused Private Class (detekt)" 
    WARNING_FILTER += discard class="Unused Private Member (detekt)" 
    WARNING_FILTER += discard class="Unused Private Property (detekt)" 
    WARNING_FILTER += discard class="Unused Unary Operator (detekt)" 
    WARNING_FILTER += discard class="Unused Value: Actual Parameter (Java)" 
    WARNING_FILTER += discard class="Unused Value: Variable (Java)" 
    WARNING_FILTER += discard class="Unused Value: Write to Parameter (Java)" 
    WARNING_FILTER += discard class="Use Any or None Instead of Find (detekt)" 
    WARNING_FILTER += discard class="Use Array Literals in Annotations (detekt)" 
    WARNING_FILTER += discard class="Use Check Not Null (detekt)" 
    WARNING_FILTER += discard class="Use Check or Error (detekt)" 
    WARNING_FILTER += discard class="Use Data Class (detekt)" 
    WARNING_FILTER += discard class="Use Empty Counterpart (detekt)" 
    WARNING_FILTER += discard class="Use If Empty or If Blank (detekt)" 
    WARNING_FILTER += discard class="Use If Instead of When (detekt)" 
    WARNING_FILTER += discard class="Use Is Null or Empty (detekt)" 
    WARNING_FILTER += discard class="Use Let (detekt)" 
    WARNING_FILTER += discard class="Use Require (detekt)" 
    WARNING_FILTER += discard class="Use Require Not Null (detekt)" 
    WARNING_FILTER += discard class="Use Sum of Instead of Flat Map Size (detekt)" 
    WARNING_FILTER += discard class="Use of Hash without a Salt (Java)" 
    WARNING_FILTER += discard class="Use or Empty (detekt)" 
    WARNING_FILTER += discard class="Useless Assignment (Java)" 
    WARNING_FILTER += discard class="Useless Assignment to Default (Java)" 
    WARNING_FILTER += discard class="Useless Call on Not Null (detekt)" 
    WARNING_FILTER += discard class="Useless Postfix Expression (detekt)" 
    WARNING_FILTER += discard class="Utility Class With Public Constructor (detekt)" 
    WARNING_FILTER += discard class="Var Could Be Val (detekt)" 
    WARNING_FILTER += discard class="Variable Max Length (detekt)" 
    WARNING_FILTER += discard class="Variable Min Length (detekt)" 
    WARNING_FILTER += discard class="Variable Naming (detekt)" 
    WARNING_FILTER += discard class="Weak Cryptographic Value (Java)" 
    WARNING_FILTER += discard class="Weak Hash Algorithm (Java)" 
    WARNING_FILTER += discard class="Weak Hash Algorithm Field (Java)" 
    WARNING_FILTER += discard class="Weak Initialization Vector Field (Java)" 
    WARNING_FILTER += discard class="Weak Initialization Vector Value (Java)" 
    WARNING_FILTER += discard class="Wildcard Import (detekt)" 
    WARNING_FILTER += discard class="Wrong Equals Type Parameter (detekt)" 

 (Python warning classes) 
    WARNING_FILTER += discard class="Abstract Class Instantiated (Pylint)" 
    WARNING_FILTER += discard class="Abstract Method (Pylint)" 
    WARNING_FILTER += discard class="Access Member Before Definition (Pylint)" 
    WARNING_FILTER += discard class="Anomalous Backslash in String (Pylint)" 
    WARNING_FILTER += discard class="Anomalous Unicode Escape in String (Pylint)" 
    WARNING_FILTER += discard class="Arguments Differ (Pylint)" 
    WARNING_FILTER += discard class="Arguments Out of Order (Pylint)" 
    WARNING_FILTER += discard class="Arguments Renamed (Pylint)" 
    WARNING_FILTER += discard class="Assert on String Literal (Pylint)" 
    WARNING_FILTER += discard class="Assert on Tuple (Pylint)" 
    WARNING_FILTER += discard class="Assigning Non Slot (Pylint)" 
    WARNING_FILTER += discard class="Assignment From No Return (Pylint)" 
    WARNING_FILTER += discard class="Assignment From None (Pylint)" 
    WARNING_FILTER += discard class="Astroid Error (Pylint)" 
    WARNING_FILTER += discard class="Attribute Defined Outside Init (Pylint)" 
    WARNING_FILTER += discard class="Await Outside Async (Pylint)" 
    WARNING_FILTER += discard class="Bad Chained Comparison (Pylint)" 
    WARNING_FILTER += discard class="Bad Classmethod Argument (Pylint)" 
    WARNING_FILTER += discard class="Bad Configuration Section (Pylint)" 
    WARNING_FILTER += discard class="Bad Except Order (Pylint)" 
    WARNING_FILTER += discard class="Bad Exception Cause (Pylint)" 
    WARNING_FILTER += discard class="Bad File Encoding (Pylint)" 
    WARNING_FILTER += discard class="Bad Format Character (Pylint)" 
    WARNING_FILTER += discard class="Bad Format String (Pylint)" 
    WARNING_FILTER += discard class="Bad Format String Key (Pylint)" 
    WARNING_FILTER += discard class="Bad Indentation (Pylint)" 
    WARNING_FILTER += discard class="Bad Inline Option (Pylint)" 
    WARNING_FILTER += discard class="Bad Mcs Classmethod Argument (Pylint)" 
    WARNING_FILTER += discard class="Bad Mcs Method Argument (Pylint)" 
    WARNING_FILTER += discard class="Bad Open Mode (Pylint)" 
    WARNING_FILTER += discard class="Bad Plugin Value (Pylint)" 
    WARNING_FILTER += discard class="Bad Reversed Sequence (Pylint)" 
    WARNING_FILTER += discard class="Bad Staticmethod Argument (Pylint)" 
    WARNING_FILTER += discard class="Bad Str Strip Call (Pylint)" 
    WARNING_FILTER += discard class="Bad String Format Type (Pylint)" 
    WARNING_FILTER += discard class="Bad Super Call (Pylint)" 
    WARNING_FILTER += discard class="Bad Thread Instantiation (Pylint)" 
    WARNING_FILTER += discard class="Bare Except (Pylint)" 
    WARNING_FILTER += discard class="Bidirectional Unicode (Pylint)" 
    WARNING_FILTER += discard class="Binary Op Exception (Pylint)" 
    WARNING_FILTER += discard class="Boolean Datetime (Pylint)" 
    WARNING_FILTER += discard class="Broad Exception Caught (Pylint)" 
    WARNING_FILTER += discard class="Broad Exception Raised (Pylint)" 
    WARNING_FILTER += discard class="C Extension No Member (Pylint)" 
    WARNING_FILTER += discard class="Catching Non Exception (Pylint)" 
    WARNING_FILTER += discard class="Cell Var From Loop (Pylint)" 
    WARNING_FILTER += discard class="Chained Comparison (Pylint)" 
    WARNING_FILTER += discard class="Class Variable Slots Conflict (Pylint)" 
    WARNING_FILTER += discard class="Comparison With Callable (Pylint)" 
    WARNING_FILTER += discard class="Comparison With Itself (Pylint)" 
    WARNING_FILTER += discard class="Comparison of Constants (Pylint)" 
    WARNING_FILTER += discard class="Condition Evals to Constant (Pylint)" 
    WARNING_FILTER += discard class="Config Parse Error (Pylint)" 
    WARNING_FILTER += discard class="Confusing With Statement (Pylint)" 
    WARNING_FILTER += discard class="Consider Iterating Dictionary (Pylint)" 
    WARNING_FILTER += discard class="Consider Merging Isinstance (Pylint)" 
    WARNING_FILTER += discard class="Consider Swap Variables (Pylint)" 
    WARNING_FILTER += discard class="Consider Using Dict Comprehension (Pylint)" 
    WARNING_FILTER += discard class="Consider Using Dict Items (Pylint)" 
    WARNING_FILTER += discard class="Consider Using Enumerate (Pylint)" 
    WARNING_FILTER += discard class="Consider Using F String (Pylint)" 
    WARNING_FILTER += discard class="Consider Using From Import (Pylint)" 
    WARNING_FILTER += discard class="Consider Using Generator (Pylint)" 
    WARNING_FILTER += discard class="Consider Using Get (Pylint)" 
    WARNING_FILTER += discard class="Consider Using Join (Pylint)" 
    WARNING_FILTER += discard class="Consider Using Max Builtin (Pylint)" 
    WARNING_FILTER += discard class="Consider Using Min Builtin (Pylint)" 
    WARNING_FILTER += discard class="Consider Using Set Comprehension (Pylint)" 
    WARNING_FILTER += discard class="Consider Using Sys Exit (Pylint)" 
    WARNING_FILTER += discard class="Consider Using Ternary (Pylint)" 
    WARNING_FILTER += discard class="Consider Using With (Pylint)" 
    WARNING_FILTER += discard class="Consider Using in (Pylint)" 
    WARNING_FILTER += discard class="Continue in Finally (Pylint)" 
    WARNING_FILTER += discard class="Copy-Paste Error" 
    WARNING_FILTER += discard class="Cyclic Import (Pylint)" 
    WARNING_FILTER += discard class="Dangerous Default Value (Pylint)" 
    WARNING_FILTER += discard class="Deprecated Argument (Pylint)" 
    WARNING_FILTER += discard class="Deprecated Class (Pylint)" 
    WARNING_FILTER += discard class="Deprecated Decorator (Pylint)" 
    WARNING_FILTER += discard class="Deprecated Method (Pylint)" 
    WARNING_FILTER += discard class="Deprecated Module (Pylint)" 
    WARNING_FILTER += discard class="Deprecated Pragma (Pylint)" 
    WARNING_FILTER += discard class="Dict Iter Missing Items (Pylint)" 
    WARNING_FILTER += discard class="Disallowed Name (Pylint)" 
    WARNING_FILTER += discard class="Duplicate Argument Name (Pylint)" 
    WARNING_FILTER += discard class="Duplicate Bases (Pylint)" 
    WARNING_FILTER += discard class="Duplicate Code (Pylint)" 
    WARNING_FILTER += discard class="Duplicate Except (Pylint)" 
    WARNING_FILTER += discard class="Duplicate Key (Pylint)" 
    WARNING_FILTER += discard class="Duplicate String Formatting Argument (Pylint)" 
    WARNING_FILTER += discard class="Duplicate Value (Pylint)" 
    WARNING_FILTER += discard class="Empty Docstring (Pylint)" 
    WARNING_FILTER += discard class="Eval Used (Pylint)" 
    WARNING_FILTER += discard class="Exec Used (Pylint)" 
    WARNING_FILTER += discard class="Expression Not Assigned (Pylint)" 
    WARNING_FILTER += discard class="F String Without Interpolation (Pylint)" 
    WARNING_FILTER += discard class="Fatal (Pylint)" 
    WARNING_FILTER += discard class="File Ignored (Pylint)" 
    WARNING_FILTER += discard class="Fixme (Pylint)" 
    WARNING_FILTER += discard class="Forgotten Debug Statement (Pylint)" 
    WARNING_FILTER += discard class="Format Combined Specification (Pylint)" 
    WARNING_FILTER += discard class="Format Needs Mapping (Pylint)" 
    WARNING_FILTER += discard class="Format String Without Interpolation (Pylint)" 
    WARNING_FILTER += discard class="Function Redefined (Pylint)" 
    WARNING_FILTER += discard class="Global Statement (Pylint)" 
    WARNING_FILTER += discard class="Global Variable Not Assigned (Pylint)" 
    WARNING_FILTER += discard class="Global Variable Undefined (Pylint)" 
    WARNING_FILTER += discard class="Global at Module Level (Pylint)" 
    WARNING_FILTER += discard class="Implicit Flag Alias (Pylint)" 
    WARNING_FILTER += discard class="Implicit Str Concat (Pylint)" 
    WARNING_FILTER += discard class="Import Error (Pylint)" 
    WARNING_FILTER += discard class="Import Outside Toplevel (Pylint)" 
    WARNING_FILTER += discard class="Import Self (Pylint)" 
    WARNING_FILTER += discard class="Inconsistent Mro (Pylint)" 
    WARNING_FILTER += discard class="Inconsistent Quotes (Pylint)" 
    WARNING_FILTER += discard class="Inconsistent Return Statements (Pylint)" 
    WARNING_FILTER += discard class="Inherit Non Class (Pylint)" 
    WARNING_FILTER += discard class="Init Is Generator (Pylint)" 
    WARNING_FILTER += discard class="Invalid All Format (Pylint)" 
    WARNING_FILTER += discard class="Invalid All Object (Pylint)" 
    WARNING_FILTER += discard class="Invalid Bool Returned (Pylint)" 
    WARNING_FILTER += discard class="Invalid Bytes Returned (Pylint)" 
    WARNING_FILTER += discard class="Invalid Character Backspace (Pylint)" 
    WARNING_FILTER += discard class="Invalid Character Carriage Return (Pylint)" 
    WARNING_FILTER += discard class="Invalid Character Esc (Pylint)" 
    WARNING_FILTER += discard class="Invalid Character Nul (Pylint)" 
    WARNING_FILTER += discard class="Invalid Character Sub (Pylint)" 
    WARNING_FILTER += discard class="Invalid Character Zero Width Space (Pylint)" 
    WARNING_FILTER += discard class="Invalid Characters in Docstring (Pylint)" 
    WARNING_FILTER += discard class="Invalid Class Object (Pylint)" 
    WARNING_FILTER += discard class="Invalid Enum Extension (Pylint)" 
    WARNING_FILTER += discard class="Invalid Envvar Default (Pylint)" 
    WARNING_FILTER += discard class="Invalid Envvar Value (Pylint)" 
    WARNING_FILTER += discard class="Invalid Field Call (Pylint)" 
    WARNING_FILTER += discard class="Invalid Format Index (Pylint)" 
    WARNING_FILTER += discard class="Invalid Format Returned (Pylint)" 
    WARNING_FILTER += discard class="Invalid Getnewargs Ex Returned (Pylint)" 
    WARNING_FILTER += discard class="Invalid Getnewargs Returned (Pylint)" 
    WARNING_FILTER += discard class="Invalid Hash Returned (Pylint)" 
    WARNING_FILTER += discard class="Invalid Index Returned (Pylint)" 
    WARNING_FILTER += discard class="Invalid Length Hint Returned (Pylint)" 
    WARNING_FILTER += discard class="Invalid Length Returned (Pylint)" 
    WARNING_FILTER += discard class="Invalid Metaclass (Pylint)" 
    WARNING_FILTER += discard class="Invalid Name (Pylint)" 
    WARNING_FILTER += discard class="Invalid Overridden Method (Pylint)" 
    WARNING_FILTER += discard class="Invalid Repr Returned (Pylint)" 
    WARNING_FILTER += discard class="Invalid Sequence Index (Pylint)" 
    WARNING_FILTER += discard class="Invalid Slice Index (Pylint)" 
    WARNING_FILTER += discard class="Invalid Slice Step (Pylint)" 
    WARNING_FILTER += discard class="Invalid Slots (Pylint)" 
    WARNING_FILTER += discard class="Invalid Slots Object (Pylint)" 
    WARNING_FILTER += discard class="Invalid Star Assignment Target (Pylint)" 
    WARNING_FILTER += discard class="Invalid Str Returned (Pylint)" 
    WARNING_FILTER += discard class="Invalid Unary Operand Type (Pylint)" 
    WARNING_FILTER += discard class="Invalid Unicode Codec (Pylint)" 
    WARNING_FILTER += discard class="Isinstance Second Argument Not Valid Type (Pylint)" 
    WARNING_FILTER += discard class="Keyword Arg Before Vararg (Pylint)" 
    WARNING_FILTER += discard class="Kwarg Superseded By Positional Arg (Pylint)" 
    WARNING_FILTER += discard class="Line Too Long (Pylint)" 
    WARNING_FILTER += discard class="Literal Comparison (Pylint)" 
    WARNING_FILTER += discard class="Locally Disabled (Pylint)" 
    WARNING_FILTER += discard class="Logging Format Interpolation (Pylint)" 
    WARNING_FILTER += discard class="Logging Format Truncated (Pylint)" 
    WARNING_FILTER += discard class="Logging Fstring Interpolation (Pylint)" 
    WARNING_FILTER += discard class="Logging Not Lazy (Pylint)" 
    WARNING_FILTER += discard class="Logging Too Few Args (Pylint)" 
    WARNING_FILTER += discard class="Logging Too Many Args (Pylint)" 
    WARNING_FILTER += discard class="Logging Unsupported Format (Pylint)" 
    WARNING_FILTER += discard class="Lost Exception (Pylint)" 
    WARNING_FILTER += discard class="Method Cache Max Size None (Pylint)" 
    WARNING_FILTER += discard class="Method Check Failed (Pylint)" 
    WARNING_FILTER += discard class="Method Hidden (Pylint)" 
    WARNING_FILTER += discard class="Misplaced Bare Raise (Pylint)" 
    WARNING_FILTER += discard class="Misplaced Format Function (Pylint)" 
    WARNING_FILTER += discard class="Misplaced Future (Pylint)" 
    WARNING_FILTER += discard class="Missing Class Docstring (Pylint)" 
    WARNING_FILTER += discard class="Missing Final Newline (Pylint)" 
    WARNING_FILTER += discard class="Missing Format Argument Key (Pylint)" 
    WARNING_FILTER += discard class="Missing Format Attribute (Pylint)" 
    WARNING_FILTER += discard class="Missing Format String Key (Pylint)" 
    WARNING_FILTER += discard class="Missing Function Docstring (Pylint)" 
    WARNING_FILTER += discard class="Missing Kwoa (Pylint)" 
    WARNING_FILTER += discard class="Missing Module Docstring (Pylint)" 
    WARNING_FILTER += discard class="Missing Parentheses for Call in Test (Pylint)" 
    WARNING_FILTER += discard class="Missing Timeout (Pylint)" 
    WARNING_FILTER += discard class="Mixed Format String (Pylint)" 
    WARNING_FILTER += discard class="Mixed Line Endings (Pylint)" 
    WARNING_FILTER += discard class="Modified Iterating Dict (Pylint)" 
    WARNING_FILTER += discard class="Modified Iterating List (Pylint)" 
    WARNING_FILTER += discard class="Modified Iterating Set (Pylint)" 
    WARNING_FILTER += discard class="Multiple Imports (Pylint)" 
    WARNING_FILTER += discard class="Multiple Statements (Pylint)" 
    WARNING_FILTER += discard class="Named Expr Without Context (Pylint)" 
    WARNING_FILTER += discard class="Nan Comparison (Pylint)" 
    WARNING_FILTER += discard class="Nested Min Max (Pylint)" 
    WARNING_FILTER += discard class="No Classmethod Decorator (Pylint)" 
    WARNING_FILTER += discard class="No Else Break (Pylint)" 
    WARNING_FILTER += discard class="No Else Continue (Pylint)" 
    WARNING_FILTER += discard class="No Else Raise (Pylint)" 
    WARNING_FILTER += discard class="No Else Return (Pylint)" 
    WARNING_FILTER += discard class="No Member (Pylint)" 
    WARNING_FILTER += discard class="No Method Argument (Pylint)" 
    WARNING_FILTER += discard class="No Name in Module (Pylint)" 
    WARNING_FILTER += discard class="No Self Argument (Pylint)" 
    WARNING_FILTER += discard class="No Staticmethod Decorator (Pylint)" 
    WARNING_FILTER += discard class="No Value for Parameter (Pylint)" 
    WARNING_FILTER += discard class="Non Ascii File Name (Pylint)" 
    WARNING_FILTER += discard class="Non Ascii Module Import (Pylint)" 
    WARNING_FILTER += discard class="Non Ascii Name (Pylint)" 
    WARNING_FILTER += discard class="Non Iterator Returned (Pylint)" 
    WARNING_FILTER += discard class="Non Parent Init Called (Pylint)" 
    WARNING_FILTER += discard class="Non Str Assignment to Dunder Name (Pylint)" 
    WARNING_FILTER += discard class="Nonexistent Operator (Pylint)" 
    WARNING_FILTER += discard class="Nonlocal Without Binding (Pylint)" 
    WARNING_FILTER += discard class="Nonlocal and Global (Pylint)" 
    WARNING_FILTER += discard class="Not Async Context Manager (Pylint)" 
    WARNING_FILTER += discard class="Not Callable (Pylint)" 
    WARNING_FILTER += discard class="Not Context Manager (Pylint)" 
    WARNING_FILTER += discard class="Not a Mapping (Pylint)" 
    WARNING_FILTER += discard class="Not an Iterable (Pylint)" 
    WARNING_FILTER += discard class="Not in Loop (Pylint)" 
    WARNING_FILTER += discard class="Notimplemented Raised (Pylint)" 
    WARNING_FILTER += discard class="Overridden Final Method (Pylint)" 
    WARNING_FILTER += discard class="Parse Error (Pylint)" 
    WARNING_FILTER += discard class="Pointless Exception Statement (Pylint)" 
    WARNING_FILTER += discard class="Pointless Statement (Pylint)" 
    WARNING_FILTER += discard class="Pointless String Statement (Pylint)" 
    WARNING_FILTER += discard class="Positional Only Arguments Expected (Pylint)" 
    WARNING_FILTER += discard class="Possibly Unused Variable (Pylint)" 
    WARNING_FILTER += discard class="Potential Index Error (Pylint)" 
    WARNING_FILTER += discard class="Preferred Module (Pylint)" 
    WARNING_FILTER += discard class="Property With Parameters (Pylint)" 
    WARNING_FILTER += discard class="Protected Access (Pylint)" 
    WARNING_FILTER += discard class="Raise Missing From (Pylint)" 
    WARNING_FILTER += discard class="Raising Bad Type (Pylint)" 
    WARNING_FILTER += discard class="Raising Format Tuple (Pylint)" 
    WARNING_FILTER += discard class="Raising Non Exception (Pylint)" 
    WARNING_FILTER += discard class="Raw Checker Failed (Pylint)" 
    WARNING_FILTER += discard class="Redeclared Assigned Name (Pylint)" 
    WARNING_FILTER += discard class="Redefined Argument From Local (Pylint)" 
    WARNING_FILTER += discard class="Redefined Builtin (Pylint)" 
    WARNING_FILTER += discard class="Redefined Outer Name (Pylint)" 
    WARNING_FILTER += discard class="Redefined Slots in Subclass (Pylint)" 
    WARNING_FILTER += discard class="Redundant Keyword Arg (Pylint)" 
    WARNING_FILTER += discard class="Redundant U String Prefix (Pylint)" 
    WARNING_FILTER += discard class="Redundant Unittest Assert (Pylint)" 
    WARNING_FILTER += discard class="Reimported (Pylint)" 
    WARNING_FILTER += discard class="Relative Beyond Top Level (Pylint)" 
    WARNING_FILTER += discard class="Repeated Keyword (Pylint)" 
    WARNING_FILTER += discard class="Return Arg in Generator (Pylint)" 
    WARNING_FILTER += discard class="Return Outside Function (Pylint)" 
    WARNING_FILTER += discard class="Return in Finally (Pylint)" 
    WARNING_FILTER += discard class="Return in Init (Pylint)" 
    WARNING_FILTER += discard class="Self Assigning Variable (Pylint)" 
    WARNING_FILTER += discard class="Self Cls Assignment (Pylint)" 
    WARNING_FILTER += discard class="Shadowed Import (Pylint)" 
    WARNING_FILTER += discard class="Shallow Copy Environ (Pylint)" 
    WARNING_FILTER += discard class="Signature Differs (Pylint)" 
    WARNING_FILTER += discard class="Simplifiable Condition (Pylint)" 
    WARNING_FILTER += discard class="Simplifiable If Expression (Pylint)" 
    WARNING_FILTER += discard class="Simplifiable If Statement (Pylint)" 
    WARNING_FILTER += discard class="Simplify Boolean Expression (Pylint)" 
    WARNING_FILTER += discard class="Single String Used for Slots (Pylint)" 
    WARNING_FILTER += discard class="Singledispatch Method (Pylint)" 
    WARNING_FILTER += discard class="Singledispatchmethod Function (Pylint)" 
    WARNING_FILTER += discard class="Singleton Comparison (Pylint)" 
    WARNING_FILTER += discard class="Star Needs Assignment Target (Pylint)" 
    WARNING_FILTER += discard class="Stop Iteration Return (Pylint)" 
    WARNING_FILTER += discard class="Subclassed Final Class (Pylint)" 
    WARNING_FILTER += discard class="Subprocess Popen Preexec Fn (Pylint)" 
    WARNING_FILTER += discard class="Subprocess Run Check (Pylint)" 
    WARNING_FILTER += discard class="Super Init Not Called (Pylint)" 
    WARNING_FILTER += discard class="Super With Arguments (Pylint)" 
    WARNING_FILTER += discard class="Super Without Brackets (Pylint)" 
    WARNING_FILTER += discard class="Superfluous Parens (Pylint)" 
    WARNING_FILTER += discard class="Suppressed Message (Pylint)" 
    WARNING_FILTER += discard class="Syntax Error (Pylint)" 
    WARNING_FILTER += discard class="Too Few Format Args (Pylint)" 
    WARNING_FILTER += discard class="Too Few Public Methods (Pylint)" 
    WARNING_FILTER += discard class="Too Many Ancestors (Pylint)" 
    WARNING_FILTER += discard class="Too Many Arguments (Pylint)" 
    WARNING_FILTER += discard class="Too Many Boolean Expressions (Pylint)" 
    WARNING_FILTER += discard class="Too Many Branches (Pylint)" 
    WARNING_FILTER += discard class="Too Many Format Args (Pylint)" 
    WARNING_FILTER += discard class="Too Many Function Args (Pylint)" 
    WARNING_FILTER += discard class="Too Many Instance Attributes (Pylint)" 
    WARNING_FILTER += discard class="Too Many Lines (Pylint)" 
    WARNING_FILTER += discard class="Too Many Locals (Pylint)" 
    WARNING_FILTER += discard class="Too Many Nested Blocks (Pylint)" 
    WARNING_FILTER += discard class="Too Many Public Methods (Pylint)" 
    WARNING_FILTER += discard class="Too Many Return Statements (Pylint)" 
    WARNING_FILTER += discard class="Too Many Star Expressions (Pylint)" 
    WARNING_FILTER += discard class="Too Many Statements (Pylint)" 
    WARNING_FILTER += discard class="Trailing Comma Tuple (Pylint)" 
    WARNING_FILTER += discard class="Trailing Newlines (Pylint)" 
    WARNING_FILTER += discard class="Trailing Whitespace (Pylint)" 
    WARNING_FILTER += discard class="Truncated Format String (Pylint)" 
    WARNING_FILTER += discard class="Try Except Raise (Pylint)" 
    WARNING_FILTER += discard class="Typevar Double Variance (Pylint)" 
    WARNING_FILTER += discard class="Typevar Name Incorrect Variance (Pylint)" 
    WARNING_FILTER += discard class="Typevar Name Mismatch (Pylint)" 
    WARNING_FILTER += discard class="Unbalanced Dict Unpacking (Pylint)" 
    WARNING_FILTER += discard class="Unbalanced Tuple Unpacking (Pylint)" 
    WARNING_FILTER += discard class="Undefined All Variable (Pylint)" 
    WARNING_FILTER += discard class="Undefined Loop Variable (Pylint)" 
    WARNING_FILTER += discard class="Undefined Variable (Pylint)" 
    WARNING_FILTER += discard class="Unexpected Keyword Arg (Pylint)" 
    WARNING_FILTER += discard class="Unexpected Line Ending Format (Pylint)" 
    WARNING_FILTER += discard class="Unexpected Special Method Signature (Pylint)" 
    WARNING_FILTER += discard class="Ungrouped Imports (Pylint)" 
    WARNING_FILTER += discard class="Unhashable Member (Pylint)" 
    WARNING_FILTER += discard class="Unidiomatic Typecheck (Pylint)" 
    WARNING_FILTER += discard class="Unknown Option Value (Pylint)" 
    WARNING_FILTER += discard class="Unnecessary Comprehension (Pylint)" 
    WARNING_FILTER += discard class="Unnecessary Dict Index Lookup (Pylint)" 
    WARNING_FILTER += discard class="Unnecessary Direct Lambda Call (Pylint)" 
    WARNING_FILTER += discard class="Unnecessary Dunder Call (Pylint)" 
    WARNING_FILTER += discard class="Unnecessary Ellipsis (Pylint)" 
    WARNING_FILTER += discard class="Unnecessary Lambda (Pylint)" 
    WARNING_FILTER += discard class="Unnecessary Lambda Assignment (Pylint)" 
    WARNING_FILTER += discard class="Unnecessary List Index Lookup (Pylint)" 
    WARNING_FILTER += discard class="Unnecessary Negation (Pylint)" 
    WARNING_FILTER += discard class="Unnecessary Pass (Pylint)" 
    WARNING_FILTER += discard class="Unnecessary Semicolon (Pylint)" 
    WARNING_FILTER += discard class="Unpacking Non Sequence (Pylint)" 
    WARNING_FILTER += discard class="Unreachable (Pylint)" 
    WARNING_FILTER += discard class="Unrecognized Inline Option (Pylint)" 
    WARNING_FILTER += discard class="Unrecognized Option (Pylint)" 
    WARNING_FILTER += discard class="Unspecified Encoding (Pylint)" 
    WARNING_FILTER += discard class="Unsubscriptable Object (Pylint)" 
    WARNING_FILTER += discard class="Unsupported Assignment Operation (Pylint)" 
    WARNING_FILTER += discard class="Unsupported Binary Operation (Pylint)" 
    WARNING_FILTER += discard class="Unsupported Delete Operation (Pylint)" 
    WARNING_FILTER += discard class="Unsupported Membership Test (Pylint)" 
    WARNING_FILTER += discard class="Unused Argument (Pylint)" 
    WARNING_FILTER += discard class="Unused Format String Argument (Pylint)" 
    WARNING_FILTER += discard class="Unused Format String Key (Pylint)" 
    WARNING_FILTER += discard class="Unused Import (Pylint)" 
    WARNING_FILTER += discard class="Unused Private Member (Pylint)" 
    WARNING_FILTER += discard class="Unused Variable (Pylint)" 
    WARNING_FILTER += discard class="Unused Wildcard Import (Pylint)" 
    WARNING_FILTER += discard class="Use Dict Literal (Pylint)" 
    WARNING_FILTER += discard class="Use Implicit Booleaness Not Comparison (Pylint)" 
    WARNING_FILTER += discard class="Use Implicit Booleaness Not Comparison to String (Pylint)" 
    WARNING_FILTER += discard class="Use Implicit Booleaness Not Comparison to Zero (Pylint)" 
    WARNING_FILTER += discard class="Use Implicit Booleaness Not Len (Pylint)" 
    WARNING_FILTER += discard class="Use List Literal (Pylint)" 
    WARNING_FILTER += discard class="Use Maxsplit Arg (Pylint)" 
    WARNING_FILTER += discard class="Use Sequence for Iteration (Pylint)" 
    WARNING_FILTER += discard class="Use Symbolic Message Instead (Pylint)" 
    WARNING_FILTER += discard class="Use a Generator (Pylint)" 
    WARNING_FILTER += discard class="Used Before Assignment (Pylint)" 
    WARNING_FILTER += discard class="Used Prior Global Declaration (Pylint)" 
    WARNING_FILTER += discard class="Useless Else on Loop (Pylint)" 
    WARNING_FILTER += discard class="Useless Import Alias (Pylint)" 
    WARNING_FILTER += discard class="Useless Object Inheritance (Pylint)" 
    WARNING_FILTER += discard class="Useless Option Value (Pylint)" 
    WARNING_FILTER += discard class="Useless Parent Delegation (Pylint)" 
    WARNING_FILTER += discard class="Useless Return (Pylint)" 
    WARNING_FILTER += discard class="Useless Suppression (Pylint)" 
    WARNING_FILTER += discard class="Useless With Lock (Pylint)" 
    WARNING_FILTER += discard class="Using Constant Test (Pylint)" 
    WARNING_FILTER += discard class="Using F String in Unsupported Version (Pylint)" 
    WARNING_FILTER += discard class="Using Final Decorator in Unsupported Version (Pylint)" 
    WARNING_FILTER += discard class="Wildcard Import (Pylint)" 
    WARNING_FILTER += discard class="Wrong Exception Operation (Pylint)" 
    WARNING_FILTER += discard class="Wrong Import Order (Pylint)" 
    WARNING_FILTER += discard class="Wrong Import Position (Pylint)" 
    WARNING_FILTER += discard class="Wrong Spelling in Comment (Pylint)" 
    WARNING_FILTER += discard class="Wrong Spelling in Docstring (Pylint)" 
    WARNING_FILTER += discard class="Yield Inside Async Function (Pylint)" 
    WARNING_FILTER += discard class="Yield Outside Function (Pylint)" 

 (Rust warning classes) 
    WARNING_FILTER += discard class="Absolute Paths (Rust Clippy)" 
    WARNING_FILTER += discard class="Absurd Extreme Comparisons (Rust Clippy)" 
    WARNING_FILTER += discard class="Alloc Instead of Core (Rust Clippy)" 
    WARNING_FILTER += discard class="Allow Attributes (Rust Clippy)" 
    WARNING_FILTER += discard class="Allow Attributes Without Reason (Rust Clippy)" 
    WARNING_FILTER += discard class="Almost Complete Range (Rust Clippy)" 
    WARNING_FILTER += discard class="Almost Swapped (Rust Clippy)" 
    WARNING_FILTER += discard class="Approx Constant (Rust Clippy)" 
    WARNING_FILTER += discard class="Arbitrary Source Item Ordering (Rust Clippy)" 
    WARNING_FILTER += discard class="Arc With Non Send Sync (Rust Clippy)" 
    WARNING_FILTER += discard class="Arithmetic Side Effects (Rust Clippy)" 
    WARNING_FILTER += discard class="As Conversions (Rust Clippy)" 
    WARNING_FILTER += discard class="As Pointer Underscore (Rust Clippy)" 
    WARNING_FILTER += discard class="As Ptr Cast Mut (Rust Clippy)" 
    WARNING_FILTER += discard class="As Underscore (Rust Clippy)" 
    WARNING_FILTER += discard class="Assertions on Constants (Rust Clippy)" 
    WARNING_FILTER += discard class="Assertions on Result States (Rust Clippy)" 
    WARNING_FILTER += discard class="Assign Op Pattern (Rust Clippy)" 
    WARNING_FILTER += discard class="Assign Ops (Rust Clippy)" 
    WARNING_FILTER += discard class="Assigning Clones (Rust Clippy)" 
    WARNING_FILTER += discard class="Async Yields Async (Rust Clippy)" 
    WARNING_FILTER += discard class="Await Holding Invalid Type (Rust Clippy)" 
    WARNING_FILTER += discard class="Await Holding Lock (Rust Clippy)" 
    WARNING_FILTER += discard class="Await Holding Refcell Ref (Rust Clippy)" 
    WARNING_FILTER += discard class="Bad Bit Mask (Rust Clippy)" 
    WARNING_FILTER += discard class="Big Endian Bytes (Rust Clippy)" 
    WARNING_FILTER += discard class="Bind Instead of Map (Rust Clippy)" 
    WARNING_FILTER += discard class="Blanket Clippy Restriction Lints (Rust Clippy)" 
    WARNING_FILTER += discard class="Blocks in Conditions (Rust Clippy)" 
    WARNING_FILTER += discard class="Bool Assert Comparison (Rust Clippy)" 
    WARNING_FILTER += discard class="Bool Comparison (Rust Clippy)" 
    WARNING_FILTER += discard class="Bool to Int With If (Rust Clippy)" 
    WARNING_FILTER += discard class="Borrow As Ptr (Rust Clippy)" 
    WARNING_FILTER += discard class="Borrow Deref Ref (Rust Clippy)" 
    WARNING_FILTER += discard class="Borrow Interior Mutable Const (Rust Clippy)" 
    WARNING_FILTER += discard class="Borrowed Box (Rust Clippy)" 
    WARNING_FILTER += discard class="Box Collection (Rust Clippy)" 
    WARNING_FILTER += discard class="Box Default (Rust Clippy)" 
    WARNING_FILTER += discard class="Boxed Local (Rust Clippy)" 
    WARNING_FILTER += discard class="Branches Sharing Code (Rust Clippy)" 
    WARNING_FILTER += discard class="Builtin Type Shadow (Rust Clippy)" 
    WARNING_FILTER += discard class="Byte Char Slices (Rust Clippy)" 
    WARNING_FILTER += discard class="Bytes Count to Len (Rust Clippy)" 
    WARNING_FILTER += discard class="Bytes Nth (Rust Clippy)" 
    WARNING_FILTER += discard class="Cargo Common Metadata (Rust Clippy)" 
    WARNING_FILTER += discard class="Case Sensitive File Extension Comparisons (Rust Clippy)" 
    WARNING_FILTER += discard class="Cast Abs to Unsigned (Rust Clippy)" 
    WARNING_FILTER += discard class="Cast Enum Constructor (Rust Clippy)" 
    WARNING_FILTER += discard class="Cast Enum Truncation (Rust Clippy)" 
    WARNING_FILTER += discard class="Cast Lossless (Rust Clippy)" 
    WARNING_FILTER += discard class="Cast Nan to Int (Rust Clippy)" 
    WARNING_FILTER += discard class="Cast Possible Truncation (Rust Clippy)" 
    WARNING_FILTER += discard class="Cast Possible Wrap (Rust Clippy)" 
    WARNING_FILTER += discard class="Cast Precision Loss (Rust Clippy)" 
    WARNING_FILTER += discard class="Cast Ptr Alignment (Rust Clippy)" 
    WARNING_FILTER += discard class="Cast Sign Loss (Rust Clippy)" 
    WARNING_FILTER += discard class="Cast Slice Different Sizes (Rust Clippy)" 
    WARNING_FILTER += discard class="Cast Slice From Raw Parts (Rust Clippy)" 
    WARNING_FILTER += discard class="Cfg Not Test (Rust Clippy)" 
    WARNING_FILTER += discard class="Char Indices As Byte Indices (Rust Clippy)" 
    WARNING_FILTER += discard class="Char Lit As U8 (Rust Clippy)" 
    WARNING_FILTER += discard class="Chars Last Cmp (Rust Clippy)" 
    WARNING_FILTER += discard class="Chars Next Cmp (Rust Clippy)" 
    WARNING_FILTER += discard class="Checked Conversions (Rust Clippy)" 
    WARNING_FILTER += discard class="Clear With Drain (Rust Clippy)" 
    WARNING_FILTER += discard class="Clone on Copy (Rust Clippy)" 
    WARNING_FILTER += discard class="Clone on Ref Ptr (Rust Clippy)" 
    WARNING_FILTER += discard class="Cloned Instead of Copied (Rust Clippy)" 
    WARNING_FILTER += discard class="Cloned Ref to Slice Refs (Rust Clippy)" 
    WARNING_FILTER += discard class="Cmp Null (Rust Clippy)" 
    WARNING_FILTER += discard class="Cmp Owned (Rust Clippy)" 
    WARNING_FILTER += discard class="Coerce Container to Any (Rust Clippy)" 
    WARNING_FILTER += discard class="Cognitive Complexity (Rust Clippy)" 
    WARNING_FILTER += discard class="Collapsible Else If (Rust Clippy)" 
    WARNING_FILTER += discard class="Collapsible If (Rust Clippy)" 
    WARNING_FILTER += discard class="Collapsible Match (Rust Clippy)" 
    WARNING_FILTER += discard class="Collapsible Str Replace (Rust Clippy)" 
    WARNING_FILTER += discard class="Collection Is Never Read (Rust Clippy)" 
    WARNING_FILTER += discard class="Comparison Chain (Rust Clippy)" 
    WARNING_FILTER += discard class="Comparison to Empty (Rust Clippy)" 
    WARNING_FILTER += discard class="Confusing Method to Numeric Cast (Rust Clippy)" 
    WARNING_FILTER += discard class="Const Is Empty (Rust Clippy)" 
    WARNING_FILTER += discard class="Copy Iterator (Rust Clippy)" 
    WARNING_FILTER += discard class="Copy-Paste Error" 
    WARNING_FILTER += discard class="Crate in Macro Def (Rust Clippy)" 
    WARNING_FILTER += discard class="Create Dir (Rust Clippy)" 
    WARNING_FILTER += discard class="Crosspointer Transmute (Rust Clippy)" 
    WARNING_FILTER += discard class="Dbg Macro (Rust Clippy)" 
    WARNING_FILTER += discard class="Debug Assert With Mut Call (Rust Clippy)" 
    WARNING_FILTER += discard class="Decimal Literal Representation (Rust Clippy)" 
    WARNING_FILTER += discard class="Declare Interior Mutable Const (Rust Clippy)" 
    WARNING_FILTER += discard class="Default Constructed Unit Structs (Rust Clippy)" 
    WARNING_FILTER += discard class="Default Instead of Iter Empty (Rust Clippy)" 
    WARNING_FILTER += discard class="Default Numeric Fallback (Rust Clippy)" 
    WARNING_FILTER += discard class="Default Trait Access (Rust Clippy)" 
    WARNING_FILTER += discard class="Default Union Representation (Rust Clippy)" 
    WARNING_FILTER += discard class="Deprecated Cfg Attr (Rust Clippy)" 
    WARNING_FILTER += discard class="Deprecated Clippy Cfg Attr (Rust Clippy)" 
    WARNING_FILTER += discard class="Deprecated Semver (Rust Clippy)" 
    WARNING_FILTER += discard class="Deref Addrof (Rust Clippy)" 
    WARNING_FILTER += discard class="Deref By Slicing (Rust Clippy)" 
    WARNING_FILTER += discard class="Derivable Impls (Rust Clippy)" 
    WARNING_FILTER += discard class="Derive Ord Xor Partial Ord (Rust Clippy)" 
    WARNING_FILTER += discard class="Derive Partial Eq Without Eq (Rust Clippy)" 
    WARNING_FILTER += discard class="Derived Hash With Manual Eq (Rust Clippy)" 
    WARNING_FILTER += discard class="Disallowed Macros (Rust Clippy)" 
    WARNING_FILTER += discard class="Disallowed Methods (Rust Clippy)" 
    WARNING_FILTER += discard class="Disallowed Names (Rust Clippy)" 
    WARNING_FILTER += discard class="Disallowed Script Idents (Rust Clippy)" 
    WARNING_FILTER += discard class="Disallowed Types (Rust Clippy)" 
    WARNING_FILTER += discard class="Diverging Sub Expression (Rust Clippy)" 
    WARNING_FILTER += discard class="Doc Comment Double Space Linebreaks (Rust Clippy)" 
    WARNING_FILTER += discard class="Doc Include Without Cfg (Rust Clippy)" 
    WARNING_FILTER += discard class="Doc Lazy Continuation (Rust Clippy)" 
    WARNING_FILTER += discard class="Doc Link Code (Rust Clippy)" 
    WARNING_FILTER += discard class="Doc Link With Quotes (Rust Clippy)" 
    WARNING_FILTER += discard class="Doc Markdown (Rust Clippy)" 
    WARNING_FILTER += discard class="Doc Nested Refdefs (Rust Clippy)" 
    WARNING_FILTER += discard class="Doc Overindented List Items (Rust Clippy)" 
    WARNING_FILTER += discard class="Doc Suspicious Footnotes (Rust Clippy)" 
    WARNING_FILTER += discard class="Double Comparisons (Rust Clippy)" 
    WARNING_FILTER += discard class="Double Ended Iterator Last (Rust Clippy)" 
    WARNING_FILTER += discard class="Double Must Use (Rust Clippy)" 
    WARNING_FILTER += discard class="Double Parens (Rust Clippy)" 
    WARNING_FILTER += discard class="Drain Collect (Rust Clippy)" 
    WARNING_FILTER += discard class="Drop Non Drop (Rust Clippy)" 
    WARNING_FILTER += discard class="Duplicate Mod (Rust Clippy)" 
    WARNING_FILTER += discard class="Duplicate Underscore Argument (Rust Clippy)" 
    WARNING_FILTER += discard class="Duplicated Attributes (Rust Clippy)" 
    WARNING_FILTER += discard class="Duration Subsec (Rust Clippy)" 
    WARNING_FILTER += discard class="Eager Transmute (Rust Clippy)" 
    WARNING_FILTER += discard class="Elidable Lifetime Names (Rust Clippy)" 
    WARNING_FILTER += discard class="Else If Without Else (Rust Clippy)" 
    WARNING_FILTER += discard class="Empty Docs (Rust Clippy)" 
    WARNING_FILTER += discard class="Empty Drop (Rust Clippy)" 
    WARNING_FILTER += discard class="Empty Enum (Rust Clippy)" 
    WARNING_FILTER += discard class="Empty Enum Variants With Brackets (Rust Clippy)" 
    WARNING_FILTER += discard class="Empty Line After Doc Comments (Rust Clippy)" 
    WARNING_FILTER += discard class="Empty Line After Outer Attr (Rust Clippy)" 
    WARNING_FILTER += discard class="Empty Loop (Rust Clippy)" 
    WARNING_FILTER += discard class="Empty Structs With Brackets (Rust Clippy)" 
    WARNING_FILTER += discard class="Enum Clike Unportable Variant (Rust Clippy)" 
    WARNING_FILTER += discard class="Enum Glob Use (Rust Clippy)" 
    WARNING_FILTER += discard class="Enum Variant Names (Rust Clippy)" 
    WARNING_FILTER += discard class="Eq Op (Rust Clippy)" 
    WARNING_FILTER += discard class="Equatable If Let (Rust Clippy)" 
    WARNING_FILTER += discard class="Erasing Op (Rust Clippy)" 
    WARNING_FILTER += discard class="Err Expect (Rust Clippy)" 
    WARNING_FILTER += discard class="Error Impl Error (Rust Clippy)" 
    WARNING_FILTER += discard class="Excessive Nesting (Rust Clippy)" 
    WARNING_FILTER += discard class="Excessive Precision (Rust Clippy)" 
    WARNING_FILTER += discard class="Exhaustive Enums (Rust Clippy)" 
    WARNING_FILTER += discard class="Exhaustive Structs (Rust Clippy)" 
    WARNING_FILTER += discard class="Exit (Rust Clippy)" 
    WARNING_FILTER += discard class="Expect Fun Call (Rust Clippy)" 
    WARNING_FILTER += discard class="Expect Used (Rust Clippy)" 
    WARNING_FILTER += discard class="Expl Impl Clone on Copy (Rust Clippy)" 
    WARNING_FILTER += discard class="Explicit Auto Deref (Rust Clippy)" 
    WARNING_FILTER += discard class="Explicit Counter Loop (Rust Clippy)" 
    WARNING_FILTER += discard class="Explicit Deref Methods (Rust Clippy)" 
    WARNING_FILTER += discard class="Explicit Into Iter Loop (Rust Clippy)" 
    WARNING_FILTER += discard class="Explicit Iter Loop (Rust Clippy)" 
    WARNING_FILTER += discard class="Explicit Write (Rust Clippy)" 
    WARNING_FILTER += discard class="Extend From Slice (Rust Clippy)" 
    WARNING_FILTER += discard class="Extend With Drain (Rust Clippy)" 
    WARNING_FILTER += discard class="Extra Unused Lifetimes (Rust Clippy)" 
    WARNING_FILTER += discard class="Extra Unused Type Parameters (Rust Clippy)" 
    WARNING_FILTER += discard class="Fallible Impl From (Rust Clippy)" 
    WARNING_FILTER += discard class="Field Reassign With Default (Rust Clippy)" 
    WARNING_FILTER += discard class="Field Scoped Visibility Modifiers (Rust Clippy)" 
    WARNING_FILTER += discard class="Filetype Is File (Rust Clippy)" 
    WARNING_FILTER += discard class="Filter Map Bool Then (Rust Clippy)" 
    WARNING_FILTER += discard class="Filter Map Identity (Rust Clippy)" 
    WARNING_FILTER += discard class="Filter Map Next (Rust Clippy)" 
    WARNING_FILTER += discard class="Filter Next (Rust Clippy)" 
    WARNING_FILTER += discard class="Flat Map Identity (Rust Clippy)" 
    WARNING_FILTER += discard class="Flat Map Option (Rust Clippy)" 
    WARNING_FILTER += discard class="Float Arithmetic (Rust Clippy)" 
    WARNING_FILTER += discard class="Float Cmp (Rust Clippy)" 
    WARNING_FILTER += discard class="Float Cmp Const (Rust Clippy)" 
    WARNING_FILTER += discard class="Float Equality Without Abs (Rust Clippy)" 
    WARNING_FILTER += discard class="Fn Params Excessive Bools (Rust Clippy)" 
    WARNING_FILTER += discard class="Fn to Numeric Cast (Rust Clippy)" 
    WARNING_FILTER += discard class="Fn to Numeric Cast Any (Rust Clippy)" 
    WARNING_FILTER += discard class="Fn to Numeric Cast With Truncation (Rust Clippy)" 
    WARNING_FILTER += discard class="For Kv Map (Rust Clippy)" 
    WARNING_FILTER += discard class="Forget Non Drop (Rust Clippy)" 
    WARNING_FILTER += discard class="Format Collect (Rust Clippy)" 
    WARNING_FILTER += discard class="Format Push String (Rust Clippy)" 
    WARNING_FILTER += discard class="Format in Format Args (Rust Clippy)" 
    WARNING_FILTER += discard class="Four Forward Slashes (Rust Clippy)" 
    WARNING_FILTER += discard class="From Iter Instead of Collect (Rust Clippy)" 
    WARNING_FILTER += discard class="From Over Into (Rust Clippy)" 
    WARNING_FILTER += discard class="From Raw With Void Ptr (Rust Clippy)" 
    WARNING_FILTER += discard class="From Str Radix 10 (Rust Clippy)" 
    WARNING_FILTER += discard class="Future Not Send (Rust Clippy)" 
    WARNING_FILTER += discard class="Get First (Rust Clippy)" 
    WARNING_FILTER += discard class="Get Last With Len (Rust Clippy)" 
    WARNING_FILTER += discard class="Get Unwrap (Rust Clippy)" 
    WARNING_FILTER += discard class="Host Endian Bytes (Rust Clippy)" 
    WARNING_FILTER += discard class="Identity Op (Rust Clippy)" 
    WARNING_FILTER += discard class="If Let Mutex (Rust Clippy)" 
    WARNING_FILTER += discard class="If Not Else (Rust Clippy)" 
    WARNING_FILTER += discard class="If Same Then Else (Rust Clippy)" 
    WARNING_FILTER += discard class="If Then Some Else None (Rust Clippy)" 
    WARNING_FILTER += discard class="Ifs Same Cond (Rust Clippy)" 
    WARNING_FILTER += discard class="Ignore Without Reason (Rust Clippy)" 
    WARNING_FILTER += discard class="Ignored Unit Patterns (Rust Clippy)" 
    WARNING_FILTER += discard class="Impl Hash Borrow With Str and Bytes (Rust Clippy)" 
    WARNING_FILTER += discard class="Impl Trait in Params (Rust Clippy)" 
    WARNING_FILTER += discard class="Implicit Clone (Rust Clippy)" 
    WARNING_FILTER += discard class="Implicit Hasher (Rust Clippy)" 
    WARNING_FILTER += discard class="Implicit Return (Rust Clippy)" 
    WARNING_FILTER += discard class="Implicit Saturating Add (Rust Clippy)" 
    WARNING_FILTER += discard class="Implicit Saturating Sub (Rust Clippy)" 
    WARNING_FILTER += discard class="Implied Bounds in Impls (Rust Clippy)" 
    WARNING_FILTER += discard class="Impossible Comparisons (Rust Clippy)" 
    WARNING_FILTER += discard class="Imprecise Flops (Rust Clippy)" 
    WARNING_FILTER += discard class="Incompatible Msrv (Rust Clippy)" 
    WARNING_FILTER += discard class="Inconsistent Digit Grouping (Rust Clippy)" 
    WARNING_FILTER += discard class="Inconsistent Struct Constructor (Rust Clippy)" 
    WARNING_FILTER += discard class="Index Refutable Slice (Rust Clippy)" 
    WARNING_FILTER += discard class="Indexing Slicing (Rust Clippy)" 
    WARNING_FILTER += discard class="Ineffective Bit Mask (Rust Clippy)" 
    WARNING_FILTER += discard class="Ineffective Open Options (Rust Clippy)" 
    WARNING_FILTER += discard class="Inefficient to String (Rust Clippy)" 
    WARNING_FILTER += discard class="Infallible Destructuring Match (Rust Clippy)" 
    WARNING_FILTER += discard class="Infallible Try From (Rust Clippy)" 
    WARNING_FILTER += discard class="Infinite Iter (Rust Clippy)" 
    WARNING_FILTER += discard class="Infinite Loop (Rust Clippy)" 
    WARNING_FILTER += discard class="Inherent to String (Rust Clippy)" 
    WARNING_FILTER += discard class="Inherent to String Shadow Display (Rust Clippy)" 
    WARNING_FILTER += discard class="Init Numbered Fields (Rust Clippy)" 
    WARNING_FILTER += discard class="Inline Always (Rust Clippy)" 
    WARNING_FILTER += discard class="Inline Asm X86 Att Syntax (Rust Clippy)" 
    WARNING_FILTER += discard class="Inline Asm X86 Intel Syntax (Rust Clippy)" 
    WARNING_FILTER += discard class="Inline Fn Without Body (Rust Clippy)" 
    WARNING_FILTER += discard class="Inspect for Each (Rust Clippy)" 
    WARNING_FILTER += discard class="Int Plus One (Rust Clippy)" 
    WARNING_FILTER += discard class="Integer Division (Rust Clippy)" 
    WARNING_FILTER += discard class="Integer Division Remainder Used (Rust Clippy)" 
    WARNING_FILTER += discard class="Into Iter Without Iter (Rust Clippy)" 
    WARNING_FILTER += discard class="Into Iter on Ref (Rust Clippy)" 
    WARNING_FILTER += discard class="Invalid Regex (Rust Clippy)" 
    WARNING_FILTER += discard class="Invalid Upcast Comparisons (Rust Clippy)" 
    WARNING_FILTER += discard class="Inverted Saturating Sub (Rust Clippy)" 
    WARNING_FILTER += discard class="Invisible Characters (Rust Clippy)" 
    WARNING_FILTER += discard class="Io Other Error (Rust Clippy)" 
    WARNING_FILTER += discard class="Ip Constant (Rust Clippy)" 
    WARNING_FILTER += discard class="Is Digit Ascii Radix (Rust Clippy)" 
    WARNING_FILTER += discard class="Items After Statements (Rust Clippy)" 
    WARNING_FILTER += discard class="Items After Test Module (Rust Clippy)" 
    WARNING_FILTER += discard class="Iter Cloned Collect (Rust Clippy)" 
    WARNING_FILTER += discard class="Iter Count (Rust Clippy)" 
    WARNING_FILTER += discard class="Iter Filter Is Ok (Rust Clippy)" 
    WARNING_FILTER += discard class="Iter Filter Is Some (Rust Clippy)" 
    WARNING_FILTER += discard class="Iter Kv Map (Rust Clippy)" 
    WARNING_FILTER += discard class="Iter Next Loop (Rust Clippy)" 
    WARNING_FILTER += discard class="Iter Next Slice (Rust Clippy)" 
    WARNING_FILTER += discard class="Iter Not Returning Iterator (Rust Clippy)" 
    WARNING_FILTER += discard class="Iter Nth (Rust Clippy)" 
    WARNING_FILTER += discard class="Iter Nth Zero (Rust Clippy)" 
    WARNING_FILTER += discard class="Iter Out of Bounds (Rust Clippy)" 
    WARNING_FILTER += discard class="Iter Over Hash Type (Rust Clippy)" 
    WARNING_FILTER += discard class="Iter Overeager Cloned (Rust Clippy)" 
    WARNING_FILTER += discard class="Iter Skip Next (Rust Clippy)" 
    WARNING_FILTER += discard class="Iter Skip Zero (Rust Clippy)" 
    WARNING_FILTER += discard class="Iter With Drain (Rust Clippy)" 
    WARNING_FILTER += discard class="Iter Without Into Iter (Rust Clippy)" 
    WARNING_FILTER += discard class="Iter on Empty Collections (Rust Clippy)" 
    WARNING_FILTER += discard class="Iter on Single Items (Rust Clippy)" 
    WARNING_FILTER += discard class="Iterator Step By Zero (Rust Clippy)" 
    WARNING_FILTER += discard class="Join Absolute Paths (Rust Clippy)" 
    WARNING_FILTER += discard class="Just Underscores and Digits (Rust Clippy)" 
    WARNING_FILTER += discard class="Large Const Arrays (Rust Clippy)" 
    WARNING_FILTER += discard class="Large Digit Groups (Rust Clippy)" 
    WARNING_FILTER += discard class="Large Enum Variant (Rust Clippy)" 
    WARNING_FILTER += discard class="Large Futures (Rust Clippy)" 
    WARNING_FILTER += discard class="Large Include File (Rust Clippy)" 
    WARNING_FILTER += discard class="Large Stack Arrays (Rust Clippy)" 
    WARNING_FILTER += discard class="Large Stack Frames (Rust Clippy)" 
    WARNING_FILTER += discard class="Large Types Passed By Value (Rust Clippy)" 
    WARNING_FILTER += discard class="Legacy Numeric Constants (Rust Clippy)" 
    WARNING_FILTER += discard class="Len Without Is Empty (Rust Clippy)" 
    WARNING_FILTER += discard class="Len Zero (Rust Clippy)" 
    WARNING_FILTER += discard class="Let Underscore Future (Rust Clippy)" 
    WARNING_FILTER += discard class="Let Underscore Lock (Rust Clippy)" 
    WARNING_FILTER += discard class="Let Underscore Must Use (Rust Clippy)" 
    WARNING_FILTER += discard class="Let Underscore Untyped (Rust Clippy)" 
    WARNING_FILTER += discard class="Let Unit Value (Rust Clippy)" 
    WARNING_FILTER += discard class="Let With Type Underscore (Rust Clippy)" 
    WARNING_FILTER += discard class="Let and Return (Rust Clippy)" 
    WARNING_FILTER += discard class="Lines Filter Map Ok (Rust Clippy)" 
    WARNING_FILTER += discard class="Linkedlist (Rust Clippy)" 
    WARNING_FILTER += discard class="Lint Groups Priority (Rust Clippy)" 
    WARNING_FILTER += discard class="Literal String With Formatting Args (Rust Clippy)" 
    WARNING_FILTER += discard class="Little Endian Bytes (Rust Clippy)" 
    WARNING_FILTER += discard class="Lossy Float Literal (Rust Clippy)" 
    WARNING_FILTER += discard class="Macro Metavars in Unsafe (Rust Clippy)" 
    WARNING_FILTER += discard class="Macro Use Imports (Rust Clippy)" 
    WARNING_FILTER += discard class="Main Recursion (Rust Clippy)" 
    WARNING_FILTER += discard class="Manual Abs Diff (Rust Clippy)" 
    WARNING_FILTER += discard class="Manual Assert (Rust Clippy)" 
    WARNING_FILTER += discard class="Manual Async Fn (Rust Clippy)" 
    WARNING_FILTER += discard class="Manual Bits (Rust Clippy)" 
    WARNING_FILTER += discard class="Manual C Str Literals (Rust Clippy)" 
    WARNING_FILTER += discard class="Manual Clamp (Rust Clippy)" 
    WARNING_FILTER += discard class="Manual Contains (Rust Clippy)" 
    WARNING_FILTER += discard class="Manual Dangling Ptr (Rust Clippy)" 
    WARNING_FILTER += discard class="Manual Div Ceil (Rust Clippy)" 
    WARNING_FILTER += discard class="Manual Filter (Rust Clippy)" 
    WARNING_FILTER += discard class="Manual Filter Map (Rust Clippy)" 
    WARNING_FILTER += discard class="Manual Find (Rust Clippy)" 
    WARNING_FILTER += discard class="Manual Find Map (Rust Clippy)" 
    WARNING_FILTER += discard class="Manual Flatten (Rust Clippy)" 
    WARNING_FILTER += discard class="Manual Hash One (Rust Clippy)" 
    WARNING_FILTER += discard class="Manual Ignore Case Cmp (Rust Clippy)" 
    WARNING_FILTER += discard class="Manual Inspect (Rust Clippy)" 
    WARNING_FILTER += discard class="Manual Instant Elapsed (Rust Clippy)" 
    WARNING_FILTER += discard class="Manual Is Ascii Check (Rust Clippy)" 
    WARNING_FILTER += discard class="Manual Is Finite (Rust Clippy)" 
    WARNING_FILTER += discard class="Manual Is Infinite (Rust Clippy)" 
    WARNING_FILTER += discard class="Manual Is Power of Two (Rust Clippy)" 
    WARNING_FILTER += discard class="Manual Is Variant and (Rust Clippy)" 
    WARNING_FILTER += discard class="Manual Let Else (Rust Clippy)" 
    WARNING_FILTER += discard class="Manual Main Separator Str (Rust Clippy)" 
    WARNING_FILTER += discard class="Manual Map (Rust Clippy)" 
    WARNING_FILTER += discard class="Manual Memcpy (Rust Clippy)" 
    WARNING_FILTER += discard class="Manual Midpoint (Rust Clippy)" 
    WARNING_FILTER += discard class="Manual Next Back (Rust Clippy)" 
    WARNING_FILTER += discard class="Manual Non Exhaustive (Rust Clippy)" 
    WARNING_FILTER += discard class="Manual Ok Err (Rust Clippy)" 
    WARNING_FILTER += discard class="Manual Ok or (Rust Clippy)" 
    WARNING_FILTER += discard class="Manual Option As Slice (Rust Clippy)" 
    WARNING_FILTER += discard class="Manual Pattern Char Comparison (Rust Clippy)" 
    WARNING_FILTER += discard class="Manual Range Contains (Rust Clippy)" 
    WARNING_FILTER += discard class="Manual Range Patterns (Rust Clippy)" 
    WARNING_FILTER += discard class="Manual Rem Euclid (Rust Clippy)" 
    WARNING_FILTER += discard class="Manual Repeat N (Rust Clippy)" 
    WARNING_FILTER += discard class="Manual Retain (Rust Clippy)" 
    WARNING_FILTER += discard class="Manual Rotate (Rust Clippy)" 
    WARNING_FILTER += discard class="Manual Saturating Arithmetic (Rust Clippy)" 
    WARNING_FILTER += discard class="Manual Slice Fill (Rust Clippy)" 
    WARNING_FILTER += discard class="Manual Slice Size Calculation (Rust Clippy)" 
    WARNING_FILTER += discard class="Manual Split Once (Rust Clippy)" 
    WARNING_FILTER += discard class="Manual Str Repeat (Rust Clippy)" 
    WARNING_FILTER += discard class="Manual String New (Rust Clippy)" 
    WARNING_FILTER += discard class="Manual Strip (Rust Clippy)" 
    WARNING_FILTER += discard class="Manual Swap (Rust Clippy)" 
    WARNING_FILTER += discard class="Manual Try Fold (Rust Clippy)" 
    WARNING_FILTER += discard class="Manual Unwrap or (Rust Clippy)" 
    WARNING_FILTER += discard class="Manual Unwrap or Default (Rust Clippy)" 
    WARNING_FILTER += discard class="Manual While Let Some (Rust Clippy)" 
    WARNING_FILTER += discard class="Many Single Char Names (Rust Clippy)" 
    WARNING_FILTER += discard class="Map All Any Identity (Rust Clippy)" 
    WARNING_FILTER += discard class="Map Clone (Rust Clippy)" 
    WARNING_FILTER += discard class="Map Collect Result Unit (Rust Clippy)" 
    WARNING_FILTER += discard class="Map Entry (Rust Clippy)" 
    WARNING_FILTER += discard class="Map Err Ignore (Rust Clippy)" 
    WARNING_FILTER += discard class="Map Flatten (Rust Clippy)" 
    WARNING_FILTER += discard class="Map Identity (Rust Clippy)" 
    WARNING_FILTER += discard class="Map Unwrap or (Rust Clippy)" 
    WARNING_FILTER += discard class="Map With Unused Argument Over Ranges (Rust Clippy)" 
    WARNING_FILTER += discard class="Match As Ref (Rust Clippy)" 
    WARNING_FILTER += discard class="Match Bool (Rust Clippy)" 
    WARNING_FILTER += discard class="Match Like Matches Macro (Rust Clippy)" 
    WARNING_FILTER += discard class="Match Overlapping Arm (Rust Clippy)" 
    WARNING_FILTER += discard class="Match Ref Pats (Rust Clippy)" 
    WARNING_FILTER += discard class="Match Result Ok (Rust Clippy)" 
    WARNING_FILTER += discard class="Match Same Arms (Rust Clippy)" 
    WARNING_FILTER += discard class="Match Single Binding (Rust Clippy)" 
    WARNING_FILTER += discard class="Match Str Case Mismatch (Rust Clippy)" 
    WARNING_FILTER += discard class="Match Wild Err Arm (Rust Clippy)" 
    WARNING_FILTER += discard class="Match Wildcard for Single Variants (Rust Clippy)" 
    WARNING_FILTER += discard class="Match on Vec Items (Rust Clippy)" 
    WARNING_FILTER += discard class="Maybe Infinite Iter (Rust Clippy)" 
    WARNING_FILTER += discard class="Mem Forget (Rust Clippy)" 
    WARNING_FILTER += discard class="Mem Replace Option With None (Rust Clippy)" 
    WARNING_FILTER += discard class="Mem Replace Option With Some (Rust Clippy)" 
    WARNING_FILTER += discard class="Mem Replace With Default (Rust Clippy)" 
    WARNING_FILTER += discard class="Mem Replace With Uninit (Rust Clippy)" 
    WARNING_FILTER += discard class="Min Ident Chars (Rust Clippy)" 
    WARNING_FILTER += discard class="Min Max (Rust Clippy)" 
    WARNING_FILTER += discard class="Misaligned Transmute (Rust Clippy)" 
    WARNING_FILTER += discard class="Mismatching Type Param Order (Rust Clippy)" 
    WARNING_FILTER += discard class="Misnamed Getters (Rust Clippy)" 
    WARNING_FILTER += discard class="Misrefactored Assign Op (Rust Clippy)" 
    WARNING_FILTER += discard class="Missing Assert Message (Rust Clippy)" 
    WARNING_FILTER += discard class="Missing Asserts for Indexing (Rust Clippy)" 
    WARNING_FILTER += discard class="Missing Const for Fn (Rust Clippy)" 
    WARNING_FILTER += discard class="Missing Const for Thread Local (Rust Clippy)" 
    WARNING_FILTER += discard class="Missing Docs in Private Items (Rust Clippy)" 
    WARNING_FILTER += discard class="Missing Enforced Import Renames (Rust Clippy)" 
    WARNING_FILTER += discard class="Missing Errors Doc (Rust Clippy)" 
    WARNING_FILTER += discard class="Missing Fields in Debug (Rust Clippy)" 
    WARNING_FILTER += discard class="Missing Inline in Public Items (Rust Clippy)" 
    WARNING_FILTER += discard class="Missing Panics Doc (Rust Clippy)" 
    WARNING_FILTER += discard class="Missing Safety Doc (Rust Clippy)" 
    WARNING_FILTER += discard class="Missing Spin Loop (Rust Clippy)" 
    WARNING_FILTER += discard class="Missing Trait Methods (Rust Clippy)" 
    WARNING_FILTER += discard class="Missing Transmute Annotations (Rust Clippy)" 
    WARNING_FILTER += discard class="Mistyped Literal Suffixes (Rust Clippy)" 
    WARNING_FILTER += discard class="Mixed Attributes Style (Rust Clippy)" 
    WARNING_FILTER += discard class="Mixed Case Hex Literals (Rust Clippy)" 
    WARNING_FILTER += discard class="Mixed Read Write in Expression (Rust Clippy)" 
    WARNING_FILTER += discard class="Mod Module Files (Rust Clippy)" 
    WARNING_FILTER += discard class="Module Inception (Rust Clippy)" 
    WARNING_FILTER += discard class="Module Name Repetitions (Rust Clippy)" 
    WARNING_FILTER += discard class="Modulo Arithmetic (Rust Clippy)" 
    WARNING_FILTER += discard class="Modulo One (Rust Clippy)" 
    WARNING_FILTER += discard class="Multi Assignments (Rust Clippy)" 
    WARNING_FILTER += discard class="Multiple Bound Locations (Rust Clippy)" 
    WARNING_FILTER += discard class="Multiple Crate Versions (Rust Clippy)" 
    WARNING_FILTER += discard class="Multiple Inherent Impl (Rust Clippy)" 
    WARNING_FILTER += discard class="Multiple Unsafe Ops Per Block (Rust Clippy)" 
    WARNING_FILTER += discard class="Must Use Candidate (Rust Clippy)" 
    WARNING_FILTER += discard class="Must Use Unit (Rust Clippy)" 
    WARNING_FILTER += discard class="Mut From Ref (Rust Clippy)" 
    WARNING_FILTER += discard class="Mut Mut (Rust Clippy)" 
    WARNING_FILTER += discard class="Mut Mutex Lock (Rust Clippy)" 
    WARNING_FILTER += discard class="Mut Range Bound (Rust Clippy)" 
    WARNING_FILTER += discard class="Mutable Key Type (Rust Clippy)" 
    WARNING_FILTER += discard class="Mutex Atomic (Rust Clippy)" 
    WARNING_FILTER += discard class="Mutex Integer (Rust Clippy)" 
    WARNING_FILTER += discard class="Naive Bytecount (Rust Clippy)" 
    WARNING_FILTER += discard class="Needless Arbitrary Self Type (Rust Clippy)" 
    WARNING_FILTER += discard class="Needless As Bytes (Rust Clippy)" 
    WARNING_FILTER += discard class="Needless Bitwise Bool (Rust Clippy)" 
    WARNING_FILTER += discard class="Needless Bool (Rust Clippy)" 
    WARNING_FILTER += discard class="Needless Bool Assign (Rust Clippy)" 
    WARNING_FILTER += discard class="Needless Borrow (Rust Clippy)" 
    WARNING_FILTER += discard class="Needless Borrowed Reference (Rust Clippy)" 
    WARNING_FILTER += discard class="Needless Borrows for Generic Args (Rust Clippy)" 
    WARNING_FILTER += discard class="Needless Character Iteration (Rust Clippy)" 
    WARNING_FILTER += discard class="Needless Collect (Rust Clippy)" 
    WARNING_FILTER += discard class="Needless Continue (Rust Clippy)" 
    WARNING_FILTER += discard class="Needless Doctest Main (Rust Clippy)" 
    WARNING_FILTER += discard class="Needless Else (Rust Clippy)" 
    WARNING_FILTER += discard class="Needless If (Rust Clippy)" 
    WARNING_FILTER += discard class="Needless Late Init (Rust Clippy)" 
    WARNING_FILTER += discard class="Needless Lifetimes (Rust Clippy)" 
    WARNING_FILTER += discard class="Needless Match (Rust Clippy)" 
    WARNING_FILTER += discard class="Needless Maybe Sized (Rust Clippy)" 
    WARNING_FILTER += discard class="Needless Option As Deref (Rust Clippy)" 
    WARNING_FILTER += discard class="Needless Option Take (Rust Clippy)" 
    WARNING_FILTER += discard class="Needless Parens on Range Literals (Rust Clippy)" 
    WARNING_FILTER += discard class="Needless Pass By Ref Mut (Rust Clippy)" 
    WARNING_FILTER += discard class="Needless Pass By Value (Rust Clippy)" 
    WARNING_FILTER += discard class="Needless Pub Self (Rust Clippy)" 
    WARNING_FILTER += discard class="Needless Question Mark (Rust Clippy)" 
    WARNING_FILTER += discard class="Needless Range Loop (Rust Clippy)" 
    WARNING_FILTER += discard class="Needless Raw String Hashes (Rust Clippy)" 
    WARNING_FILTER += discard class="Needless Raw Strings (Rust Clippy)" 
    WARNING_FILTER += discard class="Needless Return (Rust Clippy)" 
    WARNING_FILTER += discard class="Needless Return With Question Mark (Rust Clippy)" 
    WARNING_FILTER += discard class="Needless Splitn (Rust Clippy)" 
    WARNING_FILTER += discard class="Needless Update (Rust Clippy)" 
    WARNING_FILTER += discard class="Needless for Each (Rust Clippy)" 
    WARNING_FILTER += discard class="Neg Cmp Op on Partial Ord (Rust Clippy)" 
    WARNING_FILTER += discard class="Neg Multiply (Rust Clippy)" 
    WARNING_FILTER += discard class="Negative Feature Names (Rust Clippy)" 
    WARNING_FILTER += discard class="Never Loop (Rust Clippy)" 
    WARNING_FILTER += discard class="New Ret No Self (Rust Clippy)" 
    WARNING_FILTER += discard class="New Without Default (Rust Clippy)" 
    WARNING_FILTER += discard class="No Effect (Rust Clippy)" 
    WARNING_FILTER += discard class="No Effect Replace (Rust Clippy)" 
    WARNING_FILTER += discard class="No Effect Underscore Binding (Rust Clippy)" 
    WARNING_FILTER += discard class="No Mangle With Rust Abi (Rust Clippy)" 
    WARNING_FILTER += discard class="Non Ascii Literal (Rust Clippy)" 
    WARNING_FILTER += discard class="Non Canonical Clone Impl (Rust Clippy)" 
    WARNING_FILTER += discard class="Non Canonical Partial Ord Impl (Rust Clippy)" 
    WARNING_FILTER += discard class="Non Minimal Cfg (Rust Clippy)" 
    WARNING_FILTER += discard class="Non Octal Unix Permissions (Rust Clippy)" 
    WARNING_FILTER += discard class="Non Send Fields in Send Ty (Rust Clippy)" 
    WARNING_FILTER += discard class="Non Std Lazy Statics (Rust Clippy)" 
    WARNING_FILTER += discard class="Non Zero Suggestions (Rust Clippy)" 
    WARNING_FILTER += discard class="Nonminimal Bool (Rust Clippy)" 
    WARNING_FILTER += discard class="Nonsensical Open Options (Rust Clippy)" 
    WARNING_FILTER += discard class="Nonstandard Macro Braces (Rust Clippy)" 
    WARNING_FILTER += discard class="Not Unsafe Ptr Arg Deref (Rust Clippy)" 
    WARNING_FILTER += discard class="Obfuscated If Else (Rust Clippy)" 
    WARNING_FILTER += discard class="Octal Escapes (Rust Clippy)" 
    WARNING_FILTER += discard class="Ok Expect (Rust Clippy)" 
    WARNING_FILTER += discard class="Only Used in Recursion (Rust Clippy)" 
    WARNING_FILTER += discard class="Op Ref (Rust Clippy)" 
    WARNING_FILTER += discard class="Option As Ref Cloned (Rust Clippy)" 
    WARNING_FILTER += discard class="Option As Ref Deref (Rust Clippy)" 
    WARNING_FILTER += discard class="Option Env Unwrap (Rust Clippy)" 
    WARNING_FILTER += discard class="Option Filter Map (Rust Clippy)" 
    WARNING_FILTER += discard class="Option If Let Else (Rust Clippy)" 
    WARNING_FILTER += discard class="Option Map Unit Fn (Rust Clippy)" 
    WARNING_FILTER += discard class="Option Map or Err Ok (Rust Clippy)" 
    WARNING_FILTER += discard class="Option Map or None (Rust Clippy)" 
    WARNING_FILTER += discard class="Option Option (Rust Clippy)" 
    WARNING_FILTER += discard class="Or Fun Call (Rust Clippy)" 
    WARNING_FILTER += discard class="Or Then Unwrap (Rust Clippy)" 
    WARNING_FILTER += discard class="Out of Bounds Indexing (Rust Clippy)" 
    WARNING_FILTER += discard class="Overly Complex Bool Expr (Rust Clippy)" 
    WARNING_FILTER += discard class="Owned Cow (Rust Clippy)" 
    WARNING_FILTER += discard class="Panic (Rust Clippy)" 
    WARNING_FILTER += discard class="Panic in Result Fn (Rust Clippy)" 
    WARNING_FILTER += discard class="Panicking Overflow Checks (Rust Clippy)" 
    WARNING_FILTER += discard class="Panicking Unwrap (Rust Clippy)" 
    WARNING_FILTER += discard class="Partial Pub Fields (Rust Clippy)" 
    WARNING_FILTER += discard class="Partialeq Ne Impl (Rust Clippy)" 
    WARNING_FILTER += discard class="Partialeq to None (Rust Clippy)" 
    WARNING_FILTER += discard class="Path Buf Push Overwrite (Rust Clippy)" 
    WARNING_FILTER += discard class="Path Ends With Ext (Rust Clippy)" 
    WARNING_FILTER += discard class="Pathbuf Init Then Push (Rust Clippy)" 
    WARNING_FILTER += discard class="Pattern Type Mismatch (Rust Clippy)" 
    WARNING_FILTER += discard class="Permissions Set Readonly False (Rust Clippy)" 
    WARNING_FILTER += discard class="Pointer Format (Rust Clippy)" 
    WARNING_FILTER += discard class="Pointers in Nomem Asm Block (Rust Clippy)" 
    WARNING_FILTER += discard class="Possible Missing Comma (Rust Clippy)" 
    WARNING_FILTER += discard class="Precedence (Rust Clippy)" 
    WARNING_FILTER += discard class="Precedence Bits (Rust Clippy)" 
    WARNING_FILTER += discard class="Print Literal (Rust Clippy)" 
    WARNING_FILTER += discard class="Print Stderr (Rust Clippy)" 
    WARNING_FILTER += discard class="Print Stdout (Rust Clippy)" 
    WARNING_FILTER += discard class="Print With Newline (Rust Clippy)" 
    WARNING_FILTER += discard class="Print in Format Impl (Rust Clippy)" 
    WARNING_FILTER += discard class="Println Empty String (Rust Clippy)" 
    WARNING_FILTER += discard class="Ptr Arg (Rust Clippy)" 
    WARNING_FILTER += discard class="Ptr As Ptr (Rust Clippy)" 
    WARNING_FILTER += discard class="Ptr Cast Constness (Rust Clippy)" 
    WARNING_FILTER += discard class="Ptr Eq (Rust Clippy)" 
    WARNING_FILTER += discard class="Ptr Offset With Cast (Rust Clippy)" 
    WARNING_FILTER += discard class="Pub Enum Variant Names (Rust Clippy)" 
    WARNING_FILTER += discard class="Pub Underscore Fields (Rust Clippy)" 
    WARNING_FILTER += discard class="Pub Use (Rust Clippy)" 
    WARNING_FILTER += discard class="Pub With Shorthand (Rust Clippy)" 
    WARNING_FILTER += discard class="Pub Without Shorthand (Rust Clippy)" 
    WARNING_FILTER += discard class="Question Mark (Rust Clippy)" 
    WARNING_FILTER += discard class="Question Mark Used (Rust Clippy)" 
    WARNING_FILTER += discard class="Range Minus One (Rust Clippy)" 
    WARNING_FILTER += discard class="Range Plus One (Rust Clippy)" 
    WARNING_FILTER += discard class="Range Step By Zero (Rust Clippy)" 
    WARNING_FILTER += discard class="Range Zip With Len (Rust Clippy)" 
    WARNING_FILTER += discard class="Rc Buffer (Rust Clippy)" 
    WARNING_FILTER += discard class="Rc Clone in Vec Init (Rust Clippy)" 
    WARNING_FILTER += discard class="Rc Mutex (Rust Clippy)" 
    WARNING_FILTER += discard class="Read Line Without Trim (Rust Clippy)" 
    WARNING_FILTER += discard class="Read Zero Byte Vec (Rust Clippy)" 
    WARNING_FILTER += discard class="Readonly Write Lock (Rust Clippy)" 
    WARNING_FILTER += discard class="Recursive Format Impl (Rust Clippy)" 
    WARNING_FILTER += discard class="Redundant Allocation (Rust Clippy)" 
    WARNING_FILTER += discard class="Redundant As Str (Rust Clippy)" 
    WARNING_FILTER += discard class="Redundant Async Block (Rust Clippy)" 
    WARNING_FILTER += discard class="Redundant Clone (Rust Clippy)" 
    WARNING_FILTER += discard class="Redundant Closure (Rust Clippy)" 
    WARNING_FILTER += discard class="Redundant Closure Call (Rust Clippy)" 
    WARNING_FILTER += discard class="Redundant Closure for Method Calls (Rust Clippy)" 
    WARNING_FILTER += discard class="Redundant Comparisons (Rust Clippy)" 
    WARNING_FILTER += discard class="Redundant Else (Rust Clippy)" 
    WARNING_FILTER += discard class="Redundant Feature Names (Rust Clippy)" 
    WARNING_FILTER += discard class="Redundant Field Names (Rust Clippy)" 
    WARNING_FILTER += discard class="Redundant Guards (Rust Clippy)" 
    WARNING_FILTER += discard class="Redundant Locals (Rust Clippy)" 
    WARNING_FILTER += discard class="Redundant Pattern (Rust Clippy)" 
    WARNING_FILTER += discard class="Redundant Pattern Matching (Rust Clippy)" 
    WARNING_FILTER += discard class="Redundant Pub Crate (Rust Clippy)" 
    WARNING_FILTER += discard class="Redundant Slicing (Rust Clippy)" 
    WARNING_FILTER += discard class="Redundant Static Lifetimes (Rust Clippy)" 
    WARNING_FILTER += discard class="Redundant Test Prefix (Rust Clippy)" 
    WARNING_FILTER += discard class="Redundant Type Annotations (Rust Clippy)" 
    WARNING_FILTER += discard class="Redundant at Rest Pattern (Rust Clippy)" 
    WARNING_FILTER += discard class="Ref As Ptr (Rust Clippy)" 
    WARNING_FILTER += discard class="Ref Binding to Reference (Rust Clippy)" 
    WARNING_FILTER += discard class="Ref Option (Rust Clippy)" 
    WARNING_FILTER += discard class="Ref Option Ref (Rust Clippy)" 
    WARNING_FILTER += discard class="Ref Patterns (Rust Clippy)" 
    WARNING_FILTER += discard class="Regex Creation in Loops (Rust Clippy)" 
    WARNING_FILTER += discard class="Regex Macro (Rust Clippy)" 
    WARNING_FILTER += discard class="Renamed Function Params (Rust Clippy)" 
    WARNING_FILTER += discard class="Repeat Once (Rust Clippy)" 
    WARNING_FILTER += discard class="Repeat Vec With Capacity (Rust Clippy)" 
    WARNING_FILTER += discard class="Replace Consts (Rust Clippy)" 
    WARNING_FILTER += discard class="Repr Packed Without Abi (Rust Clippy)" 
    WARNING_FILTER += discard class="Reserve After Initialization (Rust Clippy)" 
    WARNING_FILTER += discard class="Rest Pat in Fully Bound Structs (Rust Clippy)" 
    WARNING_FILTER += discard class="Result Filter Map (Rust Clippy)" 
    WARNING_FILTER += discard class="Result Large Err (Rust Clippy)" 
    WARNING_FILTER += discard class="Result Map Unit Fn (Rust Clippy)" 
    WARNING_FILTER += discard class="Result Map or Into Option (Rust Clippy)" 
    WARNING_FILTER += discard class="Result Unit Err (Rust Clippy)" 
    WARNING_FILTER += discard class="Return Self Not Must Use (Rust Clippy)" 
    WARNING_FILTER += discard class="Return and Then (Rust Clippy)" 
    WARNING_FILTER += discard class="Reversed Empty Ranges (Rust Clippy)" 
    WARNING_FILTER += discard class="Same Functions in If Condition (Rust Clippy)" 
    WARNING_FILTER += discard class="Same Item Push (Rust Clippy)" 
    WARNING_FILTER += discard class="Same Name Method (Rust Clippy)" 
    WARNING_FILTER += discard class="Search Is Some (Rust Clippy)" 
    WARNING_FILTER += discard class="Seek From Current (Rust Clippy)" 
    WARNING_FILTER += discard class="Seek to Start Instead of Rewind (Rust Clippy)" 
    WARNING_FILTER += discard class="Self Assignment (Rust Clippy)" 
    WARNING_FILTER += discard class="Self Named Constructors (Rust Clippy)" 
    WARNING_FILTER += discard class="Self Named Module Files (Rust Clippy)" 
    WARNING_FILTER += discard class="Semicolon If Nothing Returned (Rust Clippy)" 
    WARNING_FILTER += discard class="Semicolon Inside Block (Rust Clippy)" 
    WARNING_FILTER += discard class="Semicolon Outside Block (Rust Clippy)" 
    WARNING_FILTER += discard class="Separated Literal Suffix (Rust Clippy)" 
    WARNING_FILTER += discard class="Serde Api Misuse (Rust Clippy)" 
    WARNING_FILTER += discard class="Set Contains or Insert (Rust Clippy)" 
    WARNING_FILTER += discard class="Shadow Reuse (Rust Clippy)" 
    WARNING_FILTER += discard class="Shadow Same (Rust Clippy)" 
    WARNING_FILTER += discard class="Shadow Unrelated (Rust Clippy)" 
    WARNING_FILTER += discard class="Short Circuit Statement (Rust Clippy)" 
    WARNING_FILTER += discard class="Should Assert Eq (Rust Clippy)" 
    WARNING_FILTER += discard class="Should Implement Trait (Rust Clippy)" 
    WARNING_FILTER += discard class="Should Panic Without Expect (Rust Clippy)" 
    WARNING_FILTER += discard class="Significant Drop Tightening (Rust Clippy)" 
    WARNING_FILTER += discard class="Significant Drop in Scrutinee (Rust Clippy)" 
    WARNING_FILTER += discard class="Similar Names (Rust Clippy)" 
    WARNING_FILTER += discard class="Single Call Fn (Rust Clippy)" 
    WARNING_FILTER += discard class="Single Char Add Str (Rust Clippy)" 
    WARNING_FILTER += discard class="Single Char Lifetime Names (Rust Clippy)" 
    WARNING_FILTER += discard class="Single Char Pattern (Rust Clippy)" 
    WARNING_FILTER += discard class="Single Component Path Imports (Rust Clippy)" 
    WARNING_FILTER += discard class="Single Element Loop (Rust Clippy)" 
    WARNING_FILTER += discard class="Single Match (Rust Clippy)" 
    WARNING_FILTER += discard class="Single Match Else (Rust Clippy)" 
    WARNING_FILTER += discard class="Single Option Map (Rust Clippy)" 
    WARNING_FILTER += discard class="Single Range in Vec Init (Rust Clippy)" 
    WARNING_FILTER += discard class="Size of Ref (Rust Clippy)" 
    WARNING_FILTER += discard class="Size of in Element Count (Rust Clippy)" 
    WARNING_FILTER += discard class="Skip While Next (Rust Clippy)" 
    WARNING_FILTER += discard class="Sliced String As Bytes (Rust Clippy)" 
    WARNING_FILTER += discard class="Slow Vector Initialization (Rust Clippy)" 
    WARNING_FILTER += discard class="Stable Sort Primitive (Rust Clippy)" 
    WARNING_FILTER += discard class="Std Instead of Alloc (Rust Clippy)" 
    WARNING_FILTER += discard class="Std Instead of Core (Rust Clippy)" 
    WARNING_FILTER += discard class="Str Split at Newline (Rust Clippy)" 
    WARNING_FILTER += discard class="Str to String (Rust Clippy)" 
    WARNING_FILTER += discard class="String Add (Rust Clippy)" 
    WARNING_FILTER += discard class="String Add Assign (Rust Clippy)" 
    WARNING_FILTER += discard class="String Extend Chars (Rust Clippy)" 
    WARNING_FILTER += discard class="String From Utf8 As Bytes (Rust Clippy)" 
    WARNING_FILTER += discard class="String Lit As Bytes (Rust Clippy)" 
    WARNING_FILTER += discard class="String Lit Chars Any (Rust Clippy)" 
    WARNING_FILTER += discard class="String Slice (Rust Clippy)" 
    WARNING_FILTER += discard class="String to String (Rust Clippy)" 
    WARNING_FILTER += discard class="Strlen on C Strings (Rust Clippy)" 
    WARNING_FILTER += discard class="Struct Excessive Bools (Rust Clippy)" 
    WARNING_FILTER += discard class="Struct Field Names (Rust Clippy)" 
    WARNING_FILTER += discard class="Suboptimal Flops (Rust Clippy)" 
    WARNING_FILTER += discard class="Suspicious Arithmetic Impl (Rust Clippy)" 
    WARNING_FILTER += discard class="Suspicious Assignment Formatting (Rust Clippy)" 
    WARNING_FILTER += discard class="Suspicious Command Arg Space (Rust Clippy)" 
    WARNING_FILTER += discard class="Suspicious Doc Comments (Rust Clippy)" 
    WARNING_FILTER += discard class="Suspicious Else Formatting (Rust Clippy)" 
    WARNING_FILTER += discard class="Suspicious Map (Rust Clippy)" 
    WARNING_FILTER += discard class="Suspicious Op Assign Impl (Rust Clippy)" 
    WARNING_FILTER += discard class="Suspicious Open Options (Rust Clippy)" 
    WARNING_FILTER += discard class="Suspicious Operation Groupings (Rust Clippy)" 
    WARNING_FILTER += discard class="Suspicious Splitn (Rust Clippy)" 
    WARNING_FILTER += discard class="Suspicious Unary Op Formatting (Rust Clippy)" 
    WARNING_FILTER += discard class="Suspicious Xor Used As Pow (Rust Clippy)" 
    WARNING_FILTER += discard class="Suspicious to Owned (Rust Clippy)" 
    WARNING_FILTER += discard class="Swap Ptr to Ref (Rust Clippy)" 
    WARNING_FILTER += discard class="Swap With Temporary (Rust Clippy)" 
    WARNING_FILTER += discard class="Tabs in Doc Comments (Rust Clippy)" 
    WARNING_FILTER += discard class="Temporary Assignment (Rust Clippy)" 
    WARNING_FILTER += discard class="Test Attr in Doctest (Rust Clippy)" 
    WARNING_FILTER += discard class="Tests Outside Test Module (Rust Clippy)" 
    WARNING_FILTER += discard class="To Digit Is Some (Rust Clippy)" 
    WARNING_FILTER += discard class="To String Trait Impl (Rust Clippy)" 
    WARNING_FILTER += discard class="To String in Format Args (Rust Clippy)" 
    WARNING_FILTER += discard class="Todo (Rust Clippy)" 
    WARNING_FILTER += discard class="Too Long First Doc Paragraph (Rust Clippy)" 
    WARNING_FILTER += discard class="Too Many Arguments (Rust Clippy)" 
    WARNING_FILTER += discard class="Too Many Lines (Rust Clippy)" 
    WARNING_FILTER += discard class="Toplevel Ref Arg (Rust Clippy)" 
    WARNING_FILTER += discard class="Trailing Empty Array (Rust Clippy)" 
    WARNING_FILTER += discard class="Trait Duplication in Bounds (Rust Clippy)" 
    WARNING_FILTER += discard class="Transmute Bytes to Str (Rust Clippy)" 
    WARNING_FILTER += discard class="Transmute Int to Bool (Rust Clippy)" 
    WARNING_FILTER += discard class="Transmute Int to Non Zero (Rust Clippy)" 
    WARNING_FILTER += discard class="Transmute Null to Fn (Rust Clippy)" 
    WARNING_FILTER += discard class="Transmute Ptr to Ptr (Rust Clippy)" 
    WARNING_FILTER += discard class="Transmute Ptr to Ref (Rust Clippy)" 
    WARNING_FILTER += discard class="Transmute Undefined Repr (Rust Clippy)" 
    WARNING_FILTER += discard class="Transmutes Expressible As Ptr Casts (Rust Clippy)" 
    WARNING_FILTER += discard class="Transmuting Null (Rust Clippy)" 
    WARNING_FILTER += discard class="Trim Split Whitespace (Rust Clippy)" 
    WARNING_FILTER += discard class="Trivial Regex (Rust Clippy)" 
    WARNING_FILTER += discard class="Trivially Copy Pass By Ref (Rust Clippy)" 
    WARNING_FILTER += discard class="Try Err (Rust Clippy)" 
    WARNING_FILTER += discard class="Tuple Array Conversions (Rust Clippy)" 
    WARNING_FILTER += discard class="Type Complexity (Rust Clippy)" 
    WARNING_FILTER += discard class="Type Id on Box (Rust Clippy)" 
    WARNING_FILTER += discard class="Type Repetition in Bounds (Rust Clippy)" 
    WARNING_FILTER += discard class="Unbuffered Bytes (Rust Clippy)" 
    WARNING_FILTER += discard class="Unchecked Duration Subtraction (Rust Clippy)" 
    WARNING_FILTER += discard class="Unconditional Recursion (Rust Clippy)" 
    WARNING_FILTER += discard class="Undocumented Unsafe Blocks (Rust Clippy)" 
    WARNING_FILTER += discard class="Unicode Not Nfc (Rust Clippy)" 
    WARNING_FILTER += discard class="Unimplemented (Rust Clippy)" 
    WARNING_FILTER += discard class="Uninhabited References (Rust Clippy)" 
    WARNING_FILTER += discard class="Uninit Assumed Init (Rust Clippy)" 
    WARNING_FILTER += discard class="Uninit Vec (Rust Clippy)" 
    WARNING_FILTER += discard class="Uninlined Format Args (Rust Clippy)" 
    WARNING_FILTER += discard class="Unit Arg (Rust Clippy)" 
    WARNING_FILTER += discard class="Unit Cmp (Rust Clippy)" 
    WARNING_FILTER += discard class="Unit Hash (Rust Clippy)" 
    WARNING_FILTER += discard class="Unit Return Expecting Ord (Rust Clippy)" 
    WARNING_FILTER += discard class="Unnecessary Box Returns (Rust Clippy)" 
    WARNING_FILTER += discard class="Unnecessary Cast (Rust Clippy)" 
    WARNING_FILTER += discard class="Unnecessary Clippy Cfg (Rust Clippy)" 
    WARNING_FILTER += discard class="Unnecessary Debug Formatting (Rust Clippy)" 
    WARNING_FILTER += discard class="Unnecessary Fallible Conversions (Rust Clippy)" 
    WARNING_FILTER += discard class="Unnecessary Filter Map (Rust Clippy)" 
    WARNING_FILTER += discard class="Unnecessary Find Map (Rust Clippy)" 
    WARNING_FILTER += discard class="Unnecessary First Then Check (Rust Clippy)" 
    WARNING_FILTER += discard class="Unnecessary Fold (Rust Clippy)" 
    WARNING_FILTER += discard class="Unnecessary Get Then Check (Rust Clippy)" 
    WARNING_FILTER += discard class="Unnecessary Join (Rust Clippy)" 
    WARNING_FILTER += discard class="Unnecessary Lazy Evaluations (Rust Clippy)" 
    WARNING_FILTER += discard class="Unnecessary Literal Bound (Rust Clippy)" 
    WARNING_FILTER += discard class="Unnecessary Literal Unwrap (Rust Clippy)" 
    WARNING_FILTER += discard class="Unnecessary Map on Constructor (Rust Clippy)" 
    WARNING_FILTER += discard class="Unnecessary Map or (Rust Clippy)" 
    WARNING_FILTER += discard class="Unnecessary Min or Max (Rust Clippy)" 
    WARNING_FILTER += discard class="Unnecessary Mut Passed (Rust Clippy)" 
    WARNING_FILTER += discard class="Unnecessary Operation (Rust Clippy)" 
    WARNING_FILTER += discard class="Unnecessary Owned Empty Strings (Rust Clippy)" 
    WARNING_FILTER += discard class="Unnecessary Result Map or Else (Rust Clippy)" 
    WARNING_FILTER += discard class="Unnecessary Safety Comment (Rust Clippy)" 
    WARNING_FILTER += discard class="Unnecessary Safety Doc (Rust Clippy)" 
    WARNING_FILTER += discard class="Unnecessary Self Imports (Rust Clippy)" 
    WARNING_FILTER += discard class="Unnecessary Semicolon (Rust Clippy)" 
    WARNING_FILTER += discard class="Unnecessary Sort By (Rust Clippy)" 
    WARNING_FILTER += discard class="Unnecessary Struct Initialization (Rust Clippy)" 
    WARNING_FILTER += discard class="Unnecessary Unwrap (Rust Clippy)" 
    WARNING_FILTER += discard class="Unnecessary Wraps (Rust Clippy)" 
    WARNING_FILTER += discard class="Unnecessary to Owned (Rust Clippy)" 
    WARNING_FILTER += discard class="Unneeded Field Pattern (Rust Clippy)" 
    WARNING_FILTER += discard class="Unneeded Struct Pattern (Rust Clippy)" 
    WARNING_FILTER += discard class="Unneeded Wildcard Pattern (Rust Clippy)" 
    WARNING_FILTER += discard class="Unnested or Patterns (Rust Clippy)" 
    WARNING_FILTER += discard class="Unreachable (Rust Clippy)" 
    WARNING_FILTER += discard class="Unreadable Literal (Rust Clippy)" 
    WARNING_FILTER += discard class="Unsafe Derive Deserialize (Rust Clippy)" 
    WARNING_FILTER += discard class="Unsafe Removed From Name (Rust Clippy)" 
    WARNING_FILTER += discard class="Unsafe Vector Initialization (Rust Clippy)" 
    WARNING_FILTER += discard class="Unseparated Literal Suffix (Rust Clippy)" 
    WARNING_FILTER += discard class="Unsound Collection Transmute (Rust Clippy)" 
    WARNING_FILTER += discard class="Unstable As Mut Slice (Rust Clippy)" 
    WARNING_FILTER += discard class="Unstable As Slice (Rust Clippy)" 
    WARNING_FILTER += discard class="Unused Async (Rust Clippy)" 
    WARNING_FILTER += discard class="Unused Collect (Rust Clippy)" 
    WARNING_FILTER += discard class="Unused Enumerate Index (Rust Clippy)" 
    WARNING_FILTER += discard class="Unused Format Specs (Rust Clippy)" 
    WARNING_FILTER += discard class="Unused Io Amount (Rust Clippy)" 
    WARNING_FILTER += discard class="Unused Peekable (Rust Clippy)" 
    WARNING_FILTER += discard class="Unused Result Ok (Rust Clippy)" 
    WARNING_FILTER += discard class="Unused Rounding (Rust Clippy)" 
    WARNING_FILTER += discard class="Unused Self (Rust Clippy)" 
    WARNING_FILTER += discard class="Unused Trait Names (Rust Clippy)" 
    WARNING_FILTER += discard class="Unused Unit (Rust Clippy)" 
    WARNING_FILTER += discard class="Unusual Byte Groupings (Rust Clippy)" 
    WARNING_FILTER += discard class="Unwrap Used (Rust Clippy)" 
    WARNING_FILTER += discard class="Unwrap in Result (Rust Clippy)" 
    WARNING_FILTER += discard class="Unwrap or Default (Rust Clippy)" 
    WARNING_FILTER += discard class="Upper Case Acronyms (Rust Clippy)" 
    WARNING_FILTER += discard class="Use Debug (Rust Clippy)" 
    WARNING_FILTER += discard class="Use Self (Rust Clippy)" 
    WARNING_FILTER += discard class="Used Underscore Binding (Rust Clippy)" 
    WARNING_FILTER += discard class="Used Underscore Items (Rust Clippy)" 
    WARNING_FILTER += discard class="Useless Asref (Rust Clippy)" 
    WARNING_FILTER += discard class="Useless Attribute (Rust Clippy)" 
    WARNING_FILTER += discard class="Useless Concat (Rust Clippy)" 
    WARNING_FILTER += discard class="Useless Conversion (Rust Clippy)" 
    WARNING_FILTER += discard class="Useless Format (Rust Clippy)" 
    WARNING_FILTER += discard class="Useless Let If Seq (Rust Clippy)" 
    WARNING_FILTER += discard class="Useless Nonzero New Unchecked (Rust Clippy)" 
    WARNING_FILTER += discard class="Useless Transmute (Rust Clippy)" 
    WARNING_FILTER += discard class="Useless Vec (Rust Clippy)" 
    WARNING_FILTER += discard class="Vec Box (Rust Clippy)" 
    WARNING_FILTER += discard class="Vec Init Then Push (Rust Clippy)" 
    WARNING_FILTER += discard class="Vec Resize to Zero (Rust Clippy)" 
    WARNING_FILTER += discard class="Verbose Bit Mask (Rust Clippy)" 
    WARNING_FILTER += discard class="Verbose File Reads (Rust Clippy)" 
    WARNING_FILTER += discard class="Waker Clone Wake (Rust Clippy)" 
    WARNING_FILTER += discard class="While Float (Rust Clippy)" 
    WARNING_FILTER += discard class="While Immutable Condition (Rust Clippy)" 
    WARNING_FILTER += discard class="While Let Loop (Rust Clippy)" 
    WARNING_FILTER += discard class="While Let on Iterator (Rust Clippy)" 
    WARNING_FILTER += discard class="Wildcard Dependencies (Rust Clippy)" 
    WARNING_FILTER += discard class="Wildcard Enum Match Arm (Rust Clippy)" 
    WARNING_FILTER += discard class="Wildcard Imports (Rust Clippy)" 
    WARNING_FILTER += discard class="Wildcard in or Patterns (Rust Clippy)" 
    WARNING_FILTER += discard class="Write Literal (Rust Clippy)" 
    WARNING_FILTER += discard class="Write With Newline (Rust Clippy)" 
    WARNING_FILTER += discard class="Writeln Empty String (Rust Clippy)" 
    WARNING_FILTER += discard class="Wrong Pub Self Convention (Rust Clippy)" 
    WARNING_FILTER += discard class="Wrong Self Convention (Rust Clippy)" 
    WARNING_FILTER += discard class="Wrong Transmute (Rust Clippy)" 
    WARNING_FILTER += discard class="Zero Divided By Zero (Rust Clippy)" 
    WARNING_FILTER += discard class="Zero Prefixed Literal (Rust Clippy)" 
    WARNING_FILTER += discard class="Zero Ptr (Rust Clippy)" 
    WARNING_FILTER += discard class="Zero Repeat Side Effects (Rust Clippy)" 
    WARNING_FILTER += discard class="Zero Sized Map Values (Rust Clippy)" 
    WARNING_FILTER += discard class="Zombie Processes (Rust Clippy)" 
    WARNING_FILTER += discard class="Zst Offset (Rust Clippy)" 

 (JavaScript warning classes) 
    WARNING_FILTER += discard class="Accessor Pairs (ESLint)" 
    WARNING_FILTER += discard class="Array Bracket Newline (ESLint)" 
    WARNING_FILTER += discard class="Array Bracket Spacing (ESLint)" 
    WARNING_FILTER += discard class="Array Callback Return (ESLint)" 
    WARNING_FILTER += discard class="Array Element Newline (ESLint)" 
    WARNING_FILTER += discard class="Arrow Body Style (ESLint)" 
    WARNING_FILTER += discard class="Arrow Parens (ESLint)" 
    WARNING_FILTER += discard class="Arrow Spacing (ESLint)" 
    WARNING_FILTER += discard class="Block Scoped Var (ESLint)" 
    WARNING_FILTER += discard class="Block Spacing (ESLint)" 
    WARNING_FILTER += discard class="Brace Style (ESLint)" 
    WARNING_FILTER += discard class="Callback Return (ESLint)" 
    WARNING_FILTER += discard class="Camelcase (ESLint)" 
    WARNING_FILTER += discard class="Capitalized Comments (ESLint)" 
    WARNING_FILTER += discard class="Class Methods Use This (ESLint)" 
    WARNING_FILTER += discard class="Comma Dangle (ESLint)" 
    WARNING_FILTER += discard class="Comma Spacing (ESLint)" 
    WARNING_FILTER += discard class="Comma Style (ESLint)" 
    WARNING_FILTER += discard class="Complexity (ESLint)" 
    WARNING_FILTER += discard class="Computed Property Spacing (ESLint)" 
    WARNING_FILTER += discard class="Consistent Return (ESLint)" 
    WARNING_FILTER += discard class="Consistent This (ESLint)" 
    WARNING_FILTER += discard class="Constructor Super (ESLint)" 
    WARNING_FILTER += discard class="Copy-Paste Error" 
    WARNING_FILTER += discard class="Curly (ESLint)" 
    WARNING_FILTER += discard class="Default Case (ESLint)" 
    WARNING_FILTER += discard class="Default Case Last (ESLint)" 
    WARNING_FILTER += discard class="Default Param Last (ESLint)" 
    WARNING_FILTER += discard class="Dot Location (ESLint)" 
    WARNING_FILTER += discard class="Dot Notation (ESLint)" 
    WARNING_FILTER += discard class="Eol Last (ESLint)" 
    WARNING_FILTER += discard class="Equal-Equal-Equal (ESLint)" 
    WARNING_FILTER += discard class="For Direction (ESLint)" 
    WARNING_FILTER += discard class="Func Call Spacing (ESLint)" 
    WARNING_FILTER += discard class="Func Name Matching (ESLint)" 
    WARNING_FILTER += discard class="Func Names (ESLint)" 
    WARNING_FILTER += discard class="Func Style (ESLint)" 
    WARNING_FILTER += discard class="Function Call Argument Newline (ESLint)" 
    WARNING_FILTER += discard class="Function Paren Newline (ESLint)" 
    WARNING_FILTER += discard class="Generator Star Spacing (ESLint)" 
    WARNING_FILTER += discard class="Getter Return (ESLint)" 
    WARNING_FILTER += discard class="Global Require (ESLint)" 
    WARNING_FILTER += discard class="Grouped Accessor Pairs (ESLint)" 
    WARNING_FILTER += discard class="Guard for in (ESLint)" 
    WARNING_FILTER += discard class="Handle Callback Err (ESLint)" 
    WARNING_FILTER += discard class="Id Blacklist (ESLint)" 
    WARNING_FILTER += discard class="Id Denylist (ESLint)" 
    WARNING_FILTER += discard class="Id Length (ESLint)" 
    WARNING_FILTER += discard class="Id Match (ESLint)" 
    WARNING_FILTER += discard class="Implicit Arrow Linebreak (ESLint)" 
    WARNING_FILTER += discard class="Indent (ESLint)" 
    WARNING_FILTER += discard class="Indent Legacy (ESLint)" 
    WARNING_FILTER += discard class="Init Declarations (ESLint)" 
    WARNING_FILTER += discard class="Jsx Quotes (ESLint)" 
    WARNING_FILTER += discard class="Key Spacing (ESLint)" 
    WARNING_FILTER += discard class="Keyword Spacing (ESLint)" 
    WARNING_FILTER += discard class="Line Comment Position (ESLint)" 
    WARNING_FILTER += discard class="Linebreak Style (ESLint)" 
    WARNING_FILTER += discard class="Lines Around Comment (ESLint)" 
    WARNING_FILTER += discard class="Lines Around Directive (ESLint)" 
    WARNING_FILTER += discard class="Lines Between Class Members (ESLint)" 
    WARNING_FILTER += discard class="Logical Assignment Operators (ESLint)" 
    WARNING_FILTER += discard class="Max Classes Per File (ESLint)" 
    WARNING_FILTER += discard class="Max Depth (ESLint)" 
    WARNING_FILTER += discard class="Max Len (ESLint)" 
    WARNING_FILTER += discard class="Max Lines (ESLint)" 
    WARNING_FILTER += discard class="Max Lines Per Function (ESLint)" 
    WARNING_FILTER += discard class="Max Nested Callbacks (ESLint)" 
    WARNING_FILTER += discard class="Max Params (ESLint)" 
    WARNING_FILTER += discard class="Max Statements (ESLint)" 
    WARNING_FILTER += discard class="Max Statements Per Line (ESLint)" 
    WARNING_FILTER += discard class="Multiline Comment Style (ESLint)" 
    WARNING_FILTER += discard class="Multiline Ternary (ESLint)" 
    WARNING_FILTER += discard class="New Cap (ESLint)" 
    WARNING_FILTER += discard class="New Parens (ESLint)" 
    WARNING_FILTER += discard class="Newline After Var (ESLint)" 
    WARNING_FILTER += discard class="Newline Before Return (ESLint)" 
    WARNING_FILTER += discard class="Newline Per Chained Call (ESLint)" 
    WARNING_FILTER += discard class="No Alert (ESLint)" 
    WARNING_FILTER += discard class="No Array Constructor (ESLint)" 
    WARNING_FILTER += discard class="No Async Promise Executor (ESLint)" 
    WARNING_FILTER += discard class="No Await in Loop (ESLint)" 
    WARNING_FILTER += discard class="No Bitwise (ESLint)" 
    WARNING_FILTER += discard class="No Buffer Constructor (ESLint)" 
    WARNING_FILTER += discard class="No Caller (ESLint)" 
    WARNING_FILTER += discard class="No Case Declarations (ESLint)" 
    WARNING_FILTER += discard class="No Catch Shadow (ESLint)" 
    WARNING_FILTER += discard class="No Class Assign (ESLint)" 
    WARNING_FILTER += discard class="No Compare Neg Zero (ESLint)" 
    WARNING_FILTER += discard class="No Cond Assign (ESLint)" 
    WARNING_FILTER += discard class="No Confusing Arrow (ESLint)" 
    WARNING_FILTER += discard class="No Console (ESLint)" 
    WARNING_FILTER += discard class="No Const Assign (ESLint)" 
    WARNING_FILTER += discard class="No Constant Binary Expression (ESLint)" 
    WARNING_FILTER += discard class="No Constant Condition (ESLint)" 
    WARNING_FILTER += discard class="No Constructor Return (ESLint)" 
    WARNING_FILTER += discard class="No Continue (ESLint)" 
    WARNING_FILTER += discard class="No Control Regex (ESLint)" 
    WARNING_FILTER += discard class="No Debugger (ESLint)" 
    WARNING_FILTER += discard class="No Delete Var (ESLint)" 
    WARNING_FILTER += discard class="No Div Regex (ESLint)" 
    WARNING_FILTER += discard class="No Dupe Args (ESLint)" 
    WARNING_FILTER += discard class="No Dupe Class Members (ESLint)" 
    WARNING_FILTER += discard class="No Dupe Else If (ESLint)" 
    WARNING_FILTER += discard class="No Dupe Keys (ESLint)" 
    WARNING_FILTER += discard class="No Duplicate Case (ESLint)" 
    WARNING_FILTER += discard class="No Duplicate Imports (ESLint)" 
    WARNING_FILTER += discard class="No Else Return (ESLint)" 
    WARNING_FILTER += discard class="No Empty (ESLint)" 
    WARNING_FILTER += discard class="No Empty Character Class (ESLint)" 
    WARNING_FILTER += discard class="No Empty Function (ESLint)" 
    WARNING_FILTER += discard class="No Empty Pattern (ESLint)" 
    WARNING_FILTER += discard class="No Empty Static Block (ESLint)" 
    WARNING_FILTER += discard class="No Eq Null (ESLint)" 
    WARNING_FILTER += discard class="No Eval (ESLint)" 
    WARNING_FILTER += discard class="No Ex Assign (ESLint)" 
    WARNING_FILTER += discard class="No Extend Native (ESLint)" 
    WARNING_FILTER += discard class="No Extra Bind (ESLint)" 
    WARNING_FILTER += discard class="No Extra Boolean Cast (ESLint)" 
    WARNING_FILTER += discard class="No Extra Label (ESLint)" 
    WARNING_FILTER += discard class="No Extra Parens (ESLint)" 
    WARNING_FILTER += discard class="No Extra Semi (ESLint)" 
    WARNING_FILTER += discard class="No Fallthrough (ESLint)" 
    WARNING_FILTER += discard class="No Floating Decimal (ESLint)" 
    WARNING_FILTER += discard class="No Func Assign (ESLint)" 
    WARNING_FILTER += discard class="No Global Assign (ESLint)" 
    WARNING_FILTER += discard class="No Implicit Coercion (ESLint)" 
    WARNING_FILTER += discard class="No Implicit Globals (ESLint)" 
    WARNING_FILTER += discard class="No Implied Eval (ESLint)" 
    WARNING_FILTER += discard class="No Import Assign (ESLint)" 
    WARNING_FILTER += discard class="No Inline Comments (ESLint)" 
    WARNING_FILTER += discard class="No Inner Declarations (ESLint)" 
    WARNING_FILTER += discard class="No Invalid Regexp (ESLint)" 
    WARNING_FILTER += discard class="No Invalid This (ESLint)" 
    WARNING_FILTER += discard class="No Irregular Whitespace (ESLint)" 
    WARNING_FILTER += discard class="No Iterator (ESLint)" 
    WARNING_FILTER += discard class="No Label Var (ESLint)" 
    WARNING_FILTER += discard class="No Labels (ESLint)" 
    WARNING_FILTER += discard class="No Lone Blocks (ESLint)" 
    WARNING_FILTER += discard class="No Lonely If (ESLint)" 
    WARNING_FILTER += discard class="No Loop Func (ESLint)" 
    WARNING_FILTER += discard class="No Loss of Precision (ESLint)" 
    WARNING_FILTER += discard class="No Magic Numbers (ESLint)" 
    WARNING_FILTER += discard class="No Misleading Character Class (ESLint)" 
    WARNING_FILTER += discard class="No Mixed Operators (ESLint)" 
    WARNING_FILTER += discard class="No Mixed Requires (ESLint)" 
    WARNING_FILTER += discard class="No Mixed Spaces and Tabs (ESLint)" 
    WARNING_FILTER += discard class="No Multi Assign (ESLint)" 
    WARNING_FILTER += discard class="No Multi Spaces (ESLint)" 
    WARNING_FILTER += discard class="No Multi Str (ESLint)" 
    WARNING_FILTER += discard class="No Multiple Empty Lines (ESLint)" 
    WARNING_FILTER += discard class="No Native Reassign (ESLint)" 
    WARNING_FILTER += discard class="No Negated Condition (ESLint)" 
    WARNING_FILTER += discard class="No Negated in Lhs (ESLint)" 
    WARNING_FILTER += discard class="No Nested Ternary (ESLint)" 
    WARNING_FILTER += discard class="No New (ESLint)" 
    WARNING_FILTER += discard class="No New Func (ESLint)" 
    WARNING_FILTER += discard class="No New Native Nonconstructor (ESLint)" 
    WARNING_FILTER += discard class="No New Object (ESLint)" 
    WARNING_FILTER += discard class="No New Require (ESLint)" 
    WARNING_FILTER += discard class="No New Symbol (ESLint)" 
    WARNING_FILTER += discard class="No New Wrappers (ESLint)" 
    WARNING_FILTER += discard class="No Nonoctal Decimal Escape (ESLint)" 
    WARNING_FILTER += discard class="No Obj Calls (ESLint)" 
    WARNING_FILTER += discard class="No Object Constructor (ESLint)" 
    WARNING_FILTER += discard class="No Octal (ESLint)" 
    WARNING_FILTER += discard class="No Octal Escape (ESLint)" 
    WARNING_FILTER += discard class="No Param Reassign (ESLint)" 
    WARNING_FILTER += discard class="No Path Concat (ESLint)" 
    WARNING_FILTER += discard class="No Plusplus (ESLint)" 
    WARNING_FILTER += discard class="No Process Env (ESLint)" 
    WARNING_FILTER += discard class="No Process Exit (ESLint)" 
    WARNING_FILTER += discard class="No Promise Executor Return (ESLint)" 
    WARNING_FILTER += discard class="No Proto (ESLint)" 
    WARNING_FILTER += discard class="No Prototype Builtins (ESLint)" 
    WARNING_FILTER += discard class="No Redeclare (ESLint)" 
    WARNING_FILTER += discard class="No Regex Spaces (ESLint)" 
    WARNING_FILTER += discard class="No Restricted Exports (ESLint)" 
    WARNING_FILTER += discard class="No Restricted Globals (ESLint)" 
    WARNING_FILTER += discard class="No Restricted Imports (ESLint)" 
    WARNING_FILTER += discard class="No Restricted Modules (ESLint)" 
    WARNING_FILTER += discard class="No Restricted Properties (ESLint)" 
    WARNING_FILTER += discard class="No Restricted Syntax (ESLint)" 
    WARNING_FILTER += discard class="No Return Assign (ESLint)" 
    WARNING_FILTER += discard class="No Return Await (ESLint)" 
    WARNING_FILTER += discard class="No Script Url (ESLint)" 
    WARNING_FILTER += discard class="No Self Assign (ESLint)" 
    WARNING_FILTER += discard class="No Self Compare (ESLint)" 
    WARNING_FILTER += discard class="No Sequences (ESLint)" 
    WARNING_FILTER += discard class="No Setter Return (ESLint)" 
    WARNING_FILTER += discard class="No Shadow (ESLint)" 
    WARNING_FILTER += discard class="No Shadow Restricted Names (ESLint)" 
    WARNING_FILTER += discard class="No Spaced Func (ESLint)" 
    WARNING_FILTER += discard class="No Sparse Arrays (ESLint)" 
    WARNING_FILTER += discard class="No Sync (ESLint)" 
    WARNING_FILTER += discard class="No Tabs (ESLint)" 
    WARNING_FILTER += discard class="No Template Curly in String (ESLint)" 
    WARNING_FILTER += discard class="No Ternary (ESLint)" 
    WARNING_FILTER += discard class="No This Before Super (ESLint)" 
    WARNING_FILTER += discard class="No Throw Literal (ESLint)" 
    WARNING_FILTER += discard class="No Trailing Spaces (ESLint)" 
    WARNING_FILTER += discard class="No Undef (ESLint)" 
    WARNING_FILTER += discard class="No Undef Init (ESLint)" 
    WARNING_FILTER += discard class="No Undefined (ESLint)" 
    WARNING_FILTER += discard class="No Underscore Dangle (ESLint)" 
    WARNING_FILTER += discard class="No Unexpected Multiline (ESLint)" 
    WARNING_FILTER += discard class="No Unmodified Loop Condition (ESLint)" 
    WARNING_FILTER += discard class="No Unneeded Ternary (ESLint)" 
    WARNING_FILTER += discard class="No Unreachable (ESLint)" 
    WARNING_FILTER += discard class="No Unreachable Loop (ESLint)" 
    WARNING_FILTER += discard class="No Unsafe Finally (ESLint)" 
    WARNING_FILTER += discard class="No Unsafe Negation (ESLint)" 
    WARNING_FILTER += discard class="No Unsafe Optional Chaining (ESLint)" 
    WARNING_FILTER += discard class="No Unused Expressions (ESLint)" 
    WARNING_FILTER += discard class="No Unused Labels (ESLint)" 
    WARNING_FILTER += discard class="No Unused Private Class Members (ESLint)" 
    WARNING_FILTER += discard class="No Unused Vars (ESLint)" 
    WARNING_FILTER += discard class="No Use Before Define (ESLint)" 
    WARNING_FILTER += discard class="No Useless Backreference (ESLint)" 
    WARNING_FILTER += discard class="No Useless Call (ESLint)" 
    WARNING_FILTER += discard class="No Useless Catch (ESLint)" 
    WARNING_FILTER += discard class="No Useless Computed Key (ESLint)" 
    WARNING_FILTER += discard class="No Useless Concat (ESLint)" 
    WARNING_FILTER += discard class="No Useless Constructor (ESLint)" 
    WARNING_FILTER += discard class="No Useless Escape (ESLint)" 
    WARNING_FILTER += discard class="No Useless Rename (ESLint)" 
    WARNING_FILTER += discard class="No Useless Return (ESLint)" 
    WARNING_FILTER += discard class="No Var (ESLint)" 
    WARNING_FILTER += discard class="No Void (ESLint)" 
    WARNING_FILTER += discard class="No Warning Comments (ESLint)" 
    WARNING_FILTER += discard class="No Whitespace Before Property (ESLint)" 
    WARNING_FILTER += discard class="No With (ESLint)" 
    WARNING_FILTER += discard class="Nonblock Statement Body Position (ESLint)" 
    WARNING_FILTER += discard class="Object Curly Newline (ESLint)" 
    WARNING_FILTER += discard class="Object Curly Spacing (ESLint)" 
    WARNING_FILTER += discard class="Object Property Newline (ESLint)" 
    WARNING_FILTER += discard class="Object Shorthand (ESLint)" 
    WARNING_FILTER += discard class="One Var (ESLint)" 
    WARNING_FILTER += discard class="One Var Declaration Per Line (ESLint)" 
    WARNING_FILTER += discard class="Operator Assignment (ESLint)" 
    WARNING_FILTER += discard class="Operator Linebreak (ESLint)" 
    WARNING_FILTER += discard class="Padded Blocks (ESLint)" 
    WARNING_FILTER += discard class="Padding Line Between Statements (ESLint)" 
    WARNING_FILTER += discard class="Prefer Arrow Callback (ESLint)" 
    WARNING_FILTER += discard class="Prefer Const (ESLint)" 
    WARNING_FILTER += discard class="Prefer Destructuring (ESLint)" 
    WARNING_FILTER += discard class="Prefer Exponentiation Operator (ESLint)" 
    WARNING_FILTER += discard class="Prefer Named Capture Group (ESLint)" 
    WARNING_FILTER += discard class="Prefer Numeric Literals (ESLint)" 
    WARNING_FILTER += discard class="Prefer Object Has Own (ESLint)" 
    WARNING_FILTER += discard class="Prefer Object Spread (ESLint)" 
    WARNING_FILTER += discard class="Prefer Promise Reject Errors (ESLint)" 
    WARNING_FILTER += discard class="Prefer Reflect (ESLint)" 
    WARNING_FILTER += discard class="Prefer Regex Literals (ESLint)" 
    WARNING_FILTER += discard class="Prefer Rest Params (ESLint)" 
    WARNING_FILTER += discard class="Prefer Spread (ESLint)" 
    WARNING_FILTER += discard class="Prefer Template (ESLint)" 
    WARNING_FILTER += discard class="Quote Props (ESLint)" 
    WARNING_FILTER += discard class="Quotes (ESLint)" 
    WARNING_FILTER += discard class="Radix (ESLint)" 
    WARNING_FILTER += discard class="Require Atomic Updates (ESLint)" 
    WARNING_FILTER += discard class="Require Await (ESLint)" 
    WARNING_FILTER += discard class="Require Jsdoc (ESLint)" 
    WARNING_FILTER += discard class="Require Unicode Regexp (ESLint)" 
    WARNING_FILTER += discard class="Require Yield (ESLint)" 
    WARNING_FILTER += discard class="Rest Spread Spacing (ESLint)" 
    WARNING_FILTER += discard class="Semi (ESLint)" 
    WARNING_FILTER += discard class="Semi Spacing (ESLint)" 
    WARNING_FILTER += discard class="Semi Style (ESLint)" 
    WARNING_FILTER += discard class="Sort Imports (ESLint)" 
    WARNING_FILTER += discard class="Sort Keys (ESLint)" 
    WARNING_FILTER += discard class="Sort Vars (ESLint)" 
    WARNING_FILTER += discard class="Space Before Blocks (ESLint)" 
    WARNING_FILTER += discard class="Space Before Function Paren (ESLint)" 
    WARNING_FILTER += discard class="Space Infix Ops (ESLint)" 
    WARNING_FILTER += discard class="Space Unary Ops (ESLint)" 
    WARNING_FILTER += discard class="Space in Parens (ESLint)" 
    WARNING_FILTER += discard class="Spaced Comment (ESLint)" 
    WARNING_FILTER += discard class="Strict (ESLint)" 
    WARNING_FILTER += discard class="Switch Colon Spacing (ESLint)" 
    WARNING_FILTER += discard class="Symbol Description (ESLint)" 
    WARNING_FILTER += discard class="Template Curly Spacing (ESLint)" 
    WARNING_FILTER += discard class="Template Tag Spacing (ESLint)" 
    WARNING_FILTER += discard class="Unicode Bom (ESLint)" 
    WARNING_FILTER += discard class="Use Isnan (ESLint)" 
    WARNING_FILTER += discard class="Valid Jsdoc (ESLint)" 
    WARNING_FILTER += discard class="Valid Typeof (ESLint)" 
    WARNING_FILTER += discard class="Vars on Top (ESLint)" 
    WARNING_FILTER += discard class="Wrap Iife (ESLint)" 
    WARNING_FILTER += discard class="Wrap Regex (ESLint)" 
    WARNING_FILTER += discard class="Yield Star Spacing (ESLint)" 
    WARNING_FILTER += discard class="Yoda (ESLint)" 

 (TypeScript warning classes) 
    WARNING_FILTER += discard class="Adjacent Overload Signatures (TS-ESLint)" 
    WARNING_FILTER += discard class="Array Type (TS-ESLint)" 
    WARNING_FILTER += discard class="Await Thenable (TS-ESLint)" 
    WARNING_FILTER += discard class="Ban Ts Comment (TS-ESLint)" 
    WARNING_FILTER += discard class="Ban Tslint Comment (TS-ESLint)" 
    WARNING_FILTER += discard class="Ban Types (TS-ESLint)" 
    WARNING_FILTER += discard class="Block Spacing (TS-ESLint)" 
    WARNING_FILTER += discard class="Brace Style (TS-ESLint)" 
    WARNING_FILTER += discard class="Class Literal Property Style (TS-ESLint)" 
    WARNING_FILTER += discard class="Class Methods Use This (TS-ESLint)" 
    WARNING_FILTER += discard class="Comma Dangle (TS-ESLint)" 
    WARNING_FILTER += discard class="Comma Spacing (TS-ESLint)" 
    WARNING_FILTER += discard class="Consistent Generic Constructors (TS-ESLint)" 
    WARNING_FILTER += discard class="Consistent Indexed Object Style (TS-ESLint)" 
    WARNING_FILTER += discard class="Consistent Type Assertions (TS-ESLint)" 
    WARNING_FILTER += discard class="Consistent Type Definitions (TS-ESLint)" 
    WARNING_FILTER += discard class="Consistent Type Exports (TS-ESLint)" 
    WARNING_FILTER += discard class="Consistent Type Imports (TS-ESLint)" 
    WARNING_FILTER += discard class="Copy-Paste Error" 
    WARNING_FILTER += discard class="Default Param Last (TS-ESLint)" 
    WARNING_FILTER += discard class="Dot Notation (TS-ESLint)" 
    WARNING_FILTER += discard class="Explicit Function Return Type (TS-ESLint)" 
    WARNING_FILTER += discard class="Explicit Member Accessibility (TS-ESLint)" 
    WARNING_FILTER += discard class="Explicit Module Boundary Types (TS-ESLint)" 
    WARNING_FILTER += discard class="Func Call Spacing (TS-ESLint)" 
    WARNING_FILTER += discard class="Indent (TS-ESLint)" 
    WARNING_FILTER += discard class="Init Declarations (TS-ESLint)" 
    WARNING_FILTER += discard class="Key Spacing (TS-ESLint)" 
    WARNING_FILTER += discard class="Keyword Spacing (TS-ESLint)" 
    WARNING_FILTER += discard class="Lines Around Comment (TS-ESLint)" 
    WARNING_FILTER += discard class="Lines Between Class Members (TS-ESLint)" 
    WARNING_FILTER += discard class="Max Params (TS-ESLint)" 
    WARNING_FILTER += discard class="Member Delimiter Style (TS-ESLint)" 
    WARNING_FILTER += discard class="Member Ordering (TS-ESLint)" 
    WARNING_FILTER += discard class="Method Signature Style (TS-ESLint)" 
    WARNING_FILTER += discard class="Naming Convention (TS-ESLint)" 
    WARNING_FILTER += discard class="No Array Constructor (TS-ESLint)" 
    WARNING_FILTER += discard class="No Array Delete (TS-ESLint)" 
    WARNING_FILTER += discard class="No Base to String (TS-ESLint)" 
    WARNING_FILTER += discard class="No Confusing Non Null Assertion (TS-ESLint)" 
    WARNING_FILTER += discard class="No Confusing Void Expression (TS-ESLint)" 
    WARNING_FILTER += discard class="No Dupe Class Members (TS-ESLint)" 
    WARNING_FILTER += discard class="No Duplicate Enum Values (TS-ESLint)" 
    WARNING_FILTER += discard class="No Duplicate Type Constituents (TS-ESLint)" 
    WARNING_FILTER += discard class="No Dynamic Delete (TS-ESLint)" 
    WARNING_FILTER += discard class="No Empty Function (TS-ESLint)" 
    WARNING_FILTER += discard class="No Empty Interface (TS-ESLint)" 
    WARNING_FILTER += discard class="No Explicit Any (TS-ESLint)" 
    WARNING_FILTER += discard class="No Extra Non Null Assertion (TS-ESLint)" 
    WARNING_FILTER += discard class="No Extra Parens (TS-ESLint)" 
    WARNING_FILTER += discard class="No Extra Semi (TS-ESLint)" 
    WARNING_FILTER += discard class="No Extraneous Class (TS-ESLint)" 
    WARNING_FILTER += discard class="No Floating Promises (TS-ESLint)" 
    WARNING_FILTER += discard class="No Implied Eval (TS-ESLint)" 
    WARNING_FILTER += discard class="No Import Type Side Effects (TS-ESLint)" 
    WARNING_FILTER += discard class="No Inferrable Types (TS-ESLint)" 
    WARNING_FILTER += discard class="No Invalid This (TS-ESLint)" 
    WARNING_FILTER += discard class="No Invalid Void Type (TS-ESLint)" 
    WARNING_FILTER += discard class="No Loop Func (TS-ESLint)" 
    WARNING_FILTER += discard class="No Loss of Precision (TS-ESLint)" 
    WARNING_FILTER += discard class="No Magic Numbers (TS-ESLint)" 
    WARNING_FILTER += discard class="No Meaningless Void Operator (TS-ESLint)" 
    WARNING_FILTER += discard class="No Misused New (TS-ESLint)" 
    WARNING_FILTER += discard class="No Misused Promises (TS-ESLint)" 
    WARNING_FILTER += discard class="No Mixed Enums (TS-ESLint)" 
    WARNING_FILTER += discard class="No Namespace (TS-ESLint)" 
    WARNING_FILTER += discard class="No Non Null Asserted Nullish Coalescing (TS-ESLint)" 
    WARNING_FILTER += discard class="No Non Null Asserted Optional Chain (TS-ESLint)" 
    WARNING_FILTER += discard class="No Non Null Assertion (TS-ESLint)" 
    WARNING_FILTER += discard class="No Redeclare (TS-ESLint)" 
    WARNING_FILTER += discard class="No Redundant Type Constituents (TS-ESLint)" 
    WARNING_FILTER += discard class="No Require Imports (TS-ESLint)" 
    WARNING_FILTER += discard class="No Restricted Imports (TS-ESLint)" 
    WARNING_FILTER += discard class="No Shadow (TS-ESLint)" 
    WARNING_FILTER += discard class="No This Alias (TS-ESLint)" 
    WARNING_FILTER += discard class="No Throw Literal (TS-ESLint)" 
    WARNING_FILTER += discard class="No Type Alias (TS-ESLint)" 
    WARNING_FILTER += discard class="No Unnecessary Boolean Literal Compare (TS-ESLint)" 
    WARNING_FILTER += discard class="No Unnecessary Condition (TS-ESLint)" 
    WARNING_FILTER += discard class="No Unnecessary Qualifier (TS-ESLint)" 
    WARNING_FILTER += discard class="No Unnecessary Type Arguments (TS-ESLint)" 
    WARNING_FILTER += discard class="No Unnecessary Type Assertion (TS-ESLint)" 
    WARNING_FILTER += discard class="No Unnecessary Type Constraint (TS-ESLint)" 
    WARNING_FILTER += discard class="No Unsafe Argument (TS-ESLint)" 
    WARNING_FILTER += discard class="No Unsafe Assignment (TS-ESLint)" 
    WARNING_FILTER += discard class="No Unsafe Call (TS-ESLint)" 
    WARNING_FILTER += discard class="No Unsafe Declaration Merging (TS-ESLint)" 
    WARNING_FILTER += discard class="No Unsafe Enum Comparison (TS-ESLint)" 
    WARNING_FILTER += discard class="No Unsafe Member Access (TS-ESLint)" 
    WARNING_FILTER += discard class="No Unsafe Return (TS-ESLint)" 
    WARNING_FILTER += discard class="No Unsafe Unary Minus (TS-ESLint)" 
    WARNING_FILTER += discard class="No Unused Expressions (TS-ESLint)" 
    WARNING_FILTER += discard class="No Unused Vars (TS-ESLint)" 
    WARNING_FILTER += discard class="No Use Before Define (TS-ESLint)" 
    WARNING_FILTER += discard class="No Useless Constructor (TS-ESLint)" 
    WARNING_FILTER += discard class="No Useless Empty Export (TS-ESLint)" 
    WARNING_FILTER += discard class="No Useless Template Literals (TS-ESLint)" 
    WARNING_FILTER += discard class="No Var Requires (TS-ESLint)" 
    WARNING_FILTER += discard class="No for in Array (TS-ESLint)" 
    WARNING_FILTER += discard class="Non Nullable Type Assertion Style (TS-ESLint)" 
    WARNING_FILTER += discard class="Object Curly Spacing (TS-ESLint)" 
    WARNING_FILTER += discard class="Padding Line Between Statements (TS-ESLint)" 
    WARNING_FILTER += discard class="Parameter Properties (TS-ESLint)" 
    WARNING_FILTER += discard class="Prefer As Const (TS-ESLint)" 
    WARNING_FILTER += discard class="Prefer Destructuring (TS-ESLint)" 
    WARNING_FILTER += discard class="Prefer Enum Initializers (TS-ESLint)" 
    WARNING_FILTER += discard class="Prefer Find (TS-ESLint)" 
    WARNING_FILTER += discard class="Prefer Function Type (TS-ESLint)" 
    WARNING_FILTER += discard class="Prefer Includes (TS-ESLint)" 
    WARNING_FILTER += discard class="Prefer Literal Enum Member (TS-ESLint)" 
    WARNING_FILTER += discard class="Prefer Namespace Keyword (TS-ESLint)" 
    WARNING_FILTER += discard class="Prefer Nullish Coalescing (TS-ESLint)" 
    WARNING_FILTER += discard class="Prefer Optional Chain (TS-ESLint)" 
    WARNING_FILTER += discard class="Prefer Promise Reject Errors (TS-ESLint)" 
    WARNING_FILTER += discard class="Prefer Readonly (TS-ESLint)" 
    WARNING_FILTER += discard class="Prefer Readonly Parameter Types (TS-ESLint)" 
    WARNING_FILTER += discard class="Prefer Reduce Type Parameter (TS-ESLint)" 
    WARNING_FILTER += discard class="Prefer Regexp Exec (TS-ESLint)" 
    WARNING_FILTER += discard class="Prefer Return This Type (TS-ESLint)" 
    WARNING_FILTER += discard class="Prefer String Starts Ends With (TS-ESLint)" 
    WARNING_FILTER += discard class="Prefer Ts Expect Error (TS-ESLint)" 
    WARNING_FILTER += discard class="Prefer for of (TS-ESLint)" 
    WARNING_FILTER += discard class="Promise Function Async (TS-ESLint)" 
    WARNING_FILTER += discard class="Quotes (TS-ESLint)" 
    WARNING_FILTER += discard class="Require Array Sort Compare (TS-ESLint)" 
    WARNING_FILTER += discard class="Require Await (TS-ESLint)" 
    WARNING_FILTER += discard class="Restrict Plus Operands (TS-ESLint)" 
    WARNING_FILTER += discard class="Restrict Template Expressions (TS-ESLint)" 
    WARNING_FILTER += discard class="Return Await (TS-ESLint)" 
    WARNING_FILTER += discard class="Semi (TS-ESLint)" 
    WARNING_FILTER += discard class="Sort Type Constituents (TS-ESLint)" 
    WARNING_FILTER += discard class="Space Before Blocks (TS-ESLint)" 
    WARNING_FILTER += discard class="Space Before Function Paren (TS-ESLint)" 
    WARNING_FILTER += discard class="Space Infix Ops (TS-ESLint)" 
    WARNING_FILTER += discard class="Strict Boolean Expressions (TS-ESLint)" 
    WARNING_FILTER += discard class="Switch Exhaustiveness Check (TS-ESLint)" 
    WARNING_FILTER += discard class="Triple Slash Reference (TS-ESLint)" 
    WARNING_FILTER += discard class="Type Annotation Spacing (TS-ESLint)" 
    WARNING_FILTER += discard class="Typedef (TS-ESLint)" 
    WARNING_FILTER += discard class="Unbound Method (TS-ESLint)" 
    WARNING_FILTER += discard class="Unified Signatures (TS-ESLint)" 

The following checks are disabled by default. To enable checks for a particular class, use the corresponding "allow" rule. (Checks for some classes may require additional settings in order to work correctly. See the individual warning class documentation in the manual for full information.)

 (C and C++ warning classes) 
    WARNING_FILTER += allow class="## Follows # Operator" 
    WARNING_FILTER += allow class="/* in // Comment" 
    WARNING_FILTER += allow class="// in Comment" 
    WARNING_FILTER += allow class="2$Buffer Overrun" 
    WARNING_FILTER += allow class="Addition Overflow of Allocation Size" 
    WARNING_FILTER += allow class="Addition Overflow of Size" 
    WARNING_FILTER += allow class="Anonymous Namespace in Header File" 
    WARNING_FILTER += allow class="Array Parameter Mismatch" 
    WARNING_FILTER += allow class="Array Parameter" 
    WARNING_FILTER += allow class="Array to Pointer Conversion on Temporary Object" 
    WARNING_FILTER += allow class="Array to Pointer Decay" 
    WARNING_FILTER += allow class="Assembly Pragma" 
    WARNING_FILTER += allow class="Assignment Result in Expression" 
    WARNING_FILTER += allow class="Assignment in Conditional" 
    WARNING_FILTER += allow class="Attribute Is Nonstandard" 
    WARNING_FILTER += allow class="Attribute namespace Unrecognized" 
    WARNING_FILTER += allow class="Backwards goto" 
    WARNING_FILTER += allow class="Bad Token" 
    WARNING_FILTER += allow class="Bad printf Format String" 
    WARNING_FILTER += allow class="Basic Numerical Type Used" 
    WARNING_FILTER += allow class="Bit-field Signedness Not Explicit" 
    WARNING_FILTER += allow class="Bit-field in Union" 
    WARNING_FILTER += allow class="Body Is Not Compound Statement" 
    WARNING_FILTER += allow class="Boolean switch Expression" 
    WARNING_FILTER += allow class="Braced Initializer with auto" 
    WARNING_FILTER += allow class="C String" 
    WARNING_FILTER += allow class="C++ Comment in C" 
    WARNING_FILTER += allow class="C-style Cast" 
    WARNING_FILTER += allow class="Cannot Redefine Predefined Macro" 
    WARNING_FILTER += allow class="Cast Removes const Qualifier" 
    WARNING_FILTER += allow class="Cast Removes volatile Qualifier" 
    WARNING_FILTER += allow class="Cast: Arithmetic Type/Void Pointer" 
    WARNING_FILTER += allow class="Cast: Non-integer Arithmetic Type/Object Pointer" 
    WARNING_FILTER += allow class="Cast: Object Pointers" 
    WARNING_FILTER += allow class="Cast: Virtual Base to Derived" 
    WARNING_FILTER += allow class="Cast: reinterpret_cast" 
    WARNING_FILTER += allow class="Code Before #include" 
    WARNING_FILTER += allow class="Code Is Unreachable" 
    WARNING_FILTER += allow class="Coercion: Integer Constant to Pointer" 
    WARNING_FILTER += allow class="Comment Suggests Code Unfinished" 
    WARNING_FILTER += allow class="Commented-out Code" 
    WARNING_FILTER += allow class="Compilation Error in File" 
    WARNING_FILTER += allow class="Complex Integral Type" 
    WARNING_FILTER += allow class="Condition Contains Side Effects" 
    WARNING_FILTER += allow class="Condition Is Not Boolean" 
    WARNING_FILTER += allow class="Conditional Compilation" 
    WARNING_FILTER += allow class="Conflicting Lock Order" 
    WARNING_FILTER += allow class="Confusing Initializer-list Constructor" 
    WARNING_FILTER += allow class="Confusing Literal Suffix" 
    WARNING_FILTER += allow class="Confusing Operator Overload" 
    WARNING_FILTER += allow class="Continue Statement" 
    WARNING_FILTER += allow class="Conversion Operator Not Explicit" 
    WARNING_FILTER += allow class="Conversion from Function Pointer" 
    WARNING_FILTER += allow class="Conversion to Function Pointer" 
    WARNING_FILTER += allow class="Conversion to Type bool" 
    WARNING_FILTER += allow class="Conversion: Pointer to Incomplete" 
    WARNING_FILTER += allow class="Conversion: Pointer/Integer" 
    WARNING_FILTER += allow class="Conversion: Void Pointer to Object Pointer" 
    WARNING_FILTER += allow class="Copy Operation Parameter Is Not const" 
    WARNING_FILTER += allow class="Dangerous Include File Name" 
    WARNING_FILTER += allow class="Data Race" 
    WARNING_FILTER += allow class="Declaration of Flexible Array Member" 
    WARNING_FILTER += allow class="Declaration of Reserved Name" 
    WARNING_FILTER += allow class="Declaration of Variable Length Array" 
    WARNING_FILTER += allow class="Declared but Not Referenced" 
    WARNING_FILTER += allow class="Default Initialization of Random Number Generator" 
    WARNING_FILTER += allow class="Default Seed in PRNG" 
    WARNING_FILTER += allow class="Defaulted Comparison for Property" 
    WARNING_FILTER += allow class="Derived Class From Virtual Base" 
    WARNING_FILTER += allow class="Designator Is Nonstandard" 
    WARNING_FILTER += allow class="Dynamic Allocation After Initialization" 
    WARNING_FILTER += allow class="Dynamic Exception Specification Not Permitted" 
    WARNING_FILTER += allow class="Dynamic Thread Creation" 
    WARNING_FILTER += allow class="Ellipsis" 
    WARNING_FILTER += allow class="Empty Then Statement" 
    WARNING_FILTER += allow class="Empty else Statement" 
    WARNING_FILTER += allow class="Encapsulation Violation" 
    WARNING_FILTER += allow class="Enumeration Has Implicit Underlying Type" 
    WARNING_FILTER += allow class="Essential Type Diagnostic" 
    WARNING_FILTER += allow class="Excessive Macro Parameter Evaluation in C Generic" 
    WARNING_FILTER += allow class="Excessive Stack Depth" 
    WARNING_FILTER += allow class="Explicit Narrowing 64 Bit Integer" 
    WARNING_FILTER += allow class="Explicit Zero Alignment" 
    WARNING_FILTER += allow class="Explicit enum Base Nonstandard in Current Mode" 
    WARNING_FILTER += allow class="Expression Has No Effect" 
    WARNING_FILTER += allow class="Expression Value Widened by Assignment" 
    WARNING_FILTER += allow class="Expression Value Widened by Other Operand" 
    WARNING_FILTER += allow class="Extern Array Without Size" 
    WARNING_FILTER += allow class="Extra Semicolon" 
    WARNING_FILTER += allow class="FILE* Dereference" 
    WARNING_FILTER += allow class="Flexible Array Is Nonstandard" 
    WARNING_FILTER += allow class="Float Multiplication Overflow" 
    WARNING_FILTER += allow class="Float Pointer Conversion" 
    WARNING_FILTER += allow class="Float-typed Loop Counter" 
    WARNING_FILTER += allow class="Floating Point Equality" 
    WARNING_FILTER += allow class="Fold Expressions Nonstandard" 
    WARNING_FILTER += allow class="Forbidden Function Name in Namespace" 
    WARNING_FILTER += allow class="Function Defined in Header File" 
    WARNING_FILTER += allow class="Function Pointer Conversion" 
    WARNING_FILTER += allow class="Function Pointer" 
    WARNING_FILTER += allow class="Function Too Long" 
    WARNING_FILTER += allow class="Function-Like Macro" 
    WARNING_FILTER += allow class="GNU Extension" 
    WARNING_FILTER += allow class="GNU Typeof" 
    WARNING_FILTER += allow class="Global Variable Declared with Different Types" 
    WARNING_FILTER += allow class="Goto Statement" 
    WARNING_FILTER += allow class="Hardcoded DNS Name" 
    WARNING_FILTER += allow class="High Cyclomatic Complexity (Procedure)" 
    WARNING_FILTER += allow class="High Risk Loop" 
    WARNING_FILTER += allow class="IFC Unsupported Token" 
    WARNING_FILTER += allow class="ILP64 Will Narrow" 
    WARNING_FILTER += allow class="Implicit Address of Function" 
    WARNING_FILTER += allow class="Implicit Constructor Shadowing" 
    WARNING_FILTER += allow class="Implicit Encoding in String Concatenation" 
    WARNING_FILTER += allow class="Implicit Inheritance from Stateful Virtual Base" 
    WARNING_FILTER += allow class="Implicit Lambda Capture of this" 
    WARNING_FILTER += allow class="Implicit Lambda Capture" 
    WARNING_FILTER += allow class="Implicit Narrowing 64 Bit Integer" 
    WARNING_FILTER += allow class="Implicit Pointer Type Conversion in Selection of C Generic" 
    WARNING_FILTER += allow class="Implicit Return From Non-void Function" 
    WARNING_FILTER += allow class="Inappropriate Argument to <tgmath.h> Macro" 
    WARNING_FILTER += allow class="Inappropriate Argument to Integer Constant Macro" 
    WARNING_FILTER += allow class="Inappropriate Argument to memcmp" 
    WARNING_FILTER += allow class="Inappropriate Assignment Operator Return" 
    WARNING_FILTER += allow class="Inappropriate Assignment Type" 
    WARNING_FILTER += allow class="Inappropriate Association Type in C Generic" 
    WARNING_FILTER += allow class="Inappropriate Bit-field Type" 
    WARNING_FILTER += allow class="Inappropriate Cast Type" 
    WARNING_FILTER += allow class="Inappropriate Cast Type: Expression" 
    WARNING_FILTER += allow class="Inappropriate Character Arithmetic" 
    WARNING_FILTER += allow class="Inappropriate Compare Object" 
    WARNING_FILTER += allow class="Inappropriate Comparison of Virtual Member Function" 
    WARNING_FILTER += allow class="Inappropriate Declaration in Global Namespace" 
    WARNING_FILTER += allow class="Inappropriate Include File Specification" 
    WARNING_FILTER += allow class="Inappropriate Numeric Assignment" 
    WARNING_FILTER += allow class="Inappropriate Operand Type" 
    WARNING_FILTER += allow class="Inappropriate Selection Type in C Generic" 
    WARNING_FILTER += allow class="Inappropriate Storage Duration" 
    WARNING_FILTER += allow class="Inappropriate Test of Error Code" 
    WARNING_FILTER += allow class="Inappropriate Volatile Declaration" 
    WARNING_FILTER += allow class="Inappropriate throw in noexcept Function" 
    WARNING_FILTER += allow class="Include File Without Guard" 
    WARNING_FILTER += allow class="Inconsistent Alignment Specifications" 
    WARNING_FILTER += allow class="Inconsistent Chained Designator Initialization" 
    WARNING_FILTER += allow class="Inconsistent Enumerator Initialization" 
    WARNING_FILTER += allow class="Inconsistent Function Declarations" 
    WARNING_FILTER += allow class="Inconsistent Macro Parameter Expansion in C Generic" 
    WARNING_FILTER += allow class="Inconsistent Object Declarations" 
    WARNING_FILTER += allow class="Inconsistent Types of Arguments to <tgmath.h> Macro" 
    WARNING_FILTER += allow class="Incorrect Privilege Assignment" 
    WARNING_FILTER += allow class="Indeterminate Order of Evaluation" 
    WARNING_FILTER += allow class="Initialization Cycle" 
    WARNING_FILTER += allow class="Initialization Not Reachable" 
    WARNING_FILTER += allow class="Inline Assembly Code" 
    WARNING_FILTER += allow class="Inline Function Not static" 
    WARNING_FILTER += allow class="Integer Sign Change" 
    WARNING_FILTER += allow class="Invalid Preprocessor Directive" 
    WARNING_FILTER += allow class="Known Comparison With Null" 
    WARNING_FILTER += allow class="Label Not In Enclosing Block" 
    WARNING_FILTER += allow class="Lambda Has No Parameter List" 
    WARNING_FILTER += allow class="Lambda Has No Return Type" 
    WARNING_FILTER += allow class="Last Line Incomplete" 
    WARNING_FILTER += allow class="Leftover Debug Code" 
    WARNING_FILTER += allow class="Library Function Override" 
    WARNING_FILTER += allow class="Line Splicing in Comment" 
    WARNING_FILTER += allow class="Local Variable Hidden" 
    WARNING_FILTER += allow class="Lock/Unlock Mismatch" 
    WARNING_FILTER += allow class="Locked Twice" 
    WARNING_FILTER += allow class="Loop Not Reachable" 
    WARNING_FILTER += allow class="Lower Case in Hexadecimal Literal" 
    WARNING_FILTER += allow class="Macro Argument is both Mixed and Expanded" 
    WARNING_FILTER += allow class="Macro Defined in Function Body" 
    WARNING_FILTER += allow class="Macro Defines Constant" 
    WARNING_FILTER += allow class="Macro Definition of Reserved Name" 
    WARNING_FILTER += allow class="Macro Does Not End With } or )" 
    WARNING_FILTER += allow class="Macro Does Not Start With { or (" 
    WARNING_FILTER += allow class="Macro Name is C Keyword" 
    WARNING_FILTER += allow class="Macro Parameter Not Parenthesized" 
    WARNING_FILTER += allow class="Macro Undefined in Function Body" 
    WARNING_FILTER += allow class="Macro Undefinition of Reserved Name" 
    WARNING_FILTER += allow class="Macro Uses # Operator" 
    WARNING_FILTER += allow class="Macro Uses ## Operator" 
    WARNING_FILTER += allow class="Macro Uses -> Operator" 
    WARNING_FILTER += allow class="Macro Uses Unary * Operator" 
    WARNING_FILTER += allow class="Macro Uses [] Operator" 
    WARNING_FILTER += allow class="Malformed #include" 
    WARNING_FILTER += allow class="Malformed for-loop Condition" 
    WARNING_FILTER += allow class="Malformed for-loop Initialization" 
    WARNING_FILTER += allow class="Malformed for-loop Step" 
    WARNING_FILTER += allow class="Malformed switch Statement" 
    WARNING_FILTER += allow class="Member Function Could Be const" 
    WARNING_FILTER += allow class="Member Function Could Be static" 
    WARNING_FILTER += allow class="Memory Protection Removal" 
    WARNING_FILTER += allow class="Method Default Value Mismatch" 
    WARNING_FILTER += allow class="Microsoft Extension" 
    WARNING_FILTER += allow class="Mismatched Argument Types" 
    WARNING_FILTER += allow class="Mismatched Operand Types" 
    WARNING_FILTER += allow class="Misplaced Default Association in C Generic" 
    WARNING_FILTER += allow class="Misplaced Digit Separator" 
    WARNING_FILTER += allow class="Misplaced Return Statement" 
    WARNING_FILTER += allow class="Misplaced Using Declaration" 
    WARNING_FILTER += allow class="Misplaced case" 
    WARNING_FILTER += allow class="Misplaced default" 
    WARNING_FILTER += allow class="Missing Braces in Initialization" 
    WARNING_FILTER += allow class="Missing External Declaration" 
    WARNING_FILTER += allow class="Missing External Definition" 
    WARNING_FILTER += allow class="Missing Final else" 
    WARNING_FILTER += allow class="Missing Literal Suffix" 
    WARNING_FILTER += allow class="Missing Lock Acquisition" 
    WARNING_FILTER += allow class="Missing Lock Release" 
    WARNING_FILTER += allow class="Missing Non-default Association in C Generic" 
    WARNING_FILTER += allow class="Missing Parentheses" 
    WARNING_FILTER += allow class="Missing Test of Error Code" 
    WARNING_FILTER += allow class="Missing User-defined Operations" 
    WARNING_FILTER += allow class="Missing break" 
    WARNING_FILTER += allow class="Missing default" 
    WARNING_FILTER += allow class="Missing delete" 
    WARNING_FILTER += allow class="Missing for-loop Step" 
    WARNING_FILTER += allow class="Missing for-loop Termination" 
    WARNING_FILTER += allow class="Missing noexcept" 
    WARNING_FILTER += allow class="Missing noreturn Specifier" 
    WARNING_FILTER += allow class="Missing throw in operator new" 
    WARNING_FILTER += allow class="Mixed Assembly and Code" 
    WARNING_FILTER += allow class="Modification of Standard Namespaces" 
    WARNING_FILTER += allow class="Modified Parameter" 
    WARNING_FILTER += allow class="Move Constructor With Copy Semantics" 
    WARNING_FILTER += allow class="Multicharacter Literal" 
    WARNING_FILTER += allow class="Multiple Abnormal Loop Exits" 
    WARNING_FILTER += allow class="Multiple Accesses of Atomic" 
    WARNING_FILTER += allow class="Multiple Declarations On Line" 
    WARNING_FILTER += allow class="Multiple Declarations of a Global" 
    WARNING_FILTER += allow class="Multiple External Declarations" 
    WARNING_FILTER += allow class="Multiple External Definitions" 
    WARNING_FILTER += allow class="Multiple Inheritance with Private Interface Class" 
    WARNING_FILTER += allow class="Multiple Inheritance with Protected Interface Class" 
    WARNING_FILTER += allow class="Multiple Inheritance with Public Base Class" 
    WARNING_FILTER += allow class="Multiple Inheritance with Too Many Protected Base Classes" 
    WARNING_FILTER += allow class="Multiple Return Statements" 
    WARNING_FILTER += allow class="Multiple Statements On Line" 
    WARNING_FILTER += allow class="Multiplication Overflow of Allocation Size" 
    WARNING_FILTER += allow class="Multiplication Overflow of Size" 
    WARNING_FILTER += allow class="NULL Used as Integer" 
    WARNING_FILTER += allow class="Naming Style Violation" 
    WARNING_FILTER += allow class="Negative Shift Count" 
    WARNING_FILTER += allow class="Nested Conditional Operator" 
    WARNING_FILTER += allow class="Nested Function Declaration" 
    WARNING_FILTER += allow class="Nested Locks" 
    WARNING_FILTER += allow class="Nested inline namespace Nonstandard" 
    WARNING_FILTER += allow class="Nested namespace Nonstandard" 
    WARNING_FILTER += allow class="No Constructor but const or Reference Member" 
    WARNING_FILTER += allow class="No Matching #endif" 
    WARNING_FILTER += allow class="No Matching #if" 
    WARNING_FILTER += allow class="No Previous Declaration" 
    WARNING_FILTER += allow class="No Value Returned in Non-void Function" 
    WARNING_FILTER += allow class="Non-Boolean Preprocessor Expression" 
    WARNING_FILTER += allow class="Non-const Global Variable" 
    WARNING_FILTER += allow class="Non-const Local Static Variable" 
    WARNING_FILTER += allow class="Non-const Predicate Function Object" 
    WARNING_FILTER += allow class="Non-const String Literal" 
    WARNING_FILTER += allow class="Non-distinct Identifiers: External Names" 
    WARNING_FILTER += allow class="Non-distinct Identifiers: Macro/Macro" 
    WARNING_FILTER += allow class="Non-distinct Identifiers: Macro/Other" 
    WARNING_FILTER += allow class="Non-distinct Identifiers: Nested Scope" 
    WARNING_FILTER += allow class="Non-distinct Identifiers: Same Scope" 
    WARNING_FILTER += allow class="Non-final Class has Non-Virtual Public Destructor" 
    WARNING_FILTER += allow class="Non-unique Identifiers: External Name" 
    WARNING_FILTER += allow class="Non-unique Identifiers: Internal Name" 
    WARNING_FILTER += allow class="Non-unique Identifiers: Tag" 
    WARNING_FILTER += allow class="Non-unique Identifiers: Typedef" 
    WARNING_FILTER += allow class="Non-void noreturn" 
    WARNING_FILTER += allow class="Non-zero Error Code Assignment" 
    WARNING_FILTER += allow class="Non-zero Error Code" 
    WARNING_FILTER += allow class="Nonstandard Address of Ellipsis" 
    WARNING_FILTER += allow class="Nonstandard Address of Label" 
    WARNING_FILTER += allow class="Nonstandard Anonymous union Qualifier" 
    WARNING_FILTER += allow class="Nonstandard Assigned goto" 
    WARNING_FILTER += allow class="Nonstandard Bit Field Initializer" 
    WARNING_FILTER += allow class="Nonstandard Bit Field Type" 
    WARNING_FILTER += allow class="Nonstandard Braces" 
    WARNING_FILTER += allow class="Nonstandard Conversion From Scoped enum" 
    WARNING_FILTER += allow class="Nonstandard Explicit bool" 
    WARNING_FILTER += allow class="Nonstandard Extra Comma" 
    WARNING_FILTER += allow class="Nonstandard Lambda Attributes" 
    WARNING_FILTER += allow class="Nonstandard Long Float" 
    WARNING_FILTER += allow class="Nonstandard Member Function Address" 
    WARNING_FILTER += allow class="Nonstandard Use of Explicit Default Constructor" 
    WARNING_FILTER += allow class="Not All Warnings Are Enabled" 
    WARNING_FILTER += allow class="Not Enough Assertions" 
    WARNING_FILTER += allow class="Object Defined in Header File" 
    WARNING_FILTER += allow class="Octal Constant" 
    WARNING_FILTER += allow class="Over-initialized Element" 
    WARNING_FILTER += allow class="Override of Non-Virtual Method" 
    WARNING_FILTER += allow class="Parameter is const Reference to Smart Pointer" 
    WARNING_FILTER += allow class="Partially Uninitialized Aggregate" 
    WARNING_FILTER += allow class="Partially Uninitialized Array" 
    WARNING_FILTER += allow class="Pointed-to Type Could Be const" 
    WARNING_FILTER += allow class="Pointer Arithmetic" 
    WARNING_FILTER += allow class="Pointer Before Beginning of Object" 
    WARNING_FILTER += allow class="Pointer Conversion to Same Size Integer" 
    WARNING_FILTER += allow class="Pointer Past End of Object" 
    WARNING_FILTER += allow class="Pointer Type Inside Typedef" 
    WARNING_FILTER += allow class="Pointer to Variably-modified Array Type" 
    WARNING_FILTER += allow class="Possible Anti-Debugging" 
    WARNING_FILTER += allow class="Potential Timebomb" 
    WARNING_FILTER += allow class="Potential Unbounded Loop" 
    WARNING_FILTER += allow class="Predefined Macro Redefined" 
    WARNING_FILTER += allow class="Preprocessing Directives in Macro Argument" 
    WARNING_FILTER += allow class="Recursion" 
    WARNING_FILTER += allow class="Recursive Macro" 
    WARNING_FILTER += allow class="Register Keyword" 
    WARNING_FILTER += allow class="Restrict Qualifier Used" 
    WARNING_FILTER += allow class="Return from Computational Exception Signal Handler" 
    WARNING_FILTER += allow class="Returned Pointer Not Treated as const" 
    WARNING_FILTER += allow class="Returning Pointer to Local Temporary" 
    WARNING_FILTER += allow class="Returning Pointer to Local Variable" 
    WARNING_FILTER += allow class="Returning Reference to Local Variable" 
    WARNING_FILTER += allow class="Risky Atomic Memory Order" 
    WARNING_FILTER += allow class="Risky Integer Promotion" 
    WARNING_FILTER += allow class="Risky Range-based for-loop Initializer" 
    WARNING_FILTER += allow class="Scope Could Be File Static" 
    WARNING_FILTER += allow class="Scope Could Be Local Static" 
    WARNING_FILTER += allow class="Scoped enum Nonstandard in Current Mode" 
    WARNING_FILTER += allow class="Selection Initializer Nonstandard" 
    WARNING_FILTER += allow class="Selection in C Generic not Expanded from Macro Parameters" 
    WARNING_FILTER += allow class="Set but Not Used" 
    WARNING_FILTER += allow class="Shift Count Too Large" 
    WARNING_FILTER += allow class="Side Effects in C Generic Selection" 
    WARNING_FILTER += allow class="Side Effects in Expression with Decrement" 
    WARNING_FILTER += allow class="Side Effects in Expression with Increment" 
    WARNING_FILTER += allow class="Side Effects in Initializer List" 
    WARNING_FILTER += allow class="Side Effects in Logical Operand" 
    WARNING_FILTER += allow class="Side Effects in sizeof" 
    WARNING_FILTER += allow class="Signal Handler Entry Point" 
    WARNING_FILTER += allow class="Signed Unsigned Comparison" 
    WARNING_FILTER += allow class="Socket In Wrong State" 
    WARNING_FILTER += allow class="Star this Capture Nonstandard" 
    WARNING_FILTER += allow class="Static Array Parameter" 
    WARNING_FILTER += allow class="Storage Class Not First" 
    WARNING_FILTER += allow class="Subscript Out of Range" 
    WARNING_FILTER += allow class="Subtraction Underflow of Allocation Size" 
    WARNING_FILTER += allow class="Subtraction Underflow of Size" 
    WARNING_FILTER += allow class="Symmetrical Operator Member Function" 
    WARNING_FILTER += allow class="Tainted Allocation Size" 
    WARNING_FILTER += allow class="Tainted Configuration Setting" 
    WARNING_FILTER += allow class="Tainted Filename" 
    WARNING_FILTER += allow class="Tainted Network Address" 
    WARNING_FILTER += allow class="Tainted Write" 
    WARNING_FILTER += allow class="Task Delay Function" 
    WARNING_FILTER += allow class="Temporary Used for Reference Initializer" 
    WARNING_FILTER += allow class="Thread Entry Point" 
    WARNING_FILTER += allow class="Too Few Cases in switch" 
    WARNING_FILTER += allow class="Too Many Alignment Specifiers" 
    WARNING_FILTER += allow class="Too Many Dereferences" 
    WARNING_FILTER += allow class="Too Many Parameters" 
    WARNING_FILTER += allow class="Too Many Side Effects in Assignment" 
    WARNING_FILTER += allow class="Too Many Side Effects in Condition" 
    WARNING_FILTER += allow class="Too Many Side Effects in Function Call" 
    WARNING_FILTER += allow class="Too Many Side Effects in Statement" 
    WARNING_FILTER += allow class="Too Many Side Effects in Switch" 
    WARNING_FILTER += allow class="Too Much Indirection in Declaration" 
    WARNING_FILTER += allow class="Trigraph Ignored" 
    WARNING_FILTER += allow class="Trigraph" 
    WARNING_FILTER += allow class="Trivial Division By Zero" 
    WARNING_FILTER += allow class="Truncation of Allocation Size" 
    WARNING_FILTER += allow class="Truncation of Size" 
    WARNING_FILTER += allow class="Typographically Ambiguous Identifiers" 
    WARNING_FILTER += allow class="Unbalanced Parenthesis" 
    WARNING_FILTER += allow class="Unchecked Parameter Dereference" 
    WARNING_FILTER += allow class="Unexercised Call" 
    WARNING_FILTER += allow class="Unexercised Computation" 
    WARNING_FILTER += allow class="Unexercised Conditional" 
    WARNING_FILTER += allow class="Unexercised Control Flow" 
    WARNING_FILTER += allow class="Unexercised Data Flow" 
    WARNING_FILTER += allow class="Union Type" 
    WARNING_FILTER += allow class="Unknown Lock" 
    WARNING_FILTER += allow class="Unnamed Field" 
    WARNING_FILTER += allow class="Unnecessary override Specifier" 
    WARNING_FILTER += allow class="Unnecessary virtual Specifier" 
    WARNING_FILTER += allow class="Unneeded Implicitly Generated Operations" 
    WARNING_FILTER += allow class="Unordered Initialization" 
    WARNING_FILTER += allow class="Unreachable Control Flow" 
    WARNING_FILTER += allow class="Unrecognized #pragma" 
    WARNING_FILTER += allow class="Unrecognized Attribute" 
    WARNING_FILTER += allow class="Unrecognized Calling Convention" 
    WARNING_FILTER += allow class="Unrecognized Format Function Type" 
    WARNING_FILTER += allow class="Unrecognized GCC #pragma" 
    WARNING_FILTER += allow class="Unrecognized GCC Visibility #pragma" 
    WARNING_FILTER += allow class="Unrecognized Microsoft Attribute" 
    WARNING_FILTER += allow class="Unrecognized Microsoft Comment #pragma Type" 
    WARNING_FILTER += allow class="Unrecognized STDC #pragma" 
    WARNING_FILTER += allow class="Unrecognized Target Attribute" 
    WARNING_FILTER += allow class="Unrecognized UPC #pragma" 
    WARNING_FILTER += allow class="Unrecognized Visibility" 
    WARNING_FILTER += allow class="Unreferenced Function Parameter" 
    WARNING_FILTER += allow class="Unscoped Enumeration" 
    WARNING_FILTER += allow class="Unsigned Compare With Zero" 
    WARNING_FILTER += allow class="Unspecified Array Size with Designator Initialization" 
    WARNING_FILTER += allow class="Unsupported Type for Bit Cast" 
    WARNING_FILTER += allow class="Unterminated Escape Sequence" 
    WARNING_FILTER += allow class="Untrusted Library Load" 
    WARNING_FILTER += allow class="Untrusted Network Host" 
    WARNING_FILTER += allow class="Untrusted Network Port" 
    WARNING_FILTER += allow class="Untrusted Process Creation" 
    WARNING_FILTER += allow class="Unused Label" 
    WARNING_FILTER += allow class="Unused Macro" 
    WARNING_FILTER += allow class="Unused Parameter" 
    WARNING_FILTER += allow class="Unused Tag" 
    WARNING_FILTER += allow class="Unused Type" 
    WARNING_FILTER += allow class="Unused Variable" 
    WARNING_FILTER += allow class="Use of #define" 
    WARNING_FILTER += allow class="Use of #elif" 
    WARNING_FILTER += allow class="Use of #elifdef" 
    WARNING_FILTER += allow class="Use of #elifndef" 
    WARNING_FILTER += allow class="Use of #else" 
    WARNING_FILTER += allow class="Use of #endif" 
    WARNING_FILTER += allow class="Use of #error" 
    WARNING_FILTER += allow class="Use of #if" 
    WARNING_FILTER += allow class="Use of #ifdef" 
    WARNING_FILTER += allow class="Use of #ifndef" 
    WARNING_FILTER += allow class="Use of #import" 
    WARNING_FILTER += allow class="Use of #include" 
    WARNING_FILTER += allow class="Use of #include_next" 
    WARNING_FILTER += allow class="Use of #line" 
    WARNING_FILTER += allow class="Use of #pragma" 
    WARNING_FILTER += allow class="Use of #undef" 
    WARNING_FILTER += allow class="Use of #using" 
    WARNING_FILTER += allow class="Use of #warning" 
    WARNING_FILTER += allow class="Use of <cctype> Function" 
    WARNING_FILTER += allow class="Use of <cwctype> Function" 
    WARNING_FILTER += allow class="Use of <fenv.h> Exception Handling Function" 
    WARNING_FILTER += allow class="Use of <setjmp.h>" 
    WARNING_FILTER += allow class="Use of <signal.h>" 
    WARNING_FILTER += allow class="Use of <stdarg.h> Feature" 
    WARNING_FILTER += allow class="Use of <stdint.h> Small Integer Constant Macro" 
    WARNING_FILTER += allow class="Use of <stdio.h> Input/Output Macro" 
    WARNING_FILTER += allow class="Use of <stdio.h> Input/Output" 
    WARNING_FILTER += allow class="Use of <stdlib.h> Allocator/Deallocator Macro" 
    WARNING_FILTER += allow class="Use of <stdlib.h> Allocator/Deallocator" 
    WARNING_FILTER += allow class="Use of <tgmath.h>" 
    WARNING_FILTER += allow class="Use of <time.h> Time/Date Function" 
    WARNING_FILTER += allow class="Use of <wchar.h> Input/Output Macro" 
    WARNING_FILTER += allow class="Use of <wchar.h> Input/Output" 
    WARNING_FILTER += allow class="Use of AddAccessAllowedAce" 
    WARNING_FILTER += allow class="Use of AddAccessDeniedAce" 
    WARNING_FILTER += allow class="Use of AfxLoadLibrary" 
    WARNING_FILTER += allow class="Use of AfxParseURL" 
    WARNING_FILTER += allow class="Use of Alignas" 
    WARNING_FILTER += allow class="Use of Alignof" 
    WARNING_FILTER += allow class="Use of Array Type" 
    WARNING_FILTER += allow class="Use of Built-in Unary + Operator" 
    WARNING_FILTER += allow class="Use of C Atomic" 
    WARNING_FILTER += allow class="Use of C Generic" 
    WARNING_FILTER += allow class="Use of CoLoadLibrary" 
    WARNING_FILTER += allow class="Use of Comma Operator" 
    WARNING_FILTER += allow class="Use of Condition Variable Signal" 
    WARNING_FILTER += allow class="Use of Condition Variable Wait" 
    WARNING_FILTER += allow class="Use of CreateFile" 
    WARNING_FILTER += allow class="Use of CreateProcess" 
    WARNING_FILTER += allow class="Use of CreateThread" 
    WARNING_FILTER += allow class="Use of FormatMessage" 
    WARNING_FILTER += allow class="Use of L_tmpnam_s" 
    WARNING_FILTER += allow class="Use of LoadLibrary" 
    WARNING_FILTER += allow class="Use of LoadModule" 
    WARNING_FILTER += allow class="Use of MoveFile" 
    WARNING_FILTER += allow class="Use of NULL" 
    WARNING_FILTER += allow class="Use of Noreturn" 
    WARNING_FILTER += allow class="Use of OemToAnsi" 
    WARNING_FILTER += allow class="Use of OemToChar" 
    WARNING_FILTER += allow class="Use of SHCreateProcessAsUserW" 
    WARNING_FILTER += allow class="Use of ShellExecute" 
    WARNING_FILTER += allow class="Use of StrCatChainW" 
    WARNING_FILTER += allow class="Use of TMP_MAX_S" 
    WARNING_FILTER += allow class="Use of Thread Local" 
    WARNING_FILTER += allow class="Use of WinExec" 
    WARNING_FILTER += allow class="Use of XML_ExternalEntityParserCreate" 
    WARNING_FILTER += allow class="Use of _exec" 
    WARNING_FILTER += allow class="Use of _spawn" 
    WARNING_FILTER += allow class="Use of abort" 
    WARNING_FILTER += allow class="Use of abort_handler_s" 
    WARNING_FILTER += allow class="Use of asctime_s" 
    WARNING_FILTER += allow class="Use of atof" 
    WARNING_FILTER += allow class="Use of atoi" 
    WARNING_FILTER += allow class="Use of atol" 
    WARNING_FILTER += allow class="Use of atoll" 
    WARNING_FILTER += allow class="Use of bsearch" 
    WARNING_FILTER += allow class="Use of bsearch_s" 
    WARNING_FILTER += allow class="Use of catch" 
    WARNING_FILTER += allow class="Use of catopen" 
    WARNING_FILTER += allow class="Use of chroot" 
    WARNING_FILTER += allow class="Use of constraint_handler_t" 
    WARNING_FILTER += allow class="Use of ctime_s" 
    WARNING_FILTER += allow class="Use of cuserid" 
    WARNING_FILTER += allow class="Use of delete" 
    WARNING_FILTER += allow class="Use of execlp" 
    WARNING_FILTER += allow class="Use of execvp" 
    WARNING_FILTER += allow class="Use of exit" 
    WARNING_FILTER += allow class="Use of fopen_s" 
    WARNING_FILTER += allow class="Use of fork" 
    WARNING_FILTER += allow class="Use of fprintf_s" 
    WARNING_FILTER += allow class="Use of freopen_s" 
    WARNING_FILTER += allow class="Use of fscanf_s" 
    WARNING_FILTER += allow class="Use of fwprintf_s" 
    WARNING_FILTER += allow class="Use of fwscanf_s" 
    WARNING_FILTER += allow class="Use of getenv" 
    WARNING_FILTER += allow class="Use of getenv_s" 
    WARNING_FILTER += allow class="Use of getlogin" 
    WARNING_FILTER += allow class="Use of getopt" 
    WARNING_FILTER += allow class="Use of getpass" 
    WARNING_FILTER += allow class="Use of gets_s" 
    WARNING_FILTER += allow class="Use of getwd" 
    WARNING_FILTER += allow class="Use of gmtime_s" 
    WARNING_FILTER += allow class="Use of ignore_handler_s" 
    WARNING_FILTER += allow class="Use of localtime_s" 
    WARNING_FILTER += allow class="Use of longjmp" 
    WARNING_FILTER += allow class="Use of mbsrtowcs_s" 
    WARNING_FILTER += allow class="Use of mbstowcs_s" 
    WARNING_FILTER += allow class="Use of memcmp" 
    WARNING_FILTER += allow class="Use of memcpy_s" 
    WARNING_FILTER += allow class="Use of memmove_s" 
    WARNING_FILTER += allow class="Use of memset" 
    WARNING_FILTER += allow class="Use of memset_s" 
    WARNING_FILTER += allow class="Use of mkstemp" 
    WARNING_FILTER += allow class="Use of new" 
    WARNING_FILTER += allow class="Use of offsetof" 
    WARNING_FILTER += allow class="Use of popen" 
    WARNING_FILTER += allow class="Use of printf_s" 
    WARNING_FILTER += allow class="Use of pthread_kill" 
    WARNING_FILTER += allow class="Use of putenv" 
    WARNING_FILTER += allow class="Use of qsort" 
    WARNING_FILTER += allow class="Use of qsort_s" 
    WARNING_FILTER += allow class="Use of rand" 
    WARNING_FILTER += allow class="Use of rand48 Function" 
    WARNING_FILTER += allow class="Use of random" 
    WARNING_FILTER += allow class="Use of realloc" 
    WARNING_FILTER += allow class="Use of realpath" 
    WARNING_FILTER += allow class="Use of recvmsg" 
    WARNING_FILTER += allow class="Use of scanf_s" 
    WARNING_FILTER += allow class="Use of set_constraint_handler_s" 
    WARNING_FILTER += allow class="Use of setjmp" 
    WARNING_FILTER += allow class="Use of setlocale" 
    WARNING_FILTER += allow class="Use of setuid" 
    WARNING_FILTER += allow class="Use of signal" 
    WARNING_FILTER += allow class="Use of snprintf_s" 
    WARNING_FILTER += allow class="Use of snwprintf_s" 
    WARNING_FILTER += allow class="Use of sprintf_s" 
    WARNING_FILTER += allow class="Use of sscanf_s" 
    WARNING_FILTER += allow class="Use of std::bind" 
    WARNING_FILTER += allow class="Use of std::locale::global" 
    WARNING_FILTER += allow class="Use of std::vector<bool>" 
    WARNING_FILTER += allow class="Use of strcat" 
    WARNING_FILTER += allow class="Use of strcat_s" 
    WARNING_FILTER += allow class="Use of strchr" 
    WARNING_FILTER += allow class="Use of strcmp" 
    WARNING_FILTER += allow class="Use of strcoll" 
    WARNING_FILTER += allow class="Use of strcpy" 
    WARNING_FILTER += allow class="Use of strcpy_s" 
    WARNING_FILTER += allow class="Use of strcspn" 
    WARNING_FILTER += allow class="Use of strerror_s" 
    WARNING_FILTER += allow class="Use of strerrorlen_s" 
    WARNING_FILTER += allow class="Use of strlen" 
    WARNING_FILTER += allow class="Use of strncat_s" 
    WARNING_FILTER += allow class="Use of strncpy_s" 
    WARNING_FILTER += allow class="Use of strnlen_s" 
    WARNING_FILTER += allow class="Use of strpbrk" 
    WARNING_FILTER += allow class="Use of strrchr" 
    WARNING_FILTER += allow class="Use of strspn" 
    WARNING_FILTER += allow class="Use of strstr" 
    WARNING_FILTER += allow class="Use of strtok" 
    WARNING_FILTER += allow class="Use of strtok_s" 
    WARNING_FILTER += allow class="Use of strtrns" 
    WARNING_FILTER += allow class="Use of swprintf_s" 
    WARNING_FILTER += allow class="Use of swscanf_s" 
    WARNING_FILTER += allow class="Use of syslog" 
    WARNING_FILTER += allow class="Use of system" 
    WARNING_FILTER += allow class="Use of t_open" 
    WARNING_FILTER += allow class="Use of throw" 
    WARNING_FILTER += allow class="Use of tmpfile_s" 
    WARNING_FILTER += allow class="Use of tmpnam_s" 
    WARNING_FILTER += allow class="Use of ttyname" 
    WARNING_FILTER += allow class="Use of vfork" 
    WARNING_FILTER += allow class="Use of vfprintf_s" 
    WARNING_FILTER += allow class="Use of vfscanf_s" 
    WARNING_FILTER += allow class="Use of vfwprintf_s" 
    WARNING_FILTER += allow class="Use of vfwscanf_s" 
    WARNING_FILTER += allow class="Use of vprintf_s" 
    WARNING_FILTER += allow class="Use of vscanf_s" 
    WARNING_FILTER += allow class="Use of vsnprintf_s" 
    WARNING_FILTER += allow class="Use of vsnwprintf_s" 
    WARNING_FILTER += allow class="Use of vsprintf_s" 
    WARNING_FILTER += allow class="Use of vsscanf_s" 
    WARNING_FILTER += allow class="Use of vswprintf_s" 
    WARNING_FILTER += allow class="Use of vswscanf_s" 
    WARNING_FILTER += allow class="Use of vwprintf_s" 
    WARNING_FILTER += allow class="Use of vwscanf_s" 
    WARNING_FILTER += allow class="Use of wcrtomb_s" 
    WARNING_FILTER += allow class="Use of wcscat_s" 
    WARNING_FILTER += allow class="Use of wcscpy_s" 
    WARNING_FILTER += allow class="Use of wcsncat_s" 
    WARNING_FILTER += allow class="Use of wcsncpy_s" 
    WARNING_FILTER += allow class="Use of wcsnlen_s" 
    WARNING_FILTER += allow class="Use of wcsrtombs_s" 
    WARNING_FILTER += allow class="Use of wcstok_s" 
    WARNING_FILTER += allow class="Use of wcstombs_s" 
    WARNING_FILTER += allow class="Use of wctomb_s" 
    WARNING_FILTER += allow class="Use of wmemcpy_s" 
    WARNING_FILTER += allow class="Use of wmemmove_s" 
    WARNING_FILTER += allow class="Use of wprintf_s" 
    WARNING_FILTER += allow class="Use of wscanf_s" 
    WARNING_FILTER += allow class="Used Before Set" 
    WARNING_FILTER += allow class="User-defined Literal Operator" 
    WARNING_FILTER += allow class="Using Declaration in Header File" 
    WARNING_FILTER += allow class="Using Directive in Header File" 
    WARNING_FILTER += allow class="Using Directive" 
    WARNING_FILTER += allow class="VLA Is Nonstandard" 
    WARNING_FILTER += allow class="Variable Could Be const" 
    WARNING_FILTER += allow class="Variable Hides Entity" 
    WARNING_FILTER += allow class="Variadic Macro" 
    WARNING_FILTER += allow class="Virtual Base Class not In Diamond" 
    WARNING_FILTER += allow class="Virtual Base Class" 
    WARNING_FILTER += allow class="Virtual Function Missing virtual/override/final" 
    WARNING_FILTER += allow class="Virtual and Non-Virtual Base Class" 
    WARNING_FILTER += allow class="Void C Atomic" 
    WARNING_FILTER += allow class="Warnings Not Treated As Errors" 
    WARNING_FILTER += allow class="Weak Cryptography" 
    WARNING_FILTER += allow class="Write to Read Only File" 
    WARNING_FILTER += allow class="__restrict Is Nonstandard" 
    WARNING_FILTER += allow class="auto Type Nonstandard" 
    WARNING_FILTER += allow class="cc Clobber Ignored" 
    WARNING_FILTER += allow class="chroot without chdir" 
    WARNING_FILTER += allow class="const Variable in C Constant Expression" 
    WARNING_FILTER += allow class="delete with Non-Virtual Destructor" 
    WARNING_FILTER += allow class="if consteval Nonstandard" 
    WARNING_FILTER += allow class="inline Variables Nonstandard" 
    WARNING_FILTER += allow class="literal_representation Fixed Point" 
    WARNING_FILTER += allow class="main Wrong Number Parameters" 
    WARNING_FILTER += allow class="noreturn Function Does Return" 
    WARNING_FILTER += allow class="override in final Class" 
    WARNING_FILTER += allow class="printf Argument Mismatch" 
    WARNING_FILTER += allow class="sizeof Array Parameter" 
    WARNING_FILTER += allow class="std::move Argument is Not Lvalue" 
    WARNING_FILTER += allow class="std::move Argument is const" 
    WARNING_FILTER += allow class="switch Selector Expression Is Constant" 
    WARNING_FILTER += allow class="switch With Non-enum Expression" 
    WARNING_FILTER += allow class="typeid of Polymorphic Class Type" 
    WARNING_FILTER += allow class="using Attribute Nonstandard" 
    WARNING_FILTER += allow class="virtual in final Class" 

 (Java warning classes) 
    WARNING_FILTER += allow class="Actual Parameter Element may be null (Java)" 
    WARNING_FILTER += allow class="Android Message Injection (Java)" 
    WARNING_FILTER += allow class="Android URL Injection (Java)" 
    WARNING_FILTER += allow class="Certificate Added to Root Store (Java)" 
    WARNING_FILTER += allow class="Deprecated Transfer Protocol (Java)" 
    WARNING_FILTER += allow class="Deserializable Class (Java)" 
    WARNING_FILTER += allow class="Deserializing Non-Serializable Class (Java)" 
    WARNING_FILTER += allow class="Field Element may be null (deep) (Java)" 
    WARNING_FILTER += allow class="Field Too Visible (Java)" 
    WARNING_FILTER += allow class="Field may be null (deep) (Java)" 
    WARNING_FILTER += allow class="Hardcoded IP Address (Java)" 
    WARNING_FILTER += allow class="Inadequate Salt (Java)" 
    WARNING_FILTER += allow class="Insecure Class Loader (Java)" 
    WARNING_FILTER += allow class="Method Disables Security Setting (Java)" 
    WARNING_FILTER += allow class="Method Should be final (Java)" 
    WARNING_FILTER += allow class="Method Should be private (Java)" 
    WARNING_FILTER += allow class="Missing synchronized Statement (Java)" 
    WARNING_FILTER += allow class="Mutable Constant Field (Java)" 
    WARNING_FILTER += allow class="Naming Style Violation (Java)" 
    WARNING_FILTER += allow class="Null Pointer Dereference (deep) (Java)" 
    WARNING_FILTER += allow class="Return Value may Contain null Element (Java)" 
    WARNING_FILTER += allow class="Return Value may be null (Java)" 
    WARNING_FILTER += allow class="Security Annotation Conflict (Java)" 
    WARNING_FILTER += allow class="Sensitive Data Cached (Java)" 
    WARNING_FILTER += allow class="Sensitive Data Written to External Storage (Java)" 
    WARNING_FILTER += allow class="Sensitive Data Written to Local File (Java)" 
    WARNING_FILTER += allow class="Serialization Not Disabled (Java)" 
    WARNING_FILTER += allow class="Static Field Too Visible (Java)" 
    WARNING_FILTER += allow class="Unchecked Parameter Dereference (deep) (Java)" 
    WARNING_FILTER += allow class="Unchecked Parameter Element Dereference (deep) (Java)" 
    WARNING_FILTER += allow class="Unguarded Field (Java)" 
    WARNING_FILTER += allow class="Unguarded Method (Java)" 
    WARNING_FILTER += allow class="Unguarded Parameter (Java)" 
    WARNING_FILTER += allow class="Unsafe Base64 Encoding (Java)" 
    WARNING_FILTER += allow class="Useless null Test (Java)" 
    WARNING_FILTER += allow class="Useless null Test of Field (Java)" 
    WARNING_FILTER += allow class="Useless null Test of Parameter (Java)" 
    WARNING_FILTER += allow class="Useless null Test of Return Value (Java)" 
    WARNING_FILTER += allow class="clone Subclass of Non-clonable (Java)" 
    WARNING_FILTER += allow class="null Passed to Method (deep) (Java)" 

 (C# warning classes) 
    WARNING_FILTER += allow class="Abstract types should not have public constructors (C#)" 
    WARNING_FILTER += allow class="Actual Parameter Element may be null (C#)" 
    WARNING_FILTER += allow class="Attribute string literals should parse correctly (C#)" 
    WARNING_FILTER += allow class="Avoid dead conditional code (C#)" 
    WARNING_FILTER += allow class="Avoid empty interfaces (C#)" 
    WARNING_FILTER += allow class="Avoid excessive class coupling (C#)" 
    WARNING_FILTER += allow class="Avoid excessive complexity (C#)" 
    WARNING_FILTER += allow class="Avoid excessive inheritance (C#)" 
    WARNING_FILTER += allow class="Avoid excessive parameters on generic types (C#)" 
    WARNING_FILTER += allow class="Avoid hardcoded SslProtocols values (C#)" 
    WARNING_FILTER += allow class="Avoid hardcoding SecurityProtocolType value (C#)" 
    WARNING_FILTER += allow class="Avoid out parameters (C#)" 
    WARNING_FILTER += allow class="Avoid uninstantiated internal classes (C#)" 
    WARNING_FILTER += allow class="Avoid unmaintainable code (C#)" 
    WARNING_FILTER += allow class="Avoid unsealed attributes (C#)" 
    WARNING_FILTER += allow class="Avoid unused private fields (C#)" 
    WARNING_FILTER += allow class="Call async methods when in an async method (C#)" 
    WARNING_FILTER += allow class="Certificate Added to Root Store (C#)" 
    WARNING_FILTER += allow class="Collection properties should be read only (C#)" 
    WARNING_FILTER += allow class="Consider calling ConfigureAwait on the awaited task (C#)" 
    WARNING_FILTER += allow class="Consider making public types internal (C#)" 
    WARNING_FILTER += allow class="Define accessors for attribute arguments (C#)" 
    WARNING_FILTER += allow class="Deprecated Transfer Protocol (C#)" 
    WARNING_FILTER += allow class="Deserializable Class (C#)" 
    WARNING_FILTER += allow class="Disabled Input Validation (C#)" 
    WARNING_FILTER += allow class="Disposable fields should be disposed (C#)" 
    WARNING_FILTER += allow class="Disposable types should declare finalizer (C#)" 
    WARNING_FILTER += allow class="Dispose objects before losing scope (C#)" 
    WARNING_FILTER += allow class="Do Not Add Archive Item's Path To The Target File System Path (C#)" 
    WARNING_FILTER += allow class="Do Not Add Certificates To Root Store (C#)" 
    WARNING_FILTER += allow class="Do Not Catch Corrupted State Exceptions (C#)" 
    WARNING_FILTER += allow class="Do Not Disable SChannel Use of Strong Crypto (C#)" 
    WARNING_FILTER += allow class="Do Not Serialize Types With Pointer Fields (C#)" 
    WARNING_FILTER += allow class="Do Not Use Account Shared Access Signature (C#)" 
    WARNING_FILTER += allow class="Do Not Use Weak Key Derivation Function With Insufficient Iteration Count (C#)" 
    WARNING_FILTER += allow class="Do not always skip token validation in delegates (C#)" 
    WARNING_FILTER += allow class="Do not call BinaryFormatter.Deserialize without first setting BinaryFormatter.Binder (C#)" 
    WARNING_FILTER += allow class="Do not call overridable methods in constructors (C#)" 
    WARNING_FILTER += allow class="Do not catch general exception types (C#)" 
    WARNING_FILTER += allow class="Do not create tasks without passing a TaskScheduler (C#)" 
    WARNING_FILTER += allow class="Do not deserialize with JavaScriptSerializer using a SimpleTypeResolver (C#)" 
    WARNING_FILTER += allow class="Do not deserialize with JsonSerializer using an insecure configuration (C#)" 
    WARNING_FILTER += allow class="Do not deserialize without first setting NetDataContractSerializer.Binder (C#)" 
    WARNING_FILTER += allow class="Do not disable ServicePointManagerSecurityProtocols (C#)" 
    WARNING_FILTER += allow class="Do not disable token validation checks (C#)" 
    WARNING_FILTER += allow class="Do not expose generic lists (C#)" 
    WARNING_FILTER += allow class="Do not hard-code certificate (C#)" 
    WARNING_FILTER += allow class="Do not hard-code encryption key (C#)" 
    WARNING_FILTER += allow class="Do not lock on objects with weak identity (C#)" 
    WARNING_FILTER += allow class="Do not mark enums with FlagsAttribute (C#)" 
    WARNING_FILTER += allow class="Do not name enum values 'Reserved' (C#)" 
    WARNING_FILTER += allow class="Do not overload equality operator on reference types (C#)" 
    WARNING_FILTER += allow class="Do not pass literals as localized parameters (C#)" 
    WARNING_FILTER += allow class="Do not pass types by reference (C#)" 
    WARNING_FILTER += allow class="Do not raise exceptions in unexpected locations (C#)" 
    WARNING_FILTER += allow class="Do not use CreateEncryptor with non-default IV (C#)" 
    WARNING_FILTER += allow class="Do not use DataSet.ReadXml() with untrusted data (C#)" 
    WARNING_FILTER += allow class="Do not use DataTable.ReadXml() with untrusted data (C#)" 
    WARNING_FILTER += allow class="Do not use TypeNameHandling values other than None (C#)" 
    WARNING_FILTER += allow class="Do not use insecure JsonSerializerSettings (C#)" 
    WARNING_FILTER += allow class="Do not use insecure deserializer BinaryFormatter (C#)" 
    WARNING_FILTER += allow class="Do not use insecure deserializer LosFormatter (C#)" 
    WARNING_FILTER += allow class="Do not use insecure deserializer NetDataContractSerializer (C#)" 
    WARNING_FILTER += allow class="Do not use insecure deserializer ObjectStateFormatter (C#)" 
    WARNING_FILTER += allow class="Do not use insecure randomness (C#)" 
    WARNING_FILTER += allow class="Do not use unsafe DllImportSearchPath value (C#)" 
    WARNING_FILTER += allow class="Ensure BinaryFormatter.Binder is set before calling BinaryFormatter.Deserialize (C#)" 
    WARNING_FILTER += allow class="Ensure Certificates Are Not Added To Root Store (C#)" 
    WARNING_FILTER += allow class="Ensure HttpClient certificate revocation list check is not disabled (C#)" 
    WARNING_FILTER += allow class="Ensure JavaScriptSerializer is not initialized with SimpleTypeResolver before deserializing (C#)" 
    WARNING_FILTER += allow class="Ensure NetDataContractSerializer.Binder is set before deserializing (C#)" 
    WARNING_FILTER += allow class="Ensure Sufficient Iteration Count When Using Weak Key Derivation Function (C#)" 
    WARNING_FILTER += allow class="Ensure Use Secure Cookies In ASP.NET Core (C#)" 
    WARNING_FILTER += allow class="Ensure auto-generated class containing DataSet.ReadXml() is not used with untrusted data (C#)" 
    WARNING_FILTER += allow class="Ensure that JsonSerializer has a secure configuration when deserializing (C#)" 
    WARNING_FILTER += allow class="Ensure that JsonSerializerSettings are secure (C#)" 
    WARNING_FILTER += allow class="Enum Storage should be Int32 (C#)" 
    WARNING_FILTER += allow class="Enums should have zero value (C#)" 
    WARNING_FILTER += allow class="Events should not have 'Before' or 'After' prefix (C#)" 
    WARNING_FILTER += allow class="Exceptions should be public (C#)" 
    WARNING_FILTER += allow class="Field Element may be null (deep) (C#)" 
    WARNING_FILTER += allow class="Field Too Visible (C#)" 
    WARNING_FILTER += allow class="Field may be null (deep) (C#)" 
    WARNING_FILTER += allow class="Hardcoded IP Address (C#)" 
    WARNING_FILTER += allow class="HttpClients should enable certificate revocation list checks (C#)" 
    WARNING_FILTER += allow class="Implement IDisposable Correctly (C#)" 
    WARNING_FILTER += allow class="Implement IEquatable when overriding Object.Equals (C#)" 
    WARNING_FILTER += allow class="Implement standard exception constructors (C#)" 
    WARNING_FILTER += allow class="Inadequate Salt (C#)" 
    WARNING_FILTER += allow class="Initialize reference type static fields inline (C#)" 
    WARNING_FILTER += allow class="Initialize value type static fields inline (C#)" 
    WARNING_FILTER += allow class="Interface methods should be callable by child types (C#)" 
    WARNING_FILTER += allow class="Invalid entry in code metrics rule specification file (C#)" 
    WARNING_FILTER += allow class="Mark ISerializable types with serializable (C#)" 
    WARNING_FILTER += allow class="Mark all non-serializable fields (C#)" 
    WARNING_FILTER += allow class="Mark assemblies with CLSCompliant (C#)" 
    WARNING_FILTER += allow class="Mark assemblies with ComVisible (C#)" 
    WARNING_FILTER += allow class="Mark enums with FlagsAttribute (C#)" 
    WARNING_FILTER += allow class="Method Disables Security Setting (C#)" 
    WARNING_FILTER += allow class="Method Should be final (C#)" 
    WARNING_FILTER += allow class="Method Should be private (C#)" 
    WARNING_FILTER += allow class="Miss HttpVerb attribute for action methods (C#)" 
    WARNING_FILTER += allow class="Missing synchronized Statement (C#)" 
    WARNING_FILTER += allow class="Move pinvokes to native methods class (C#)" 
    WARNING_FILTER += allow class="Mutable Constant Field (C#)" 
    WARNING_FILTER += allow class="Naming Style Violation (C#)" 
    WARNING_FILTER += allow class="Nested types should not be visible (C#)" 
    WARNING_FILTER += allow class="Normalize strings to uppercase (C#)" 
    WARNING_FILTER += allow class="Null Pointer Dereference (deep) (C#)" 
    WARNING_FILTER += allow class="Operator overloads have named alternates (C#)" 
    WARNING_FILTER += allow class="Operators should have symmetrical overloads (C#)" 
    WARNING_FILTER += allow class="Override equals and operator equals on value types (C#)" 
    WARNING_FILTER += allow class="Pass system uri objects instead of strings (C#)" 
    WARNING_FILTER += allow class="Possible multiple enumerations of 'IEnumerable' collection (C#)" 
    WARNING_FILTER += allow class="Potential reference cycle in deserialized object graph (C#)" 
    WARNING_FILTER += allow class="Prefer jagged arrays over multidimensional (C#)" 
    WARNING_FILTER += allow class="Properties should not be write only (C#)" 
    WARNING_FILTER += allow class="Properties should not return arrays (C#)" 
    WARNING_FILTER += allow class="Property names should not match get methods (C#)" 
    WARNING_FILTER += allow class="Return Value may Contain null Element (C#)" 
    WARNING_FILTER += allow class="Return Value may be null (C#)" 
    WARNING_FILTER += allow class="Review SQL queries for security vulnerabilities (C#)" 
    WARNING_FILTER += allow class="Review cipher mode usage with cryptography experts (C#)" 
    WARNING_FILTER += allow class="Review code for DLL injection vulnerabilities (C#)" 
    WARNING_FILTER += allow class="Review code for LDAP injection vulnerabilities (C#)" 
    WARNING_FILTER += allow class="Review code for SQL injection vulnerabilities (C#)" 
    WARNING_FILTER += allow class="Review code for XAML injection vulnerabilities (C#)" 
    WARNING_FILTER += allow class="Review code for XML injection vulnerabilities (C#)" 
    WARNING_FILTER += allow class="Review code for XPath injection vulnerabilities (C#)" 
    WARNING_FILTER += allow class="Review code for XSS vulnerabilities (C#)" 
    WARNING_FILTER += allow class="Review code for file path injection vulnerabilities (C#)" 
    WARNING_FILTER += allow class="Review code for information disclosure vulnerabilities (C#)" 
    WARNING_FILTER += allow class="Review code for open redirect vulnerabilities (C#)" 
    WARNING_FILTER += allow class="Review code for process command injection vulnerabilities (C#)" 
    WARNING_FILTER += allow class="Review code for regex injection vulnerabilities (C#)" 
    WARNING_FILTER += allow class="Seal methods that satisfy private interfaces (C#)" 
    WARNING_FILTER += allow class="Security Annotation Conflict (C#)" 
    WARNING_FILTER += allow class="Set HttpOnly to true for HttpCookie (C#)" 
    WARNING_FILTER += allow class="Specify StringComparison for clarity (C#)" 
    WARNING_FILTER += allow class="Static Field Too Visible (C#)" 
    WARNING_FILTER += allow class="Static holder types should be Static or NotInheritable (C#)" 
    WARNING_FILTER += allow class="Test for empty strings using string length (C#)" 
    WARNING_FILTER += allow class="Type names should not match namespaces (C#)" 
    WARNING_FILTER += allow class="Types should not extend certain base types (C#)" 
    WARNING_FILTER += allow class="URI-like parameters should not be strings (C#)" 
    WARNING_FILTER += allow class="URI-like properties should not be strings (C#)" 
    WARNING_FILTER += allow class="URI-like return values should not be strings (C#)" 
    WARNING_FILTER += allow class="Unchecked Parameter Dereference (deep) (C#)" 
    WARNING_FILTER += allow class="Unchecked Parameter Element Dereference (deep) (C#)" 
    WARNING_FILTER += allow class="Unguarded Field (C#)" 
    WARNING_FILTER += allow class="Unguarded Method (C#)" 
    WARNING_FILTER += allow class="Unguarded Parameter (C#)" 
    WARNING_FILTER += allow class="Unsafe Base64 Encoding (C#)" 
    WARNING_FILTER += allow class="Unsafe DataSet or DataTable in auto-generated serializable type can be vulnerable to remote code execution attacks (C#)" 
    WARNING_FILTER += allow class="Unsafe DataSet or DataTable in deserialized object graph can be vulnerable to remote code execution attacks (C#)" 
    WARNING_FILTER += allow class="Unsafe DataSet or DataTable in serializable type (C#)" 
    WARNING_FILTER += allow class="Unsafe DataSet or DataTable in serializable type can be vulnerable to remote code execution attacks (C#)" 
    WARNING_FILTER += allow class="Unsafe DataSet or DataTable type found in deserializable object graph (C#)" 
    WARNING_FILTER += allow class="Unsafe DataSet or DataTable type in web deserializable object graph (C#)" 
    WARNING_FILTER += allow class="Use Container Level Access Policy (C#)" 
    WARNING_FILTER += allow class="Use CreateEncryptor with the default IV (C#)" 
    WARNING_FILTER += allow class="Use DefaultDllImportSearchPaths attribute for P/Invokes (C#)" 
    WARNING_FILTER += allow class="Use Integral Or String Argument For Indexers (C#)" 
    WARNING_FILTER += allow class="Use Secure Cookies In ASP.NET Core (C#)" 
    WARNING_FILTER += allow class="Use SharedAccessProtocol HttpsOnly (C#)" 
    WARNING_FILTER += allow class="Use antiforgery tokens in ASP.NET Core MVC controllers (C#)" 
    WARNING_FILTER += allow class="Use char overload, CA1867 (C#)" 
    WARNING_FILTER += allow class="Use events where appropriate (C#)" 
    WARNING_FILTER += allow class="Use generic event handler instances (C#)" 
    WARNING_FILTER += allow class="Use literals where appropriate (C#)" 
    WARNING_FILTER += allow class="Use of Hash without a Salt (C#)" 
    WARNING_FILTER += allow class="Use properties where appropriate (C#)" 
    WARNING_FILTER += allow class="Useless null Test (C#)" 
    WARNING_FILTER += allow class="Useless null Test of Field (C#)" 
    WARNING_FILTER += allow class="Useless null Test of Parameter (C#)" 
    WARNING_FILTER += allow class="Useless null Test of Return Value (C#)" 
    WARNING_FILTER += allow class="Validate arguments of public methods (C#)" 
    WARNING_FILTER += allow class="clone Subclass of Non-clonable (C#)" 
    WARNING_FILTER += allow class="null Passed to Method (deep) (C#)" 

 (Go warning classes all allowed by default)

 (Kotlin warning classes all allowed by default)

 (Python warning classes all allowed by default)

 (Rust warning classes all allowed by default)

 (JavaScript warning classes all allowed by default)

 (TypeScript warning classes all allowed by default)

To enable additional buffer overrun checking, which can best be described as better at finding buffer overruns involving pointer arithmetic:

 WARNING_FILTER += allow class="2$Buffer Overrun"

To discard integer overflow warnings that occur entirely within system headers:

 WARNING_FILTER += discard class="Integer Overflow of Allocation Size" is_sysinclude
Factory Settings
  • WARNING_FILTER += discard effective_parse_error=true
  • WARNING_FILTER += discard language="C++" is_sysinclude
  • WARNING_FILTER += discard class="Cast Alters Value" is_sysinclude
  • WARNING_FILTER += discard class="Undefined Macro in #if" is_sysinclude
  • WARNING_FILTER += discard class="Read Past Null Terminator" procedure:"::char_traits::compare"
Tags
  • Analysis-Side Filtering

Use to specify that certain sets of procedures should not be analyzed.

Type { UNREACHABLE_FUNCTIONS, SOURCE_LIBRARIES }
Behavior
Tags
  • Analysis-Side Filtering

Provides a safeguard against misidentifying a large portion of source code as unreachable.

Type integer
Behavior The value of this parameter is used in computing set REACHABLE_FROM_ROOTS_EXTENDED.
Factory Setting
  • SOURCE_MIN_REACHABLE_FROM_ROOTS = 0

Provides a safeguard against misidentifying a large portion of source code as reachable from libraries.

Type integer
Behavior The value of this parameter is used in computing set CONSERVATIVELY_REACHABLE_FROM_SOURCE_LIBRARIES.
Notes We define sets REACHABLE_FROM_SOURCE_LIBRARIES and CONSERVATIVELY_REACHABLE_FROM_SOURCE_LIBRARIES.

REACHABLE_FROM_SOURCE_LIBRARIES is the set of all source procedures P such that:

  • P's name matches a CodeSonar library model, or
  • P is called (directly or transitively) by a procedure whose name matches a CodeSonar library model.

In some cases, the name matching may misidentify procedures as libraries, which may result in a significant number of procedures misidentified as reachable from libraries. In such cases, CodeSonar may fail to analyze a significant portion of the program, reducing the quality of the results. The use of set CONSERVATIVELY_REACHABLE_FROM_SOURCE_LIBRARIES represents a safeguard against such cases.

CONSERVATIVELY_REACHABLE_FROM_SOURCE_LIBRARIES is defined as follows. Let S be the set of all source procedures in the analyzed project (for a source-only analysis, all procedures are source procedures).

  • If |REACHABLE_FROM_SOURCE_LIBRARIES|/|S| is greater than SOURCE_MAX_REACHABLE_FROM_LIBRARIES/100, CONSERVATIVELY_REACHABLE_FROM_SOURCE_LIBRARIES is the empty set.
  • Otherwise, CONSERVATIVELY_REACHABLE_FROM_SOURCE_LIBRARIES is equal to REACHABLE_FROM_SOURCE_LIBRARIES.
Factory Setting
  • SOURCE_MAX_REACHABLE_FROM_LIBRARIES = 100

Use the BAD_FUNCTION_* family of parameters to define warning classes that indicate the use of specific (prohibited) functions.

Type
  • BAD_FUNCTION_REGEX: Boost 'POSIX Extended Regular Expression'
  • BAD_FUNCTION_MESSAGE: string
  • BAD_FUNCTION_CATEGORIES: string
  • BAD_FUNCTION_BASE_RANK: number
  • BAD_FUNCTION_INFO: string
  • BAD_FUNCTION_LINK: string representing a URL
  • BAD_FUNCTION_SIGNIFICANCE: { UNSPECIFIED, SECURITY, RELIABILITY, REDUNDANCY, STYLE, DIAGNOSTIC }
Behavior These parameters are used together to specify bad functions to check for and warnings to issue when those functions occur.
  • BAD_FUNCTION_REGEX is a regular expression. If a reference to a function that matches this is found, then a warning is issued. Matches are with respect to the "friendly name" of the function's associated symbol [C++: procedure::get_symbol(); symbol::name() | Python: procedure.get_symbol(); symbol.name() | C: cs_pdg_abs_loc(); cs_abs_loc_friendly_string()]. In C compilation units, this is the procedure name only (no type information or name qualification). In C++ compilation units, it will also include template instantiations, name qualification, and argument types.
  • BAD_FUNCTION_MESSAGE will be used as the warning class name. It defaults to "Bad Function". If the message contains any characters that are special to HTML, they must be HTML-encoded.
  • BAD_FUNCTION_CATEGORIES is the set of categories for the warning, as a semicolon-separated list. This defaults to the empty string.
  • BAD_FUNCTION_BASE_RANK is the base rank assigned to the warning, with default 15.0.
  • BAD_FUNCTION_INFO will be used in the warning description box. The default value is "Use of <function/><code>()</code> is not recommended because it is correlated with security or safety problems." Use <function/> to name the function that matched the regex. Use <code></code> for snippets of code. Use <paragraph></paragraph> to delimit paragraphs. Use <link url="linkURL">linktext</link> to link "linktext" to linkURL.
  • BAD_FUNCTION_LINK specifies a URL for further information. Values beginning with "#' are interpreted relative to the CodeSonar manual root. If a value is specified, CodeSonar will append 'See <a href="...">here</a> for more information.' to the text in the warning description box. If no value is specified, and BAD_FUNCTION_INFO is also not specified, CodeSonar will look for a category beginning with "BADFUNC" in the BAD_FUNCTION_CATEGORIES list. If there is such a category, CodeSonar will add the "See here..." sentence with a link to the corresponding warning class page.
  • BAD_FUNCTION_SIGNIFICANCE is a string representing the Significance classification for this warning class.
Notes Parameter BAD_FUNCTION_RANK is deprecated in favor of BAD_FUNCTION_BASE_RANK; the two currently have identical behavior.

If two or more sets of BAD_FUNCTION_* rules have the same BAD_FUNCTION_MESSAGE value, the same warning class will be used to cover all cases. Therefore, sets of rules with the same BAD_FUNCTION_MESSAGE should also have the same BAD_FUNCTION_CATEGORIES, BAD_FUNCTION_INFO, and BAD_FUNCTION_BASE_RANK values (that is, they should only differ in the BAD_FUNCTION_REGEX setting).

Similarly, if a set of BAD_FUNCTION_* rules has a BAD_FUNCTION_MESSAGE that is the same as the name of a standard CodeSonar warning class, the category and base rank settings of the standard class will apply and any BAD_FUNCTION_CATEGORIES or BAD_FUNCTION_BASE_RANK specified in the set will not be used.

Example 1: the following specifies that uses of the function "gets" should be flagged as warnings.

     BAD_FUNCTION_REGEX = ^gets$
     BAD_FUNCTION_MESSAGE = Use of gets
     BAD_FUNCTION_CATEGORIES = BADFUNC.BO.GETS;CWE:242
     BAD_FUNCTION_BASE_RANK = 1.0
     BAD_FUNCTION_SIGNIFICANCE = SECURITY

Example 2: the following introduces a warning on use of the function "memset". This warning is useful because some compilers may insecurely remove the call during optimization. See CWE:14 for details.

     BAD_FUNCTION_REGEX = ^memset$
     BAD_FUNCTION_MESSAGE = Use of memset
     BAD_FUNCTION_CATEGORIES = BADFUNC.MEMSET;CWE:14
     BAD_FUNCTION_BASE_RANK = 10.0
     BAD_FUNCTION_SIGNIFICANCE = SECURITY

If you are writing BAD_FUNCTION_* rule sets for a C++ compilation unit and want to precisely match exactly one function, you will need the precise "friendly name" of the function's associated symbol. Rather than attempting to predict the name, we strongly recommend that you recover it using the CodeSonar API. For example, you could use the CodeSonar Plug-In API to write a plug-in that traverses the procedures of the project, printing the associated symbol name for each.

    import cs
    @cs.procedure_visitor
    def proc(p):
        print('\nFUNCTION NAME:', p.get_symbol().name())

For example, suppose we have a C++ compilation unit that includes the following.

  namespace ns{
    // ...
    class C {
      public:
        int myfunc(void);   // function of interest
      //...
    };
    //...
  }

The CodeSonar API reports that the name of the marked "function of interest" is ns::C::myfunc().

We can use the following rule to match uses of this function and only of this function.

  BAD_FUNCTION_REGEX = ^ns::C::myfunc\(\)$

If ns::C::myfunc() is overloaded, only uses with no arguments will match.

We can remove the delimiters from the regular expression to widen the search:

  BAD_FUNCTION_REGEX = ns::C::myfunc\(\)

This will match all uses of ns::C::myfunc(), but will also match uses of otherns::C::myfunc() and so on.

We can remove the namespace and class qualifiers to widen the search further:

  BAD_FUNCTION_REGEX = myfunc\(\)

This will also match functions such as ns:C:myfunc, ns:B:myfunc, otherns::D::othermyfunc().

If we remove the parenthesized parameter list the match is wider still:

  BAD_FUNCTION_REGEX = myfunc

This will also match ns:B:a_myfunc_2, and even otherns::myfunc::fname().

It is important to note that none of the following will match ANY use of the function of interest in this compilation unit.

  BAD_FUNCTION_REGEX = ^myfunc$
  BAD_FUNCTION_REGEX = ^myfunc()$
  BAD_FUNCTION_REGEX = ^myfunc\(void\)$

The second of these non-matching rules is equivalent to the first, since its parentheses aren't escaped and so are interpreted as subexpression delimiters rather than literal characters. The third expresses a type signature that is semantically equivalent to that in the name, but is not a string match.

The $str$Class_Name form used in some of the BAD_FUNCTION_MESSAGE factory settings is for internal CodeSecure use. Do not imitate this format: specify plain class names as shown in the examples above.

Factory Settings
  • BAD_FUNCTION_REGEX = ^crypt$
  • BAD_FUNCTION_MESSAGE = $Insecure Randomness$Use of crypt
  • BAD_FUNCTION_CATEGORIES = BADFUNC.CRYPT;BSI:CRYPT-01;BSI:CRYPT-02;CWE:326;CWE:330
  • BAD_FUNCTION_BASE_RANK = 40.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^gets$|^_get(t|w)s$
  • BAD_FUNCTION_MESSAGE = $Dangerous Function$Use of gets
  • BAD_FUNCTION_CATEGORIES = BADFUNC.BO.GETS;BSI:GETS;CWE:120;CWE:242
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^_?tmpfile$
  • BAD_FUNCTION_MESSAGE = $Insecure Temporary File$Use of tmpfile
  • BAD_FUNCTION_CATEGORIES = BADFUNC.TEMP.TMPFILE;BSI:TMPNAM-TMPFILE;BSI:Truncate;CWE:377
  • BAD_FUNCTION_BASE_RANK = 42.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^tmpnam(_r)?$|^_(t|w)tmpnam$
  • BAD_FUNCTION_MESSAGE = $Insecure Temporary File$Use of tmpnam
  • BAD_FUNCTION_CATEGORIES = BADFUNC.TEMP.TMPNAM;BSI:TMPNAM-TMPFILE;BSI:Truncate;CWE:377
  • BAD_FUNCTION_BASE_RANK = 43.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^tempnam$|^_(t|w)?tempnam$
  • BAD_FUNCTION_MESSAGE = $Insecure Temporary File$Use of tmpnam
  • BAD_FUNCTION_CATEGORIES = BADFUNC.TEMP.TMPNAM;BSI:TMPNAM-TMPFILE;BSI:Truncate;CWE:377
  • BAD_FUNCTION_BASE_RANK = 43.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^GetTempFileName(A|W)?$
  • BAD_FUNCTION_MESSAGE= Use of GetTempFileName
  • BAD_FUNCTION_CATEGORIES = BADFUNC.TEMP.GETTEMPFILENAME;BSI:GetTempFileName;CWE:377
  • BAD_FUNCTION_BASE_RANK = 43.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^setjmp$
  • BAD_FUNCTION_MESSAGE = $Call to setjmp$Use of setjmp
  • BAD_FUNCTION_CATEGORIES = BADFUNC.SETJMP;CWE:676;CWE:691;CWE:710;CWE:1170;Misra2012:21.4;Misra2004:20.7;MisraC++2008:17-0-5;AUTOSARC++14:M17-0-5;CERT-C:MSC22-C;CERT-CPP:ERR52-CPP;JPL:11;POW10:1
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^longjmp$
  • BAD_FUNCTION_MESSAGE = $Call to longjmp$Use of longjmp
  • BAD_FUNCTION_CATEGORIES = BADFUNC.LONGJMP;CWE:676;CWE:691;CWE:710;CWE:1170;Misra2012:21.4;Misra2004:20.7;MisraC++2008:17-0-5;AUTOSARC++14:M17-0-5;CERT-C:MSC22-C;CERT-CPP:ERR52-CPP;JPL:11;POW10:1
  • BAD_FUNCTION_BASE_RANK = 12.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^mktemp$|^_(t|w)?mktemp$
  • BAD_FUNCTION_MESSAGE = $Insecure Temporary File$Use of mktemp
  • BAD_FUNCTION_CATEGORIES = BADFUNC.TEMP.MKTEMP;BSI:MKTEMP;CWE:377
  • BAD_FUNCTION_BASE_RANK = 47.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^sleep|usleep|taskDelay|nanosleep|clock_nanosleep$
  • BAD_FUNCTION_MESSAGE = Task Delay Function
  • BAD_FUNCTION_CATEGORIES = CONCURRENCY.BADFUNC.DELAY;JPL:7
  • BAD_FUNCTION_SIGNIFICANCE = RELIABILITY
  • BAD_FUNCTION_REGEX = ^osal_task_delay|osal_task_pause$
  • BAD_FUNCTION_MESSAGE = Task Delay Function
  • BAD_FUNCTION_CATEGORIES = CONCURRENCY.BADFUNC.DELAY;JPL:7
  • BAD_FUNCTION_SIGNIFICANCE = RELIABILITY
  • BAD_FUNCTION_REGEX = ^puts|printf|vprintf$
  • BAD_FUNCTION_MESSAGE = Leftover Debug Code
  • BAD_FUNCTION_CATEGORIES = LANG.STRUCT.DBG;CWE:489
  • BAD_FUNCTION_SIGNIFICANCE = STYLE
  • BAD_FUNCTION_REGEX = ^system$|^_wsystem$
  • BAD_FUNCTION_MESSAGE = Use of system
  • BAD_FUNCTION_CATEGORIES = BADFUNC.PATH.SYSTEM;CWE:676;CWE:1165;Misra2004:20.11;Misra2012:21.8;MisraC++2008:18-0-3;AUTOSARC++14:M18-0-3;CERT-C:ENV33-C;TS17961:5.8-syscall;DISA-4r3:V-70261;DISA-3r10:V-6157;DISA-3r10:V-16810
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^AddAccessAllowedAce$
  • BAD_FUNCTION_MESSAGE = Use of AddAccessAllowedAce
  • BAD_FUNCTION_CATEGORIES = BADFUNC.ADDACCESSACE;BSI:AddAccess-ACE;CWE:269;CWE:281
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^AddAccessDeniedAce$
  • BAD_FUNCTION_MESSAGE = Use of AddAccessDeniedAce
  • BAD_FUNCTION_CATEGORIES = BADFUNC.ADDACCESSACE;BSI:AddAccess-ACE;CWE:269;CWE:281
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^AfxLoadLibrary$
  • BAD_FUNCTION_MESSAGE = Use of AfxLoadLibrary
  • BAD_FUNCTION_CATEGORIES = BADFUNC.PATH.AFXLOADLIBRARY;BSI:AfxLoadLibrary;CWE:426
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^CoLoadLibrary$
  • BAD_FUNCTION_MESSAGE = Use of CoLoadLibrary
  • BAD_FUNCTION_CATEGORIES = BADFUNC.PATH.COLOADLIBRARY;BSI:AfxLoadLibrary;CWE:426
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^AfxParseURL$
  • BAD_FUNCTION_MESSAGE = Use of AfxParseURL
  • BAD_FUNCTION_CATEGORIES = BADFUNC.AFXPARSEURL;BSI:AfxParseURL;CWE:242
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^catopen$
  • BAD_FUNCTION_MESSAGE = Use of catopen
  • BAD_FUNCTION_CATEGORIES = BADFUNC.CATOPEN;BSI:Catopen;CWE:242
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^chroot$
  • BAD_FUNCTION_MESSAGE = Use of chroot
  • BAD_FUNCTION_CATEGORIES = BADFUNC.CHROOT;BSI:CHROOT-01;BSI:CHROOT-02;BSI:CHROOT-03;CWE:242
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^CreateFile(A|W)?$
  • BAD_FUNCTION_MESSAGE = Use of CreateFile
  • BAD_FUNCTION_CATEGORIES = BADFUNC.CREATEFILE;BSI:CreateFile-01;BSI:CreateFile-02;CWE:242
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^CreateProcess(A|W)?$|^CreateProcessAsUser(A|W)?$|^CreateProcessWithLogonW$
  • BAD_FUNCTION_MESSAGE = Use of CreateProcess
  • BAD_FUNCTION_CATEGORIES = BADFUNC.CREATEPROCESS;BSI:CreateProcess-02;BSI:CreateProcess-03;BSI:CreateProcess-04;CWE:242
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^CreateThread$
  • BAD_FUNCTION_MESSAGE = Use of CreateThread
  • BAD_FUNCTION_CATEGORIES = BADFUNC.CREATETHREAD;BSI:CreateThread;CWE:242
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^cuserid$
  • BAD_FUNCTION_MESSAGE = Use of cuserid
  • BAD_FUNCTION_CATEGORIES = BADFUNC.CUSERID;BSI:CUSERID;CWE:477;CWE:863
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^_w?execlp?e?$|^_w?execvp?e?$
  • BAD_FUNCTION_MESSAGE = Use of _exec
  • BAD_FUNCTION_CATEGORIES = BADFUNC.PATH._EXEC;BSI:Exec-SearchPath-01;BSI:Exec-SearchPath-02;CWE:426
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^execlp$
  • BAD_FUNCTION_MESSAGE = Use of execlp
  • BAD_FUNCTION_CATEGORIES = BADFUNC.PATH.EXECLP;BSI:Exec-SearchPath-01;CWE:426
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^execvp$
  • BAD_FUNCTION_MESSAGE = Use of execvp
  • BAD_FUNCTION_CATEGORIES = BADFUNC.PATH.EXECVP;BSI:Exec-SearchPath-01;CWE:426
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^popen$
  • BAD_FUNCTION_MESSAGE = Use of popen
  • BAD_FUNCTION_CATEGORIES = BADFUNC.PATH.POPEN;BSI:Exec-SearchPath-01;CWE:426
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^_w?spawnlp?e?$|^_w?spawnvp?e?$
  • BAD_FUNCTION_MESSAGE = Use of _spawn
  • BAD_FUNCTION_CATEGORIES = BADFUNC.PATH._SPAWN;BSI:Exec-SearchPath-01;BSI:Exec-SearchPath-02;CWE:426
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^FormatMessage(A|W)?$
  • BAD_FUNCTION_MESSAGE = Use of FormatMessage
  • BAD_FUNCTION_CATEGORIES = BADFUNC.FORMATMESSAGE;BSI:FormatMessage;CWE:134;CWE:242
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^getlogin$
  • BAD_FUNCTION_MESSAGE = Use of getlogin
  • BAD_FUNCTION_CATEGORIES = BADFUNC.GETLOGIN;BSI:GETLOGIN;CWE:863
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^getopt(_long(_only)?)?$
  • BAD_FUNCTION_MESSAGE = Use of getopt
  • BAD_FUNCTION_CATEGORIES = BADFUNC.BO.GETOPT;BSI:GETOPT;CWE:120;CWE:242
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^getpass$
  • BAD_FUNCTION_MESSAGE = Use of getpass
  • BAD_FUNCTION_CATEGORIES = BADFUNC.BO.GETPASS;BSI:GETPASS;CWE:120;CWE:242
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^LoadLibrary(A|W)?$|^LoadLibraryEx(A|W)?$
  • BAD_FUNCTION_MESSAGE = Use of LoadLibrary
  • BAD_FUNCTION_CATEGORIES = BADFUNC.PATH.LOADLIBRARY;BSI:LoadLibrary;CWE:426
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^(std::)?memset(\(.*\))?$
  • BAD_FUNCTION_MESSAGE = Use of memset
  • BAD_FUNCTION_CATEGORIES = BADFUNC.MEMSET;CWE:14
  • BAD_FUNCTION_BASE_RANK = 10.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^(d|e|j|l|m|n|s)rand48$|^seed48$|^lcong48$
  • BAD_FUNCTION_MESSAGE = Use of rand48 Function
  • BAD_FUNCTION_CATEGORIES = BADFUNC.RANDOM.RAND48;BSI:MetaRule;CWE:330
  • BAD_FUNCTION_BASE_RANK = 45.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^(std::)?s?rand(\(.*\))?$
  • BAD_FUNCTION_MESSAGE = Use of rand
  • BAD_FUNCTION_CATEGORIES = BADFUNC.RANDOM.RAND;BSI:MetaRule;CWE:330
  • BAD_FUNCTION_BASE_RANK = 45.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^s?random$
  • BAD_FUNCTION_MESSAGE = Use of random
  • BAD_FUNCTION_CATEGORIES = BADFUNC.RANDOM.RANDOM;BSI:MetaRule;CWE:330
  • BAD_FUNCTION_BASE_RANK = 45.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^mkstemp$
  • BAD_FUNCTION_MESSAGE = $Insecure Temporary File$Use of mkstemp
  • BAD_FUNCTION_CATEGORIES = BADFUNC.TEMP.MKSTEMP;BSI:Mkstemp;CWE:377
  • BAD_FUNCTION_BASE_RANK = 47.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^MoveFile(A|W)?$
  • BAD_FUNCTION_MESSAGE = Use of MoveFile
  • BAD_FUNCTION_CATEGORIES = BADFUNC.MOVEFILE;BSI:MoveFile;CWE:477
  • BAD_FUNCTION_BASE_RANK = 45.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^OemToChar(A|W)?$
  • BAD_FUNCTION_MESSAGE = Use of OemToChar
  • BAD_FUNCTION_CATEGORIES = BADFUNC.BO.OEMTOCHAR;BSI:OemToChar;CWE:120;CWE:242
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^OemToAnsi(A|W)?$
  • BAD_FUNCTION_MESSAGE = Use of OemToAnsi
  • BAD_FUNCTION_CATEGORIES = BADFUNC.BO.OEMTOCHAR;BSI:OemToChar;CWE:120;CWE:242
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^recvmsg$
  • BAD_FUNCTION_MESSAGE = Use of recvmsg
  • BAD_FUNCTION_CATEGORIES = BADFUNC.BO.RECVMSG;BSI:RecvMsg;CWE:120;CWE:242
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^ShellExecute(A|W)?$|^ShellExecuteEx(A|W)?$
  • BAD_FUNCTION_MESSAGE = Use of ShellExecute
  • BAD_FUNCTION_CATEGORIES = BADFUNC.PATH.SHELLEXECUTE;BSI:ShellExecute;CWE:426
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^SHCreateProcessAsUserW$
  • BAD_FUNCTION_MESSAGE = Use of SHCreateProcessAsUserW
  • BAD_FUNCTION_CATEGORIES = BADFUNC.PATH.SHCREATEPROCESSASUSERW;BSI:SHCreateProcessAsUserW;CWE:426
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^signal$
  • BAD_FUNCTION_MESSAGE = Use of signal
  • BAD_FUNCTION_CATEGORIES = BADFUNC.SIGNAL;CWE:676;CWE:1166;CWE:1169;MisraC++2008:18-7-1;AUTOSARC++14:M18-7-1;CERT-C:CON37-C;CERT-C:SIG34-C;CERT-C:SIG02-C;TS17961:5.3-accsig;TS17961:5.5-asyncsig;TS17961:5.7-sigcall;BSI:SIGNAL-01
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^setuid$
  • BAD_FUNCTION_MESSAGE = Use of setuid
  • BAD_FUNCTION_CATEGORIES = BADFUNC.SETUID;BSI:SIGNAL-02;CWE:242
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^lstrcat(A|W)?$|^strc?cat$|^StrCat(A|W)$|^olestrcat$
  • BAD_FUNCTION_MESSAGE = Use of strcat
  • BAD_FUNCTION_CATEGORIES = BADFUNC.BO.STRCAT;BSI:STRCAT;CWE:120;CWE:242
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^_?mbscat$|^_f?tcscat$|^wcscat$
  • BAD_FUNCTION_MESSAGE = Use of strcat
  • BAD_FUNCTION_CATEGORIES = BADFUNC.BO.STRCAT;BSI:STRCAT;CWE:120;CWE:242
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^StrCatChainW$
  • BAD_FUNCTION_MESSAGE = Use of StrCatChainW
  • BAD_FUNCTION_CATEGORIES = BADFUNC.BO.STRCATCHAINW;BSI:StrCatChainW;CWE:120;CWE:242;CWE:251
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^l?strcmpi?$
  • BAD_FUNCTION_MESSAGE = Use of strcmp
  • BAD_FUNCTION_CATEGORIES = BADFUNC.BO.STRCMP;CWE:251;CWE:676;CWE:1161;MisraC++2008:18-0-5;AUTOSARC++14:M18-0-5;CERT-C:STR07-C;BSI:STRCMP
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^strcpy$|^StrCpy(A|W)?$|^strccpy$|^strcadd$
  • BAD_FUNCTION_MESSAGE = Use of strcpy
  • BAD_FUNCTION_CATEGORIES = BADFUNC.BO.STRCPY;CWE:251;CWE:676;CWE:1161;MisraC++2008:18-0-5;AUTOSARC++14:M18-0-5;CERT-C:STR07-C;TS17961:5.36-taintstrcpy;BSI:STRCPY
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^(ua)?lstrcpy(A|W)?$|^olestrcpy$
  • BAD_FUNCTION_MESSAGE = Use of strcpy
  • BAD_FUNCTION_CATEGORIES = BADFUNC.BO.STRCPY;CWE:251;CWE:676;CWE:1161;MisraC++2008:18-0-5;AUTOSARC++14:M18-0-5;CERT-C:STR07-C;TS17961:5.36-taintstrcpy;BSI:STRCPY
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^_f?tcscpy$|^_?mbscpy$|^wcscpy$
  • BAD_FUNCTION_MESSAGE = Use of strcpy
  • BAD_FUNCTION_CATEGORIES = BADFUNC.BO.STRCPY;CWE:251;CWE:676;CWE:1161;MisraC++2008:18-0-5;AUTOSARC++14:M18-0-5;CERT-C:STR07-C;TS17961:5.36-taintstrcpy;BSI:STRCPY
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^l?strlen$
  • BAD_FUNCTION_MESSAGE = Use of strlen
  • BAD_FUNCTION_CATEGORIES = BADFUNC.BO.STRLEN;CWE:251;CWE:676;CWE:1161;MisraC++2008:18-0-5;AUTOSARC++14:M18-0-5;CERT-C:STR07-C;BSI:STRLEN
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^_mbslen$|^_tcslen$|^wcslen$
  • BAD_FUNCTION_MESSAGE = Use of strlen
  • BAD_FUNCTION_CATEGORIES = BADFUNC.BO.STRLEN;CWE:251;CWE:676;CWE:1161;MisraC++2008:18-0-5;AUTOSARC++14:M18-0-5;CERT-C:STR07-C;BSI:STRLEN
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^strtrns$
  • BAD_FUNCTION_MESSAGE = Use of strtrns
  • BAD_FUNCTION_CATEGORIES = BADFUNC.BO.STRTRNS;BSI:STRTRNS;CWE:120;CWE:242;CWE:251
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^strchr$
  • BAD_FUNCTION_MESSAGE = Use of strchr
  • BAD_FUNCTION_CATEGORIES = BADFUNC.BO.STRCHR;CWE:251;CWE:676;CWE:1161;MisraC++2008:18-0-5;AUTOSARC++14:M18-0-5;CERT-C:STR07-C;
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^strcoll$
  • BAD_FUNCTION_MESSAGE = Use of strcoll
  • BAD_FUNCTION_CATEGORIES = BADFUNC.BO.STRCOLL;CWE:251;CWE:676;CWE:1161;MisraC++2008:18-0-5;AUTOSARC++14:M18-0-5;CERT-C:STR07-C;
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^strcspn$
  • BAD_FUNCTION_MESSAGE = Use of strcspn
  • BAD_FUNCTION_CATEGORIES = BADFUNC.BO.STRCSPN;CWE:251;CWE:676;CWE:1161;MisraC++2008:18-0-5;AUTOSARC++14:M18-0-5;CERT-C:STR07-C;
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^strpbrk$
  • BAD_FUNCTION_MESSAGE = Use of strpbrk
  • BAD_FUNCTION_CATEGORIES = BADFUNC.BO.STRPBRK;CWE:251;CWE:676;CWE:1161;MisraC++2008:18-0-5;AUTOSARC++14:M18-0-5;CERT-C:STR07-C;
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^strrchr$
  • BAD_FUNCTION_MESSAGE = Use of strrchr
  • BAD_FUNCTION_CATEGORIES = BADFUNC.BO.STRRCHR;CWE:251;CWE:676;CWE:1161;MisraC++2008:18-0-5;AUTOSARC++14:M18-0-5;CERT-C:STR07-C;
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^strspn$
  • BAD_FUNCTION_MESSAGE = Use of strspn
  • BAD_FUNCTION_CATEGORIES = BADFUNC.BO.STRSPN;CWE:251;CWE:676;CWE:1161;MisraC++2008:18-0-5;AUTOSARC++14:M18-0-5;CERT-C:STR07-C;
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^strstr$
  • BAD_FUNCTION_MESSAGE = Use of strstr
  • BAD_FUNCTION_CATEGORIES = BADFUNC.BO.STRSTR;CWE:251;CWE:676;CWE:1161;MisraC++2008:18-0-5;AUTOSARC++14:M18-0-5;CERT-C:STR07-C;
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^strtok$
  • BAD_FUNCTION_MESSAGE = Use of strtok
  • BAD_FUNCTION_CATEGORIES = BADFUNC.BO.STRTOK;CWE:251;CWE:676;CWE:1161;MisraC++2008:18-0-5;AUTOSARC++14:M18-0-5;CERT-C:STR07-C;
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^syslog$
  • BAD_FUNCTION_MESSAGE = Use of syslog
  • BAD_FUNCTION_CATEGORIES = BADFUNC.BO.SYSLOG;BSI:SYSLOG-1;CWE:120;CWE:242
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^t_open$
  • BAD_FUNCTION_MESSAGE = Use of t_open
  • BAD_FUNCTION_CATEGORIES = BADFUNC.T_OPEN;BSI:T_Open;CWE:242
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^ttyname$
  • BAD_FUNCTION_MESSAGE = Use of ttyname
  • BAD_FUNCTION_CATEGORIES = BADFUNC.TTYNAME;BSI:TTYNAME;CWE:242
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^vfork$
  • BAD_FUNCTION_MESSAGE = Use of vfork
  • BAD_FUNCTION_CATEGORIES = BADFUNC.VFORK;BSI:VFORK;CWE:242
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^getwd$
  • BAD_FUNCTION_MESSAGE = Use of getwd
  • BAD_FUNCTION_CATEGORIES = BADFUNC.BO.GETWD;BSI:GETWD;CWE:120;CWE:242
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^LoadModule$
  • BAD_FUNCTION_MESSAGE = Use of LoadModule
  • BAD_FUNCTION_CATEGORIES = BADFUNC.LOADMODULE;BSI:LoadModule;CWE:477
  • BAD_FUNCTION_BASE_RANK = 44.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^realpath$
  • BAD_FUNCTION_MESSAGE = Use of realpath
  • BAD_FUNCTION_CATEGORIES = BADFUNC.BO.REALPATH;BSI:REALPATH;CWE:785
  • BAD_FUNCTION_BASE_RANK = 46.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^WinExec$
  • BAD_FUNCTION_MESSAGE = Use of WinExec
  • BAD_FUNCTION_CATEGORIES = BADFUNC.WINEXEC;BSI:WinExec;CWE:477
  • BAD_FUNCTION_BASE_RANK = 48.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^(clearerr|ctermid|cuserid|fclose|fdopen|feof|ferror|fflush|fgetc|fgetpos|fgets|fileno|flockfile|fopen|fprintf|fputc|fputs|fread|freopen|fscanf|fseek|fseeko|fsetpos|ftell|ftello|ftrylockfile|funlockfile|fwrite|getc|getchar|getc_unlocked|getchar_unlocked|getopt|gets|getw|pclose|perror|popen|printf|putc|putchar|putc_unlocked|putchar_unlocked|puts|putw|remove|rename|rewind|scanf|setbuf|setvbuf|snprintf|sprintf|sscanf|tempnam|tmpfile|tmpnam|ungetc|vfprintf|vprintf|vsnprintf|vsprintf)$
  • BAD_FUNCTION_MESSAGE = Use of <stdio.h> Input/Output
  • BAD_FUNCTION_CATEGORIES = BADFUNC.STDIO_H;CWE:676;CWE:758;Misra2004:20.9;Misra2012:21.6;MisraC++2008:27-0-1;AUTOSARC++14:M27-0-1
  • BAD_FUNCTION_BASE_RANK = 10
  • BAD_FUNCTION_SIGNIFICANCE = STYLE
  • BAD_FUNCTION_REGEX = ^(btowc|fwprintf|fwscanf|iswalnum|iswalpha|iswcntrl|iswdigit|iswgraph|iswlower|iswprint|iswpunct|iswspace|iswupper|iswxdigit|iswctype|fgetwc|fgetws|fputwc|fputws|fwide|getwc|getwchar|mbsinit|mbrlen|mbrtowc|mbsrtowcs|putwc|putwchar|swprintf|swscanf|towlower|towupper|ungetwc|vfwprintf|vwprintf|vswprintf|wcrtomb|wcscat|wcschr|wcscmp|wcscoll|wcscpy|wcscspn|wcsftime|wcslen|wcsncat|wcsncmp|wcsncpy|wcspbrk|wcsrchr|wcsrtombs|wcsspn|wcsstr|wcstod|wcstok|wcstol|wcstoul|wcswcs|wcswidth|wcsxfrm|wctob|wctype|wcwidth|wmemchr|wmemcmp|wmemcpy|wmemmove|wmemset|wprintf|wscanf)$
  • BAD_FUNCTION_MESSAGE = Use of <wchar.h> Input/Output
  • BAD_FUNCTION_CATEGORIES = BADFUNC.WCHAR_H;Misra2004:20.9;CWE:676;CWE:758;Misra2012:21.6;MisraC++2008:27-0-1;AUTOSARC++14:M27-0-1
  • BAD_FUNCTION_BASE_RANK = 10
  • BAD_FUNCTION_SIGNIFICANCE = STYLE
  • BAD_FUNCTION_REGEX = ^(atof)$
  • BAD_FUNCTION_MESSAGE = Use of atof
  • BAD_FUNCTION_CATEGORIES = BADFUNC.ATOF;Misra2012:21.7;Misra2004:20.10;CWE:758;CWE:676
  • BAD_FUNCTION_BASE_RANK = 10
  • BAD_FUNCTION_SIGNIFICANCE = STYLE
  • BAD_FUNCTION_REGEX = ^(atoi)$
  • BAD_FUNCTION_MESSAGE = Use of atoi
  • BAD_FUNCTION_CATEGORIES = BADFUNC.ATOI;Misra2012:21.7;Misra2004:20.10;CWE:758;CWE:676
  • BAD_FUNCTION_BASE_RANK = 10
  • BAD_FUNCTION_SIGNIFICANCE = STYLE
  • BAD_FUNCTION_REGEX = ^(atol)$
  • BAD_FUNCTION_MESSAGE = Use of atol
  • BAD_FUNCTION_CATEGORIES = BADFUNC.ATOL;Misra2012:21.7;Misra2004:20.10;CWE:758;CWE:676
  • BAD_FUNCTION_BASE_RANK = 10
  • BAD_FUNCTION_SIGNIFICANCE = STYLE
  • BAD_FUNCTION_REGEX = ^(atoll)$
  • BAD_FUNCTION_MESSAGE = Use of atoll
  • BAD_FUNCTION_CATEGORIES = BADFUNC.ATOLL;Misra2012:21.7;Misra2004:20.10;CWE:758;CWE:676
  • BAD_FUNCTION_BASE_RANK = 10
  • BAD_FUNCTION_SIGNIFICANCE = STYLE
  • BAD_FUNCTION_REGEX = ^(abort)$
  • BAD_FUNCTION_MESSAGE = Use of abort
  • BAD_FUNCTION_CATEGORIES = BADFUNC.ABORT;CWE:676;CWE:758;Misra2012:21.8;Misra2004:20.11;MisraC++2008:18-0-3;AUTOSARC++14:M18-0-3;CERT-CPP:ERR50-CPP
  • BAD_FUNCTION_BASE_RANK = 10
  • BAD_FUNCTION_SIGNIFICANCE = STYLE
  • BAD_FUNCTION_REGEX = ^(exit)$
  • BAD_FUNCTION_MESSAGE = Use of exit
  • BAD_FUNCTION_CATEGORIES = BADFUNC.EXIT;CWE:676;CWE:758;Misra2012:21.8;Misra2004:20.11;MisraC++2008:18-0-3;AUTOSARC++14:M18-0-3;CERT-CPP:ERR50-CPP
  • BAD_FUNCTION_BASE_RANK = 10
  • BAD_FUNCTION_SIGNIFICANCE = STYLE
  • BAD_FUNCTION_REGEX = ^(getenv)$
  • BAD_FUNCTION_MESSAGE = Use of getenv
  • BAD_FUNCTION_CATEGORIES = BADFUNC.GETENV;CWE:676;CWE:758;Misra2004:20.11;MisraC++2008:18-0-3;AUTOSARC++14:M18-0-3
  • BAD_FUNCTION_BASE_RANK = 10
  • BAD_FUNCTION_SIGNIFICANCE = STYLE
  • BAD_FUNCTION_REGEX = ^(putenv)$
  • BAD_FUNCTION_MESSAGE = Use of putenv
  • BAD_FUNCTION_CATEGORIES = BADFUNC.PUTENV
  • BAD_FUNCTION_BASE_RANK = 10
  • BAD_FUNCTION_SIGNIFICANCE = STYLE
  • BAD_FUNCTION_REGEX = ^(bsearch)$
  • BAD_FUNCTION_MESSAGE = Use of bsearch
  • BAD_FUNCTION_CATEGORIES = BADFUNC.BSEARCH;Misra2012:21.9;CWE:758;CWE:676
  • BAD_FUNCTION_BASE_RANK = 10
  • BAD_FUNCTION_SIGNIFICANCE = STYLE
  • BAD_FUNCTION_REGEX = ^(qsort)$
  • BAD_FUNCTION_MESSAGE = Use of qsort
  • BAD_FUNCTION_CATEGORIES = BADFUNC.QSORT;Misra2012:21.9;CWE:400;CWE:676
  • BAD_FUNCTION_BASE_RANK = 10
  • BAD_FUNCTION_SIGNIFICANCE = STYLE
  • BAD_FUNCTION_REGEX = ^(asctime|asctime_r|clock|clock_getres|clock_gettime|clock_settime|ctime|ctime_r|difftime|getdate|gmtime|gmtime_r|localtime|localtime_r|mktime|nanosleep|strftime|strptime|time|timer_create|timer_delete|timer_gettime|timer_getoverrun|timer_settime|tzset)$
  • BAD_FUNCTION_MESSAGE = Use of <time.h> Time/Date Function
  • BAD_FUNCTION_CATEGORIES = BADFUNC.TIME_H;CWE:676;CWE:758;Misra2004:20.12;Misra2012:21.10;MisraC++2008:18-0-4;AUTOSARC++14:M18-0-4
  • BAD_FUNCTION_BASE_RANK = 10
  • BAD_FUNCTION_SIGNIFICANCE = STYLE
  • BAD_FUNCTION_REGEX = ^(feclearexcept|fegetexceptflag|feraiseexcept|fesetexceptflag|fetestexcept|fegetround|fesetround|fegetenv|feholdexcept|fesetenv|feupdateenv)$
  • BAD_FUNCTION_MESSAGE = Use of <fenv.h> Exception Handling Function
  • BAD_FUNCTION_CATEGORIES = BADFUNC.FENV_H;Misra2012:21.12
  • BAD_FUNCTION_BASE_RANK = 10
  • BAD_FUNCTION_SIGNIFICANCE = STYLE
  • BAD_FUNCTION_REGEX = ^[dD][eE][sS]_ecb(2)?_encrypt$
  • BAD_FUNCTION_MESSAGE = Weak Cryptography
  • BAD_FUNCTION_CATEGORIES = BADFUNC.WEAKCRYPTO;CWE:327
  • BAD_FUNCTION_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^[dD][eE][sS]_(x|n|p)cbc_encrypt$
  • BAD_FUNCTION_MESSAGE = Weak Cryptography
  • BAD_FUNCTION_CATEGORIES = BADFUNC.WEAKCRYPTO;CWE:327
  • BAD_FUNCTION_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^[dD][eE][sS]_(c|o)fb(64)?_encrypt$
  • BAD_FUNCTION_MESSAGE = Weak Cryptography
  • BAD_FUNCTION_CATEGORIES = BADFUNC.WEAKCRYPTO;CWE:327
  • BAD_FUNCTION_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^[dD][eE][sS]_ede2_(cbc|cfb64|ofb64)_encrypt$
  • BAD_FUNCTION_MESSAGE = Weak Cryptography
  • BAD_FUNCTION_CATEGORIES = BADFUNC.WEAKCRYPTO;CWE:327
  • BAD_FUNCTION_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^[dD][eE][sS]_(f)?crypt$
  • BAD_FUNCTION_MESSAGE = Weak Cryptography
  • BAD_FUNCTION_CATEGORIES = BADFUNC.WEAKCRYPTO;CWE:327
  • BAD_FUNCTION_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^MD(2|4|5)(_Init|_Update|_Final)?$
  • BAD_FUNCTION_MESSAGE = Weak Cryptography
  • BAD_FUNCTION_CATEGORIES = BADFUNC.WEAKCRYPTO;CWE:327
  • BAD_FUNCTION_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^ptrace$
  • BAD_FUNCTION_MESSAGE = Possible Anti-Debugging
  • BAD_FUNCTION_CATEGORIES = BADFUNC.ANTIDEBUG
  • BAD_FUNCTION_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^IsDebuggerPresent$
  • BAD_FUNCTION_MESSAGE = Possible Anti-Debugging
  • BAD_FUNCTION_CATEGORIES = BADFUNC.ANTIDEBUG
  • BAD_FUNCTION_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^NtQueryInformationProcess$
  • BAD_FUNCTION_MESSAGE = Possible Anti-Debugging
  • BAD_FUNCTION_CATEGORIES = BADFUNC.ANTIDEBUG
  • BAD_FUNCTION_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^ProcessDebugObjectHandle$
  • BAD_FUNCTION_MESSAGE = Possible Anti-Debugging
  • BAD_FUNCTION_CATEGORIES = BADFUNC.ANTIDEBUG
  • BAD_FUNCTION_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^RtlQueryProcessHeapInformation$
  • BAD_FUNCTION_MESSAGE = Possible Anti-Debugging
  • BAD_FUNCTION_CATEGORIES = BADFUNC.ANTIDEBUG
  • BAD_FUNCTION_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^RtlQueryProcessDebugInformation$
  • BAD_FUNCTION_MESSAGE = Possible Anti-Debugging
  • BAD_FUNCTION_CATEGORIES = BADFUNC.ANTIDEBUG
  • BAD_FUNCTION_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^SetUnhandledExceptionFilter$
  • BAD_FUNCTION_MESSAGE = Possible Anti-Debugging
  • BAD_FUNCTION_CATEGORIES = BADFUNC.ANTIDEBUG
  • BAD_FUNCTION_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^NtCreateDebugObject$
  • BAD_FUNCTION_MESSAGE = Possible Anti-Debugging
  • BAD_FUNCTION_CATEGORIES = BADFUNC.ANTIDEBUG
  • BAD_FUNCTION_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^NtQuerySystemInformation$
  • BAD_FUNCTION_MESSAGE = Possible Anti-Debugging
  • BAD_FUNCTION_CATEGORIES = BADFUNC.ANTIDEBUG
  • BAD_FUNCTION_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^_?_?gamma[fl]?$
  • BAD_FUNCTION_MESSAGE = Use of gamma
  • BAD_FUNCTION_CATEGORIES = BADFUNC.FLOAT.GAMMA
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = RELIABILITY
  • BAD_FUNCTION_REGEX = ^_?_?drem[fl]?$
  • BAD_FUNCTION_MESSAGE = Use of drem
  • BAD_FUNCTION_CATEGORIES = BADFUNC.FLOAT.DREM
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = RELIABILITY
  • BAD_FUNCTION_REGEX = ^(malloc|calloc|realloc|free)$
  • BAD_FUNCTION_MESSAGE = Use of <stdlib.h> Allocator/Deallocator
  • BAD_FUNCTION_CATEGORIES = BADFUNC.STDLIB_H_MEM;AUTOSARC++14:18-5-1;Misra2012:21.3;Misra2004:20.4;JPL:5;CWE:710;POW10:3
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = STYLE
  • BAD_FUNCTION_REGEX = ^XML_ExternalEntityParserCreate$
  • BAD_FUNCTION_MESSAGE = Use of XML_ExternalEntityParserCreate
  • BAD_FUNCTION_CATEGORIES = BADFUNC.XML_EXTERNALENTITYPARSERCREATE;OWASP-2017:A4
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^(std::)?memcmp(\(.*\))?$
  • BAD_FUNCTION_MESSAGE = Use of memcmp
  • BAD_FUNCTION_CATEGORIES = BADFUNC.MEMCMP
  • BAD_FUNCTION_BASE_RANK = 10.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = cnd_(timed)?wait|pthread_cond_(timed)?wait|SleepConditionVariableCS|std::condition_variable::wait
  • BAD_FUNCTION_MESSAGE = Use of Condition Variable Wait
  • BAD_FUNCTION_CATEGORIES = CONCURRENCY.BADFUNC.CNDWAIT
  • BAD_FUNCTION_BASE_RANK = 10.0
  • BAD_FUNCTION_SIGNIFICANCE = RELIABILITY
  • BAD_FUNCTION_REGEX = ^fork$
  • BAD_FUNCTION_MESSAGE = Use of fork
  • BAD_FUNCTION_CATEGORIES = BADFUNC.FORK
  • BAD_FUNCTION_BASE_RANK = 10.0
  • BAD_FUNCTION_SIGNIFICANCE = RELIABILITY
  • BAD_FUNCTION_REGEX = ^pthread_kill$
  • BAD_FUNCTION_MESSAGE = Use of pthread_kill
  • BAD_FUNCTION_CATEGORIES = CONCURRENCY.BADFUNC.PTHREAD_KILL
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = RELIABILITY
  • BAD_FUNCTION_REGEX = std::condition_variable::notify_one|cnd_signal|pthread_cond_signal|WakeConditionVariable
  • BAD_FUNCTION_MESSAGE = Use of Condition Variable Signal
  • BAD_FUNCTION_CATEGORIES = CONCURRENCY.BADFUNC.CNDSIGNAL
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = RELIABILITY
  • BAD_FUNCTION_REGEX = ^realloc$
  • BAD_FUNCTION_MESSAGE = Use of realloc
  • BAD_FUNCTION_CATEGORIES = BADFUNC.REALLOC
  • BAD_FUNCTION_BASE_RANK = 1.0
  • BAD_FUNCTION_SIGNIFICANCE = SECURITY
  • BAD_FUNCTION_REGEX = ^(std::)?setlocale(\(.*)?$
  • BAD_FUNCTION_MESSAGE = Use of setlocale
  • BAD_FUNCTION_REGEX = ^std::locale::global\(
  • BAD_FUNCTION_MESSAGE = Use of std::locale::global
  • BAD_FUNCTION_REGEX = [ ]std::bind[<\(]
  • BAD_FUNCTION_MESSAGE = Use of std::bind
  • BAD_FUNCTION_REGEX = ^std::vector<bool[,>][^~]*$
  • BAD_FUNCTION_MESSAGE = Use of std::vector<bool>
  • BAD_FUNCTION_CATEGORIES = LANG.TYPE.VECTOR.BOOL;MisraC++2023:26.3.1;AUTOSARC++14:A18-1-2
  • BAD_FUNCTION_REGEX = ^(isalnum|isalpha|iscntrl|isdigit|isgraph|islower|isprint|ispunct|isspace|isblank|isupper|isxdigit|tolower|toupper)$
  • BAD_FUNCTION_MESSAGE = Use of <cctype> Function
  • BAD_FUNCTION_REGEX = ^(iswalnum|iswalpha|iswblank|iswcntrl|iswctype|iswdigit|iswgraph|iswlower|iswprint|iswpunct|iswspace|iswupper|iswxdigit|towctrans|towlower|towupper)$
  • BAD_FUNCTION_MESSAGE = Use of <cwctype> Function
  • BAD_FUNCTION_REGEX = ^tmpfile_s$
  • BAD_FUNCTION_MESSAGE = Use of tmpfile_s
  • BAD_FUNCTION_REGEX = ^tmpnam_s$
  • BAD_FUNCTION_MESSAGE = Use of tmpnam_s
  • BAD_FUNCTION_REGEX = ^fopen_s$
  • BAD_FUNCTION_MESSAGE = Use of fopen_s
  • BAD_FUNCTION_REGEX = ^freopen_s$
  • BAD_FUNCTION_MESSAGE = Use of freopen_s
  • BAD_FUNCTION_REGEX = ^snprintf_s$
  • BAD_FUNCTION_MESSAGE = Use of snprintf_s
  • BAD_FUNCTION_REGEX = ^sprintf_s$
  • BAD_FUNCTION_MESSAGE = Use of sprintf_s
  • BAD_FUNCTION_REGEX = ^printf_s$
  • BAD_FUNCTION_MESSAGE = Use of printf_s
  • BAD_FUNCTION_REGEX = ^fprintf_s$
  • BAD_FUNCTION_MESSAGE = Use of fprintf_s
  • BAD_FUNCTION_REGEX = ^vprintf_s$
  • BAD_FUNCTION_MESSAGE = Use of vprintf_s
  • BAD_FUNCTION_REGEX = ^vfprintf_s$
  • BAD_FUNCTION_MESSAGE = Use of vfprintf_s
  • BAD_FUNCTION_REGEX = ^vsprintf_s$
  • BAD_FUNCTION_MESSAGE = Use of vsprintf_s
  • BAD_FUNCTION_REGEX = ^vsnprintf_s$
  • BAD_FUNCTION_MESSAGE = Use of vsnprintf_s
  • BAD_FUNCTION_REGEX = ^scanf_s$
  • BAD_FUNCTION_MESSAGE = Use of scanf_s
  • BAD_FUNCTION_REGEX = ^vscanf_s$
  • BAD_FUNCTION_MESSAGE = Use of vscanf_s
  • BAD_FUNCTION_REGEX = ^vsscanf_s$
  • BAD_FUNCTION_MESSAGE = Use of vsscanf_s
  • BAD_FUNCTION_REGEX = ^sscanf_s$
  • BAD_FUNCTION_MESSAGE = Use of sscanf_s
  • BAD_FUNCTION_REGEX = ^fscanf_s$
  • BAD_FUNCTION_MESSAGE = Use of fscanf_s
  • BAD_FUNCTION_REGEX = ^vfscanf_s$
  • BAD_FUNCTION_MESSAGE = Use of vfscanf_s
  • BAD_FUNCTION_REGEX = ^gets_s$
  • BAD_FUNCTION_MESSAGE = Use of gets_s
  • BAD_FUNCTION_REGEX = ^constraint_handler_t$
  • BAD_FUNCTION_MESSAGE = Use of constraint_handler_t
  • BAD_FUNCTION_REGEX = ^set_constraint_handler_s$
  • BAD_FUNCTION_MESSAGE = Use of set_constraint_handler_s
  • BAD_FUNCTION_REGEX = ^abort_handler_s$
  • BAD_FUNCTION_MESSAGE = Use of abort_handler_s
  • BAD_FUNCTION_REGEX = ^ignore_handler_s$
  • BAD_FUNCTION_MESSAGE = Use of ignore_handler_s
  • BAD_FUNCTION_REGEX = ^getenv_s$
  • BAD_FUNCTION_MESSAGE = Use of getenv_s
  • BAD_FUNCTION_REGEX = ^bsearch_s$
  • BAD_FUNCTION_MESSAGE = Use of bsearch_s
  • BAD_FUNCTION_REGEX = ^qsort_s$
  • BAD_FUNCTION_MESSAGE = Use of qsort_s
  • BAD_FUNCTION_REGEX = ^wctomb_s$
  • BAD_FUNCTION_MESSAGE = Use of wctomb_s
  • BAD_FUNCTION_REGEX = ^mbstowcs_s$
  • BAD_FUNCTION_MESSAGE = Use of mbstowcs_s
  • BAD_FUNCTION_REGEX = ^wcstombs_s$
  • BAD_FUNCTION_MESSAGE = Use of wcstombs_s
  • BAD_FUNCTION_REGEX = ^memcpy_s$
  • BAD_FUNCTION_MESSAGE = Use of memcpy_s
  • BAD_FUNCTION_REGEX = ^memset_s$
  • BAD_FUNCTION_MESSAGE = Use of memset_s
  • BAD_FUNCTION_REGEX = ^memmove_s$
  • BAD_FUNCTION_MESSAGE = Use of memmove_s
  • BAD_FUNCTION_REGEX = ^strcpy_s$
  • BAD_FUNCTION_MESSAGE = Use of strcpy_s
  • BAD_FUNCTION_REGEX = ^strncpy_s$
  • BAD_FUNCTION_MESSAGE = Use of strncpy_s
  • BAD_FUNCTION_REGEX = ^strnlen_s$
  • BAD_FUNCTION_MESSAGE = Use of strnlen_s
  • BAD_FUNCTION_REGEX = ^strcat_s$
  • BAD_FUNCTION_MESSAGE = Use of strcat_s
  • BAD_FUNCTION_REGEX = ^strncat_s$
  • BAD_FUNCTION_MESSAGE = Use of strncat_s
  • BAD_FUNCTION_REGEX = ^strtok_s$
  • BAD_FUNCTION_MESSAGE = Use of strtok_s
  • BAD_FUNCTION_REGEX = ^strerror_s$
  • BAD_FUNCTION_MESSAGE = Use of strerror_s
  • BAD_FUNCTION_REGEX = ^strerrorlen_s$
  • BAD_FUNCTION_MESSAGE = Use of strerrorlen_s
  • BAD_FUNCTION_REGEX = ^fwprintf_s$
  • BAD_FUNCTION_MESSAGE = Use of fwprintf_s
  • BAD_FUNCTION_REGEX = ^fwscanf_s$
  • BAD_FUNCTION_MESSAGE = Use of fwscanf_s
  • BAD_FUNCTION_REGEX = ^snwprintf_s$
  • BAD_FUNCTION_MESSAGE = Use of snwprintf_s
  • BAD_FUNCTION_REGEX = ^swprintf_s$
  • BAD_FUNCTION_MESSAGE = Use of swprintf_s
  • BAD_FUNCTION_REGEX = ^swscanf_s$
  • BAD_FUNCTION_MESSAGE = Use of swscanf_s
  • BAD_FUNCTION_REGEX = ^vfwprintf_s$
  • BAD_FUNCTION_MESSAGE = Use of vfwprintf_s
  • BAD_FUNCTION_REGEX = ^vfwscanf_s$
  • BAD_FUNCTION_MESSAGE = Use of vfwscanf_s
  • BAD_FUNCTION_REGEX = ^vsnwprintf_s$
  • BAD_FUNCTION_MESSAGE = Use of vsnwprintf_s
  • BAD_FUNCTION_REGEX = ^vswprintf_s$
  • BAD_FUNCTION_MESSAGE = Use of vswprintf_s
  • BAD_FUNCTION_REGEX = ^vswscanf_s$
  • BAD_FUNCTION_MESSAGE = Use of vswscanf_s
  • BAD_FUNCTION_REGEX = ^vwprintf_s$
  • BAD_FUNCTION_MESSAGE = Use of vwprintf_s
  • BAD_FUNCTION_REGEX = ^vwscanf_s$
  • BAD_FUNCTION_MESSAGE = Use of vwscanf_s
  • BAD_FUNCTION_REGEX = ^wprintf_s$
  • BAD_FUNCTION_MESSAGE = Use of wprintf_s
  • BAD_FUNCTION_REGEX = ^wscanf_s$
  • BAD_FUNCTION_MESSAGE = Use of wscanf_s
  • BAD_FUNCTION_REGEX = ^wcscpy_s$
  • BAD_FUNCTION_MESSAGE = Use of wcscpy_s
  • BAD_FUNCTION_REGEX = ^wcsncpy_s$
  • BAD_FUNCTION_MESSAGE = Use of wcsncpy_s
  • BAD_FUNCTION_REGEX = ^wmemcpy_s$
  • BAD_FUNCTION_MESSAGE = Use of wmemcpy_s
  • BAD_FUNCTION_REGEX = ^wmemmove_s$
  • BAD_FUNCTION_MESSAGE = Use of wmemmove_s
  • BAD_FUNCTION_REGEX = ^wcscat_s$
  • BAD_FUNCTION_MESSAGE = Use of wcscat_s
  • BAD_FUNCTION_REGEX = ^wcsncat_s$
  • BAD_FUNCTION_MESSAGE = Use of wcsncat_s
  • BAD_FUNCTION_REGEX = ^wcstok_s$
  • BAD_FUNCTION_MESSAGE = Use of wcstok_s
  • BAD_FUNCTION_REGEX = ^wcsnlen_s$
  • BAD_FUNCTION_MESSAGE = Use of wcsnlen_s
  • BAD_FUNCTION_REGEX = ^wcrtomb_s$
  • BAD_FUNCTION_MESSAGE = Use of wcrtomb_s
  • BAD_FUNCTION_REGEX = ^mbsrtowcs_s$
  • BAD_FUNCTION_MESSAGE = Use of mbsrtowcs_s
  • BAD_FUNCTION_REGEX = ^wcsrtombs_s$
  • BAD_FUNCTION_MESSAGE = Use of wcsrtombs_s
  • BAD_FUNCTION_REGEX = ^asctime_s$
  • BAD_FUNCTION_MESSAGE = Use of asctime_s
  • BAD_FUNCTION_REGEX = ^ctime_s$
  • BAD_FUNCTION_MESSAGE = Use of ctime_s
  • BAD_FUNCTION_REGEX = ^gmtime_s$
  • BAD_FUNCTION_MESSAGE = Use of gmtime_s
  • BAD_FUNCTION_REGEX = ^localtime_s$
  • BAD_FUNCTION_MESSAGE = Use of localtime_s
  • BAD_FUNCTION_REGEX = ^std::.*::(linear_congruential_engine|mersenne_twister_engine|subtract_with_carry_engine|philox_engine|discard_block_engine|independent_bits_engine|shuffle_order_engine)\(\)$
  • BAD_FUNCTION_MESSAGE = Default Initialization of Random Number Generator
Tags
  • Designates Specially-Treated Functions

Specifies filenames of C++, Python, and C plug-ins to load.

Type string
Behavior The specified files will be loaded as plug-ins.

CodeSonar will instantiate variable $GTHOME with the path to the CodeSonar installation.

Notes For example:
  PLUGINS += /tmp/pname.py
  PLUGINS += /tmp/pname.so
  PLUGINS += /tmp/pname.dll
  PLUGINS += /tmp/pname.bundle
  PLUGINS += $GTHOME/projectXplugins/pname.so
  PLUGINS += c:\Documents and Settings\Bob\Desktop\pname.dll

For more information about CodeSonar plug-ins, see CodeSonar Plug-In API.

Distributed analysis slaves will use the PLUGINS setting from the analysis master (not the one from the slave's associated launch daemon).

For plug-ins using other languages:

CodeSonar SaaS Note: If you are using CodeSonar SaaS, PLUGINS can only be used to load plug-ins that were shipped with CodeSonar in directory $GTHOME/plugins. To install other plug-ins, including any custom plug-ins you have created, contact CodeSecure support for assistance.

Tags
  • Governs the Build/Analysis

Specifies the JVM DLL or shared object to use for all Java plug-ins.

Type string
Behavior The specified string will be treated as the absolute path to the Java DLL or shared object.

CodeSonar will instantiate variable $GTHOME with the path to the CodeSonar installation.

Notes The Java API for CodeSonar currently has beta-level support. For more information, see the notes on API Languages.

For example:

  JAVA_PLUGIN_JVM = C:\Program Files\Java\jre6\bin\server\jvm.dll
  JAVA_PLUGIN_JVM = /usr/lib/jvm/java-6-openjdk-amd64/jre/lib/amd64/server/libjvm.so
  JAVA_PLUGIN_JVM = /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/lib/server/libjvm.dylib

In some situations on Mac OS, Java may falsely complain that it isn't installed (JDK-7131356). One workaround is to use libjli.dylib instead of libjvm.dylib:

  JAVA_PLUGIN_JVM = /Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home/jre/lib/jli/libjli.dylib
Tags
  • Governs the Build/Analysis

Specifies the Java classpath for all Java plug-ins.

Type string
Behavior Multiple directories can be placed in the classpath by using the += operator.

CodeSonar will instantiate variable $GTHOME with the path to the CodeSonar installation.

Notes The Java API for CodeSonar currently has beta-level support. For more information, see the notes on API Languages.

For example:

  JAVA_PLUGIN_CLASSPATH += c:\pluginclasspath
Tags
  • Governs the Build/Analysis

Specifies additional flags passed to the JVM.

Type string
Behavior Multiple flags can be specified by using the += operator. Place one flag on each line.

The flags are forwarded to JNI_CreateJavaVM in the options field of the JavaVMInitArgs parameter.

Notes The Java API for CodeSonar currently has beta-level support. For more information, see the notes on API Languages.

For example:

  JAVA_PLUGIN_JVM_FLAGS += -Xmx2g
  JAVA_PLUGIN_JVM_FLAGS += -Djava.compiler=NONE
  JAVA_PLUGIN_JVM_FLAGS += -Djava.library.path=c:\mylibs
  JAVA_PLUGIN_JVM_FLAGS += -verbose:jni
Tags
  • Governs the Build/Analysis

Specifies a Java plug-in by naming the Java class whose main() method should be invoked.

Type string, representing a fully-qualified class name: use / as the package separator if the class is in a package.
Behavior The specified string will be used as the name argument to the JNI FindClass() function; the main() function of the identified class will be invoked as a CodeSonar plug-in.
Notes The Java API for CodeSonar currently has beta-level support. For more information, see the notes on API Languages.

Below is a small sample plug-in.

  import com.codesecure.cs.*;
  import java.lang.*;

  class echo_point_visitor extends point_visitor{
      public echo_point_visitor() throws result{}

      public void visit(point p)
      {
          System.out.println("Java visits " + p);
      }
  };

  public class Test{
      public static void main() {
          try{
              analysis.add_point_visitor(new echo_point_visitor());
          }catch(result r){
              System.out.println(r);
          }
      }
  }

Then to include this plug-in, make sure the path to the class file/package is specified with JAVA_PLUGIN_CLASSPATH, then use JAVA_PLUGIN_CLASSES to specify the class name:

 JAVA_PLUGIN_CLASSES += Test

or, if it is in a package:

 JAVA_PLUGIN_CLASSES += com/example/csplugin/Test

CodeSonar SaaS Note: If you are using CodeSonar SaaS, JAVA_PLUGIN_CLASSES can only be used to load plug-ins that were shipped with CodeSonar in directory $GTHOME/plugins. To install other plug-ins, including any custom plug-ins you have created, contact CodeSecure support for assistance.

Tags
  • Governs the Build/Analysis

The version of the .NET framework used to build the assemblies specified by CSHARP_PLUGINS (if any).

Type string
Behavior This string is passed to the Microsoft function CorBindToRuntimeEx as the first argument. It must be exactly correct, or the assembly will not load. This value can be obtained by running csc /? and inspecting the first line of output.
Notes The C# API for CodeSonar currently has beta-level support. For more information, see the notes on API Languages.
Tags
  • Governs the Build/Analysis

A list of plug-in .NET assemblies.

Type string
Behavior The += operator can be used to load multiple plug-ins. Each assembly should contain all the .cs files in codesonar\src\api\csharp\*.cs.

Each assembly must contain a class named Main with a public static method named main, with signature:

  public static int main(String dummy)

CodeSonar will instantiate variable $GTHOME with the path to the CodeSonar installation.

Notes The C# API for CodeSonar currently has beta-level support. For more information, see the notes on API Languages.

Below is a small sample plug-in.

  using System;

  class echo_point_visitor: point_visitor{
      public echo_point_visitor(){}

      public override void visit(point p)
      {
          /* Always wrap visitors in exception handlers.  If an
           * exception isn't caught, behavior is undefined.
           */
          try{
              Console.WriteLine("csharp visits " + p);
          }
          catch( Exception e )
          {
              Console.WriteLine(e);
          }
      }
  };

  public class Main
  {
     public static int main(String dummy)
     {
          /* Always wrap everything in an exception handler.  If an
           * exception isn't caught, behavior is undefined.
           */
          try{
              analysis.add_point_visitor(new echo_point_visitor());
          }
          catch( Exception e )
          {
              Console.WriteLine(e);
          }
          return 0; // ignored
     }
  }

CodeSonar SaaS Note: If you are using CodeSonar SaaS, CSHARP_PLUGINS can only be used to load plug-ins that were shipped with CodeSonar in directory $GTHOME/plugins. To install other plug-ins, including any custom plug-ins you have created, contact CodeSecure support for assistance.

Tags
  • Governs the Build/Analysis

Specifies whether or not implied unsafe behavior due to equality/disequality is sufficient cause to issue warnings.

Type { Yes, No }
Behavior
  • No : warnings will not be produced just because conditionals along a path imply unsafe behavior due to equality (==) or disequality (!=); satisfying assignments to the variables must also exist.
Notes Setting this to "No" will decrease the false positive rate and increase the false negative rate.

If set to "No", then the following would be suppressed (assuming CodeSonar does not find a place where p is assigned NULL):

     if( p == NULL )
        *p = 42;

but this would not:

     p = NULL;
     if( p == NULL )
        *p = 42;

It may be difficult to find vulnerabilities in functions that are never called when this is set to "No", since the values of the procedure inputs are never assigned.

The factory setting is Yes because most programmers will not test for equality unless they believe it can happen.

The warning classes affected by this parameter are the same as those for TIME_LIMIT_INTRA_CLASSIFY.

Factory Setting
  • REPORT_IMPLIED_EQUALITY = Yes
Tags
  • Fine Tuning for Warnings

Specifies whether or not implied unsafe behavior due to inequality is sufficient cause to issue warnings.

Type { Yes, No }
Behavior
  • No : warnings will not be produced just because conditionals along a path imply unsafe behavior due to inequality (<, <=, >, >=); satisfying assignments to the variables must also exist.
Notes Setting this to "No" will decrease the false positive rate and increase the false negative rate.

If set to "No", then the following would be suppressed (assuming CodeSonar does not find a place where i is assigned a negative value):

     int A[10];
     if( i < 0 )
        A[i] = 42;

but this would not:

     int A[10];
     i = -1;
     if( i < 0 )
        A[i] = 42;

It may be difficult to find vulnerabilities in functions that are never called when this is set to "No", since the values of the procedure inputs are never assigned.

The factory setting is No because loops often have conditions that are always satisfied on the first iteration.

The warning classes affected by this parameter are the same as those for TIME_LIMIT_INTRA_CLASSIFY.

Factory Setting
  • REPORT_IMPLIED_INEQUALITY = No
Tags
  • Fine Tuning for Warnings

Seconds of inactivity before the analysis daemon shuts down to conserve system resources.

Type non-negative integer
Behavior When the web application needs certain information (such as source file listings), it queries the analysis daemon. If the analysis daemon is not running, then the web application will attempt to start it. This can take a minute or more, so timing out quickly is often undesirable.
Notes A low value can result in slow web queries if the time between applicable queries exceeds this value. A high value can result in an extra process hanging around doing nothing on the analysis machine. The factory setting is 30 minutes ( = 1800 seconds).

The analysis log will not be finalized, and so the Analysis Log contents may continue to change, until the analysis daemon times out (or is properly shut down).

Factory Setting
  • DAEMON_TIMEOUT = 1800
Tags
  • Analysis Time Limits

Seconds of inactivity when running in foreground mode before the analysis daemon shuts down to conserve system resources.

Type non-negative integer
Behavior When the web application needs certain information (such as source file listings), it queries the analysis daemon. If the analysis daemon is not running, then the web application will attempt to start it. This can take a minute or more, so timing out quickly is often undesirable.
Notes Applicable when running with FOREGROUND=Yes (or -foreground on the command line).

A low value can result in slow web queries if the time between applicable queries exceeds this value. A high value can result in an extra process hanging around doing nothing on the analysis machine.

The analysis log will not be finalized, and so the Analysis Log page contents may continue to change, until the analysis daemon times out (or is properly shut down).

Factory Setting
  • FOREGROUND_DAEMON_TIMEOUT = 5
Tags
  • Analysis Time Limits

If errors were encountered in parsing the code, specifies whether or not the analysis will run anyway

Type { Yes, No }
Behavior
  • No : the analysis will refuse to run on a project that contains parse errors. Analyzing code that contains parse errors produces suboptimal results. Depending on the nature of the parse errors, the impact could be tiny or enormous.
Notes A log of parse errors and compiler command lines can be found at <prjname>.prj_files/log.txt.
Factory Setting
  • TOLERATE_PARSE_ERRORS = Yes
Tags
  • Governs the Build/Analysis

Determines what qualifies as a Null Pointer Dereference

Type integer
Behavior For NULL_POINTER_THRESHOLD = N for some integer N, dereferences of any addresses within N bytes of 0 will be reported as Null Pointer Dereference warnings. 'Within N bytes' includes the following.
  • Positive distance: any address in the range [0,N)
  • Negative distance: any address in the range (-N,0] (this is not likely to occur deliberately, but can be the result of integer overflow)
  • Wraparound distance: any address that is within N bytes of wrapping around to 0.
Notes Non-zero values must be treated as Null Pointer Dereferences in order to catch things such as:
    int *p = &s->f; /* this is ok, even if s is null */
    *p = 42;        /* this is where the program will
                     * crash if s was null, because an
                     * address such as '4' is being dereferenced
                     * (assuming f is 4 bytes into s). */
Factory Setting
  • NULL_POINTER_THRESHOLD = 4096
Tags

Determines whether warnings will be reported in templated functions when the warning class is one of those that requires some condition to hold on all paths.

Type { Yes, No }
Behavior If set to "Yes", then warnings of classes requiring universal quantification over paths will be reported in C++ templated functions. The affected warning classes are:
Notes Setting this to "Yes" will increase the false positive rate and decrease the false negative rate for warning classes requiring universal quantification over paths.

These warnings are often not very useful. For example, if( sizeof(T)==sizeof(int) ) is likely to cause some unreachable code in some template instantations, but this isn't interesting to most users. However, useful warnings in these functions will also be lost.

Factory Setting
  • REPORT_TEMPLATE_UQ_WARNINGS = No
Tags

Determines whether exhaustive interprocedural exploration is required before reporting warnings in classes for which something must hold on all paths.

Type { Yes, No }
Behavior If set to "Yes", then warnings of classes requiring universal quantification over paths will be reported on statements preceded by calls to functions that have not been exhaustively explored. The default behavior is to suppress such warnings. The affected warning classes are:
Notes Setting this to "Yes" will increase the false positive rate and decrease the false negative rate for warning classes requiring universal quantification over paths.
Factory Setting
  • REPORT_INTER_PARTIAL_UQ_WARNINGS = No
Tags

Determines whether exhaustive exploration is required before issuing a Null Test After Dereference warning.

Type { Yes, No }
Behavior If set to "Yes", then Null Test After Dereference warnings will be issued even if all paths leading to the test have not been explored. Null Test After Dereference are only an anomaly if all paths leading to the test have dereferenced the pointer.
Notes Setting this to "Yes" will increase the false positive rate and decrease the false negative rate for Null Test After Dereference warnings.

In practice, setting this to "Yes" usually reveals more true positives than false positives.

Factory Setting
  • REPORT_PARTIAL_NTAD_WARNINGS = Yes
Tags

Determines whether calls to undefined functions and function pointer calls are considered exhaustively explored.

Type { Yes, No }
Behavior If set to "Yes", then warnings of classes requiring universal quantification over paths can be reported on statements preceded by calls to undefined functions or function pointer calls. The default behavior is to report such warnings. The affected warning classes are:
Notes Setting this to "Yes" will increase the false positive rate and decrease the false negative rate for warning classes requiring universal quantification over paths. Using the setting "No" is most useful if undefined functions and functions called using function pointers are modifying globals that are then tested by the calling function.
Factory Setting
  • UNDEF_FUNCS_EXHAUSTIVE = Yes
Tags

Seconds the analysis may spend doing intraprocedural exploration in a single procedure.

Type integer
Behavior If this time limit expires, summaries for the procedure are rolled back and the analysis will treat call sites to the procedure as if the procedure is not defined in the project.
Notes This specifies elapsed time.

This parameter affects checks for most warning classes. The classes NOT affected are:

Factory Setting
  • TIME_LIMIT_INTRA_EXPLORE = 25
Tags
  • Analysis Time Limits

Seconds the analysis may spend determining whether potential intraprocedural vulnerabilities warrant further examination, per procedure.

Type integer
Behavior Potential vulnerabilities nearer to the beginning of procedures receive preferential treatment. Once the time limit expires, potential intraprocedural vulnerabilities starting in the current procedure are ignored until the analysis moves on to the next procedure.
Notes This specifies elapsed time. The default limit is likely to be exceeded in large procedures.

This parameter affects checks for most warning classes. The classes NOT affected are:

Factory Setting
  • TIME_LIMIT_INTRA_CLASSIFY = 8
Tags
  • Analysis Time Limits

Seconds the analysis may spend determining whether potential interprocedural vulnerabilities warrant further examination, per procedure.

Type integer
Behavior Potential vulnerabilities nearer to the beginning of procedures receive preferential treatment. Once the time limit expires, potential interprocedural vulnerabilities starting in the current procedure are ignored until the analysis moves on to the next procedure.
Notes This specifies elapsed time. The default limit is likely to be exceeded in large procedures.

The warning classes affected by this parameter are the same as those for TIME_LIMIT_INTRA_CLASSIFY.

Factory Setting
  • TIME_LIMIT_INTER_CLASSIFY = 8
Tags
  • Analysis Time Limits

Seconds the analysis may spend resolving potential intra- and interprocedural vulnerabilities, per procedure.

Type integer
Behavior Once likely vulnerabilities have been identified, an intermediate refinement step takes place. This preference limits the amount of time spent on the refinement step.
Notes This specifies elapsed time. The factory setting limit is extremely unlikely to be exceeded and exists to guard against pathological behavior.

The warning classes affected by this parameter are the same as those for TIME_LIMIT_INTRA_CLASSIFY.

Factory Setting
  • TIME_LIMIT_RESOLVE = 16
Tags
  • Analysis Time Limits

Seconds the analysis may spend refining potential intra- and interprocedural vulnerabilities, per procedure.

Type integer
Behavior Once likely vulnerabilities have been identified in the classification phase, the analysis applies a refinement step both to eliminate false positives and to enhance the information contained in the warning reports. If this limit expires, then yet-to-be-refined likely vulnerabilities will be dropped.
Notes This specifies elapsed time.

The warning classes affected by this parameter are the same as those for TIME_LIMIT_INTRA_CLASSIFY.

Factory Setting
  • TIME_LIMIT_REFINE = 16
Tags
  • Analysis Time Limits

Seconds the analysis may spend rendering intra- and interprocedural vulnerabilities, per procedure.

Type integer
Behavior Once a warning is identified, the analysis renders a warning report for presentation to the user. If the rendering phase takes longer than the limit specified here, the warning is discarded.

Factors that can make rendering take a long time include extremely long lines of source code, deeply nested call stacks, and heavy use of the preprocessor.

Notes The factory setting limit is rarely exceeded and exists to guard against pathological constructs.

All warning classes can be affected by this limit.

Factory Setting
  • TIME_LIMIT_RENDER = 60

Seconds the analysis may spend determining whether potential Leak cases warrant further examination, per procedure.

Type integer
Behavior Potential leaks nearer to the beginning of procedures receive preferential treatment.
Notes This specifies elapsed time. The factory setting limit is not likely to be exceeded when the factory setting for SEARCH_BOUND is used.
Factory Setting
  • TIME_LIMIT_LEAK_CLASSIFY = 20
Tags
  • Analysis Time Limits
  • Used by Leak

Seconds the analysis may spend refining potential Leak cases, per procedure.

Type integer
Behavior Once likely leaks have been identified in the classification phase, the analysis applies a refinement step both to eliminate false positives and to enhance the information contained in the warning reports. If this limit expires, then yet-to-be-refined leaks will be dropped.
Notes This specifies elapsed time.
Factory Setting
  • TIME_LIMIT_LEAK_REFINE = 60
Tags
  • Analysis Time Limits
  • Used by Leak

Seconds the analysis may spend determining which parts of a procedure have been exhaustively explored.

Type integer
Behavior Some checks (such as those for Unreachable Code: 5 warning classes) can only be reported with respect to portions of procedures that have been exhaustively explored. Making this determination can sometimes be extremely expensive (typically in generated code).
Notes This specifies elapsed time. The factory setting limit is not likely to be exceeded: it exists to guard against pathological behavior.

The warning classes affected by this parameter are the same as those for TIME_LIMIT_INTRA_CLASSIFY.

Factory Setting
  • TIME_LIMIT_PROP_EXHAUSTIVE = 60
Tags
  • Analysis Time Limits

Bounds the time that data race analysis can spend in any subunit of work (threadA, threadB, memory_location).

Type integer
Behavior When set to integer N, specifies that a subunit of work (threadA, threadB, memory_location) in data race analysis will be terminated if it takes longer than N seconds. This can result in Data Race false negatives for the corresponding thread pair and memory location.

Units of work are also subject to time limits based on the overall time budget allocated for data race search. Full details are provided in the documentation for DATA_RACE_BARRIER_PERIOD.

Notes A subunit of work in the data race analysis is represented as a triple (threadA, threadB, memory_loc): "search for data races between threadA and threadB with respect to memory_loc, issuing warnings as appropriate".
Factory Setting
  • TIME_LIMIT_DATA_RACE_PATH_SEARCH = 600
Tags

Used to compute overall time budget for data race refinement.

Type integer
Behavior When set to integer N, specifies that the total time budget for data race search is num_procedures * N milliseconds, where num_procedures is the number of procedures in the analyzed project.

The total budget will not be exceeded. Full details of the data race budget mechanism are provided in the documentation for DATA_RACE_BARRIER_PERIOD.

Notes The factory setting (100) would allow the entire data race phase to run for almost 30 hours on a program with a million procedures (very large program).
Factory Setting
  • TIME_LIMIT_DATA_RACE_PATH_SEARCH_PER_PROCEDURE = 100
Tags

Bounds the time that taint analysis can spend refining taint warnings in a procedure.

Type integer
Behavior When set to integer N, specifies that taint refinement in a procedure will be terminated if it takes more than N seconds. This can result in taint warning false negatives for that procedure.

Units of work are also subject to time limits based on the overall time budget for taint refinement. Full details of the taint refinement budget mechanism are provided in the documentation for REFINEMENT_BARRIER_PERIOD.

Notes Once likely taint warnings have been identified in a procedure (at the start of the path), a search phase takes place to determine which of those taint warnings are valid. TIME_LIMIT_TAINT_REFINE specifies how many seconds, per procedure, this search may take.

The warning classes affected by this parameter are:

Factory Setting
  • TIME_LIMIT_TAINT_REFINE = 60
Tags
  • Analysis Time Limits

Used to compute overall time budget for taint refinement.

Type integer
Behavior When set to integer N, specifies that the total time budget for taint refinement is num_procedures * N milliseconds, where num_procedures is the number of procedures in the analyzed project.

The total budget will not be exceeded. Full details of the taint refinement budget mechanism are provided in the documentation for REFINEMENT_BARRIER_PERIOD.

Notes This specifies time per procedure in milliseconds. The factory setting (200) would allow the taint refinement phase to run for 55 hours on a program with a million procedures (very large program).
Factory Setting
  • TIME_LIMIT_TAINT_REFINE_PER_PROCEDURE = 200
Tags
  • Analysis Time Limits

Specifes exceptions to the Uninitialized Variable checks on moved-from objects (when enabled). In particular, specifies classes whose objects will not be treated as uninitialized after they have been moved from.

Type Boost 'POSIX Extended Regular Expression'
Behavior Suppose MOVED_FROM_UV_CHECK_ENABLED=Yes and we have some object O that has been left in moved-from state by a move constructor or move assignment.
  • If O's class matches a MOVED_FROM_UV_WHITELIST regular expression, CodeSonar will NOT issue a Uninitialized Variable warning if O is used while it is in moved-from state.
  • Otherwise, CodeSonar will issue a Uninitialized Variable warning in this case.

If MOVED_FROM_UV_CHECK_ENABLED=No, Uninitialized Variable warnings are never issued for uses of moved-from objects and this parameter has no effect.

Notes Objects passed to move constructors or move assignments are left in a moved-from state. The state of such objects is valid but unspecified: you can reestablish known state by, for example, assigning new values.

Certain implementations of classes in the standard library guarantee that state for some members is preserved after an object has been moved from, and then makes use of these members in subsequent assignments.

For example, some std::string implementations guarantee that the members that handle memory allocation are preserved when a string object S has been moved-from, and then use those members when S is reassigned. Because this preservation guarantee is not represented in the code, CodeSonar cannot take it into account and will issue a warning for valid reinitializations like the following.

 std::string a( "abcd" );
 std::string b( std::move( a ) );
 a = "efgh";     // *** constructor makes use of preserved members

When the code is using a std::string implementation that preserves and reuses moved-from, the assignment at the marked line will cause a Uninitialized Variable warning. The warning location will not be at the assignment, but at the statement that reuses the memory allocation member: generally in library code.

  • You can suppress this individual warning in the CodeSonar GUI or construct a WARNING_FILTER discard rule to discard it based on line contents or other properties.
  • To specify that Uninitialized Variable warnings should NEVER be issued for moved-from objects of class std::basic_string, you can use a MOVED_FROM_UV_WHITELIST rule:
 MOVED_FROM_UV_WHITELIST += ^std:.*:basic_string:
Factory Settings
  • MOVED_FROM_UV_WHITELIST += ^std:.*:unique_ptr:
  • MOVED_FROM_UV_WHITELIST += ^std:.*:shared_ptr:
  • MOVED_FROM_UV_WHITELIST += ^std:.*:weak_ptr:
  • MOVED_FROM_UV_WHITELIST += ^std:.*:basic_ios:
  • MOVED_FROM_UV_WHITELIST += ^std:.*:basic_filebuf:
  • MOVED_FROM_UV_WHITELIST += ^std:.*:thread:
  • MOVED_FROM_UV_WHITELIST += ^std:.*:unique_lock:
  • MOVED_FROM_UV_WHITELIST += ^std:.*:shared_lock:
  • MOVED_FROM_UV_WHITELIST += ^std:.*:promise:
  • MOVED_FROM_UV_WHITELIST += ^std:.*:future:
  • MOVED_FROM_UV_WHITELIST += ^std:.*:shared_future:
  • MOVED_FROM_UV_WHITELIST += ^std:.*:packaged_task:
Tags

Specifies whether objects left in moved-from state by a move constructor or move assignment should be considered uninitialized when performing checks for Uninitialized Variable.

Type { Yes, No }
Behavior
  • Yes : Issue Uninitialized Variable warnings when objects left in moved-from state are used before being reinitialized.
  • No : Do not issue Uninitialized Variable warnings for uses of moved-from objects.
Notes Objects passed to move constructors or move assignments are left in a moved-from state. The state of such objects is valid but unspecified: you can reestablish known state by, for example, assigning new values.

Use MOVED_FROM_UV_WHITELIST to suppress these warnings for individual object classes.

Factory Setting
  • MOVED_FROM_UV_CHECK_ENABLED = Yes
Tags

Bounds the time that analysis can spend figuring out live variables in a single procedure.

Type integer
Behavior When set to integer N, specifies that live variable analysis in a procedure will be terminated if it takes more than N seconds. This can result in incomplete taint information for the procedure.
Factory Setting
  • TIME_LIMIT_LIVEVAR = 60
Tags
  • Analysis Time Limits

Specifies the relative speed of the machine or machines running the analysis.

Type integer
Behavior When set to integer N, specifies that each analysis machine is N/100 times as fast as CodeSonar's benchmark "canonical machine" (approximately the speed of a high-end x86 CPU circa 2015).

This relative speed is used in determining the conversion between the time limits and "work limits" expressed by other configuration parameters: a faster computer will be expected to perform more work than a slower computer in the same amount of time.

Notes Time limit values for various processing steps, such as TIME_LIMIT_INTRA_EXPLORE, are expressed in units of time, such as seconds, but in order to make the application of these limits deterministic they are actually enforced in terms of "work", or progress through an algorithm. Since the rate of progress through an algorithm depends on CPU speed, the conversion is based in part on an estimate of this speed.

By default, CodeSonar will treat the analysis machine as having the same speed as CodeSonar's benchmark "canonical machine": approximately the speed of a high-end x86 CPU circa 2015.

  • If your analysis machine is significantly faster than the benchmark "canonical machine", analysis operations will time out sooner than they should. This can result in an increase in overall timeouts and therefore a somewhat less thorough analysis. This effect is deterministic.
  • If your analysis machine is significantly slower than the than the benchmark "canonical machine", analysis operations will time out later than they should, if at all. This can result in a longer analysis run time than expected. CodeSonar has a backup mechanism that will force a timeout if the actual time spent is much longer than the requested value. These "backup timeouts" may be more frequent on a slower computer. Since they are time-based, they are nondeterministic and when they occur they may introduce nondeterminism into the analysis.

If you observe either of these issues you can compensate for the difference in speed between your machine and the benchmark "canonical machine" by changing the setting of CPU_SPEED_ADJUSTMENT.

Example 1: Your analysis machine is 50% faster than CodeSonar's "canonical machine".

     CPU_SPEED_ADJUSTMENT = 150

Example 2: Your analysis machine is only half as fast as CodeSonar's "canonical machine".

     CPU_SPEED_ADJUSTMENT = 50

CPU_SPEED_ADJUSTMENT assumes that all of the machines used in a distributed analysis run at the same speed. If this is not the case you have two options.

  • If they are not too dissimilar in speed, use the value appropriate for the average of their speeds.
  • Otherwise, use the value appropriate for the slowest machine contributing to the analysis. This will minimize backup timeouts and the resulting potential for non-determinism.
Tags
  • Analysis Time Limits

Bounds the number of memory accesses that are tracked in a single procedure for detecting data races.

Type non-negative integer
Behavior If a procedure accesses more than this many shared variables, some variables will not be checked for data races. Raising this will result in a more thorough analysis, but will increase the time and memory used by the analysis.
Notes This only affects the analysis for Data Race warnings. If this is set to a very high number (for example, more than 200,000) CodeSonar may behave unpredictably or crash.
Factory Setting
  • DATA_RACE_MAX_MEM_ACCESSES = 1000
Tags

Bounds the number of sets held of locks that are tracked for any given (transitive) memory access.

Type non-negative integer
Behavior If a procedure accesses more than this many shared variables, some variables will not be checked for data races. Increasing the setting will result in a more thorough analysis, but will increase the time and memory used by the analysis.
Notes This only affects the analysis for Data Race warnings.

It is expected that few or no procedures will access more shared variables than the bound imposed by the factory setting (1000).

Factory Setting
  • DATA_RACE_MAX_LOCKSETS_PER_MEM_ACCESS = 1000
Tags

Controls a trade off between analysis performance and Data Race false negatives.

Type integer
Behavior When set to integer N, specifies that the CodeSonar data race analysis will have a concurrency barrier after every N units of work. For data race analysis, each unit of work is represented by a pair (threadA, threadB,): "search for data races between threads threadA and threadB".

At each concurrency barrier, the analysis determines the remaining time budget. It then uses this information to determine a per-unit-of-work budget for units of work in the next segment (that is, up to the next concurrency barrier).

See below for further details.

Notes Performance and false negative rates can be negatively affected if the setting is too high, but also if it is too low.
  • If the setting is too high, unused search budget allocations from earlier units of work will not be released in time to be reallocated to later units of work.
  • If the setting is too low, parallelism is limited. In particular, the setting should be higher than MAX_ANALYSIS_SLAVES, and CodeSonar will issue an alert if this is not the case.

The analysis computes a total time budget for data race search by multiplying the number of analyzed procedures by the TIME_LIMIT_DATA_RACE_PATH_SEARCH_PER_PROCEDURE setting. The set of all units of work for the search is divided into segments containing N units of work each, where N is the value of DATA_RACE_BARRIER_PERIOD, with a concurrency barrier at the end of each segment. At each concurrency barrier, the analysis determines the remaining time budget. It then uses this information to determine a per-unit-of-work budget for units of work in the next segment (that is, up to the next concurrency barrier). This per-unit-of-work budget is used along with TIME_LIMIT_DATA_RACE_PATH_SEARCH to limit the time that any unit of work in the next segment can take.

  • TIME_LIMIT_DATA_RACE_PATH_SEARCH is an upper bound on time spent in any given subunit of work (threadA, threadB, memory_loc).
  • The computed per-unit-of-work budget is generally lower than the value of TIME_LIMIT_DATA_RACE_PATH_SEARCH, and represents an additional bound that is checked at the end of each subunit of work (threadA, threadB, memory_loc). This means that if the per-unit-of-work budget is exhausted during a particular subunit, the subunit (and unit) will not be terminated until the path exploration finishes (unless the TIME_LIMIT_DATA_RACE_PATH_SEARCH bound is also reached during the same subunit).

If overall budget consumption has been worse than linear, the analysis may also determine that some units of work in the next segment must be skipped in order to maintain a reasonable overall budget consumption rate.

The magnitude of each unit of work depends on the settings of parameters DATA_RACE_PATH_FINDING_EFFORT, DATA_RACE_MAX_MEM_ACCESSES, DATA_RACE_MAX_LOCKSETS_PER_MEM_ACCESS, and DATA_RACE_MAX_RELATED_PATHS.

The number of units of work depends on the settings of parameters DATA_RACE_IGNORE_NAMES and MULTIPLE_THREADS_PER_ENTRY_PROCEDURE.

Factory Setting
  • DATA_RACE_BARRIER_PERIOD = 100
Tags
  • Used by Data Race
  • Analysis resource/effort limit

Controls a trade off between analysis performance and false negatives for taint-related warnings.

Type integer
Behavior When set to integer N, specifies that the CodeSonar taint refinement will have a concurrency barrier after every N units of work. For taint refinement, a unit of work comprises the set of warning refinement tasks for a procedure P.

At each concurrency barrier, the analysis determines the remaining time budget. It then uses this information to determine a per-unit-of-work budget for units of work in the next segment (that is, up to the next concurrency barrier).

See below for further details.

Notes Performance and false negative rates can be negatively affected if the setting is too high, but also if it is too low.
  • If the setting is too high, unused search budget allocations from earlier units of work will not be released in time to be reallocated to later units of work.
  • If the setting is too low, parallelism is limited. In particular, the setting should be higher than MAX_ANALYSIS_SLAVES, and CodeSonar will issue an alert if this is not the case.

The analysis computes a total time budget for taint refinement by multiplying the number of analyzed procedures by the TIME_LIMIT_TAINT_REFINE_PER_PROCEDURE setting. The set of all units of work for the search is divided into segments containing N units of work each, where N is the value of REFINEMENT_BARRIER_PERIOD, with a concurrency barrier at the end of each segment. At each concurrency barrier, the analysis determines the remaining time budget. It then uses this information to determine a per-unit-of-work budget for units of work in the next segment (that is, up to the next concurrency barrier). This per-unit-of-work budget is used along with TIME_LIMIT_TAINT_REFINE to limit the time that any unit of work in the next segment can take.

  • TIME_LIMIT_TAINT_REFINE is an upper bound on time spent in any given unit of work.
  • The computed per-unit-of-work budget is generally lower than the value of TIME_LIMIT_TAINT_REFINE, and represents an additional bound that is checked less frequently during the unit of work. This means that if the per-unit-of-work budget is exhausted during a unit of work, the unit will not be terminated until one of these checkpoints is reached (unless the TIME_LIMIT_TAINT_REFINE bound is also exceeded).

If overall budget consumption has been worse than linear, the analysis may also determine that some units of work in the next segment must be skipped in order to maintain a reasonable overall budget consumption rate.

Factory Setting
  • REFINEMENT_BARRIER_PERIOD = 10000

Specifies whether or not function summaries will be rolled back if TIME_LIMIT_INTRA_EXPLORE expires.

Type { Yes, No }
Behavior If set to "Yes", summaries for a function will be rolled back if TIME_LIMIT_INTRA_EXPLORE expires. If this happens, call sites to the function will be treated like any other undefined function.
Notes Setting this to "No" can cause false positives and false negatives. Setting this to "Yes" can cause (a different set of) false positives and false negatives.
Factory Setting
  • ROLLBACK_SUMMARIES_ON_ABORT = Yes
Tags
  • Analysis Properties

Number of paths under simultaneous consideration when exploring a procedure.

Type integer
Behavior When the number is larger, more paths are searched, but more time is used.
Notes This preference represents a trade-off between time and thoroughness. If this preference is raised, then TIME_LIMIT_INTRA_EXPLORE should usually also be raised.
Factory Setting
  • SEARCH_BOUND = 100
Tags
  • Analysis resource/effort limit

Control the "noisiness" of the path search.

Type Real number between 0 and 1 (including 1)
Behavior When adding a path to the set of paths under consideration, noise is introduced to ensure diversity of coverage. If the size of the set is less than this threshold fraction of the maximum, then the path is always added. From the threshold up to the maximum, the probability that it is added drops linearly to zero.
Notes The maximum size is determined by the applicable search bound, from SEARCH_BOUND, TAINT_SEARCH_BOUND, BINARY_SEARCH_BOUND (CSO/Binaries only), or BINARY_TAINT_SEARCH_BOUND (CSO/Binaries only), adjusted so that the average behavior is approximately the same across the threshold values.

When SEARCH_BOUND_NOISE_THRESHOLD is 1, noise is eliminated, and paths are added as long as the size of the set is not the maximum.

The noise is deterministic, so that it doesn't affect the results between multiple analyses with the samd theshold.

Factory Setting
  • SEARCH_BOUND_NOISE_THRESHOLD = 1.00
Tags
  • Analysis Properties

Specifies whether or not the analysis should consider an extended set of loop execution scenarios.

Type { Yes, No }
Behavior
  • No : The analysis will consider a standard set of loop repetition scenarios for each loop.
  • Yes : The analysis will consider several additional loop repetition scenarios along with the standard set.
Notes Code may contain one or more defects that only manifest in one of the additional Yes scenarios, so analyzing with EXPLORE_MORE_LOOP_PATHS=Yes can reveal more true positives than analyzing with EXPLORE_MORE_LOOP_PATHS=No.

Note, however, that path exploration is subject to various limits (including PATH_FINDING_EFFORT and SEARCH_BOUND), so setting this parameter to Yes does not guarantee that all the considered scenarios will ultimately be analyzed.

Factory Setting
  • EXPLORE_MORE_LOOP_PATHS = No
Tags
  • Analysis resource/effort limit

Specifies whether or not the analysis should explore the possibility of self assignment.

Type { Yes, No }
Behavior
  • Yes : The analysis will explicitly consider the self-assignment case for all assignment operations.
  • No : The analysis will only consider the self-assignment case for an assignment operation if there is a specific reason to do so. For example, it will consider the self-assignment case if the assignment operator explicitly compares the left- and right-hand sides.
Notes Set to Yes to check for violations of CERT CERT-CPP:OOP54-CPP "Gracefully handle self-copy assignment". This can reduce false negatives for issues caused by self assignment, at the cost of increased resource usage (time and space).

For example, suppose a class with a dynamically allocated member has an assignment operator which unconditionally deletes the member. This will cause undefined behavior when the operator is used for self-assignment.

 C& C::operator=(const C& rhs){
   delete this->stuff;
   this->stuff = new int(*rhs.stuff); // rhs.stuff already freed if &rhs==this
   return *this;
 }
  • If EXPLORE_SELF_ASSIGNMENT=Yes, a Use After Free warning is issued at the marked line.
  • If EXPLORE_SELF_ASSIGNMENT=No, this warning is not issued.

Setting EXPLORE_SELF_ASSIGNMENT=Yes can reduce false negatives for issues caused by self assignment, at the cost of increased resource usage (time and space).

Factory Setting
  • EXPLORE_SELF_ASSIGNMENT = Yes
Tags
  • Analysis Properties

Specifies whether or not the analysis should transfer taint to loop variables when they are compared to tainted values.

Type { Yes, No }
Behavior
  • Yes : The analysis will transfer taint to loop variables when they are compared to tainted values (in particular, when they are compared to tainted loop bounds). If the loop variable subsequently reaches a taint sink, a warning will be issued.
  • No : The analysis will not transfer taint to loop variables at such comparisons. Taint transfer to loop variables may still occur by other means, such as assignment to the variable.
Notes A "loop variable" is defined here as a variable that is incremented or decremented by a fixed amount over each loop iteration.

Example: When LOOP_TAINT_TRANSFER=Yes, the analysis will produce a Tainted Buffer Access warning at the marked location in the following code.

 int f(void) {
   char buf[1024];
   size_t n = fread( buf, 1, 1024, stdin );    // n has file taint
   int i;
   int x = 0;
   for( i = 0; i <= n; ++i )   // i is tainted by comparison with n
     x += buf[i];              // Tainted Buffer Access
 }
Factory Setting
  • LOOP_TAINT_TRANSFER = Yes
Tags
  • Analysis Properties

Specifies how suspicious CodeSonar should be about the value of loop counters in loops whose exact iteration counts are not known.

Type { 0, 1, 2, 3, 4, 5 }
Behavior
  • 0 : Never treat loop counters as adversarial
  • 1 : Treat as adversarial: loop counters in infinite loops.
  • 2 : Treat as adversarial: everything from 1, plus loop counters in loops reading input.
  • 3 : Treat as adversarial: everything from 2, plus loop counters in loops whose iteration counts can, but may not, reach some constant bound.
  • 4 : Treat as adversarial: everything from 3, plus loop counters in loops whose iteration counts can, but may not, reach some symbolic bound.
  • 5 : Treat all loop counters as adversarial.
Notes The following overruns can only be detected with sufficient values of this setting.

Requires LOOP_COUNTER_DISTRUST=1 or higher:

   void x1(){
       int i = 0; int A[10];
       for(;;){ i++; A[i] = 10; }
   }

Requires LOOP_COUNTER_DISTRUST=2 or higher:

   void x2(){
       int i = 0;
       int A[10];
       while(getchar() != 'c'){ i++; A[i] = 10; }
   }

Requires LOOP_COUNTER_DISTRUST=3 or higher:

   void x3(){
       int i = 0;
       int A[10];
       for(i = 0; i < 20; i++ ){ if( inscrutible_condition() ) break; A[i] = 10; }
   }

Requires LOOP_COUNTER_DISTRUST=4 or higher:

   void x4(){
       int i = 0; int A[10]; int j = inscrutible_number();
       for(i = 0; i < j; i++ ){ if( inscrutible_condition() ) break; A[i] = 10; }
   }

Requires LOOP_COUNTER_DISTRUST=5:

   void x5(){
       int i = 0; int A[10];
       for(i = 0; inscrutible_condition(); i++ ){ A[i] = 10; }
   }
Factory Setting
  • LOOP_COUNTER_DISTRUST = 2
Tags
  • Analysis resource/effort limit

Once a set of paths believed to contain at least one vulnerability is obtained, this many paths from the set will be searched before moving on.

Type integer
Behavior A negative setting indicates that there is no limit. Too low a (positive) setting can cause false negatives, but might save some time in pathological cases.
Notes If this preference is raised, then TIME_LIMIT_RESOLVE should usually also be raised.
Factory Setting
  • PATH_FINDING_EFFORT = 500
Tags
  • Analysis resource/effort limit

Once a set of paths believed to contain at least one vulnerability is obtained, and we have found a particular dangerous path within the set, this many total paths will be searched in an effort to find additional similar warnings within the set, or shorter versions of the same warning. Similar, in this context, is defined as a warning that violates the same (interprocedural) contract.

Type integer
Behavior A negative setting indicates that there is no limit. Too low a (positive) setting can cause false negatives, but might save some time. Setting this to 0 will prevent some warnings with similar causes to other warnings from being flagged.
Notes If this preference is raised, then TIME_LIMIT_RESOLVE should usually also be raised.
Factory Setting
  • PATH_SHORTENING_EFFORT = 30
Tags
  • Analysis resource/effort limit

Specifies whether or not the analysis should report all members of each warning group detected (as opposed to a single representative instance per group).

Type { Yes, No }
Behavior
Factory Setting
  • REPORT_SIMILAR_WARNINGS = Yes
Tags
  • Fine Tuning for Warnings

Bounds the number of similar warnings that CodeSonar will report. Only successfully refined warnings count against this limit.

Type integer
Notes "Similar paths" are paths with the same start and end points. For example, suppose you had the following code.
  int *p = 0;
  if( x )
      x = 1;
  else
      x = 2;
  *p = 42;

To see Null Pointer Dereference paths through both branches of the conditional statement, set MAX_SIMILAR_PATHS to 2 (or higher).

Most users will never need a setting higher than 1

This parameter does not significantly affect performance.

Factory Setting
  • MAX_SIMILAR_PATHS = 1
Tags
  • Analysis resource/effort limit

Bounds the number of potentially similar warnings that CodeSonar will attempt to refine. Both successfully refined warnings and dismissed warnings count against this limit.

Type integer
Notes MAX_SIMILAR_PATHS is similar to this except that it bounds the number of reported warnings. MAX_ATTEMPTED_SIMILAR_PATHS should always be at least as large as MAX_SIMILAR_PATHS.
Factory Setting
  • MAX_ATTEMPTED_SIMILAR_PATHS = 4
Tags
  • Analysis resource/effort limit

Specifies how many inputs to a procedure can be checked at call sites.

Type integer
Behavior A negative value indicates no limit. Lower (positive) values will conserve disk space and time, but can cause false negatives.
Notes This bound may be useful for projects containing millions of lines of code.

Checks for code nearer to the beginning of procedures receive preferential treatment.

Both implicit and explicit inputs are counted. For example, both the pointer passed to strlen() and the value pointed to by that pointer are counted as inputs to strlen(). Global variables transitively used by a procedure also qualify.

For the taint analysis, the number of checked inputs is bounded instead by TAINT_MAX_CHECKED_INPUTS_PER_PROCEDURE.

Factory Setting
  • MAX_CHECKED_INPUTS_PER_PROCEDURE = 100
Tags
  • Analysis resource/effort limit

Controls the maximum number of interprocedural checks that will be stored per input per procedure. When analyzing call sites to procedures, the tool examines whether these checks are satisfied in order to flag interprocedural vulnerabilities.

Type integer
Behavior A larger number means that more checks will be stored, with a corresponding increase in disk and time usage. A smaller number will save on space and time, at the cost of potentially overlooking some positive results.
Notes In some (rare) cases, a larger bound will enable more simplification to occur, improving performance and reducing false negatives.
Factory Setting
  • MAX_CHECKS_PER_INPUT = 10
Tags
  • Analysis resource/effort limit

Specifies how many levels up the call graph interprocedural checks on global variables can be propagated.

Type integer
Behavior A negative value indicates no limit (this is usually best for small to medium sized projects).

Larger values will cause CodeSonar to perform a more thorough check at the expense of system resources.

Notes Most interprocedural warnings tend to be caused by bad parameter values, not bad values in global variables. Many users will find that setting this to 0 will have little or no effect on their results and a appreciable effect on analysis performance. A value of 2 is recommended for users who want to check for bad values in global variables crossing procedure boundaries.
Factory Setting
  • MAX_GLOBAL_CHECK_AGE = 0
Tags
  • Analysis resource/effort limit

Specifies an upper bound on the number of targets that a function pointer or virtual call site may resolve to in order for interprocedural checking to be performed through that call.

Type integer
Behavior
  • N (for N>-1) : If a function pointer or virtual call site resolves to more than N targets, interprocedural checking will not be performed for paths starting before the call and ending (transitively) inside the call.
  • -1 : No such limit is imposed.
Notes Some targets of function pointer calls might only be viable in some calling contexts or under some circumstances that CodeSonar is unaware of. A low value (such as 1) can reduce false positives due to overapproximations while increasing false negatives. A setting of 1 can be particularly attractive because it is unlikely to be an overapproximation. Small settings can increase performance.
Factory Setting
  • MAX_CHECKED_FUNCTION_POINTER_RESOLVENTS = 8
Tags
  • Analysis resource/effort limit

Specifies the maximum complexity of an expression in an interprocedural check.

Type integer
Behavior Checks on expressions whose complexity exceeds this limit are discarded.
Notes Expressions with more pointer dereferences and field/array accesses have a higher complexity.
Factory Setting
  • MAX_CHECK_COMPLEXITY = 10
Tags
  • Analysis resource/effort limit

A threshold for expression complexity.

Type integer
Behavior Information about expressions whose complexity exceeds this limit is discarded.
Notes Expressions with more pointer dereferences and field/array accesses have a higher complexity.

For the taint analysis, expression complexity is bounded instead by TAINT_MAX_EXPRESSION_COMPLEXITY.

Factory Setting
  • MAX_EXPRESSION_COMPLEXITY = 24
Tags
  • Analysis resource/effort limit

Controls how many summaries per procedure will be stored in memory.

Type integer
Behavior Increasing the value for this preference may allow more precise analysis, at the cost of longer analysis time and higher memory usage.
Notes Complex procedures with a large number of possible effects may have a correspondingly large number of summaries. If this number exceeds the per-procedure maximum, CodeSonar will generate a smaller number of summaries designed to preserve as much information as possible from the original set. When the full set of original summaries is desired, change the value of this preference accordingly.
Factory Setting
  • MAX_SUMMARIES_PER_PROCEDURE = 5
Tags
  • Analysis resource/effort limit

Specifies a per-procedure bound on the number of modified values (outputs) that CodeSonar will keep track of in procedure summaries.

Type non-negative integer
Behavior If a procedure modifies more values than this maximum, CodeSonar will select values to discard from the summaries for the procedure to bring the total number of values tracked down to the maximum. Increasing the value for this preference may allow more precise analysis, at the cost of longer analysis time and higher memory usage.
Notes The values modified by a procedure may include its return value, parameters and values from its calling environment, and values derived from these.

For the taint analysis, the number of modified values is bounded instead by TAINT_MAX_MODIFIED_VALUES.

Factory Setting
  • MAX_MODIFIED_VALUES = 100
Tags
  • Analysis resource/effort limit

When a non-const pointer to an object escapes analysis, specifies a bound on the number of transitive fields of that object that the analysis should treat as potentially changed to an unknown value.

Type non-negative integer
Behavior Given MAX_CLOBBERED_FIELDS=N : if a non-const pointer to an object O escapes the analysis' ability to see how the pointer is used, the CodeSonar analysis will treat the first N fields of O as if they may have been changed to an unknown value.
  • Fields are counted in memory layout order.
  • If O has more than N transitive fields, the analysis will treat the remaining fields as if they have not been changed.
Notes Pointers can escape for a variety of reasons. One reason would be getting passed to an undefined function.
  undefined_function( &some_object );

To avoid potential false positives, the analysis will assume that undefined_function() can modify some_object. MAX_CLOBBERED_FIELDS places an upper bound on the analysis cost associated with this assumption.

Factory Setting
  • MAX_CLOBBERED_FIELDS = 200
Tags
  • Analysis resource/effort limit

Specifies a bound on the number of transitive fields of a type (such as a class or struct) that the CodeSonar analysis will copy by-value when simulating a corresponding by-value copy operation in the software under analysis.

Type non-negative integer
Behavior Given MAX_COPIED_FIELDS=N : if the software under analysis performs a by-value copy operation from object S to object D, the CodeSonar analysis will simulate this by performing a by-value copy of the first N fields of S to D.
  • Fields are counted in memory layout order.
  • If S has more than N transitive fields, the analysis will treat the remainder of D as if it has not been changed.
Notes Copying a large number of fields by-value can be resource-intensive. MAX_COPIED_FIELDS places an upper bound on the analysis cost associated with copying an object by-value.
Factory Setting
  • MAX_COPIED_FIELDS = 1000
Tags
  • Analysis resource/effort limit

Specifies whether or not the analysis will apply "exact" decision procedure refinement to warning paths. Decision procedure refinement aims to filter out some warnings that cannot occur in practice.

Type { Yes, No }
Behavior If set to Yes, the analysis will perform exact refinement: this means that the analysis runs the decision procedure on each warning path, handling procedures and loops by splitting the path into separate segments and checking them independently.

If set to No, the analysis will not perform exact refinement.

Taint+dp warnings are always excluded from exact refinement.

Notes The effects of exact refinement differ from those of approximate refinement.
  • Exact refinement is less likely to produce false negatives than approximate refinement.
  • If timeouts are disabled (via DP_REFINEMENT_EXACT_TIMEOUT=0 and DP_REFINEMENT_APPROXIMATE_TIMEOUT=0 ), exact refinement is more likely to produce false positives than approximate refinement. If they are not disabled, there is no predictable relationship between false positive rates for the two.
  • Approximate refinement typically entails larger decision problems, and with more free variables, than exact refinement. The approximate refinement problems can therefore be significantly more expensive to solve than the exact ones.

If exact refinement and approximate refinement are both ENABLED, the two refinement phases are carried out in sequence. It can be beneficial to enable both kinds of refinement because the sets of warnings that each can dismiss are incomparable.

If exact refinement and approximate refinement are both DISABLED, the analysis will take less time and have reduced risk of dismissing true positives, but will generally produce more false positives.

Taint+dp warnings are not included in exact or approximate refinement, but instead have their own refinement stage.

See DP_REFINEMENT_APPROXIMATE for more information about approximate refinement.

Parameters DP_REFINEMENT_EXACT_TIMEOUT, DP_REFINEMENT_EXACT_DISMISS, and DP_REFINEMENT_EXACT_DISMISS_TIMEOUT control various aspects of exact refinement.

Factory Setting
  • DP_REFINEMENT_EXACT = No
Tags
  • Fine Tuning for Warnings

Specifies the timeout for the decision procedure when performing exact refinement.

Type non-negative integer
Behavior
  • 0 : There is no timeout for exact refinement.
  • N (for N>0) : The decision procedure will spend N seconds on each path (or path segment, if the path has multiple segments) before giving up.
Notes If this timeout is exceeded when checking a particular warning, the warning is handled as specified by DP_REFINEMENT_EXACT_DISMISS_TIMEOUT.

To enable exact refinement, set DP_REFINEMENT_EXACT=Yes. Note that taint+dp warnings are always excluded from exact refinement.

Factory Setting
  • DP_REFINEMENT_EXACT_TIMEOUT = 2
Tags
  • Analysis Time Limits

Specifies whether or not warnings will be dismissed outright if exact refinement determines that they cannot occur.

Type { Yes, No }
Behavior
  • Yes : warnings will be dismissed outright if exact refinement determines that they cannot occur.
  • No : warnings will not be dismissed in this situation, but they will incur a small rank penalty.
Notes To enable exact refinement, set DP_REFINEMENT_EXACT=Yes. Note that taint+dp warnings are always excluded from exact refinement.
Factory Setting
  • DP_REFINEMENT_EXACT_DISMISS = Yes
Tags
  • Fine Tuning for Warnings

Specifies whether or not warnings will be dismissed if the decision procedure times out during exact refinement.

Type { Yes, No }
Behavior
  • Yes : warnings will be dismissed outright if the decision procedure times out during exact refinement.
  • No : warnings will not be dismissed in this situation, but they will incur a small rank penalty.
Notes Setting this to Yes can cause true positive warnings to be dismissed.

To enable exact refinement, set DP_REFINEMENT_EXACT=Yes. Note that taint+dp warnings are always excluded from exact refinement.

The timeout for exact refinement is controlled by DP_REFINEMENT_EXACT_TIMEOUT.

Factory Setting
  • DP_REFINEMENT_EXACT_DISMISS_TIMEOUT = No
Tags
  • Fine Tuning for Warnings

Specifies whether or not the analysis will apply "approximate" decision procedure refinement to warning paths. Decision procedure refinement aims to filter out some warnings that cannot occur in practice.

Type { Yes, No }
Behavior If set to Yes, the analysis will perform approximate refinement: this means that the analysis runs the decision procedure on each warning path, handling procedures and loops by converting their summaries into SMT formulas.
  • The CodeSonar analysis will perform approximate refinement on the core path for each warning.
  • On-demand extended path checking will also use approximate refinement.

Taint+dp warnings are always excluded from approximate refinement.

If set to No, the analysis will not perform approximate refinement.

Notes It is possible for approximate refinement to incorrectly conclude that a warning cannot occur, but this does not happen often in practice.

For approximate refinement:

See DP_REFINEMENT_EXACT for information about the differences between exact and approximate refinement. Taint+dp warnings are not included in exact or approximate refinement, but instead have their own refinement stage.

It can be beneficial to enable both forms of refinement, because the sets of warnings that each can dismiss are incomparable. In this case, the two refinement phases are carried out in sequence.

Factory Setting
  • DP_REFINEMENT_APPROXIMATE = Yes
Tags
  • Fine Tuning for Warnings

Specifies the timeout for the decision procedure when performing approximate refinement on warnings.

Type non-negative integer
Behavior
  • 0 : There is no timeout for approximate refinement.
  • N (for N>0) : The decision procedure will spend N seconds on each path before giving up.
Notes If this timeout is exceeded when checking a particular warning, the warning is handled as specified by DP_REFINEMENT_APPROXIMATE_DISMISS_TIMEOUT.

To enable approximate refinement, set DP_REFINEMENT_APPROXIMATE=Yes. Note that taint+dp warnings are always excluded from approximate refinement.

Factory Setting
  • DP_REFINEMENT_APPROXIMATE_TIMEOUT = 2
Tags
  • Analysis Time Limits

Specifies whether or not warnings will be dismissed outright if approximate refinement determines that they cannot occur.

Type { Yes, No }
Behavior
  • Yes : warnings will be dismissed outright if approximate refinement determines that they cannot occur.
  • No : warnings will not be dismissed in this situation, but they will incur a significant rank penalty.
Notes To enable approximate refinement, set DP_REFINEMENT_APPROXIMATE=Yes. Note that taint+dp warnings are always excluded from approximate refinement.
Factory Setting
  • DP_REFINEMENT_APPROXIMATE_DISMISS = Yes
Tags
  • Fine Tuning for Warnings

Specifies whether or not warnings will be dismissed if the decision procedure times out during approximate refinement.

Type { Yes, No }
Behavior
  • Yes : warnings will be dismissed outright if the decision procedure times out during approximate refinement.
  • No : warnings will not be dismissed in this situation, but they will incur a significant rank penalty.
Notes Setting this to Yes can cause true positive warnings to be dismissed. Note that taint+dp warnings are always excluded from approximate refinement.
Factory Setting
  • DP_REFINEMENT_APPROXIMATE_DISMISS_TIMEOUT = No
Tags
  • Fine Tuning for Warnings

Specifies whether or not the analysis will apply decision procedure refinement for "taint+dp" warnings.

Type { Yes, No }
Behavior If set to Yes, the analysis will perform refinement: this means that the analysis runs the decision procedure on each warning path.

If set to No, the analysis will not perform refinement. For these warning classes, there will be many false positives, since decision procedure refinement is the primary mechanism by which code is judged safe.

Notes Parameters TAINT_PLUS_DP_REFINEMENT_TIMEOUT, TAINT_PLUS_DP_REFINEMENT_DISMISS, and TAINT_PLUS_DP_REFINEMENT_DISMISS_TIMEOUT control various aspects of refinement.
Factory Setting
  • TAINT_PLUS_DP_REFINEMENT = Yes
Tags
  • Fine Tuning for Warnings

Specifies the timeout for the decision procedure when performing refinement for "taint+dp" warnings.

Type non-negative integer
Behavior
  • 0 : There is no timeout for refinement.
  • N (for N>0) : The decision procedure will spend N seconds on each path before giving up.
Notes "Taint+dp" warnings are those of the following classes.

Taint+dp warnings are not included in exact or approximate refinement (as governed by DP_REFINEMENT_EXACT, DP_REFINEMENT_EXACT, and related parameters). Instead, they undergo a dedicated refinement phase in which the analysis runs the decision procedure on each warning path, handling procedures and loops by converting their summaries into SMT formulas.

The taint+dp refinement phase cannot be disabled. Its timeouts and handling are specified by the following parameters.

Factory Setting
  • TAINT_PLUS_DP_REFINEMENT_TIMEOUT = 4
Tags

Specifies whether or not "taint+dp" warnings will be dismissed outright if refinement determines that they cannot occur.

Type { Yes, No }
Behavior
  • Yes : warnings will be dismissed outright if decision procedure refinement determines that they cannot occur.
  • No : warnings will not be dismissed in this situation, but they will incur a significant rank penalty.
Notes Handling for unfeasible non-taint+dp warnings is controlled by parameters DP_REFINEMENT_APPROXIMATE_DISMISS (approximate refinement) and DP_REFINEMENT_EXACT_DISMISS (exact refinement)
Factory Setting
  • TAINT_PLUS_DP_REFINEMENT_DISMISS = Yes
Tags

Specifies whether or not "taint+dp" warnings will be dismissed if the decision procedure times out during refinement of a taint/decision procedure warning.

Type { Yes, No }
Behavior
  • Yes : warnings will be dismissed outright if the decision procedure times out during refinement.
  • No : warnings will not be dismissed in this situation, but they will incur a significant rank penalty.
Notes Setting this to No can cause more false positive warnings to be reported.

The timeout for refining taint+dp warnings is controlled by TAINT_PLUS_DP_REFINEMENT_TIMEOUT.

Handling for non-taint+dp warnings for which the decision procedure times out is controlled by parameters DP_REFINEMENT_APPROXIMATE_DISMISS_TIMEOUT (approximate refinement) and DP_REFINEMENT_EXACT_DISMISS_TIMEOUT (exact refinement)

Factory Setting
  • TAINT_PLUS_DP_REFINEMENT_DISMISS_TIMEOUT = Yes
Tags

Specifies the threshold for reporting Ignored Return Value warnings.

Type Real number between 0 and 1 (inclusive)
Behavior If less than this fraction of calls to some function have their return code ignored, then CodeSonar will issue Ignored Return Value warnings for those calls.

Parameter RETURN_CHECKER_CONFIDENCE specifies the confidence interval for making this determination.

Notes Making this number larger will cause more warnings. A value of 0 will effectively disable statistical warnings.
Factory Setting
  • RETURN_CHECKER_RATIO = 0.1
Tags

Specifies the confidence interval for statistically identifying functions whose return value is usually checked.

Type real number (indicating a number of sigmas)
Behavior Once all function calls in the program have been analyzed, there is a set of remaining candidate Ignored Return Value warnings for which all of the following are true:

For each of these candidate warnings, let f() be the function in question and R be the fraction of all observed calls to f() that have ignored return values. CodeSonar performs a one-sided Wilson test to determine whether R <= RETURN_CHECKER_RATIO with at least the confidence specified this parameter. If so, the Ignored Return Value warning is issued.

For example, with RETURN_CHECKER_RATIO=0.1 and RETURN_CHECKER_CONFIDENCE=1.96, CodeSonar will flag ignored calls to f() if, with 95% confidence, fewer than 10% of calls to f() in the universe have their return code checked, on the assumption that the code base under analysis is a random sample of all code in the universe.

Notes Changing the value of this parameter can affect the number of warnings issued.
  • A larger value can decrease the number of warnings issued, because it imposes stricter conditions for determining that a function's return value is 'usually' checked.
  • Conversely, a smaller value can increase the number of warnings issued.
  • A value of 0 will cause RETURN_CHECKER_RATIO to be respected precisely, even for small call populations.
  • Negative values are not useful or recommended.

For example, suppose we have the following.

  • Configuration settings for the relevant parameters are RETURN_CHECKER_RATIO=0.1, RETURN_CHECKER_CONFIDENCE=1
  • In analyzing calls for function myfunc(), CodeSonar has determined that there are 30 calls to myfunc() and that the return value is ignored for one of those calls (and checked for the other 29)
  • Once all function calls in the program have been analyzed, there is a candidate Ignored Return Value warning representing the myfunc() call whose return value is ignored.

With these numbers, the one-sided Wilson test determines that the proportion of ignored calls is below 0.1 (RETURN_CHECKER_RATIO) with 1 sigma of confidence (RETURN_CHECKER_CONFIDENCE) and so the warning is issued.

However, if a second call to myfunc() also had its return value ignored (2/30 calls with return value ignored), the Wilson test would determine that the proportion of ignored calls is NOT below 0.1 with 1 sigma of confidence, and Ignored Return Value warnings would not be issued for myfunc().

The following parameters specify exceptions to the statistical analysis for Ignored Return Value.

Factory Setting
  • RETURN_CHECKER_CONFIDENCE = 1
Tags

Specifies the confidence interval for statistically determining that a candidate Ignored Return Value warning can be discarded immediately (that is, before all function calls have been analyzed).

Type real number (indicating a number of sigmas)
Behavior To produce Ignored Return Value warnings, CodeSonar analyzes the function calls in the program. Each time it encounters a call to some function f() where the return value is ignored, it accumulates a candidate warning. This candidate is discarded immediately if a one-sided Wilson test determines that, for all calls to f() encountered so far, the proportion with ignored return values is greater than RETURN_CHECKER_RATIO with at least this many sigmas of confidence.
Notes The discard test is performed based on the function calls seen up to that point in the analysis (and therefore is based on partial information), so it is possible for some or all Ignored Return Value warnings for a given function f() to be discarded even if the overall proportion of ignored calls to f() in the program does not exceed RETURN_CHECKER_RATIO.

A smaller value increases the likelihood of false negatives, increases nondeterminism during parallel analysis, and decreases disk space consumption.

Candidate warnings are also discarded immediately if the function name matches a RETURN_CHECKER_IGNORED_FUNCS rule.

Factory Setting
  • RETURN_CHECKER_DISCARD_CONFIDENCE = 4
Tags

Specifies exceptions to the statistical analysis for Ignored Return Value. In particular, specifies:

Type Boost 'POSIX Extended Regular Expression'
Behavior If the name of a called function matches a RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS regular expression and the return value from that function call is ignored on ANY path, an Ignored Return Value warning will always be issued (regardless of the settings of RETURN_CHECKER_CONFIDENCE and RETURN_CHECKER_RATIO).

If the Ignored Return Value warning class is disabled, such as with a WARNING_FILTER rule, this parameter has no effect.

Notes RETURN_CHECKER_IGNORED_FUNCS takes precedence over this parameter.

Checked Functions for Ignored Return Value

There are a number of configuration parameters that specify functions to check for ignored return values. The following table summarizes the options.

  +---------------+-------------------+----------------------------------------------+--------------------------------------------+
  | Function has  | Warning if return |  User-specified rules                        | Built-in (factory setting) rules           |
  | side effects? | value ignored on  |                                              |                                            |
  +---------------+-------------------+----------------------------------------------+--------------------------------------------+
  | Yes           | ANY path          | RETURN_CHECKER_CHECKED_FUNCS                 | RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS      |
  +---------------+-------------------+----------------------------------------------+--------------------------------------------+
  | No            | ALL paths         | RETURN_CHECKER_CHECKED_PURE_FUNCS            | RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS |
  | ("pure")      +-------------------+----------------------------------------------+--------------------------------------------+
  |               | ANY path          | RETURN_CHECKER_CHECKED_PURE_SOME_PATHS_FUNCS | -                                          |
  +---------------+-------------------+----------------------------------------------+--------------------------------------------+

Factory Settings
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^backtrace$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^backtrace_symbols$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^bind$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^BIO_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^BIO_new_file$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^BIO_new_mem_buf$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^BN_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^CAccessToken::Impersonate$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^CAccessToken::ImpersonateLoggedOnUser$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^cairo_create$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^cairo_image_surface_create$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^cairo_image_surface_create_for_data$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^cairo_pattern_create_for_surface$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^cairo_pattern_create_linear$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^cairo_pattern_create_radial$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^cairo_surface_create_similar$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^chdir$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^chmod$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^chown$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^chroot$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^CoImpersonateClient$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^connect$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^CreateEvent[AW]?$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^CreateFile[AW]?$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^CreateMutex[AW]?$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^CreateProcess[AW]?$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^CreateThread$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^curl_easy_init$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^db_create$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^dbus_g_proxy_new_for_name$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^dbus_message_new_error$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^dbus_message_new_method_call$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^dbus_message_new_method_return$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^dbus_message_new_signal$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^DdeImpersonateClient$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^describe_double_constant$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^describe_signed_constant$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^describe_unsigned_constant$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^DH_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^dup2$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^DuplicateHandle$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^_emalloc$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^epoll_create$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^epoll_wait$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^ERR_get_error$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^_estrndup$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^EVP_PKEY_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^fchdir$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^fchmod$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^fchown$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^feof$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^ferror$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^fgetc$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^FindFirstFile[AW]?$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^FindNextFile[AW]?$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^fork$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^fputc$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^fread$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^fseek$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^fsetpos$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^fstat$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^fstatfs$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^fsync$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^ftell$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^ftime$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^FT_New_Face$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^ftruncate$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^ftrylockfile$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^fwrite$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_array_sized_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_ascii_strdown$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_ascii_strncasecmp$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_ascii_strup$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_ascii_tolower$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_ascii_toupper$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_async_result_get_source_object$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_base64_decode$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_base64_encode$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_boxed_copy$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_build_filename$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_build_path$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_byte_array_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_cancellable_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_cclosure_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_checksum_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_compute_checksum_for_string$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_cond_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_content_type_get_description$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_data_input_stream_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_date_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_date_new_dmy$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_date_time_format$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_date_time_new_now_local$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_dbus_proxy_get_cached_property$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_dir_read_name$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gdk_atom_name$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gdk_cairo_create$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gdk_cursor_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gdk_cursor_new_for_display$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gdk_event_copy$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gdk_event_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gdk_gc_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gdk_pixbuf_copy$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gdk_pixbuf_get_formats$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gdk_pixbuf_loader_get_pixbuf$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gdk_pixbuf_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gdk_pixbuf_new_from_data$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gdk_pixbuf_new_from_inline$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gdk_pixbuf_new_from_xpm_data$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gdk_pixbuf_new_subpixbuf$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gdk_pixbuf_scale_simple$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gdk_pixmap_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gdk_window_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_dpgettext$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_enum_get_value$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_enum_get_value_by_nick$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_enum_register_static$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_error_copy$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_error_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_error_new_literal$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^getaddrinfo$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^getc$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^GetCurrentProcess$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^GetCurrentProcessId$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^GetCurrentThread$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^GetCurrentThreadId$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^getcwd$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^GetExitCodeProcess$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^GetFileInformationByHandle$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^GetFileSize$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^GetFileSizeEx$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^GetFileTime$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^GetFileType$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^GetLastError$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^getopt$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^getopt_long$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^getopt_long_only$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^GetProcessHeap$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^GetProcessId$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^GetThreadId$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_file_get_basename$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_file_get_child$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_file_get_parent$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_file_get_parse_name$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_file_get_path$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_file_get_uri$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_filename_display_basename$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_filename_display_name$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_file_new_for_commandline_arg$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_file_new_for_uri$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_find_program_in_path$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_flags_get_first_value$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_hash_table_get_keys$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_hash_table_get_values$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_hash_table_iter_next$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_hash_table_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_hash_table_new_full$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_idle_source_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_io_channel_unix_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_list_concat$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_list_copy$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_list_delete_link$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_list_insert$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_list_insert_sorted$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_list_prepend$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_list_remove$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_list_remove_link$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_list_reverse$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_list_sort$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^GlobalAlloc$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^GlobalFlags$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^GlobalHandle$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^GlobalLock$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^GlobalReAlloc$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^GlobalSize$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^GlobalUnlock$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^glXChooseVisual$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^glXCreateContext$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_main_context_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_main_loop_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_markup_escape_text$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_markup_printf_escaped$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_markup_vprintf_escaped$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_match_info_fetch$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_mkstemp$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_module_open$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_mutex_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_node_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gnutls_handshake$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_object_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_object_newv$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_once_init_enter$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_option_context_get_help$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_option_context_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_option_group_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_param_spec_boolean$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_param_spec_boxed$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_param_spec_double$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_param_spec_enum$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_param_spec_flags$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_param_spec_float$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_param_spec_int$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_param_spec_int64$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_param_spec_internal$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_param_spec_object$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_param_spec_pointer$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_param_spec_string$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_param_spec_uint$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_param_spec_uint64$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_param_spec_ulong$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_path_get_dirname$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_pattern_spec_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_ptr_array_sized_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_queue_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_regex_escape_string$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_settings_get_string$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_settings_get_strv$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_settings_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_shell_quote$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_simple_async_result_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_slice_alloc$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_slice_alloc0$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_slist_concat$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_slist_copy$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_slist_delete_link$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_slist_insert_sorted$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_slist_prepend$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_slist_remove$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_slist_remove_link$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_slist_reverse$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_slist_sort$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_source_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_static_resource_get_resource$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gst_element_get_static_pad$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gst_pipeline_get_bus$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_strcompress$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_strconcat$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_strdup_printf$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_strdupv$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_strdup_vprintf$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_strescape$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_string_new_len$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_strjoin$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_strjoinv$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_strnfill$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_strsplit$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_strsplit_set$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_themed_icon_new_with_default_fallbacks$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_timeout_source_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_about_dialog_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_action_group_list_actions$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_action_group_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_action_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_adjustment_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_alignment_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_arrow_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_box_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_builder_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_button_box_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_button_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_button_new_from_stock$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_button_new_with_label$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_button_new_with_mnemonic$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_cell_layout_get_cells$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_cell_renderer_pixbuf_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_cell_renderer_text_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_cell_renderer_toggle_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_check_button_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_check_button_new_with_label$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_check_button_new_with_mnemonic$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_check_menu_item_new_with_label$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_check_menu_item_new_with_mnemonic$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_clipboard_wait_for_text$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_color_button_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_color_selection_dialog_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_combo_box_get_active_text$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_combo_box_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_combo_box_new_text$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_combo_box_new_with_model$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_combo_box_text_get_active_text$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_combo_box_text_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_combo_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_container_get_children$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_css_provider_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_dialog_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_dialog_new_with_buttons$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_drawing_area_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_editable_get_chars$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_entry_completion_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_entry_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_event_box_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_file_chooser_button_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_file_chooser_dialog_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_file_chooser_get_current_folder$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_file_chooser_get_uri$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_file_filter_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_file_selection_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_frame_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_grid_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_hbox_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_hbutton_box_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_hpaned_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_hscale_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_hseparator_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_icon_factory_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_icon_set_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_icon_source_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_image_menu_item_new_from_stock$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_image_menu_item_new_with_label$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_image_menu_item_new_with_mnemonic$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_image_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_image_new_from_file$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_image_new_from_icon_name$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_image_new_from_pixbuf$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_image_new_from_stock$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_info_bar_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_label_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_label_new_with_mnemonic$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_list_store_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^Gtk::manage$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_menu_bar_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_menu_item_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_menu_item_new_with_label$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_menu_item_new_with_mnemonic$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_menu_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_message_dialog_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_message_dialog_new_with_markup$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_notebook_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_option_menu_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_paned_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_pixmap_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_print_operation_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_progress_bar_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_radio_button_new_with_label$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_radio_button_new_with_label_from_widget$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_radio_button_new_with_mnemonic$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_radio_menu_item_new_with_label$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_scrolled_window_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_separator_menu_item_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_separator_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_separator_tool_item_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_spin_button_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_spin_button_new_with_range$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_statusbar_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_style_attach$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_table_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_target_list_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_text_buffer_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_text_view_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_text_view_new_with_buffer$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_toggle_button_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_toggle_button_new_with_label$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_toolbar_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_tool_button_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_tool_button_new_from_stock$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_tool_item_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_tooltips_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_tree_model_filter_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_tree_model_get_path$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_tree_model_sort_new_with_model$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_tree_path_copy$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_tree_path_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_tree_path_new_first$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_tree_path_new_from_indices$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_tree_path_to_string$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_tree_row_reference_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_tree_selection_get_selected_rows$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_tree_store_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_tree_view_column_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_tree_view_column_new_with_attributes$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_tree_view_get_columns$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_tree_view_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_tree_view_new_with_model$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_vbox_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_viewport_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_vpaned_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_vscrollbar_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_vseparator_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^gtk_widget_create_pango_layout$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_type_add_instance_private$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_type_children$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_type_create_instance$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_uri_escape_string$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_uri_parse_scheme$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_uri_unescape_string$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_utf8_collate_key$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_utf8_normalize$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_utf8_strdown$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_utf8_strup$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_value_array_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_value_dup_boxed$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_value_dup_object$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_value_dup_string$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_variant_builder_end$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_variant_builder_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_variant_iter_next_value$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_variant_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_variant_new_boolean$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_variant_new_int32$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_variant_new_string$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_variant_new_uint32$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_variant_print$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^g_volume_monitor_get$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^HeapAlloc$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^HeapCompact$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^HeapCreate$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^HeapLock$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^HeapQueryInformation$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^HeapReAlloc$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^HeapSetInformation$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^HeapSize$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^HeapUnlock$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^HeapValidate$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^HeapWalk$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^iconv_open$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^IMG_Load$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^ImpersonateDdeClientWindow$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^ImpersonateLoggedOnUser$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^ImpersonateNamedPipeClient$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^ImpersonateSecurityContext$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^ImpersonateSelf$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^(__isoc.._)?_cscanf$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^(__isoc.._)?_[fs]tscanf$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^(__isoc.._)?f[tw]?scanf$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^(__isoc.._)?sw?scanf$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^(__isoc.._)?_tscanf$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^(__isoc.._)?v?[fs]scanf$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^(__isoc.._)?vftscanf$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^(__isoc.._)?[vw]?scanf$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^jack_client_open$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^jack_get_ports$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^jack_port_register$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^KCModule::qt_metacall$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^KCModule::qt_metacast$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^KDialog::qt_metacall$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^KDialog::qt_metacast$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^KIO::get$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^KMessageBox::questionYesNo$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^KMessageBox::warningContinueCancel$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^KMessageBox::warningYesNo$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^KMessageBox::warningYesNoCancel$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^KPluginFactory::create$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^krb5_init_context$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^KWallet::Wallet::openWallet$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^KXmlGuiWindow::qt_metacall$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^KXmlGuiWindow::qt_metacast$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^ldap_first_entry$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^ldap_get_dn$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^ldap_get_values_len$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^ldap_next_entry$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^ldap_search_ext_s$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^LocalAlloc$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^LocalFlags$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^LocalHandle$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^LocalLock$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^LocalReAlloc$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^LocalSize$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^LocalUnlock$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^lseek$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^lstat$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^lstat64$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^lua_next$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^Mix_LoadMUS$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^Mix_LoadWAV_RW$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^mkdir$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^mknod$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^mmap$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^mysql_real_connect$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^mysql_store_result$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^newlocale$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^newwin$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^notify_notification_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^OpenFile$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^OpenProcess$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^OpenThread$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^pam_authenticate$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^pam_start$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^pango_attr_foreground_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^pango_attr_list_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^pango_attr_underline_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^pango_attr_weight_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^pango_cairo_create_layout$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^pango_context_get_metrics$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^pango_font_description_copy$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^pango_font_description_from_string$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^pango_font_description_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^pango_font_description_to_string$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^pango_layout_get_iter$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^pango_layout_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^pcap_open_live$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^pcre_compile$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^pcre_exec$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PEM_read_bio_PrivateKey$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^Perl_newRV$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^Perl_newRV_noinc$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^Perl_newSV$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^Perl_newSViv$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^Perl_newSVnv$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^Perl_newSVpv$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^Perl_newSVpvf_nocontext$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^Perl_newSVpvn$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^Perl_newSVsv$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^Perl_newSV_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^Perl_newSVuv$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^Perl_newXS_flags$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^Perl_safesyscalloc$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^Perl_safesysmalloc$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^png_create_info_struct$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^png_create_read_struct$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^png_create_write_struct$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^png_set_longjmp_fn$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^poptGetNextOpt$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PQexec$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^pread$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^pselect$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^pthread_mutex_trylock$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^pwrite$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyArg_ParseTuple$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyArg_ParseTupleAndKeywords$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyArg_UnpackTuple$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyBool_FromLong$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^Py_BuildValue$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyBytes_FromStringAndSize$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyCapsule_GetPointer$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyCapsule_Import$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyCapsule_New$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyCFunction_NewEx$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyCObject_FromVoidPtr$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyCode_New$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyDict_New$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyErr_NewException$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^Py_FindMethod$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyFloat_FromDouble$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyFrame_New$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyImport_Import$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyImport_ImportModule$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyInstance_NewRaw$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyInt_FromLong$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyInt_FromSize_t$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyInt_FromSsize_t$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyIter_Next$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyList_New$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyLong_FromLong$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyLong_FromLongLong$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyLong_FromUnsignedLong$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyLong_FromUnsignedLongLong$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyLong_FromVoidPtr$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyMem_Malloc$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyMem_Realloc$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyModule_GetDict$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyNumber_Int$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyNumber_Long$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyObject_Call$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyObject_CallFunction$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyObject_CallObject$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyObject_GetAttr$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyObject_GetAttrString$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyObject_GetItem$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyObject_GetIter$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyObject_Malloc$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^_PyObject_New$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyObject_Repr$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyObject_RichCompare$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyObject_Str$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PySequence_GetItem$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyString_Format$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyString_FromFormat$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyString_FromString$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyString_FromStringAndSize$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyString_InternFromString$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyTuple_GetSlice$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyTuple_New$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyTuple_Pack$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyType_Ready$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyUnicode_FromFormat$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^PyUnicode_FromString$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^QAbstractItemModel::qt_metacall$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^QAbstractItemModel::qt_metacast$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^QAbstractListModel::qt_metacall$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^QAbstractListModel::qt_metacast$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^QAbstractTableModel::qt_metacall$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^QAbstractTableModel::qt_metacast$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^QAction::qt_metacall$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^QAction::qt_metacast$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^QApplication::qt_metacall$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^QApplication::qt_metacast$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^QComboBox::qt_metacall$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^QComboBox::qt_metacast$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^QDBusAbstractAdaptor::qt_metacall$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^QDBusAbstractAdaptor::qt_metacast$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^QDBusAbstractInterface::qt_metacall$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^QDBusAbstractInterface::qt_metacast$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^QDialog::qt_metacast$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^QDockWidget::qt_metacall$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^QDockWidget::qt_metacast$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^QFrame::qt_metacall$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^QFrame::qt_metacast$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^QGraphicsView::qt_metacall$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^QGraphicsView::qt_metacast$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^QItemDelegate::qt_metacall$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^QItemDelegate::qt_metacast$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^QLabel::qt_metacall$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^QLabel::qt_metacast$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^QLineEdit::qt_metacall$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^QLineEdit::qt_metacast$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^QListView::qt_metacall$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^QListView::qt_metacast$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^QMainWindow::qt_metacall$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^QMainWindow::qt_metacast$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^QMenu::qt_metacall$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^QMenu::qt_metacast$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^qstrdup$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^QTest::qExec$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^QuerySecurityContextToken$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^read$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^readdir$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^readdir64$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^ReadFile$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^readlink$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^readv$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^recv$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^recvfrom$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^recvmsg$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^regexec$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^RegOpenKeyEx[AW]?$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^RegQueryValueEx[AW]?$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^ReleaseMutex$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^rename$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^ResetEvent$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^RpcImpersonateClient$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^RSA_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^scandir$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^SDL_CreateRGBSurface$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^SDL_DisplayFormat$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^SDL_JoystickOpen$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^SDL_RWFromFile$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^select$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^semget$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^send$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^sendmsg$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^sendto$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^sete[gu]id$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^SetEndOfFile$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^SetEntriesInAcl[AW]?$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^SetEvent$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^SetFilePointer$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^SetFilePointerEx$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^setfs[gu]id$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^set[gu]id$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^setjmp$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^setre[gu]id$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^SetThreadToken$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^sf_open$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^shmget$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^shm_open$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^sk_new_null$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^snd_pcm_hw_params$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^snd_pcm_open$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^soup_message_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^SSL_accept$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^SSL_connect$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^SSL_CTX_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^SSL_CTX_use_certificate_chain_file$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^SSL_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^std.*::move$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^std.*::remove$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^std.*::remove_if$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^std.*::unique$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^TIFFOpen$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^truncate$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^udev_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^vfork$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^WaitForSingleObject$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^write$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^WriteFile$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^writev$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^X509_get_pubkey$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^XAllocSizeHints$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^xcalloc$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^XCheckMaskEvent$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^XCreateBitmapFromData$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^XCreateColormap$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^XCreateFontCursor$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^XCreateGC$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^XCreateImage$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^XCreatePixmap$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^XCreatePixmapCursor$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^XCreatePixmapFromBitmapData$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^XCreateRegion$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^XCreateSimpleWindow$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^XCreateWindow$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^XftDrawCreate$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^XGetImage$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^_XGetRequest$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^XGetSelectionOwner$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^XLoadQueryFont$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^xmalloc$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^xmemdup$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^xmlGetProp$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^xmlNewDoc$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^xmlNewDocNode$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^xmlNewNode$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^xmlNodeGetContent$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^xmlNodeListGetString$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^xmlParseFile$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^xmlParseMemory$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^XML_ParserCreate$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^xmlReadMemory$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^xmlStrdup$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^xmlXPathEvalExpression$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^xmlXPathNewContext$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^XOpenDisplay$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^xrealloc$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^xstrdup$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^xstrndup$
  • RETURN_CHECKER_BUILT_IN_CHECKED_FUNCS += ^XtMalloc$
Tags

Specifies exceptions to the statistical analysis for Ignored Return Value. In particular, specifies:

Type Boost 'POSIX Extended Regular Expression'
Behavior If the name of a called function matches a RETURN_CHECKER_CHECKED_FUNCS regular expression and the return value from that function call is ignored on ANY path, an Ignored Return Value warning will always be issued (regardless of the settings of RETURN_CHECKER_CONFIDENCE and RETURN_CHECKER_RATIO).

If the Ignored Return Value warning class is disabled, such as with a WARNING_FILTER rule, this parameter has no effect.

Notes RETURN_CHECKER_IGNORED_FUNCS takes precedence over this parameter.

See Checked Functions for Ignored Return Value for information about the various configuration parameters available for specifying exceptions to the statistical analysis for Ignored Return Value.

(No factory settings.)

Tags

Specifies exceptions to the statistical analysis for Ignored Return Value. In particular, specifies:

Type Boost 'POSIX Extended Regular Expression'
Behavior If the name of a called function matches a RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS regular expression and the return value from that function call is ignored, an Ignored Return Value warning will always be issued (regardless of the settings of RETURN_CHECKER_CONFIDENCE and RETURN_CHECKER_RATIO).

If the Ignored Return Value warning class is disabled, such as with a WARNING_FILTER rule, this parameter has no effect.

Notes RETURN_CHECKER_IGNORED_FUNCS takes precedence over this parameter.

See Checked Functions for Ignored Return Value for information about the various configuration parameters available for specifying exceptions to the statistical analysis for Ignored Return Value.

Factory Settings
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^access$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^BIO_s_mem$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^bsearch$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^cairo_get_source$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^cairo_status$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^cairo_status_to_string$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^cairo_surface_status$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^compare$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^concat$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^constant$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^CRYPTO_num_locks$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^cs_isfinite$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^cs_isinf$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^cs_isnan$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^curl_easy_strerror$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^dbus_error_is_set$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^dbus_message_get_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^dbus_message_is_method_call$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^dbus_message_is_signal$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^dbus_message_iter_get_arg_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^difftime$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^dlsym$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^drand48$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^dump_irepository$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^ERR_reason_error_string$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^EVP_get_digestbyname$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^fabsf$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^feof$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^ferror$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^file_exists$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^find_entry$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^finite$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^fnmatch$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^FT_Get_Char_Index$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_app_info_get_name$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_ascii_strcasecmp$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_async_initable_get_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_boxed_type_register_static$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gcd$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_date_valid$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_dbus_method_invocation_get_message$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_dbus_proxy_get_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_dgettext$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gdk_atom_intern_static_string$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gdk_color_get_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gdk_device_manager_get_client_pointer$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gdk_display_get_default$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gdk_display_get_device_manager$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gdk_drawable_get_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gdk_keyval_from_name$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gdk_keyval_name$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gdk_screen_get_monitor_at_window$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gdk_window_get_state$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gdk_x11_get_default_root_xwindow$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gdk_x11_window_get_drawable_impl$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_error_matches$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^get_header$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^getmntent$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^getpass$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^getpid$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^get_type_name$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^get_value$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_file_equal$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_file_error_from_errno$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_file_error_quark$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_file_info_get_attribute_string$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_file_is_native$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_file_query_exists$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_file_test$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_flags_register_static$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_get_application_name$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_getenv$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_get_home_dir$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_get_prgname$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_get_real_name$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_get_tmp_dir$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_get_user_cache_dir$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_get_user_config_dir$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_get_user_data_dir$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_get_user_name$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_hash_table_size$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_initable_get_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_intern_static_string$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_key_file_error_quark$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_key_file_has_group$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^glade_xml_get_widget$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^glGenLists$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^Glib::ustring::c_str$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_list_append$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_list_find$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_list_find_custom$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_list_position$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_main_context_default$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_main_loop_is_running$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_markup_error_quark$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_match_info_matches$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_module_error$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_module_supported$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gnutls_strerror$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_object_class_find_property$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_object_interface_list_properties$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^_g_object_ref0$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_option_error_quark$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_parse_debug_string$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_path_is_absolute$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_pattern_match_string$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_quark_from_static_string$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_quark_to_string$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_quark_try_string$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_queue_get_length$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_queue_is_empty$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_random_int$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_random_int_range$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_regex_match_simple$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_signal_handler_is_connected$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_signal_lookup$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_signal_name$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_simple_async_result_propagate_error$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_slist_append$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_slist_find$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_slist_find_custom$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_spawn_error_quark$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_strcmp0$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_str_equal$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_strerror$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_str_has_prefix$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_str_has_suffix$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_strv_get_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_thread_self$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_action_group_get_action$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_adjustment_get_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_binding_set_by_class$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_bin_get_child$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_bin_get_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_box_get_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_builder_get_object$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_button_box_get_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_cell_layout_get_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_check_menu_item_get_active$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_check_menu_item_get_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_clipboard_get_for_display$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_clist_get_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_color_selection_dialog_get_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_combo_box_get_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_combo_box_text_get_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_combo_get_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_container_get_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_dialog_get_action_area$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_dialog_get_content_area$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_dialog_get_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_entry_get_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_events_pending$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_expander_get_expanded$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_file_chooser_get_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_file_selection_get_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_frame_get_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_get_current_event_time$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_get_option_group$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_grid_get_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_icon_theme_has_icon$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_icon_theme_lookup_icon$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_image_get_pixbuf$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_info_bar_get_content_area$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_label_get_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_list_store_get_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_menu_get_attach_widget$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_menu_item_get_submenu$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_menu_shell_get_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_message_dialog_get_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_misc_get_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_notebook_get_tab_label$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_notebook_get_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_object_get_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_option_menu_get_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_orientable_get_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_orientation_get_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_paned_get_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_radio_button_get_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_range_get_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_scrolled_window_get_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_spin_button_get_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_statusbar_get_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_table_get_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_text_buffer_get_insert$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_text_buffer_get_text$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_text_iter_compare$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_toggle_button_get_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_toggle_tool_button_get_active$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_tree_model_get_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_tree_model_iter_has_child$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_tree_path_compare$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_tree_row_reference_get_path$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_tree_selection_iter_is_selected$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_tree_sortable_get_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_tree_store_get_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_tree_view_get_bin_window$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_tree_view_get_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_tree_view_row_expanded$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_ui_manager_get_accel_group$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_ui_manager_get_widget$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_ui_manager_new_merge_id$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_vbox_get_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_widget_get_ancestor$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_widget_get_colormap$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_widget_get_default_direction$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_widget_get_events$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_widget_get_mapped$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_widget_get_pango_context$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_widget_get_parent_window$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_widget_get_realized$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_widget_get_visible$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_widget_has_focus$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_widget_is_drawable$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_widget_is_sensitive$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_widget_is_toplevel$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_widget_render_icon$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_window_get_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gtk_window_new$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_type_check_class_cast$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_type_check_class_is_a$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_type_check_instance_is_a$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_type_check_value$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_type_check_value_holds$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_type_class_peek$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_type_class_peek_parent$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_type_fundamental$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_type_fundamental_next$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_type_interface_peek$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_type_interface_peek_parent$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_type_is_a$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_type_module_register_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_type_name$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_type_parent$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_type_register_fundamental$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_type_register_static$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_type_register_static_simple$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_type_test_flags$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_type_value_table_peek$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_ucs4_to_utf8$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_unichar_isalnum$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_unichar_isprint$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_unichar_isspace$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_utf8_collate$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_utf8_strchr$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_utf8_strrchr$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_utf8_validate$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_value_array_get_nth$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_value_get_boolean$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_value_get_double$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_value_get_enum$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_value_get_flags$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_value_get_object$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_value_get_pointer$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_value_get_string$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_value_get_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_value_get_uchar$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_value_get_variant$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_value_peek_pointer$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_value_type_compatible$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_variant_equal$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_variant_get_boolean$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_variant_get_child_value$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_variant_get_uint32$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_variant_is_of_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_variant_iter_loop$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_variant_n_children$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^g_variant_type_checked_$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gzdopen$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^gzopen$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^has_colors$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^hash_lookup$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^hstrerror$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^htonl$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^htons$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^index$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^inet_addr$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^inet_ntoa$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^input$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^invoke_error_quark$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^invoke_get_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^isalnum$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^isalpha$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^isascii$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^isatty$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^isblank$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^iscntrl$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^isdigit$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^isgraph$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^islower$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^isprint$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^ispunct$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^is_selinux_enabled$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^isspace$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^isupper$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^iswalnum$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^iswprint$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^iswspace$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^isxdigit$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^KActionCollection::action$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^KCmdLineArgs::count$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^KComponentData::isValid$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^KConfigBase::hasGroup$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^KConfigGroup::hasKey$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^KCoreConfigSkeleton::isImmutable$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^KDebug::hasNullOutputQtDebugMsg$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^KDialog::button$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^KDialog::mainWidget$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^KDialog::marginHint$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^KDialog::spacingHint$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^KGlobal::locale$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^KGlobal::mainComponent$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^KIconLoader::global$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^KIO::NetAccess::exists$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^KJob::error$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^KMainWindow::canBeRestored$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^KMainWindow::menuBar$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^KMainWindow::statusBar$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^KMainWindow::toolBar$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^KPluginFactory::InheritanceChecker::createInstanceFunction$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^KServiceTypeTrader::self$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^KSharedPtr::data$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^KUrl::isLocalFile$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^KXMLGUIClient::factory$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^ldap_err2string$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^ldap_first_attribute$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^list_empty$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^lookup$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^lt_dlsym$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^lua_gettop$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^lua_isnumber$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^lua_isstring$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^lua_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^match$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^memchr$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^memcmp$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^mysql_errno$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^mysql_error$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^mysql_fetch_row$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^OBJ_nid2sn$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^pa_context_errno$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^pa_context_get_state$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^pam_strerror$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^pango_context_get_font_description$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^pango_context_get_language$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^pango_layout_get_context$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^pa_strerror$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^pathconf$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^pcap_datalink$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^pcap_geterr$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^Perl_av_fetch$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^Perl_av_len
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^Perl_block_gimme$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^Perl_get_sv$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^Perl_gv_add_by_type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^Perl_mg_find$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^Perl_stack_grow$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^Perl_sv_2bool_flags$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^Perl_sv_derived_from$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^Perl_sv_isobject$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^png_get_valid$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^png_sig_cmp$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^poptGetContext$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^posix_memalign$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^PQerrorMessage$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^PQresultStatus$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^PQstatus$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^pthread_equal$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^pthread_getspecific$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^pthread_self$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^PyCallable_Check$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^PyDict_GetItem$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^PyDict_Next$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^PyErr_ExceptionMatches$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^PyErr_GivenExceptionMatches$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^PyErr_Occurred$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^PyEval_SaveThread$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^_PyInstance_Lookup$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^_PyObject_GetDictPtr$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^PyObject_HasAttrString$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^PyObject_IsInstance$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^PyObject_IsTrue$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^PyObject_SetItem$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^PyObject_Size$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^PySequence_Check$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^PySequence_Size$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^PyType_IsSubtype$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^PyUnicodeUCS4_DecodeUTF8$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QAbstractButton::iconSize$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QAbstractButton::isChecked$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QAbstractItemView::itemDelegate$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QAbstractItemView::model$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QAbstractItemView::selectionModel$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QAbstractProxyModel::sourceModel$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QAbstractScrollArea::horizontalScrollBar$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QAbstractScrollArea::verticalScrollBar$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QAbstractScrollArea::viewport$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QAbstractSlider::maximum$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QAbstractSlider::minimum$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QAction::isChecked$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QAction::isEnabled$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QAction::isSeparator$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QAction::menu$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QApplication::activeWindow$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QApplication::clipboard$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QApplication::desktop$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QApplication::focusWidget$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QApplication::isSessionRestored$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QApplication::startDragDistance$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QBasicAtomicInteger::load$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QBasicAtomicInteger::loadAcquire$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QBasicAtomicPointer::testAndSetOrdered$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QBasicTimer::timerId$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^qBlue$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^qBound$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QBrush::color$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QBuffer::data$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QButtonGroup::button$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QByteArray::constData$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QByteArray::contains$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QByteArray::count$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QByteArray::data$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QByteArray::endsWith$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QByteArray::isEmpty$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QByteArray::isNull$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QByteArray::lastIndexOf$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QByteArray::length$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QByteArray::size$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QByteArray::startsWith$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QChar::isDigit$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QChar::isLetter$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QChar::isLetterOrNumber$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QChar::isNull$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QChar::isPrint$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QChar::isSpace$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QCharRef::isSpace$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QCharRef::toUpper$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QChar::toAscii$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QChar::toUpper$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QCheckBox::checkState$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QColor::alpha$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QColor::alphaF$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QColor::blueF$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QColor::greenF$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QColor::isValid$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QColor::redF$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QColor::rgba$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QComboBox::count$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QComboBox::currentIndex$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QComboBox::findData$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QComboBox::findText$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QComboBox::lineEdit$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QComboBox::model$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QComboBox::view$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QContextMenuEvent::pos$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QCoreApplication::applicationPid$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QCursor::pos$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QCursor::shape$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QDataStream::atEnd$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QDataStream::device$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QDate::currentDate$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QDate::day$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QDate::dayOfWeek$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QDate::isValid$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QDateTime::date$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QDateTime::isNull$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QDateTime::isValid$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QDateTime::secsTo$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QDateTime::time$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QDBusAbstractInterface::isValid$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QDBusConnection::isConnected$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QDBusMessage::type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QDBusPendingCall::isError$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QDBusReply::error$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QDBusReply::isValid$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QDBusReply::value$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QDebug::nospace$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QDebug::space$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QDesktopWidget::availableGeometry$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QDesktopWidget::screenNumber$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QDialogButtonBox::button$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QDialog::qt_metacall$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QDialog::result$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QDir::exists$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QDir::isAbsolutePath$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QDir::isRelativePath$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QDirIterator::hasNext$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QDir::separator$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QDockWidget::toggleViewAction$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QDomElement::hasAttribute$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QDomNode::isElement$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QDomNode::isNull$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QDomNodeList::count$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QDropEvent::mimeData$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QDropEvent::pos$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QDropEvent::source$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QEvent::isAccepted$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QEvent::spontaneous$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QEvent::type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QFile::error$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QFile::exists$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QFile::handle$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QFileInfo::exists$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QFileInfo::isAbsolute$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QFileInfo::isDir$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QFileInfo::isExecutable$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QFileInfo::isFile$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QFileInfo::isReadable$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QFileInfo::isRelative$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QFileInfo::isSymLink$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QFileInfo::isWritable$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^qFlagLocation$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QFocusEvent::reason$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QFont::bold$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QFont::italic$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QFontMetrics::boundingRect$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QFontMetrics::size$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QFont::pointSize$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QFont::underline$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QFont::weight$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QFrame::frameWidth$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^qFuzzyCompare$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^qGetPtrHelper$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QGraphicsItem::isVisible$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QGraphicsItem::parentItem$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QGraphicsItem::scene$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QGraphicsSceneMouseEvent::button$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QGraphicsSceneMouseEvent::pos$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QGraphicsSceneMouseEvent::scenePos$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QGraphicsScene::sceneRect$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QGraphicsView::scene$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^qGreen$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QGroupBox::isChecked$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^qHash$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QHash::begin$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QHash::constBegin$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QHash::constEnd$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QHash::constFind$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QHash::const_iterator::key$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QHash::const_iterator::value$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QHash::contains$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QHash::end$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QHash::find$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QHash::isEmpty$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QHashIterator::hasNext$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QHash::iterator::key$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QHashIterator::key$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QHash::iterator::value$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QHashIterator::value$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QHash::key$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QHash::size$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QHelpEvent::globalPos$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QIcon::hasThemeIcon$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QIcon::isNull$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QImage::depth$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QImage::format$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QImage::isNull$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QImage::pixel$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QImage::rect$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QImage::size$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QIODevice::isOpen$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QIODevice::isReadable$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QItemSelectionModel::isSelected$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QKeyEvent::isAutoRepeat$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QKeyEvent::key$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QKeySequence::isEmpty$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QLabel::pixmap$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QLibrary::resolve$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QList::at$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QList::back$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QList::contains$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QList::count$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QList::empty$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QList::first$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QList::front$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QList::isEmpty$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QListIterator::hasNext$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QListIterator::hasPrevious$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QListIterator::next$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QList::last$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QList::length$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QList::size$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QList::takeFirst$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QList::value$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QListWidget::currentItem$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QListWidget::item$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QListWidgetItem::checkState$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QMainWindow::centralWidget$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QMainWindow::menuBar$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QMainWindow::statusBar$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^qMakePair$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QMap::begin$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QMap::constBegin$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QMap::constEnd$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QMap::constFind$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QMap::const_iterator::key$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QMap::const_iterator::value$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QMap::contains$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QMap::count$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QMap::empty$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QMap::end$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QMap::find$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QMap::isEmpty$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QMapIterator::hasNext$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QMapIterator::key$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QMap::iterator::value$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QMapIterator::value$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QMap::key$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QMap::value$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QMenu::isEmpty$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QMenu::menuAction$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QMessageBox::question$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QMetaEnum::valueToKey$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QMetaObject::cast$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QMetaObject::className$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QMetaObject::indexOfEnumerator$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QMetaObject::indexOfSignal$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QMetaObject::method$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QMetaObject::property$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QMetaObject::propertyCount$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QMetaProperty::name$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^qMetaTypeId$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QMimeData::hasText$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QMimeData::hasUrls$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QModelIndex::internalId$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QModelIndex::isValid$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QModelIndex::model$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QMouseEvent::button$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QMouseEvent::globalPos$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QMouseEvent::pos$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QMutableListIterator::hasNext$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QObject::children$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QObjectData::dynamicMetaObject$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QObject::event$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QObject::eventFilter$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QObject::inherits$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QObject::isWidgetType$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QObject::parent$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QObject::qt_metacall$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QObject::qt_metacast$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QObject::receivers$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QObject::signalsBlocked$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QObject::thread$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QPainter::boundingRect$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QPainter::brush$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QPainter::device$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QPainter::font$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QPainter::pen$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QPaintEvent::rect$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QPaintEvent::region$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QPalette::base$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QPalette::brush$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QPalette::color$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QPalette::highlight$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QPalette::highlightedText$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QPalette::text$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QPalette::window$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QPersistentModelIndex::isValid$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QPixmapCache::find$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QPixmap::isNull$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QPixmap::rect$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QPixmap::size$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QPluginLoader::instance$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QPointer::data$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QPointer::isNull$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QPointF::rx$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QPoint::isNull$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QPoint::rx$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QPoint::ry$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QProcess::exitCode$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QProcess::exitStatus$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QProcess::state$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QProgressBar::value$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QProgressDialog::wasCanceled$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QPushButton::qt_metacall$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QPushButton::qt_metacast$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^qrand$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QRect::bottomLeft$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QRect::bottomRight$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QRect::center$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QRect::contains$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QRectF::bottomLeft$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QRectF::bottomRight$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QRectF::center$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QRectF::contains$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QRectF::intersects$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QRectF::isEmpty$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QRectF::isNull$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QRectF::isValid$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QRectF::normalized$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QRectF::size$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QRectF::topLeft$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QRectF::topRight$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QRectF::translated$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QRectF::x$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QRect::intersects$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QRect::isEmpty$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QRect::isNull$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QRect::isValid$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QRect::size$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QRect::topLeft$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QRect::topRight$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QRect::translated$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^qRed$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QRegExp::exactMatch$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QRegExp::isEmpty$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QRegExp::isValid$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QRegion::contains$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QRegion::isEmpty$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QResizeEvent::oldSize$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QResizeEvent::size$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QScopedPointer::data$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QSet::contains$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QSet::count$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QSet::isEmpty$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QSet::size$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QSettings::contains$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QSize::expandedTo$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QSizeF::toSize$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QSize::isEmpty$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QSize::isNull$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QSize::isValid$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QSizePolicy::hasHeightForWidth$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QSize::rheight$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QSize::rwidth$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QSortFilterProxyModel::lessThan$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QSortFilterProxyModel::qt_metacall$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QSortFilterProxyModel::qt_metacast$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QStackedWidget::count$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QStackedWidget::currentIndex$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QStackedWidget::currentWidget$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QStackedWidget::indexOf$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QStackedWidget::widget$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QStack::top$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QStandardItem::child$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QStandardItemModel::item$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QStandardItemModel::qt_metacall$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QStandardItemModel::qt_metacast$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QStandardItem::row$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QStaticStringData::data_ptr$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^qstrcmp$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QString::at$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QString::compare$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QString::contains$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QString::endsWith$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QString::indexOf$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QString::isEmpty$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QString::isNull$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QString::lastIndexOf$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QStringList::contains$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QString::localeAwareCompare$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QString::size$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QString::startsWith$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QStyledItemDelegate::qt_metacall$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QStyledItemDelegate::qt_metacast$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QTabBar::count$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QTableView::horizontalHeader$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QTableView::verticalHeader$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QTableWidget::horizontalHeaderItem$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QTableWidget::item$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QTableWidget::rowCount$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QTabWidget::count$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QTabWidget::currentWidget$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QTabWidget::indexOf$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QTabWidget::tabBar$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QTabWidget::widget$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QTest::qCompare$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QTest::qVerify$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QTextBlock::isValid$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QTextCodec::codecForMib$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QTextCursor::hasSelection$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QTextDocument::documentLayout$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QTextDocument::size$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QTextEdit::document$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QTextEdit::qt_metacall$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QTextEdit::qt_metacast$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QTextStream::atEnd$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QThread::currentThread$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QThread::isRunning$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QThread::qt_metacall$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QThread::qt_metacast$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QTime::fromString$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QTime::hour$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QTime::isValid$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QTime::minute$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QTime::msec$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QTime::msecsTo$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QTimerEvent::timerId$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QTimer::interval$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QTimer::isActive$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QTime::second$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QToolButton::qt_metacall$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QToolButton::qt_metacast$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QTreeView::header$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QTreeView::isExpanded$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QTreeView::qt_metacall$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QTreeView::qt_metacast$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QTreeWidget::headerItem$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QTreeWidgetItem::checkState$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QTreeWidgetItem::child$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QTreeWidgetItem::childCount$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QTreeWidgetItem::isExpanded$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QTreeWidgetItem::parent$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QTreeWidget::qt_metacall$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QTreeWidget::qt_metacast$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QTreeWidget::topLevelItemCount$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QtSharedPointer::Basic::data$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QUrl::isEmpty$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QUrl::isLocalFile$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QUrl::isRelative$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QUrl::isValid$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QUrl::port$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QUuid::createUuid$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QVariant::canConvert$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^qvariant_cast$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QVariant::isNull$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QVariant::isValid$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QVariant::toRect$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QVariant::toTime$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QVariant::type$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QVariant::typeName$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QVariant::userType$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QVector::at$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QVector::contains$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QVector::count$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QVector::empty$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QVector::end$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QVector::first$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QVector::indexOf$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QVector::isEmpty$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QVector::last$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QVector::size$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^qVersion$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QWeakPointer::data$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QWebView::page$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QWheelEvent::delta$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QWheelEvent::orientation$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QWheelEvent::pos$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QWidget::backgroundRole$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QWidget::contentsRect$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QWidget::effectiveWinId$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QWidget::event$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QWidget::font$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QWidget::foregroundRole$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QWidget::geometry$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QWidget::hasFocus$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QWidget::isActiveWindow$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QWidget::isEnabled$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QWidget::isFullScreen$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QWidget::isHidden$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QWidget::isMinimized$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QWidget::isVisible$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QWidget::isWindow$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QWidget::layout$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QWidget::layoutDirection$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QWidget::mapTo$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QWidget::mapToGlobal$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QWidget::minimumHeight$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QWidget::minimumSize$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QWidget::palette$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QWidget::parentWidget$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QWidget::qt_metacall$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QWidget::qt_metacast$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QWidget::size$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QWidget::sizeHint$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QWidget::sizePolicy$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QWidget::style$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QWidget::testAttribute$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QWidget::topLevelWidget$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QWidget::underMouse$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QWidget::window$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QX11Info::display$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QXmlStreamAttributes::hasAttribute$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QXmlStreamReader::atEnd$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QXmlStreamReader::columnNumber$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QXmlStreamReader::error$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QXmlStreamReader::hasError$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QXmlStreamReader::isEndElement$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QXmlStreamReader::isStartElement$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QXmlStreamReader::lineNumber$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^QXmlStreamReader::tokenType$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^RAND_status$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^rindex$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^rl_completion_matches$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^roundf$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^SDL_GetError$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^SDL_NumJoysticks$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^sigc::bind$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^sigc::mem_fun$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^sigismember$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^sk_num$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^snd_pcm_hw_params_sizeof$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^snd_strerror$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^sqlite3_column_name$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^sqlite3_column_text$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^sqlite3_errmsg$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^sqlite3_mprintf$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^SSL_CIPHER_get_name$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^SSL_CTX_check_private_key$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^SSL_get_current_cipher$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^SSL_get_peer_certificate$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^SSL_get_verify_result$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^SSL_pending$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^SSLv23_client_method$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::auto_ptr::get$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::back_inserter$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::basic_ifstream::is_open$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::basic_ios::bad$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::basic_ios::eof$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::basic_ios::fail$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::basic_ios::good$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::basic_istream::gcount$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::basic_ofstream::is_open$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::basic_string::at$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::basic_string::begin$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::basic_string::compare$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::basic_string::c_str$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::basic_string::empty$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::basic_string::end$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::basic_string::find$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::basic_string::find_first_not_of$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::basic_string::find_first_of$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::basic_string::_M_data$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::basic_string::rfind$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::basic_string::size$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::deque::back$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::deque::empty$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::deque::end$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::deque::front$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::deque::size$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::distance$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::empty$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::find$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::find_if$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::inserter$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::list::begin$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::list::empty$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::list::end$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::list::front$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::list::size$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::lower_bound$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::make_pair$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::map::begin$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::map::count$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::map::empty$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::map::end$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::map::find$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::map::lower_bound$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::map::size$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::multimap::begin$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::multimap::end$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::multimap::equal_range$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::multimap::upper_bound$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::queue::empty$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::queue::front$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::reverse_iterator::base$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::set::begin$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::set::count$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::set::empty$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::set::end$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::setfill$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::set::find$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::setprecision$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::set::size$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::setw$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::stack::empty$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::stack::size$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::tr1::_Hashtable::begin$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::tr1::_Hashtable::end$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::tr1::_Hashtable::find$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::_Tree::_Parent$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::_Tree_val::_Right$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::type_info::name$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::upper_bound$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::vector::at$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::vector::back$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::vector::begin$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::vector::capacity$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::vector::empty$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::vector::end$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::vector::front$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^std.*::vector::size$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^strcasecmp$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^strcasestr$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^strchr$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^strcmp$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^strcoll$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^strlen$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^strncasecmp$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^strncmp$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^strpbrk$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^strrchr$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^strsignal$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^strspn$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^strstr$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^tgetnum$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^tgetstr$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^tgoto$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^toupper_GNU_extern_inline$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^ttyname$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^wcscmp$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^wxAppConsole::GetInstance$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^X509_get_ext$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^X509_get_ext_d2i$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^X509_get_subject_name$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^X509_NAME_get_entry$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^XDisplayName$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^XKeycodeToKeysym$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^xmlDocGetRootElement$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^XML_ErrorString$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^XML_GetCurrentColumnNumber$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^XML_GetCurrentLineNumber$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^XML_GetErrorCode$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^xmlStrcmp$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^xmlStrEqual$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^XPending$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^XRenderFindVisualFormat$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^XtWindow$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^XVisualIDFromVisual$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^_ZUt0_::isDestroyed$
  • RETURN_CHECKER_BUILT_IN_CHECKED_PURE_FUNCS += ^_ZUt12_::isDestroyed$
Tags

Specifies exceptions to the statistical analysis for Ignored Return Value. In particular, specifies:

Type Boost 'POSIX Extended Regular Expression'
Behavior If the name of a called function matches a RETURN_CHECKER_CHECKED_PURE_FUNCS regular expression and the return value from that function call is ignored on ALL paths, an Ignored Return Value warning will be issued (regardless of the settings of RETURN_CHECKER_CONFIDENCE and RETURN_CHECKER_RATIO).

If the Ignored Return Value warning class is disabled, such as with a WARNING_FILTER rule, this parameter has no effect.

Notes RETURN_CHECKER_IGNORED_FUNCS takes precedence over this parameter.

See Checked Functions for Ignored Return Value for information about the various configuration parameters available for specifying exceptions to the statistical analysis for Ignored Return Value.

If you are choosing between RETURN_CHECKER_CHECKED_PURE_FUNCS and RETURN_CHECKER_CHECKED_PURE_SOME_PATHS_FUNCS, note that the behavior of RETURN_CHECKER_CHECKED_PURE_SOME_PATHS_FUNCS is only likely to be preferred in very specific circumstances: usually where the return value of a pure function indicates the result of some earlier operation with side effects.

(No factory settings)

Tags

Specifies exceptions to the statistical analysis for Ignored Return Value. In particular, specifies:

Type Boost 'POSIX Extended Regular Expression'
Behavior If the name of a called function matches a RETURN_CHECKER_CHECKED_PURE_SOME_PATHS_FUNCS regular expression and the return value from that function call is ignored on ANY path, an Ignored Return Value warning will be issued (regardless of the settings of RETURN_CHECKER_CONFIDENCE and RETURN_CHECKER_RATIO).

For pure functions, this behavior is only likely to be preferred in very specific circumstances: usually where the return value of a pure function indicates the result of some earlier operation with side effects. In most other cases, use RETURN_CHECKER_CHECKED_PURE_FUNCS instead.

If the Ignored Return Value warning class is disabled, such as with a WARNING_FILTER rule, this parameter has no effect.

Notes RETURN_CHECKER_IGNORED_FUNCS takes precedence over this parameter.

See Checked Functions for Ignored Return Value for information about the various configuration parameters available for specifying exceptions to the statistical analysis for Ignored Return Value.

(No factory settings)

Tags

Used by Ignored Return Value to specify exceptions to the statistical analysis: functions whose return values can be ignored without triggering a warning.

Type Boost 'POSIX Extended Regular Expression'
Behavior If the name of a called function matches a RETURN_CHECKER_IGNORED_FUNCS regular expression and the return value from that function call is ignored, an Ignored Return Value warning will not be issued (regardless of the settings of RETURN_CHECKER_CONFIDENCE and RETURN_CHECKER_RATIO).

If the Ignored Return Value warning class is disabled, such as with a WARNING_FILTER rule, this parameter has no effect.

Notes This parameter replaces the csonar_ignore_return() function previously available in the Extension API.

RETURN_CHECKER_IGNORED_FUNCS takes precedence over all the parameters that ENFORCE return value use.

For example, if a function f() matches both a RETURN_CHECKER_IGNORED_FUNCS rule and a RETURN_CHECKER_CHECKED_FUNCS, Ignored Return Value warnings will NOT be issued when the return value from f() is ignored.

Factory Settings
  • RETURN_CHECKER_IGNORED_FUNCS += ^std::basic_ostream::operator<<$
  • RETURN_CHECKER_IGNORED_FUNCS += ^getchar$
Tags

Specifies the threshold for reporting Format String warnings.

Type Real number between 0 and 1 (inclusive)
Behavior For fixed k, if the proportion of call sites to a given function without a format string in the k'th argument position is less than this value, then CodeSonar will issue Format String warnings for those calls.

Parameter FORMAT_STRING_CHECKER_CONFIDENCE specifies the confidence interval for making this determination.

Notes Making this number larger will cause more warnings. A value of 0 will effectively disable statistical warnings.
Factory Setting
  • FORMAT_STRING_CHECKER_RATIO = 0.3
Tags

Specifies the confidence interval for statistically identifying functions that are usually passed a format string in the k'th parameter position for some k.

Type real number
Behavior Once all function calls in the program have been analyzed, there is a set of remaining candidate Format String warnings for which all of the following are true:

For each of these candidate warnings, let f() and k be the function and parameter position in question, and R be the fraction of all observed calls to f() that have a non-format string as the k'th argument. CodeSonar performs a one-sided Wilson test to determine whether R <= FORMAT_STRING_CHECKER_RATIO with at least the confidence specified this parameter. If so, the Format String warning is issued.

For example, with FORMAT_STRING_CHECKER_RATIO=0.1 and FORMAT_STRING_CHECKER_CONFIDENCE=1.96, CodeSonar will flag calls to f() with a non-format string as the first argument if, with 95% confidence, fewer than 10% of calls to f() in the universe have a non-format string as the first argument (that is, more than 90% of calls pass a format string in this position), on the assumption that the code base under analysis is a random sample of all code in the universe.

Notes Changing the value of this parameter can affect the number of warnings issued.
  • A larger value can decrease the number of warnings issued, because it imposes stricter conditions for determining that a function is 'usually' passed a format string in a particular parameter position.
  • Conversely, a smaller value can increase the number of warnings issued.
  • A value of 0 will cause FORMAT_STRING_CHECKER_RATIO to be respected precisely, even for small call populations.
  • Negative values are not useful or recommended.

For example, suppose we have the following.

  • Configuration settings for the relevant parameters are FORMAT_STRING_CHECKER_RATIO=0.1, FORMAT_STRING_CHECKER_CONFIDENCE=1
  • In analyzing calls for function myfunc(), CodeSonar has determined that there are 30 calls to myfunc() and that there is a non-format string argument in parameter position 3 in one of those calls (and a format string in that position for the other 29).
  • Once all function calls in the program have been analyzed, there is a candidate Format String warning representing the myfunc() call with non-format string in parameter position 3.

With these numbers, the one-sided Wilson test determines that the proportion of calls with non-format string is below 0.1 (FORMAT_STRING_CHECKER_RATIO) with 1 sigma of confidence (FORMAT_STRING_CHECKER_CONFIDENCE) and so the warning is issued.

However, if a second call to myfunc() also had a non-format string in position 3 (2/30 calls in total), the Wilson test would determine that the proportion of calls with non-format string is NOT below 0.1 with 1 sigma of confidence, and Format String warnings would not be issued for myfunc() position 3. Note that there may still be Format String warnings issued for calls to myfunc() with non-format strings in other argument positions, since each function-position pair is considered independently.

Factory Setting
  • FORMAT_STRING_CHECKER_CONFIDENCE = 1
Tags

Specifies the confidence interval for statistically determining that a candidate Format String warning can be discarded immediately (that is, before all function calls have been analyzed).

Type real number (indicating a number of sigmas)
Behavior To produce Format String warnings, CodeSonar analyzes the function calls in the program. Each time it encounters a call to some function f() where there is a non-format string in some parameter position k, it accumulates a candidate warning. This candidate is discarded immediately if a one-sided Wilson test determines that, for all calls to f() encountered so far, the proportion with a non-format string in position k is greater than FORMAT_STRING_CHECKER_RATIO with at least this many sigmas of confidence.
Notes The discard test is performed based on the function calls seen up to that point in the analysis (and therefore is based on partial information), so it is possible for some or all Format String warnings for a given function-position pair f(), k to be discarded even if the overall proportion of f() calls in the program with non-format string in position k does not exceed FORMAT_STRING_CHECKER_RATIO.

A smaller value increases the likelihood of false negatives, increases nondeterminism during parallel analysis, and decreases disk space consumption.

Candidate warnings are also discarded immediately if the function-position pair matches a FORMAT_STRING_CHECKER_IGNORED_FUNCS rule.

Factory Setting
  • FORMAT_STRING_CHECKER_DISCARD_CONFIDENCE = 4
Tags

Specifies function/argument combinations for Format String and Format String Type Error to check.

Type A string of the form
   <fmt_pos>, <values_pos>, <family>, <function>

where:

  • <fmt_pos> is the position of the format string argument (counting from 1).
  • <value_pos> is the position of the first "value" argument (counting from 1).
  • <family> is the family of the function: one of { printf, wprintf, vprintf, vwprintf, printf_p, vprintf_p, wprintf_p, vwprintf_p, scanf, vscanf, wscanf, vwscanf, other }.
  • <function> is the name of the function.
Behavior Calling a function whose name matches <function> without a format string in the <fmt_pos>'th parameter position will always trigger a Format String warning, regardless of the settings of FORMAT_STRING_CHECKER_CONFIDENCE and FORMAT_STRING_CHECKER_RATIO.

If <family> is printf or wprintf, the format string contents are checked against the function argument types. If something does not match, a Format String Type Error warning is issued.

  • All other families have no effect at this time.
  • Use the other family for functions that do not fit in any of the other families.
Factory Settings
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 2, printf, __eprintf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 2, printf, _cprintf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 2, wprintf, _cwprintf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 3, printf, _cprintf_l
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 3, wprintf, _cwprintf_l
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 2, printf, _cprintf_s
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 2, wprintf, _cwprintf_s
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 3, printf, _cprintf_s_l
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 3, wprintf, _cwprintf_s_l
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 3, printf, fprintf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 3, wprintf, fwprintf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 4, printf, _fprintf_l
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 4, wprintf, _fwprintf_l
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 3, printf, fprintf_s
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 3, wprintf, fwprintf_s
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 4, printf, _fprintf_s_l
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 4, wprintf, _fwprintf_s_l
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 2, printf, printf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 2, wprintf, wprintf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 3, printf, _printf_l
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 3, wprintf, _wprintf_l
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 2, printf, printf_s
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 2, wprintf, wprintf_s
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 3, printf, _printf_s_l
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 3, wprintf, _wprintf_s_l
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 2, printf, _scprintf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 2, wprintf, _scwprintf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 3, printf, _scprintf_l
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 3, wprintf, _scwprintf_l
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 3, 4, printf, snprintf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 3, 4, printf, _snprintf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 3, 4, wprintf, _snwprintf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 3, 5, printf, _snprintf_l
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 3, 5, wprintf, _snwprintf_l
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 4, 5, printf, _snprintf_s
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 4, 5, wprintf, _snwprintf_s
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 4, 6, printf, _snprintf_s_l
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 4, 6, wprintf, _snwprintf_s_l
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 3, printf, sprintf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 3, 4, wprintf, swprintf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 4, printf, _sprintf_l
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 3, 5, wprintf, _swprintf_l
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 4, wprintf, __swprintf_l
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 3, 4, printf, sprintf_s
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 3, 4, wprintf, swprintf_s
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 3, 5, printf, _sprintf_s_l
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 3, 5, wprintf, _swprintf_s_l
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 2, vprintf, _vcprintf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 2, vwprintf, _vcwprintf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 3, vprintf, _vcprintf_l
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 3, vwprintf, _vcwprintf_l
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 2, vprintf, _vcprintf_s
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 2, vwprintf, _vcwprintf_s
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 3, vprintf, _vcprintf_s_l
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 3, vwprintf, _vcwprintf_s_l
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 3, vprintf, vfprintf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 3, vwprintf, vfwprintf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 4, vprintf, _vfprintf_l
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 4, vwprintf, _vfwprintf_l
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 3, vprintf, vfprintf_s
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 3, vwprintf, vfwprintf_s
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 4, vprintf, _vfprintf_s_l
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 4, vwprintf, _vfwprintf_s_l
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 2, vprintf, vprintf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 2, vwprintf, vwprintf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 3, vprintf, _vprintf_l
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 3, vwprintf, _vwprintf_l
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 2, vprintf, vprintf_s
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 2, vwprintf, vwprintf_s
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 3, vprintf, _vprintf_s_l
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 3, vwprintf, _vwprintf_s_l
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 2, vprintf, _vscprintf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 2, vwprintf, _vscwprintf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 3, vprintf, _vscprintf_l
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 3, vwprintf, _vscwprintf_l
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 3, 4, vprintf, vsnprintf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 3, 4, vprintf, _vsnprintf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 3, 4, vwprintf, _vsnwprintf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 3, 5, vprintf, _vsnprintf_l
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 3, 5, vwprintf, _vsnwprintf_l
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 4, 5, printf, vsnprintf_s
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 4, 5, printf, _vsnprintf_s
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 4, 5, wprintf, _vsnwprintf_s
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 4, 6, printf, _vsnprintf_s_l
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 4, 6, wprintf, _vsnwprintf_s_l
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 3, vprintf, vsprintf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 3, 4, vwprintf, vswprintf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 4, vprintf, _vsprintf_l
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 3, 5, vwprintf, _vswprintf_l
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 4, vwprintf, __vswprintf_l
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 3, 4, vprintf, vsprintf_s
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 3, 4, vwprintf, vswprintf_s
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 3, 5, vprintf, _vsprintf_s_l
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 3, 5, vwprintf, _vswprintf_s_l
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 3, 4, wprintf, wnsprintfA
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 3, 4, wprintf, wnsprintfW
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 3, 4, wprintf, wnsprintf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 3, wprintf, wsprintfA
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 3, wprintf, wsprintfW
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 3, wprintf, wsprintf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 3, 4, vwprintf, wvnsprintfA
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 3, 4, vwprintf, wvnsprintfW
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 3, 4, vwprintf, wvnsprintf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 3, vwprintf, wvsprintfA
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 3, vwprintf, wvsprintfW
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 3, vwprintf, wvsprintf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 3, vprintf, vasprintf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 3, printf, __asprintf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 3, printf, asprintf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 3, vprintf, vdprintf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 3, printf, dprintf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 3, vprintf, obstack_vprintf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 3, printf, obstack_printf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 2, scanf, __isoc99__cscanf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 2, scanf, __isoc23__cscanf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 2, scanf, _cscanf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 3, wscanf, __isoc99_fwscanf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 3, wscanf, __isoc23_fwscanf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 3, wscanf, fwscanf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 3, scanf, __isoc99_fscanf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 3, scanf, __isoc23_fscanf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 3, scanf, fscanf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 3, wscanf, __isoc99_swscanf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 3, wscanf, __isoc23_swscanf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 3, wscanf, swscanf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 3, scanf, __isoc99_sscanf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 3, scanf, __isoc23_sscanf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 3, scanf, sscanf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 3, scanf, __isoc99_fscanf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 3, scanf, __isoc23_fscanf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 3, scanf, fscanf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 3, vscanf, __isoc99_vsscanf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 3, vscanf, __isoc23_vsscanf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 3, vscanf, vsscanf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 3, vscanf, __isoc99_vfscanf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 3, vscanf, __isoc23_vfscanf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 3, vscanf, vfscanf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 2, scanf, __isoc99_scanf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 2, scanf, __isoc23_scanf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 2, scanf, scanf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 2, vscanf, __isoc99_vscanf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 2, vscanf, __isoc23_vscanf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 2, vscanf, vscanf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 2, wscanf, __isoc99_wscanf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 2, wscanf, __isoc23_wscanf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 2, wscanf, wscanf
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 3, 4, printf, StringCchPrintfA
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 3, 4, wprintf, StringCchPrintfW
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 3, printf, syslog
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 2, 3, vprintf, vsyslog
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 2, printf_p, CHString::Format
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 2, vprintf_p, CHString::FormatV
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 2, printf_p, CString::Format
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 2, vprintf_p, CString::FormatV
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 2, wprintf_p, CHString::FormatMessageW
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 2, vprintf_p, CString::FormatMessageV
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 1, 2, printf, DbgPrint
  • FORMAT_STRING_CHECKER_CHECKED_FUNCS += 3, 4, printf, DbgPrintEx
Tags

Used by Format String and Format String Type Error to specify function/argument combinations that the analysis will NOT check.

Type A string of the form
   <pos>, <regex>

where:

Behavior For Format String, this parameter specifies exceptions to both the statistical analysis and the individual checks specified by FORMAT_STRING_CHECKER_CHECKED_FUNCS. Calling a function whose name matches <regex> without a format string in the <pos>'th parameter position will not trigger a Format String warning, regardless of the settings of FORMAT_STRING_CHECKER_CONFIDENCE, FORMAT_STRING_CHECKER_RATIO, and FORMAT_STRING_CHECKER_CHECKED_FUNCS.

For Format String Type Error, this parameter specifies exceptions to the individual checks specified by FORMAT_STRING_CHECKER_CHECKED_FUNCS. Calling a function whose name matches <regex> will not trigger a Format String Type Error warning, regardless of the setting of FORMAT_STRING_CHECKER_CHECKED_FUNCS. The value of the <pos> argument has no effect on this determination.

If both Format String and Format String Type Error are disabled, such as with a WARNING_FILTER rule, this parameter has no effect.

Notes This parameter replaces the csonar_ignore_format_string() function previously available in the Extension API.
Factory Settings
  • FORMAT_STRING_CHECKER_IGNORED_FUNCS += 3, ^strftime$
  • FORMAT_STRING_CHECKER_IGNORED_FUNCS += 1, ::basic_string::
  • FORMAT_STRING_CHECKER_IGNORED_FUNCS += 2, ::basic_string::
  • FORMAT_STRING_CHECKER_IGNORED_FUNCS += 3, ::basic_string::
  • FORMAT_STRING_CHECKER_IGNORED_FUNCS += 4, ::basic_string::
  • FORMAT_STRING_CHECKER_IGNORED_FUNCS += 1, ::basic_string_view::
  • FORMAT_STRING_CHECKER_IGNORED_FUNCS += 2, ::basic_string_view::
Tags

Specifies a function/argument combination for functions that pass data over trust boundaries.

Type A string of the form
  <pos>, <function>

where:

  • <pos> is an argument position (counting from 1)
  • <function> is the name of the function
Behavior A Padding Passed Across a Trust Boundary warning will be triggered when a function whose name matches <function> is called with a reference containing padded bits in the <pos>'th parameter position.

Matching is performed with respect to the function's friendly name [C++: procedure::name() | Python: procedure.name() | C: cs_pdg_friendly_name()] .

Notes Examples of trust boundaries include kernel space -> user space, memory -> socket, and memory -> file.
Factory Settings
  • PASS_OVER_TRUST_BOUNDARY_CHECKED_FUNCS = 2, copy_to_user
  • PASS_OVER_TRUST_BOUNDARY_CHECKED_FUNCS += 1, copyout_nofault
  • PASS_OVER_TRUST_BOUNDARY_CHECKED_FUNCS += 1, copyout
  • PASS_OVER_TRUST_BOUNDARY_CHECKED_FUNCS += 2, write
  • PASS_OVER_TRUST_BOUNDARY_CHECKED_FUNCS += 2, pwrite
  • PASS_OVER_TRUST_BOUNDARY_CHECKED_FUNCS += 1, fwrite
  • PASS_OVER_TRUST_BOUNDARY_CHECKED_FUNCS += 2, writev
  • PASS_OVER_TRUST_BOUNDARY_CHECKED_FUNCS += 2, pwritev
  • PASS_OVER_TRUST_BOUNDARY_CHECKED_FUNCS += 2, pwritev2
  • PASS_OVER_TRUST_BOUNDARY_CHECKED_FUNCS += 2, send
  • PASS_OVER_TRUST_BOUNDARY_CHECKED_FUNCS += 2, sendto
  • PASS_OVER_TRUST_BOUNDARY_CHECKED_FUNCS += 2, WriteFile
  • PASS_OVER_TRUST_BOUNDARY_CHECKED_FUNCS += 2, WriteFileEx
  • PASS_OVER_TRUST_BOUNDARY_CHECKED_FUNCS += 2, WriteFileGather
Tags

Used by Inappropriate Call Outside Loop to specify functions whose calls should be enclosed in a loop.

Type string (representing a function name)
Behavior A call to any function whose name matches one of these names will trigger a Inappropriate Call Outside Loop warning if it is not enclosed in a loop.

Matching is performed with respect to the function's verbose name [C++: procedure::verbose_name() | Python: procedure.verbose_name() | C: cs_pdg_procedure_name()] .

Factory Settings
  • LOOP_ONLY_FUNCS = std::condition_variable::wait(std::unique_lock<std::mutex> &)
  • LOOP_ONLY_FUNCS += std::cv_status std::condition_variable::wait_for<long, std::ratio<(long)1, (long)1000>>(std::unique_lock<std::mutex> &, const std::chrono::duration<T1, T2> &)
  • LOOP_ONLY_FUNCS += std::cv_status std::condition_variable::wait_until<std::chrono::duration<long, std::ratio<(long)1, (long)1000000000>>>(std::unique_lock<std::mutex> &, const std::chrono::time_point<std::chrono::_V2::system_clock, T1> &)
  • LOOP_ONLY_FUNCS += cnd_wait
  • LOOP_ONLY_FUNCS += cnd_timedwait
  • LOOP_ONLY_FUNCS += pthread_cond_wait
  • LOOP_ONLY_FUNCS += pthread_cond_timedwait
Tags

Specifies whether CodeSonar should assume every thread entry point is used to create multiple threads that run concurrently.

Type { Yes, No }
Behavior
  • Yes : CodeSonar will report Data Race warnings in which both threads start at the same entry procedure/method, as well as warnings in which the threads start at different points.
  • No : CodeSonar will only report Data Race warnings in which the threads start at different points.
Notes Setting this to Yes can result in a large number of false positive Data Race warnings, especially for applications that use many "singleton threads".
Factory Setting
  • MULTIPLE_THREADS_PER_ENTRY_PROCEDURE = No
Tags

Sometimes certain variables or procedures should be ignored for the purpose of data race detection. The classic example is errno, which appears to be a normal global variable, but is made thread-local by all modern C/C++ implementations. DATA_RACE_IGNORE_NAMES provides a way to extend the set of variables and procedures that the data race analysis should ignore.

Type Boost 'POSIX Extended Regular Expression'
Behavior The data race analysis checks all global variables and procedure names to see if they match one of the specified patterns. No data races will be reported on accesses to matching variables or inside of matching procedures. The general analysis engine will still track matching variables and procedures as usual.
Notes Example rules:
    DATA_RACE_IGNORE_NAMES += ^errno$
    DATA_RACE_IGNORE_NAMES += ^run$
Tags

Sometimes the analysis engine cannot find all the thread entry procedures/methods in a program. The most common cause of missing entry points is the use of closure-like wrappers around the "true" thread entry procedures. This parameter can be used to force the analysis engine to treat specific procedures as thread entry points.

Type Boost 'POSIX Extended Regular Expression'
Behavior The analysis engine checks all procedures and methods to see if they match one of the specified patterns. Matching procedures are considered thread entry points, even if CodeSonar's regular thread entry discovery mechanisms cannot prove that.
Notes Example rules:
    FORCE_THREAD_ENTRY_NAMES += ^f1$
    FORCE_THREAD_ENTRY_NAMES += ^handler$

Specifying a thread entry point with FORCE_THREAD_ENTRY_NAMES is not sufficient to ensure that CodeSonar will carry out Data Race checking. See Data Race : Note for details.

Note that this parameter does not affect checks for Thread Entry Point, which only reports calls to functions whose library models identify them as thread entry points. If you want to see which functions have been identified as entry points due to FORCE_THREAD_ENTRY_NAMES or THREAD_ENTRY_METHOD_NAMES rules, inspect the Analysis Log for lines of the following form.

   Identified (initial) thread entry function: <name_of_function>
Tags

For programs that use an object-oriented multithreading API. Specifies which method on an object should be considered the "entry method" when the object (or a reference to it) is specified as a thread entry point.

Type Boost 'POSIX Extended Regular Expression'
Behavior If an object (or object reference) is used in a location where a thread entry point procedure is expected, CodeSonar will scan the object's class hierarchy for a method whose name matches one of the specified patterns.
  • If such a method is found, it will be used as a thread entry procedure.
  • Otherwise, no thread entry point is discovered. If the thread contributed to a data race, the analysis will not be able to detect that race.
Notes CodeSonar uses THREAD_ENTRY_METHOD_NAMES settings to determine which method on an object should be considered the "entry method" when the object is specified as a thread entry point. This parameter is only suitable for use with object-oriented multithreading APIs.

To specify that an arbitrary function provides a thread entry point, you will need to write a model for that function. See the manual section on concurrency models for details.

Example rule:

    THREAD_ENTRY_METHOD_NAMES += ^Main$

Specifying a thread entry point with THREAD_ENTRY_METHOD_NAMES is not sufficient to ensure that CodeSonar will carry out Data Race checking. See Data Race : Note for details.

Note that an object with a method matching one or more THREAD_ENTRY_METHOD_NAMES rules will only trigger Thread Entry Point warnings if that method also has a library model that identifies it as a thread entry point.

If you want to see which functions have been identified as entry points due to FORCE_THREAD_ENTRY_NAMES or THREAD_ENTRY_METHOD_NAMES rules, inspect the Analysis Log for lines of the following form.

      Identified (initial) thread entry function: <name_of_function> 
Factory Setting
  • THREAD_ENTRY_METHOD_NAMES += ^run$
Tags
  • Designates Specially-Treated Functions
  • Used by Data Race

Used by the lock-related checks to identify the procedures used to open named semaphores

Type Boost 'POSIX Extended Regular Expression'
Behavior The analysis will treat all functions whose names match patterns in SEMOPEN_FUNCTIONS as semaphore-opening functions. The analysis assumes that the first parameter is a string that represents the name of the semaphore.
Notes Functions that open named semaphores are expected to return the same semaphore address each time they are successfully called with the same name, until that semaphore is unlinked or closed. Identifying a function f() with SEMOPEN_FUNCTIONS ensures that the CodeSonar analysis correctly associates these properties with f().

For more information, see the manual section on concurrency models.

Example rules:

   SEMOPEN_FUNCTIONS += ^semOpen$
   SEMOPEN_FUNCTIONS += ^sem_open$
Tags
  • Designates Specially-Treated Functions

Used by the CONCURRENCY.LOCK.* checks to identify functions that should be treated as if they directly acquire locks.

Type Boost 'POSIX Extended Regular Expression'
Behavior The analysis will treat all functions whose names match patterns in LOCK_FUNCTIONS as lock-acquiring functions. The analysis assumes that the first parameter is a pointer to the lock object.
Notes Use this parameter to identify wrapper functions for lock acquisition. This allows lock acquire/release checks to issue warnings in code that uses these wrappers, instead of only inside the bodies of the wrappers themselves.

For example, suppose a project uses wrapper mylock():

   void mylock(GMutex *m){
      /* ... */
      g_mutex_lock(m);
      return;
   }

   void nounlock(GMutex *m){
      mylock(m);
   }

If we set LOCK_FUNCTIONS += ^mylock$, the analysis will issue a Missing Lock Release in the body of function nounlock().

If we do not specify that mylock is a lock function with LOCK_FUNCTIONS, the analysis will not issue a Missing Lock Release warning in the body of function nounlock(), but WILL issue a Missing Lock Release warning in the body of mylock().

Condition-wait functions should be identified with both LOCK_FUNCTIONS and UNLOCK_FUNCTIONS, because these functions release and subsequently reacquire the specified lock. For example:

    LOCK_FUNCTIONS += ^my_cond_wait$
    UNLOCK_FUNCTIONS += ^my_cond_wait$

Functions that have library models identifying them as lock acquirers do not need to be specified with LOCK_FUNCTIONS: they will automatically be treated correctly.

For more information, see the manual section on concurrency models.

Example rule:

    LOCK_FUNCTIONS += ^my_lock_wrapper$
Tags

Used by the CONCURRENCY.LOCK.* checks to identify functions that should be treated as if they directly release locks.

Type Boost 'POSIX Extended Regular Expression'
Behavior The analysis will treat all functions whose names match patterns in UNLOCK_FUNCTIONS as lock-releasing functions. The analysis assumes that the first parameter is a pointer to the lock object.
Notes Use this parameter to identify wrapper functions for lock release. This allows lock acquire/release checks to issue warnings in code that uses these wrappers, instead of only inside the bodies of the wrappers themselves.

For example, suppose a project uses wrapper myunlock():

   void myunlock(GMutex *m){
      g_mutex_unlock(m);
      /* ... */
      return;
   }

   void nolock(GMutex *m){
      myunlock(m);
   }

If we set UNLOCK_FUNCTIONS += ^myunlock$, the analysis will issue a Missing Lock Acquisition warning in the body of function nolock().

If we do not use LOCK_FUNCTIONS to specify that myunlock is a unlock function, the analysis will not issue a Missing Lock Acquisition warning in the body of function nolock(), but WILL issue a Missing Lock Acquisition warning in the body of myunlock().

Condition-wait functions should be identified with both LOCK_FUNCTIONS and UNLOCK_FUNCTIONS, because these functions release and subsequently reacquire the specified lock. For example:

    LOCK_FUNCTIONS += ^my_cond_wait$
    UNLOCK_FUNCTIONS += ^my_cond_wait$

Functions that have library models identifying them as lock releasers do not need to be specified with UNLOCK_FUNCTIONS: they will automatically be treated correctly.

For more information, see the manual section on concurrency models.

Example rule:

 UNLOCK_FUNCTIONS += ^my_unlock_wrapper$
Tags

Bounds the number of potential lock-related warnings that CodeSonar will consider during the analysis of any particular function.

Type non-negative integer
Behavior If during the analysis of a procedure, more than this many potential lock-related warnings are identified, some of the potential warnings will be dropped. Raising this may result in a more thorough analysis, but will increase the time and memory used by the analysis.
Notes This only affects the analysis for CONCURRENCY.LOCK.* checks. It is quite unusual for this limit to be reached. However, if it is set to a very high number (for example, more than 200,000) CodeSonar may behave unpredictably or crash.
Factory Setting
  • LOCK_MAX_PENDING_WARNINGS_PER_PROCEDURE = 1000

Specifies the extent to which the CodeSonar analysis will expand call sites for full analysis instead of using summaries to approximate the behavior of the call.

Type {None, Some, More, Most}
Behavior For a particular warning, a call site will only be expanded if it is on the warning path and is especially relevant.

A higher value for this preference can reduce the number of false positive results, but will make the analysis take longer.

Notes If a call site on some warning path is expanded in the CodeSonar analysis, the corresponding HTML warning report will allow navigation into the call site. This provides a more complete depiction of program behavior, but increases the size of the output.
Factory Setting
  • CALL_SITE_EXPANSIONS = Some
Tags
  • Analysis resource/effort limit

Places a bound on the nesting depth of call site expansions (nested "+" widgets in warning reports).

Type integer
Notes A limit that is too high may cause CodeSonar to have a stack overflow. The factory setting (30) is only encountered in pathological cases: only one program capable of inducing a stack overflow has ever been found in the wild.
Factory Setting
  • CALL_SITE_EXPANSION_BOUND = 30
Tags
  • Analysis resource/effort limit

Determines whether HTML warning reports may abridge procedure listings in order to show only the most relevant parts.

Type { Yes, No }
Behavior
  • No: if a path includes any part of a procedure, the warning report will show all of the procedure.
Factory Setting
  • ABRIDGE_HTML = Yes
Tags
  • Hub and Web GUI

Specify whether the CodeSonar build/analysis will be performed offline.

Type { Yes, No }
Behavior
  • Yes : The CodeSonar build/analysis will be performed offline. Information for later submission to the hub will be accumulated in the build directory.
  • No: The CodeSonar build/analysis will be performed online unless the -offline command line flag is specified.
Notes The accumulated offline information must be submitted to the hub by a subsequent codesonar submit-results command.

Offline build and analysis are always local-managed. In consequence, when OFFLINE=Yes:

  • The same directory will serve as both build directory and analysis directory.
  • It does not make sense to also specify a value for REMOTE_ANALYSIS_LAUNCHD. If you specify both OFFLINE=Yes and REMOTE_ANALYSIS_LAUNCHD, the build/analysis will exit with an error unless command line option -offline or -remote is also specified, in which case the command line option takes precedence. In the latter case the build/analysis will proceed but output a warning message.

When an offline build/analysis is run in parallel mode, it is always local-requesting. In consequence, if OFFLINE=Yes and you also specify REQUEST_REMOTE_PARSE_SLAVES=Yes or REQUEST_REMOTE_ANALYSIS_SLAVES=Yes, the build/analysis will exit with an error unless command line option -offline or -remote is also specified, in which case the command line option takes precedence. In the latter case the build/analysis will proceed but output a warning message.

The -offline command line flag takes precedence over this setting.

Factory Setting
  • OFFLINE = No
Tags
  • Analysis Properties

Used by the Function Too Long check: specifies the maximum allowable length of a function.

Type non-negative integer
Behavior CodeSonar will issue a Function Too Long warning for functions whose Lines With Code exceeds this value.
Notes Note that the Function Too Long check is disabled by default: use a WARNING_FILTER rule to enable it.
Factory Setting
  • MAX_FUNCTION_LENGTH = 60
Tags

Specifies the maximum allowable numbers of parameters a function can have to comply with the Too Many Parameters check.

Type non-negative integer
Behavior CodeSonar will emit a Too Many Parameters warning for functions that have more parameters than specified here.
Notes Note that the Too Many Parameters check is disabled by default: use a WARNING_FILTER rule to enable it.
Factory Setting
  • MAX_NUM_PARAMS = 6
Tags

Used by the Not Enough Assertions check: specifies the minimum number of assertions each function must contain.

Type non-negative integer
Behavior CodeSonar will emit a Not Enough Assertions warning when it detects a function with fewer calls to a recognizable assert function, provided that the function length exceeds the MIN_ASSERTS_FUNCTION_LENGTH threshold.
Notes Note that the Not Enough Assertions check is disabled by default: use a WARNING_FILTER rule to enable it.
Factory Setting
  • MIN_ASSERTS = 2
Tags

Used by the Not Enough Assertions check: specifies the minimum length a function must have to be subject to the check.

Type non-negative integer
Behavior CodeSonar will only check the number of assertions in functions whose Lines With Code exceeds this value.
Notes Note that the Not Enough Assertions check is disabled by default: use a WARNING_FILTER rule to enable it.
Factory Setting
  • MIN_ASSERTS_FUNCTION_LENGTH = 0
Tags

Used by the Too Many Dereferences check: specifies the maximum number of dereferencing levels permitted on a single item.

Type non-negative integer
Behavior If an item is dereferenced by more levels than allowed by this parameter, CodeSonar will issue a Too Many Dereferences warning.
Notes For example,
  • "*x" has a maximum of one dereference,
  • "*x = *y" also has a maximum of one dereference,
  • "*x[0] = *y" has a maximum of two dereferences.

Note that the Too Many Dereferences check is disabled by default: use a WARNING_FILTER rule to enable it.

Factory Setting
  • MAX_PERMITTED_DEREFS = 1
Tags

Specifies the maximum levels of indirection allowed in a declaration to comply with the Too Much Indirection in Declaration check.

Type non-negative integer
Behavior CodeSonar will emit a Too Much Indirection in Declaration warning when it detects a number of indirections greater than this setting.
Notes For example, the following declaration has two levels of indirection:
    int **x

Note that the Too Much Indirection in Declaration check is disabled by default: use a WARNING_FILTER rule to enable it.

Factory Setting
  • MAX_PERMITTED_INDIRECTION_IN_DECLARATION = 2
Tags

Determines how the analysis will report variables that can be local static but are declared with file or global scope.

Type { Yes, No }
Behavior
  • Yes : variables that are global or file static but could be local static will trigger Scope Could Be Local Static warnings.
  • No : variables that are global but could be local static will trigger Scope Could Be File Static warnings; variables that are file static but could be local static do not trigger any scope warning.
Notes Setting to "No" means that no warnings of class Scope Could Be Local Static will be issued by the analysis.

The Scope Could Be File Static check and the Scope Could Be Local Static check are disabled by default: use WARNING_FILTER rules to enable them.

Tags

Used by the Pointer Type Inside Typedef check: specifies types whose typedefs are allowed to contain pointer types.

Type Boost 'POSIX Extended Regular Expression'
Behavior Pointer Type Inside Typedef warnings will not be issued for typedefs whose type name matches a regular expression in the PTR_INSIDE_TYPEDEF_EXCEPTION set, even if the typedef contains a pointer type.
Notes For example,
   PTR_INSIDE_TYPEDEF_EXCEPTION += _ptr$

specifies that typedefs whose name end with _ptr are allowed to have pointers in their definitions.

Note that the Pointer Type Inside Typedef check is disabled by default: use a WARNING_FILTER rule to enable it.

Factory Setting
  • PTR_INSIDE_TYPEDEF_EXCEPTION += _ptr$
Tags

Used by the Recursion, Dynamic Allocation After Initialization, and Dynamic Thread Creation checks to compute an upper bound on the number of procedures the depth-first search in these checks can visit in an incremental run.

Type
  • DFS_MAX_VISITED_COEFFICIENT : non-negative integer
  • DFS_MAX_VISITED_CONSTANT : non-negative integer
Behavior The depth-first search used by the Recursion, Dynamic Allocation After Initialization, and Dynamic Thread Creation checks is bounded on incremental analyses in proportion to the total number of procedures changed since the last analysis.

Specifically, the depth-first search will terminate after visiting a number of procedures equal to:

   DFS_MAX_VISITED_COEFFICIENT * (# of procedures changed) + DFS_MAX_VISITED_CONSTANT
Notes Note that the Recursion, Dynamic Allocation After Initialization, and Dynamic Thread Creation checks are disabled by default: use WARNING_FILTER rules to enable them.
Factory Settings
  • DFS_MAX_VISITED_COEFFICIENT = 8
  • DFS_MAX_VISITED_CONSTANT = 128
Tags

Used by the Recursion, Dynamic Allocation After Initialization, and Dynamic Thread Creation checks: specifies a bound on the number of procedures visited by a single local depth-first search

Type non-negative integer
Behavior In incremental analyses, the depth-first search used by the Recursion, Dynamic Allocation After Initialization, and Dynamic Thread Creation checks descends from each procedure that changed since the last analysis. Each local depth-first search will visit at most DFS_MAX_LOCAL_VISITED procedures.

This works in conjunction with the DFS_MAX_VISITED_COEFFICIENT and DFS_MAX_VISITED_CONSTANT configuration options to bound the depth-first search: it prevents a single depth-first search from hitting the global bound and starving any subsequent searches.

Notes Note that the Recursion, Dynamic Allocation After Initialization, and Dynamic Thread Creation checks are disabled by default: use WARNING_FILTER rules to enable them.
Factory Setting
  • DFS_MAX_LOCAL_VISITED = 16
Tags

Used by the Data Race analysis to limit the amount of effort spent searching for a feasible path in a particular set of potential paths.

Type non-negative integer
Behavior Specifies the maximum number of control flow branches to be explored in the search for a feasible path.
Notes The data race analysis builds up large sets of program paths that could be involved in data races. After the main code analysis completes, the data race detector must search through its (potentially quite large) sets of paths to find pairs of paths that represent a real race. Searching through these sets can be quite time consuming, so DATA_RACE_PATH_FINDING_EFFORT gives a mechanism to limit the amount of time spent on the search.
Factory Setting
  • DATA_RACE_PATH_FINDING_EFFORT = 10000
Tags

Controls how many related Data Race warnings get reported. Can greatly influence runtime.

Type non-negative integer
Behavior Given DATA_RACE_MAX_RELATED_PATHS=N:
  • The CodeSonar will consider N paths to accesses of a particular memory location for each thread entry point.
  • Because a Data Race warning involves two threads, the result is that up to N^2 warnings can be reported per (memory_location, thread_entry_A, access_mode_A, thread_entry_B, access_mode_B) tuple.

Where

  • A memory location might be a global variable.
  • The functions treated as thread entry points include program entry functions main() and WinMain(), library functions that are modeled as thread entry points or signal handler entry points, functions specified with FORCE_THREAD_ENTRY_NAMES, and object-oriented API methods specified with THREAD_ENTRY_METHOD_NAMES. For more details, see Concurrency Models: Thread Entry Points.
  • Access mode is either read or write.

A setting of 0 (zero) will be treated the same as a setting of 1 (one).

Notes The related warnings that are reported will differ only by call stack. Call stacks that contain the same functions but different return addresses are considered different.

The related warnings are often, but not always, in the same warning group. To see multiple instances of the same warning group in the CodeSonar Web GUI, set Visible Warnings to "all".

The analysis may become quite time-intensive for values other than 1.

You may need to adjust DATA_RACE_PATH_FINDING_EFFORT, TIME_LIMIT_DATA_RACE_PATH_SEARCH, and TIME_LIMIT_DATA_RACE_PATH_SEARCH_PER_PROCEDURE to fully realize the additional warnings.

Factory Setting
  • DATA_RACE_MAX_RELATED_PATHS = 1
Tags

Used by the Excessive Stack Depth check: specifies the maximum allowable depth of the call stack, in bytes.

Type integer
Behavior If this threshold is exceeded, CodeSonar will issue a Excessive Stack Depth warning.
Notes Note that the Excessive Stack Depth check is disabled by default: use a WARNING_FILTER rule to enable it.
Factory Setting
  • STACK_DEPTH_THRESHOLD = 65536
Tags

Used by the Excessive Stack Depth check: estimates the activation record size for undefined functions.

Type integer
Behavior CodeSonar will treat calls to undefined functions as contributing this many bytes to the call stack depth.
Notes Note that the Excessive Stack Depth check is disabled by default: use a WARNING_FILTER rule to enable it.
Factory Setting
  • STACK_DEPTH_UNDEFINED_FUNCTION_SIZE = 128
Tags

Used by the Excessive Stack Depth check: estimates the word size to which a compiler will pad individual variables.

Type integer
Behavior CodeSonar will treat variables as being padded to a multiple of this many bytes when determining their contribution to the call stack depth.

For example, on a 4-byte word-aligned system, four bytes will be allocated by the declaration 'char c', even though only one byte is used.

Notes Note that the Excessive Stack Depth check is disabled by default: use a WARNING_FILTER rule to enable it.
Factory Setting
  • STACK_DEPTH_COMPILER_PADDING = 4
Tags

Used by the Excessive Stack Depth check: estimates the the size of the constant elements the compiler pushes on the call stack for each activation record.

Type integer
Behavior CodeSonar will treat every activation record pushed on the call stack as if it contributes this many bytes of constant elements to the call stack depth.

For example, the return address is stored on the call stack for every activation record.

Notes Note that the Excessive Stack Depth check is disabled by default: use a WARNING_FILTER rule to enable it.
Factory Setting
  • STACK_DEPTH_ACTIVATION_RECORD_CONSTANTS = 12
Tags

Used by Excessive Stack Depth to specify the entry point of a module and the maximum allowable depth of the call stack of that module.

Type A string of the form
   <threshold>, <regex>

where:

Behavior If the stack depth of the module entry point exceeds the module's threshold, CodeSonar will issue a Excessive Stack Depth warning.
Notes If any STACK_DEPTH_MODULES are specified - even if none of them match any function - CodeSonar won't check for project-wide stack depth violations.
Tags

Used by Excessive Stack Depth to specify functions whose callees should be ignored when computing the stack depth of the function.

Type string
Behavior If the name of a function equals to the string given, the stack depth of the function will only be computed from its locals.
Tags

Specifies whether or not undefined functions should be considered as having side effects by the Condition Contains Side Effects check.

Type { Yes, No }
Factory Setting
  • UNDEFINED_FUNCTIONS_HAVE_SIDE_EFFECTS = Yes
Tags

Specifies whether or not CodeSonar will output an XML file showing the variables modified by each procedure.

Type { Yes, No }
Behavior
  • Yes : the analysis will output an XML file showing the variables modified by each procedure. For an analysis whose analysis directory is <path>/<to>/<prjname>.prj_files, the XML file path will be <path>/<to>/<prjname>.side_effects.xml.
  • No : this XML file will not be output.
Notes Modifications are stated in terms of inputs to the procedure.
Factory Setting
  • EMIT_PROCEDURE_SIDE_EFFECTS = No
Tags
  • Additional Outputs from the Build/Analysis

Specifies whether or not CodeSonar will issue Unused Value warnings for values that arise from constant assignments.

Type { Yes, No }
Behavior If "Yes", CodeSonar will issue Unused Value warnings in cases like:
  x = 3;
  x = 4;

If "No", such cases will not trigger Unused Value warnings.

Factory Setting
  • REPORT_UNUSED_ASSIGNMENTS_FROM_CONSTANTS = No
Tags

Specifies whether or not CodeSonar will issue Redundant Condition warnings for conditions testing constant values.

Type { Yes, No }
Behavior If "Yes", CodeSonar will issue Redundant Condition warnings in cases like:
  if ( 0 )
     ...

If "No", such cases will not trigger Redundant Condition warnings.

Factory Setting
  • REPORT_REDUNDANT_CONDITIONS_BASED_ON_CONSTANTS = No
Tags

Tells CodeSonar that function A works like function B.

Type String of the form
  A -> B

where A and B are function names.

Behavior The value "A -> B" indicates that CodeSonar should treat calls to function A as calls to function B. This is equivalent to writing a stub using csonar_replace_A that calls B, but may be more convenient.

If A -> B and B -> C then A -> C

The behavior is undefined if:

  • the types of A and B are not binary-compatible (for example, because they have different numbers of parameters), or
  • there are cycles in the function map, or
  • multiple FUNCTION_MAP rules with the same LHS function are specified, or
  • for some function A, csonar_replace_A exists in the project and a FUNCTION_MAP rule mapping A -> B is specified for some B.
Notes The most common use cases are:
  • Designating functions that end program execution.
  • Designating malloc and free workalikes.

For multiple mappings, use a separate FUNCTION_MAP += statement for each mapping.

C++ identifiers containing spaces must be quoted and contain the full name of the function as used by the linker. Microsoft libc command line encoding rules apply (even on non-Windows systems). For example:

  // This maps the foo method to the bar method.
  // FUNCTION_MAP += "ns::x<const char *const >::foo(unsigned int)" -> "ns::x<const char *const >::bar(unsigned int)"
  namespace ns{
    typedef unsigned U;
    template <typename T>
    struct x{
      void foo(U i){}
      void bar(unsigned i){1/i;}
      void baz(void){foo(0);}
    };
    void f(x<const char *const> *p)
    { p->baz(); }
  };

Behavior is undefined if csonar_replace_A is defined and

  FUNCTION_MAP += A -> B

is specified, for any functions A and B.

Example 1: specify that fatal causes the program to abort.

  FUNCTION_MAP += fatal -> abort

Example 2: specify that pmalloc behaves like malloc:

  FUNCTION_MAP += pmalloc -> malloc

Example 3: specify that pfree behaves like free:

  FUNCTION_MAP += pfree -> free
Factory Setting
  • FUNCTION_MAP +=

Specifies whether or not the CodeSonar analysis should check C++ compilation units.

Type { Yes, No }
Behavior
  • Yes : CodeSonar will ignore all C++ compilation units: C++ code will not be checked.
  • No : CodeSonar will check both C and C++ compilation units.
Factory Setting
  • IGNORE_CPP_CODE = No
Tags
  • Treatment of Language Constructs

Specifies the maximum number of parse errors submitted to the hub for a compilation.

Type integer. -1 means "no limit"
Behavior No more than the specified number of errors will be submitted to the hub for any single compilation. If the number of errors for the compilation exceeds the specified number, a "There are more errors" entry is submitted.
Notes This parameter has no effect on whether or not a compilation is included in the analysis.
Factory Setting
  • ERROR_SUBMISSION_LIMIT_PER_COMPILATION = 30
Tags
  • Governs the Build/Analysis

Specifies whether reads through volatile types always result in unknown values.

Type {UNKNOWABLE, ADVERSARIAL, IGNORE}
Behavior
  • UNKNOWABLE : any attempt to read through a volatile type will result in an unknown value that is not considered adversarial.
  • ADVERSARIAL : any attempt to read through a volatile type will result in an adversarial value.
  • IGNORE : CodeSonar ignores the volatile keyword.
Notes The following test case will produce a Null Pointer Dereference warning if this preference is set to UNKNOWABLE or ADVERSARIAL.
   int *p = 0;
   volatile int i;
   i = 5;
   if( i != 5 )
       *p;

The following test case will produce a Division By Zero warning if this preference is set to ADVERSARIAL.

   volatile int i;
   i = 5;
   10 / i;

The following test case will produce a Division By Zero warning if this preference is set to ADVERSARIAL or IGNORE.

   volatile int i;
   i = 0;
   10 / i;

The following test case will produce an Unreachable Code: 5 warning classes warning if this preference is set to IGNORE.

   int j;
   volatile int timer = 0;
   while( timer != 1000 )
       ;
   j = 42;
Factory Setting
  • VOLATILE_TREATMENT = UNKNOWABLE
Tags
  • Treatment of Language Constructs

Specifies whether all floating point values should be considered adversarial.

Type { Yes, No }
Behavior
  • Yes : all floating point values will be treated as unknown and adversarial, even constants.
  • No : CodeSonar will reason about floating point values.
Notes Do not set to Yes if any floating point warning classes (Float Division By Zero plus any class with a mnemonic of the form MATH.*) are enabled: it will cause a large number of false positive warnings with those classes.

For example, a Float Division By Zero warning will be issued for the following when FLOAT_IS_ADVERSARIAL=Yes because the denominator is treated as adversarial even though it is a constant.

  float c = 5.0 / 2.0

The following test case will produce two Buffer Overrun warnings when FLOAT_IS_ADVERSARIAL=Yes.

   char A[10];
   double d = 11.0;
   A[d] = 0;
   d = 5.0;
   A[d] = 0;
Factory Setting
  • FLOAT_IS_ADVERSARIAL = No
Tags
  • Treatment of Language Constructs

Specifies whether to treat globals and statics as const if they are initialized (explicitly or implicitly) but never assigned to.

Type { Yes, No }
Behavior
  • Yes : assume these variables never change
  • No : assume these variables might change
Notes In the following code example, bound is initialized to 100 and then never assigned to.
  • If the example is analyzed with INFER_CONST=Yes, CodeSonar will assume that the value of bound is always 100, and so will determine that the array access buf[i] will never overflow because it is adequately guarded by the test on the previous line.
  • If this example is analyzed with INFER_CONST=No, CodeSonar's analysis will allow for the possibility that the value of bound could be changed by separate code, and so issue a Buffer Overrun warning.
   int bound = 100;
   void foo(void) {
      char buf[100];
      int i = getchar();
      if( i >= bound || i < 0 ) return;
      buf[i] = 'c';
   }

The following test case will produce a Null Pointer Dereference warning if it is analyzed with INFER_CONST=Yes.

   int *ip;
   void foo(void) {
      *ip = 7;
   }

This is because ip is implicitly zero-initialized, and no other value is ever assigned to ip. Therefore, CodeSonar assumes that ip must always be zero. To avoid the zero-initialization, you can change the declaration to

    extern int *ip;

In some cases, analyzing code with INFER_CONST=Yes can lead to unexpected false positives and false negatives.

  • If you are analyzing only pieces of a larger code base, you may experience positives and false negatives arising from variables that are modified elsewhere in the program but not in the analyzed portion (because CodeSonar will assume that these variables are never modified).
  • Similarly, libraries and synthetic test cases often involve variables whose values do not change in the library/test itself, but may be changed by external code.

In these cases, analyzing with INFER_CONST=No may provide better results.

Factory Setting
  • INFER_CONST = Yes
Tags
  • Treatment of Language Constructs

Specifies the maximum sized integer that should be considered a character type for the purpose of tracking the null-terminator position.

Type integer
Notes Setting this to 2 may prove useful for projects using wide characters. However, some approximations that occur as a consequence of using this can backfire when a single memory region contains multiple zeroes. It is not recommended that users alter this unless advised to do so by CodeSecure.
Factory Setting
  • NULL_SENTINEL_CHAR_SIZE = 1
Tags

Specifies whether Pointer Past End of Object warnings should be issued for pointers that point to exactly the end of an object.

Type { Yes, No }
Behavior If set to "Yes", Pointer Past End of Object warnings will be issued in cases like the following.
   int A[10];
   int *p = &A[10];
Notes The factory setting is "No" because many codebases may have cursor pointers that reach the end of an object but are never dereferenced, as in the following example.
   int A[10];
   int *p;
   for( p = A; p < &A[10]; p++ );
Factory Setting
  • WARN_POINTER_AT_END = No
Tags

Specifies whether the tracking of variable initialization in loops is tuned to potentially report more Uninitialized Variable warnings.

Type { Yes, No }
Behavior If set to "Yes", Uninitialized Variable warnings will be issued for variables that are initialized on some but not all paths through the loop.
Notes The factory setting is "No" because this feature is a frequent source of false positive results when complex invariants in the codebase render the non-initializing paths infeasible.
Factory Setting
  • WARN_MORE_LOOP_UVARS = No
Tags

Allows metrics to be turned on/off, either for an entire metric class or for specific files, procedures, or compilation units.

Type Zero or more patterns, each consisting of an <action> followed by one or more <rule>s.

<action> is one of:

  • discard
  • allow

<rule> is one of:

  • metric <matcher> <string>
  • file <matcher> <string>
  • procedure <matcher> <string>
  • procedure_typed <matcher> <string>
  • compilation_unit <matcher> <string>
  • language <matcher> <string>

and <matcher> is one of:

Behavior Depends on the <action>:
  • discard : metrics matching the rules will be discarded instead of being submitted to the hub, and whenever possible will not be computed.
  • allow : metrics matching the rules will be submitted to the hub, even if they matched a previous "discard"
Notes If there are two or more <rule>s in a pattern, the pattern <action> will be applied to metrics that match ALL of the rules.

procedure rules match against the friendly name [C++: procedure::name() | Python: procedure.name() | C: cs_pdg_friendly_name()] .

procedure_typed rules match against the verbose name [C++: procedure::verbose_name() | Python: procedure.verbose_name() | C: cs_pdg_procedure_name()] .

If you want to compute any of the Halstead metrics (n1, N1, n2, N2, D, I, T, E, N, L, V), set

    RETAIN_UNNORMALIZED_C_AST = Yes

Metrics of an individual granularity can be allowed/discarded if the string pattern is of the form "tag[granularity]". For example, to discard the "Total Lines" (TL) metric only for file granularity (not the analysis or procedure granularity metrics with the same tag), the following rule will work:

    METRIC_FILTER += discard metric="TL[FILE]"

The following metrics are enabled by default. To discard a particular metric class, use the corresponding "discard" rule.

    METRIC_FILTER += discard metric="LCodeOnly"
    METRIC_FILTER += discard metric="LCode"
    METRIC_FILTER += discard metric="LMCC"
    METRIC_FILTER += discard metric="LComOnly"
    METRIC_FILTER += discard metric="LB"
    METRIC_FILTER += discard metric="TL"
    METRIC_FILTER += discard metric="LCom"
    METRIC_FILTER += discard metric="vG"
    METRIC_FILTER += discard metric="mvG"
    METRIC_FILTER += discard metric="Modules"
    METRIC_FILTER += discard metric="TopLF"
    METRIC_FILTER += discard metric="InclF"
    METRIC_FILTER += discard metric="TaintSource"
    METRIC_FILTER += discard metric="TaintProp"
    METRIC_FILTER += discard metric="TaintSink"

The following metrics are disabled by default. To enable a particular metric class, use the corresponding "allow" rule.

    METRIC_FILTER += allow metric="CALLING"
    METRIC_FILTER += allow metric="CALLS"
    METRIC_FILTER += allow metric="GOTO"
    METRIC_FILTER += allow metric="NCOMM"
    METRIC_FILTER += allow metric="NPATH"
    METRIC_FILTER += allow metric="PARAM"
    METRIC_FILTER += allow metric="RETURN"
    METRIC_FILTER += allow metric="STMIF"
    METRIC_FILTER += allow metric="STPTH"
    METRIC_FILTER += allow metric="STST1"
    METRIC_FILTER += allow metric="STST2"
    METRIC_FILTER += allow metric="STST3"
    METRIC_FILTER += allow metric="n1"
    METRIC_FILTER += allow metric="N1"
    METRIC_FILTER += allow metric="n2"
    METRIC_FILTER += allow metric="N2"
    METRIC_FILTER += allow metric="D"
    METRIC_FILTER += allow metric="I"
    METRIC_FILTER += allow metric="T"
    METRIC_FILTER += allow metric="E"
    METRIC_FILTER += allow metric="N"
    METRIC_FILTER += allow metric="L"
    METRIC_FILTER += allow metric="V"
    METRIC_FILTER += allow metric="evG"
    METRIC_FILTER += allow metric="ivG"
    METRIC_FILTER += allow metric="S1"
Tags
  • metric-related
  • Analysis-Side Filtering

Creates new derived metrics, which are computed by mathematically manipulating values of already existing metrics.

Type A string of the form <metric tag>, <metric description>, <granularity>, <expression>

where:

<metric tag> is the quoted tag for the new metric. Metric tags are case-sensitive; the metrics page has a table showing the tags for all built-in metrics. The <metric tag> must:

  • start with characters matching: [a-zA-Z]
  • only contain characters matching: [a-zA-Z][0-9] _-
  • have string length <= 15 characters
  • be unique, in combination with <granularity>. (This allows you to use the same tag for a conceptually similar metric across multiple granularities, while preventing duplicate tags within a single granularity.)
  • not match any function name in the expression grammar

<metric description> is the quoted description for the new metric, and must:

  • only contain characters matching: [a-zA-Z][0-9] _-
  • have string length <= 35 characters

<granularity> is the granularity of the new metric, and is one of {ANALYSIS, COMPUNIT, DIRECTORY, FILE, PROCEDURE}

<expression> is an expression containing mathematical operators, functions, constant (floating point) values, and references to other metrics.

Expression grammar:

   S        -> expr
   expr     -> expr + expr | expr - expr | expr * expr | expr / expr |
               const | metric | function(expr, ...)
   function -> cos | sin | tan | acos | asin | atan | atan2 | cosh | sinh |
               tanh | exp | ldexp | log | log10 | pow | sqrt |
               ceil | fabs | floor | fmod | sum | prod | avg | min | max
   metric   -> "[a-zA-Z0-9]+\[granularity\]"
   granularity -> ANALYSIS | COMPUNIT | FILE | PROCEDURE
  • All metric values must match an existing metric; metric tags are case-sensitive.
  • All functions return a single floating point value.
  • All math operations are floating point.
  • Functions sum, prod, avg, min, and max are summarizing functions they only take metrics as arguments, and only work when the derived metric has granularity greater than the referenced metric. See table below (sum is used as example).
   +---------------------+-------------------+-----------------------------+
   | derived metric gran | expression        | description                 |
   +---------------------+-------------------+-----------------------------+
   | FILE                | sum(PROCEDURE)    | Sums over all procedures in |
   |                     |                   | the file.                   |
   |                     |                   |                             |
   | COMPUNIT            | sum(PROCEDURE)    | Sums over all procedures in |
   |                     |                   | the compilation unit.       |
   |                     |                   |                             |
   | ANALYSIS            | sum(PROCEDURE)    | Sums over all procedures in |
   |                     |                   | the analyzed project.       |
   |                     |                   |                             |
   | COMPUNIT            | sum(FILE)         | Sums over all files in the  |
   |                     |                   | compilation unit.           |
   |                     |                   |                             |
   | ... etc                                                               |
   +-----------------------------------------------------------------------+
Behavior If a properly formed derived metric is specified, that metric will be computed and displayed for the next analysis unless it is discarded via METRIC_FILTER.

If there is an error in the specification of METRIC_DERIVED_DEF, CodeSonar will issue an alert that specifies the nature of the problem.

Notes If a derived metric which is enabled refers to a metric which is disabled, the derived metric will still be calculated. This will cause the disabled metric to be calculated as well (though not reported). In this scenario, the performance gains from having the unreported metric disabled are lost.

All METRIC_DERIVED_DEF definitions are processed before any METRIC_FILTER settings. A derived metric can therefore be disabled by a METRIC_FILTER rule that appears before the metric definition in the configuration file.

If you want to compute any of the Halstead metrics (n1, N1, n2, N2, D, I, T, E, N, L, V), set

    RETAIN_UNNORMALIZED_C_AST = Yes

Example 1: Divide LCode by 1000 to get a "kLOC" metric.

    METRIC_DERIVED_DEF += "kLOC", "Lines With Code / 1000", PROCEDURE, "LCode[PROCEDURE]" / 1000)
    METRIC_DERIVED_DEF += "kLOC", "Lines With Code / 1000", FILE, "LCode[FILE]" / 1000)

Example 2: Some slight variations on the basic McCabe metrics.

    METRIC_DERIVED_DEF += "vG-code", "Cyclomatic Density", PROCEDURE, "[PROCEDURE]" / "LCode[PROCEDURE]"
    METRIC_DERIVED_DEF += "ivG-vG", "Module Design Density", PROCEDURE, "ivG[PROCEDURE]" / "vG[PROCEDURE]"
    METRIC_DERIVED_DEF += "evG-vG", "Essential Density", PROCEDURE, ("evG[PROCEDURE]" - 1) / "vG[PROCEDURE]"
Factory Settings
  • METRIC_DERIVED_DEF += "LCodeOnly", "Code Lines", DIRECTORY, sum("LCodeOnly[FILE]") + sum("LCodeOnly[DIRECTORY]")
  • METRIC_DERIVED_DEF += "LMCC", "Mixed Lines", DIRECTORY, sum("LMCC[FILE]") + sum("LMCC[DIRECTORY]")
  • METRIC_DERIVED_DEF += "LComOnly", "Comment Lines", DIRECTORY, sum("LComOnly[FILE]") + sum("LComOnly[DIRECTORY]")
  • METRIC_DERIVED_DEF += "LB", "Blank Lines", DIRECTORY, sum("LB[FILE]") + sum("LB[DIRECTORY]")
  • METRIC_DERIVED_DEF += "TL", "Total Lines", DIRECTORY, sum("TL[FILE]") + sum("TL[DIRECTORY]")
  • METRIC_DERIVED_DEF += "LCode", "Lines with Code", DIRECTORY, sum("LCode[FILE]") + sum("LCode[DIRECTORY]")
  • METRIC_DERIVED_DEF += "LCom", "Lines with Comments", DIRECTORY, sum("LCom[FILE]") + sum("LCom[DIRECTORY]")
  • METRIC_DERIVED_DEF += "vG", "Cyclomatic Complexity", FILE, sum("vG[PROCEDURE]")
  • METRIC_DERIVED_DEF += "mvG", "Modified Cyclomatic Complexity", FILE, sum("mvG[PROCEDURE]")
  • METRIC_DERIVED_DEF += "ivG", "Module Design Complexity", FILE, sum("ivG[PROCEDURE]")
  • METRIC_DERIVED_DEF += "evG", "Essential Complexity", FILE, sum("evG[PROCEDURE]")
  • METRIC_DERIVED_DEF += "vG", "Cyclomatic Complexity", DIRECTORY, sum("vG[FILE]") + sum("vG[DIRECTORY]")
  • METRIC_DERIVED_DEF += "mvG", "Modified Cyclomatic Complexity", DIRECTORY, sum("mvG[FILE]") + sum("mvG[DIRECTORY]")
  • METRIC_DERIVED_DEF += "ivG", "Module Design Complexity", DIRECTORY, sum("ivG[FILE]") + sum("ivG[DIRECTORY]")
  • METRIC_DERIVED_DEF += "evG", "Essential Complexity", DIRECTORY, sum("evG[FILE]") + sum("evG[DIRECTORY]")
  • METRIC_DERIVED_DEF += "N1", "Total Operators", FILE, sum("N1[PROCEDURE]")
  • METRIC_DERIVED_DEF += "N2", "Total Operands", FILE, sum("N2[PROCEDURE]")
  • METRIC_DERIVED_DEF += "N", "Halstead Program Length", FILE, sum("N[PROCEDURE]")
  • METRIC_DERIVED_DEF += "L", "Halstead Program Level", FILE, sum("L[PROCEDURE]")
  • METRIC_DERIVED_DEF += "V", "Halstead Program Volume", FILE, sum("V[PROCEDURE]")
  • METRIC_DERIVED_DEF += "D", "Halstead Program Difficulty", FILE, sum("D[PROCEDURE]")
  • METRIC_DERIVED_DEF += "E", "Halstead Programming Effort", FILE, sum("E[PROCEDURE]")
  • METRIC_DERIVED_DEF += "I", "Halstead Intelligent Content", FILE, sum("I[PROCEDURE]")
  • METRIC_DERIVED_DEF += "T", "Halstead Programming Time", FILE, sum("T[PROCEDURE]")
  • METRIC_DERIVED_DEF += "N1", "Total Operators", DIRECTORY, sum("N1[FILE]") + sum("N1[DIRECTORY]")
  • METRIC_DERIVED_DEF += "N2", "Total Operands", DIRECTORY, sum("N2[FILE]") + sum("N2[DIRECTORY]")
  • METRIC_DERIVED_DEF += "N", "Halstead Program Length", DIRECTORY, sum("N[FILE]") + sum("N[DIRECTORY]")
  • METRIC_DERIVED_DEF += "L", "Halstead Program Level", DIRECTORY, sum("L[FILE]") + sum("L[DIRECTORY]")
  • METRIC_DERIVED_DEF += "V", "Halstead Program Volume", DIRECTORY, sum("V[FILE]") + sum("V[DIRECTORY]")
  • METRIC_DERIVED_DEF += "D", "Halstead Program Difficulty", DIRECTORY, sum("D[FILE]") + sum("D[DIRECTORY]")
  • METRIC_DERIVED_DEF += "E", "Halstead Programming Effort", DIRECTORY, sum("E[FILE]") + sum("E[DIRECTORY]")
  • METRIC_DERIVED_DEF += "I", "Halstead Intelligent Content", DIRECTORY, sum("I[FILE]") + sum("I[DIRECTORY]")
  • METRIC_DERIVED_DEF += "T", "Halstead Programming Time", DIRECTORY, sum("T[FILE]") + sum("T[DIRECTORY]")
  • METRIC_DERIVED_DEF += "TaintSource", "Taint Source Total", FILE, sum("TaintSource[PROCEDURE]")
  • METRIC_DERIVED_DEF += "TaintProp", "Taint Propagator Total", FILE, sum("TaintProp[PROCEDURE]")
  • METRIC_DERIVED_DEF += "TaintSink", "Taint Sink Total", FILE, sum("TaintSink[PROCEDURE]")
  • METRIC_DERIVED_DEF += "TaintSource", "Taint Source Total", DIRECTORY, sum("TaintSource[FILE]") + sum("TaintSource[DIRECTORY]")
  • METRIC_DERIVED_DEF += "TaintProp", "Taint Propagator Total", DIRECTORY, sum("TaintProp[FILE]") + sum("TaintProp[DIRECTORY]")
  • METRIC_DERIVED_DEF += "TaintSink", "Taint Sink Total", DIRECTORY, sum("TaintSink[FILE]") + sum("TaintSink[DIRECTORY]")
Tags

Specifies whether C++ method invocations should always be treated as if they dereference this at the method invocation site.

Type {All, Undefined, None}
Behavior The C++ method invocation p->m() will not actually dereference the pointer p unless the body of m accesses a data member of p. However, sometimes it is useful to treat method invocations as if they always dereference their objects - either because the source code implementing m() is unavailable or to reduce the complexity of warnings.
  • All : All method invocations are treated as if they dereference their this pointer. Additionally, this is assumed to never have a value below NULL_POINTER_THRESHOLD.
  • Undefined : All invocations of undefined methods (methods for which no source code is available) are treated as if they dereference their this pointers, which are assumed to never have a value below NULL_POINTER_THRESHOLD. No assumptions are made about defined methods.
  • None : No assumptions are made about any methods. In practice, this means that invocations of undefined methods are never considered to dereference this.
Notes With the All setting, method invocations on unconditionally null pointers will result in unreachable code after the method returns.
Factory Setting
  • METHOD_INVOCATION_DEREFERENCE_BEHAVIOR = None
Tags
  • Treatment of Language Constructs

Specifies a warning condition for a metric; if that condition is met, a warning is reported.

Type
  • METRIC_WARNING_CONDITION: metric <op> number where the metric is specified by tag[granularity], and <op> is one of >, <, >=, <=
  • METRIC_WARNING_CLASS_NAME: string
  • METRIC_WARNING_CATEGORIES: string
  • METRIC_WARNING_BASE_RANK: number
  • METRIC_WARNING_SIGNIFICANCE: { UNSPECIFIED, SECURITY, RELIABILITY, REDUNDANCY, STYLE, DIAGNOSTIC }
Behavior These parameters are used together to specify conditions on metric values, and warnings to issue when values meet those conditions.
  • METRIC_WARNING_CONDITION specifies a metric and a condition on that metric. A warning will be issued if the metric's value meets the condition. The metric must be enabled with a METRIC_FILTER allow rule. Both built-in metrics and derived metrics can be used.
  • METRIC_WARNING_CLASS_NAME is the warning class name.
  • METRIC_WARNING_CATEGORIES is the set of categories for the warning, as a semicolon-separated list.
  • METRIC_WARNING_BASE_RANK is the base rank assigned to the warning, with default 25.0.
  • METRIC_WARNING_SIGNIFICANCE is a string representing the Significance classification for this warning class.
Notes Parameter METRIC_WARNING_RANK is deprecated in favor of METRIC_WARNING_BASE_RANK; the two currently have identical behavior.

The METRIC_WARNING_CATEGORIES, METRIC_WARNING_BASE_RANK, and METRIC_WARNING_SIGNIFICANCE settings are optional, but METRIC_WARNING_CONDITION and METRIC_WARNING_CLASS_NAME must be fully specified. The METRIC_WARNING_CONDITION message must come first, and the METRIC_WARNING_CLASS_NAME second.

If two or more sets of METRIC_WARNING_* rules have the same METRIC_WARNING_CLASS_NAME value, the same warning class will be used to cover all cases. Therefore, sets of rules with the same METRIC_WARNING_CLASS_NAME should also have the same METRIC_WARNING_CATEGORIES and METRIC_WARNING_BASE_RANK values (that is, they should only differ in the METRIC_WARNING_CONDITION setting).

Similarly, if a set of METRIC_WARNING_* rules has a METRIC_WARNING_CLASS_NAME that is the same as the name of a standard CodeSonar warning class, the category and rank settings of the standard class will apply and any METRIC_WARNING_CATEGORIES or METRIC_WARNING_BASE_RANK specified in the set will not be used.

Examples (note that the categories in these examples are arbitrary text):

Instruct CodeSonar to issue a warning of class "Large procedure" for any function containing more than 100 lines with code:

     METRIC_WARNING_CONDITION = LCode[PROCEDURE] > 100
     METRIC_WARNING_CLASS_NAME = Large procedure
     METRIC_WARNING_CATEGORIES = METRIC.LCODE
     METRIC_WARNING_BASE_RANK = 1.0
     METRIC_WARNING_SIGNIFICANCE = STYLE

Instruct CodeSonar to issue a warning of class "Too few comments" for any insufficiently commented function (defined here as a function containing fewer than 5 lines with comments).

     METRIC_WARNING_CONDITION = LCom[PROCEDURE] < 5
     METRIC_WARNING_CLASS_NAME = Too few comments
     METRIC_WARNING_CATEGORIES = METRIC.LCOM
     METRIC_WARNING_BASE_RANK = 2.0
     METRIC_WARNING_SIGNIFICANCE = STYLE
Factory Settings
  • METRIC_WARNING_CONDITION = vG[PROCEDURE] > 20
  • METRIC_WARNING_CLASS_NAME = High Cyclomatic Complexity (Procedure)
Tags

Specifies whether the Python Console will be made available for the analysis (provided the hub is running with debug features enabled).

Type { Yes, No }
Behavior
  • Yes : the Python Console will be available and functional for this analysis, provided the hub is running with debug features enabled. Warning: this poses a grave security risk. Anyone with access to the console can execute arbitrary code in the analysis process.
  • No : the API Consoles will not be available for this analysis.
Notes To enable debug features:

The Python console can be useful for experimenting with the analysis APIs. It can also be useful for debugging analysis plug-ins.

Code will have full access to the program representations generated by CodeSonar and will run with the credentials of whoever started the analysis process. There is no sandboxing of any kind.

Factory Setting
  • WEB_CONSOLE = No
Tags
  • Hub and Web GUI

Specifies whether multiple instances of the same procedure should be collapsed into a single instance for viewing purposes. This primarily affects templated functions which are instantiated with multiple template arguments, and also static inline functions.

Type { Yes, No }
Behavior If set to "Yes", the hub will only display one procedure in cases where multiple PDGs are instances of the same procedure.
Notes The choice of representative procedure instance is arbitrary. Multiple procedures defined at the same source file/line may also be collapsed. Do not change the setting of this parameter between incremental builds.

For example, suppose foo<T>(void) has two instances: foo<int>(void) and foo<float>(void).

  • With COLLAPSE_PROCEDURES=Yes, foo will have only a single line in tables of procedures and procedure-granularity metrics, describing one of the two instances. Only this instance will be shown in charts.
  • With COLLAPSE_PROCEDURES=No, foo will have two lines in tables of procedures and procedures-granularity metrics - one for each instance. Both instances will be shown in charts.

Procedure and line counts are not affected by the setting of this parameter. Metrics warnings on procedures are also not affected.

Factory Setting
  • COLLAPSE_PROCEDURES = Yes
Tags
  • Do Not Change Between Incremental Analyses or Stages of a Single Build/Analysis
  • Hub and Web GUI

Normally, leak warnings on paths that iterate around a loop multiple times are suppressed. Setting to "Yes" will disable the suppression.

Type { Yes, No }
Behavior If set to "Yes", leaks will be reported on paths that iterate around loops multiple times. These leaks are often false positives.
Notes This is an experimental feature and more work is necessary on CodeSecure's part to eliminate false positives in this area. The natural language explanation of existing warnings may also degrade as a consequence of enabling this setting.
Factory Setting
  • WARN_MORE_LOOP_LEAKS = No
Tags
  • Used by Leak
  • Fine Tuning for Warnings

Setting to "No" will prevent CodeSonar from dismissing likely leak false positives.

Type { Yes, No }
Behavior If set to "No", leaks will be reported significantly more frequently. Many of the resulting reports will be false positives, but some may be true positives.
Factory Setting
  • REFINE_LEAKS_THOROUGHLY = Yes
Tags
  • Used by Leak
  • Fine Tuning for Warnings

For Source Listing pages: specifies whether calls to undefined functions should be specially marked.

Type { Yes, No }
Behavior If set to "Yes", undefined functions will be marked with events when viewing a file's contents from the hub.
Notes Turning this on could have a negative performance impact on the file listing view in the hub.

This parameter does not affect Warning Report pages, which will always show events for undefined function calls that occur on the warning path.

Factory Setting
  • FILE_LISTING_UNDEF_PROCS = No
Tags
  • Hub and Web GUI
  • Analysis Properties

Specifies whether analysis daemon should write the content of a warning to an XML file when it sends the warning to the hub.

Type {FULL, NO_LISTING, No}
Behavior
  • FULL: the full warning report will be written out for each warning.
  • NO_LISTING: the warning report for each warning will be written out with the path listing omitted.
  • No: no XML files are generated.
Notes Set this parameter to FULL or NO_LISTING if you want the analysis to generate XML files for all warnings sent to the hub. There will be one XML file per warning.
  • XML files for warnings issued in source file <path>/<basename> will be output at <prjname>.xml/analysis_<analysis_id>/<basename><hash(path)>/.
  • XML files for warnings not associated with a source file will be output at <prjname>.xml/analysis_<analysis_id>/NONAME_0000000>/.
Factory Setting
  • XML_DUMP_MODE = No
Tags
  • Analysis Properties

Specifies loops for which Potential Unbounded Loop warnings should not be issued.

Type Boost 'POSIX Extended Regular Expression'
Behavior If the line containing the loop condition matches this regular expression, a Potential Unbounded Loop warning will not be issued.
Notes For example,
   NON_TERMINATING_LOOP_MARK += /[*] @non-terminating@ [*]/

specifies that Potential Unbounded Loop warnings will not be triggered by any loop whose condition line contains the comment /* @non-terminating@ */.

Don't issue warnings for loops whose condition looks like for(;;) :

   NON_TERMINATING_LOOP_MARK += for *[(] *; *; *[)]

Don't issue warnings for loops whose condition looks like while(1) :

   NON_TERMINATING_LOOP_MARK += while *[(] *1 *[)]

Note that the Potential Unbounded Loop check is disabled by default: use a WARNING_FILTER rule to enable it.

Tags

For remote-managed analyses, specify the parameters in the linear model used to estimate the disk requirements for the analysis directory.

Type real number
Behavior As part of the data and control transfer for a remote-managed analysis, CodeSonar estimates the the final size of the analysis directory as follows.
   P = S*B + I

where:

  • P is the the predicted analysis directory size after analysis
  • B is the size of the build directory after all and before analysis
  • S is the value of PRJ_FILES_SIZE_PREDICTION_LINEAR_MODEL_SLOPE
  • I is the value of PRJ_FILES_SIZE_PREDICTION_LINEAR_MODEL_INTERCEPT

If the launch daemon L specified for the analysis cannot accommodate the predicted final size of the analysis directory, the analysis will fail.

Specifically, the Space Quota for L must be sufficient to accommodate the following.

  • The predicted final size P,
  • AND the total size of all analysis directories for completed remote analyses that used L,
  • AND the predicted final sizes of all currently running remote analyses using L.

If multiple candidate launch daemons are specified, CodeSonar will choose one that can accommodate the predicted final size, or fail if there are no such launch daemons.

These parameters have no effect for local-managed analyses.

Notes Adjust these parameters if you are experiencing problems due to estimated size being too high (so analysis fails even though the analysis directory could actually be accommodated) or too low.
Factory Settings
  • PRJ_FILES_SIZE_PREDICTION_LINEAR_MODEL_SLOPE=2.0
  • PRJ_FILES_SIZE_PREDICTION_LINEAR_MODEL_INTERCEPT=20

Specifies additional functions that should be considered as program entry points. Currently only the Dynamic Allocation After Initialization and Dynamic Thread Creation checks use this parameter.

Type Boost 'POSIX Extended Regular Expression'
Behavior The Dynamic Allocation After Initialization check will trigger a warning if there is a call chain from a program entry point to an allocator call that does not go through a function specified with DYN_INIT_FUNCTIONS.

The Dynamic Thread Creation check will trigger a warning if there is a call chain from a program entry point to a thread creation call that does not go through a function specified with THREAD_INIT_FUNCTIONS.

Notes For example,
   PROGRAM_ENTRY_POINTS += ^init$

specifies that the check should start at function(s) named init.

Note that the Dynamic Allocation After Initialization and Dynamic Thread Creation checks are disabled by default: use WARNING_FILTER rules to enable them.

Factory Settings
  • PROGRAM_ENTRY_POINTS += ^#System_Initialization$
  • PROGRAM_ENTRY_POINTS += ^init$
Tags

Specifies allocator functions. Currently only used by the Dynamic Allocation After Initialization check.

Type Boost 'POSIX Extended Regular Expression'
Behavior For the Dynamic Allocation After Initialization check, calls to functions matching this regular expression are reported unless:
Notes For example,
   ALLOCATOR_FUNCTIONS += ^mmap$

specifies that mmap() should be considered an allocator

Note that the Dynamic Allocation After Initialization check is disabled by default: use a WARNING_FILTER rule to enable it.

Factory Settings
  • ALLOCATOR_FUNCTIONS += ^(csonar_allocate_heap)$
  • ALLOCATOR_FUNCTIONS += ^(malloc|alloca|realloc)$
  • ALLOCATOR_FUNCTIONS += ^(sbrk|brk|mmap)$
  • ALLOCATOR_FUNCTIONS += ^(_mmap)$
Tags

Specifies functions that may directly or transitively call allocator functions without triggering a Dynamic Allocation After Initialization warning.

Type Boost 'POSIX Extended Regular Expression'
Behavior No Dynamic Allocation After Initialization warnings are issued for allocators (as specified by ALLOCATOR_FUNCTIONS) called directly or transitively by a function whose name matches this regular expression.
Notes For example,
   DYN_INIT_FUNCTIONS += ^dyn_init$

specifies that function(s) dyn_init() can directly or transitively call allocator functions without triggering a warning.

Note that the Dynamic Allocation After Initialization check is disabled by default: use a WARNING_FILTER rule to enable it.

Factory Setting
  • DYN_INIT_FUNCTIONS += ^dyn_init$
Tags

Specifies thread creation functions. Currently only used by the Dynamic Thread Creation check.

Type Boost 'POSIX Extended Regular Expression'
Behavior For the Dynamic Thread Creation check, calls to functions matching this regular expression are reported unless:
Notes For example,
   THREAD_CREATION_FUNCTIONS += ^thrd_create$

specifies that thrd_create() should be considered a thread creation function

Note that the Dynamic Thread Creation check is disabled by default: use a WARNING_FILTER rule to enable it.

Factory Settings
  • THREAD_CREATION_FUNCTIONS += ^(thrd_create)$
  • THREAD_CREATION_FUNCTIONS += ^(pthread_create)$
  • THREAD_CREATION_FUNCTIONS += ^(std::thread::thread)$
Tags

Specifies functions that may directly or transitively call thread creation functions without triggering a Dynamic Thread Creation warning.

Type Boost 'POSIX Extended Regular Expression'
Behavior No Dynamic Thread Creation warnings are issued for thread creators (as specified by THREAD_CREATION_FUNCTIONS) called directly or transitively by a function whose name matches this regular expression.
Notes For example,
   THREAD_INIT_FUNCTIONS += ^dyn_init$

specifies that function(s) dyn_init() can directly or transitively call thread creation functions without triggering a warning.

Note that the Dynamic Thread Creation check is disabled by default: use a WARNING_FILTER rule to enable it.

Factory Setting
  • THREAD_INIT_FUNCTIONS += ^dyn_init$
Tags

Specifies functions that will be treated as assertions by the Not Enough Assertions check

Type Boost 'POSIX Extended Regular Expression'
Behavior Calls to functions matching this regular expression are counted as assertions.
Notes For example,
   ASSERT_FAIL_FUNCTIONS += ^__assert_fail$

specifies that calls to __assert_fail() should be considered assertions. Some systems implement the assert macro using __assert_fail().

Note that the Not Enough Assertions check is disabled by default: use a WARNING_FILTER rule to enable it.

Factory Settings
  • ASSERT_FAIL_FUNCTIONS += ^__assert_fail$
  • ASSERT_FAIL_FUNCTIONS += ^__assert_func$
  • ASSERT_FAIL_FUNCTIONS += ^__assert$
  • ASSERT_FAIL_FUNCTIONS += ^_assert$
  • ASSERT_FAIL_FUNCTIONS += ^assert$
  • ASSERT_FAIL_FUNCTIONS += ^_wassert$
Tags

Specifies file system paths which contain system include headers.

Type string
Behavior Any file matching any of these paths is excluded from computation of metrics and checks for certain warning classes. Substring match is used to match files to the specified system include paths.
Notes Any line ending with a "\" is treated as a continuation - meaning that the subsequent line will be concatenated with the current line. To avoid this situation (e.g. for paths that actually end in "\"), add whitespace after the "\" before the newline character.

Checks for the following warning classes will always be excluded from files matching any of these paths.

WARNING_FILTER discard rules can specify is_sysinclude to match warnings whose Listing XML lies entirely within system include files as designated by SYSTEM_INCLUDE_PATHS.

For example, the factory settings for WARNING_FILTER include the following rule: all warnings in C++ code whose Listing XML lies entirely within system include files will be discarded. Note that this rule does not affect warnings in C code.

   WARNING_FILTER += discard language="C++" is_sysinclude
Factory Settings
  • SYSTEM_INCLUDE_PATHS += /codesonar/smel/
  • SYSTEM_INCLUDE_PATHS += /codesonar/libmodels/
  • SYSTEM_INCLUDE_PATHS += /csurf/csinclude/
  • SYSTEM_INCLUDE_PATHS += /usr/include/
  • SYSTEM_INCLUDE_PATHS += /usr/lib/
  • SYSTEM_INCLUDE_PATHS += /usr/lib64/
  • SYSTEM_INCLUDE_PATHS += /usr/local/include/
  • SYSTEM_INCLUDE_PATHS += /usr/local/lib/
  • SYSTEM_INCLUDE_PATHS += /usr/local/lib64/
  • SYSTEM_INCLUDE_PATHS += /usr/sfw/include/
  • SYSTEM_INCLUDE_PATHS += /usr/sfw/lib/
  • SYSTEM_INCLUDE_PATHS += /lib/gcc/
  • SYSTEM_INCLUDE_PATHS += /opt/sfw/include/
  • SYSTEM_INCLUDE_PATHS += /opt/sfw/lib/
  • SYSTEM_INCLUDE_PATHS += /cygwin/lib/
  • SYSTEM_INCLUDE_PATHS += /cygwin/local/lib/
  • SYSTEM_INCLUDE_PATHS += /cygwin64/lib/
  • SYSTEM_INCLUDE_PATHS += /cygwin64/local/lib/
  • SYSTEM_INCLUDE_PATHS += :\Program Files\Microsoft
  • SYSTEM_INCLUDE_PATHS += :\Program Files\Windows
  • SYSTEM_INCLUDE_PATHS += :\Program Files\Freescale
  • SYSTEM_INCLUDE_PATHS += :\Program Files\Metrowerks
  • SYSTEM_INCLUDE_PATHS += :\Program Files\Intel
  • SYSTEM_INCLUDE_PATHS += :\Program Files\ARM
  • SYSTEM_INCLUDE_PATHS += :\Program Files\IAR
  • SYSTEM_INCLUDE_PATHS += :\Program Files\Borland
  • SYSTEM_INCLUDE_PATHS += :\Program Files\CodeGear
  • SYSTEM_INCLUDE_PATHS += :\Program Files\Hi-Tech
  • SYSTEM_INCLUDE_PATHS += :\CCStudio
  • SYSTEM_INCLUDE_PATHS += :\WINCE
  • SYSTEM_INCLUDE_PATHS += :\Keil
  • SYSTEM_INCLUDE_PATHS += :\HEW
  • SYSTEM_INCLUDE_PATHS += :\Borland
  • SYSTEM_INCLUDE_PATHS += ARC\MetaWare
  • SYSTEM_INCLUDE_PATHS += :\cygwin\usr\include\
  • SYSTEM_INCLUDE_PATHS += :\cygwin\lib\
  • SYSTEM_INCLUDE_PATHS += :\cygwin\local\lib\
  • SYSTEM_INCLUDE_PATHS += :\cygwin64\usr\include\
  • SYSTEM_INCLUDE_PATHS += :\cygwin64\lib\
  • SYSTEM_INCLUDE_PATHS += :\cygwin64\local\lib\
  • SYSTEM_INCLUDE_PATHS += \csurf\include\
  • SYSTEM_INCLUDE_PATHS += \csurf\csinclude\
  • SYSTEM_INCLUDE_PATHS += \codesonar\smel\
  • SYSTEM_INCLUDE_PATHS += \codesonar\libmodels\
  • SYSTEM_INCLUDE_PATHS += :\Program Files (x86)\Microsoft
  • SYSTEM_INCLUDE_PATHS += :\Program Files (x86)\Windows
  • SYSTEM_INCLUDE_PATHS += :\Program Files (x86)\Freescale
  • SYSTEM_INCLUDE_PATHS += :\Program Files (x86)\Metrowerks
  • SYSTEM_INCLUDE_PATHS += :\Program Files (x86)\Intel
  • SYSTEM_INCLUDE_PATHS += :\Program Files (x86)\ARM
  • SYSTEM_INCLUDE_PATHS += :\Program Files (x86)\IAR
  • SYSTEM_INCLUDE_PATHS += :\Program Files (x86)\Borland
  • SYSTEM_INCLUDE_PATHS += :\Program Files (x86)\CodeGear
  • SYSTEM_INCLUDE_PATHS += :\Program Files (x86)\Hi-Tech
  • SYSTEM_INCLUDE_PATHS += /Developer/Headers/
  • SYSTEM_INCLUDE_PATHS += /Developer/SDKs/
  • SYSTEM_INCLUDE_PATHS += /Library/Frameworks/
  • SYSTEM_INCLUDE_PATHS += /System/Library/
  • SYSTEM_INCLUDE_PATHS += /opt/local/include/
  • SYSTEM_INCLUDE_PATHS += /sw/include/
  • SYSTEM_INCLUDE_PATHS += /usr/llvm-gcc-
  • SYSTEM_INCLUDE_PATHS += codesonar_classfile_summaries
  • SYSTEM_INCLUDE_PATHS += /qnx660/target/
  • SYSTEM_INCLUDE_PATHS += /qnx660/host/
  • SYSTEM_INCLUDE_PATHS += /qnx650/target/
  • SYSTEM_INCLUDE_PATHS += /qnx650/host/
Tags

Specifies base directories for the CodeSonar SARIF generator to use when relativizing file paths.

Type string
Behavior When analysis warning information is exported in SARIF format, file paths are expressed relative to the specified absolute directory.

If multiple directories are specified, each file path F is expressed relative to the one that matches the longest path prefix of F.

If the analysis command specifies -srcroot <basedir>, the specified <basedir> is appended to the list of file paths accumulated with SRCROOT_PATH rules.

Notes For example, suppose we have the following settings
  SRCROOT_PATHS += /user/alex/ProjectX/ComponentY/
  SRCROOT_PATHS += /user/alex/ProjectX/ComponentY/GU
  SRCROOT_PATHS += /user/alex/database/

and the analysis includes files with paths /user/alex/ProjectX/ComponentY/GUI/gui.cpp and /user/alex/database/db.c. If warning information from the analysis is exported in SARIF format, the file paths will be expressed as GUI/gui.cpp and db.c, respectively. Note in particular that the /user/alex/ProjectX/ComponentY/GUI/gui.cpp file path does NOT match /user/alex/ProjectX/ComponentY/GU.

The --src-root option to codesonar dump_warnings.py takes precedence over this setting.

For cases where CodeSonar cannot determine this directly, these parameters specify the effects that certain called functions may be assumed to have on their parameters and memory locations that are transitively reachable from those parameters (pointer targets, structure fields, and so on).

Type { Yes, No }
Behavior Each parameter specifies, for a single kind of function call, whether CodeSonar can treat that call as if it may {free, initialize, modify} one or more of its parameters {P} or the memory locations transitively reachable from {P}.

The function call kinds are as follows.

  • _UNDEFINED_ : a call to a function whose definition does not appear in the analyzed project.
  • _FUNCPTR_ : a call through a function pointer.
  • _VARARG_ : a call to a variadic function. Note: the ASSUME_VARARG_PARAMETERS_MAYBE_* rules control the treatment of variadic arguments (those designated by '...' in the header) only.
  • _OTHER_ : other special cases. This designation includes recursive calls and certain calls to functions whose analysis was incomplete.

The effects are as follows, where {f} denotes all functions of the kind under consideration and {T} denotes the set of arguments to a function call along with all transitively reachable memory locations.

  • _MAYBE_FREED : if set to Yes, CodeSonar will treat all calls to {f} as if they may free one or more of {T}. This can reduce the incidence of Leak warnings. If set to No, CodeSonar will treat all calls to {f} as if they do not free any of {T}.
  • _MAYBE_INITIALIZED : if set to Yes, CodeSonar will treat all calls to {f} as if they may initialize one or more of {T}. This can reduce the incidence of Uninitialized Variable warnings. If set to No, CodeSonar will treat all calls to {f} as if they do not initialize any of {T}.
  • _MAYBE_MODIFIED : if set to Yes, CodeSonar will treat all calls to {f} as if they may modify one or more of {T}. This can reduce the incidence of warnings from path-sensitive warning classes such as Buffer Overrun, Division By Zero, and Unreachable Code: 5 warning classes. If set to No, CodeSonar will treat all calls to {f} as if they do not modify any of {T}.
Notes For Yes settings, CodeSonar will make the associated assumptions only when doing so allows it to avoid issuing a warning.

For example, suppose we have undefined function g() and are analyzing the following code.

   int funcA(){
      char *p = malloc(5);
      if (p) {g(p);}
      return 1;
   }

   int funcB(){
      char *p = malloc(5);
      if (p) {
         g(p);
         p++;
      }
      return 2;
   }

With ASSUME_UNDEFINED_PARAMETERS_MAYBE_FREED=Yes, CodeSonar assumes that...

  • ...the call to g(p) in funcA frees p : no Leak warning,
  • ...the call to g(p) in funcB does not free p : no Use After Free warning (for example).

With ASSUME_UNDEFINED_PARAMETERS_MAYBE_FREED=No, CodeSonar must treat both calls to g(p) as if they do not free p.

In general, Yes settings are likely to reduce the number of false positive warnings, but may also cause true defects to be overlooked.

Factory Settings
  • ASSUME_UNDEFINED_PARAMETERS_MAYBE_FREED = Yes
  • ASSUME_UNDEFINED_PARAMETERS_MAYBE_INITIALIZED = Yes
  • ASSUME_UNDEFINED_PARAMETERS_MAYBE_MODIFIED = Yes
  • ASSUME_FUNCPTR_PARAMETERS_MAYBE_FREED = Yes
  • ASSUME_FUNCPTR_PARAMETERS_MAYBE_INITIALIZED = Yes
  • ASSUME_FUNCPTR_PARAMETERS_MAYBE_MODIFIED = Yes
  • ASSUME_VARARG_PARAMETERS_MAYBE_FREED = Yes
  • ASSUME_VARARG_PARAMETERS_MAYBE_INITIALIZED = Yes
  • ASSUME_VARARG_PARAMETERS_MAYBE_MODIFIED = Yes
  • ASSUME_OTHER_PARAMETERS_MAYBE_FREED = Yes
  • ASSUME_OTHER_PARAMETERS_MAYBE_INITIALIZED = Yes
  • ASSUME_OTHER_PARAMETERS_MAYBE_MODIFIED = Yes
Tags

Specifies the procedures from which reachability information is computed.

Type Procedure, as a string of the form "file:procedure" or "file:linenum".
Behavior fname:XXXX is interpreted as follows.
  • fname matches every file whose full path name has fname as a suffix. Empty fname matches all files in the project.
  • XXXX must be nonempty. If it is an integer, it is treated as a line number and matches every procedure whose definition includes line XXXX. If it is '*', it matches every procedure. Otherwise, it matches every procedure whose friendly name [C++: procedure::name() | Python: procedure.name() | C: cs_pdg_friendly_name()] is exactly XXXX.

If no REACHABILITY_ROOTS rules are specified (or some are specified but the last one is "REACHABILITY_ROOTS= "), CodeSonar treats all procedures as reachable.

Notes Reachability analysis results are used in the following contexts.

CodeSonar will generate

  • an alert for each REACHABILITY_ROOTS fname:XXXX rule that does not match at least one procedure in the project.
  • an alert if there are one or more WARNING_FILTER reachable rules, or SKIP_ANALYSIS_OF += UNREACHABLE_FUNCTIONS (or UNREACHABLE_BINARY_FUNCTIONS, for binary analyses) is specified, but set REACHABLE_FROM_ROOTS is empty.
  • an alert if there are one or more WARNING_FILTER reachable rules, or SKIP_ANALYSIS_OF += UNREACHABLE_FUNCTIONS is specified, but no procedures match the specified REACHABILITY_ROOTS.
  • an Analysis Log message for each REACHABILITY_ROOTS fname:XXXX rule that matches more than one procedure (these are permitted, but are logged in case they were not intentional).

For a typical simple C program, we might be only interested in reachability from main(), and consider any procedure that is not [transitively] called by main() to be unreachable. For example:

   REACHABILITY_ROOTS = main.c:main

Example 1: all of the following will match procedure main() in file /home/me/myproject/src/main.c

  REACHABILITY_ROOTS += :main
  REACHABILITY_ROOTS += main.c:main
  REACHABILITY_ROOTS += /main.c:main
  REACHABILITY_ROOTS += myproject/src/main.c:main

Example 2: the following will match any procedure in every file whose full path name has foo.c as a suffix.

 REACHABILITY_ROOTS += foo.c:*

We define sets REACHABLE_FROM_ROOTS and REACHABLE_FROM_ROOTS_EXTENDED.

REACHABLE_FROM_ROOTS is the set of all procedures P such that:

If no REACHABILITY_ROOTS rules are specified (or some are specified but the last one is "REACHABILITY_ROOTS= "), set REACHABLE_FROM_ROOTS contains all procedures in the project.

In some cases, such as calls through function pointer variables, CodeSonar may not correctly resolve all callees for a procedure. This can result in procedures incorrectly being identified as unreachable, which in turn can reduce the quality of CodeSonar analysis results. The use of set REACHABLE_FROM_ROOTS_EXTENDED represents a safeguard against such cases.

REACHABLE_FROM_ROOTS_EXTENDED is defined as follows. Let R be the source procedure subset of REACHABLE_FROM_ROOTS, and let S be the set of all source procedures in the analyzed project (for a source-only analysis, all procedures are source procedures).

  • If |R|/|S| is less than the value of parameter SOURCE_MIN_REACHABLE_FROM_ROOTS, REACHABLE_FROM_ROOTS_EXTENDED is the union of REACHABLE_FROM_ROOTS and S. CodeSonar will issue an alert to notify you that it has made this determination.
  • Otherwise, REACHABLE_FROM_ROOTS_EXTENDED is equal to REACHABLE_FROM_ROOTS.

If one or more REACHABILITY_ROOTS rules are specified (and the last one is NOT "REACHABILITY_ROOTS= "), and no procedure in the project matches any REACHABILITY_ROOTS rule, set REACHABLE_FROM_ROOTS will be empty and CodeSonar will issue alerts as noted above.

If this occurs, you have several options.

  • Adjust your REACHABILITY_ROOTS rules so that they match at least one procedure in the project.
  • Add a final rule "REACHABILITY_ROOTS= " so that all procedures are treated as reachable.
  • Remove any WARNING_FILTER reachable rules and SKIP_ANALYSIS_OF UNREACHABLE_FUNCTIONS rules, if you no longer need them.

Specifies an output file for diagnostic reachability information.

Type string (representing a file path)
Behavior Reachability information will be output to the specified file.
Notes Example:
  REACHABILITY_DUMP_FILE = /PATH/TO/dump_file
Tags
  • Additional Outputs from the Build/Analysis

Use the HARDCODED_ARGS_* family of parameters to define warning classes that indicate the use of hardcoded arguments to functions whose arguments should not be hardcoded.

Type
  • HARDCODED_ARGS_REGEX: Boost 'POSIX Extended Regular Expression'
  • HARDCODED_ARGS_LIST: comma-separated list of numbers
  • HARDCODED_ARGS_CLASS_NAME: string
  • HARDCODED_ARGS_CATEGORIES: string
  • HARDCODED_ARGS_BASE_RANK: number
  • HARDCODED_ARGS_SIGNIFICANCE: { UNSPECIFIED, SECURITY, RELIABILITY, REDUNDANCY, STYLE, DIAGNOSTIC }
Behavior These parameters are used together to specify functions with arguments that should never be hardcoded, and warnings to issue if hardcoded arguments are used.
  • HARDCODED_ARGS_REGEX is a regular expression. Functions whose name matches this expression will be included in the check.
  • HARDCODED_ARGS_LIST are the positions (counting from 1) of the arguments whose values should never be hardcoded.
  • HARDCODED_ARGS_CLASS_NAME will be used as the warning class name. If the message contains any characters that are special to HTML, they must be HTML-encoded.
  • HARDCODED_ARGS_CATEGORIES is the set of categories for the warning, as a semicolon-separated list. This defaults to the empty string.
  • HARDCODED_ARGS_BASE_RANK is the base rank assigned to the warning, with default 25.0.
  • HARDCODED_ARGS_SIGNIFICANCE is a string representing the Significance classification for this warning class.
Notes The HARDCODED_ARGS_CATEGORIES, HARDCODED_ARGS_BASE_RANK, and HARDCODED_ARGS_SIGNIFICANCE settings are optional, but HARDCODED_ARGS_REGEX and HARDCODED_ARGS_CLASS_NAME must be fully specified. The HARDCODED_ARGS_REGEX message must come first, and the HARDCODED_ARGS_CLASS_NAME second.

If two or more sets of HARDCODED_ARGS_* rules have the same HARDCODED_ARGS_CLASS_NAME value, the same warning class will be used to cover all cases. Therefore, sets of rules with the same HARDCODED_ARGS_CLASS_NAME should also have the same HARDCODED_ARGS_CATEGORIES and HARDCODED_ARGS_BASE_RANK values (that is, they should only differ in the HARDCODED_ARGS_REGEX or HARDCODED_ARGS_LIST settings).

Similarly, if a set of HARDCODED_ARGS_* rules has a HARDCODED_ARGS_CLASS_NAME that is the same as the name of a standard CodeSonar warning class, the category and rank settings of the standard class will apply and any HARDCODED_ARGS_CATEGORIES or HARDCODED_ARGS_BASE_RANK specified in the set will not be used.

Example:

  HARDCODED_ARGS_REGEX = ^crypt(_r)?$
  HARDCODED_ARGS_LIST = 2
  HARDCODED_ARGS_CLASS_NAME = Hardcoded Crypto Salt
  HARDCODED_ARGS_SIGNIFICANCE = SECURITY

specifies that the second argument to crypt() and crypt_r() should not be hardcoded, and that warnings of class "Hardcoded Crypto Salt" should be issued at locations where this constraint is violated.

Factory Settings
  • HARDCODED_ARGS_REGEX = ^CreateProcessWithLogon(A|W)?$
  • HARDCODED_ARGS_LIST = 1, 3
  • HARDCODED_ARGS_CLASS_NAME = Hardcoded Authentication
  • HARDCODED_ARGS_CATEGORIES = HARDCODED.AUTH;CWE:547
  • HARDCODED_ARGS_SIGNIFICANCE = SECURITY
  • HARDCODED_ARGS_REGEX = ^LogonUser(Ex|ExEx)?(A|W)?$
  • HARDCODED_ARGS_LIST = 1, 3
  • HARDCODED_ARGS_CLASS_NAME = Hardcoded Authentication
  • HARDCODED_ARGS_CATEGORIES = HARDCODED.AUTH;CWE:547
  • HARDCODED_ARGS_SIGNIFICANCE = SECURITY
  • HARDCODED_ARGS_REGEX = ^CredUIPromptForCredentials(A|W)?$
  • HARDCODED_ARGS_LIST = 5, 7
  • HARDCODED_ARGS_CLASS_NAME = Hardcoded Authentication
  • HARDCODED_ARGS_CATEGORIES = HARDCODED.AUTH;CWE:547
  • HARDCODED_ARGS_SIGNIFICANCE = SECURITY
  • HARDCODED_ARGS_REGEX = ^WNetAddConnection(A|W)?$
  • HARDCODED_ARGS_LIST = 2
  • HARDCODED_ARGS_CLASS_NAME = Hardcoded Authentication
  • HARDCODED_ARGS_CATEGORIES = HARDCODED.AUTH;CWE:547
  • HARDCODED_ARGS_SIGNIFICANCE = SECURITY
  • HARDCODED_ARGS_REGEX = ^WNetAddConnection2?(A|W)?$
  • HARDCODED_ARGS_LIST = 2, 3
  • HARDCODED_ARGS_CLASS_NAME = Hardcoded Authentication
  • HARDCODED_ARGS_CATEGORIES = HARDCODED.AUTH;CWE:547
  • HARDCODED_ARGS_SIGNIFICANCE = SECURITY
  • HARDCODED_ARGS_REGEX = ^WNetAddConnection3(A|W)?$
  • HARDCODED_ARGS_LIST = 3, 4
  • HARDCODED_ARGS_CLASS_NAME = Hardcoded Authentication
  • HARDCODED_ARGS_CATEGORIES = HARDCODED.AUTH;CWE:547
  • HARDCODED_ARGS_SIGNIFICANCE = SECURITY
  • HARDCODED_ARGS_REGEX = ^ChangeAccountPassword(A|W)?$
  • HARDCODED_ARGS_LIST = 3, 4, 5
  • HARDCODED_ARGS_CLASS_NAME = Hardcoded Authentication
  • HARDCODED_ARGS_CATEGORIES = HARDCODED.AUTH;CWE:547
  • HARDCODED_ARGS_SIGNIFICANCE = SECURITY
  • HARDCODED_ARGS_REGEX = ^SQLConnect(A|W|UNIX)?$
  • HARDCODED_ARGS_LIST = 4, 6
  • HARDCODED_ARGS_CLASS_NAME = Hardcoded Authentication
  • HARDCODED_ARGS_CATEGORIES = HARDCODED.AUTH;CWE:547
  • HARDCODED_ARGS_SIGNIFICANCE = SECURITY
  • HARDCODED_ARGS_REGEX = ^WTSConnectSession(A|W)?$
  • HARDCODED_ARGS_LIST = 3
  • HARDCODED_ARGS_CLASS_NAME = Hardcoded Authentication
  • HARDCODED_ARGS_CATEGORIES = HARDCODED.AUTH;CWE:547
  • HARDCODED_ARGS_SIGNIFICANCE = SECURITY
  • HARDCODED_ARGS_REGEX = ^(ecb_|cbc_)?crypt(_r)?$
  • HARDCODED_ARGS_LIST = 1
  • HARDCODED_ARGS_CLASS_NAME = Hardcoded Crypto Key
  • HARDCODED_ARGS_CATEGORIES = HARDCODED.KEY;CWE:547
  • HARDCODED_ARGS_SIGNIFICANCE = SECURITY
  • HARDCODED_ARGS_REGEX = ^passwd2des$
  • HARDCODED_ARGS_LIST = 1
  • HARDCODED_ARGS_CLASS_NAME = Hardcoded Crypto Key
  • HARDCODED_ARGS_CATEGORIES = HARDCODED.KEY;CWE:547
  • HARDCODED_ARGS_SIGNIFICANCE = SECURITY
  • HARDCODED_ARGS_REGEX = ^x(en|de)crypt$
  • HARDCODED_ARGS_LIST = 2
  • HARDCODED_ARGS_CLASS_NAME = Hardcoded Crypto Key
  • HARDCODED_ARGS_CATEGORIES = HARDCODED.KEY;CWE:547
  • HARDCODED_ARGS_SIGNIFICANCE = SECURITY
  • HARDCODED_ARGS_REGEX = ^krb5_c_(en|de)crypt$
  • HARDCODED_ARGS_LIST = 2
  • HARDCODED_ARGS_CLASS_NAME = Hardcoded Crypto Key
  • HARDCODED_ARGS_CATEGORIES = HARDCODED.KEY;CWE:547
  • HARDCODED_ARGS_SIGNIFICANCE = SECURITY
  • HARDCODED_ARGS_REGEX = ^BF_set_key$
  • HARDCODED_ARGS_LIST = 3
  • HARDCODED_ARGS_CLASS_NAME = Hardcoded Crypto Key
  • HARDCODED_ARGS_CATEGORIES = HARDCODED.KEY;CWE:547
  • HARDCODED_ARGS_SIGNIFICANCE = SECURITY
  • HARDCODED_ARGS_REGEX = ^[dD][eE][sS]_set_key(_unchecked|_checked)?$
  • HARDCODED_ARGS_LIST = 1
  • HARDCODED_ARGS_CLASS_NAME = Hardcoded Crypto Key
  • HARDCODED_ARGS_CATEGORIES = HARDCODED.KEY;CWE:547
  • HARDCODED_ARGS_SIGNIFICANCE = SECURITY
  • HARDCODED_ARGS_REGEX = ^[dD][eE][sS]_string_to_key$
  • HARDCODED_ARGS_LIST = 1
  • HARDCODED_ARGS_CLASS_NAME = Hardcoded Crypto Key
  • HARDCODED_ARGS_CATEGORIES = HARDCODED.KEY;CWE:547
  • HARDCODED_ARGS_SIGNIFICANCE = SECURITY
  • HARDCODED_ARGS_REGEX = ^[dD][eE][sS]_string_to_2keys$
  • HARDCODED_ARGS_LIST = 1
  • HARDCODED_ARGS_CLASS_NAME = Hardcoded Crypto Key
  • HARDCODED_ARGS_CATEGORIES = HARDCODED.KEY;CWE:547
  • HARDCODED_ARGS_SIGNIFICANCE = SECURITY
  • HARDCODED_ARGS_REGEX = ^krb5_c_string_to_key$
  • HARDCODED_ARGS_LIST = 3
  • HARDCODED_ARGS_CLASS_NAME = Hardcoded Crypto Key
  • HARDCODED_ARGS_CATEGORIES = HARDCODED.KEY;CWE:547
  • HARDCODED_ARGS_SIGNIFICANCE = SECURITY
  • HARDCODED_ARGS_REGEX = ^[dD][eE][sS]_(f)?crypt$
  • HARDCODED_ARGS_LIST = 2
  • HARDCODED_ARGS_CLASS_NAME = Hardcoded Crypto Salt
  • HARDCODED_ARGS_CATEGORIES = HARDCODED.SALT;CWE:547
  • HARDCODED_ARGS_SIGNIFICANCE = SECURITY
  • HARDCODED_ARGS_REGEX = ^crypt(_r)?$
  • HARDCODED_ARGS_LIST = 2
  • HARDCODED_ARGS_CLASS_NAME = Hardcoded Crypto Salt
  • HARDCODED_ARGS_CATEGORIES = HARDCODED.SALT;CWE:547
  • HARDCODED_ARGS_SIGNIFICANCE = SECURITY
  • HARDCODED_ARGS_REGEX = ^krb5_c_string_to_key$
  • HARDCODED_ARGS_LIST = 4
  • HARDCODED_ARGS_CLASS_NAME = Hardcoded Crypto Salt
  • HARDCODED_ARGS_CATEGORIES = HARDCODED.SALT;CWE:547
  • HARDCODED_ARGS_SIGNIFICANCE = SECURITY
  • HARDCODED_ARGS_REGEX = ^srand((om)|(48))?$
  • HARDCODED_ARGS_LIST = 1
  • HARDCODED_ARGS_CLASS_NAME = Hardcoded Seed in PRNG
  • HARDCODED_ARGS_SIGNIFICANCE = SECURITY

Enable taint highlighting in the hub GUI.

Type { Yes, No }
Behavior
  • Yes : CodeSonar will perform taint propagation analysis, and use the results of that analysis to highlight tainted values in source code displayed in the hub GUI.
  • No : CodeSonar will not perform taint propagation analysis, and taint highlighting will not be available.
Notes Taint propagation analysis takes place in the pointer analysis phase. Note that if TAINT_HIGHLIGHTING=No then taint propagation analysis will not be performed even if pointer analysis passes are being performed for the sake of resolving function pointers (for FUNCTION_POINTER_RESOLUTION).

The extra information gained during taint propagation analysis can also improve taint warnings in some cases.

Factory Setting
  • TAINT_HIGHLIGHTING = Yes

Enable function pointer resolution.

Type { Yes, No }
Behavior
  • No : CodeSonar will not perform function pointer resolution.
Notes Function pointer resolution takes place in the pointer analysis phase. Note that if FUNCTION_POINTER_RESOLUTION=No then function pointer resolution will not be performed even if pointer analysis passes are being performed for the sake of taint propagation analysis (for TAINT_HIGHLIGHTING).

Setting this to Yes can improve CodeSonar results by permitting a more precise analysis of behavior at function pointer call sites.

Factory Setting
  • FUNCTION_POINTER_RESOLUTION = Yes

For the taint analysis, specifies whether global inputs to procedures (as opposed to parameter inputs) should be checked for taint, provided the procedure uses them in ways where they should not be tainted.

Type { Yes, No }
Behavior
  • Yes : the taint analysis will check global inputs to prodedures for taint.
  • No : the taint analysis will not check global inputs to prodedures for taint.
Notes Setting this to Yes can lead to scalability issues on large projects.

This setting is analogous to MAX_GLOBAL_CHECK_AGE, but for taint, and only has two possible settings (effectively 0 and unlimited).

Factory Setting
  • TAINT_TRIGGER_ON_GLOBALS = No
Tags
  • Analysis resource/effort limit

For the taint analysis, a threshold for expression complexity.

Type integer
Behavior Information about expressions whose complexity exceeds this limit is discarded.
Notes Expressions with more pointer dereferences and field/array accesses have a higher complexity.

For the remainder of the analysis, expression complexity is bounded instead by MAX_EXPRESSION_COMPLEXITY.

Factory Setting
  • TAINT_MAX_EXPRESSION_COMPLEXITY = 40
Tags
  • Analysis resource/effort limit

For the taint analysis, specifies the maximum size of a points-to set.

Type integer
Factory Setting
  • TAINT_MAX_SET_CARDINALITY = 10
Tags
  • Analysis resource/effort limit

For the taint analysis, specifies a per-procedure bound on the number of modified values (outputs and side effects) that CodeSonar will keep track of in procedure summaries.

Type integer
Behavior If a procedure modifies more values than this maximum, CodeSonar will select values to discard from the summaries for the procedure to bring the total number of values tracked down to the maximum. Increasing the value for this preference may allow more precise analysis, at the cost of longer analysis time and higher memory usage.
Notes The values modified by a procedure may include its return value, parameters and values from its calling environment, and values derived from these.

For the remainder of the analysis, the number of modified values is bounded instead by MAX_MODIFIED_VALUES.

Factory Setting
  • TAINT_MAX_MODIFIED_VALUES = 100
Tags
  • Analysis resource/effort limit

For the taint analysis, specifies how many inputs to a procedure can be checked at call sites.

Type integer
Behavior A negative value indicates no limit. Lower (positive) values will conserve disk space and time, but can cause false negatives.
Notes This bound may be useful for projects containing millions of lines of code.

Checks for code nearer to the beginning of procedures receive preferential treatment.

Both implicit and explicit inputs are counted. For example, both the pointer passed to strlen() and the value pointed to by that pointer are counted as inputs to strlen(). Global variables transitively used by a procedure also qualify.

For the remainder of the analysis, the number of checked inputs is bounded instead by MAX_CHECKED_INPUTS_PER_PROCEDURE.

Factory Setting
  • TAINT_MAX_CHECKED_INPUTS_PER_PROCEDURE = 100
Tags
  • Analysis resource/effort limit

For the taint analysis, specifies how many usages of a particular input to a procedure can be checked at call sites.

Type integer
Behavior Lower values will conserve disk space and time, but can cause false negatives.
Notes This bound may be useful for projects containing millions of lines of code.
Factory Setting
  • TAINT_MAX_CHECKED_LOCATIONS_PER_INPUT = 50
Tags
  • Analysis resource/effort limit

For the taint analysis, specifies the maximum number of taint kinds for which there can be checks against a single procedure's inputs.

Type integer
Behavior If a single procedure's inputs are checked against more than this many individual taint kinds - either directly in the procedure, or in its (transitive) callees - CodeSonar will select taint sinks to discard in order to bring the total number of taint kinds down to the specified limit.

Special values csonar_taint_source_any() and csonar_taint_source_any_no_kind() are each counted as one taint kind.

Setting TAINT_MAX_CHECKED_TAINT_KINDS_PER_PROCEDURE=0 will discard all taint sinks, except for intraprocedural ones (which do not typically exist).

Notes CodeSonar ships with 13 predefined taint kinds, plus special values csonar_taint_source_any() and csonar_taint_source_any_no_kind(). Any TAINT_MAX_CHECKED_TAINT_KINDS_PER_PROCEDURE setting higher than 15 will therefore impose no restrictions on taint checking (unless you have implemented additional custom taint kinds).
Factory Setting
  • TAINT_MAX_CHECKED_TAINT_KINDS_PER_PROCEDURE = 100
Tags
  • Analysis resource/effort limit

For warnings implemented by taint analysis, specifies the maximum number of program points along an execution path that will be considered.

Type integer
Behavior Taint warnings traversing more than this many program points will not be detected during refinement. Larger values may allow warning refinement to use more time and detect longer warnings.
Factory Setting
  • TAINT_MAX_WARNING_PATH_LENGTH = 10000
Tags
  • Analysis resource/effort limit

Bounds the number of similar taint warnings that CodeSonar will report. Only successfully refined warnings count against this limit.

Type integer
Notes Most users will never need a setting higher than 1

This parameter can significantly affect performance.

Factory Setting
  • TAINT_MAX_SIMILAR_PATHS = 1
Tags
  • Analysis resource/effort limit

Bounds the number of potentially similar taint warnings that CodeSonar will attempt to refine. Both successfully refined warnings and dismissed warnings count against this limit.

Type integer
Notes TAINT_MAX_SIMILAR_PATHS is similar to this except that it bounds the number of reported taint warnings. TAINT_MAX_ATTEMPTED_SIMILAR_PATHS should always be at least as large as TAINT_MAX_SIMILAR_PATHS.
Factory Setting
  • TAINT_MAX_ATTEMPTED_SIMILAR_PATHS = 1
Tags
  • Analysis resource/effort limit

Specifies a set of taint kinds that should be ignored by the taint analysis.

Type string
Behavior If the specified string matches the name of built in or user-defined taint kind, taint of that kind will be ignored by the analysis.

Certain warning classes rely on exactly one taint kind. For these classes, CodeSonar enables or disables the relevant taint kind automatically depending on whether or not the warning class is enabled. Do not specify these taint kinds in DISABLED_TAINT_KINDS rules: add_overflow, mult_overflow, sub_underflow, truncation_overflow, lib_blacklist, proc_blacklist, net_blacklist.

Notes Taint sinks can be enabled and disabled by using a WARNING_FILTER rule, for example, to disable specific warning classes or warnings reported at certain locations. DISABLED_TAINT_KINDS can be used to control which taint sources are enabled, at a coarse granularity.

This setting might be used to disable taint kinds that are trusted in the context of the subject software. For example, suppose we have this code:

   system(getenv("FOO"));

CodeSonar would, by default, issue a Command Injection warning. However, perhaps this warning is undesirable because, in this context, the environment is trusted. You can disable environment taint to suppress this and other similar warnings:

   DISABLED_TAINT_KINDS += environment

The following taint kinds are enabled by default.

  DISABLED_TAINT_KINDS += dns
  DISABLED_TAINT_KINDS += environment
  DISABLED_TAINT_KINDS += fd
  DISABLED_TAINT_KINDS += file
  DISABLED_TAINT_KINDS += file_metadata
  DISABLED_TAINT_KINDS += network
  DISABLED_TAINT_KINDS += registry
Factory Setting
  • DISABLED_TAINT_KINDS += time
Tags
  • Fine Tuning for Warnings

Specifies the largest allocation size that can be successfully satisfied on the target platform.

Type non-negative integer
Behavior The CodeSonar analysis will assume that no heap allocation requests for more than this number of bytes can succeed.

Specifying 0, or values larger than 2^31-1, has no effect.

Notes An additional consequence of setting MAX_ALLOCATION_SIZE=X (for some non-negative integer X) is that strlen() cannot return values larger than X.

Setting MAX_ALLOCATION_SIZE to a suitable non-zero value can be useful to suppress some warnings that might only be possible if the program has already run out of memory.

Factory Setting
  • MAX_ALLOCATION_SIZE = 1073741824
Tags
  • Warning-Class-Specific Settings

Specifies an upper bound on the allowed "size" in some integer overflow warning classes. If the resulting "size" will always exceed the upper bound, then the warning will be dropped.

Type non-negative integer
Behavior Can be useful if reviewers are not interested in overflow warnings that would always result in very large (e.g., unsatisfiable) allocation requests, for example.
Notes Due to analysis engine limitations, values larger than 2^31-1 will be ignored. Furthermore, values less than (2^31-1)/8 are not effective w.r.t. strlen and similar. These limitations may be addressed in the future.

This check is always performed against the least significant 32 bits of the size using an unsigned interpretation. This shortcoming may be fixed in the future.

Tags

Specifies whether signed integer division overflow (e.g., -1 / MIN_INT) should be treated as if it terminates execution, when using 32-bit or wider division.

Type { Yes, No }
Behavior Setting this to Yes can allow CodeSonar to rule out certain warnings that might only be possible in the presence of division overflow. This setting rarely matters.
Notes The C language leaves behavior undefined. In practice, Intel hardware raises an exception similar to a division by zero. sparc hardware will silently evaluate to -1/MIN_INT to 0x80000001. Other hardware may behave differently.
Factory Setting
  • DIV_OVERFLOW_CRASHES = Yes
Tags
  • Warning-Class-Specific Settings

Specifies whether integer division by zero terminates execution or merely results in an unknown value.

Type { Yes, No }
Behavior
  • Yes : CodeSonar will treat division by zero as a crashing bug. In particular, the analysis will deduce that if execution continues after a division operation, the divisor cannot have been zero. This can eliminate some false positives.
  • No : CodeSonar will treat division by zero as an operation that results in an unknown value.
Notes The vast majority of environments will terminate execution on division by zero.
Factory Setting
  • DIV_BY_ZERO_CRASHES = Yes
Tags
  • Warning-Class-Specific Settings

Specifies whether dereferences of addresses below the NULL_POINTER_THRESHOLD will terminate execution.

Type { Yes, No }
Behavior
  • Yes : CodeSonar will treat null pointer dereferences (defined as dereferences of addresses below the NULL_POINTER_THRESHOLD) as crashing bugs. In particular, the analysis will deduce that if execution continues after a pointer dereference, the pointer cannot have been NULL. This can eliminate some false positives.
  • No : CodeSonar will not impose constraints on the pointer value as a consequence of dereferencing it.
Notes Some embedded environments may allow dereferencing of NULL.

We do not recommend setting this to No as it may produce confusing results or false positives, such as the following division by zero:

  p = unknown_value();
  if( rand() ) {
       *p = 42;
       j = 0;
  } else { j = 1; }
  if( !p ) j = 1 / j;
Factory Setting
  • NULL_POINTER_DEREF_CRASHES = Yes
Tags
  • Warning-Class-Specific Settings

Modify the set of options being passed to the Java build/analysis.

Type a list of Java build options

Microsoft libc command line encoding rules apply (even on non-Windows systems).

Behavior The specified options will be prepended to the set of options passed to the Java build/analysis.
Languages Java
Notes The += operator will actually prepend to this preference (in all cases except for other parameters with names of the form *_PREPEND, the += operator appends). This means that if you specify two JAVA_FLAGS_PREPEND+= settings, the options in the second rule will be prepended to the options in the first setting.
Factory Setting
  • JAVA_FLAGS_PREPEND +=
Tags
  • Governs the Build/Analysis

Modify the set of options being passed to the Java build/analysis.

Type a list of Java build options

Microsoft libc command line encoding rules apply (even on non-Windows systems).

Behavior The specified options will be appended to the set of options passed to the Java build/analysis.
Languages Java
Factory Setting
  • JAVA_FLAGS_APPEND +=
Tags
  • Governs the Build/Analysis

Modify the set of options being passed to the C# build/analysis.

Type a list of C# build options
Behavior The specified options will be prepended to the set of options passed to the C# build/analysis.
Languages C#
Notes The += operator will actually prepend to this preference (in all cases except for other parameters with names of the form *_PREPEND, the += operator appends). This means that if you specify two CSHARP_FLAGS_PREPEND+= settings, the options in the second rule will be prepended to the options in the first setting.
Factory Setting
  • CSHARP_FLAGS_PREPEND +=
Tags
  • Governs the Build/Analysis

Modify the set of options being passed to the C# build/analysis.

Type a list of C# build options
Behavior The specified options will be appended to the set of options passed to the C# build/analysis.
Languages C#
Factory Setting
  • CSHARP_FLAGS_APPEND +=
Tags
  • Governs the Build/Analysis

Specifies an upper bound on the number of analysis passes that will take place in the pointer analysis phase.

Type positive integer
Behavior Depends on the settings of TAINT_HIGHLIGHTING and FUNCTION_POINTER_RESOLUTION.
  • If one or both are set to Yes : the pointer analysis phase will stop after this many passes, or after pointer analysis results converge - whichever occurs first.
  • If both are set to No: the CodeSonar analysis will not include a pointer analysis phase, regardless of the setting of MAX_POINTER_ANALYSIS_PASSES.
Notes CodeSonar uses pointer analysis to obtain information about:
  • function pointer resolution (including virtual function dispatch), and
  • taint propagation.

Pointer analysis can have high time cost, and there are generally diminishing returns as the number of passes increases.

  • Only one pass is required if the program does not use function pointers: this single pass is sufficient for taint analysis.
  • Two or three passes will be sufficient for most programs that use function pointers.
  • Very few programs will require more than 10 passes.
Factory Setting
  • MAX_POINTER_ANALYSIS_PASSES = 2
Tags
  • Analysis resource/effort limit

Specifies whether CodeSonar will issue Tainted Buffer Access warnings when the accessed buffer cannot be identified (and so its size cannot be determined).

Type { Yes, No }
Behavior
  • Yes : CodeSonar will issue Tainted Buffer Access warnings if the size of the accessed buffer cannot be determined and the access location is tainted, or if the size of the accessed buffer can be determined and the access location is tainted and may lie outside the buffer.
  • No : CodeSonar will only issue Tainted Buffer Access warnings if the size of the accessed buffer can be determined and the tainted access location may lie outside the buffer.
Notes For example, CodeSonar will only issue a Tainted Buffer Access warning for the following code fragment if TAINTED_BUF_TRIGGER_ON_UNKNOWN_BUFFERS=Yes.
  p = undefined_function();
  p[getchar()] = 42;

Setting TAINTED_BUF_TRIGGER_ON_UNKNOWN_BUFFERS=Yes will potentially generate a large number of false positive Tainted Buffer Access warnings.

Factory Setting
  • TAINTED_BUF_TRIGGER_ON_UNKNOWN_BUFFERS = No
Tags

Specifies how taint propagates through global variables.

Type {None, Context_Insensitive, Context_Sensitive}
Behavior
  • None : the analysis will not propagate taint through globals from callers to callees.
  • Context_Sensitive : the analysis will propagate taint through globals from callers to callees, but will likely drop taint if is propagated down too many calls.
  • Context_Insensitive : the analysis will propagate more taint through globals from callers to callees than it will for the Context_Sensitive setting, but the propagation may be imprecise. This setting tends to produce many false positives in programs with tainted globals.
Notes None and Context_Sensitive are essentially equivalent for the purposes of reporting taint warnings. The primary advantage of Context_Sensitive over None will be more taint marking in the GUI.

Setting TAINT_TRIGGER_ON_GLOBALS to Yes will cause more taint warnings to be emitted against global variables when GLOBAL_TAINT_MODE=None or GLOBAL_TAINT_MODE=Context_Sensitive.

Factory Setting
  • GLOBAL_TAINT_MODE = None
Tags
  • Analysis Properties

Specifies whether and how the CodeSonar analysis will propagate function pointers through global variables.

Type {None, Context_Insensitive, Context_Sensitive}
Behavior
  • None : the analysis will not propagate function pointers through globals from callers to callees.
  • Context_Sensitive : the analysis will propagate function pointers through globals from callers to callees, but will likely drop points-to facts if they are propagated down too many calls.
  • Context_Insensitive : the analysis will propagate more function pointers through globals from callers to callees than it will for the Context_Sensitive setting, but the propagation may be imprecise.
Factory Setting
  • GLOBAL_FUNCTION_POINTER_MODE = Context_Insensitive
Tags
  • Analysis Properties

Specifies whether or not CodeSonar can immediately exploit knowledge of function pointer resolvents that might not be known when using other possible parallel analysis schedules.

Type { Yes, No }
Behavior
  • Yes : CodeSonar will take advantage of function pointer resolvents as soon as they are discovered.
  • No : CodeSonar will ignore this information until the next pointer analysis pass.
Notes This setting is a trade off between determinism and analysis accuracy. A setting of Yes will produce fewer false negatives but can introduce nondeterminism into parallel analyses.

A setting of Yes allows CodeSonar to learn more about the program in fewer pointer analysis passes. However, a setting of Yes may also cause non-deterministic behavior for parallel analyses. A higher setting for MAX_POINTER_ANALYSIS_PASSES may be required to get equivalent results when RELAXED_TOPDOWN_FUNCPTR_RESOLUTION=No.

Factory Setting
  • RELAXED_TOPDOWN_FUNCPTR_RESOLUTION = Yes
Tags
  • Analysis Properties

Specifies whether to adjust the rank of a warning if values relevant to the warning are tainted.

Type { Yes, No }
Behavior
  • Yes : if one or more values relevant to a warning are tainted, the warning rank computation will be adjusted to a smaller value (that is, one that indicates that the warning should be reviewed earlier). The magnitude of the adjustment is proportional to the number of relevant values that are tainted.
  • No : The warning rank will not be affected by the presence or absence of taint.
Notes This parameter has no effect unless the taint propagation analysis is enabled with TAINT_HIGHLIGHTING=Yes. The cost can be as much as 20 percent of overall analysis time.
Factory Setting
  • TAINT_RANK_BONUS = No
Tags
  • Analysis resource/effort limit

Bound for searching paths during taint refinement.

Type integer
Behavior When the number is larger, more paths are searched, but more time is used.
Notes This preference represents a trade-off between time and thoroughness.
Factory Setting
  • TAINT_SEARCH_BOUND = 100
Tags
  • Analysis resource/effort limit

Bound effort for expanding callsites during taint refinement.

Type integer
Behavior When the number is larger, more paths are searched, but more time is used.
Notes This preference represents a trade-off between time and thoroughness.
Factory Setting
  • TAINT_CALLSITE_EXPANSION_EFFORT = 1000
Tags
  • Analysis resource/effort limit

Specifies how a function propagates data, and the taint on that data, into a structured memory block.

Type A string of the form
   <name>, <dst>, <src>, <n>, <scale>, <kind>

where:

  • <name> is the name of the function. If you have defined a CodeSonar replacement function csonar_replace_f() for the function f() of interest, specify csonar_replace_f as the <name> (not f).
  • <dst> is the position of the 'destination' argument (counting from 1).
  • <src> is the number of the 'source' argument (counting from 1), or 0 if there is no source parameter - that is, if the source is implicit to the function.
  • <n> is the position of the 'size' argument (counting from 1), or 0 if there is no single size parameter, as is the case with fread.
  • <scale> is the factor by which the size parameter <n> should be multiplied in order to determine the block size in bytes. In many cases this is 1, but it may be larger, for instance when the function copies <n> words rather than <n> bytes. This can be either an integer or a type name: one of { SHORT, LONG, SIZE_T, PTRDIFF_T, WCHAR_T, POINTER, LONG_LONG, INT128, INT, FLOAT, DOUBLE, LONG_DOUBLE }.
  • <kind> characterizes the general behavior of the function: one of { MEMCPY, MEMCPY+PROPAGATE, MEMSET+PROPAGATE, READ, READ+PROPAGATE, IGNORE }.
Behavior CodeSonar will treat calls to function <name> as propagating data - including any taint on that data - to the block of memory starting at the address specified by the <dst> parameter, where the size of the block is determined by multiplying the value of the <n> parameter by <scale>.

The details of data and taint propagation depend the value of <kind>:

  • MEMCPY : the function is like memcpy(): the fields of <src> are copied to the corresponding fields of the destination block, with taint propagated along with the data for each field. If <name>'s implementation applies taint to <dst>, it is propagated only to the first field of the destination block.
  • MEMCPY+PROPAGATE : as for MEMCPY except that if <name>'s implementation applies taint to <dst>, it is propagated to all fields of the destination block.
  • MEMSET+PROPAGATE : the function is like memset(): a single <src> element is distributed to each of the fields of the destination block. The taint on <src> is likewise distributed to all fields of the destination block. If <name>'s implementation applies taint to <dst>, it is propagated to all fields of the destination block.
  • READ : the function is like read(): content comes from an indeterminate source, filling the block. When <kind> has this value, the <src> is ignored. If <name>'s implementation applies taint to <dst>, it is propagated only to the first field of the destination block.
  • READ+PROPAGATE : as for READ except that if <name>'s implementation applies taint to <dst>, it is propagated to all fields of the destination block.
  • IGNORE : all previous rules with the same <name> are ignored. Note that a subsequent rule with the same <name> will take precedence over an IGNORE rule.
Notes In some cases, the data propagation behavior of a function depends on type information that is only available to the function caller and not to the function itself. For example, memcpy() copies the contents of a source block to a destination, bytewise, without regard for the actual organization of those contents. An analysis that only considers this bytewise behavior will not have information about the internal structure of the destination block. The TAINT_BLOCK_PROPAGATION_FUNCS parameter allows you to provide the CodeSonar taint analysis with information about how functions propagate data: this will generally reduce false negatives but increase analysis resource use (time and space).

For example, one of the rules in the factory setting for this parameter is:

  TAINT_BLOCK_PROPAGATION_FUNCS += memcpy, 1, 2, 3, 1, MEMCPY

This rule specifies that function memcpy() propagates taint as follows.

  • The source block is indicated by the second (2) argument.
  • The destination block starts at the address given in the first (1) argument.
  • The length of the destination block is obtained by multiplying the third (3) argument by 1.
  • Propagation is MEMCPY-like: data (and thus any taint on that data) is copied from fields in the source block to the corresponding fields in the destination block. Any taint applied to the second argument by memcpy() should only be propagated to the first field of the destination block (rather than to the entire block).

With this setting, the analysis can account for pointer aliasing introduced when memcpy() is used to copy structured data.

 struct S {
   int *p;
   int *q;
 };

 void f(struct S *d, struct S *s) {
   memcpy( d, s, sizeof(*d) );
 }

 void g(void) {
   int A[10], B[10];
   struct S a = {A, B}, b = {};
   f(&b, &a);          // data from a is propagated to b
                       // (nothing is tainted at this point)
   B[5] = getchar();   // B[5] is now tainted
   int C[10];
   C[b.q[5]] = 123;    // Tainted Buffer Access: can only be detected if
                       // the analysis understands that b.q[5] is the
                       // same as B[5].
 }

If there are multiple TAINT_BLOCK_PROPAGATION_FUNCS rules with the same <name>, only the last one is used.

The additional analysis enabled by TAINT_BLOCK_PROPAGATION_FUNCS rules is applied at call sites to each identified function f(), and only when a summary is used.

  • There is no additional taint propagation modeling within the body of f().
  • If the CodeSonar refinement phase expands the body of f() rather than using its summary, the additional information provided by the TAINT_BLOCK_PROPAGATION_FUNCS rule will not be used. To avoid this, create a replacement function csonar_replace_f() that wraps a call to f() (and nothing else), and use __CSURF_MARKER_LIBRARY_FUNCTION__ to mark csonar_replace_f() as a library function so that its body is not expanded.
Factory Settings
  • TAINT_BLOCK_PROPAGATION_FUNCS += __aeabi_memclr, 1, 0, 2, 1, MEMSET+PROPAGATE
  • TAINT_BLOCK_PROPAGATION_FUNCS += __aeabi_memclr4, 1, 0, 2, 1, MEMSET+PROPAGATE
  • TAINT_BLOCK_PROPAGATION_FUNCS += __aeabi_memclr8, 1, 0, 2, 1, MEMSET+PROPAGATE
  • TAINT_BLOCK_PROPAGATION_FUNCS += __aeabi_memcpy, 1, 2, 3, 1, MEMCPY
  • TAINT_BLOCK_PROPAGATION_FUNCS += __aeabi_memcpy4, 1, 2, 3, 1, MEMCPY
  • TAINT_BLOCK_PROPAGATION_FUNCS += __aeabi_memcpy8, 1, 2, 3, 1, MEMCPY
  • TAINT_BLOCK_PROPAGATION_FUNCS += __aeabi_memmove, 1, 2, 3, 1, MEMCPY
  • TAINT_BLOCK_PROPAGATION_FUNCS += __aeabi_memmove4, 1, 2, 3, 1, MEMCPY
  • TAINT_BLOCK_PROPAGATION_FUNCS += __aeabi_memmove8, 1, 2, 3, 1, MEMCPY
  • TAINT_BLOCK_PROPAGATION_FUNCS += __aeabi_memset, 1, 3, 2, 1, MEMSET+PROPAGATE
  • TAINT_BLOCK_PROPAGATION_FUNCS += __aeabi_memset4, 1, 3, 2, 1, MEMSET+PROPAGATE
  • TAINT_BLOCK_PROPAGATION_FUNCS += __aeabi_memset8, 1, 3, 2, 1, MEMSET+PROPAGATE
  • TAINT_BLOCK_PROPAGATION_FUNCS += __builtin___memcpy_chk, 1, 2, 3, 1, MEMCPY
  • TAINT_BLOCK_PROPAGATION_FUNCS += __builtin___memmove_chk, 1, 2, 3, 1, MEMCPY
  • TAINT_BLOCK_PROPAGATION_FUNCS += __builtin___mempcpy_chk, 1, 2, 3, 1, MEMCPY
  • TAINT_BLOCK_PROPAGATION_FUNCS += __builtin___memset_chk, 1, 2, 3, 1, MEMSET+PROPAGATE
  • TAINT_BLOCK_PROPAGATION_FUNCS += __builtin__memcpy_chk, 1, 2, 3, 1, MEMCPY
  • TAINT_BLOCK_PROPAGATION_FUNCS += __builtin__memmove_chk, 1, 2, 3, 1, MEMCPY
  • TAINT_BLOCK_PROPAGATION_FUNCS += __builtin__mempcpy_chk, 1, 2, 3, 1, MEMCPY
  • TAINT_BLOCK_PROPAGATION_FUNCS += __builtin__memset_chk, 1, 2, 3, 1, MEMSET+PROPAGATE
  • TAINT_BLOCK_PROPAGATION_FUNCS += __builtin_bcopy, 2, 1, 3, 1, MEMCPY
  • TAINT_BLOCK_PROPAGATION_FUNCS += __builtin_bzero, 1, 0, 2, 1, MEMSET+PROPAGATE
  • TAINT_BLOCK_PROPAGATION_FUNCS += __builtin_memcpy, 1, 2, 3, 1, MEMCPY
  • TAINT_BLOCK_PROPAGATION_FUNCS += __builtin_memmove, 1, 2, 3, 1, MEMCPY
  • TAINT_BLOCK_PROPAGATION_FUNCS += __builtin_memset, 1, 2, 3, 1, MEMSET+PROPAGATE
  • TAINT_BLOCK_PROPAGATION_FUNCS += __copy_from_user, 1, 2, 3, 1, MEMCPY+PROPAGATE
  • TAINT_BLOCK_PROPAGATION_FUNCS += __copy_from_user_inatomic, 1, 2, 3, 1, MEMCPY+PROPAGATE
  • TAINT_BLOCK_PROPAGATION_FUNCS += __fread_chk, 1, 0, 0, 1, READ+PROPAGATE
  • TAINT_BLOCK_PROPAGATION_FUNCS += __memcpy_chk, 1, 2, 3, 1, MEMCPY
  • TAINT_BLOCK_PROPAGATION_FUNCS += __memmove_chk, 1, 2, 3, 1, MEMCPY
  • TAINT_BLOCK_PROPAGATION_FUNCS += __mempcpy, 1, 2, 3, 1, MEMCPY
  • TAINT_BLOCK_PROPAGATION_FUNCS += __mempcpy_chk, 1, 2, 3, 1, MEMCPY
  • TAINT_BLOCK_PROPAGATION_FUNCS += __memset_chk, 1, 2, 3, 1, MEMSET+PROPAGATE
  • TAINT_BLOCK_PROPAGATION_FUNCS += __pread64, 2, 0, 3, 1, READ+PROPAGATE
  • TAINT_BLOCK_PROPAGATION_FUNCS += __pread_chk, 2, 0, 3, 1, READ+PROPAGATE
  • TAINT_BLOCK_PROPAGATION_FUNCS += __read_chk, 2, 0, 3, 1, READ+PROPAGATE
  • TAINT_BLOCK_PROPAGATION_FUNCS += __recv_chk, 2, 0, 3, 1, READ+PROPAGATE
  • TAINT_BLOCK_PROPAGATION_FUNCS += __recvfrom_chk, 2, 0, 3, 1, READ+PROPAGATE
  • TAINT_BLOCK_PROPAGATION_FUNCS += __wmemcpy_chk, 1, 2, 3, WCHAR_T, MEMCPY
  • TAINT_BLOCK_PROPAGATION_FUNCS += __wmemmove_chk, 1, 2, 3, WCHAR_T, MEMCPY
  • TAINT_BLOCK_PROPAGATION_FUNCS += __wmempcpy, 1, 2, 3, WCHAR_T, MEMCPY
  • TAINT_BLOCK_PROPAGATION_FUNCS += __wmemset_chk, 1, 2, 3, WCHAR_T, MEMSET+PROPAGATE
  • TAINT_BLOCK_PROPAGATION_FUNCS += _bcopy, 2, 1, 3, 1, MEMCPY
  • TAINT_BLOCK_PROPAGATION_FUNCS += _fread_nolock, 1, 0, 0, 1, READ+PROPAGATE
  • TAINT_BLOCK_PROPAGATION_FUNCS += bcopy, 2, 1, 3, 1, MEMCPY
  • TAINT_BLOCK_PROPAGATION_FUNCS += bcopyLongs, 2, 1, 3, LONG, MEMCPY
  • TAINT_BLOCK_PROPAGATION_FUNCS += bcopyWords, 2, 1, 3, SHORT, MEMCPY
  • TAINT_BLOCK_PROPAGATION_FUNCS += bfill, 1, 3, 2, 1, MEMSET+PROPAGATE
  • TAINT_BLOCK_PROPAGATION_FUNCS += bfillBytes, 1, 3, 2, 1, MEMSET+PROPAGATE
  • TAINT_BLOCK_PROPAGATION_FUNCS += bzero, 1, 0, 2, 1, MEMSET+PROPAGATE
  • TAINT_BLOCK_PROPAGATION_FUNCS += copy_from_user, 1, 2, 3, 1, MEMCPY+PROPAGATE
  • TAINT_BLOCK_PROPAGATION_FUNCS += copyin, 2, 1, 3, 1, MEMCPY+PROPAGATE
  • TAINT_BLOCK_PROPAGATION_FUNCS += copyinmsg, 2, 1, 3, 1, MEMCPY+PROPAGATE
  • TAINT_BLOCK_PROPAGATION_FUNCS += fread, 1, 0, 0, 1, READ+PROPAGATE
  • TAINT_BLOCK_PROPAGATION_FUNCS += memcpy, 1, 2, 3, 1, MEMCPY
  • TAINT_BLOCK_PROPAGATION_FUNCS += memcpy_s, 1, 3, 4, 1, MEMCPY
  • TAINT_BLOCK_PROPAGATION_FUNCS += memmove, 1, 2, 3, 1, MEMCPY
  • TAINT_BLOCK_PROPAGATION_FUNCS += memmove_s, 1, 3, 4, 1, MEMCPY
  • TAINT_BLOCK_PROPAGATION_FUNCS += mempcpy, 1, 2, 3, 1, MEMCPY
  • TAINT_BLOCK_PROPAGATION_FUNCS += memset, 1, 2, 3, 1, MEMSET+PROPAGATE
  • TAINT_BLOCK_PROPAGATION_FUNCS += pread, 2, 0, 3, 1, READ+PROPAGATE
  • TAINT_BLOCK_PROPAGATION_FUNCS += pread64, 2, 0, 3, 1, READ+PROPAGATE
  • TAINT_BLOCK_PROPAGATION_FUNCS += qMemCopy, 1, 2, 3, 1, MEMCPY
  • TAINT_BLOCK_PROPAGATION_FUNCS += qMemSet, 1, 2, 3, 1, MEMSET+PROPAGATE
  • TAINT_BLOCK_PROPAGATION_FUNCS += read, 2, 0, 3, 1, READ+PROPAGATE
  • TAINT_BLOCK_PROPAGATION_FUNCS += recv, 2, 0, 3, 1, READ+PROPAGATE
  • TAINT_BLOCK_PROPAGATION_FUNCS += recvfrom, 2, 0, 3, 1, READ+PROPAGATE,
  • TAINT_BLOCK_PROPAGATION_FUNCS += tyRead, 2, 0, 3, 1, READ+PROPAGATE
  • TAINT_BLOCK_PROPAGATION_FUNCS += wmemcpy, 1, 2, 3, WCHAR_T, MEMCPY
  • TAINT_BLOCK_PROPAGATION_FUNCS += wmemcpy_s, 1, 3, 4, WCHAR_T, MEMCPY
  • TAINT_BLOCK_PROPAGATION_FUNCS += wmemmove, 1, 2, 3, WCHAR_T, MEMCPY
  • TAINT_BLOCK_PROPAGATION_FUNCS += wmemmove_s, 1, 3, 4, WCHAR_T, MEMCPY
  • TAINT_BLOCK_PROPAGATION_FUNCS += wmempcpy, 1, 2, 3, WCHAR_T, MEMCPY
  • TAINT_BLOCK_PROPAGATION_FUNCS += wmemset, 1, 2, 3, WCHAR_T, MEMSET+PROPAGATE

Specifies a set of types and values that are to be considered as Boolean for the purpose of the MISRA C checks.

Type A whitespace separated list of triples of the form
  <typename>,<truename>,<falsename>

where:

  • <typename> is the name of the Boolean type
  • <truename> is the name of the true value for type <typename>
  • <falsename> is the name of the false value for type <typename>
Notes For example, if your program has the following:
     typedef unsigned char bool;
     const bool true = 1;
     const bool false = 0;

you would use

     BOOL_TYPES += bool,true,false

The += operator can be used to specify multiple triples.

Factory Setting
  • BOOL_TYPES =

Specifies whether or not each analysis slave should only perform one unit of work before terminating itself.

Type { Yes, No }
Behavior
  • Yes : An analysis slave will always exit once it has performed one unit of work. A new slave process will be created for every unit of work, incurring massive overhead and missing out on significant caching opportunities. Performance can be severely degraded.
  • No : There is no upper bound on the number of units of work that an analysis slave may perform.
In either case an analysis slave will also exit if ANALYSIS_SLAVE_TIMEOUT is reached, the analyze interval ends, or the slave is manually shut down.
Notes This is useful for debugging CodeSonar in some cases or CodeSonar plugins. Use of this setting in a production setting is discouraged.
Factory Setting
  • UNIT_OF_WORK_ISOLATION = No

Specifies the maximum amount of memory (in megabytes) to allocate in the analysis master for a pending transaction.

Type integer
Behavior When set to integer N, an N-megabyte transaction buffer will be maintained in the analysis master for the analysis of each procedure when the analysis is not run in serial mode. When a slave analyzes a procedure, any outputs from the analysis of that procedure (e.g., warnings and summaries) are accumulated to the corresponding transaction buffer in the master. Once analysis of the procedure completes, the transaction is committed and the buffer freed. If the size limit is exceeded, then the transaction is abandoned and rolled back. The offending procedure will in effect not be analyzed.
Notes This setting was introduced to safeguard against out of memory conditions witnessed in certain generated procedures many thousands of lines long, which contained dozens of unreachable code warnings. This configuration variable exists to safeguard against such unusual code.
Factory Setting
  • TRANSACTION_BUFFER_SIZE_LIMIT = 512
Tags
  • Analysis resource/effort limit

Specifies whether global variables without explicit initialization should be treated as uninitialized and therefore subject to Uninitialized Variable warnings.

Type { Yes, No }
Behavior
  • Yes : Uninitialized Variable warnings can be issued on global variables that are used before being explicitly initialized.
  • No : Global and static variables without explicit initialization are assumed to be implicitly zero-initialized.
Notes All C and C++ language standards stipulate that global and static variables without explicit initialization should be implicitly zero initialized. However, if your codebase strives to never rely on this, or you are in an environment that does not initialize such variables, then setting UNINITIALIZED_GLOBALS=Yes might be useful.

If this parameter is set to Yes, you will need to adjust several other parameters to accommodate the additional checking. This will incur significant cost. On large programs, the analysis might not run in a reasonable amount of time anymore, depending on how high these settings are raised.

  • Increase MAX_MODIFIED_VALUES so that it is more than double the number of global variables in your program.
  • Increase MAX_CHECKED_INPUTS_PER_PROCEDURE so that it is more than double the number of global variables in your program.
  • You may also wish to increase MAX_GLOBAL_CHECK_AGE: uses of uninitialized variables at call stack depths deeper than MAX_GLOBAL_CHECK_AGE will not be detected.
Factory Setting
  • UNINITIALIZED_GLOBALS = No
Tags

Determines the scenarios under which Assignment in Conditional warnings are generated.

Type {All, Var_and_const, Const_only}
Behavior
  • All : Assignment in Conditional warnings are reported for any assignment inside a conditional statement, including assigning the result of a function call.
  • Var_and_const : Warnings are reported only for assignments where the right hand side is either a variable or a constant value.
  • Const_only : Warnings are reported only for assignments where the right hand side is a constant value.
Factory Setting
  • ASSIGN_COND_MODE = Const_only
Tags

Maximum number of characters that %f in printf-family functions will expand to, not including the decimal point or the minus sign.

Type integer
Behavior When the number is larger, it will be assumed that uses of %f in sprintf-like functions might print up to this many characters.
Notes The factory setting has been experimentally verified as the largest number of digits common printf implementations will render for a 64-bit double.

Some potential Buffer Overrun warnings can depend on this setting.

Factory Setting
  • MAX_PERCENT_F_CHARACTERS = 309
Tags
  • Treatment of Language Constructs

Maximum number of characters that %lf in printf-family functions will expand to, not including the decimal point or the minus sign.

Type integer
Behavior When the number is larger, it will be assumed that uses of %lf in sprintf-like functions might print up to this many characters.
Notes The factory setting has been experimentally verified as the largest number of digits common printf implementations will render for an 80-bit double.

Some potential Buffer Overrun warnings can depend on this setting.

Factory Setting
  • MAX_PERCENT_LF_CHARACTERS = 4933
Tags
  • Treatment of Language Constructs

Specifies the number of characters in which global identifiers should be considered to be significant.

Type integer
Behavior
  • 0 : All characters must differ for the identifiers to be considered distinct.
  • N (for N>0) : Identifiers must differ in the first N characters to be considered distinct.
  • -1 : The value is determined based on which version of the C or C++ standard is being used to parse the file.
Notes If unspecified, or if the value is -1, the analysis will attempt to determine which version of the C or C++ standard is explicitly used, and the values are set based on that:
  • C90 or C94: 6
  • C99: 31
  • C++: 2047
  • all other cases: 31

See also SIGNIFICANCE_LEN_MACRO, SIGNIFICANCE_LEN_OTHER.

Factory Setting
  • SIGNIFICANCE_LEN_EXTERN = -1
Tags

Specifies the number of characters in which macros should be considered to be significant.

Type integer
Behavior
  • 0 : All characters must differ for the identifiers to be considered distinct.
  • N (for N>0) : Identifiers must differ in the first N characters to be considered distinct.
  • -1 : The value is determined based on which version of the C or C++ standard is being used to parse the file.
Notes If unspecified, or if the value is -1, the analysis will attempt to determine which version of the C or C++ standard is explicitly used, and the values are set based on that:
  • C90 or C94: 31
  • C99: 63
  • C++: 2047
  • all other cases: 31

See also SIGNIFICANCE_LEN_EXTERN, SIGNIFICANCE_LEN_OTHER.

Factory Setting
  • SIGNIFICANCE_LEN_MACRO = -1
Tags

Specifies the number of characters in which identifiers other than globals or macros should be considered to be significant.

Type integer
Behavior
  • 0 : All characters must differ for the identifiers to be considered distinct.
  • N (for N>0) : Identifiers must differ in the first N characters to be considered distinct.
  • -1 : The value is determined based on which version of the C or C++ standard is being used to parse the file.
Notes If unspecified, or if the value is -1, the analysis will attempt to determine which version of the C or C++ standard is explicitly used, and the values are set based on that:
  • C90 or C94: 31
  • C99: 63
  • C++: 2047
  • all other cases: 31

See also SIGNIFICANCE_LEN_EXTERN, SIGNIFICANCE_LEN_MACRO.

Factory Setting
  • SIGNIFICANCE_LEN_OTHER = -1
Tags

Specifies whether Shift Amount Exceeds Bit Width checks should follow MISRA rules (as opposed to the C standards) for determining whether an arithmetic-shift operation exceeds the number of bits occupied by the left-hand operand of the operation.

Type { Yes, No }
Behavior
  • Yes : CodeSonar will determine that the width of the left-hand operand of an arithmetic-shift operation is the width of the type of the operand actually appearing in the source code.
  • No : CodeSonar will determine that the width of the left-hand operand of an arithmetic-shift operation is the width of the type of the operand, after possible casts have being applied by the compiler to the operand actually appearing in the source code.
Notes According to the C standards, when a value that is smaller than an int is used as the left-hand operand of an arithmetic shift, then that value is first cast to int before the shift is applied. Hence, the following code
     char c;
     c << 10;
     c << 64;

is equivalent to

     char c;
     ((int)c) << 10;
     ((int)c) << 64;

When checker Shift Amount Exceeds Bit Width is applied to an arithmetic shift, the width in bits of the left-hand operand is determined by the setting of MISRA_SHIFT_AMOUNT_EXCEEDS_BIT_WIDTH.

Assuming an int is 64 bits long or less, CodeSonar will produce either one or two warnings.

MISRA_SHIFT_AMOUNT_EXCEEDS_BIT_WIDTH=Yes (2 warnings):

     char c;
     c << 10; /* Shift Amount Exceeds Bit Width */
     c << 64; /* Shift Amount Exceeds Bit Width */

MISRA_SHIFT_AMOUNT_EXCEEDS_BIT_WIDTH=No (1 warning):

     char c;
     c << 10;
     c << 64; /* Shift Amount Exceeds Bit Width */
Factory Setting
  • MISRA_SHIFT_AMOUNT_EXCEEDS_BIT_WIDTH = No
Tags

Specifies that Read Past Null Terminator warnings should only be issued when comparing arrays having "essentially char type".

Type { Yes, No }
Behavior
  • Yes : CodeSonar will determine the essential type of the actual parameters to the comparison and only issue Read Past Null Terminator warnings if both parameters are arrays having essentially char type.
  • No : CodeSonar will issue Read Past Null Terminator warnings regardless of the essential type of the actual parameters to the comparison.
Notes Misra 2012 Rule 21.14 applies only when the actual parameters to memcmp() are arrays having essentially char type. Thus, the following code is technically compliant (but violates other rules).
     void * s1 = (void *)"abc";             // not an array of essentially char type
     void * s2 = (void *)"abc";             // not an array of essentially char type
     if ( memcmp( s1, s2, 5 ) == 0 ) ...;
  • READ_PAST_NTERM_CONSERVATIVE_CHECK=Yes : checks for this warning class follow the technical definition of Misra 2012 Rule 21.14. This call to memcmp() will NOT trigger a Read Past Null Terminator warning.
  • READ_PAST_NTERM_CONSERVATIVE_CHECK=No : checks for this warning class cover all calls to memcmp(), regardless of argument type. This call to memcmp() will trigger a Read Past Null Terminator warning.

Setting READ_PAST_NTERM_CONSERVATIVE_CHECK=Yes can reduce false positives for comparison of binary data that happens to contain null characters.

Factory Setting
  • READ_PAST_NTERM_CONSERVATIVE_CHECK=No
Tags

Specifies tags that are considered indicators that the code is incomplete.

Type Boost 'POSIX Extended Regular Expression'
Behavior If any line of a comment contains text that matches any of these regular expressions, a Comment Suggests Code Unfinished warning will be issued. The pattern matches are attempted in order of occurrence and only the first successful match is reported.
Notes For example, Comment Suggests Code Unfinished warnings will be reported on lines 1 and 4 of the following code fragment.
  /* 1 */  /* TODO: complete before release */      
  /* 2 */  void incomplete(void)
  /* 3 */  {
  /* 4 */    // FIXME: to be implemented later
  /* 5 */  }
Factory Settings
  • UNFINISHED_CODE_TAGS += FIXME
  • UNFINISHED_CODE_TAGS += TODO
  • UNFINISHED_CODE_TAGS += \\todo
  • UNFINISHED_CODE_TAGS += @todo
  • UNFINISHED_CODE_TAGS += \\bug
  • UNFINISHED_CODE_TAGS += @bug
  • UNFINISHED_CODE_TAGS += XXX
  • UNFINISHED_CODE_TAGS += BUG
  • UNFINISHED_CODE_TAGS += LATER
  • UNFINISHED_CODE_TAGS += HACK
Tags

Use the BAD_MACRO_* family of parameters to define warning classes that indicate the use of specific (prohibited) macros.

Type
Behavior These parameters are used together to specify bad macros to check for and warnings to issue when those macros occur.
  • BAD_MACRO_CLASS will be used as the warning class name. If the message contains any characters that are special to HTML, they must be HTML-encoded.
  • BAD_MACRO_NAME is a regular expression. If a macro that matches this is used, then the warning may be issued. If unspecified, any macro name will match. At least one of BAD_MACRO_NAME and BAD_MACRO_FILENAME must be specified.
  • BAD_MACRO_FILENAME is a regular expression. If the macro is defined in a file whose name matches this expression, then the warning may be issued. If unspecified, any file name will match. At least one of BAD_MACRO_NAME and BAD_MACRO_FILENAME must be specified.
  • BAD_MACRO_CATEGORIES is the set of categories for the warning, as a semicolon-separated list. This defaults to the empty string.
  • BAD_MACRO_BASE_RANK is the base rank assigned to the warning, with default 15.0.
  • BAD_MACRO_INFO will be used in the warning description box sentence, where occurrences of <macroname/> are replaced by the name of the macro, and <filename/> is replaced by the name of the file in which the macro was defined. The default value is "'Use of macro <macroname/> is not recommended because it is correlated with security or safety defects." Use <paragraph></paragraph> to delimit paragraphs. Use <link url="linkURL">linktext</link> to link "linktext" to linkURL.
  • BAD_MACRO_LINK specifies a URL for further information. Values beginning with "#' are interpreted relative to the CodeSonar manual root. If a value is specified, CodeSonar will append 'See <a href="...">here</a> for more information.' to the text in the warning description box. If no value is specified, and BAD_MACRO_INFO is also not specified, CodeSonar will look for a category beginning with "BADMACRO" in the BAD_MACRO_CATEGORIES list. If there is such a category, CodeSonar will add the "See here..." sentence with a link to the corresponding warning class page.
  • BAD_MACRO_SIGNIFICANCE is a string representing the Significance classification for this warning class.
Notes If two or more sets of BAD_MACRO_* rules have the same BAD_MACRO_CLASS value, the same warning class will be used to cover all cases. Therefore, sets of rules with the same BAD_MACRO_CLASS should also have the same BAD_MACRO_CATEGORIES, BAD_MACRO_INFO, and BAD_MACRO_BASE_RANK values (that is, they should only differ in the BAD_MACRO_NAME and BAD_MACRO_FILENAME setting).

Similarly, if a set of BAD_MACRO_* rules has a BAD_MACRO_CLASS that is the same as the name of a standard CodeSonar warning class, the category and base rank settings of the standard class will apply and any BAD_MACRO_CATEGORIES or BAD_MACRO_BASE_RANK specified in the set will not be used.

Examples:

     BAD_MACRO_CLASS = Use of Forbidden Macro
     BAD_MACRO_NAME = ^MAX$
     BAD_MACRO_INFO = MAX is bad
     BAD_MACRO_NAME = ^MIN$
     BAD_MACRO_INFO = MIN is bad
     BAD_MACRO_BASE_RANK = 1.0
     BAD_MACRO_SIGNIFICANCE = RELIABILITY

specifies a single warning class that will trigger if a macro named either MAX or MIN defined in any file are used.

The manifest entry will prevent this from triggering on C programs, only C++

Factory Settings
  • BAD_MACRO_CATEGORIES = BADMACRO.WEAK_CRYPTO;CWE:327
  • BAD_MACRO_BASE_RANK = 1.0
  • BAD_MACRO_SIGNIFICANCE = SECURITY
  • BAD_MACRO_FILENAME = stdint.h
  • BAD_MACRO_CLASS=Use of NULL
  • BAD_MACRO_NAME=^NULL$
Tags
  • Designates Specially-Treated Macros

Specifies functions whose calls are to be considered side effect free.

Type Boost 'POSIX Extended Regular Expression'
Behavior In checks for the following warning classes, CodeSonar treats all function calls as having side effects UNLESS the function name matches a SIDE_EFFECT_FREE_FUNCTIONS regular expression.
Notes It is impossible to know precisely which functions have side effects in general, so this parameter allows the specification of functions that are considered side effect free.
Factory Settings
  • SIDE_EFFECT_FREE_FUNCTIONS += ^(strlen|strnlen_s|strcmp|strncmp|strcoll|strchr|strrchr|strspn|strcspn|memchr)$
  • SIDE_EFFECT_FREE_FUNCTIONS += ^(isalnum|isalpha|islower|isupper|isdigit|isxdigit|iscntrl|isgraph|isspace|isblank|isprint|ispunct|tolower|toupper)$
  • SIDE_EFFECT_FREE_FUNCTIONS += ^(iswalnum|iswalpha|iswlower|iswdigit|iswxdigit|iswcntrl|iswgraph|iswspace|iswblank|iswprint|iswpunct|wctype|towlower|towupper|towctrans|wctrans)$
Tags

Specifies process names that will trigger Untrusted Process Creation warnings.

Type Boost 'POSIX Extended Regular Expression'
Behavior An UNTRUSTED_PROC_BLACKLIST rule is "applicable" if and only if
  • there is no subsequent UNTRUSTED_PROC_WHITELIST rule (which would take precedence), AND
  • there is no subsequent UNTRUSTED_PROC_BLACKLIST= rule (which would reset the blacklist). All other UNTRUSTED_PROC_BLACKLIST rules are ignored.

If there are one or more applicable UNTRUSTED_PROC_BLACKLIST rules, calls to triggering functions for Untrusted Process Creation are handled as follows.

  • If the process name argument matches the regular expression in one or more of the applicable UNTRUSTED_PROC_BLACKLIST rules, a warning is issued.
  • Otherwise, a warning is issued if and only if CodeSonar determines that the process name argument may have been obfuscated (where obfuscation thresholds are specified by MIN_B64_SCORE and MIN_ENC_SCORE).

If there are no applicable UNTRUSTED_PROC_BLACKLIST rules, calls to triggering functions for Untrusted Process Creation are handled as follows

  • If any UNTRUSTED_PROC_WHITELIST rules are applicable, they are applied as described in the documentation for UNTRUSTED_PROC_WHITELIST.
  • Otherwise, a warning is issued if and only if CodeSonar determines that the process name argument may have been obfuscated.
Notes With factory settings, all Linux and Windows shells are blacklisted.

The applicability rules for UNTRUSTED_PROC_BLACKLIST and UNTRUSTED_PROC_WHITELIST are such that process name whitelists and blacklists cannot be used in combination: rules of at most one of the two types will be applicable. If both UNTRUSTED_PROC_BLACKLIST and UNTRUSTED_PROC_WHITELIST rules are specified, an alert will be generated in the hub.

Factory Settings
  • UNTRUSTED_PROC_BLACKLIST += ^\s*(.*[/\\])?(a|ba|c|k|pdk|sc|tc|z)?sh(\s+.*)*$
  • UNTRUSTED_PROC_BLACKLIST += ^\s*(.*[/\\])?cmd(.exe)?(\s+.*)*$
  • UNTRUSTED_PROC_BLACKLIST += ^\s*(.*[/\\])?command(.com)?(\s+.*)*$
  • UNTRUSTED_PROC_BLACKLIST += ^\s*(.*[/\\])?(java|perl|python|ruby)
Tags

Specifies process names that will not trigger a Untrusted Process Creation warning.

Type Boost 'POSIX Extended Regular Expression'
Behavior An UNTRUSTED_PROC_WHITELIST rule is "applicable" if and only if
  • there is no subsequent UNTRUSTED_PROC_BLACKLIST rule (which would take precedence), AND
  • there is no subsequent UNTRUSTED_PROC_WHITELIST= rule (which would reset the whitelist). All other UNTRUSTED_PROC_WHITELIST rules are ignored.

If there are one or more applicable UNTRUSTED_PROC_WHITELIST rules, calls to triggering functions for Untrusted Process Creation are handled as follows.

  • If the process name argument matches the regular expression in one or more of the applicable UNTRUSTED_PROC_WHITELIST rules, a warning is NOT issued.
  • Otherwise, a warning is issued. This includes the case where CodeSonar cannot determine the value of the process name argument.

If there are no applicable UNTRUSTED_PROC_WHITELIST rules, calls to triggering functions for Untrusted Process Creation are handled as follows

  • If any UNTRUSTED_PROC_BLACKLIST rules are applicable, they are applied as described in the documentation for UNTRUSTED_PROC_BLACKLIST.
  • Otherwise, a warning is issued if and only if CodeSonar determines that the process name argument may have been obfuscated (where obfuscation thresholds are specified by MIN_B64_SCORE and MIN_ENC_SCORE).
Notes The applicability rules for UNTRUSTED_PROC_WHITELIST and UNTRUSTED_PROC_BLACKLIST are such that process name whitelists and blacklists cannot be used in combination: rules of at most one of the two types will be applicable. If both UNTRUSTED_PROC_WHITELIST and UNTRUSTED_PROC_BLACKLIST rules are specified, an alert will be generated in the hub.

The whitelist represents a much more aggressive approach than the blacklist, and will result in more false positives. For example, if CodeSonar cannot determine the name of the process being created, a warning will be generated for whitelists but not blacklists.

Tags

Specifies dynamic library names that will trigger Untrusted Library Load warnings.

Type Boost 'POSIX Extended Regular Expression'
Behavior An UNTRUSTED_LIB_BLACKLIST rule is "applicable" if and only if
  • there is no subsequent UNTRUSTED_LIB_WHITELIST rule (which would take precedence), AND
  • there is no subsequent UNTRUSTED_LIB_BLACKLIST= rule (which would reset the blacklist). All other UNTRUSTED_LIB_BLACKLIST rules are ignored.

If there are one or more applicable UNTRUSTED_LIB_BLACKLIST rules, calls to triggering functions for Untrusted Library Load are handled as follows.

  • If the library name argument matches the regular expression in one or more of the applicable UNTRUSTED_LIB_BLACKLIST rules, a warning is issued.
  • Otherwise, a warning is issued if and only if CodeSonar determines that the library name argument may have been obfuscated (where obfuscation thresholds are specified by MIN_B64_SCORE and MIN_ENC_SCORE).

If there are no applicable UNTRUSTED_LIB_BLACKLIST rules, calls to triggering functions for Untrusted Library Load are handled as follows

  • If any UNTRUSTED_LIB_WHITELIST rules are applicable, they are applied as described in the documentation for UNTRUSTED_LIB_WHITELIST.
  • Otherwise, a warning is issued if and only if CodeSonar determines that the library name argument may have been obfuscated.
Notes With factory settings, no dynamic libraries are blacklisted.

The applicability rules for UNTRUSTED_LIB_BLACKLIST and UNTRUSTED_LIB_WHITELIST are such that library name whitelists and blacklists cannot be used in combination: rules of at most one of the two types will be applicable. If both UNTRUSTED_LIB_WHITELIST and UNTRUSTED_LIB_BLACKLIST rules are specified, an alert will be generated in the hub.

Tags

Specifies dynamic library names that will not trigger a Untrusted Library Load warning.

Type Boost 'POSIX Extended Regular Expression'
Behavior An UNTRUSTED_LIB_WHITELIST rule is "applicable" if and only if
  • there is no subsequent UNTRUSTED_LIB_BLACKLIST rule (which would take precedence), AND
  • there is no subsequent UNTRUSTED_LIB_WHITELIST= rule (which would reset the whitelist). All other UNTRUSTED_LIB_WHITELIST rules are ignored.

If there are one or more applicable UNTRUSTED_LIB_WHITELIST rules, calls to triggering functions for Untrusted Library Load are handled as follows.

  • If the library name argument matches the regular expression in one or more of the applicable UNTRUSTED_LIB_WHITELIST rules, a warning is NOT issued.
  • Otherwise, a warning is issued. This includes the case where CodeSonar cannot determine the value of the library name argument.

If there are no applicable UNTRUSTED_LIB_WHITELIST rules, calls to triggering functions for Untrusted Library Load are handled as follows

  • If any UNTRUSTED_LIB_BLACKLIST rules are applicable, they are applied as described in the documentation for UNTRUSTED_LIB_BLACKLIST.
  • Otherwise, a warning is issued if and only if CodeSonar determines that the library name argument may have been obfuscated (where obfuscation thresholds are specified by MIN_B64_SCORE and MIN_ENC_SCORE).
Notes The applicability rules for UNTRUSTED_LIB_WHITELIST and UNTRUSTED_LIB_BLACKLIST are such that library name whitelists and blacklists cannot be used in combination: rules of at most one of the two types will be applicable. If both UNTRUSTED_LIB_WHITELIST and UNTRUSTED_LIB_BLACKLIST rules are specified, an alert will be generated in the hub.

The whitelist represents a much more aggressive approach than the blacklist, and will result in more false positives. For example, if CodeSonar cannot determine the name of the dynamic library being loaded, a warning will be generated for whitelists but not blacklists.

Tags

Specifies network hosts that will trigger a Untrusted Network Host warning.

Type
  • <re>
  • allow <re>
where <re> is a Boost 'POSIX Extended Regular Expression'
Behavior A NETWORK_HOST_BLACKLIST rule is "applicable" if and only if
  • there is no subsequent NETWORK_HOST_WHITELIST rule (which would take precedence), AND
  • there is no subsequent NETWORK_HOST_BLACKLIST= rule (which would reset the blacklist). All other NETWORK_HOST_BLACKLIST rules are ignored.

If there are one or more applicable NETWORK_HOST_BLACKLIST rules, calls to triggering functions for Untrusted Network Host are handled as follows.

  • If the network host argument matches an 'allow' regular expression in one or more of the applicable NETWORK_HOST_BLACKLIST rules, a warning is not issued.
  • Otherwise, if the network host argument matches the regular expression in one or more of the applicable (non-'allow') NETWORK_HOST_BLACKLIST rules, a warning is issued.
  • Otherwise, a warning is issued if and only if CodeSonar determines that the network host argument may have been obfuscated (where obfuscation thresholds are specified by MIN_B64_SCORE and MIN_ENC_SCORE).

If there are no applicable NETWORK_HOST_BLACKLIST rules, calls to triggering functions for Untrusted Network Host are handled as follows

  • If any NETWORK_HOST_WHITELIST rules are applicable, they are applied as described in the documentation for NETWORK_HOST_WHITELIST.
  • Otherwise, a warning is issued if and only if CodeSonar determines that the network host argument may have been obfuscated.
Notes With factory settings, all hardcoded IPv4, IPv6, and DNS addresses are blacklisted.

The applicability rules for NETWORK_HOST_BLACKLIST and NETWORK_HOST_WHITELIST are such that network host whitelists and blacklists cannot be used in combination: rules of at most one of the two types will be applicable. If both NETWORK_HOST_WHITELIST and NETWORK_HOST_BLACKLIST rules are specified, an alert will be generated in the hub.

The 'allow' rules are provided so that blacklist exceptions can be specified without resorting to overcomplicated blacklist regular expressions.

Factory Settings
  • NETWORK_HOST_BLACKLIST += allow ^127.0.0.1$
  • NETWORK_HOST_BLACKLIST += allow ^0\.[0-9]+\.[0-9]+\.[0-9]+$
  • NETWORK_HOST_BLACKLIST += [0-9]+\.[0-9]+\.[0-9]+\.[0-9]+
  • NETWORK_HOST_BLACKLIST += allow ^0:0:0:0:0:0:0:1$
  • NETWORK_HOST_BLACKLIST += allow ^::1$
  • NETWORK_HOST_BLACKLIST += allow ^0:0:0:0:0:0:0:0$
  • NETWORK_HOST_BLACKLIST += allow ^::$
  • NETWORK_HOST_BLACKLIST += ([a-zA-Z0-9])+:([a-zA-Z0-9])+:([a-zA-Z0-9])+:([a-zA-Z0-9])
  • NETWORK_HOST_BLACKLIST += .+\.[a-zA-Z]{2,6}($|\s+|\\|/|:)
Tags

Specifies network hosts that will not trigger a Untrusted Network Host warning.

Type Boost 'POSIX Extended Regular Expression'
Behavior A NETWORK_HOST_WHITELIST rule is "applicable" if and only if
  • there is no subsequent NETWORK_HOST_BLACKLIST rule (which would take precedence), AND
  • there is no subsequent NETWORK_HOST_WHITELIST= rule (which would reset the whitelist). All other NETWORK_HOST_WHITELIST rules are ignored.

If there are one or more applicable NETWORK_HOST_WHITELIST rules, calls to triggering functions for Untrusted Network Host are handled as follows.

  • If the network host argument matches the regular expression in one or more of the applicable NETWORK_HOST_WHITELIST rules, a warning is NOT issued.
  • Otherwise, a warning is issued. This includes the case where CodeSonar cannot determine the value of the library name argument.

If there are no applicable NETWORK_HOST_WHITELIST rules, calls to triggering functions for Untrusted Network Host are handled as follows

  • If any NETWORK_HOST_BLACKLIST rules are applicable, they are applied as described in the documentation for NETWORK_HOST_BLACKLIST.
  • Otherwise, a warning is issued if and only if CodeSonar determines that the network host argument may have been obfuscated (where obfuscation thresholds are specified by MIN_B64_SCORE and MIN_ENC_SCORE).
Notes The applicability rules for NETWORK_HOST_WHITELIST and NETWORK_HOST_BLACKLIST are such that network host whitelists and blacklists cannot be used in combination: rules of at most one of the two types will be applicable. If both NETWORK_HOST_WHITELIST and NETWORK_HOST_BLACKLIST rules are specified, an alert will be generated in the hub.

Using the whitelist is a much more aggressive approach than using the blacklist, and will result in more false positives. For example, if CodeSonar cannot determine the target host name, a warning will be generated for whitelists but not blacklists.

Tags

Specifies network ports that will trigger a Untrusted Network Port warning.

Type Boost 'POSIX Extended Regular Expression'
Behavior A NETWORK_PORT_BLACKLIST rule is "applicable" if and only if
  • there is no subsequent NETWORK_PORT_WHITELIST rule (which would take precedence), AND
  • there is no subsequent NETWORK_PORT_BLACKLIST= rule (which would reset the blacklist). All other NETWORK_PORT_BLACKLIST rules are ignored.

If there are one or more applicable NETWORK_PORT_BLACKLIST rules, calls to triggering functions for Untrusted Network Port are handled as follows.

  • If the network port argument matches the regular expression in one or more of the applicable NETWORK_PORT_BLACKLIST rules, a warning is issued.
  • Otherwise, no warning is issued.

If there are no applicable NETWORK_PORT_BLACKLIST rules, calls to triggering functions for Untrusted Network Port are handled as follows

  • If any NETWORK_PORT_WHITELIST rules are applicable, they are applied as described in the documentation for NETWORK_HOST_WHITELIST.
  • Otherwise, no warning is issued.
Notes The applicability rules for NETWORK_PORT_BLACKLIST and NETWORK_PORT_WHITELIST are such that network port whitelists and blacklists cannot be used in combination: rules of at most one of the two types will be applicable. If both NETWORK_PORT_WHITELIST and NETWORK_PORT_BLACKLIST rules are specified, an alert will be generated in the hub.

For example, to warn about any hardcoded port, put the following after all other NETWORK_PORT_BLACKLIST and NETWORK_PORT_WHITELIST rules.

   NETWORK_PORT_BLACKLIST = .*
Tags

Specifies network ports that will not trigger a Untrusted Network Port warning.

Type Boost 'POSIX Extended Regular Expression'
Behavior A NETWORK_PORT_WHITELIST rule is "applicable" if and only if
  • there is no subsequent NETWORK_PORT_BLACKLIST rule (which would take precedence), AND
  • there is no subsequent NETWORK_PORT_WHITELIST= rule (which would reset the whitelist). All other _WHITELIST rules are ignored.

If there are one or more applicable NETWORK_PORT_WHITELIST rules, calls to triggering functions for Untrusted Network Port are handled as follows.

  • If the network host argument matches the regular expression in one or more of the applicable NETWORK_PORT_WHITELIST rules, a warning is NOT issued.
  • Otherwise, a warning is issued. This includes the case where CodeSonar cannot determine the value of the library name argument.

If there are no applicable NETWORK_PORT_WHITELIST rules, calls to triggering functions for Untrusted Network Port are handled as follows

  • If any NETWORK_PORT_BLACKLIST rules are applicable, they are applied as described in the documentation for NETWORK_PORT_BLACKLIST.
  • Otherwise, a warning not is issued.
Notes With factory settings, the following are allowed: Email, SSH, SMTP, HTTP, FTP, SSH.

The applicability rules for NETWORK_PORT_WHITELIST and NETWORK_PORT_BLACKLIST are such that network port whitelists and blacklists cannot be used in combination: rules of at most one of the two types will be applicable. If both NETWORK_PORT_WHITELIST and NETWORK_PORT_BLACKLIST rules are specified, an alert will be generated in the hub.

Using the whitelist is a much more aggressive approach than using the blacklist, and will result in more false positives. For example, if CodeSonar cannot determine the value of the network port argument, a warning will be generated for whitelists but not blacklists.

Factory Settings
  • NETWORK_PORT_WHITELIST += ^20$
  • NETWORK_PORT_WHITELIST += ^21$
  • NETWORK_PORT_WHITELIST += ^22$
  • NETWORK_PORT_WHITELIST += ^25$
  • NETWORK_PORT_WHITELIST += ^80$
  • NETWORK_PORT_WHITELIST += ^123$
  • NETWORK_PORT_WHITELIST += ^143$
Tags

Specifies whether the Potential Timebomb check should ignore comparisons against zero.

Type { Yes, No }
Behavior
  • Yes : Potential Timebomb checks will ignore comparisons against zero, which is a common error return value for time functions.
  • No : Potential Timebomb checks will not ignore comparisons against zero. This is likely to result in more false positive warnings.
Factory Setting
  • TIMEBOMB_IGNORE_ZERO = Yes
Tags

Specifies the number of lines of code after a call to chroot() within which a subsequent call to chdir() must occur to avoid issuing a chroot without chdir warning.

Type integer
Behavior Sets a bound N. A chroot without chdir warning is issued at a call to chroot() if either of the following are true.
  • N lines of code can be executed after the call to chroot() without encountering a call to chdir().
  • The function in which chroot() was called returns before reaching a call to chdir().
Factory Setting
  • MAX_CHROOT_CHDIR_DIST = 20
Tags

Specifies a threshold beyond which constant strings are identified as Base64-encoded for warning classes Untrusted Network Host, Untrusted Library Load, and Untrusted Process Creation.

Type integer
Behavior When a constant string argument is passed to a triggering function for any of these warning classes, CodeSonar computes a metric from that string to determine heuristically whether it represents Base64-encoded content. If the value of the computed metric is above MIN_B64_SCORE, a warning of the corresponding class is issued.

Note The factors considered by the metric include the following.

  • Does the string consist entirely of alphanumeric characters and '+', '/', or '='?
  • Is the length of the string an integer multiple of 4?
  • Does the string end with '=' characters?
  • Are the alphabetic characters in the string consistently upper or consistently lower case?
  • Does the string include many of the available Base64 encoding characters?
Factory Setting
  • MIN_B64_SCORE = 50
Tags

Specifies a threshold beyond which constant strings are identified as encrypted for warning classes Untrusted Network Host, Untrusted Library Load, and Untrusted Process Creation.

Type integer
Behavior When a constant string argument is passed to a triggering function for any of these warning classes, CodeSonar computes a metric from that string to determine heuristically whether it represents encrypted content. If the value of the computed metric is above MIN_ENC_SCORE, a warning of the corresponding class is issued.

Note Factors considered include:

  • Does the string consist entirely of alphanumeric characters or other common text characters? (If so, it is unlikely to be encrypted.)
  • Does the string exhibit high entropy?
Factory Setting
  • MIN_ENC_SCORE = 90
Tags

When the address of a portion of an aggregate is taken, and CodeSonar is not intraprocedurally aware of the size of the underlying allocation, should the "2$Buffer Overrun" warning class checker treat the pointer's capacity as the capacity of the portion (as opposed to the capacity of the underlying allocation)?

Type { Yes, No }
Behavior
  • Yes : CodeSonar will determine the pointer capacity using the type boundary of the entity whose address was taken.
  • No : CodeSonar will determine the pointer capacity using the capacity of the underlying allocation.
Notes When the address of some sub-object like a field in a structure or a row of a multi-dimensional array is taken, CodeSonar will record how far the resulting address is from the end of the allocation, for the purpose of detecting buffer overruns.

For statements such as:

    q = &p->f;

CodeSonar will generally pick the minimum of the distance between the size of f and the distance to the end of the underlying allocation from the beginning of f. However, there will be times when CodeSonar must make this decision without knowing these two values. This preference determines which of the two behaviors is used in this case.

Setting POINTED_TO_CAPACITY_DEFAULTS_TO_TYPE_BOUNDARY=Yes permits CodeSonar to detect the buffer overrun in the following code.

    struct { int f; } *p = unknown_value();
    int *q = &p->f;
    q[5] = 42;

Setting POINTED_TO_CAPACITY_DEFAULTS_TO_TYPE_BOUNDARY=No permits CodeSonar to detect the buffer overrun in the following code.

void f(int x){
int A[10][10];
int *q = &A[x][0];
q[5] = 42;
}
void g(){ f(11); }

Note that the "2$Buffer Overrun" warning class is one of several detectors for buffer overruns, and unlike the others is disabled by default. You can enable it with a WARNING_FILTER rule.

Factory Setting
  • POINTED_TO_CAPACITY_DEFAULTS_TO_TYPE_BOUNDARY = Yes
Tags

Specifies whether or not Type Overrun warnings will be issued for a variable length array at the end of a class, struct, or union.

Type { Yes, No }
Behavior
  • Yes : CodeSonar will issue Type Overrun warnings for variable length arrays at the end of a class, struct, or union.
  • No : CodeSonar will not issue Type Overrun warnings for these arrays.
Because of the way CodeSonar handles variable length arrays, setting this parameter to No will also suppress Type Overrun warnings for fixed length arrays of length 0 or 1 when these arrays occur at the end of a class, struct, or union.
Notes This parameter does not affect Buffer Overrun warnings.

Example:

  struct { int A[1]; } *p = malloc(sizeof(*p) + 100);
  p->A[5] = 123;    /* Type Overrun warning issued only if TYPE_OVERRUN_ON_LAST_ARRAY_FIELD=Yes
                     * no Buffer Overrun: write is inside allocated buffer
                     */

  p->A[555] = 123;  /* Type Overrun warning issued only if TYPE_OVERRUN_ON_LAST_ARRAY_FIELD=Yes
                     * Buffer Overrun warning always issued: write is outside allocated buffer
                     */

The idiom in this example is in common use, but is not permitted by the C and C++ standards. Some compilers have compiler-defined behavior for such code, but others will treat it as having undefined behavior.

Factory Setting
  • TYPE_OVERRUN_ON_LAST_ARRAY_FIELD = No
Tags

Specifies whether or not CodeSonar will keep the full unnormalized AST information associated with a C/C++ project.

Type { Yes, No }
Behavior
  • Yes : Unnormalized C/C++ ASTs will be available during analysis.
  • No : Unnormalized C/C++ ASTs will not be available.
Notes The unnormalized ASTs can consume significant amounts of disk space and saving it takes time.
Factory Setting
  • RETAIN_UNNORMALIZED_C_AST = No
Tags
  • Governs the Build/Analysis
  • Do Not Change Between Incremental Analyses or Stages of a Single Build/Analysis

Specifies the order of evaluation of function parameters.

Type { LEFT_TO_RIGHT, RIGHT_TO_LEFT}
Behavior
  • LEFT_TO_RIGHT : Parameters are evaluated left to right.
  • RIGHT_TO_LEFT : Parameters are evaluated right to left.
Notes This behavior can vary from compiler to compiler. Some compilers may use other orders (e.g., 1,3,2) that cannot be specified here.
Factory Setting
  • PARAMETER_EVALUATION_ORDER = RIGHT_TO_LEFT
Tags
  • Governs the Build/Analysis

Specifies an upper bound on the number of implicitly-zero-initialized array elements from a curly-brace initializer CodeSonar will explicitly track, on each end of the implicitly-initialized segment of the array.

Type integer
Behavior Using a setting of 2, the initialization of elements 0, 1, 2, 3, 4, 98, and 99 of this array would be tracked:
    int A[100] = { 42, 42, 42 };
Notes Large values may increase precision in some programs, but will slow down the analysis.
Factory Setting
  • IMPLICIT_INITIALIZER_ELT_LIMIT = 2
Tags
  • Analysis resource/effort limit

Specifies whether or not to report Essential Type Diagnostic warnings (warnings of this class are reported for all expressions).

Type { Yes, No }
Behavior
  • Yes : Essential Type Diagnostic warnings are reported, provided the class is suitably enabled (see warning class documentation for details). Note that warnings of this class are reported for every expression.
  • No : Essential Type Diagnostic warnings are not reported, even if the other requirements for enabling the class are satisfied.
Notes The Essential Type Diagnostic warning class is only only useful for debugging purposes. Its use is not recommended unless explicitly directed by CodeSecure support.

A Essential Type Diagnostic warning is issued for every expression. In all but the most trivial programs, there are a great many expressions and consequently there will be a great many Essential Type Diagnostic warnings unless the class is selectively enabled for only parts of the program.

If you are trying to determine the essential types of only a few expressions within your program, use multiple clauses in your WARNING_FILTER rule to ensure you only enable warnings that are useful to you. For example, suppose that you are only interested in the essential types of expressions in source file problemfile.c. Then your rule will be:

  WARNING_FILTER += allow class="Essential Type Diagnostic" file=problemfile.c
Factory Setting
  • ESSENTIAL_TYPE_DIAGNOSTIC_ENABLED = No
Tags

Specifies whether or not to report Buffer Underrun and Type Underrun warnings when there is a guard that almost contradicts the warning, but not quite, but simultaneously there is not evidence that the index can take on the dangerous value.

Type { Yes, No }
Behavior
  • Yes : More Buffer Underrun and Type Underrun warnings will be reported. Most of them might be false positives, but some may be useful.
  • No : Do not report Buffer Underrun and Type Underrun warnings when guards nearly-contradict the possibility.
Notes In the following example, suppose that unknown_value() is some untainted value that the analysis isn't sure about. Then a Type Underrun warning will be reported only if UNDER_BY_ONE=Yes:
   void f(){
      int x = unknown_value();
      int A[10];
      if( x > -2 ) A[x] = 42;
   }
Factory Setting
  • UNDER_BY_ONE = No
Tags

Specifies whether or not CodeSonar will infer that unsigned comparison against an upper bound also implies a lower bound of zero.

Type { Yes, No }
Behavior
  • Yes : Conditions such as x < 10U or x <= 10U will imply that x >= 0 along with the upper bound on x.
  • No : Conditions such as x < 10U will only result in an upper bound on x.
Notes Because many of the abstractions used by the analysis are based on rational numbers and not modular arithmetic, setting this to Yes can result in inconsistencies if "x" is interpreted as a signed integer elsewhere. In general, setting this to Yes tends to cause false positives and false negatives but may fix some specific false negatives.
Factory Setting
  • UNSIGNED_BRACKET_INEQUALITY = No
Tags
  • Fine Tuning for Warnings

Specifies whether or not a Format String Type Error warning should be issued when the sign of the type of an argument does not match the sign of the format string specifier.

Type { Yes, No }
Behavior
  • Yes : Warn if the signedness of an argument does not match the argument's signedeness.
  • No : Do not issue any warnings if the signedness does not match.
Notes Format String Type Error warnings will only be issued in the following code if FORMAT_STRING_WARN_ON_SIGN_MISMATCH=Yes.
   void f(){
      printf( "%u\n", 42 );
      printf( "%x\n", 42 );
      printf( "%d\n", 42U );
   }
Factory Setting
  • FORMAT_STRING_WARN_ON_SIGN_MISMATCH = No
Tags

Specifies whether or not a Format String Type Error warning should be issued when the integer kind of the type of an argument does not match the integer kind of the format string specifier, but the two integer kinds have equal sizes.

Type { Yes, No }
Behavior
  • Yes : Warn if integer kinds differ, even if they have the same size.
  • No : Consider distinct integer kinds with the same size as binary compatible.
Notes On ABIs where int and long have the same size, Format String Type Error warnings will only be issued in the following code if FORMAT_STRING_WARN_ON_EQUAL_SIZE=Yes.
   void f(){
      assert( sizeof(int) == sizeof(long) );
      printf( "%d\n", 42L );
      printf( "%ld\n", 42 );
   }

A setting of Yes is useful for codebases intended to portable to multiple architectures. For example, the code above works correctly on a 32-bit Linux ABI but works incorrectly on a 64-bit Linux ABI. With a setting of No, CodeSonar would only issue a warning when the compiler is targeting the 64-bit Linux ABI. With a setting of Yes, CodeSonar would issue a warning regardless of which ABI the compiler is targeting for that particular analysis.

If a code base is only intended to run on one kind of hardware--ever--then set this to No.

Factory Setting
  • FORMAT_STRING_WARN_ON_EQUAL_SIZE = No
Tags

Inform the Java build/analysis about the runtime environment of the analyzed application.

Type { java1, java2, java3, java4, java5, java6, java7, java8, java9, java10, java11, java12, java13, java14, java15, java16, java17, java18, java19, java20, java21, java22, androidAPI1, androidAPI2, androidAPI3, androidAPI4, androidAPI5, androidAPI6, androidAPI7, androidAPI8, androidAPI9, androidAPI10, androidAPI11, androidAPI12, androidAPI13, androidAPI14, androidAPI15, androidAPI16, androidAPI17, androidAPI18, androidAPI19, androidAPI20, androidAPI21, androidAPI22, androidAPI23, androidAPI24, androidAPI25, androidAPI26, androidAPI27, androidAPI28, androidAPI29, androidAPI30, androidAPI31, androidAPI32, androidAPI33, androidAPI34, androidAPI35 }
Behavior If a value is specified for JAVA_ANALYSIS_FRAMEWORK, CodeSonar will analyze the application with respect to the corresponding runtime environment. The affects the set of classes that will be treated as available in the runtime environment, the inheritance relationships of those classes, and the class semantics.

If no value is specified, CodeSonar will attempt to infer the appropriate runtime environment from the class versions of analyzed classes.

Languages Java
Factory Setting
  • JAVA_ANALYSIS_FRAMEWORK =
Tags
  • Governs the Build/Analysis

Specifies how the Java build/analysis will determine the application's entry points: the methods that can be invoked by the runtime environment and that should be considered starting points of the analysis.

Type { ALL_ENTRIES, ONLY_EXPLICIT_ENTRIES, ONLY_STANDARD_ENTRIES, LIBRARY, ALL_METHODS }
Behavior
  • ALL_ENTRIES : treat all public and protected methods and constructors as entry points.
  • ONLY_EXPLICIT_ENTRIES: treat methods and constructors as entry points if and only if they are annotated as @EntryPoint.
  • ONLY_STANDARD_ENTRIES : only consider default entry points like main methods, Swing event handlers, and Android event handlers.
  • LIBRARY : treat all public and protected methods and constructors as entry points, and assume that non-final classes might be redefined in the future.
  • ALL_METHODS : treat all public, protected and private methods and constructors as entry points.
Languages Java
Factory Setting
  • JAVA_ANALYSIS_ENTRY_POINTS_MODE = ALL_ENTRIES
Tags
  • Governs the Build/Analysis

Specifies whether or not the Java build/analysis will treat assertion statements as if they are executed.

Type { Yes, No }
Behavior
  • Yes : The analysis will treat assertion statements as if they are executed. Warnings can be reported in assertion code, and assertion side effects are considered by the analysis.
  • No : The analysis will proceed as if all assertions have been removed. Warnings will not be reported for any assertion code, and side effects from assertions will not be accounted for.
Languages Java
Factory Setting
  • JAVA_ANALYSIS_ENABLE_ASSERTIONS = No
Tags
  • Governs the Build/Analysis

Specifies a timeout (in seconds) for the overall Java build/analysis.

Type non-negative integer
Behavior
  • integer N : if the Java Build/Analysis hasn't finished after N seconds, it will halt with an error message. No analysis results are produced in this case.
Languages Java
Notes The factory setting of 10800 corresponds to 3 hours.
Factory Setting
  • JAVA_ANALYSIS_TIMEOUT = 10800
Tags
  • Analysis Time Limits

Specifies whether or not the Java build/analysis will perform advanced checking for injection-related issues.

Type { Yes, No }
Behavior
  • Yes : Advanced checking for injection-related issues is performed. This requires more resources than the No setting, but provides results that account for the flow of tainted data within the program.
  • No : Only basic checking is performed for these warning classes. This has a lower resource cost than the Yes setting but may miss some vulnerabilities.
Languages Java
Notes Setting this to Yes will generally produce more false positives than setting to No.
Factory Setting
  • JAVA_ANALYSIS_ADVANCED_INJECTION = No
Tags

Specifies options to the JVM that will execute the Java build/analysis.

Type string
Behavior The whole value of this parameter will be prepended to the list of JVM arguments that is used to start the Java analysis JVM. To specify multiple options, separate them with a space.
Languages Java
Notes A list of the available JVM options is available in the Oracle Java command line documentation, in section "Standard Options for Java".
Factory Setting
  • JAVA_ANALYSIS_JVM_OPTIONS =
Tags
  • Governs the Build/Analysis

Customize the execution of the JVM that will execute the Java build/analysis launcher.

Type string
Behavior The whole value of this parameter will be prepended to the list of JVM arguments that is used to start the Java analysis launcher JVM. To specify multiple options, separate them with a space.
Notes A list of the available JVM options is available in the Oracle Java command line documentation, in section "Standard Options for Java".
Factory Setting
  • JAVA_LAUNCHER_JVM_OPTIONS =
Tags
  • Governs the Build/Analysis

In combination with JAVA_ANALYSIS_MEMORY_MANAGEMENT, specifies the maximum amount of memory that the Java build/analysis can use in megabytes (MiB).

Type <num>, where <num> is a non-negative integer.
Behavior The specified value is interpreted as an upper bound on memory.
  • When JAVA_ANALYSIS_MEMORY_MANAGEMENT=ADAPTIVE or JAVA_ANALYSIS_MEMORY_MANAGEMENT=SIMPLE, the specified value contributes to determining the memory limit specified when invoking the JVM for the Java build/analysis.
  • When JAVA_ANALYSIS_MEMORY_MANAGEMENT=NONE, the specified value has no effect.

See JAVA_ANALYSIS_MEMORY_MANAGEMENT for more information.

Factory Setting
  • JAVA_ANALYSIS_MAX_MEMORY = 16384
Tags
  • Analysis resource/effort limit

Specifies the maximum amount of memory that the Java build/analysis launcher can use in megabytes (MiB).

Type <num>, where <num> is a non-negative integer.
Behavior The specified value is interpreted as an upper bound on memory.
Languages Java
Factory Setting
  • JAVA_LAUNCHER_MEMORY = 1024
Tags
  • Analysis resource/effort limit

In combination with JAVA_ANALYSIS_MAX_MEMORY, specifies how the Java build/analysis will manage its memory limit.

Type { ADAPTIVE, NONE, SIMPLE }
Behavior
  • ADAPTIVE : The JVM that executes the analysis is passed argument -Xmx <val>, where <val> is the lower of the value specified for JAVA_ANALYSIS_MAX_MEMORY and the amount of memory currently available on the system.
  • NONE : No -Xmx option is passed to the JVM that executes the analysis. Memory management and garbage collection are completely handled by the Java runtime and the operating system. The value of JAVA_ANALYSIS_MAX_MEMORY is ignored.
  • SIMPLE: The JVM that executes the analysis is passed argument -Xmx <val>, where <val> is the value specified for JAVA_ANALYSIS_MAX_MEMORY.
Languages Java
Notes Setting this to ADAPTIVE usually leads to easier recovery in case of out of memory errors.
Factory Setting
  • JAVA_ANALYSIS_MEMORY_MANAGEMENT = ADAPTIVE
Tags
  • Analysis resource/effort limit

Specifies the number of CPUs that the JVM executing the Java analysis is allowed to use.

Type integer in the range 1..<cores>, where <cores> is the total number of cores on the analysis machine.
Behavior If JAVA_ANALYSIS_JVM_CONCURRENCY is set with JAVA_ANALYSIS_JVM_CONCURRENCY=<num>, the active processor count of the JVM executing the Java analysis will be set to <num>.

If JAVA_ANALYSIS_JVM_CONCURRENCY is not set, the number <num> of active processors to use is computed using the total number of cores available on the analysis machine and the settings of parameters ANALYSIS_SLAVES, MAX_ANALYSIS_SLAVES, and REQUEST_REMOTE_ANALYSIS_SLAVES, as follows.

  • if REQUEST_REMOTE_ANALYSIS_SLAVES=No and ANALYSIS_SLAVES=Auto, <num>=min(min(<cores>, 8), MAX_ANALYSIS_SLAVES)
  • otherwise, if REQUEST_REMOTE_ANALYSIS_SLAVES=No, <num>=min(ANALYSIS_SLAVES, MAX_ANALYSIS_SLAVES)
  • otherwise, <num>=min(min(<cores>, 4), MAX_ANALYSIS_SLAVES)
Languages Java
Notes A value between 4 and 8 is recommended.
Factory Setting
  • JAVA_ANALYSIS_JVM_CONCURRENCY=
Tags
  • Analysis resource/effort limit

Specifies whether or not the Java taint analysis should trust data that originates from database queries, rather than treating it as tainted.

Type { Yes, No }
Behavior
  • Yes : data originating from database queries will be not be treated as tainted, and cannot cause a taint-related warning to be issued.
  • No : data originating from database queries will be treated as tainted. If any such data reaches a taint sink without being cleansed of the taint by a corresponding taint sanitizer, a warning will be issued.
Languages Java
Notes Data is considered to come from a database query if it originates from a field or method return value annotated with @com.juliasoft.julia.checkers.flows.UntrustedDatabase. While this annotation can be manually placed by users of the analysis, CodeSonar automatically annotates some well-known library methods (see the Java taint source list).
Factory Setting
  • JAVA_ANALYSIS_TRUST_DATABASE = No
Tags

Specifies whether or not the Java taint analysis should trust data that originates from the specific device running the application, rather than treating it as tainted.

Type { Yes, No }
Behavior
  • Yes : data originating from the device will be not be treated as tainted, and cannot cause a taint-related warning to be issued.
  • No : data originating from the device will be treated as tainted. If any such data reaches a taint sink without being cleansed of the taint by a corresponding taint sanitizer, a warning will be issued.
Languages Java
Notes Data is considered to come from the device the application is running on if it originates from a field or method return value annotated with @com.juliasoft.julia.checkers.flows.UntrustedDevice. While this annotation can be manually placed by users of the analysis, CodeSonar automatically annotates some well-known library methods (see the Java taint source list).
Factory Setting
  • JAVA_ANALYSIS_TRUST_DEVICE = No
Tags

Specifies whether or not the Java taint analysis should trust data that originates from the environment or from system properties, rather than treating it as tainted.

Type { Yes, No }
Behavior
  • Yes : data originating from the environment or from system properties will be not be treated as tainted, and cannot cause a taint-related warning to be issued.
  • No : data originating from the environment or from system properties will be treated as tainted. If any such data reaches a taint sink without being cleansed of the taint by a corresponding taint sanitizer, a warning will be issued.
Languages Java
Notes Data is considered to come from the environment or from system properties if it originates from a field or method return value annotated with @com.juliasoft.julia.checkers.flows.UntrustedEnvironment. While this annotation can be manually placed by users of the analysis, CodeSonar automatically annotates some well-known library methods (see the Java taint source list).
Factory Setting
  • JAVA_ANALYSIS_TRUST_ENVIRONMENT = Yes
Tags

Specifies whether or not the Java taint analysis should trust data that originates from external streams or sockets, rather than treating it as tainted.

Type { Yes, No }
Behavior
  • Yes : data originating from external streams or sockets will be not be treated as tainted, and cannot cause a taint-related warning to be issued.
  • No : data originating from external streams or sockets will be treated as tainted. If any such data reaches a taint sink without being cleansed of the taint by a corresponding taint sanitizer, a warning will be issued.
Languages Java
Notes Data is considered to come from an external stream or socket if it originates from a field or method return value annotated with @com.juliasoft.julia.checkers.flows.UntrustedExternalStreams. While this annotation can be manually placed by users of the analysis, CodeSonar automatically annotates some well-known library methods (see the Java taint source list).
Factory Setting
  • JAVA_ANALYSIS_TRUST_EXTERNAL_STREAMS = Yes
Tags

Specifies whether or not the Java taint analysis should trust data that originates from web requests or console input, rather than treating it as tainted.

Type { Yes, No }
Behavior
  • Yes : data originating from web requests or console input will be not be treated as tainted, and cannot cause a taint-related warning to be issued.
  • No : data originating from web requests or console input will be treated as tainted. If any such data reaches a taint sink without being cleansed of the taint by a corresponding taint sanitizer, a warning will be issued.
Languages Java
Notes Data is considered to be user input if it originates from a field or method return value annotated with @com.juliasoft.julia.checkers.flows.UntrustedUserInput. While this annotation can be manually placed by users of the analysis, CodeSonar automatically annotates some well-known library methods (see the Java taint source list).
Factory Setting
  • JAVA_ANALYSIS_TRUST_USER_INPUT = No
Tags

Specifies whether or not the Java build/analysis will collapse bytecode instructions that create objects of the same type inside the same class.

Type { Yes, No }
Behavior
  • Yes : all instructions inside the same class X that create objects of the same type Y are treated as the same instruction. In particular, all instances of Y created inside X are considered to be the same object.
  • No : all object creation instructions are treated as distinct.
Notes The loss of object sensitivity caused by setting this to Yes can lead to both false positives and false negatives but speeds up the analysis and reduces memory cost.

For sufficiently large analyzed applications - those with more than 300k reachable bytecode instructions - the Java analysis will always behave as if this option is set to Yes.

Factory Setting
  • JAVA_ANALYSIS_MERGE_CREATION_POINTS = No
Tags

Specifies whether or not the Java build/analysis will track information about individual fields of each object.

Type { Yes, No }
Behavior
  • Yes : the Java analysis will track information about each field of each object.
  • No : for each object, the Java analysis will track one set of information covering all fields (that is, it treats the fields as interchangeable). In particular, if one field of an object O becomes tainted, the analysis will consider all fields of O to be tainted.
Languages Java
Notes Setting this to Yes will generally reduce the number of false positives, but uses more time and memory than setting to No.
Factory Setting
  • JAVA_ANALYSIS_FIELD_SENSITIVE = Yes
Tags

For Android checks that rely on manifest data, specifies whether or not at least one Android manifest must be submitted in order for the check to be performed.

Type { Yes, No }
Behavior
  • Yes : checks for the listed warning classes will only be performed if at least one Android manifest has been included with the files submitted for analysis.
  • No : checks for the listed warning classes will be performed even if no manifest has been submitted. Worst-case assumptions will be applied in situations where manifest data is required, typically resulting in a large number of false positives.
Languages Java
Factory Setting
  • JAVA_ANALYSIS_REQUIRE_ANDROID_MANIFEST = Yes
Tags

For warning classes related to field visibility, specifies the field visibility types that will be considered by the warning class checks.

Type { PUBLIC, PROTECTED, PACKAGE, PRIVATE }
Behavior Warning classes that reason about field visibility inspect fields with visibility equal to, or less restrictive than, the value of this parameter.
  • PUBLIC : checks for the listed warning classes will only consider fields with public visibility.
  • PROTECTED : checks for the listed warning classes will consider fields with public or protected visibility.
  • PACKAGE checks for the listed warning classes will consider fields with public, protected, or package (no modifier) visibility.
  • PRIVATE : checks for the listed warning classes will consider fields of all visibility types: public, protected, package (no modifier), and private.
Languages Java
Factory Setting
  • JAVA_ANALYSIS_FIELD_VISIBILITY = PROTECTED
Tags

For warning classes whose checks can involve additional supporting analyses, specifies whether or not those additional analyses should be skipped (generally in order to save time).

Type { Yes, No }
Behavior
  • Yes : checks for the listed warning classes will not incorporate additional supporting analyses such as reachability analysis and expression nullness checking. In situations where data from these additional analyses is required, worst-case assumptions will be applied.
  • No : checks for the listed warning classes will incorporate the additional supporting analyses.
Languages Java
Notes Setting this to Yes will speed up the analysis, but generally lead to more false positives.
Factory Setting
  • JAVA_ANALYSIS_FAST_DEEP_CHECK = No
Tags

Specifies whether or not a preliminary "class initialization analysis" will be performed before checks for those warning classes that may benefit from it.

Type { Yes, No }
Behavior
  • Yes : checks for the listed warning classes will be preceded by a "class initialization analysis" to determine the locations at which a class is initialized (and so its static initializer is called).
  • No : the Java analysis will treat all accesses to class objects as possible class initialization points. This is an overapproximation: some of these accesses may be unreachable, or may occur after the class has already been initialized.
Languages Java
Notes Setting this to Yes can reduce the number of false positives, but increases analysis time.
Factory Setting
  • JAVA_ANALYSIS_INITIALIZATION_CHECK = No
Tags

Specifies whether or not the analysis should treat all inputs received by the application as if they might be null.

Type { Yes, No }
Behavior
  • Yes : the analysis will account for the possibility of null values in unwritten fields, values returned by library methods, and parameters of methods selected as entry points.
  • No : the analysis will assume that such values are always non-null.
Notes A Yes setting represents the worst-case scenario for nullness issues. There will generally lead to a higher number of warnings than a No setting, possibly including false positives.
Factory Setting
  • JAVA_ANALYSIS_DEEP_NULLNESS_CONSERVATIVE_CHECK = No
Tags

Specifies how checks for concurrency warning classes should interpret @GuardedBy annotations.

Type { byValue, byName }
Behavior
  • byName : @GuardedBy annotations refer to the names of the annotated variables or fields.
  • byValue : @GuardedBy annotations refer to the values contained in the annotated variables or fields. Variables assigned these values must therefore also be guarded.
Languages Java
Notes For example, consider the following code.
   @GuardedBy(x)
   Object a; // a must be guarded by x
   Object b; // b doesn't have to be guarded
   // ...
   b = a;

If JAVA_ANALYSIS_CONCURRENCY_GUARDS_MODE=byName, this code fragment will not cause the analysis to infer any guard requirements for b.

If JAVA_ANALYSIS_CONCURRENCY_GUARDS_MODE=byValue, the analysis will infer that b must be guarded by x at all points after the assignment b=a.

Factory Setting
  • JAVA_ANALYSIS_CONCURRENCY_GUARDS_MODE = byName
Tags

When JAVA_ANALYSIS_CONCURRENCY_GUARDS_MODE=byValue, specifies whether or not the analysis will treat method calls on guarded variables as dereferences of those variables.

Type { Yes, No }
Behavior If JAVA_ANALYSIS_CONCURRENCY_GUARDS_MODE=byValue, behavior is as follows.
  • Yes : method calls Obj.meth() are considered to be dereferences of the method receiver Obj, and this information is used in computing inferred @GuardedBy annotations for Obj. Specifically, the analysis will not infer a @GuardedBy annotation for Obj unless it can infer the same annotation for meth().
  • No : method calls are not considered to be dereferences of the method receiver. This is the factory setting, since instance method calls only access the class tag of the value, which is constant in Java and cannot be involved in a data race.

If JAVA_ANALYSIS_CONCURRENCY_GUARDS_MODE=byName, the setting of this parameter has no effect.

Languages Java
Notes Setting this to Yes will generally lead to fewer inferred @GuardedBy annotations.
Factory Setting
  • JAVA_ANALYSIS_CONCURRENCY_CALLS = No
Tags

Specifies whether or not CodeSonar should perform stricter checking for certain Java warning classes.

Type { Yes, No }
Behavior
  • Yes : the analysis will perform stricter checking for the listed warning classes.
  • No : this additional checking will not be performed.
Languages Java
Notes Refer to the individual warning class documentation pages for information about the precise effects of this parameter on each class.

Setting this to Yes will generally lead to fewer false negative warnings, but more false positives and a longer analysis time.

The clone Subclass of Non-clonable (Java) and Inadequate Salt (Java) classes can only be enabled if this is set to Yes.

Factory Setting
  • JAVA_ANALYSIS_STRICT_MODE = No
Tags

Specifies whether or not CodeSonar should perform more pedantic checking for certain Java warning classes.

Type { Yes, No }
Behavior
  • Yes : the analysis will perform more pedantic checking for the listed warning classes.
  • No : this additional checking will not be performed.
Languages Java
Notes Refer to the individual warning class documentation pages for information about the precise effects of this parameter on each class.

Setting this to Yes will generally lead to fewer false negative warnings, but more false positives and a longer analysis time. There may be many more warnings than with a No setting.

The Inner Class Should be Static (Java) and Unsafe Base64 Encoding (Java) classes can only be enabled if this is set to Yes.

Factory Setting
  • JAVA_ANALYSIS_PEDANTIC_MODE = No
Tags

Inform the C# build/analysis about the runtime environment of the analyzed application.

Type { net10, net11, net20, net30, net35, net40, net45, net451, net452, net46, net461, net462, net47, net471, net472, net48, netcoreapp1.0, netcoreapp1.1, netcoreapp2.0, netcoreapp2.1, netcoreapp2.2, netcoreapp3.0, netcoreapp3.1, net5.0, net6.0, net7.0, net8.0, net9.0 }
Behavior If a value is specified for CSHARP_ANALYSIS_FRAMEWORK, CodeSonar will analyze the application with respect to the corresponding runtime environment. The affects the set of classes that will be treated as available in the runtime environment, the inheritance relationships of those classes, and the class semantics.

If no value is specified, CodeSonar will attempt to infer the appropriate runtime environment from the class versions of analyzed classes.

Languages C#
Factory Setting
  • CSHARP_ANALYSIS_FRAMEWORK =
Tags
  • Governs the Build/Analysis

Specifies how the C# build/analysis will determine the application's entry points: the methods that can be invoked by the runtime environment and that should be considered starting points of the analysis.

Type { ALL_ENTRIES, ONLY_EXPLICIT_ENTRIES, ONLY_STANDARD_ENTRIES, LIBRARY, ALL_METHODS }
Behavior
  • ALL_ENTRIES : treat all public and protected methods and constructors as entry points.
  • ONLY_EXPLICIT_ENTRIES: treat methods and constructors as entry points if and only if they are annotated as @EntryPoint.
  • ONLY_STANDARD_ENTRIES : only consider default entry points like main methods, Swing event handlers, and Android event handlers.
  • LIBRARY : treat all public and protected methods and constructors as entry points, and assume that non-final classes might be redefined in the future.
  • ALL_METHODS : treat all public, protected and private methods and constructors as entry points.
Languages C#
Factory Setting
  • CSHARP_ANALYSIS_ENTRY_POINTS_MODE = ALL_ENTRIES
Tags
  • Governs the Build/Analysis

Specifies whether or not the C# build/analysis will treat assertion statements as if they are executed.

Type { Yes, No }
Behavior
  • Yes : The analysis will treat assertion statements as if they are executed. Warnings can be reported in assertion code, and assertion side effects are considered by the analysis.
  • No : The analysis will proceed as if all assertions have been removed. Warnings will not be reported for any assertion code, and side effects from assertions will not be accounted for.
Languages C#
Factory Setting
  • CSHARP_ANALYSIS_ENABLE_ASSERTIONS = No
Tags
  • Governs the Build/Analysis

Specifies a timeout (in seconds) for the overall C# build/analysis.

Type non-negative integer
Behavior
  • integer N : if the C# Build/Analysis hasn't finished after N seconds, it will halt with an error message. No analysis results are produced in this case.
Notes The factory setting of 10800 corresponds to 3 hours.
Factory Setting
  • CSHARP_ANALYSIS_TIMEOUT = 10800
Tags
  • Analysis Time Limits

Specifies a timeout (in seconds) for the preprocessing phase of the C# build/analysis.

Type non-negative integer
Behavior
  • integer N : if the C# preprocessing hasn't finished after N seconds, it will halt with an error message. No analysis results are produced in this case.
Notes The factory setting of 600 corresponds to 10 minutes.
Factory Setting
  • CSHARP_ANALYSIS_PREPROCESSING_TIMEOUT = 600
Tags
  • Analysis Time Limits

Specifies whether or not the C# build/analysis will perform advanced checking for injection-related issues.

Type { Yes, No }
Behavior
  • Yes : Advanced checking for injection-related issues is performed. This requires more resources than the No setting, but provides results that account for the flow of tainted data within the program.
  • No : Only basic checking is performed for these warning classes. This has a lower resource cost than the Yes setting but may miss some vulnerabilities.
Notes Setting this to Yes will generally produce more false positives than setting to No.
Factory Setting
  • CSHARP_ANALYSIS_ADVANCED_INJECTION = No
Tags

Specifies options to the JVM that will execute the C# build/analysis.

Type string
Behavior The whole value of this parameter will be prepended to the list of JVM arguments that is used to start the C# analysis JVM. To specify multiple options, separate them with a space.
Languages C#
Notes A list of the available JVM options is available in the Oracle Java command line documentation, in section "Standard Options for Java".
Factory Setting
  • CSHARP_ANALYSIS_JVM_OPTIONS =
Tags
  • Governs the Build/Analysis

Customize the execution of the JVM that will execute the C# build/analysis launcher.

Type string
Behavior The whole value of this parameter will be prepended to the list of JVM arguments that is used to start the C# analysis launcher JVM. To specify multiple options, separate them with a space.
Languages C#
Notes A list of the available JVM options is available in the Oracle Java command line documentation, in section "Standard Options for Java".
Factory Setting
  • CSHARP_LAUNCHER_JVM_OPTIONS =
Tags
  • Governs the Build/Analysis

In combination with CSHARP_ANALYSIS_MEMORY_MANAGEMENT, specifies the maximum amount of memory that the C# build/analysis can use in megabytes (MiB).

Type <num>, where <num> is a non-negative integer.
Behavior The specified value is interpreted as an upper bound on memory.
  • When CSHARP_ANALYSIS_MEMORY_MANAGEMENT=ADAPTIVE or CSHARP_ANALYSIS_MEMORY_MANAGEMENT=SIMPLE, the specified value contributes to determining the memory limit specified when invoking the JVM for the C# build/analysis.
  • When CSHARP_ANALYSIS_MEMORY_MANAGEMENT=NONE, the specified value has no effect.

See CSHARP_ANALYSIS_MEMORY_MANAGEMENT for more information.

Languages C#
Factory Setting
  • CSHARP_ANALYSIS_MAX_MEMORY = 16384
Tags
  • Analysis resource/effort limit

Specifies the maximum amount of memory that the C# build/analysis launcher can use in megabytes (MiB).

Type <num>, where <num> is a non-negative integer.
Behavior The specified value is interpreted as an upper bound on memory.
Languages C#
Factory Setting
  • CSHARP_LAUNCHER_MEMORY = 1024
Tags
  • Analysis resource/effort limit

In combination with CSHARP_ANALYSIS_MAX_MEMORY, specifies how the C# build/analysis will manage its memory limit.

Type { ADAPTIVE, NONE, SIMPLE }
Behavior
  • ADAPTIVE : The JVM that executes the analysis is passed argument -Xmx <val>, where <val> is the lower of the value specified for CSHARP_ANALYSIS_MAX_MEMORY and the amount of memory currently available on the system.
  • NONE : No -Xmx option is passed to the JVM that executes the analysis. Memory management and garbage collection are completely handled by the Java runtime and the operating system. The value of CSHARP_ANALYSIS_MAX_MEMORY is ignored.
  • SIMPLE: The JVM that executes the analysis is passed argument -Xmx <val>, where <val> is the value specified for CSHARP_ANALYSIS_MAX_MEMORY.
Languages C#
Notes Setting this to ADAPTIVE usually leads to easier recovery in case of out of memory errors.
Factory Setting
  • CSHARP_ANALYSIS_MEMORY_MANAGEMENT = ADAPTIVE
Tags
  • Analysis resource/effort limit

Specifies the number of CPUs that the JVM executing the C# analysis is allowed to use.

Type integer in the range 1..<cores>, where <cores> is the total number of cores on the analysis machine.
Behavior If CSHARP_ANALYSIS_JVM_CONCURRENCY is set with CSHARP_ANALYSIS_JVM_CONCURRENCY=<num>, the active processor count of the JVM executing the C# analysis will be set to <num>.

If CSHARP_ANALYSIS_JVM_CONCURRENCY is not set, the number <num> of active processors to use is computed using the total number of cores available on the analysis machine and the settings of parameters ANALYSIS_SLAVES, MAX_ANALYSIS_SLAVES, and REQUEST_REMOTE_ANALYSIS_SLAVES, as follows.

  • if REQUEST_REMOTE_ANALYSIS_SLAVES=No and ANALYSIS_SLAVES=Auto, <num>=min(min(<cores>, 8), MAX_ANALYSIS_SLAVES)
  • otherwise, if REQUEST_REMOTE_ANALYSIS_SLAVES=No, <num>=min(ANALYSIS_SLAVES, MAX_ANALYSIS_SLAVES)
  • otherwise, <num>=min(min(<cores>, 4), MAX_ANALYSIS_SLAVES)
Notes A value between 4 and 8 is recommended.
Factory Setting
  • CSHARP_ANALYSIS_JVM_CONCURRENCY=
Tags
  • Analysis resource/effort limit

Specifies whether or not the C# taint analysis should trust data that originates from database queries, rather than treating it as tainted.

Type { Yes, No }
Behavior
  • Yes : data originating from database queries will be not be treated as tainted, and cannot cause a taint-related warning to be issued.
  • No : data originating from database queries will be treated as tainted. If any such data reaches a taint sink without being cleansed of the taint by a corresponding taint sanitizer, a warning will be issued.
Languages C#
Notes Data is considered to come from a database query if it originates from a field or method return value with the [com.juliasoft.julia.checkers.flows.UntrustedDatabase] attribute. While this attribute can be manually applied by users of the analysis, CodeSonar automatically applies it to some well-known library methods (see the C# taint source list).
Factory Setting
  • CSHARP_ANALYSIS_TRUST_DATABASE = No
Tags

Specifies whether or not the C# taint analysis should trust data that originates from the specific device running the application, rather than treating it as tainted.

Type { Yes, No }
Behavior
  • Yes : data originating from the device will be not be treated as tainted, and cannot cause a taint-related warning to be issued.
  • No : data originating from the device will be treated as tainted. If any such data reaches a taint sink without being cleansed of the taint by a corresponding taint sanitizer, a warning will be issued.
Languages C#
Notes Data is considered to come from the device the application is running on if it originates from a field or method return value with the [com.juliasoft.julia.checkers.flows.UntrustedDevice] attribute. While this attribute can be manually applied by users of the analysis, CodeSonar automatically applies it to some well-known library methods (see the C# taint source list).
Factory Setting
  • CSHARP_ANALYSIS_TRUST_DEVICE = No
Tags

Specifies whether or not the C# taint analysis should trust data that originates from the environment or from system properties, rather than treating it as tainted.

Type { Yes, No }
Behavior
  • Yes : data originating from the environment or from system properties will be not be treated as tainted, and cannot cause a taint-related warning to be issued.
  • No : data originating from the environment or from system properties will be treated as tainted. If any such data reaches a taint sink without being cleansed of the taint by a corresponding taint sanitizer, a warning will be issued.
Languages C#
Notes Data is considered to come from the environment or from system properties if it originates from a field or method return value with the [com.juliasoft.julia.checkers.flows.UntrustedEnvironment] attribute. While this attribute can be manually applied by users of the analysis, CodeSonar automatically applies it to some well-known library methods (see the C# taint source list).
Factory Setting
  • CSHARP_ANALYSIS_TRUST_ENVIRONMENT = Yes
Tags

Specifies whether or not the C# taint analysis should trust data that originates from external streams or sockets, rather than treating it as tainted.

Type { Yes, No }
Behavior
  • Yes : data originating from external streams or sockets will be not be treated as tainted, and cannot cause a taint-related warning to be issued.
  • No : data originating from external streams or sockets will be treated as tainted. If any such data reaches a taint sink without being cleansed of the taint by a corresponding taint sanitizer, a warning will be issued.
Languages C#
Notes Data is considered to come from an external stream or socket if it originates from a field or method return value with the [com.juliasoft.julia.checkers.flows.UntrustedExternalStreams] attribute. While this attribute can be manually applied by users of the analysis, CodeSonar automatically applies it to some well-known library methods (see the C# taint source list).
Factory Setting
  • CSHARP_ANALYSIS_TRUST_EXTERNAL_STREAMS = Yes

Specifies whether or not the C# taint analysis should trust data that originates from web requests or console input, rather than treating it as tainted.

Type { Yes, No }
Behavior
  • Yes : data originating from web requests or console input will be not be treated as tainted, and cannot cause a taint-related warning to be issued.
  • No : data originating from web requests or console input will be treated as tainted. If any such data reaches a taint sink without being cleansed of the taint by a corresponding taint sanitizer, a warning will be issued.
Languages C#
Notes Data is considered to be user input if it originates from a field or method return value with the [com.juliasoft.julia.checkers.flows.UntrustedUserInput] attribute. While this attribute can be manually applied by users of the analysis, CodeSonar automatically applies it to some well-known library methods (see the C# taint source list).
Factory Setting
  • CSHARP_ANALYSIS_TRUST_USER_INPUT = No
Tags

Specifies whether or not the C# build/analysis will collapse bytecode instructions that create objects of the same type inside the same class.

Type { Yes, No }
Behavior
  • Yes : all instructions inside the same class X that create objects of the same type Y are treated as the same instruction. In particular, all instances of Y created inside X are considered to be the same object.
  • No : all object creation instructions are treated as distinct.
Languages C#
Notes The loss of object sensitivity caused by setting this to Yes can lead to both false positives and false negatives but speeds up the analysis and reduces memory cost.

For sufficiently large analyzed applications - those with more than 300k reachable bytecode instructions - the C# analysis will always behave as if this option is set to Yes.

Factory Setting
  • CSHARP_ANALYSIS_MERGE_CREATION_POINTS = No
Tags

Specifies whether or not the C# build/analysis will track information about individual fields of each object.

Type { Yes, No }
Behavior
  • Yes : the C# analysis will track information about each field of each object.
  • No : for each object, the C# analysis will track one set of information covering all fields (that is, it treats the fields as interchangeable). In particular, if one field of an object O becomes tainted, the analysis will consider all fields of O to be tainted.
Languages C#
Notes Setting this to Yes will generally reduce the number of false positives, but uses more time and memory than setting to No.
Factory Setting
  • CSHARP_ANALYSIS_FIELD_SENSITIVE = Yes
Tags

For warning classes related to field visibility, specifies the field visibility types that will be considered by the warning class checks.

Type { PUBLIC, PROTECTED, PACKAGE, PRIVATE }
Behavior Warning classes that reason about field visibility inspect fields with visibility equal to, or less restrictive than, the value of this parameter.
  • PUBLIC : checks for the listed warning classes will only consider fields with public visibility.
  • PROTECTED : checks for the listed warning classes will consider fields with public or protected visibility.
  • PACKAGE checks for the listed warning classes will consider fields with public, protected, or package (no modifier) visibility.
  • PRIVATE : checks for the listed warning classes will consider fields of all visibility types: public, protected, package (no modifier), and private.
Languages C#
Factory Setting
  • CSHARP_ANALYSIS_FIELD_VISIBILITY = PROTECTED
Tags

For warning classes whose checks can involve additional supporting analyses, specifies whether or not those additional analyses should be skipped (generally in order to save time).

Type { Yes, No }
Behavior
  • Yes : checks for the listed warning classes will not incorporate additional supporting analyses such as reachability analysis and expression nullness checking. In situations where data from these additional analyses is required, worst-case assumptions will be applied.
  • No : checks for the listed warning classes will incorporate the additional supporting analyses.
Languages C#
Notes Setting this to Yes will speed up the analysis, but generally lead to more false positives.
Factory Setting
  • CSHARP_ANALYSIS_FAST_DEEP_CHECK = No
Tags

Specifies whether or not a preliminary "class initialization analysis" will be performed before checks for those warning classes that may benefit from it.

Type { Yes, No }
Behavior
  • Yes : checks for the listed warning classes will be preceded by a "class initialization analysis" to determine the locations at which a class is initialized (and so its static initializer is called).
  • No : the C# analysis will treat all accesses to class objects as possible class initialization points. This is an overapproximation: some of these accesses may be unreachable, or may occur after the class has already been initialized.
Languages C#
Notes Setting this to Yes can reduce the number of false positives, but increases analysis time.
Factory Setting
  • CSHARP_ANALYSIS_INITIALIZATION_CHECK = No
Tags

Specifies whether or not the analysis should treat all inputs received by the application as if they might be null.

Type { Yes, No }
Behavior
  • Yes : the analysis will account for the possibility of null values in unwritten fields, values returned by library methods, and parameters of methods selected as entry points.
  • No : the analysis will assume that such values are always non-null.
Languages C#
Notes A Yes setting represents the worst-case scenario for nullness issues. There will generally lead to a higher number of warnings than a No setting, possibly including false positives.
Factory Setting
  • CSHARP_ANALYSIS_DEEP_NULLNESS_CONSERVATIVE_CHECK = No
Tags

Specifies how checks for concurrency warning classes should interpret [GuardedBy] attributes.

Type { byValue, byName }
Behavior For example, consider the following code.
   [GuardedBy(x)]
   Object a; // a must be guarded by x
   Object b; // b doesn't have to be guarded
   // ...
   b = a;

If CSHARP_ANALYSIS_CONCURRENCY_GUARDS_MODE=byName, this code fragment will not cause the analysis to infer any guard requirements for b.

If CSHARP_ANALYSIS_CONCURRENCY_GUARDS_MODE=byValue, the analysis will infer that b must be guarded by x at all points after the assignment b=a.

Languages C#
Factory Setting
  • CSHARP_ANALYSIS_CONCURRENCY_GUARDS_MODE = byName
Tags

When CSHARP_ANALYSIS_CONCURRENCY_GUARDS_MODE=byValue, specifies whether or not the analysis will treat method calls on guarded variables as dereferences of those variables.

Type { Yes, No }
Behavior If CSHARP_ANALYSIS_CONCURRENCY_GUARDS_MODE=byValue, behavior is as follows.
  • Yes : method calls Obj.meth() are considered to be dereferences of the method receiver Obj, and this information is used in computing inferred [GuardedBy] attributes for Obj. Specifically, the analysis will not infer a [GuardedBy] attribute for Obj unless it can infer the same attribute for meth().
  • No : method calls are not considered to be dereferences of the method receiver. This is the factory setting, since instance method calls only access the class tag of the value, which is constant in C# and cannot be involved in a data race.

If CSHARP_ANALYSIS_CONCURRENCY_GUARDS_MODE=byName, the setting of this parameter has no effect.

Languages C#
Notes Setting this to Yes will generally lead to fewer inferred [GuardedBy] attributes.
Factory Setting
  • CSHARP_ANALYSIS_CONCURRENCY_CALLS = No
Tags

Specifies whether or not CodeSonar should perform stricter checking for certain C# warning classes.

Type { Yes, No }
Behavior
  • Yes : the analysis will perform stricter checking for the listed warning classes.
  • No : this additional checking will not be performed.
Languages C#
Notes Refer to the individual warning class documentation pages for information about the precise effects of this parameter on each class.

Setting this to Yes will generally lead to fewer false negative warnings, but more false positives and a longer analysis time.

The clone Subclass of Non-clonable (C#) and Inadequate Salt (C#) classes can only be enabled if this is set to Yes.

Factory Setting
  • CSHARP_ANALYSIS_STRICT_MODE = No
Tags

Specifies whether or not CodeSonar should perform more pedantic checking for certain C# warning classes.

Type { Yes, No }
Behavior
  • Yes : the analysis will perform more pedantic checking for the listed warning classes.
  • No : this additional checking will not be performed.
Languages C#
Notes Refer to the individual warning class documentation pages for information about the precise effects of this parameter on each class.

Setting this to Yes will generally lead to fewer false negative warnings, but more false positives and a longer analysis time. There may be many more warnings than with a No setting.

The Unsafe Base64 Encoding (C#) class can only be enabled if this is set to Yes.

Factory Setting
  • CSHARP_ANALYSIS_PEDANTIC_MODE = No
Tags

Use the IDENTIFIER_NAMING_* family of parameters to define naming rules that identifiers of a particular ID_KIND must not violate. If a naming rule is violated, a Naming Style Violation warning will be issued.

<ID_KIND> One of: { ABSTRACT_CLASS, CLASS, CLASS_CONSTANT, CLASS_MEMBER, CLASS_METHOD, CONSTANT, CONSTANT_MEMBER, CONSTANT_PARAMETER, CONSTANT_POINTER_PARAMETER, CONSTEXPR_FUNCTION, CONSTEXPR_METHOD, CONSTEXPR_VARIABLE, ENUM, ENUM_CONSTANT, FUNCTION, GLOBAL_CONSTANT, GLOBAL_CONSTANT_POINTER, GLOBAL_FUNCTION, GLOBAL_POINTER, GLOBAL_VARIABLE, INLINE_NAMESPACE, LOCAL_CONSTANT, LOCAL_CONSTANT_POINTER, LOCAL_POINTER, LOCAL_VARIABLE, MACRO_DEFINITION, MEMBER, METHOD, NAMESPACE, PARAMETER, PARAMETER_PACK, POINTER_PARAMETER, PRIVATE_MEMBER, PRIVATE_METHOD, PROTECTED_MEMBER, PROTECTED_METHOD, PUBLIC_MEMBER, PUBLIC_METHOD, STATIC_CONSTANT, STATIC_VARIABLE, STRUCT, TEMPLATE_PARAMETER, TEMPLATE_TEMPLATE_PARAMETER, TYPEDEF, TYPE_ALIAS, TYPE_TEMPLATE_PARAMETER, UNION, VALUE_TEMPLATE_PARAMETER, VARIABLE, VIRTUAL_METHOD }
Type
  • IDENTIFIER_NAMING_<ID_KIND>_PREFIX: string
  • IDENTIFIER_NAMING_<ID_KIND>_SUFFIX: string
  • IDENTIFIER_NAMING_<ID_KIND>_CASE: { aNy_CasE, lower_case, UPPER_CASE, camelBack, CamelCase, Camel_Snake_Case, camel_Snake_Back }
  • IDENTIFIER_NAMING_<ID_KIND>_REGEX: Boost 'POSIX Extended Regular Expression'
Behavior These parameters are used to specify naming rules that identifiers of a particular kind must not violate. If an identifier is found to be in violation of any of the naming rules specified for that kind, a warning will be issued.
  • IDENTIFIER_NAMING_<ID_KIND>_PREFIX is a string. If defined, all identifiers of the selected kind must begin with the prefix; otherwise, a warning will be issued. Note that if an identifier matches a prefix rule, the matched portion of the identifier will be exempt from consideration of any suffix or case rule for that identifier kind.
  • IDENTIFIER_NAMING_<ID_KIND>_SUFFIX is a string. If defined, all identifiers of the selected kind must end with the suffix; otherwise, a warning will be issued. Note that if an identifier matches a suffix rule, the matched portion of the identifier will be exempt from consideration of any case rule for that identifier kind.
  • IDENTIFIER_NAMING_<ID_KIND>_CASE is one of the following strings: { aNy_CasE, lower_case, UPPER_CASE, camelBack, CamelCase, Camel_Snake_Case, camel_Snake_Back }. Each string is a mnemonic for the following regular expressions:
      aNy_CasE = ^.*$
      lower_case = ^[a-z][a-z0-9]*(_+[a-z0-9]+)*
      UPPER_CASE = ^[A-Z][A-Z0-9]*(_+[A-Z0-9]+)*
      camelBack = ^[a-z][a-zA-Z0-9]*$
      CamelCase = ^[A-Z][a-zA-Z0-9]*$
      Camel_Snake_Case = ^[A-Z][a-z0-9]*(_[A-Z][a-z0-9]*)*
      camel_Snake_Back = ^[a-z][a-z0-9]*(_[A-Z][a-z0-9]*)*

If defined, all identifiers of the selected kind must match the case rule; otherwise a warning will be issued.

  • IDENTIFIER_NAMING_<ID_KIND>_REGEX is a regular expression. If defined, all identifiers of the selected kind must match at least one of the provided regular expressions; otherwise, a warning will be issued. Note that multiple regex rules may be specified for a given identifier kind using the += operator. The set of regular expressions specified for a given kind are concatenated together into a single alternation of the form ( regex1 | regex2 | ... | regexn), which each identifier of the selected kind is matched against. Note that regex matching employs boolean OR logic, not boolean AND logic. In order for a match to occur, the regular expression must match the whole identifier starting from the first character and exhausting the whole string. For example, the regular expression [a-z].* will match the identifier aFunc but not the identifier _aFunc, as the latter matches only the substring aFunc but not the leading underscore.
Languages C/C++
Notes Use the += operator to define a regex rule. Use the = operator for all other rules.

STRUCT and CLASS identifier kinds are somewhat interchangeable; STRUCT rules are applied to CLASS identifiers in the absence of CLASS rules, and vice versa.

Prefix, suffix, and case rules are matched greedily in that order. For example, if an identifier matches a prefix rule, the matched portion of the identifier will be removed from the identifier before proceeding to match any suffix or case rule. Regex rules, however, are matched independently of any prefix, suffix, or case rules. For example, if a prefix rule and a regex rule have been defined for a given identifier kind, the matching of the prefix rule will have no impact on the matching of the regex rule and vice versa.

Depending on how a regex is specified and the identifier string it is being matched against, a Miscellaneous Error may be issued to the hub if the underlying call to boost::regex_match() throws an exception due to the complexity of matching the regular expression exceeding predefined bounds. If this occurs, refactor the regular expression to make each choice made by the state machine unambiguous thereby removing the possibility of any exponential backtracking during the matching operation.

Examples:

     IDENTIFIER_NAMING_GLOBAL_FUNCTION_REGEX += .*func.*
     IDENTIFIER_NAMING_GLOBAL_FUNCTION_PREFIX = F_
     IDENTIFIER_NAMING_GLOBAL_FUNCTION_SUFFIX = _F
     IDENTIFIER_NAMING_GLOBAL_FUNCTION_CASE = camel_Snake_Back
     IDENTIFIER_NAMING_GLOBAL_FUNCTION_REGEX += [^0-9]*
     IDENTIFIER_NAMING_VARIABLE_PREFIX = G_
     IDENTIFIER_NAMING_VARIABLE_SUFFIX = G_
     IDENTIFIER_NAMING_STRUCT_REGEX = ^[a-z]
     IDENTIFIER_NAMING_STRUCT_REGEX = [A-Z]$
     IDENTIFIER_NAMING_ENUM_CASE = UPPER_CASE

defines naming rules for GLOBAL_FUNCTION, VARIABLE, STRUCT, and ENUM identifiers.

     void F_myfunc_Foo_F(void); /* Matches: Although the case rule camel_Snake_Back is defined,
                                   which includes the requirement that the identifier must start
                                   with a lowercase letter, the prefix is matched first, followed
                                   by the suffix, and these matched portions of the identifier
                                   are removed before matching against the case rule. The remaining
                                   portion of the identifier, myfunc_Foo, matches the case rule. */
     void F__myfunc_Foo_F(void); /* 'Invalid naming style for global function
                                    F__myfunc_Foo_F; case does not match
                                    camel_Snake_Back.' After matching the prefix F_,
                                    the remaining unmatched portion of the identifier,
                                    _myfunc_Foo_F, is matched against the case and suffix
                                    rules. _myfunc_Foo_F does not match the case rule
                                    camel_Snake_Back because it does not start with a
                                    lowercase letter. */
     void F_func1_F(void); /* Matches: Although this violates the second regex rule by containing
                              a digit, it matches at least one of the other regex rules, in this
                              case the first one, so no warning is issued. */
     int G_myintG_ = 0; /* Matches */
     int G_ = 1; /* 'Invalid naming style for variable G_; suffix does not match G_.'
                    After matching the prefix G_, the remaining unmatched portion of the identifier
                    is the empty string, which does not match the suffix rule. */
     class MyClass {
         private:
         int foo;
         int bar;
     }; /* 'Invalid naming style for struct MyClass; does not match the regular expression [A-Z]$.'
           Note two things:
           1). Although MyClass is a class identifier, the struct rules are applied to it in the
               absence of class rules.
           2). The first regex rule for structs was overwritten by the second rule;
               the second rule was specified using = instead of +=. */
     enum _DAYS_OF_THE_WEEK { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY};
     /* 'Invalid naming style for enum _DAYS_OF_THE_WEEK; case does not match UPPER_CASE.'
      * Although all letters are uppercase, UPPER_CASE has the additional requirement that
      * the identifier must start with an uppercase character, not an underscore.
      */
Tags

Specifies whether Object Slicing warnings should be issued only in the case where the derived class has additional data members not found in the converted-to base class.

Type { Yes, No }
Behavior
  • Yes : Warning is not issued if derived class doesn't have additional data members.
  • No : Warning is issued even when derived class doesn't have additional data members.
Languages C++
Factory Setting
  • OBJSLICE_WARN_NEW_MEMBER_ONLY = Yes
Tags

Specifies certain functions by name that should always be expanded when CALL_SITE_EXPANSIONS is not None.

Type string
Behavior This is the analysis' version of inlining a function. During refinement of a pathy warning, CodeSonar will always expand functions that have one of these names. In some cases, this can help CodeSonar rule out potential false positives. In other cases, it will cause blue "[+]" icons to appear in the margin of warning reports adjacent to calls to these named functions.

The provided string will be matched against the function's verbose name [C++: procedure::verbose_name() | Python: procedure.verbose_name() | C: cs_pdg_procedure_name()] .

Languages C/C++
Tags
  • Analysis resource/effort limit

Specifies the set of functions that are guaranteed to set errno when they encounter an error condition.

Type string
Behavior Functions that are in this set are expected to set errno when they encounter an error.
  • A Missing Test of Error Code warning is issued (if enabled) when a call to one of these functions is succeeded by a test of errno against zero.
  • An Inappropriate Test of Error Code warning is issued (if enabled) when the value of errno is tested and the last function call was NOT to one of these functions.
Languages C/C++
Factory Settings
  • ERRNO_SETTING_FUNCTIONS += ftell
  • ERRNO_SETTING_FUNCTIONS += fgetpos
  • ERRNO_SETTING_FUNCTIONS += fsetpos
  • ERRNO_SETTING_FUNCTIONS += fgetwc
  • ERRNO_SETTING_FUNCTIONS += fputwc
  • ERRNO_SETTING_FUNCTIONS += strtoimax
  • ERRNO_SETTING_FUNCTIONS += strtoumax
  • ERRNO_SETTING_FUNCTIONS += strtol
  • ERRNO_SETTING_FUNCTIONS += strtoul
  • ERRNO_SETTING_FUNCTIONS += strtoll
  • ERRNO_SETTING_FUNCTIONS += strtoull
  • ERRNO_SETTING_FUNCTIONS += strtof
  • ERRNO_SETTING_FUNCTIONS += strtod
  • ERRNO_SETTING_FUNCTIONS += strtold
  • ERRNO_SETTING_FUNCTIONS += wcstoimax
  • ERRNO_SETTING_FUNCTIONS += wcstoumax
  • ERRNO_SETTING_FUNCTIONS += wcstol
  • ERRNO_SETTING_FUNCTIONS += wcstoul
  • ERRNO_SETTING_FUNCTIONS += wcstoll
  • ERRNO_SETTING_FUNCTIONS += wcstoull
  • ERRNO_SETTING_FUNCTIONS += wcstof
  • ERRNO_SETTING_FUNCTIONS += wcstod
  • ERRNO_SETTING_FUNCTIONS += wcstold
  • ERRNO_SETTING_FUNCTIONS += wcrtomb
  • ERRNO_SETTING_FUNCTIONS += wcsrtombs
  • ERRNO_SETTING_FUNCTIONS += mbrtowc
Tags

Specifies the size limit for a socket's listen queue.

Type integer
Behavior The size of a socket's listen queue is set to this value. If this value is negative, the listen queue size is zero. If this value exceeds the system's SOMAXCONN value, the message queue size is SOMAXCONN.
Notes If this value is not set, the message queue will be the smaller of 65535 or the system's SOMAXCONN value.

This value is passed to the operating system's listen function when creating server sockets for parallel parsing and analysis. See related configuration options ANALYSIS_SLAVES, DAEMON_SLAVES.

Factory Setting
  • MAX_SOCKET_LISTEN_BACKLOG = 65535

The threshold below which the cases in a switch statement are too sparse to trigger a switch With Non-enum Expression warning.

Type integer
Behavior If case label density in a switch statement is below this threshold, a switch With Non-enum Expression warning will not be issued for that switch statement even if its controlling expression does not have enumeration type.

Let L be the set of all case labels in the switch statement, excluding default, ranges, and character constants.

Then case label density is:

  100 * cardinality(L) / (max(L) - min(L) + 1)
Notes See also SWITCH_LABEL_DENSITY_THRESHOLD.

See the switch With Non-enum Expression documentation for information on enabling this warning class.

Factory Setting
  • SWITCH_LABEL_DENSITY_THRESHOLD = 80
Tags

The threshold below which a switch statement has too few cases to trigger switch With Non-enum Expression warning.

Type integer
Behavior If a switch statement has fewer than this many case labels, a switch With Non-enum Expression warning will not be issued for that switch statement even if its controlling expression does not have enumeration type.
Notes Case labels of the following kinds are not included in the count for SWITCH_LABEL_CARDINALITY_THRESHOLD.
  • default
  • ranges
  • character constants

See also SWITCH_LABEL_DENSITY_THRESHOLD.

See the switch With Non-enum Expression documentation for information on enabling this warning class.

Factory Setting
  • SWITCH_LABEL_CARDINALITY_THRESHOLD = 3
Tags

Specifies a comment size threshold for reporting Commented-out Code warnings.

Type positive integer
Behavior If a comment contains fewer than this many characters (excluding characters deemed to be part of comment syntax), then that comment is not included in checks for the Commented-out Code warning class.

More information on comment character counts is provided in the documentation for COMMENTED_OUT_CODE_MIN_RATIO / COMMENTED_OUT_CODE_MAX_RATIO .

Notes Comments that are on contiguous lines are treated as a single comment.

See also COMMENTED_OUT_CODE_MIN_RATIO, COMMENTED_OUT_CODE_MAX_RATIO.

Factory Setting
  • COMMENTED_OUT_CODE_SIZE_THRESHOLD = 18
Tags

Specify upper and lower bounds on the "operator"/"non-operator" character ratio that will be treated as indicating the presence of code for Commented-out Code checks.

Type real number greater than 0
Behavior A Commented-out Code warning will only be issued for a comment C if
  COMMENTED_OUT_CODE_MIN_RATIO < Cratio < COMMENTED_OUT_CODE_MAX_RATIO

where:

  • OpC is the number of operator characters in C.
  • NopC is the number of non-operator characters in C.
  • Cratio = OpC / NopC
Notes Comment character counts are performed as follows.
  • Certain characters are deemed to be part of the comment syntax. These include /* , */ , and // , along with * characters at the beginning of a line. They are considered neither "operator characters" nor "non-operator characters".
  • "operator characters" are the non-alphanumeric characters that appear in C and C++ tokens, minus those that are likely to appear as punctuation characters in regular prose. A contiguous sequence of the same operator character is treated as a single operator character. Characters deemed to be part of the comment syntax are not included in the count of operator characters.
  • "non-operator characters" are all non-whitespace characters that are neither "operator characters" nor part of the comment syntax. The count of non-operator characters starts with a value of 1.

Comments that are on contiguous lines are treated as a single comment.

Increasing COMMENTED_OUT_CODE_MAX_RATIO increases the risk of reporting false positives for comments that are ASCII art.

Decreasing COMMENTED_OUT_CODE_MIN_RATIO increases the risk of false positives for small comments that contain mostly prose.

See also COMMENTED_OUT_CODE_SIZE_THRESHOLD.

Factory Settings
  • COMMENTED_OUT_CODE_MIN_RATIO = 0.19
  • COMMENTED_OUT_CODE_MAX_RATIO = 4.0
Tags

Specifies types that should be treated as opaque by the Encapsulation Violation checker.

Type Boost 'POSIX Extended Regular Expression'
Behavior If the name of a type matches a OPAQUE_TYPE_COPYABLE_REGEXES rule or OPAQUE_TYPE_NONCOPYABLE_REGEXES rule, the type is treated as "opaque" for the purpose of the Encapsulation Violation warning class.

If a type T is treated as opaque, then:

  • The internal structure of a value of type T cannot be accessed.
  • A value of type T cannot be compared with == (even to another value of type T).
  • A value of type T can only be passed as a function argument if the function is declared to take a parameter of type T in that position.
  • A value of type T* can only be passed as an argument to a library function if the function is declared to take a parameter of type T* in that position. This restriction does not apply to non-library functions (that is, those that do not have a CodeSonar library model).

OPAQUE_TYPE_COPYABLE_REGEXES and OPAQUE_TYPE_NONCOPYABLE_REGEXES differ only in their treatment of copying.

  • If the name of a type matches a OPAQUE_TYPE_COPYABLE_REGEXES rule, values of that type may be copied using assignment operators.
  • If the name of a type matches a OPAQUE_TYPE_NONCOPYABLE_REGEXES rule, values of that type may NOT be copied using assignment operators.
Notes The factory settings for these parameters include type names specified for C11 thread library types thrd_t, tss_t, cnd_t and mtx_t so will find violations of Misra 2012 Rule 22.12.
Factory Settings
  • OPAQUE_TYPE_COPYABLE_REGEXES += ^(thrd_t|tss_t)$
  • OPAQUE_TYPE_NONCOPYABLE_REGEXES += ^(cnd_t|mtx_t)$
  • OPAQUE_TYPE_COPYABLE_REGEXES += ^(jmp_buf|mbstate_t)$
  • OPAQUE_TYPE_NONCOPYABLE_REGEXES += ^(sem_t|FILE|DIR|DBM|regex_t)$
  • OPAQUE_TYPE_COPYABLE_REGEXES += ^(pthread_t|pthread_attr_t|pthread_key_t|pthread_condattr_t|pthread_mutexattr_t|pthread_rwlockattr_t)$
  • OPAQUE_TYPE_NONCOPYABLE_REGEXES += ^(pthread_mutex_t|pthread_cond_t|pthread_rwlock_t|pthread_barrier_t|pthread_spinlock_t)$
  • OPAQUE_TYPE_COPYABLE_REGEXES += ^(struct msg_q|struct mem_part)$
  • OPAQUE_TYPE_NONCOPYABLE_REGEXES += ^struct semaphore$
  • OPAQUE_TYPE_NONCOPYABLE_REGEXES += ^struct _RTL_CRITICAL_SECTION$
  • OPAQUE_TYPE_NONCOPYABLE_REGEXES += ^(PRLock|PRMonitor|PRJob|PRThread|PRThreadPool)$
  • OPAQUE_TYPE_COPYABLE_REGEXES += ^(NU_TASK|NU_MAILBOX|NU_QUEUE|NU_PIPE|NU_SEMAPHORE|NU_EVENT_GROUP|NU_HISR|NU_TIMER|NU_DRIVER|NU_PARTITION_POOL|NU_MEMORY_POOL|NU_PROTECT)$
  • OPAQUE_TYPE_NONCOPYABLE_REGEXES += ^NU_SEMAPHORE$
Tags

Specifies the APIs that will be listed in warning report description boxes for Encapsulation Violation warnings.

Type A Boost 'POSIX Extended Regular Expression' followed by a space and then a semicolon-separated list of strings
Behavior A rule of the form
  OPAQUE_TYPE_ALLOWED_APIS  += <typename_regex> <stringlist>

Specifies that a Encapsulation Violation warning for a type whose name matches <typename_regex> will have a warning description box that cites <stringlist> as the list of APIs that can be called on instances of that type.

Notes This parameter is not used to determine whether the warning is triggered; it is only used in the display of the warning.

For example,

  OPAQUE_TYPE_ALLOWED_APIS += ^mytype$ int mytype_reallocate( thrd_t *thr, thrd_start_t func, void *arg );int thrd_detach( thrd_t thr );int thrd_join( thrd_t thr, int *res );int thrd_equal( thrd_t lhs, thrd_t rhs )

specifies that when an Encapsulation Violation warning is issued for an inappropriate call with type mytype, the special warning description box will include the following list of functions that are permitted to have a thrd_t argument or return value.

  • int thrd_create( thrd_t *thr, thrd_start_t func, void *arg )
  • int thrd_detach( thrd_t thr )
  • int thrd_join( thrd_t thr, int *res )
  • int thrd_equal( thrd_t lhs, thrd_t rhs )
Factory Settings
  • OPAQUE_TYPE_ALLOWED_APIS += ^thrd_t$ int thrd_create( thrd_t *thr, thrd_start_t func, void *arg );int thrd_detach( thrd_t thr );int thrd_join( thrd_t thr, int *res );int thrd_equal( thrd_t lhs, thrd_t rhs )
  • OPAQUE_TYPE_ALLOWED_APIS += ^mtx_t$ int mtx_init( mtx_t* mutex, int type );int mtx_lock( mtx_t* mutex );int mtx_trylock( mtx_t *mutex );int mtx_timedlock( mtx_t *restrict mutex, const struct timespec *restrict time_point );int mtx_unlock( mtx_t *mutex );int cnd_wait( cnd_t* cond, mtx_t* mutex );int cnd_timedwait( cnd_t* restrict cond, mtx_t* restrict mutex, const struct timespec* restrict time_point )
  • OPAQUE_TYPE_ALLOWED_APIS += ^cnd_t$ int cnd_init( cnd_t* cond );int cnd_broadcast( cnd_t *cond );void cnd_destroy( cnd_t* cond );int cnd_signal( cnd_t *cond );int cnd_wait( cnd_t* cond, mtx_t* mutex );int cnd_timedwait( cnd_t* restrict cond, mtx_t* restrict mutex, const struct timespec* restrict time_point )
  • OPAQUE_TYPE_ALLOWED_APIS += ^tss_t$ int tss_create( tss_t* tss_key, tss_dtor_t destructor );void tss_delete( tss_t tss_id );void *tss_get( tss_t tss_key );int tss_set( tss_t tss_id, void *val )
  • OPAQUE_TYPE_ALLOWED_APIS += ^DIR$ DIR *opendir(const char *name);DIR *fdopendir(int fd);int closedir(DIR *dirp);int dirfd(DIR *dirp);struct dirent *readdir(DIR *dirp);void rewinddir(DIR *dirp);void seekdir(DIR *dirp, long loc);long telldir(DIR *dirp)
  • OPAQUE_TYPE_ALLOWED_APIS += ^DBM$ int dbm_clearerr(DBM *db);void dbm_close(DBM *db);int dbm_delete(DBM *db, datum key);int dbm_error(DBM *db);datum dbm_fetch(DBM *db, datum key);datum dbm_firstkey(DBM *db);datum dbm_nextkey(DBM *db);DBM *dbm_open(const char *file, int open_flags, mode_t file_mode);int dbm_store(DBM *db, datum key, datum content, int store_mode)
  • OPAQUE_TYPE_ALLOWED_APIS += ^jmp_buf$ int setjmp(jmp_buf env);[[noreturn]] void longjmp(jmp_buf env, int val)
  • OPAQUE_TYPE_ALLOWED_APIS += ^pthread_t$ int pthread_cancel(pthread_t); int pthread_create(pthread_t *restrict, const pthread_attr_t *restrict, void *(*)(void*), void *restrict); int pthread_detach(pthread_t); int pthread_equal(pthread_t, pthread_t); int pthread_getcpuclockid(pthread_t, clockid_t *); int pthread_getschedparam(pthread_t, int *restrict, struct sched_param *restrict); int pthread_join(pthread_t, void **); pthread_t pthread_self(void); int pthread_setschedparam(pthread_t, int, const struct sched_param *); int pthread_setschedprio(pthread_t, int)
  • OPAQUE_TYPE_ALLOWED_APIS += ^pthread_attr_t$ int pthread_attr_destroy(pthread_attr_t *); int pthread_attr_getdetachstate(const pthread_attr_t *, int *); int pthread_attr_getguardsize(const pthread_attr_t *restrict, size_t *restrict); int pthread_attr_getinheritsched(const pthread_attr_t *restrict, int *restrict); int pthread_attr_getschedparam(const pthread_attr_t *restrict, struct sched_param *restrict); int pthread_attr_getschedpolicy(const pthread_attr_t *restrict, int *restrict); int pthread_attr_getscope(const pthread_attr_t *restrict, int *restrict); int pthread_attr_getstack(const pthread_attr_t *restrict, void **restrict, size_t *restrict); int pthread_attr_getstacksize(const pthread_attr_t *restrict, size_t *restrict); int pthread_attr_init(pthread_attr_t *); int pthread_attr_setdetachstate(pthread_attr_t *, int); int pthread_attr_setguardsize(pthread_attr_t *, size_t); int pthread_attr_setinheritsched(pthread_attr_t *, int); int pthread_attr_setschedparam(pthread_attr_t *restrict, const struct sched_param *restrict); int pthread_attr_setschedpolicy(pthread_attr_t *, int); int pthread_attr_setscope(pthread_attr_t *, int); int pthread_attr_setstack(pthread_attr_t *, void *, size_t); int pthread_attr_setstacksize(pthread_attr_t *, size_t); int pthread_create(pthread_t *restrict, const pthread_attr_t *restrict, void *(*)(void*), void *restrict); int pthread_detach(pthread_t)
  • OPAQUE_TYPE_ALLOWED_APIS += ^pthread_key_t$ void *pthread_getspecific(pthread_key_t); int pthread_key_create(pthread_key_t *, void (*)(void*)); int pthread_key_delete(pthread_key_t);int pthread_setspecific(pthread_key_t, const void *)
  • OPAQUE_TYPE_ALLOWED_APIS += ^pthread_mutex_t$ int pthread_mutex_consistent(pthread_mutex_t *); int pthread_mutex_destroy(pthread_mutex_t *);int pthread_mutex_getprioceiling(const pthread_mutex_t *restrict, int *restrict); int pthread_mutex_init(pthread_mutex_t *restrict, const pthread_mutexattr_t *restrict); int pthread_mutex_lock(pthread_mutex_t *); int pthread_mutex_setprioceiling(pthread_mutex_t *restrict, int, int *restrict); int pthread_mutex_timedlock(pthread_mutex_t *restrict, const struct timespec *restrict); int pthread_mutex_trylock(pthread_mutex_t *); int pthread_mutex_unlock(pthread_mutex_t *);int pthread_cond_timedwait(pthread_cond_t *restrict, pthread_mutex_t *restrict, const struct timespec *restrict); int pthread_cond_wait(pthread_cond_t *restrict, pthread_mutex_t *restrict)
  • OPAQUE_TYPE_ALLOWED_APIS += ^pthread_cond_t$ int pthread_cond_broadcast(pthread_cond_t *); int pthread_cond_destroy(pthread_cond_t *); int pthread_cond_init(pthread_cond_t *restrict, const pthread_condattr_t *restrict); int pthread_cond_signal(pthread_cond_t *); int pthread_cond_timedwait(pthread_cond_t *restrict, pthread_mutex_t *restrict, const struct timespec *restrict); int pthread_cond_wait(pthread_cond_t *restrict, pthread_mutex_t *restrict)
  • OPAQUE_TYPE_ALLOWED_APIS += ^pthread_rwlock_t$ int pthread_rwlock_destroy(pthread_rwlock_t *); int pthread_rwlock_init(pthread_rwlock_t *restrict, const pthread_rwlockattr_t *restrict); int pthread_rwlock_rdlock(pthread_rwlock_t *); int pthread_rwlock_timedrdlock(pthread_rwlock_t *restrict, const struct timespec *restrict); int pthread_rwlock_timedwrlock(pthread_rwlock_t *restrict, const struct timespec *restrict); int pthread_rwlock_tryrdlock(pthread_rwlock_t *); int pthread_rwlock_trywrlock(pthread_rwlock_t *); int pthread_rwlock_unlock(pthread_rwlock_t *); int pthread_rwlock_wrlock(pthread_rwlock_t *)
  • OPAQUE_TYPE_ALLOWED_APIS += ^pthread_barrier_t$ int pthread_barrier_destroy(pthread_barrier_t *); int pthread_barrier_init(pthread_barrier_t *restrict, const pthread_barrierattr_t *restrict, unsigned); int pthread_barrier_wait(pthread_barrier_t *); int pthread_barrierattr_destroy(pthread_barrierattr_t *); int pthread_barrierattr_getpshared(const pthread_barrierattr_t *restrict, int *restrict); int pthread_barrierattr_init(pthread_barrierattr_t *); int pthread_barrierattr_setpshared(pthread_barrierattr_t *, int)
  • OPAQUE_TYPE_ALLOWED_APIS += ^pthread_condattr_t$ int pthread_condattr_destroy(pthread_condattr_t *); int pthread_condattr_getclock(const pthread_condattr_t *restrict, clockid_t *restrict); int pthread_condattr_getpshared(const pthread_condattr_t *restrict, int *restrict); int pthread_condattr_init(pthread_condattr_t *); int pthread_condattr_setclock(pthread_condattr_t *, clockid_t); int pthread_condattr_setpshared(pthread_condattr_t *, int)
  • OPAQUE_TYPE_ALLOWED_APIS += ^pthread_mutexattr_t$ int pthread_mutexattr_destroy(pthread_mutexattr_t *); int pthread_mutexattr_getprioceiling(const pthread_mutexattr_t *restrict, int *restrict); int pthread_mutexattr_getprotocol(const pthread_mutexattr_t *restrict, int *restrict); int pthread_mutexattr_getpshared(const pthread_mutexattr_t *restrict, int *restrict); int pthread_mutexattr_getrobust(const pthread_mutexattr_t *restrict, int *restrict); int pthread_mutexattr_gettype(const pthread_mutexattr_t *restrict, int *restrict); int pthread_mutexattr_init(pthread_mutexattr_t *); int pthread_mutexattr_setprioceiling(pthread_mutexattr_t *, int); int pthread_mutexattr_setprotocol(pthread_mutexattr_t *, int); int pthread_mutexattr_setpshared(pthread_mutexattr_t *, int); int pthread_mutexattr_setrobust(pthread_mutexattr_t *, int); int pthread_mutexattr_settype(pthread_mutexattr_t *, int)
  • OPAQUE_TYPE_ALLOWED_APIS += ^pthread_rwlockattr_t$ int pthread_rwlockattr_destroy(pthread_rwlockattr_t *); int pthread_rwlockattr_getpshared(const pthread_rwlockattr_t *restrict, int *restrict); int pthread_rwlockattr_init(pthread_rwlockattr_t *); int pthread_rwlockattr_setpshared(pthread_rwlockattr_t *, int)
  • OPAQUE_TYPE_ALLOWED_APIS += ^pthread_spinlock_t$ int pthread_spin_destroy(pthread_spinlock_t *); int pthread_spin_init(pthread_spinlock_t *, int); int pthread_spin_lock(pthread_spinlock_t *); int pthread_spin_trylock(pthread_spinlock_t *); int pthread_spin_unlock(pthread_spinlock_t *)
  • OPAQUE_TYPE_ALLOWED_APIS += ^struct msg_q$ typedef struct msg *MSG_Q_ID;MSG_Q_ID msgQCreate(int maxMsgs, int maxMsgLength, int options);STATUS msgQDelete(MSG_Q_ID msgQId); STATUS msgQSend(MSG_Q_ID msgQId, char * buffer, UINT nBytes, int timeout, int priority); int msgQReceive(MSG_Q_ID msgQId, char * buffer, UINT maxNBytes, int timeout);int msgQNumMsgs(MSG_Q_ID msgQId)
  • OPAQUE_TYPE_ALLOWED_APIS += ^struct mem_part$ typedef struct mem_part *PART_ID; PART_ID memPartCreate(char *pPool, unsigned poolSize); STATUS memPartAddToPool(PART_ID partId, char *pPool, unsigned poolSize); void *memPartAlignedAlloc(PART_ID partId, unsigned nBytes, unsigned alignment); void *memPartAlloc(PART_ID partId, unsigned nBytes); STATUS memPartFree(PART_ID partId, char *pBlock); void memAddToPool(char *pPool, unsigned poolSize)
  • OPAQUE_TYPE_ALLOWED_APIS += ^struct semaphore$ typedef struct semaphore *SEM_ID; STATUS semGive(SEM_ID semId); STATUS semTake(SEM_ID semId, int timeout); STATUS semFlush(SEM_ID semId); STATUS semDelete(SEM_ID semId); SEM_ID semCCreate(int options, int initialCount); SEM_ID semMCreate(int options); STATUS semMGiveForce(SEM_ID semId); SEM_ID semBSmCreate(int options, SEM_B_STATE initialState); SEM_ID semCSmCreate(int options, int initialCount)
  • OPAQUE_TYPE_ALLOWED_APIS += ^struct _RTL_CRITICAL_SECTION$ typedef struct _RTL_CRITICAL_SECTION RTL_CRITICAL_SECTION *PRTL_CRITICAL_SECTION; typedef PRTL_CRITICAL_SECTION LPCRITICAL_SECTION; void InitializeCriticalSection([out] LPCRITICAL_SECTION lpCriticalSection); BOOL InitializeCriticalSectionAndSpinCount([out] LPCRITICAL_SECTION lpCriticalSection, [in] DWORD dwSpinCount); void EnterCriticalSection([in, out] LPCRITICAL_SECTION lpCriticalSection); BOOL TryEnterCriticalSection([in, out] LPCRITICAL_SECTION lpCriticalSection); DWORD SetCriticalSectionSpinCount([in, out] LPCRITICAL_SECTION lpCriticalSection, [in] DWORD dwSpinCount);void DeleteCriticalSection([in, out] LPCRITICAL_SECTION lpCriticalSection)
  • OPAQUE_TYPE_ALLOWED_APIS += ^PRMonitor$ void PR_EnterMonitor(PRMonitor *mon);PRMonitor* PR_CEnterMonitor(void *address);PRMonitor* PR_NewMonitor(void);PRStatus PR_ExitMonitor(PRMonitor *mon);PRStatus PR_Wait(PRMonitor *mon,PRIntervalTime ticks);PRStatus PR_Notify(PRMonitor *mon);PRStatus PR_NotifyAll(PRMonitor *mon)
  • OPAQUE_TYPE_ALLOWED_APIS += ^PRJob$ NSPR_API(PRJob *)PR_QueueJob( PRThreadPool *tpool, PRJobFn fn, void *arg, PRBool joinable);NSPR_API(PRJob *)PR_QueueJob_Read(PRThreadPool *tpool, PRJobIoDesc *iod,PRJobFn fn,void *arg,PRBool joinable); NSPR_API(PRJob *)PR_QueueJob_Write(PRThreadPool *tpool, PRJobIoDesc *iod, PRJobFn fn, void *arg, PRBool joinable);NSPR_API(PRJob *)PR_QueueJob_Accept(PRThreadPool *tpool, PRJobIoDesc *iod, PRJobFn fn, void *arg, PRBool joinable);NSPR_API(PRJob *)PR_QueueJob_Connect(PRThreadPool *tpool, PRJobIoDesc *iod, const PRNetAddr *addr, PRJobFn fn, void * arg, PRBool joinable); NSPR_API(PRJob *)PR_QueueJob_Timer(PRThreadPool *tpool,PRIntervalTime timeout, PRJobFn fn, void * arg, PRBool joinable);NSPR_API(PRStatus) PR_CancelJob(PRJob *job);NSPR_API(PRStatus) PR_JoinJob(PRJob *job)
  • OPAQUE_TYPE_ALLOWED_APIS += ^PRThread$ PRThread* PR_CreateThread(PRThreadType type, void (*start)(void *arg), void *arg, PRThreadPriority priority, PRThreadScope scope, PRThreadState state, PRUint32 stackSize); PRThread* PR_AttachThread(PRThreadType type, PRThreadPriority priority, PRThreadStack *stack);PRThread* PR_GetCurrentThread(void); PRThreadPriority PR_GetThreadPriority(PRThread *thread); void PR_SetThreadPriority(PRThread *thread, PRThreadPriority priority);PRStatus PR_Interrupt(PRThread *thread)
  • OPAQUE_TYPE_ALLOWED_APIS += ^PRThreadPool$ NSPR_API(PRThreadPool *)PR_CreateThreadPool(PRInt32 initial_threads, PRInt32 max_threads, PRUint32 stacksize);NSPR_API(PRStatus) PR_ShutdownThreadPool(PRThreadPool *tpool); NSPR_API(PRStatus) PR_JoinThreadPool(PRThreadPool *tpool)
  • OPAQUE_TYPE_ALLOWED_APIS += ^PRLock$ void PR_Lock(PRLock *lock); void PR_DestroyLock(PRLock *lock); PRLock* PR_NewLock(void); PRStatus PR_Unlock(PRLock *lock)
  • OPAQUE_TYPE_ALLOWED_APIS += ^NU_PARTITION_POOL$ STATUS NU_Create_Partition_Pool(NU_PARTITION_POOL *pool, CHAR *name, VOID *start_address, UNSIGNED pool_size, UNSIGNED partition_size, OPTION suspend_type); STATUS NU_Delete_Partition_Pool(NU_PARTITION_POOL *pool); STATUS NU_Allocate_Partition(NU_PARTITION_POOL *pool, VOID **return_pointer, UNSIGNED suspend); STATUS NU_Deallocate_Partition(VOID *partition); UNSIGNED NU_Established_Partition_Pools(VOID); STATUS NU_Partition_Pool_Information(NU_PARTITION_POOL *pool, CHAR *name, VOID **start_address, UNSIGNED *pool_size, UNSIGNED *partition_size, UNSIGNED *available, UNSIGNED *allocated, OPTION *suspend_type, UNSIGNED *tasks_waiting, NU_TASK **first_task); UNSIGNED NU_Partition_Pool_Pointers(NU_PARTITION_POOL **pointer_list, UNSIGNED maximum_pointers)
  • OPAQUE_TYPE_ALLOWED_APIS += ^NU_MEMORY_POOL$ STATUS NU_Create_Memory_Pool(NU_MEMORY_POOL *pool, CHAR *name, VOID *start_address, UNSIGNED pool_size, UNSIGNED min_allocation, OPTION suspend_type); STATUS NU_Delete_Memory_Pool(NU_MEMORY_POOL *pool); STATUS NU_Allocate_Memory(NU_MEMORY_POOL *pool, VOID **return_pointer, UNSIGNED size, UNSIGNED suspend); STATUS NU_Allocate_Aligned_Memory(NU_MEMORY_POOL *pool_ptr, VOID **return_pointer, UNSIGNED size, UNSIGNED alignment, UNSIGNED suspend); STATUS NU_Memory_Pool_Information(NU_MEMORY_POOL *pool, CHAR *name, VOID **start_address, UNSIGNED *pool_size, UNSIGNED *min_allocation, UNSIGNED *available, OPTION *suspend_type, UNSIGNED *tasks_waiting, NU_TASK **first_task); UNSIGNED NU_Memory_Pool_Pointers(NU_MEMORY_POOL **pointer_list, UNSIGNED maximum_pointers);
  • OPAQUE_TYPE_ALLOWED_APIS += ^NU_TASK$ STATUS NU_Create_Task(NU_TASK *task, CHAR *name, VOID (*task_entry)(UNSIGNED, VOID *), UNSIGNED argc, VOID *argv, VOID *stack_address, UNSIGNED stack_size, OPTION priority, UNSIGNED time_slice, OPTION preempt, OPTION auto_start); STATUS NU_Delete_Task(NU_TASK *task); STATUS NU_Reset_Task(NU_TASK *task, UNSIGNED argc, VOID *argv); STATUS NU_Terminate_Task(NU_TASK *task); STATUS NU_Resume_Task(NU_TASK *task); STATUS NU_Suspend_Task(NU_TASK *task); OPTION NU_Change_Priority(NU_TASK *task, OPTION new_priority); UNSIGNED NU_Change_Time_Slice(NU_TASK *task, UNSIGNED time_slice); NU_TASK *NU_Current_Task_Pointer(VOID); STATUS NU_Task_Information(NU_TASK *task, CHAR *name, DATA_ELEMENT *status, UNSIGNED *scheduled_count, OPTION *priority, OPTION *preempt, UNSIGNED *time_slice, VOID **stack_base, UNSIGNED *stack_size, UNSIGNED *minimum_stack); UNSIGNED NU_Task_Pointers(NU_TASK **pointer_list, UNSIGNED maximum_pointers)
  • OPAQUE_TYPE_ALLOWED_APIS += ^NU_MAILBOX$ STATUS NU_Create_Mailbox(NU_MAILBOX *mailbox, CHAR *name, OPTION suspend_type); STATUS NU_Delete_Mailbox(NU_MAILBOX *mailbox); STATUS NU_Reset_Mailbox(NU_MAILBOX *mailbox); STATUS NU_Send_To_Mailbox(NU_MAILBOX *mailbox, VOID *message, UNSIGNED suspend); STATUS NU_Broadcast_To_Mailbox(NU_MAILBOX *mailbox, VOID *message, UNSIGNED suspend); STATUS NU_Receive_From_Mailbox(NU_MAILBOX *mailbox, VOID *message, UNSIGNED suspend); STATUS NU_Mailbox_Information(NU_MAILBOX *mailbox, CHAR *name, OPTION *suspend_type, OPTION *message_present, UNSIGNED *tasks_waiting, NU_TASK **first_task); UNSIGNED NU_Mailbox_Pointers(NU_MAILBOX **pointer_list, UNSIGNED maximum_pointers)
  • OPAQUE_TYPE_ALLOWED_APIS += ^NU_QUEUE$ STATUS NU_Create_Queue(NU_QUEUE *queue, CHAR *name, VOID *start_address, UNSIGNED queue_size, OPTION message_type, UNSIGNED message_size, OPTION suspend_type); STATUS NU_Delete_Queue(NU_QUEUE *queue); STATUS NU_Reset_Queue(NU_QUEUE *queue); STATUS NU_Send_To_Front_Of_Queue(NU_QUEUE *queue, VOID *message, UNSIGNED size, UNSIGNED suspend); STATUS NU_Send_To_Queue(NU_QUEUE *queue, VOID *message, UNSIGNED size, UNSIGNED suspend); STATUS NU_Broadcast_To_Queue(NU_QUEUE *queue, VOID *message, UNSIGNED size, UNSIGNED suspend); STATUS NU_Receive_From_Queue(NU_QUEUE *queue, VOID *message, UNSIGNED size, UNSIGNED *actual_size, UNSIGNED suspend); STATUS NU_Queue_Information(NU_QUEUE *queue, CHAR *name, VOID **start_address, UNSIGNED *queue_size, UNSIGNED *available, UNSIGNED *messages, OPTION *message_type, UNSIGNED *message_size, OPTION *suspend_type, UNSIGNED *tasks_waiting, NU_TASK **first_task); UNSIGNED NU_Queue_Pointers(NU_QUEUE **pointer_list, UNSIGNED maximum_pointers)
  • OPAQUE_TYPE_ALLOWED_APIS += ^NU_PIPE$ STATUS NU_Create_Pipe(NU_PIPE *pipe, CHAR *name, VOID *start_address, UNSIGNED pipe_size, OPTION message_type, UNSIGNED message_size, OPTION suspend_type); STATUS NU_Delete_Pipe(NU_PIPE *pipe); STATUS NU_Reset_Pipe(NU_PIPE *pipe); STATUS NU_Send_To_Front_Of_Pipe(NU_PIPE *pipe, VOID *message, UNSIGNED size, UNSIGNED suspend); STATUS NU_Send_To_Pipe(NU_PIPE *pipe, VOID *message, UNSIGNED size, UNSIGNED suspend); STATUS NU_Broadcast_To_Pipe(NU_PIPE *pipe, VOID *message, UNSIGNED size, UNSIGNED suspend); STATUS NU_Receive_From_Pipe(NU_PIPE *pipe, VOID *message, UNSIGNED size, UNSIGNED *actual_size, UNSIGNED suspend); STATUS NU_Pipe_Information(NU_PIPE *pipe, CHAR *name, VOID **start_address, UNSIGNED *pipe_size, UNSIGNED *available, UNSIGNED *messages, OPTION *message_type, UNSIGNED *message_size, OPTION *suspend_type, UNSIGNED *tasks_waiting, NU_TASK **first_task); UNSIGNED NU_Pipe_Pointers(NU_PIPE **pointer_list, UNSIGNED maximum_pointers)
  • OPAQUE_TYPE_ALLOWED_APIS += ^NU_SEMAPHORE$ STATUS NU_Create_Semaphore(NU_SEMAPHORE *semaphore, CHAR *name, UNSIGNED initial_count, OPTION suspend_type); STATUS NU_Delete_Semaphore(NU_SEMAPHORE *semaphore); STATUS NU_Reset_Semaphore(NU_SEMAPHORE *semaphore, UNSIGNED initial_count); STATUS NU_Obtain_Semaphore(NU_SEMAPHORE *semaphore, UNSIGNED suspend); STATUS NU_Release_Semaphore(NU_SEMAPHORE *semaphore); STATUS NU_Semaphore_Information(NU_SEMAPHORE *semaphore, CHAR *name, UNSIGNED *current_count, OPTION *suspend_type, UNSIGNED *tasks_waiting, NU_TASK **first_task); UNSIGNED NU_Semaphore_Pointers(NU_SEMAPHORE **pointer_list, UNSIGNED maximum_pointers); STATUS NU_Create_Binary_Semaphore(NU_SEMAPHORE *semaphore, CHAR *name, UNSIGNED initial_count, OPTION suspend_type); STATUS NU_Release_Binary_Semaphore(NU_SEMAPHORE *semaphore)
  • OPAQUE_TYPE_ALLOWED_APIS += ^NU_EVENT_GROUP$ STATUS NU_Create_Event_Group(NU_EVENT_GROUP *group, CHAR *name); STATUS NU_Delete_Event_Group(NU_EVENT_GROUP *group); STATUS NU_Set_Events(NU_EVENT_GROUP *group, UNSIGNED events, OPTION operation); STATUS NU_Retrieve_Events(NU_EVENT_GROUP *group, UNSIGNED requested_flags, OPTION operation, UNSIGNED *retrieved_flags, UNSIGNED suspend); UNSIGNED NU_Established_Event_Groups(VOID); STATUS NU_Event_Group_Information(NU_EVENT_GROUP *group, CHAR *name, UNSIGNED *event_flags, UNSIGNED *tasks_waiting, NU_TASK **first_task); UNSIGNED NU_Event_Group_Pointers(NU_EVENT_GROUP **pointer_list, UNSIGNED maximum_pointers)
  • OPAQUE_TYPE_ALLOWED_APIS += ^NU_HISR$ STATUS NU_Activate_HISR(NU_HISR *hisr); STATUS NU_Create_HISR(NU_HISR *hisr, CHAR *name, VOID (*hisr_entry)(VOID), OPTION priority, VOID *stack_address, UNSIGNED stack_size); STATUS NU_Delete_HISR(NU_HISR *hisr); NU_HISR *NU_Current_HISR_Pointer(VOID); UNSIGNED NU_Established_HISRs(VOID); STATUS NU_HISR_Information(NU_HISR *hisr, CHAR *name, UNSIGNED *scheduled_count, DATA_ELEMENT *priority, VOID **stack_base, UNSIGNED *stack_size, UNSIGNED *minimum_stack); UNSIGNED NU_HISR_Pointers(NU_HISR **pointer_list, UNSIGNED maximum_pointers)
  • OPAQUE_TYPE_ALLOWED_APIS += ^NU_TIMER$ STATUS NU_Create_Timer(NU_TIMER *timer, CHAR *name, VOID (*expiration_routine)(UNSIGNED), UNSIGNED id, UNSIGNED initial_time, UNSIGNED reschedule_time, OPTION enable); STATUS NU_Delete_Timer(NU_TIMER *timer); STATUS NU_Reset_Timer(NU_TIMER *timer, VOID (*expiration_routine)(UNSIGNED), UNSIGNED initial_time, UNSIGNED reschedule_timer, OPTION enable); STATUS NU_Control_Timer(NU_TIMER *timer, OPTION enable); UNSIGNED NU_Established_Timers(VOID); STATUS NU_Timer_Information(NU_TIMER *timer, CHAR *name, OPTION *enable, UNSIGNED *expirations, UNSIGNED *id, UNSIGNED *initial_time, UNSIGNED *reschedule_time); UNSIGNED NU_Timer_Pointers(NU_TIMER **pointer_list, UNSIGNED maximum_pointers)
  • OPAQUE_TYPE_ALLOWED_APIS += ^NU_DRIVER$ STATUS NU_Create_Driver(NU_DRIVER *driver, CHAR *name, VOID (*driver_entry)(NU_DRIVER *, NU_DRIVER_REQUEST *)); STATUS NU_Delete_Driver(NU_DRIVER *driver); STATUS NU_Request_Driver(NU_DRIVER *driver, NU_DRIVER_REQUEST *request); STATUS NU_Resume_Driver(NU_TASK *task); STATUS NU_Suspend_Driver(VOID (*terminate_routine)(VOID *), VOID *information, UNSIGNED timeout); UNSIGNED NU_Established_Drivers(VOID); UNSIGNED NU_Driver_Pointers(NU_DRIVER **pointer_list, UNSIGNED maximum_pointers)
  • OPAQUE_TYPE_ALLOWED_APIS += ^NU_PROTECT$ VOID NU_Protect(NU_PROTECT *protect_struct)
Tags

Specifies the function names that must be global in a C++ program, not allowed to be declared within a namespace.

Type string
Behavior If a function name listed in this parameter is defined within a C++ namespace, a @MNEM_NAME[WC_LANG.TYPE.EV]@ warning is issued. (This warning is off by default.)
Factory Settings
  • FORBIDDEN_FUNCTION_NAMES_IN_NAMESPACE += main
  • FORBIDDEN_FUNCTION_NAMES_IN_NAMESPACE += wmain
  • FORBIDDEN_FUNCTION_NAMES_IN_NAMESPACE += WinMain
  • FORBIDDEN_FUNCTION_NAMES_IN_NAMESPACE += wWinMain
  • FORBIDDEN_FUNCTION_NAMES_IN_NAMESPACE += DllMain
Tags
 

To report problems with this documentation, please visit https://support.codesecure.com/.