From 59c2fe1af1bc2b3107140668c9237aef9d3ad392 Mon Sep 17 00:00:00 2001 From: Rafael Espindola Date: Thu, 16 Jan 2014 04:50:58 +0000 Subject: [PATCH] Prevent calls to __jit_debug_register_code from being optimized out. Patch by Andrew MacPherson. I just tweaked the comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@199350 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/ExecutionEngine/RuntimeDyld/GDBRegistrar.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/ExecutionEngine/RuntimeDyld/GDBRegistrar.cpp b/lib/ExecutionEngine/RuntimeDyld/GDBRegistrar.cpp index 603c526d06e..60adc9b383d 100644 --- a/lib/ExecutionEngine/RuntimeDyld/GDBRegistrar.cpp +++ b/lib/ExecutionEngine/RuntimeDyld/GDBRegistrar.cpp @@ -47,7 +47,11 @@ extern "C" { struct jit_descriptor __jit_debug_descriptor = { 1, 0, 0, 0 }; // Debuggers puts a breakpoint in this function. - LLVM_ATTRIBUTE_NOINLINE void __jit_debug_register_code() { } + LLVM_ATTRIBUTE_NOINLINE void __jit_debug_register_code() { + // The noinline and the asm prevent calls to this function from being + // optimized out. + asm volatile("":::"memory"); + } } -- 2.34.1