Noticed using SonarLint for Visual Studio (4.13.0.11687)
Rule 1764 which detects identical sub-expressions on both sides of operator && (very useful for finding copy&paste errors) should not be triggered if the expressions are non-const function calls. Example
if (!DoSomething()) return xml->GoToParentNode() && xml->GoToParentNode();
As you can probably tell, this return jumps up twice in the XML structure, if the first jump is successful. Otherwise it will return false (GoToParentNode has bool return type).
While it might be debatable if this is ideal and whether it wouldn’t be clearer to write this in multiple lines with individiual ifs etc., this is valid and the most succinct way.
In general, I would argue that calling the identical non-const function twice is not an indication of an error, and there is no reason why one should not connect this via && if the second calls depends on the success of the first. As such, I propose excluding non-const function call expressions from this rule or splitting the rule up to allow disabling this case depending on style preference.