When working with the decompiler, you probably spend most of the time in the pseudocode view, since most interactive operations (e.g. renaming, retyping and commenting) can be done right there. IDA is usually smart enough to detect important changes during such actions and update the pseudocode as necessary.
However, occasionally you may perform actions outside of the pseudocode view which potentially affect decompilation, but IDA may not detect it and continue showing stale decompilation. How can you force IDA to use the new information? The following options may be used:
- close (with saving) and reopen the database. This is the most invasive option but is probably most reliable;
- close just the pseudocode view and reopen it by decompiling the function again (e.g. by pressing Tab);
- refresh the pseudocode by pressing F5 while in the Pseudocode view.
Usually the methods above are enough, but in some cases you may need to reset decompiler caches for a complete refresh.
See also:
Igor’s tip of the week #40: Decompiler basics
Igor’s tip of the week #42: Renaming and retyping in the decompiler
Igor’s tip of the week #102: Resetting decompiler information