| // RUN: mkdir -p %t |
| // RUN: %target-build-swift %s -o %t/a.out -Ounchecked |
| // |
| // RUN: %target-run %t/a.out |
| // REQUIRES: executable_test |
| |
| import StdlibUnittest |
| |
| |
| var DictionaryUnchecked = TestSuite("DictionaryUnchecked") |
| |
| DictionaryUnchecked.test("noCseOnInit") { |
| |
| @inline(never) |
| func createDict() -> Dictionary<Int, Bool> { |
| // CSE should not be able to combine both Dictionary.init() calls. |
| // This did happen and resulted in a crash because Dictionary.init() |
| // was defined with @effects(readnone). |
| // But this was wrong because it actually reads the array buffer (from |
| // the literal). |
| var Dict: Dictionary<Int, Bool> = [:] |
| Dict = [:] |
| Dict[0] = true |
| return Dict |
| } |
| |
| let Dict = createDict() |
| expectTrue(Dict[0]!) |
| } |
| |
| runAllTests() |
| |