В этой таблице представлен частичный список элементов языка C, которые были введены с C11 года, и соответствующая поддержка Polyspace ®. Если код содержит неподдерживаемые конструкции, Polyspace сообщает об ошибке компиляции.
| C11 Языковой элемент | Поддержанный |
|---|---|
alignas и alignof удобные макросы | Да |
aligned_alloc функция | Да |
noreturn удобные макросы | Да |
| Общий выбор | Да |
Библиотека поддержки потоков (threads.h) | Да |
Библиотека атомных операций (stdatomic.h) | Да |
Атомные типы с _Atomic | Да. При использовании компилятора Clang ограничения на атомарные типы данных см. в книге ограничений. См. раздел Ограничения проверки Polyspace. |
| UTF-16 и UTF-32 символьные утилиты | Да |
Интерфейсы проверки привязки или альтернативные версии стандартных библиотечных функций, которые проверяют переполнение буфера (Приложение K к C11) Например, | Нет. Polyspace проверяет определенные ошибки времени выполнения при использовании стандартных библиотечных функций. Проверка не распространяется на эти альтернативы. |
| Анонимные структуры и союзы | Да |
| Статическое объявление утверждения | Да |
Функции, связанные с обработкой ошибок, такие как | Нет. Если вы видите ошибки компиляции от использования этих |
quick_exit и at_quick_exit | Да. В Bug Finder зарегистрированы функции |
CMPLX, CMPLXF и CMPLXL макрос | Да |
C standard version (-c-version)