Skip to content

[SR-5968] Build never ends if SWIFT_OPTIMIZATION_LEVEL is -O or -Owholemodule in Xcode 9 #48527

@swift-ci

Description

@swift-ci
Previous ID SR-5968
Radar rdar://problem/34602036
Original Reporter kishikawakatsumi (JIRA User)
Type Bug
Status Resolved
Resolution Done
Environment

Xcode Version 9.0 (9A235)
macOS Sierra 10.12.6

Additional Detail from JIRA
Votes 0
Component/s Compiler
Labels Bug, OptimizedOnly
Assignee @swiftix
Priority Medium

md5: cdbcbf00f74d364d30452e27a6b6a353

Issue Description:

Summary

Build never ends if SWIFT_OPTIMIZATION_LEVEL is `-O` or `-Owholemodule` in Xcode 9.
CPU usage of swift process reaches 100%.

Steps to Reproduce:

  1. Create a new Swift project.

  2. Set `SWIFT_OPTIMIZATION_LEVEL = -O` in build setting or select Release build configuration in schema

  3. Add a new file and paste the following code

  4. Build

public class A {
    public class func f() {
        B.f()
    }
}

class B {
    private class C {
        var this: C? = nil

        lazy var number: Int = {
            var local: C? = self
            let count = 0
            while let temp = local?.this {
                local = temp
            }
            return count
        }()

        func f() -> C {
            if number == 0 {
                return self
            }
            print(number)
            return self
        }
    }

    class func f() {
        let _ = C().f()
    }
}

Expected Results:

Build finishes

Actual Results:

Build never ends, swift process CPU usage reaches 100%

Metadata

Metadata

Assignees

Labels

bugA deviation from expected or documented behavior. Also: expected but undesirable behavior.compilerThe Swift compiler itselfoptimized onlyFlag: An issue whose reproduction requires optimized compilation

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions