Комментарии 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 — нет. Можете доказать обратное?
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 — нет. Можете доказать обратное?
+3
В документации к диагностике V567 есть ссылки на дополнительные ресурсы. Там вы можете найти описание таких ситуаций и обсуждения на разных ресурсах. В итоге всё сводится к цитированию стандарта, в котором есть похожие примеры. Доказательство чего-либо в этом случае прерогатива камитета по стандартизации C++.
Изменение сообщения обсудим с коллегами. Иногда диагностики переименовываются, но вряд ли это зависит от года.
Изменение сообщения обсудим с коллегами. Иногда диагностики переименовываются, но вряд ли это зависит от года.
0
О чём я Вас и прошу: процитируйте стандарт и докажите, что пример в статье содержит UB. Я утверждаю, что он его не содержит (по крайней мере для C++11, 03 под рукой нет), и ваш анализатор ошибся. Мне кажется, это в интересах компании найти ошибку, или нет?
P.S. Документация к диагностике V567 устарела и содержит примеры UB, которые больше им не являются (X[i]=++i и т.д.). Собственно там документация говорит о точках следования, которых уже 6 лет как нет.
P.S. Документация к диагностике V567 устарела и содержит примеры UB, которые больше им не являются (X[i]=++i и т.д.). Собственно там документация говорит о точках следования, которых уже 6 лет как нет.
+2
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Обзор дефектов кода музыкального софта. Часть 5. Steinberg SDKs