<font face="Verdana,Arial,Helvetica,sans-serif" size="2"><div>Hi, guys,</div><div><br></div><div>I notice that, we are widely using the statement "xxx | true" in llvm, such as "return SimplifyCFG(BB) | true;".  I have no idea if there is any downside to use the logic operator "||" here. Instead, I indeed see the potential problem to use bitwise operator "|". Because the bitwise operator do not short-circuit and the language std didn't specify the evaluation order for its lhs and rhs expression. That means, compiler is free to optimize this statement to "return true". </div><div><br></div><div>In shorts, IMO, it is legal to do the following optimization:<br>bool bar() {<br>  return foo() | true;<br>}<br>--><br>bool bar() {<br>  return true;  // the call to foo() is missing.</div><div>}</div><div> <br>Best regards<br><br>steven.zhang(张青山)<br>XLC++ Compiler Frontend Developer<br><br>IBM China Development Lab, Shanghai <br>Tel: (8621)609-28454 Mobile: +8615900986116<br>E-mail: <a href="mailto:qshanz@cn.ibm.com">qshanz@cn.ibm.com</a><br>关注IBM中国编译器开发团队 - 新浪微博: <a href="http://www.weibo.com/ibmcompiler">http://www.weibo.com/ibmcompiler</a> | developerWorks: <a href="http://t.cn/SPHWF4">http://t.cn/SPHWF4</a><br><br>"All things are difficult before they are easy."</div></font><BR>