summaryrefslogtreecommitdiffstats
path: root/clang/tools/libclang/CIndex.cpp
diff options
context:
space:
mode:
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>2012-11-13 01:03:15 +0000
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>2012-11-13 01:03:15 +0000
commit4f10a3e9f058bb8fdcfc3799a1939d1391b96de3 (patch)
tree8e3cdce46ca059f14eba4564188387e61a0113b5 /clang/tools/libclang/CIndex.cpp
parent36675b75fbeb6578d510db29ade03596b4bc32af (diff)
downloadbcm5719-llvm-4f10a3e9f058bb8fdcfc3799a1939d1391b96de3.tar.gz
bcm5719-llvm-4f10a3e9f058bb8fdcfc3799a1939d1391b96de3.zip
[preprocessor] When #including something that contributes no tokens at all,
don't recursively continue lexing. This avoids a stack overflow with a sequence of many empty #includes. rdar://11988695 llvm-svn: 167801
Diffstat (limited to 'clang/tools/libclang/CIndex.cpp')
-rw-r--r--clang/tools/libclang/CIndex.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/clang/tools/libclang/CIndex.cpp b/clang/tools/libclang/CIndex.cpp
index 3a6c408bff1..bb75db3554b 100644
--- a/clang/tools/libclang/CIndex.cpp
+++ b/clang/tools/libclang/CIndex.cpp
@@ -6119,6 +6119,8 @@ namespace clang {
bool RunSafely(llvm::CrashRecoveryContext &CRC,
void (*Fn)(void*), void *UserData,
unsigned Size) {
+ if (getenv("LIBCLANG_THREAD_SMALLSTACK"))
+ Size = 0x10000; // 64K.
if (!Size)
Size = GetSafetyThreadStackSize();
if (Size)
OpenPOWER on IntegriCloud