From 179f9b64ad51078de7a8b50ef429b779fbea572e Mon Sep 17 00:00:00 2001
From: an7s <an7s@git.zephyr-software.com>
Date: Tue, 23 Dec 2014 17:04:38 +0000
Subject: [PATCH] Added FPTR DEF/USE annotations

Former-commit-id: 51689321e03bffc8715a7b903c9fa36f074ccef8
---
 .../include/MEDS_AnnotationBase.hpp           | 23 ++++++++-----------
 libMEDSannotation/include/VirtualOffset.hpp   |  1 +
 .../src/MEDS_AnnotationParser.cpp             |  2 ++
 libMEDSannotation/src/Makefile                |  2 +-
 4 files changed, 13 insertions(+), 15 deletions(-)

diff --git a/libMEDSannotation/include/MEDS_AnnotationBase.hpp b/libMEDSannotation/include/MEDS_AnnotationBase.hpp
index ca2227f9f..997fdcaff 100644
--- a/libMEDSannotation/include/MEDS_AnnotationBase.hpp
+++ b/libMEDSannotation/include/MEDS_AnnotationBase.hpp
@@ -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;
 };
 
 }
diff --git a/libMEDSannotation/include/VirtualOffset.hpp b/libMEDSannotation/include/VirtualOffset.hpp
index bd5ed2021..8ae328e71 100644
--- a/libMEDSannotation/include/VirtualOffset.hpp
+++ b/libMEDSannotation/include/VirtualOffset.hpp
@@ -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;
diff --git a/libMEDSannotation/src/MEDS_AnnotationParser.cpp b/libMEDSannotation/src/MEDS_AnnotationParser.cpp
index 0402a7024..9d80a8c0a 100644
--- a/libMEDSannotation/src/MEDS_AnnotationParser.cpp
+++ b/libMEDSannotation/src/MEDS_AnnotationParser.cpp
@@ -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);
diff --git a/libMEDSannotation/src/Makefile b/libMEDSannotation/src/Makefile
index ef9151510..ef6cfce3e 100644
--- a/libMEDSannotation/src/Makefile
+++ b/libMEDSannotation/src/Makefile
@@ -1,7 +1,7 @@
 
 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)
 
-- 
GitLab