Можно ли подавить возникновение проблем, о которых сообщает анализатор Xcode (clang)? - PullRequest
0 голосов
/ 31 августа 2018

Мой вариант использования следующий. В автоматическом тестировании одной из моих библиотек я использую функцию mktemp, чтобы получить имя файла для создания временного файла. Xcode правильно жалуется на это как на угрозу безопасности, но в этом случае у меня нет выбора (API, которому я должен следовать, требует имен файлов), и я готов пойти на риск, так как код является только тестовым кодом, а не в реальной службе. (Следовательно, риск безопасности не применим.)

Полагаю, я мог бы создать свою собственную версию mktemp, локальную для моего тестирования, но я бы предпочел не писать уже написанные вещи.

Так что мне интересно, есть ли способ, с помощью которого я могу сказать анализатору прекратить жаловаться на этот случай проблемы? Обратите внимание, что это отличается от вопроса, заданного в Возможно ли подавить предупреждения статического анализатора Xcode 4? тем, что это не ложный положительный результат, и я не хочу подавлять анализ файла или всех его экземпляров. проверять. Я просто хочу подавить этот случай. (то есть что-то похожее на комментарий cppcheck-suppress в Cppcheck)

1 Ответ

0 голосов
/ 01 сентября 2018

@ Последний комментарий JonathanLeffler был абсолютно верным, и я не знаю, как я пропустил его, когда прочитал вопрос, на который я ссылался. Следующий фрагмент кода делает именно то, что я хочу - он подавляет предупреждение анализатора в этом экземпляре mktemp, оставляя его активным для всех других экземпляров, которые будут использовать mktemp.

#if defined(__clang_analyzer__)
   char* filename = "/tmp/somename";
#else
   char* filename = mktemp("/tmp/prefixXXXX");
#endif
...