https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66908
--- Comment #10 from Maxim Ostapenko <chefmax at gcc dot gnu.org> ---
(In reply to Marek Polacek from comment #9)
> Oh silly me! This should work; Maxim, could you possibly try this patch?
Sorry, Marek, nothing changed for C++ testcase:
D.6137 = get.__delta;
D.6138 = D.6137 & 1;
if (D.6138 == 0) goto <D.6139>; else goto <D.6140>;
<D.6139>:
iftmp.1 = get.__pfn;
goto <D.6141>;
<D.6140>:
A.2 = A;
D.6143 = get.__delta;
D.6144 = D.6143 >> 1;
D.6145 = (sizetype) D.6144;
D.6146 = A.2 + D.6145;
D.6147 = MEM[(int (*__vtbl_ptr_type) () * *)D.6146];
D.6148 = get.__pfn;
D.6149 = (sizetype) D.6148;
D.6150 = D.6147 + D.6149;
iftmp.1 = *D.6150;
<D.6141>:
A.3 = A;
D.6152 = D.6143 >> 1;
D.6153 = (sizetype) D.6152;
D.6154 = A.3 + D.6153;
result = iftmp.1 (D.6154);