Swift 3 Whole Module Optimization Issue

Hi, everyone.
   I think I found a swift 3 whole module optimization issue. The code
below, when building with release configuration and running on an iOS 10
real device, will always causes a crash.

import UIKit

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        super.viewDidLoad()

        let orderby = "time"
        let url = "http://www.sample.com/api/index.php?\(orderby)"

        Log("Request url: \(url)")

        if let url = URL(string: url) {
            let request = URLRequest(url: url)
            print(request)
        }
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

}
func Log(_ log: String) {
    // NSLog("%@", log)
}

You can see the attachment for more detail info.
Or if you use github, this is the repo:
https://github.com/zaczh/Swift3ClosureDemo​
<https://github.com/zaczh/Swift3ClosureDemo&gt; Swift3ClosureDemo-master.zip
<https://drive.google.com/file/d/0B5P4DPGNr-B0RUhTMlFKaFg3Q1k/view?usp=drive_web&gt;

Thanks for the report! Please file it on bugs.swift.org if you have a moment.

-Joe

···

On Dec 21, 2016, at 7:08 PM, Jun Zhang via swift-users <swift-users@swift.org> wrote:

Hi, everyone.
   I think I found a swift 3 whole module optimization issue. The code below, when building with release configuration and running on an iOS 10 real device, will always causes a crash.

import UIKit
class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        super.viewDidLoad()
        
        let orderby = "time"
        let url = "http://www.sample.com/api/index.php?\(orderby)&quot;
        
        Log("Request url: \(url)")
        
        if let url = URL(string: url) {
            let request = URLRequest(url: url)
            print(request)
        }
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

}
func Log(_ log: String) {
    // NSLog("%@", log)
}

You can see the attachment for more detail info.
Or if you use github, this is the repo:
https://github.com/zaczh/Swift3ClosureDemo​
Swift3ClosureDemo-master.zip

This is the bug report: [SR-3474] Swift 3 Whole Module Optimization Issue · Issue #46062 · apple/swift · GitHub

···

On Thu, Dec 22, 2016 at 11:08 AM, Jun Zhang <j.h.z.hang.dev@gmail.com> wrote:

Hi, everyone.
   I think I found a swift 3 whole module optimization issue. The code
below, when building with release configuration and running on an iOS 10
real device, will always causes a crash.

import UIKit

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        super.viewDidLoad()

        let orderby = "time"
        let url = "http://www.sample.com/api/index.php?\(orderby)&quot;

        Log("Request url: \(url)")

        if let url = URL(string: url) {
            let request = URLRequest(url: url)
            print(request)
        }
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

}
func Log(_ log: String) {
    // NSLog("%@", log)
}

You can see the attachment for more detail info.
Or if you use github, this is the repo:
https://github.com/zaczh/Swift3ClosureDemo​
<https://github.com/zaczh/Swift3ClosureDemo&gt; Swift3ClosureDemo-master.zip
<https://drive.google.com/file/d/0B5P4DPGNr-B0RUhTMlFKaFg3Q1k/view?usp=drive_web&gt;