Skip to content
Snippets Groups Projects
Commit 179f9b64 authored by an7s's avatar an7s
Browse files

Added FPTR DEF/USE annotations

Former-commit-id: 51689321e03bffc8715a7b903c9fa36f074ccef8
parent ea75b050
No related branches found
No related tags found
No related merge requests found
......@@ -33,33 +33,28 @@ namespace MEDS_Annotation
// base class for deriving objects.
class MEDS_AnnotationBase
{
public:
public:
MEDS_AnnotationBase() { init(); }
virtual ~MEDS_AnnotationBase() { }
/* i'd rather make this a pure virtual func, but can't figure out why it won't compile */
virtual const std::string toString() const { assert(0); }
// valid annotation?
virtual bool isValid() const { return m_isValid; }
virtual void setValid() { m_isValid = true; }
// valid annotation?
virtual bool isValid() const { return m_isValid; }
virtual void setValid() { m_isValid = true; }
virtual void setInvalid() { m_isValid = false; }
// virtual offset
virtual VirtualOffset getVirtualOffset() const { return m_virtualOffset; }
// virtual offset
virtual VirtualOffset getVirtualOffset() const { return m_virtualOffset; }
virtual void init() { m_isValid=false; }
virtual bool isFuncAnnotation() const { return false; } // false by default
virtual bool isFuncAnnotation() const { return false; } // false by default
protected:
bool m_isValid;
VirtualOffset m_virtualOffset;
VirtualOffset m_virtualOffset;
};
}
......
......@@ -44,6 +44,7 @@ class VirtualOffset
VirtualOffset& operator = (const VirtualOffset &p_other);
const std::string to_string() const { std::ostringstream oss; oss<<getLibraryName() << "+0x"<<std::hex<<getOffset(); return oss.str(); }
const std::string toString() const { return to_string(); }
private:
ApplicationAddress m_offset;
......
......@@ -27,6 +27,7 @@
#include "MEDS_SafeFuncAnnotation.hpp"
#include "MEDS_ProblemFuncAnnotation.hpp"
#include "MEDS_FRSafeAnnotation.hpp"
#include "MEDS_FPTRShadowAnnotation.hpp"
// @todo: multiple annotation per instruction
......@@ -81,6 +82,7 @@ void MEDS_AnnotationParser::parseFile(istream &p_inputStream)
delete annot; \
}
ADD_AND_CONTINUE_IF_VALID(MEDS_FPTRShadowAnnotation);
ADD_AND_CONTINUE_IF_VALID(MEDS_InstructionCheckAnnotation);
ADD_AND_CONTINUE_IF_VALID(MEDS_SafeFuncAnnotation);
ADD_AND_CONTINUE_IF_VALID(MEDS_ProblemFuncAnnotation);
......
LIB=../lib/libMEDSannotation.a
OBJS=VirtualOffset.o MEDS_Register.o MEDS_AnnotationParser.o MEDS_InstructionCheckAnnotation.o MEDS_SafeFuncAnnotation.o MEDS_ProblemFuncAnnotation.o MEDS_FRSafeAnnotation.o FuncExitAnnotation.o
OBJS=VirtualOffset.o MEDS_Register.o MEDS_AnnotationParser.o MEDS_InstructionCheckAnnotation.o MEDS_SafeFuncAnnotation.o MEDS_ProblemFuncAnnotation.o MEDS_FRSafeAnnotation.o FuncExitAnnotation.o MEDS_FPTRShadowAnnotation.o
all: $(OBJS)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment