Skip to content

Crash in DestroyAddrHoisting on Simple Code Example #77693

@compnerd

Description

@compnerd

Description

No response

Reproduction

// %target-swift-frontend -O -module-name reduced -o %t -primary-file %s

protocol P {}
enum E {
    case c(any P)
    var d: [String:String] { [:] }
}

final class C {
    var o: [String:String]?
}

func f(_ e: E?) {
    if let e {
        C().o?.merge(e.d) { c, _ in c }
    }
}

Stack dump

Stack dump:
0.      Program arguments: "S:\\Program Files\\Swift\\Toolchains\\0.0.0+Asserts\\usr\\bin\\swift-frontend.exe" -frontend -c -primary-file .\\reduced.swift -target x86_64-unknown-windows-msvc -sdk "S:\\Program Files\\Swift\\Platforms\\Windows.platform\\Developer\\SDKs\\Windows.sdk" -O -resource-dir "S:\\Program Files\\Swift\\Toolchains\\0.0.0+Asserts\\usr\\lib\\swift" -module-name reduced -o C:\\Users\\abdulras\\AppData\\Local\\Temp\\TemporaryDirectory.G2spNa\\reduced-1.o
1.      Swift version 6.1-dev (LLVM 5728735dd595a22, Swift 95c6590e575d8eb)
2.      Compiling with effective version 5.10
3.      While evaluating request ExecuteSILPipelineRequest(Run pipelines { PrepareOptimizationPasses, EarlyModulePasses, HighLevel,Function+EarlyLoopOpt, HighLevel,Module+StackPromote, MidLevel,Function, ClosureSpecialize, LowLevel,Function, LateLoopOpt, SIL Debug Info Generator } on SIL for reduced)
4.      While running pass #3299 SILFunctionTransform "DestroyAddrHoisting" on SILFunction "@$s7reduced1fyyAA1EOSgF".
 for 'f(_:)' (at .\reduced.swift:11:1)
Exception Code: 0x80000003
 #0 0x00007ff6e071fa85 (S:\Program Files\Swift\Toolchains\0.0.0+Asserts\usr\bin\swift-frontend.exe+0x7ebfa85)
 #1 0x00007ffc6f8ae6d5 (C:\Windows\System32\ucrtbase.dll+0x7e6d5)
 #2 0x00007ffc6f8af6e1 (C:\Windows\System32\ucrtbase.dll+0x7f6e1)
 #3 0x00007ffc6f8b114a (C:\Windows\System32\ucrtbase.dll+0x8114a)
 #4 0x00007ffc6f8b103d (C:\Windows\System32\ucrtbase.dll+0x8103d)
 #5 0x00007ffc6f8b12d1 (C:\Windows\System32\ucrtbase.dll+0x812d1)
 #6 0x00007ff6d9b1f40d (S:\Program Files\Swift\Toolchains\0.0.0+Asserts\usr\bin\swift-frontend.exe+0x12bf40d)
 #7 0x00007ff6d9b1c8b3 (S:\Program Files\Swift\Toolchains\0.0.0+Asserts\usr\bin\swift-frontend.exe+0x12bc8b3)
 #8 0x00007ff6d9b1b266 (S:\Program Files\Swift\Toolchains\0.0.0+Asserts\usr\bin\swift-frontend.exe+0x12bb266)
 #9 0x00007ff6d9b1e172 (S:\Program Files\Swift\Toolchains\0.0.0+Asserts\usr\bin\swift-frontend.exe+0x12be172)
#10 0x00007ff6d983d8bd (S:\Program Files\Swift\Toolchains\0.0.0+Asserts\usr\bin\swift-frontend.exe+0xfdd8bd)
#11 0x00007ff6d983cb27 (S:\Program Files\Swift\Toolchains\0.0.0+Asserts\usr\bin\swift-frontend.exe+0xfdcb27)
#12 0x00007ff6d98328c7 (S:\Program Files\Swift\Toolchains\0.0.0+Asserts\usr\bin\swift-frontend.exe+0xfd28c7)
#13 0x00007ff6d9832ba6 (S:\Program Files\Swift\Toolchains\0.0.0+Asserts\usr\bin\swift-frontend.exe+0xfd2ba6)
#14 0x00007ff6d98325b7 (S:\Program Files\Swift\Toolchains\0.0.0+Asserts\usr\bin\swift-frontend.exe+0xfd25b7)
#15 0x00007ff6d98a91bd (S:\Program Files\Swift\Toolchains\0.0.0+Asserts\usr\bin\swift-frontend.exe+0x10491bd)
#16 0x00007ff6d9832d3f (S:\Program Files\Swift\Toolchains\0.0.0+Asserts\usr\bin\swift-frontend.exe+0xfd2d3f)
#17 0x00007ff6d98127a5 (S:\Program Files\Swift\Toolchains\0.0.0+Asserts\usr\bin\swift-frontend.exe+0xfb27a5)
#18 0x00007ff6d9122c85 (S:\Program Files\Swift\Toolchains\0.0.0+Asserts\usr\bin\swift-frontend.exe+0x8c2c85)
#19 0x00007ff6d8d9df0d (S:\Program Files\Swift\Toolchains\0.0.0+Asserts\usr\bin\swift-frontend.exe+0x53df0d)
#20 0x00007ff6d8d9e9ef (S:\Program Files\Swift\Toolchains\0.0.0+Asserts\usr\bin\swift-frontend.exe+0x53e9ef)
#21 0x00007ff6d8d9d667 (S:\Program Files\Swift\Toolchains\0.0.0+Asserts\usr\bin\swift-frontend.exe+0x53d667)
#22 0x00007ff6d8d9dc02 (S:\Program Files\Swift\Toolchains\0.0.0+Asserts\usr\bin\swift-frontend.exe+0x53dc02)
#23 0x00007ff6d8d9f99b (S:\Program Files\Swift\Toolchains\0.0.0+Asserts\usr\bin\swift-frontend.exe+0x53f99b)
#24 0x00007ff6d8bd42f0 (S:\Program Files\Swift\Toolchains\0.0.0+Asserts\usr\bin\swift-frontend.exe+0x3742f0)
#25 0x00007ff6d8bd3e67 (S:\Program Files\Swift\Toolchains\0.0.0+Asserts\usr\bin\swift-frontend.exe+0x373e67)
#26 0x00007ff6e07adc40 (S:\Program Files\Swift\Toolchains\0.0.0+Asserts\usr\bin\swift-frontend.exe+0x7f4dc40)
#27 0x00007ffc70e3259d (C:\Windows\System32\KERNEL32.DLL+0x1259d)
#28 0x00007ffc7200af38 (C:\Windows\SYSTEM32\ntdll.dll+0x5af38)


### Expected behavior

For this code to compile.

### Environment

Swift version 6.1-dev (LLVM 5728735dd595a22, Swift 95c6590e575d8eb)
Target: x86_64-unknown-windows-msvc


### Additional information

_No response_

Metadata

Metadata

Assignees

Labels

LinuxPlatform: LinuxSILOptimizerArea → compiler: SIL optimization passesWindowsPlatform: Windowsassertion failureBug → crash: An assertion failurebugA deviation from expected or documented behavior. Also: expected but undesirable behavior.crashBug: A crash, i.e., an abnormal termination of softwaremacOSPlatform: macOS

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions