Swift 3 Whole Module Optimization Issue


(Jun Zhang) #1

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

Swift3ClosureDemo-master.zip
<https://drive.google.com/file/d/0B5P4DPGNr-B0RUhTMlFKaFg3Q1k/view?usp=drive_web>


(Alex Blewitt) #2

Can you raise a bug at https://bugs.swift.org <https://bugs.swift.org/> with the details, including the crash dump?

Thanks,

Alex

···

On 22 Dec 2016, at 02:48, 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)"
        
        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 <https://drive.google.com/file/d/0B5P4DPGNr-B0RUhTMlFKaFg3Q1k/view?usp=drive_web>​
_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users