https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105704
--- Comment #3 from Jürgen Urban <jur at sysgo dot com> --- >From security point of view the compiler should not put jump tables into the code, because this creates new attack vectors. The code might be used by different types of security attacks, as it can contain instructions which are special (cache or FPU operations for example). A better location would be a different section which can be configured to be not executable. For me it looks like it could be easy to add the @STT_OBJECT feature while it would help to correctly disassemble the code. When you have to analyse the code for security or safety reasons, this helps with automated analysis. For example you might have to prove full code coverage when testing and the compiler should not create code which is never executed/tested. The fmsub instruction can never be executed. For such an analysis you get into problems, as you have to explain why the code is never executed. Actually the problem was detected as the code should not contain any floating point instructions (because FPU is disabled), but the disassembly has shown that this was not the case.