Main Content

C11 Language Elements Supported in Polyspace

This table provides a partial list of C language elements that have been introduced since C11 and the corresponding Polyspace® support. If your code contains non-supported constructions, Polyspace reports a compilation error.

C11 Language ElementSupported
alignas and alignof convenience macrosYes
aligned_alloc functionYes
noreturn convenience macrosYes
Generic selectionYes
Thread support library (threads.h)Yes
Atomic operations library (stdatomic.h)Yes
Atomic types with _Atomic

Yes.

If you use the Clang compiler, see limitations book for limitations on atomic data types. See Limitations of Polyspace Verification (Polyspace Code Prover).

UTF-16 and UTF-32 character utilitiesYes

Bound-checking interfaces or alternative versions of standard library functions that check for buffer overflows (Annex K of C11)

For instance, strcpy_s is an alternative to strcpy that checks for certain errors in the string copy.

No.

Polyspace checks for certain run-time errors in use of standard library functions. The checking does not extend to these alternatives.

Anonymous structures and unionsYes
Static assert declarationYes

Features related to error handling such as errno_t and rsize_t typedef-s

No.

If you see compilation errors from use of these typedef-s, explicitly specify the path to your compiler headers. See Provide Standard Library Headers for Polyspace Analysis.

quick_exit and at_quick_exit

Yes.

In Bug Finder, functions registered with at_quick_exit appear as uncalled.

CMPLX, CMPLXF and CMPLXL macrosYes

See Also

Related Topics