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

--- Comment #2 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
optimized dump has:
  _90 = MEM[(int (*__vtbl_ptr_type) () * *)_188];
  _94 = MEM[(int (*__vtbl_ptr_type) () *)_90 + 24B];
  if (_94 ==
_ZThn24_N7mozilla3net13nsStandardURL16TemplatedMutatorIS1_E4InitEjiRK12nsTSubstringIcEPKcP6nsIURIPP13nsIURIMutator)
    goto <bb 20>; [0.00%]
  else
    goto <bb 23>; [100.00%]

  <bb 20> [count: 0]:
  _153 = MEM[(const struct RefPtr *)_188 + -8B].mRawPtr;
  MEM[(struct RefPtr *)_188 + -8B].mRawPtr = 0B;
  rv_160 = Init (_153, 2, aDefaultPort_270(D), aSpec_9(D), aCharset_269(D),
aBaseURI_268(D));
...
  <bb 23> [count: 0]:
  _113 = _94 (_188, 2, aDefaultPort_270(D), aSpec_9(D), aCharset_269(D),
aBaseURI_268(D), 0B);
where it works with the call to
_ZThn24_N7mozilla3net13nsStandardURL16TemplatedMutatorIS1_E4InitEjiRK12nsTSubstringIcEPKcP6nsIURIPP13nsIURIMutator
with _188 as this, but _153 is clearly NULL and so calls Init (NULL, ...);

Reply via email to