Background Image
Previous Page  9 / 22 Next Page
Information
Show Menu
Previous Page 9 / 22 Next Page
Page Background

связанного с данным регионом, в данной ветви выполнения. При этом

первое событие потери активности соответствует диапазону входных

значений, а последнее — диапазону выходных значений, если они сов-

падают, то никаких присваиваний или инвалидаций региона входного

символа не было, входной диапазон также является выходным. Такой

метод позволяет избежать использования сложных алгоритмических

схем для сбора входных и выходных значений аргументов функций,

входных значений глобальных регионов памяти.

Сбор выходных значений иногда требуется проводить по оконча-

нии пути выполнения функции. Это необходимо для обработки сим-

вольных значений, привязанных к региону памяти непосредственным

присваиванием или иным видом связывания. Для этого используется

итерация по хранилищу с сохранением диапазонов внешних по отно-

шении к функции регионов памяти в резюме.

Инвалидация региона памяти в терминологии CSA означает свя-

зывание с данным регионом нового символа без наложенных на него

ограничений, т.е. способного принимать произвольные значения. По-

скольку символьные значения, связанные с регионами памяти, обраба-

тываются при завершающем проходе по хранилищу, а значения регио-

нов, актуальные до инвалидации, обрабатываются по событию потери

активности, непосредственно предшествующему событию связывания

нового значения, инвалидация обрабатывается автоматически, допол-

нительных действий для обработки инвалидаций регионов памяти не

требуется.

Обработка события возврата функцией значения достаточно три-

виальна. Результирующее символьное значение сохраняется в резюме

целиком, а ограничения, накладываемые на него и на его части, обра-

батываются отдельно.

За хранение данных проверок проверяющие модули отвечают са-

мостоятельно. Основными видами данных проверок являются отмет-

ка отложенной проверки и данные состояния проверки. Отложенные

проверки используются для выдачи предупреждений в тех ситуациях,

когда вследствие отсутствия данных о контексте вызова невозможно

однозначно утверждать наличие дефекта или его отсутствие. Данные

состояния необходимы для построения нового состояния проверки при

применении резюме.

Актуализация символьных значений.

В результате сбора резюме

на предыдущем шаге получено некоторое множество регионов памяти,

с которыми связаны некоторые символьные значения. Кроме того, ре-

гионы памяти могут входить в символьные значения как их составная

часть. Однако полученные регионы памяти адресуются в контексте

объявлений имен внутри функции. В контексте вызывающей функции

эти регионы могут иметь уже другое значение, т.е. регионы, исполь-

зуемые внутри функции, являются относительными по отношению к

ISSN 0236-3933. Вестник МГТУ им. Н.Э. Баумана. Сер. “Приборостроение”. 2015. № 5 83