| Contents | Index |
• Polyspace Installation Guide
• Polyspace Products for C/C++
• Polyspace Products for C/C++ User's Guide
• Introduction to Polyspace Products
• How to Use Polyspace Software
• Setting Up a Verification Project
• Specifying Options to Match Your Quality Goals
• Setting Up Project to Check Coding Rules
• Setting up Project to Automatically Test Orange Code (C Only)
• Setting Up Project to Generate Metrics
Configuring Polyspace Project Using Visual Studio Project Information
• Emulating Your Runtime Environment
Predefined Target Processor Specifications
Modifying Predefined Target Processor Attributes
Defining Generic Target Processors
Viewing Existing Generic Targets
Compiling Operating System Dependent Code (OS-target issues)
Ignoring or Replacing Keywords Before Compilation
Verifying Code That Uses Keil or IAR Dialects
How to Gather Compilation Options Efficiently
Automatically Generating a Main
Specifying Functions Not Called by Generated Main
Architecture of the Generated main
Characteristics of a Class and Messages in the Log File
Behavior of Global variables and members
Methods and Class Specificities
Specifying Data Ranges Using DRS Template
Specifying Data Ranges Using Existing DRS Configuration
Editing Existing DRS Configuration
Specifying Data Ranges Using Text Files
• Preparing Source Code for Verification
Automatic Stubbing Behavior for C++ Pointer/Reference
Specifying Functions to Stub Automatically
Constraining Data with Stubbing
Default and Alternative Behavior for Stubbing (PURE and WORST)
Stubbing Functions with a Variable Argument Number
Stubbing Standard Library Functions
Checking Variable Ranges with Assert
Checking Properties on Global Variables: Global Assert
Modeling Variable Values External to Your Application
Verifying Code with Undefined or Undeclared Variables and Functions
Modelling Interruptions and Asynchronous Events, Tasks, and Threads
Are Interruptions Maskable or Preemptive by Default?
Atomicity (Can an Instruction Be Interrupted by Another?)
Specifying Source Files to Verify
Specifying Analysis Options Configuration
Checking for Compilation Problems
What Happens When You Run Verification
Running Verification Unit-by-Unit
Managing Verification Jobs Using the Polyspace Queue Manager
Monitoring Progress of Server Verification
Viewing Verification Log File on Server
Stopping Server Verification Before It Completes
Removing Verification Jobs from Server Before They Run
Changing Order of Verification Jobs in Server Queue
Changing Queue Manager Password
Sharing Server Verifications Between Users
Starting Verification on Client
What Happens When You Run Verification
• Troubleshooting Verification Problems
Viewing Error Information When Verification Stops
Hardware Does Not Meet Requirements
You Did Not Specify the Location of Included Files
Polyspace Software Cannot Find the Server
Limit on Assignments and Function Calls
Checking Compilation At the Start of a Verification
Compilation Messages Described in This Section
Class, Array, Struct or Union is Too Large
Unsupported Non-ANSI Keywords (C)
Initialization of Global Variables (C++)
Function: Wrong Argument Number
Variable: Array Against Variable
Missing Required Prototype for varargs
_polyspace_stdstubs.c Compilation Errors
Troubleshooting Approaches for Standard Library Function Stubs
Include Files with Stubs to Replace Automatic Stubbing
Create a _polyspace_stdstubs.c File with Necessary Includes
Provide a .c file Containing a Prototype Function
Displaying Verification Status Information
Techniques for Improving Verification Performance
• Reviewing Verification Results
Overview: Understanding Polyspace Results
Why Gray Follows Red and Green Follows Orange
Downloading Results from Server to Client
Downloading Server Results Using the Command Line
Downloading Results from Unit-by-Unit Verifications
Opening Verification Results from the Project Manager Perspective
Opening Verification Results from the Results Manager Perspective
Exploring the Results Manager Perspective
Searching Results in Results Manager Perspective
Setting Character Encoding Preferences
Opening Results for Generated Code
Reviewing Checks at Levels 1, 2, and 3
Reviewing Checks Progressively
Displaying the Call Sequence for a Check
Displaying the Access Graph for Variables
Reviewing and Commenting Checks
Tracking Justified Checks in Procedural Entities View
Commenting Code to Justify Known Checks
Importing Review Comments from Previous Verifications
Exporting Review Comments to Spreadsheet
Viewing Checks and Comments Report
Generating Verification Reports
Running the Report Generator from the Command Line
Automatically Generating Verification Reports
Customizing Verification Reports
Red Checks Where Gray Checks Are Expected
Using Range Information in the Results Manager Perspective
Using Pointer Information in Results Manager Perspective
Viewing Probable Cause Information
Do I Have Too Many Orange Checks?
Applying Coding Rules to Reduce Orange Checks
Improving Verification Precision
Stubbing Parts of the Code Manually
Describing Multitasking Behavior Properly
Considering Contextual Verification
Considering the Effects of Application Code Size
Defining Your Review Methodology
Performing Selective Orange Review
Importing Review Comments from Previous Verifications
Commenting Code to Provide Information During Review
Viewing Sources of Orange Checks
Working with Orange Checks Caused by Input Data
Refining Data Range Specifications
Performing an Exhaustive Orange Review
How the Automatic Orange Tester Works
Selecting the Automatic Orange Tester
Starting the Automatic Orange Tester Manually
Reviewing Test Results After a Manual Run
Refining Data Ranges with Automatic Orange Tester
Saving and Reusing Your Configuration
Polyspace MISRA C Checker Overview
Polyspace MISRA C++ Checker Overview
Polyspace JSF C++ Checker Overview
Activating the MISRA C Checker
Activating the MISRA C++ Checker
Activating the JSF C++ Checker
Creating a C++ Coding Rules File
Excluding Files and Folders from Rules Checking
Excluding All Include Folders from Coding Rules Checking
Redefine Data Types as Boolean
Allow Undocumented Pragma Directives
Configuring Text and XML Editors
Commenting Code to Indicate Known Rule Violations
Commenting and Justifying Coding Rule Violations
Copying and Pasting Justifications
SQO Subset 2 - Coding Rules with an Indirect Impact on Selectivity
Supported MISRA C++ Coding Rules
• Software Quality with Polyspace Metrics
• Using Polyspace Software in the Eclipse IDE
Setting Up Polyspace Verification with Eclipse Editor
Starting Verification from Eclipse Editor
• Polyspace Products for C/C++ Reference
Send to Polyspace Server (-server)
Add to results repository (-add-to-results-repository)
Keep all preliminary results files (-keep-all-files)
Calculate code metrics (-code-metrics)
Report template name (-report-template)
Output format (-report-output-format)
Report name (-report-output-name)
Target/Compiler Option Overview
Target processor type (-target)
Target Operating System (-OS-target)
Defined Preprocessor Macros (-D)
Undefined Preprocessor Macros (-U)
Command/script to apply to preprocessed files (-post-preprocessing-command)
Command/script to apply after the end of the code verification (-post-analysis-command)
Code from DOS or Windows filesystem (-dos)
Ignore assembly code (-discard-asm)
Handle #pragma asm/endasm directives (-asm-begin/-asm-end)
Allow non int types for bitfields (-allow-non-int-bitfield)
Accept integral type conflicts (-permissive-link)
Allow undefined global variables (-allow-undef-variables)
Ignore overflowing computations on constants (-ignore-constant-overflows)
Allow anonymous unions/structure fields (-allow-unnamed-fields)
Allow negative operand for left shifts (-allow-negative-operand-in-shift)
Allow language extensions (-allow-language-extensions)
Igore missing header files (-ignore-missing-headers)
MISRA C rules configuration (-misra2)
Files and folders to ignore (-includes-to-ignore)
Effective boolean types (-boolean-types)
Allowed pragmas (-allowed-pragmas)
Unit by Unit common source files (-unit-by-unit-common-source)
Main Generator Behavior for Polyspace Software
Generate a main (-main-generator)
Variables written before loop (-variables-written-before-loop)
Variables written in loop (-variables-written-in-loop)
Functions called before loop (-function-called-before-loop)
Functions called in loop (-functions-called-in-loop)
Functions called after loop (-function-called-after-loop)
Variable/function range setup (-data-range-specifications)
Stub complex functions (-permissive-stubber)
Functions to stub (-functions-to-stub)
No automatic stubbing (-no-automatic-stubbing)
Division round down (-div-round-down)
Do not consider all global variables to be initialized (-no-def-init-glob)
Enable pointer arithmetic out of bounds of fields (-allow-ptr-arith-on-struct)
Allows incomplete or partial allocation of structures (-size-in-bytes)
Ignore float rounding (-ignore-float-rounding)
Green absolute address checks (-green-absolute-address-checks)
Detect overflows on (-scalar-overflows-checks)
Overflows computation mode (-scalar-overflows-behavior)
Enum type definition (-enum-type-definition)
Functions known to cause NTC (-known-NTC)
Continue with compile error (-continue-with-compile-error)
Verification time limit (-timeout)
Automatic Orange Tester (-automatic-orange-tester)
Number of automatic tests (-automatic-orange-tester-tests-number)
Maximum loop iterations (-automatic-orange-tester-loop-max-iteration)
Maximum test time (-automatic-orange-tester-timeout)
Run verification in 32 or 64-bit mode (-machine-architecture)
Number of processes for multiple CPU core systems (-max-processes)
Specific Precision (-modules-precision)
Sensitivity context (-context-sensitivity)
Automatic selection for sensitivity context (-context-sensitivity-auto)
Improve precision of interprocedural analysis (-path-sensitivity-delta)
Retype variables of pointer types (-retype-pointer)
Retype symbols of integer types (-retype-int-pointer)
Depth of analysis inside structures (-k-limiting)
Optimize huge static initializers (-no-fold)
Respect types in fields (-respect-types-in-fields)
Respect types in global variables (-respect-types-in-globals)
Reduce task complexity (-lightweight-thread-model)
Less range information (-less-range-information)
No pointer information (-no-pointer-information)
Critical section details (-critical-section-begin/end)
Temporal exclusion point (-temporal-exclusions-file)
-main-generator-files-to-ignore
-continue-with-existing-host (Deprecated)
-allow-unsupported-linux (Deprecated)
Send to Polyspace Server (-server)
Add to results repository (-add-to-results-repository)
Keep all preliminary results files (-keep-all-files)
Calculate code metrics (-code-metrics)
Report template name (-report-template)
Output format (-report-output-format)
-report-output-name (Batch Mode only)
Generic/Advanced Target Options
Target operating system (-OS-target)
Defined Preprocessor Macros (-D)
Undefined Preprocessor Macros (-U)
Command/script to apply to preprocessed files (-post-preprocessing-command)
Command/script to apply after the end of the code (-post-analysis-command)
Ignore assembly code (-discard-asm)
Allow undefined global variables (-allow-undef-variables)
Ignore overflowing computations on constants (-ignore-constant-overflows)
Allow anonymous unions/structure fields (-allow-unnamed-fields)
Allow negative operand for left shifts (-allow-negative-operand-in-shift)
Ignore missing header files (-ignore-missing-headers)
Set wchar_t to unsigned long (-wchar-t-is-unsigned-long)
Set size_t to unsigned long (-size-t-is-unsigned-long)
Management of wchar_t (-wchar-t-is)
Management of scope of 'for loop' variable index (-for-loop-index-scope)
Overcome link error (-no-extern-C)
Ignore pragma pack directives (-ignore-pragma-pack)
Pack alignment value (-pack-alignment-value)
Support managed extensions (-support-FX-option-results)
JSF C++ rules configureation (-jsf-coding-rules)
MISRA C++ rules configuration (-misra-cpp)
Files and folders to ignore (-includes-to-ignore)
Unit by unit common source files (-unit-by-unit-common-source)
Visual Studio compliant main (-main)
Generate a main (-main-generator)
Analyze the class contents only (-class-only)
Select methods called by the generated main (-class-analyzer-calls)
Don't check member initialization in the generated main (-no-constructors-init-check)
Function calls (-main-generator-calls)
First functions to call (-function-called-before-main)
Write accesses to global variables (-main-generator-writes-variables)
Variable/function range setup (-data-range-specifications)
Functions to stub (-functions-to-stub)
No automatic stubbing (-no-automatic-stubbing)
Ignore Float Rounding (-ignore-float-rounding)
Green absolute address checks (-green-absolute-address-checks)
Detect overflows on (-scalar-overflow-checks)
Overflows computation mode (-scalar-overlows-behavior)
Enum type definition (-enum-type-definition)
Continue with compile error (-continue-with-compile-error)
Verification time limit (-timeout)
Run verification in 32 or 64-bit mode (machine-architecture)
Number of processes for multiple CPU code systems (-max-processes)
Sensitivity context (-context-sensitivity)
Automatic selection for sensitivity context (-context-sensitivity-auto)
Improve precision of interprocedural analysis (-path-sensitivity-delta)
Depth of analysis inside structures (-k-limiting)
Respect types in global variables (-respect-types-in-globals)
Respect types in fields (-respect-types-in-fields)
Less range information (-less-range-information)
No pointer information (-no-pointer-information)
Tuning Precision and Scaling Parameters
Critical section details (-critical-section-[begin or end])
Temporal exlusion point (-temporal-exclusions-file)
-main-generator-files-to-ignore
-allow-unsupported-linux (Deprecated)
Array Conversion Must Not Extend Range: COR
Array Index Within Bounds: OBAI
Non-Initialized Variables: NIV/NIVL
Scalar and Float Overflows: OVFL
Scalar and Float Underflows: UNFL (Deprecated)
Float Underflows and Overflows: UOVFL (Deprecated)
Scalar or Float Division by Zero: ZDV
Shift Amount in 0..31 (0..63):SHF
Left Operand of Left Shift is Negative: SHF
Function Pointer Must Point to a Valid Function: COR
Wrong Number of Arguments: COR
Wrong Return Type of a Function Pointer: COR
Wrong Return Type for Arithmetic Functions: COR
Non Termination of Call or Loop: NTC and NTL
Invalid Argument in Standard Library Function Call: STD_LIB
Acronym Not Related to C++ Constructions (Also Used for C Code):
Incorrect typeid Argument: CPP
Incorrect dynamic_cast on Pointer: CPP
Incorrect dynamic_cast on Reference: CPP
Invalid Pointer to Member: OOP
Call of Pure Virtual Function: OOP
Incorrect Type for this-pointer: OOP
Non-Initialized Variable: NIV/NIVL
Scalar or Float Division by zero: ZDV
Shift Amount is Outside its Bounds: SHF
Left Operand of Left Shift is Negative: SHF
Array Index is Outside its Bounds: OBAI
Function Pointer Must Point to a Valid Function: COR
Wrong Number of Arguments: COR
Scalar Overflow on Division (/) Operation: COR
Pointer is Outside its Bounds: IDP
Destructor or Delete Throws: EXC
Main, Tasks or C Library Function Throws: EXC
Exception Raised is Not Specified in the Throw List: EXC
Throw During Catch Parameter Construction: EXC
Continue Execution in __except: EXC
Non Termination of Call or Loop: NTC and NTL
• Polyspace Model Link Products User's Guide
| On this page… |
|---|
The Polyspace Automatic Orange Tester performs dynamic stress tests on unproven C code (orange checks) to help you identify potential run-time errors. By default, the Automatic Orange Tester is disabled. If you enable the Automatic Orange Tester,
The software runs the Automatic Orange Tester at the end of static verification
You can manually run the Automatic Orange Tester after the verification
For more information, see Automatically Testing Orange Code.
To enable the Automatic Orange Tester (-automatic-orange-tester):
In the Configuration pane of the Project Manager perspective, select the All Settings tab.
Under Analysis Options, expand the Polyspace inner settings node.
Select the Automatic Orange Tester check box.

Specify values for the following options:
Number of automatic tests — Total number of tests. Default is 500. Software supports maximum of 100,000.
Maximum loop iterations — Maximum number of iterations allowed before a loop is considered to be an infinite loop. Default is 1000, which is also the maximum value that software supports.
Maximum test time — Maximum time allowed for each test. Default is 5 seconds. Software supports maximum of 60.
For more information about the Automatic Orange Tester, see Automatically Testing Orange Code.
![]() | Setting Up Project to Check Coding Rules | Setting Up Project to Generate Metrics | ![]() |
| © 1984-2012- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |

