[swift-dev] [Compiler] Help IR gen in targetting MSVC
Sangjin Han
tinysun.net at gmail.com
Mon Apr 25 21:54:15 CDT 2016
Hi all,
I found a bug in my port for MSVC and Cygwin.
The C function swift_stdlib_readLine_stdin() is mapped to 'Int' type in
Swift, but it generates i32 in LLVM if I specify the target as MSVC. If I
give the target as Cygwin, it generates i64.
With the target options, the Cygwin ported swiftc.exe has the same output.
I know that the one of the differences between MSVC and Cygwin is the size
of 'long' type. But I don't know even if it is related to this problem.
I don't know where to I start with.
BEGIN OF tt.swift ---
import SwiftShims
var linePtr: UnsafeMutablePointer<CChar>? = nil
var readBytes = swift_stdlib_readLine_stdin(&linePtr)
print(readBytes)
END OF tt.swift -----
C:\temp>swiftc -emit-ir tt.swift -target x86_64-pc-windows-msvc | findstr
stdlib
%4 = call i32 @swift_stdlib_readLine_stdin(i8** bitcast (%Sq*
@_Tv2tt7linePtrGSqGSpVs4Int8__ to i8**))
declare i32 @swift_stdlib_readLine_stdin(i8**) #0
C:\temp>swiftc -emit-ir tt.swift -target x86_64-unknown-windows-cygnus |
findstr stdlib
%4 = call i64 @swift_stdlib_readLine_stdin(i8** bitcast (%Sq*
@_Tv2tt7linePtrGSqGSpVs4Int8__ to i8**))
declare i64 @swift_stdlib_readLine_stdin(i8**) #0
- Han Sangjin
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-dev/attachments/20160426/157778a0/attachment.html>
More information about the swift-dev
mailing list