This is an archive of the discontinued LLVM Phabricator instance.

Fix MSVC constructor call extension after b92d290e48e9 (r353181).
ClosedPublic

Authored by jyknight on Feb 5 2019, 3:31 PM.

Details

Summary

The assert added to EmitCall there was triggering in Windows Chromium
builds, due to a mismatch of the return type.

The MSVC constructor call extension (this->Foo::Foo()) was emitting
the constructor call from 'EmitCXXMemberOrOperatorMemberCallExpr' via
calling 'EmitCXXMemberOrOperatorCall', instead of
'EmitCXXConstructorCall'. On targets where HasThisReturn is true, that
was failing to set the proper return type in the call info.

Switching to calling EmitCXXConstructorCall also allowed removing some
code e.g. the trivial copy/move support, which is already handled in
EmitCXXConstructorCall.

Event Timeline

jyknight created this revision.Feb 5 2019, 3:31 PM
Herald added a project: Restricted Project. · View Herald TranscriptFeb 5 2019, 3:31 PM
thakis edited reviewers, added: rnk; removed: thakis.Feb 5 2019, 3:43 PM
rnk accepted this revision.Feb 5 2019, 3:56 PM

lgtm

This revision is now accepted and ready to land.Feb 5 2019, 3:56 PM
This revision was automatically updated to reflect the committed changes.
Herald added a project: Restricted Project. · View Herald TranscriptFeb 5 2019, 4:05 PM