浏览代码

UE: Make sure signal_trampoline_dummy is not optimized away with -flto

This adds __attribute__((used)) to the function declaration so the
compiler doesn't discard it. It also makes the function NEVER_INLINE
so that we don't end up with multiple copies of the function. This
is necessary because the function uses inline assembly to define some
unique labels.
Gunnar Beutner 4 年之前
父节点
当前提交
1f57cc5957
共有 1 个文件被更改,包括 2 次插入2 次删除
  1. 2 2
      Userland/DevTools/UserspaceEmulator/Emulator.cpp

+ 2 - 2
Userland/DevTools/UserspaceEmulator/Emulator.cpp

@@ -445,8 +445,8 @@ void Emulator::dispatch_one_pending_signal()
 }
 
 // Make sure the compiler doesn't "optimize away" this function:
-extern void signal_trampoline_dummy();
-void signal_trampoline_dummy()
+static void signal_trampoline_dummy() __attribute__((used));
+NEVER_INLINE void signal_trampoline_dummy()
 {
     // The trampoline preserves the current eax, pushes the signal code and
     // then calls the signal handler. We do this because, when interrupting a