# Function specialization \<Arg\[3\] = Dead\>

**URL:** <https://forums.swift.org/t/function-specialization-arg-3-dead/63707>\
**Category:** Compiler\
**Tags:** swift, ios\
**Created:** [March 14, 2023, 10:31pm UTC](https://forums.swift.org/t/function-specialization-arg-3-dead/63707 "2023-03-14T22:31:04Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![swifto](https://avatars.discourse-cdn.com/v4/letter/s/ee7513/32.png) [@swifto](https://forums.swift.org/u/swifto)\
**Post date:** [March 14, 2023, 10:31pm UTC](https://forums.swift.org/t/function-specialization-arg-3-dead/63707/1 "2023-03-14T22:31:04Z")

</div>

With some crash we see Arg[3] = Dead. What does it mean? Is there a document which has the details about such crash report?

`function specialization <Arg[3] = Dead>`

The method has 3 parameters as shown below with two completion handlers at the end.

When the crash happens it mainly happens during the `fatalError`, however log does not show the fatal error message it shows the lines at which crash happened.

How to understand the argument dead crash?

```swift
static func someMethod(param1: String, 
                                       param2: @escaping () -> Void, 
                                       param3: @escaping () -> Void) {
guard let someConditionhere else {
     // When crash happens it basically lands here
    fatalError("Something went wrong")
}
param2()
param3()
}

```

---

<div class="post-metadata">

**Author:** ![John\_McCall](https://sea2.discourse-cdn.com/swift/user_avatar/forums.swift.org/john_mccall/32/1351_2.png) [@John\_McCall](https://forums.swift.org/u/John_McCall)\
**Post date:** [March 14, 2023, 10:56pm UTC](https://forums.swift.org/t/function-specialization-arg-3-dead/63707/2 "2023-03-14T22:56:36Z")

</div>

That's from the pretty-printing of the function symbol and has nothing directly to do with the crash. In this case, it means that the optimizer decided that it was useful to create and call a specialized version of your function that doesn't need the parameter at index 3 (the parameter is "dead", i.e. unused), which I'm guessing is the `Self` argument. That specialized function then crashed, presumably because you asked it to with `fatalError`.
