mirror of
https://github.com/intel/llvm.git
synced 2026-01-22 23:49:22 +08:00
Added support for dynamic sanity checking in
expressions. Values used by the expression are checked by validation functions which cause the program to crash if the values are unsafe. Major changes: - Added IRDynamicChecks.[ch], which contains the core code related to this feature - Modified CommandObjectExpression to install the validator functions into the target process. - Added an accessor to Process that gets/sets the helper functions llvm-svn: 112690
This commit is contained in:
@@ -190,6 +190,27 @@ bool
|
||||
CommandObjectExpression::EvaluateExpression (const char *expr, bool bare, Stream &output_stream, Stream &error_stream,
|
||||
CommandReturnObject *result)
|
||||
{
|
||||
if (!m_exe_ctx.process)
|
||||
{
|
||||
error_stream.Printf ("Execution context doesn't contain a process");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!m_exe_ctx.process->GetDynamicCheckers())
|
||||
{
|
||||
DynamicCheckerFunctions *dynamic_checkers = new DynamicCheckerFunctions();
|
||||
|
||||
StreamString install_errors;
|
||||
|
||||
if (!dynamic_checkers->Install(install_errors, m_exe_ctx))
|
||||
{
|
||||
error_stream.Printf("Couldn't install dynamic checkers into the execution context: %s", install_errors.GetData());
|
||||
return false;
|
||||
}
|
||||
|
||||
m_exe_ctx.process->SetDynamicCheckers(dynamic_checkers);
|
||||
}
|
||||
|
||||
ClangUserExpression user_expression (expr);
|
||||
|
||||
if (!user_expression.Parse (error_stream, m_exe_ctx))
|
||||
|
||||
Reference in New Issue
Block a user