forked from OSchip/llvm-project
Wen-Han Gu: Fix for http://llvm.org/bugs/show_bug.cgi?id=14312 Exception Table out-of-range but still keep walking.
llvm-svn: 167733
This commit is contained in:
parent
467ab7b8d0
commit
70abebed37
|
@ -552,7 +552,7 @@ scan_eh_tab(scan_results& results, _Unwind_Action actions, bool native_exception
|
|||
const uint8_t* callSiteTableEnd = callSiteTableStart + callSiteTableLength;
|
||||
const uint8_t* actionTableStart = callSiteTableEnd;
|
||||
const uint8_t* callSitePtr = callSiteTableStart;
|
||||
while (true)
|
||||
while (callSitePtr < callSiteTableEnd)
|
||||
{
|
||||
// There is one entry per call site.
|
||||
#if !__arm__
|
||||
|
@ -782,7 +782,11 @@ scan_eh_tab(scan_results& results, _Unwind_Action actions, bool native_exception
|
|||
call_terminate(native_exception, unwind_exception);
|
||||
}
|
||||
#endif // !__arm__
|
||||
} // there is no break out of this loop, only return
|
||||
} // there might be some tricky cases which break out of this loop
|
||||
|
||||
// It is possible that no eh table entry specify how to handle
|
||||
// this exception. By spec, terminate it immediately.
|
||||
call_terminate(native_exception, unwind_exception);
|
||||
}
|
||||
|
||||
// public API
|
||||
|
|
Loading…
Reference in New Issue