summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorStephane Sezer <sas@cd80.net>2016-01-08 20:32:35 +0000
committerStephane Sezer <sas@cd80.net>2016-01-08 20:32:35 +0000
commit728384a05ecf23ff3ede48ee6bf03fadfe09c726 (patch)
treeab3e5aac244f517b07d5a752e1ba1779d862aa2d /clang/lib/CodeGen/CodeGenModule.cpp
parentb705b100127b0fec09f2219381d8428914773a27 (diff)
downloadbcm5719-llvm-728384a05ecf23ff3ede48ee6bf03fadfe09c726.tar.gz
bcm5719-llvm-728384a05ecf23ff3ede48ee6bf03fadfe09c726.zip
Prevent infinite recursive loop in AppleObjCTrampolineHandler constructor
Summary: When we construct AppleObjCTrampolineHandler, if m_impl_fn_addr is invalid, we call CanJIT(). If the gdb remote process does not support allocating and deallocating memory, this call stack will include a call to the AppleObjCRuntime constructor. The AppleObjCRuntime constructor will then call the AppleObjCTrampolineHandler constructor, creating a recursive call loop that eventually overflows the stack and segfaults. Avoid this call loop by not constructing the AppleObjCTrampolineHandler within AppleObjCRuntime until we actually need to use it. Reviewers: clayborg, jingham Subscribers: sas, lldb-commits Differential Revision: http://reviews.llvm.org/D15978 Change by Francis Ricci <fjricci@fb.com> llvm-svn: 257204
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud