retdec
|
A default semantics which doesn't know anything. More...
#include <default_semantics.h>
Public Member Functions | |
Semantics Interface | |
virtual std::string | getId () const override |
Returns the ID of the semantics. More... | |
virtual std::optional< std::string > | getMainFuncName () const override |
Returns the name of the main function. More... | |
virtual std::optional< std::string > | getCHeaderFileForFunc (const std::string &funcName) const override |
Returns the C header file for the given function. More... | |
virtual std::optional< bool > | funcNeverReturns (const std::string &funcName) const override |
Gets the information whether the given function never returns. More... | |
virtual std::optional< std::string > | getNameOfVarStoringResult (const std::string &funcName) const override |
Returns an appropriate name of the variable that stores the result of calls to the given function. More... | |
virtual std::optional< std::string > | getNameOfParam (const std::string &funcName, unsigned paramPos) const override |
Returns an appropriate name of the given function's parameter. More... | |
virtual std::optional< IntStringMap > | getSymbolicNamesForParam (const std::string &funcName, unsigned paramPos) const override |
Returns a mapping of integers into their symbolic names for the given parameter of the given function. More... | |
![]() | |
virtual | ~Semantics ()=default |
Static Public Member Functions | |
static ShPtr< Semantics > | create () |
Creates a new semantics. More... | |
Protected Member Functions | |
DefaultSemantics () | |
Constructs the semantics. More... | |
![]() | |
Semantics ()=default | |
A default semantics which doesn't know anything.
This class overrides all the pure virtual functions from Semantics so that they always return an "I don't know" answer. Use this class as the base class of your semantics if you just want to override selected functions only.
Instances of this class have reference object semantics.
|
protected |
Constructs the semantics.
|
overridevirtual |
Gets the information whether the given function never returns.
true
if the given function never returns, false
if the function may return, and std::nullopt
otherwise.[in] | funcName | Name of the function. |
For example, semantics describing the standard C library may return true
for "exit"
.
Implements retdec::llvmir2hll::Semantics.
Reimplemented in retdec::llvmir2hll::WinAPISemantics, and retdec::llvmir2hll::LibcSemantics.
|
overridevirtual |
Returns the C header file for the given function.
"file"
if the header file is known, std::nullopt
otherwise.[in] | funcName | Name of the function. |
For example, semantics describing the standard C library may return "stdio.h"
for "printf"
.
Implements retdec::llvmir2hll::Semantics.
Reimplemented in retdec::llvmir2hll::WinAPISemantics, retdec::llvmir2hll::LibcSemantics, and retdec::llvmir2hll::GCCGeneralSemantics.
|
overridevirtual |
Returns the ID of the semantics.
Implements retdec::llvmir2hll::Semantics.
Reimplemented in retdec::llvmir2hll::WinAPISemantics, retdec::llvmir2hll::LibcSemantics, and retdec::llvmir2hll::GCCGeneralSemantics.
|
overridevirtual |
Returns the name of the main function.
Implements retdec::llvmir2hll::Semantics.
Reimplemented in retdec::llvmir2hll::LibcSemantics.
|
overridevirtual |
Returns an appropriate name of the given function's parameter.
"name"
if the name is known, std::nullopt
otherwise.[in] | funcName | Name of the function. |
[in] | paramPos | Position of the parameter. |
For example, semantics describing the standard C library may return "file_path"
for the first parameter of "fopen"
.
Implements retdec::llvmir2hll::Semantics.
Reimplemented in retdec::llvmir2hll::WinAPISemantics, retdec::llvmir2hll::LibcSemantics, and retdec::llvmir2hll::GCCGeneralSemantics.
|
overridevirtual |
Returns an appropriate name of the variable that stores the result of calls to the given function.
"name"
if the name is known, std::nullopt
otherwise.[in] | funcName | Name of the function. |
For example, semantics describing the standard C library may return "c"
for "getchar"
.
Implements retdec::llvmir2hll::Semantics.
Reimplemented in retdec::llvmir2hll::WinAPISemantics, retdec::llvmir2hll::LibcSemantics, and retdec::llvmir2hll::GCCGeneralSemantics.
|
overridevirtual |
Returns a mapping of integers into their symbolic names for the given parameter of the given function.
map
if the mapping is known, std::nullopt
otherwise.[in] | funcName | Name of the function. |
[in] | paramPos | Position of the parameter. |
For example, a semantics may return
for "flock"
and 2
.
Implements retdec::llvmir2hll::Semantics.
Reimplemented in retdec::llvmir2hll::WinAPISemantics, retdec::llvmir2hll::LibcSemantics, and retdec::llvmir2hll::GCCGeneralSemantics.