| ... | ... | @@ -638,18 +638,10 @@ void fixupExports() { |
| 638 | 638 | |
| 639 | 639 | if (config->killAt && config->machine == I386) { |
| 640 | 640 | for (Export &e : config->exports) { |
| 641 | | if (!e.name.empty() && e.name[0] == '?') |
| 642 | | continue; |
| 643 | | e.symbolName = e.name; |
| 644 | | // Trim off the trailing decoration. Symbols will always have a |
| 645 | | // starting prefix here (either _ for cdecl/stdcall, @ for fastcall |
| 646 | | // or ? for C++ functions). Vectorcall functions won't have any |
| 647 | | // fixed prefix, but the function base name will still be at least |
| 648 | | // one char. |
| 649 | | e.name = e.name.substr(0, e.name.find('@', 1)); |
| 650 | | // By making sure E.SymbolName != E.Name for decorated symbols, |
| 651 | | // writeImportLibrary writes these symbols with the type |
| 652 | | // IMPORT_NAME_UNDECORATE. |
| 641 | e.name = killAt(e.name, true); |
| 642 | e.exportName = killAt(e.exportName, false); |
| 643 | e.extName = killAt(e.extName, true); |
| 644 | e.symbolName = killAt(e.symbolName, true); |
| 653 | 645 | } |
| 654 | 646 | } |
| 655 | 647 | |