The following generates a false positive knownConditionTrueFalse; struct Task { int state() const; void poll_for_run_complete(); }; struct TaskList { std::vector<Task*>::iterator active_task_; void do_something() { auto current_active_task_state = (*active_task_)->state(); (*active_task_)->poll_for_run_complete(); auto new_active_task_state = (*active_task_)->state(); // Generates [knownConditionTrueFalse] style warning if (current_active_task_state == new_active_task_state) return; } } If the iterator...
The following generates a false positive knownConditionTrueFalse; struct Task { int state() const; void poll_for_run_complete(); }; struct TaskList { std::vector<Task*>::iterator active_task_; void do_something() { auto current_active_task_state = (*active_task_)->state(); (*active_task_)->poll_for_run_complete(); auto new_active_task_state = (*active_task_)->state(); // Generates [knownConditionTrueFalse] style warning if (current_active_task_state == new_active_task_state) return; } }