«X = ++ x» действительно ли он не определен?

Я использую Coverity Prevent в проекте для поиска ошибок.

Он сообщает об ошибке для этого выражения (Имена переменных, конечно, изменены):

x=
   (a>= b) ?
   ++x: 0;

Сообщение:

EVALUATION_ORDER дефект: In " x = (a> = б)? ++ x: 0; "," x "записано в" x "(назначение LHS) и записано в" (a> = b) ? ++ x: 0; "но порядок, в котором происходят побочные эффекты, не определен, поскольку нет промежуточной точки последовательности. КОНЕЦ СООБЩЕНИЯ

Хотя я могу понять, что" " x = x ++ "не определено, это немного сложнее для меня. Это ложное срабатывание или нет?

12
задан Peter Mortensen 10 November 2010 в 00:05
поделиться