apicompatanamdw/compatanalysercmd/headeranalyser/src/Issues.cpp
changeset 3 ebe3f8f03b59
parent 0 638b9c697799
child 12 a0eee409ff14
--- a/apicompatanamdw/compatanalysercmd/headeranalyser/src/Issues.cpp	Thu Apr 22 17:15:08 2010 +0530
+++ b/apicompatanamdw/compatanalysercmd/headeranalyser/src/Issues.cpp	Mon Apr 26 16:28:13 2010 +0530
@@ -138,6 +138,9 @@
 const char* KIssueTypeNewOverride = "overridden in derivable class";
 //const char* KIssueTypeRemovedOverride = "removed override in derivable class";
 const char* KIssueTypeEmpty = "contains nothing to be analysed";
+const char* KIssueTypeDefaultParam = "has changed one of its default parameters";
+const char* KIssueTypeOverload = "has been overloaded";
+
 
 // Table of the issue type descriptions
 const char* KIssueTypeDesc[EIssueTypeCount] = 
@@ -166,7 +169,9 @@
     KIssueTypeParamConst,
     KIssueTypeParamConst2,
 	KIssueTypeReturnConst,
-    KIssueTypeReturnConst2    
+    KIssueTypeReturnConst2,
+	KIssueTypeDefaultParam,
+	KIssueTypeOverload
 };
 
 template <typename T>
@@ -555,6 +560,45 @@
 	return ignoreinfo;
 }
 
+//	Param,                    
+//	ESeverityInformative,        
+template <> TBCSeverity BCseverityAccessible<EIssueIdentityExportedFunction,EIssueTypeDefaultParam>(bool accessible)
+{
+	return ESeverityInformative;
+}
+template <> string ignoreInfo<EIssueIdentityExportedFunction,EIssueTypeDefaultParam>(const HANodeIterator& baseline,const HANodeIterator& current)
+{
+    string ignoreinfo=KIgnoreInfoNone;
+    DOMElement * element = static_cast<DOMElement*>(current.current);
+    DOMNodeList* childs = element->getChildNodes();
+    
+    XMLSize_t childcount = childs->getLength();
+
+    unsigned int i = 0;
+    for (i = 0; i < childcount; ++i)
+    {
+        DOMNode* child = childs->item(i);
+        HANodeIterator childit(current);
+        childit.current = child;
+
+        short nodetype = childit->getNodeType();
+        if (nodetype == DOMNode::ELEMENT_NODE)
+        {
+            const XMLCh * defaultval = childit.GetAttribute(KXMLDefaultString);
+            if ( defaultval )
+            {
+                ignoreinfo += toString(defaultval);
+            }
+            else
+            {
+            }
+            ignoreinfo += ";";
+        }
+
+    }
+	return ignoreinfo;
+}
+
 //	Param non-const to const,                    
 //	ESeverityNULL,        
 template <> TBCSeverity BCseverityAccessible<EIssueIdentityExportedFunction,EIssueTypeParamConst>(bool accessible)
@@ -748,6 +792,22 @@
 	return ignoreinfo;
 }
 
+//	Overloaded function,                               	
+//	ESeverityBBCBreak,                 
+template <> TBCSeverity BCseverityAccessible<EIssueIdentityExportedFunction,EIssueTypeOverload>(bool accessible)
+{
+	if ( !accessible )
+	{
+		return ESeverityNULL;
+	}
+	return ESeverityBBCBreak;
+}
+template <> string ignoreInfo<EIssueIdentityExportedFunction,EIssueTypeOverload>(const HANodeIterator& baseline,const HANodeIterator& current)
+{
+	string ignoreinfo=KIgnoreInfoNone;
+	return ignoreinfo;
+}
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////////////
 //EIssueIdentityInlineFunction,
 //   Removal,                  
@@ -780,6 +840,17 @@
 	return ignoreInfo<EIssueIdentityExportedFunction,EIssueTypeParam>(baseline,current);
 }
 
