]> granicus.if.org Git - clang/commitdiff
Introduce debugging/testing hook clang_enableStackTraces() into
authorDouglas Gregor <dgregor@apple.com>
Thu, 18 Feb 2010 20:22:25 +0000 (20:22 +0000)
committerDouglas Gregor <dgregor@apple.com>
Thu, 18 Feb 2010 20:22:25 +0000 (20:22 +0000)
CIndex, so that c-index-test to use it to call
lvm::sys::PrintStackTraceOnErrorSignal().

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96607 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang-c/Index.h
tools/CIndex/CIndex.cpp
tools/CIndex/CIndex.exports
tools/c-index-test/c-index-test.c

index eeb76a34299f08b808453f6f5898b025f8a209df..0130b72b6fa8f21326deab123f1b9250a309dda4 100644 (file)
@@ -507,7 +507,7 @@ CINDEX_LINKAGE void clang_displayDiagnostic(CXDiagnostic Diagnostic,
  * \returns A set of display options suitable for use with \c
  * clang_displayDiagnostic().
  */
-CINDEX_LINKAGE unsigned clang_defaultDiagnosticDisplayOptions();
+CINDEX_LINKAGE unsigned clang_defaultDiagnosticDisplayOptions(void);
 
 /**
  * \brief Print a diagnostic to the given file.
@@ -1322,7 +1322,7 @@ CINDEX_LINKAGE void clang_getDefinitionSpellingAndExtent(CXCursor,
                                           unsigned *startColumn,
                                           unsigned *endLine,
                                           unsigned *endColumn);
-
+CINDEX_LINKAGE void clang_enableStackTraces(void);
 /**
  * @}
  */
index 128b3b6e9921befa44ec3d31146d5bdd5072fe4f..6e07ece4c35a82f40188a80ac4debe71d4325410 100644 (file)
@@ -27,6 +27,7 @@
 #include "clang/Lex/Preprocessor.h"
 #include "llvm/Support/MemoryBuffer.h"
 #include "llvm/System/Program.h"
+#include "llvm/System/Signals.h"
 
 // Needed to define L_TMPNAM on some systems.
 #include <cstdio>
@@ -1935,6 +1936,10 @@ void clang_getDefinitionSpellingAndExtent(CXCursor C,
   *endColumn = SM.getSpellingColumnNumber(Body->getRBracLoc());
 }
 
+void clang_enableStackTraces(void) {
+  llvm::sys::PrintStackTraceOnErrorSignal();
+}
+
 } // end: extern "C"
 
 //===----------------------------------------------------------------------===//
index 0b4ef21bac632a5a7895b101c98edcd9019eabd8..449bb95a9477e08814e3596045aaf91bbc3524a5 100644 (file)
@@ -13,6 +13,7 @@ _clang_disposeIndex
 _clang_disposeString
 _clang_disposeTokens
 _clang_disposeTranslationUnit
+_clang_enableStackTraces
 _clang_equalCursors
 _clang_equalLocations
 _clang_getClangVersion
index f5492b757dc52fbea315bd75362e422b8e5fbe2c..c5f8431c348e8d08e4f11bd93eafd10a85c622b1 100644 (file)
@@ -1009,6 +1009,7 @@ static void print_usage(void) {
 }
 
 int main(int argc, const char **argv) {
+  clang_enableStackTraces();
   if (argc > 2 && strstr(argv[1], "-code-completion-at=") == argv[1])
     return perform_code_completion(argc, argv);
   if (argc > 2 && strstr(argv[1], "-cursor-at=") == argv[1])