wswan:bugs
Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| wswan:bugs [2024/02/17 09:52] – created asie | wswan:bugs [2024/07/23 18:15] (current) – asie | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Known bugs ====== | + | ====== Known issues |
| ===== gcc-ia16 ===== | ===== gcc-ia16 ===== | ||
| - | In general, gcc-ia16' | + | * In general, gcc-ia16' |
| - | ==== Miscompilations involving far function pointers ==== | + | ==== Bug: Miscompilations involving far function pointers ==== |
| In some cases, when calling pointers from arrays of far function pointers in optimization modes >= -O1, the code will be miscompiled. This is a [[https:// | In some cases, when calling pointers from arrays of far function pointers in optimization modes >= -O1, the code will be miscompiled. This is a [[https:// | ||
| - | One can work around this by annotating the affected function to be compiled without optimizations: | + | One can work around this by annotating the affected function to be compiled without optimizations. In particular, one can create a separate function that //only// acts as a wrapper for the function call: |
| - | | + | <code C> |
| - | void call_to_my_function_table(uint8_t index) { | + | __attribute__((noinline, |
| - | my_function_table[index](); | + | void call_to_my_function_table(uint8_t index) { |
| - | } | + | my_function_table[index](); |
| + | } | ||
| + | </ | ||
| + | ==== Issue: wwitch target and interrupt handlers ==== | ||
| + | |||
| + | The wwitch target does not support relocation; as such, far functions (which interrupt handlers have to be) cannot be created in sections other than the default text section. This can be most easily achieved by building with '' | ||
wswan/bugs.1708163546.txt.gz · Last modified: by asie
