| 510 | } |
| 511 | |
| 512 | bool isLinkedFunction(func_t* fnc) |
| 513 | { |
| 514 | // Either there is no code in function = no instructions, |
| 515 | // or only instructions have "retn" mnemonics. |
| 516 | // |
| 517 | for (ea_t addr = fnc->start_ea; addr < fnc->end_ea; ++addr) |
| 518 | { |
| 519 | flags_t flags = get_flags(addr); |
| 520 | if (is_code(flags)) |
| 521 | { |
| 522 | qstring mnem; |
| 523 | print_insn_mnem(&mnem, addr); |
| 524 | if (mnem != "retn") |
| 525 | { |
| 526 | return false; |
| 527 | } |
| 528 | } |
| 529 | } |
| 530 | |
| 531 | return true; |
| 532 | } |
| 533 | |
| 534 | void generateCallingConvention( |
| 535 | const cm_t &idaCC, |