[SR-13129] [IRGen, Windows] Wrong argument order when calling C++ member functions with indirect return types #55575
Labels
bug
A deviation from expected or documented behavior. Also: expected but undesirable behavior.
c++ interop
Feature: Interoperability with C++
compiler
The Swift compiler itself
IRGen
LLVM IR generation
Windows
Platform: Windows
Attachment: Download
Additional Detail from JIRA
md5: c3f23723106b510fdc433108dfead71b
Issue Description:
On Windows IRGen passes arguments to non-static C++ member functions in the wrong order if the result value is passed indirectly.
test.h
test.swift
The C++ function expects the this pointer first and the result pointer second. Swift's C++ Interop, however, passes the result first and the this pointer second (after bitcasting them).
Look at the three lines starting from %3.
test.ll
The text was updated successfully, but these errors were encountered: