https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66908

--- Comment #11 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
Hmm, still can't reproduce even with vanilla trunk:

  A = A.0;
  D.2679 = get.__pfn;
  D.2680 = (long int) D.2679;
  D.2681 = D.2680 & 1;
  if (D.2681 == 0) goto <D.2682>; else goto <D.2683>;
  <D.2682>:
  iftmp.1 = get.__pfn;
  goto <D.2684>;
  <D.2683>:
  D.2685 = get.__delta;
  D.2686 = (sizetype) D.2685;
  D.2687 = A + D.2686;
  D.2688 = MEM[(int (*__vtbl_ptr_type) () * *)D.2687];
  D.2689 = get.__pfn;
  D.2690 = (long int) D.2689;
  D.2691 = D.2690 + -1; 
  D.2692 = (sizetype) D.2691;
  D.2693 = D.2688 + D.2692;
  iftmp.1 = *D.2693;
  <D.2684>:
  D.2694 = get.__delta;
  D.2695 = (sizetype) D.2694;
  D.2696 = A + D.2695;
  result = iftmp.1 (D.2696);
  operator delete (A);
  D.2697 = result;
  return D.2697;

I don't see the shifts at all.

Reply via email to