+//	Param,                    
+//	ESeverityInformative,     
+template <> TBCSeverity BCseverityAccessible<EIssueIdentityInlineFunction,EIssueTypeDefaultParam>(bool accessible)
+{
+	return ESeverityInformative;
+}
+template <> string ignoreInfo<EIssueIdentityInlineFunction,EIssueTypeDefaultParam>(const HANodeIterator& baseline,const HANodeIterator& current)
+{
+	return ignoreInfo<EIssueIdentityExportedFunction,EIssueTypeDefaultParam>(baseline,current);
+}
+
 //	Param non-const to const,                    
 //	ESeverityNULL,        
 template <> TBCSeverity BCseverityAccessible<EIssueIdentityInlineFunction,EIssueTypeParamConst>(bool accessible)
@@ -941,6 +1012,17 @@
 	return ignoreInfo<EIssueIdentityExportedFunction,EIssueTypeParam>(baseline,current);
 }
 
+//	Param,                    
+//	ESeverityInformative,  
+
+template <> TBCSeverity BCseverityAccessible<EIssueIdentityVirtualFunction,EIssueTypeDefaultParam>(bool accessible)
+{	
+	return ESeverityInformative;
+}
+template <> string ignoreInfo<EIssueIdentityVirtualFunction,EIssueTypeDefaultParam>(const HANodeIterator& baseline,const HANodeIterator& current)
+{
+	return ignoreInfo<EIssueIdentityExportedFunction,EIssueTypeDefaultParam>(baseline,current);
+}
 //	Return,                   
 //	ESeverityBBCBreak,     
 template <> TBCSeverity BCseverityAccessible<EIssueIdentityVirtualFunction,EIssueTypeReturn>(bool accessible)
@@ -1999,6 +2081,16 @@
 	}
 	return ESeveritySCBreak;
 }
+//	Param,                    
+//	ESeveritySCInformative,        
+template <> TSCSeverity SCseverityAccessible<EIssueIdentityExportedFunction,EIssueTypeDefaultParam>(bool accessible)
+{
+	if ( !accessible )
+	{
+		return ESeveritySCNULL;
+	}
+	return ESeveritySCInformative;
+}
 
 //	Param non-const to const,                    
 //	ESeveritySCBreak, 
@@ -2066,7 +2158,12 @@
 	return ESeveritySCBreak;
 }
 
-
+//	Overloaded function,                               	
+//	ESeveritySCNULL,                 
+template <> TSCSeverity SCseverityAccessible<EIssueIdentityExportedFunction,EIssueTypeOverload>(bool accessible)
+{
+	return ESeveritySCNULL;
+}
 ///////////////////////////////////////////////////////////////////////////////////////////////////////////
 //EIssueIdentityInlineFunction,
 //   Removal,                  
@@ -2091,6 +2188,17 @@
 	return ESeveritySCBreak;
 }
 
+//	Param,                    
+//	ESeveritySCInformative,     
+template <> TSCSeverity SCseverityAccessible<EIssueIdentityInlineFunction,EIssueTypeDefaultParam>(bool accessible)
+{
+	if ( !accessible )
+	{
+		return ESeveritySCNULL;
+	}
+	return ESeveritySCInformative;
+}
+
 //	Param non-const to const,                    
 //	ESeveritySCBreak,
 template <> TSCSeverity SCseverityAccessible<EIssueIdentityInlineFunction,EIssueTypeParamConst>(bool accessible)
@@ -2157,7 +2265,6 @@
 	return ESeveritySCBreak;
 }
 
-
 ///////////////////////////////////////////////////////////////////////////////////////////////////////////
 //EIssueIdentityExportedVirtualFunction,
 //   Removal,                  
@@ -2206,7 +2313,16 @@
 	}
 	return ESeveritySCBreak;
 }
-
+//	Param,                    
+//	ESeveritySCInformative,  
+template <> TSCSeverity SCseverityAccessible<EIssueIdentityVirtualFunction,EIssueTypeDefaultParam>(bool accessible)
+{
+	if ( !accessible )
+	{
+		return ESeveritySCNULL;
+	}
+	return ESeveritySCInformative;
+}
 //	Return,                   
 //	ESeveritySCBreak,     
 template <> TSCSeverity SCseverityAccessible<EIssueIdentityVirtualFunction,EIssueTypeReturn>(bool accessible)