Pull to refresh

Comments 4

У меня к Вам 2 вопроса/комментария.

1. Не находите ли Вы, что в 2017 году ошибка вида «The 'p' variable is modified while being used twice between sequence points» несколько устарела? Не лучше ли использовать что-то типа «The multiple modifications of the 'p' variable are unsequenced» (тоже мне не нравится, но смысл должен быть ясен).

2. Я считаю, что PVS нашёл UB там, где его нет. Этот код, насколько я понимаю, является корректным, а предупреждение PVS — нет. Можете доказать обратное?
В документации к диагностике V567 есть ссылки на дополнительные ресурсы. Там вы можете найти описание таких ситуаций и обсуждения на разных ресурсах. В итоге всё сводится к цитированию стандарта, в котором есть похожие примеры. Доказательство чего-либо в этом случае прерогатива камитета по стандартизации C++.

Изменение сообщения обсудим с коллегами. Иногда диагностики переименовываются, но вряд ли это зависит от года.

О чём я Вас и прошу: процитируйте стандарт и докажите, что пример в статье содержит UB. Я утверждаю, что он его не содержит (по крайней мере для C++11, 03 под рукой нет), и ваш анализатор ошибся. Мне кажется, это в интересах компании найти ошибку, или нет?

P.S. Документация к диагностике V567 устарела и содержит примеры UB, которые больше им не являются (X[i]=++i и т.д.). Собственно там документация говорит о точках следования, которых уже 6 лет как нет.
Вы правы, диагностика устарела со временем. Мы подновим её и её описание.
Sign up to leave a comment.