This is an archive of the discontinued LLVM Phabricator instance.

MS ABI: Pass 'sret' as the second parameter of instance methods
ClosedPublic

Authored by rnk on May 5 2014, 5:54 PM.

Details

Summary

MSVC always passes 'sret' after 'this', unlike GCC. This required
changing a number of places in Clang that assumed the sret parameter was
always first in LLVM IR.

This fixes win64 MSVC ABI compatibility for methods returning structs.

Diff Detail

Repository
rL LLVM

Event Timeline

rnk updated this revision to Diff 9092.May 5 2014, 5:54 PM
rnk retitled this revision from to MS ABI: Pass 'sret' as the second parameter of instance methods.
rnk updated this object.
rnk added reviewers: rsmith, majnemer.
rnk added a subscriber: Unknown Object (MLST).
majnemer accepted this revision.May 9 2014, 11:41 AM
majnemer edited edge metadata.

LGTM

This revision is now accepted and ready to land.May 9 2014, 11:41 AM
rnk closed this revision.May 19 2014, 7:24 AM
rnk updated this revision to Diff 9557.

Closed by commit rL208458 (authored by @rnk).