# Set call type

In some cases, especially for indirect calls, the decompiler cannot correctly detect call arguments. The 'Set call type' command sets the type of the function call at the current item without changing the prototype of the called function itself. So there is a difference between 'Set call type' and [Set type](/9.1/user-guide/decompiler/interactive/cmd_settype.md) commands. Let us assume that there is a call

```
        v1 = off_5C6E4(a1);
```

and that the decompiler erroneously detected one argument whereas four arguments actually are present. If the user sets the new call type as

```
        int (*)(int, int, int, int)
```

then the call will be transformed into

```
        v1 = ((int (__cdecl *)(int, int, int, int))off_5C6E4)(a1, a2, a3, a4);
```

and the type of *off\_5C6E4* will remain unchanged. Note that in this case the user can revert the call to the previous state using the [Force call type](/9.1/user-guide/decompiler/interactive/cmd_force_call_type.md) command.

The [Set type](/9.1/user-guide/decompiler/interactive/cmd_settype.md) command will have a different effect:

```
        v1 = off_5C6E4(a1, a2, a3, a4);
```

It sets the new type for *off\_5C6E4* that will cause changes to all places where *off\_5C6E4* is called, including the current call.

This command also can be used to specify the **\_\_noreturn** attribute of a call.

NOTE: Behind the scenes the 'Set call type' command, like [Force call type](/9.1/user-guide/decompiler/interactive/cmd_force_call_type.md), copies the entered type to the operand of the call instruction. Actually it is a shortcut to **Edit, Operand type, Set operand type** in the disassembly view while staying on the call instruction.

See also: [interactive operation](/9.1/user-guide/decompiler/interactive.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.hex-rays.com/9.1/user-guide/decompiler/interactive/cmd_set_call_type.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
