summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorNico Weber <nicolasweber@gmx.de>2014-01-03 22:53:37 +0000
committerNico Weber <nicolasweber@gmx.de>2014-01-03 22:53:37 +0000
commitc3d3f0c696f4da72e4107aa26c416676b9bc8ac2 (patch)
treed9cd1f8eb307d9a2eff73803b295e5fecff8413c /include
parent8ff286445030634b2aba04d7ecd79814a1712a03 (diff)
downloadllvm-c3d3f0c696f4da72e4107aa26c416676b9bc8ac2.tar.gz
llvm-c3d3f0c696f4da72e4107aa26c416676b9bc8ac2.tar.bz2
llvm-c3d3f0c696f4da72e4107aa26c416676b9bc8ac2.tar.xz
Add a LLVM_DUMP_METHOD macro.
The motivation is to mark dump methods as used in debug builds so that they can be called from lldb, but to not do so in release builds so that they can be dead-stripped. There's lots of potential follow-up work suggested in the thread "Should dump methods be LLVM_ATTRIBUTE_USED only in debug builds?" on cfe-dev, but everyone seems to agreen on this subset. Macro name chosen by fair coin toss. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@198456 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r--include/llvm/Support/Compiler.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/include/llvm/Support/Compiler.h b/include/llvm/Support/Compiler.h
index d4f55e1a1b..a6b5687d50 100644
--- a/include/llvm/Support/Compiler.h
+++ b/include/llvm/Support/Compiler.h
@@ -434,4 +434,13 @@
#define LLVM_HAS_INITIALIZER_LISTS 0
#endif
+/// \brief Mark debug helper function definitions like dump() that should not be
+/// stripped from debug builds.
+// FIXME: Move this to a private config.h as it's not usable in public headers.
+#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
+#define LLVM_DUMP_METHOD LLVM_ATTRIBUTE_NOINLINE LLVM_ATTRIBUTE_USED
+#else
+#define LLVM_DUMP_METHOD LLVM_ATTRIBUTE_NOINLINE
+#endif
+
#endif