I don't know if I should place this in C++ or in tree-opt component but the following code still has a null check even though it is know that the variable cannot be null as that should have thrown an exception (yes this shows up in real code, this is reduced from PR 15855 sources): struct Node { int i; }; struct SeqR11E0plus { int i2; }; struct SeqR11E0plus_1 : public SeqR11E0plus, public Node { SeqR11E0plus_1(void) throw(); }; Node* f(void) { Node* res = new SeqR11E0plus_1(); return res;}
-- Summary: Missed null checking elimination with new Product: gcc Version: 4.0.0 Status: UNCONFIRMED Keywords: missed-optimization Severity: enhancement Priority: P2 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: pinskia at gcc dot gnu dot org CC: gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19476