<div dir="ltr">Hello,<div><br></div><div>I've stumbled upon the following behavior in branches/release_35 (as of 218689) under ubuntu 14.04 LTS amd64: whenever I include the (system-wise) gnu iostream header, clang++ stops devirtualizing the following code:</div><div><br></div><div><br></div><div><div>#if BREAKAGE_ENSUES</div><div>#include <iostream></div><div>#endif</div><div><br></div><div>struct Base {</div><div><span class="" style="white-space:pre"> </span>virtual int foo() const = 0;</div><div>};</div><div><br></div><div>struct A : Base {</div><div><span class="" style="white-space:pre">     </span>int a;</div><div><br></div><div><span class="" style="white-space:pre">    </span>A(const int a) </div><div><span class="" style="white-space:pre">   </span>: a(a) {</div><div><span class="" style="white-space:pre">   </span>}</div><div><br></div><div><span class="" style="white-space:pre"> </span>int foo() const {</div><div><span class="" style="white-space:pre">          </span>return a;</div><div><span class="" style="white-space:pre">  </span>}</div><div>};</div><div><br></div><div>struct B : Base {</div><div><span class="" style="white-space:pre">        </span>const Base* b;</div><div><br></div><div><span class="" style="white-space:pre">    </span>B(const Base* const base)</div><div><span class="" style="white-space:pre">  </span>: b(base) {</div><div><span class="" style="white-space:pre">        </span>}</div><div><br></div><div><span class="" style="white-space:pre"> </span>int foo() const {</div><div><span class="" style="white-space:pre">          </span>return b->foo();</div><div><span class="" style="white-space:pre">        </span>}</div><div>};</div><div><br></div><div>const A a(42);</div><div>const B b(&a);</div><div><br></div><div>int main(int, char**) {</div><div><span class="" style="white-space:pre">   </span>return b.foo();</div><div>}</div></div><div><br></div><div><br></div><div>Is that a known issue, and if not, under what category should I file a ticket for it?</div><div><br></div><div>Best regards,</div><div>Martin</div></div>