apicompatanamdw/compatanalysercmd/headeranalyser/src/Issues.cpp
changeset 0 638b9c697799
child 3 ebe3f8f03b59
equal deleted inserted replaced
-1:000000000000 0:638b9c697799
       
     1 /*
       
     2 * Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). 
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  
       
    15 *
       
    16 */
       
    17 
       
    18 #include <sstream>
       
    19 #include "Issues.h"
       
    20 #include "XMLStringConst.h"
       
    21 
       
    22 const char* KIgnoreInfoNone = "None";
       
    23 
       
    24 // Textual descriptions for the severity levels
       
    25 // Can be seen in the result xml
       
    26 const char* KSeverityNULL = "None";
       
    27 const char* KSeverityBBCBreak = "BBC Break";
       
    28 const char* KSeverityPossibleBBCBreak = "Possible BBC Break";
       
    29 const char* KSeverityFCBreak = "FC Break";
       
    30 const char* KSeverityPossibleFCBreak = "Possible FC Break";
       
    31 const char* KSeverityInformative = "Informative";
       
    32 
       
    33 // Table of severity descriptions levels for binary compatibility
       
    34 const char* KSeverityDesc[ESeverityCount] = 
       
    35 {
       
    36     KSeverityNULL,
       
    37     KSeverityBBCBreak,
       
    38     KSeverityPossibleBBCBreak,
       
    39     KSeverityInformative,
       
    40 	KSeverityFCBreak,
       
    41     KSeverityPossibleFCBreak
       
    42 };
       
    43 
       
    44 // Textual descriptions for the severity levels
       
    45 // Can be seen in the result xml
       
    46 const char* KSeveritySCNULL = "None";
       
    47 const char* KSeveritySCBreak = "SC Break";
       
    48 const char* KSeverityPossibleSCBreak = "Possible SC Break";
       
    49 const char* KSeveritySCInformative = "Informative";
       
    50 
       
    51 // Table of severity descriptions levels for source compatibility
       
    52 const char* KSeveritySCDesc[ESeveritySCCount] = 
       
    53 {
       
    54     KSeveritySCNULL,
       
    55     KSeveritySCBreak,
       
    56     KSeverityPossibleSCBreak,
       
    57     KSeveritySCInformative
       
    58 };
       
    59 
       
    60 
       
    61 // Textual descriptions for the identities
       
    62 // Can be seen in the result xml
       
    63 const char* KIdentityClass = "Class";
       
    64 const char* KIdentityEnumeration = "Enumeration";
       
    65 const char* KIdentityExportedFunction = "Exported function";
       
    66 const char* KIdentityVirtualFunction = "Virtual function";
       
    67 const char* KIdentityStruct = "Struct";
       
    68 const char* KIdentityUnion = "Union";
       
    69 const char* KIdentityEnumerationValue = "Enumeration value";
       
    70 const char* KIdentityTypedef = "Typedef";
       
    71 const char* KIdentityVariable = "Constant";
       
    72 const char* KIdentityField = "Field";
       
    73 const char* KIdentityFieldInaccessible = "Field";
       
    74 const char* KIdentityFile = "File";
       
    75 const char* KIdentityMacro = "Macro";
       
    76 const char* KIdentityInlineFunction = "Inline function";
       
    77 const char* KIdentityVirtualTable= "Virtual table";
       
    78 const char*	KIdentitySubobject = "Subobject";
       
    79 const char* KIdentityVirtualTablePointer = "Virtual table pointer";
       
    80 const char* KIdentityExportedInlineFunction = "Exported inline function";
       
    81 const char* KIdentityExportedVirtualFunction = "Exported virtual function";
       
    82 const char* KIdentityVirtualInlineFunction = "Virtual inline function";
       
    83 const char* KIdentityExportedVirtualInlineFunction = "Exported virtual inline function";
       
    84 const char* KIdentityStructMember = "Strcut member";
       
    85 
       
    86 
       
    87 // Table of the issue description
       
    88 const char* KIssueIdentityDesc[EIssueIdentityCount] = 
       
    89 {
       
    90     KIdentityClass,
       
    91     KIdentityExportedFunction,
       
    92     KIdentityInlineFunction,
       
    93     KIdentityVirtualFunction,
       
    94     KIdentityEnumeration,
       
    95     KIdentityStruct,
       
    96     KIdentityUnion,
       
    97     KIdentityEnumerationValue,
       
    98     KIdentityTypedef,
       
    99     KIdentityVariable,
       
   100     KIdentityField,
       
   101     KIdentityFieldInaccessible,
       
   102     KIdentityMacro,
       
   103     KIdentityFile,
       
   104     KIdentityVirtualTable,
       
   105     KIdentitySubobject,
       
   106     KIdentityVirtualTablePointer,
       
   107     KIdentityExportedInlineFunction,
       
   108     KIdentityExportedVirtualFunction,
       
   109     KIdentityVirtualInlineFunction,
       
   110     KIdentityExportedVirtualInlineFunction,
       
   111 	KIdentityStructMember
       
   112 };
       
   113 
       
   114 // Textual descriptions for the issue types
       
   115 // Can be seen in the result xml
       
   116 const char* KIssueTypeRemoval = "has been removed";
       
   117 const char* KIssueTypeAddition = "has been added";
       
   118 const char* KIssueTypeChange = "has been changed";
       
   119 const char* KIssueTypeSize = "has changed size";
       
   120 const char* KIssueTypeBaseSize = "has changed base size";
       
   121 const char* KIssueTypeAlign = "has changed alignment";
       
   122 const char* KIssueTypeParam = "has changed one of its parameters";
       
   123 const char* KIssueTypeParamConst = "has changed one of its parameters or funtion type";
       
   124 const char* KIssueTypeParamConst2 = "has changed one of its parameters or funtion type";
       
   125 const char* KIssueTypeReturn = "has changed its return value";
       
   126 const char* KIssueTypeReturnConst = "has changed its return value";
       
   127 const char* KIssueTypeReturnConst2 = "has changed its return value";
       
   128 const char* KIssueTypeAccess = "has more restricted access level";
       
   129 const char* KIssueTypeInheritance = "has changes in inheritance";
       
   130 const char* KIssueTypeOffset = "has changed its offset";
       
   131 const char* KIssueTypeOrderChange = "order has changed";
       
   132 const char* KIssueTypeCompilationError = "has compilation errors";
       
   133 const char* KIssueTypeNotAnalysed = "could not be analysed";
       
   134 const char* KIssueTypeUnderConstruction = "analysis under construction";
       
   135 const char* KIssueTypeVirtualBases = "has virtual bases";
       
   136 const char* KIssueTypeChangeInType = "has changed its type";
       
   137 const char* KIssueTypeChangeInInitialisation = "has changed its initialisation value";
       
   138 const char* KIssueTypeNewOverride = "overridden in derivable class";
       
   139 //const char* KIssueTypeRemovedOverride = "removed override in derivable class";
       
   140 const char* KIssueTypeEmpty = "contains nothing to be analysed";
       
   141 
       
   142 // Table of the issue type descriptions
       
   143 const char* KIssueTypeDesc[EIssueTypeCount] = 
       
   144 {
       
   145     KIssueTypeRemoval,
       
   146     KIssueTypeAddition,
       
   147     KIssueTypeChange,
       
   148     KIssueTypeSize,
       
   149     KIssueTypeAlign,
       
   150     KIssueTypeParam,
       
   151 	KIssueTypeReturn,
       
   152 	KIssueTypeAccess,
       
   153     KIssueTypeInheritance,
       
   154     KIssueTypeOffset,
       
   155     KIssueTypeOrderChange,
       
   156     KIssueTypeChangeInType,
       
   157     KIssueTypeChangeInInitialisation,
       
   158     KIssueTypeCompilationError,
       
   159     KIssueTypeNotAnalysed,
       
   160     KIssueTypeVirtualBases,
       
   161     KIssueTypeNewOverride,
       
   162 //	KIssueTypeRemovedOverride,
       
   163     KIssueTypeEmpty,
       
   164     KIssueTypeBaseSize,
       
   165     KIssueTypeUnderConstruction,
       
   166     KIssueTypeParamConst,
       
   167     KIssueTypeParamConst2,
       
   168 	KIssueTypeReturnConst,
       
   169     KIssueTypeReturnConst2    
       
   170 };
       
   171 
       
   172 template <typename T>
       
   173 string GetIgnoreInfoFromAttribute(const HANodeIterator& node, const T* attribute)
       
   174 {
       
   175 	string ignoreinfo="";
       
   176 	
       
   177 	const XMLCh* idx = node.GetAttribute(attribute);
       
   178 	if (idx)
       
   179 	{
       
   180 		ignoreinfo = toString(idx);
       
   181 	}
       
   182 	return ignoreinfo;
       
   183 }
       
   184 
       
   185 /**
       
   186 * In the following the severities and ignore information of issues are defined through template mechanism.
       
   187 * This allows linking time checking that we have not forgot to define meaningful information for new issues.
       
   188 * In order to modify severity information or ignore information first determine the TIssueIdentity and TIssueType
       
   189 * of the issue and then find the correct function (BCseverityAccessible<TIssueIdentity,TIssueType>, 
       
   190 * SCseverityAccessible<TIssueIdentity,TIssueType> and ignoreInfo<TIssueIdentity,TIssueType>) and modify the function
       
   191 * definition to match with the severity and ignore information.
       
   192 
       
   193 * The BCseverityAccessible function includes parameter [accessible] that defines if the element is directly accessible
       
   194 * or only through some inline method.
       
   195 */
       
   196 ///////////////////////////////////////////////////////////////////////////////////////////////////////////
       
   197 template <> TBCSeverity BCseverityAccessible<EIssueIdentityClass,EIssueTypeRemoval>(bool accessible)
       
   198 {
       
   199 	if ( !accessible )
       
   200 	{
       
   201 		return ESeverityPossibleBBCBreak;
       
   202 	}
       
   203 	return ESeverityBBCBreak;
       
   204 }
       
   205 
       
   206 
       
   207 template <> string ignoreInfo<EIssueIdentityClass,EIssueTypeRemoval>(const HANodeIterator& baseline,const HANodeIterator& current)
       
   208 {
       
   209 	string ignoreinfo=KIgnoreInfoNone;
       
   210 
       
   211 	return ignoreinfo;
       
   212 }
       
   213 
       
   214 
       
   215 //Size,                     
       
   216 //ESeverityBBCBreak,        
       
   217 template <> TBCSeverity BCseverityAccessible<EIssueIdentityClass,EIssueTypeSize>(bool accessible)
       
   218 {
       
   219 	if ( !accessible )
       
   220 	{
       
   221 		return ESeverityPossibleBBCBreak;
       
   222 	}
       
   223 	return ESeverityBBCBreak;
       
   224 }
       
   225 
       
   226 template <> string ignoreInfo<EIssueIdentityClass,EIssueTypeSize>(const HANodeIterator& baseline,const HANodeIterator& current)
       
   227 {
       
   228 	return  GetIgnoreInfoFromAttribute(current,KXMLSizeString);
       
   229 }
       
   230 
       
   231 //Align,                    
       
   232 //ESeverityBBCBreak,        
       
   233 template <> TBCSeverity BCseverityAccessible<EIssueIdentityClass,EIssueTypeAlign>(bool accessible)
       
   234 {
       
   235 	if ( !accessible )
       
   236 	{
       
   237 		return ESeverityPossibleBBCBreak;
       
   238 	}
       
   239 	return ESeverityBBCBreak;
       
   240 }
       
   241 
       
   242 template <> string ignoreInfo<EIssueIdentityClass,EIssueTypeAlign>(const HANodeIterator& baseline,const HANodeIterator& current)
       
   243 {
       
   244 	string ignoreinfo=KIgnoreInfoNone;
       
   245     const XMLCh* align = current.GetAttribute(KXMLAlignString);
       
   246 	if (align)
       
   247 	{
       
   248 		ignoreinfo = toString(align);
       
   249 	}
       
   250 	return ignoreinfo;
       
   251 }
       
   252 
       
   253 //Access,                   
       
   254 //ESeverityInformative,     
       
   255 
       
   256 template <> TBCSeverity BCseverityAccessible<EIssueIdentityClass,EIssueTypeAccess>(bool accessible)
       
   257 {
       
   258 	if ( !accessible )
       
   259 	{
       
   260 		return ESeverityInformative;
       
   261 	}
       
   262 	return ESeverityInformative;
       
   263 }
       
   264 
       
   265 template <> string ignoreInfo<EIssueIdentityClass,EIssueTypeAccess>(const HANodeIterator& baseline,const HANodeIterator& current)
       
   266 {
       
   267 	string ignoreinfo=KIgnoreInfoNone;
       
   268 	const XMLCh* access = current.GetAttribute(KXMLAccessString);
       
   269 	if (access)
       
   270 	{
       
   271 		ignoreinfo = toString(access);
       
   272 	}
       
   273 	return ignoreinfo;
       
   274 }
       
   275 
       
   276 //Inheritance,              
       
   277 //ESeverityPossibleBBCBreak,
       
   278 
       
   279 template <> TBCSeverity BCseverityAccessible<EIssueIdentityClass,EIssueTypeInheritance>(bool accessible)
       
   280 {
       
   281 	if ( !accessible )
       
   282 	{
       
   283 		return ESeverityPossibleBBCBreak;
       
   284 	}
       
   285 	return ESeverityPossibleBBCBreak;
       
   286 }
       
   287 
       
   288 template <> string ignoreInfo<EIssueIdentityClass,EIssueTypeInheritance>(const HANodeIterator& baseline,const HANodeIterator& current)
       
   289 {
       
   290 	string ignoreinfo=KIgnoreInfoNone;
       
   291     DOMNodeList* childs = current.GetElementsByTagName(KXMLBaseString);
       
   292 
       
   293     XMLSize_t childcount = childs->getLength();
       
   294 
       
   295     for (unsigned int i = 0; i < childcount; ++i)
       
   296     {
       
   297         HANodeIterator baselineit(current);
       
   298         baselineit.current = childs->item(i);
       
   299         
       
   300         ignoreinfo += GetIgnoreInfoFromAttribute(baselineit,KXMLAccessString);
       
   301         ignoreinfo += " ";
       
   302 
       
   303         if (baselineit.CheckForBooleanAttribute(KXMLVirtualString) )
       
   304         {
       
   305             ignoreinfo += "virtual ";
       
   306         }							
       
   307 
       
   308         ignoreinfo += GetTypeName(baselineit);
       
   309         ignoreinfo += ";";
       
   310     }
       
   311 
       
   312 	return ignoreinfo;
       
   313 }
       
   314 
       
   315 //KIssueNotAnalysed        
       
   316 //ESeverityInformative,    	
       
   317 
       
   318 template <> TBCSeverity BCseverityAccessible<EIssueIdentityClass,EIssueTypeNotAnalysed>(bool accessible)
       
   319 {
       
   320 	if ( !accessible )
       
   321 	{
       
   322 		return ESeverityInformative;
       
   323 	}
       
   324 	return ESeverityInformative;
       
   325 }
       
   326 
       
   327 template <> string ignoreInfo<EIssueIdentityClass,EIssueTypeNotAnalysed>(const HANodeIterator& baseline,const HANodeIterator& current)
       
   328 {
       
   329 	string ignoreinfo=KIgnoreInfoNone;
       
   330 
       
   331 	return ignoreinfo;
       
   332 }
       
   333 
       
   334 
       
   335 //EIssueTypeVirtualBases
       
   336 //Informative
       
   337 
       
   338 template <> TBCSeverity BCseverityAccessible<EIssueIdentityClass,EIssueTypeVirtualBases>(bool accessible)
       
   339 {
       
   340 	if ( !accessible )
       
   341 	{
       
   342 		return ESeverityInformative;
       
   343 	}
       
   344 	return ESeverityInformative;
       
   345 }
       
   346 
       
   347 template <> string ignoreInfo<EIssueIdentityClass,EIssueTypeVirtualBases>(const HANodeIterator& baseline,const HANodeIterator& current)
       
   348 {
       
   349 	string ignoreinfo=KIgnoreInfoNone;
       
   350 
       
   351 	return ignoreinfo;
       
   352 }
       
   353 
       
   354 //EIssueTypeBaseSize
       
   355 //ESeverityBBCBreak
       
   356 template <> TBCSeverity BCseverityAccessible<EIssueIdentityClass,EIssueTypeBaseSize>(bool accessible)
       
   357 {
       
   358 	if ( !accessible )
       
   359 	{
       
   360 		return ESeverityPossibleBBCBreak;
       
   361 	}
       
   362 	return ESeverityBBCBreak;
       
   363 }
       
   364 
       
   365 template <> string ignoreInfo<EIssueIdentityClass,EIssueTypeBaseSize>(const HANodeIterator& baseline,const HANodeIterator& current)
       
   366 {
       
   367 	string ignoreinfo=KIgnoreInfoNone;
       
   368 
       
   369 	const NodeIndex::dtable_t& datafields = ClassGenerateDataMemberTable(current);
       
   370 	int basesize = ClassBaseSize(current,datafields);
       
   371 
       
   372 	ostringstream stream; 
       
   373 	stream << basesize << flush;  
       
   374 	ignoreinfo = stream.str();
       
   375 
       
   376 	return ignoreinfo;
       
   377 }
       
   378 
       
   379 ///////////////////////////////////////////////////////////////////////////////////////////////////////////
       
   380 //EIssueIdentityEnumeration,
       
   381 //   Removal,                  
       
   382 //    {ESeverityPossibleFCBreak,
       
   383 template <> TBCSeverity BCseverityAccessible<EIssueIdentityEnumeration,EIssueTypeRemoval>(bool accessible)
       
   384 {
       
   385 	if ( !accessible )
       
   386 	{
       
   387 		return ESeverityPossibleFCBreak;
       
   388 	}
       
   389 	return ESeverityPossibleFCBreak;
       
   390 }
       
   391 
       
   392 template <> string ignoreInfo<EIssueIdentityEnumeration,EIssueTypeRemoval>(const HANodeIterator& baseline,const HANodeIterator& current)
       
   393 {
       
   394 	string ignoreinfo=KIgnoreInfoNone;
       
   395 
       
   396 	return ignoreinfo;
       
   397 }
       
   398 
       
   399 
       
   400 //Change,                   
       
   401 //SeverityFCBreak, 
       
   402 template <> TBCSeverity BCseverityAccessible<EIssueIdentityEnumeration,EIssueTypeChange>(bool accessible)
       
   403 {
       
   404 	if ( !accessible )
       
   405 	{
       
   406 		return ESeverityPossibleFCBreak;
       
   407 	}
       
   408 	return ESeverityPossibleFCBreak;
       
   409 }
       
   410 
       
   411 template <> string ignoreInfo<EIssueIdentityEnumeration,EIssueTypeChange>(const HANodeIterator& baseline,const HANodeIterator& current)
       
   412 {
       
   413 	string ignoreinfo=KIgnoreInfoNone;
       
   414 
       
   415     DOMNodeList* baselinechilds = current.GetElementsByTagName(KXMLEnumValueString);
       
   416     XMLSize_t baselinechildcount = baselinechilds->getLength();
       
   417     unsigned int i = 0;
       
   418     for (i = 0; i < baselinechildcount; ++i)
       
   419     {
       
   420         HANodeIterator baselineit(current);
       
   421         baselineit.current = baselinechilds->item(i);
       
   422         ignoreinfo += GetIgnoreInfoFromAttribute(baselineit,KXMLNameString);
       
   423         ignoreinfo += "=";
       
   424         ignoreinfo += GetIgnoreInfoFromAttribute(baselineit,KXMLInitString);
       
   425         ignoreinfo += ";";
       
   426     }
       
   427 
       
   428 	return ignoreinfo;
       
   429 }
       
   430 
       
   431 //Size,                     
       
   432 //ESeverityFCBreak,      
       
   433 template <> TBCSeverity BCseverityAccessible<EIssueIdentityEnumeration,EIssueTypeSize>(bool accessible)
       
   434 {
       
   435 	if ( !accessible )
       
   436 	{
       
   437 		return ESeverityPossibleFCBreak;
       
   438 	}
       
   439 	return ESeverityFCBreak;
       
   440 }
       
   441 template <> string ignoreInfo<EIssueIdentityEnumeration,EIssueTypeSize>(const HANodeIterator& baseline,const HANodeIterator& current)
       
   442 {
       
   443 	string ignoreinfo=KIgnoreInfoNone;
       
   444 	
       
   445 	const XMLCh* size = current.GetAttribute(KXMLSizeString);
       
   446 	if (size)
       
   447 	{
       
   448 		ignoreinfo = toString(size);
       
   449 	}
       
   450 	return ignoreinfo;
       
   451 }
       
   452 
       
   453 //Align,                    
       
   454 //ESeverityFCBreak,         
       
   455 template <> TBCSeverity BCseverityAccessible<EIssueIdentityEnumeration,EIssueTypeAlign>(bool accessible)
       
   456 {
       
   457 	if ( !accessible )
       
   458 	{
       
   459 		return ESeverityPossibleFCBreak;
       
   460 	}
       
   461 	return ESeverityFCBreak;
       
   462 }
       
   463 template <> string ignoreInfo<EIssueIdentityEnumeration,EIssueTypeAlign>(const HANodeIterator& baseline,const HANodeIterator& current)
       
   464 {
       
   465 	string ignoreinfo=KIgnoreInfoNone;
       
   466 	
       
   467 	const XMLCh* align = current.GetAttribute(KXMLAlignString);
       
   468 	if (align)
       
   469 	{
       
   470 		ignoreinfo = toString(align);
       
   471 	}
       
   472 	return ignoreinfo;
       
   473 }
       
   474 
       
   475 //Access,                   
       
   476 //ESeverityInformative,   
       
   477 template <> TBCSeverity BCseverityAccessible<EIssueIdentityEnumeration,EIssueTypeAccess>(bool accessible)
       
   478 {
       
   479 	if ( !accessible )
       
   480 	{
       
   481 		return ESeverityInformative;
       
   482 	}
       
   483 	return ESeverityInformative;
       
   484 }
       
   485 template <> string ignoreInfo<EIssueIdentityEnumeration,EIssueTypeAccess>(const HANodeIterator& baseline,const HANodeIterator& current)
       
   486 {
       
   487 	string ignoreinfo=KIgnoreInfoNone;
       
   488 	const XMLCh* access = current.GetAttribute(KXMLAccessString);
       
   489 	if (access)
       
   490 	{
       
   491 		ignoreinfo = toString(access);
       
   492 	}
       
   493 	return ignoreinfo;
       
   494 }
       
   495 
       
   496 ///////////////////////////////////////////////////////////////////////////////////////////////////////////
       
   497 //EIssueIdentityExportedFunction,
       
   498 //   Removal,                  
       
   499 //   ESeverityBBCBreak,        
       
   500 template <> TBCSeverity BCseverityAccessible<EIssueIdentityExportedFunction,EIssueTypeRemoval>(bool accessible)
       
   501 {
       
   502 	if ( !accessible )
       
   503 	{
       
   504 		return ESeverityPossibleBBCBreak;
       
   505 	}
       
   506 	return ESeverityBBCBreak;
       
   507 }
       
   508 template <> string ignoreInfo<EIssueIdentityExportedFunction,EIssueTypeRemoval>(const HANodeIterator& baseline,const HANodeIterator& current)
       
   509 {
       
   510 	string ignoreinfo=KIgnoreInfoNone;
       
   511 
       
   512 	return ignoreinfo;
       
   513 }
       
   514 	
       
   515 //	Param,                    
       
   516 //	ESeverityBBCBreak,        
       
   517 template <> TBCSeverity BCseverityAccessible<EIssueIdentityExportedFunction,EIssueTypeParam>(bool accessible)
       
   518 {
       
   519 	if ( !accessible )
       
   520 	{
       
   521 		return ESeverityPossibleBBCBreak;
       
   522 	}
       
   523 	return ESeverityBBCBreak;
       
   524 }
       
   525 template <> string ignoreInfo<EIssueIdentityExportedFunction,EIssueTypeParam>(const HANodeIterator& baseline,const HANodeIterator& current)
       
   526 {
       
   527     string ignoreinfo=KIgnoreInfoNone;
       
   528     DOMElement * element = static_cast<DOMElement*>(current.current);
       
   529     DOMNodeList* childs = element->getChildNodes();
       
   530     
       
   531     XMLSize_t childcount = childs->getLength();
       
   532 
       
   533     unsigned int i = 0;
       
   534     for (i = 0; i < childcount; ++i)
       
   535     {
       
   536         DOMNode* child = childs->item(i);
       
   537         HANodeIterator childit(current);
       
   538         childit.current = child;
       
   539 
       
   540         short nodetype = childit->getNodeType();
       
   541         if (nodetype == DOMNode::ELEMENT_NODE)
       
   542         {
       
   543             const XMLCh * defaultval = childit.GetAttribute(KXMLDefaultString);
       
   544             if ( defaultval )
       
   545             {
       
   546                 ignoreinfo += toString(defaultval);
       
   547             }
       
   548             else
       
   549             {
       
   550             }
       
   551             ignoreinfo += ";";
       
   552         }
       
   553 
       
   554     }
       
   555 	return ignoreinfo;
       
   556 }
       
   557 
       
   558 //	Param non-const to const,                    
       
   559 //	ESeverityNULL,        
       
   560 template <> TBCSeverity BCseverityAccessible<EIssueIdentityExportedFunction,EIssueTypeParamConst>(bool accessible)
       
   561 {
       
   562 	if ( !accessible )
       
   563 	{
       
   564 		return ESeverityNULL;
       
   565 	}
       
   566 	return ESeverityNULL;
       
   567 }
       
   568 template <> string ignoreInfo<EIssueIdentityExportedFunction,EIssueTypeParamConst>(const HANodeIterator& baseline,const HANodeIterator& current)
       
   569 {
       
   570 	string ignoreinfo=KIgnoreInfoNone;
       
   571     //ignoreinfo = GenerateFunctionSignature(*this);
       
   572     DOMElement * element = static_cast<DOMElement*>(current.current);
       
   573     DOMNodeList* childs = element->getChildNodes();
       
   574     
       
   575     XMLSize_t childcount = childs->getLength();
       
   576 
       
   577     unsigned int i = 0;
       
   578     for (i = 0; i < childcount; ++i)
       
   579     {
       
   580         DOMNode* child = childs->item(i);
       
   581         HANodeIterator childit(current);
       
   582         childit.current = child;
       
   583 
       
   584         short nodetype = childit->getNodeType();
       
   585         if (nodetype == DOMNode::ELEMENT_NODE)
       
   586         {
       
   587             const XMLCh * defaultval = childit.GetAttribute(KXMLDefaultString);
       
   588             if ( defaultval )
       
   589             {
       
   590                 ignoreinfo += toString(defaultval);
       
   591             }
       
   592             else
       
   593             {
       
   594             }
       
   595             ignoreinfo += ";";
       
   596         }
       
   597 
       
   598     }
       
   599 	return ignoreinfo;
       
   600 }
       
   601 
       
   602 //	Param const to non-const,                    
       
   603 //	ESeverityFCBreak,        
       
   604 template <> TBCSeverity BCseverityAccessible<EIssueIdentityExportedFunction,EIssueTypeParamConst2>(bool accessible)
       
   605 {
       
   606 	if ( !accessible )
       
   607 	{
       
   608 		return ESeverityPossibleFCBreak;
       
   609 	}
       
   610 	return ESeverityFCBreak;
       
   611 }
       
   612 template <> string ignoreInfo<EIssueIdentityExportedFunction,EIssueTypeParamConst2>(const HANodeIterator& baseline,const HANodeIterator& current)
       
   613 {
       
   614 	string ignoreinfo=KIgnoreInfoNone;
       
   615     //ignoreinfo = GenerateFunctionSignature(*this);
       
   616     DOMElement * element = static_cast<DOMElement*>(current.current);
       
   617     DOMNodeList* childs = element->getChildNodes();
       
   618     
       
   619     XMLSize_t childcount = childs->getLength();
       
   620 
       
   621     unsigned int i = 0;
       
   622     for (i = 0; i < childcount; ++i)
       
   623     {
       
   624         DOMNode* child = childs->item(i);
       
   625         HANodeIterator childit(current);
       
   626         childit.current = child;
       
   627 
       
   628         short nodetype = childit->getNodeType();
       
   629         if (nodetype == DOMNode::ELEMENT_NODE)
       
   630         {
       
   631             const XMLCh * defaultval = childit.GetAttribute(KXMLDefaultString);
       
   632             if ( defaultval )
       
   633             {
       
   634                 ignoreinfo += toString(defaultval);
       
   635             }
       
   636             else
       
   637             {
       
   638             }
       
   639             ignoreinfo += ";";
       
   640         }
       
   641 
       
   642     }
       
   643 	return ignoreinfo;
       
   644 }
       
   645 
       
   646 //	Return,                   
       
   647 //	ESeverityBBCBreak,        
       
   648 template <> TBCSeverity BCseverityAccessible<EIssueIdentityExportedFunction,EIssueTypeReturn>(bool accessible)
       
   649 {
       
   650 	if ( !accessible )
       
   651 	{
       
   652 		return ESeverityPossibleBBCBreak;
       
   653 	}
       
   654 	return ESeverityBBCBreak;
       
   655 }
       
   656 template <> string ignoreInfo<EIssueIdentityExportedFunction,EIssueTypeReturn>(const HANodeIterator& baseline,const HANodeIterator& current)
       
   657 {
       
   658 	string ignoreinfo=KIgnoreInfoNone;
       
   659 
       
   660 	const XMLCh * baselineid = current.GetAttribute(KXMLReturnsString);
       
   661 	if (baselineid)
       
   662 	{
       
   663 		HANodeIterator newbaseline(current);
       
   664 		bool ret1=newbaseline.FindNodeById(baselineid);
       
   665 		if (ret1)
       
   666 		{
       
   667 			ignoreinfo += GetTypeName(newbaseline);
       
   668 		}
       
   669 	}
       
   670 
       
   671 	return ignoreinfo;
       
   672 }
       
   673 
       
   674 //	Return const to non-const,                   
       
   675 //	ESeverityNULL,        
       
   676 template <> TBCSeverity BCseverityAccessible<EIssueIdentityExportedFunction,EIssueTypeReturnConst>(bool accessible)
       
   677 {
       
   678 	if ( !accessible )
       
   679 	{
       
   680 		return ESeverityNULL;
       
   681 	}
       
   682 	return ESeverityNULL;
       
   683 }
       
   684 template <> string ignoreInfo<EIssueIdentityExportedFunction,EIssueTypeReturnConst>(const HANodeIterator& baseline,const HANodeIterator& current)
       
   685 {
       
   686 	string ignoreinfo=KIgnoreInfoNone;
       
   687 
       
   688 	const XMLCh * baselineid = current.GetAttribute(KXMLReturnsString);
       
   689 	if (baselineid)
       
   690 	{
       
   691 		HANodeIterator newbaseline(current);
       
   692 		bool ret1=newbaseline.FindNodeById(baselineid);
       
   693 		if (ret1)
       
   694 		{
       
   695 			ignoreinfo += GetTypeName(newbaseline);
       
   696 		}
       
   697 	}
       
   698 
       
   699 	return ignoreinfo;
       
   700 }
       
   701 
       
   702 //	Return non-const to const,                   
       
   703 //	ESeverityFCBreak,        
       
   704 template <> TBCSeverity BCseverityAccessible<EIssueIdentityExportedFunction,EIssueTypeReturnConst2>(bool accessible)
       
   705 {
       
   706 	if ( !accessible )
       
   707 	{
       
   708 		return ESeverityPossibleFCBreak;
       
   709 	}
       
   710 	return ESeverityFCBreak;
       
   711 }
       
   712 template <> string ignoreInfo<EIssueIdentityExportedFunction,EIssueTypeReturnConst2>(const HANodeIterator& baseline,const HANodeIterator& current)
       
   713 {
       
   714 	string ignoreinfo=KIgnoreInfoNone;
       
   715 
       
   716 	const XMLCh * baselineid = current.GetAttribute(KXMLReturnsString);
       
   717 	if (baselineid)
       
   718 	{
       
   719 		HANodeIterator newbaseline(current);
       
   720 		bool ret1=newbaseline.FindNodeById(baselineid);
       
   721 		if (ret1)
       
   722 		{
       
   723 			ignoreinfo += GetTypeName(newbaseline);
       
   724 		}
       
   725 	}
       
   726 
       
   727 	return ignoreinfo;
       
   728 }
       
   729 
       
   730 //	Access,                               	
       
   731 //	ESeverityInformative,                 
       
   732 template <> TBCSeverity BCseverityAccessible<EIssueIdentityExportedFunction,EIssueTypeAccess>(bool accessible)
       
   733 {
       
   734 	if ( !accessible )
       
   735 	{
       
   736 		return ESeverityInformative;
       
   737 	}
       
   738 	return ESeverityInformative;
       
   739 }
       
   740 template <> string ignoreInfo<EIssueIdentityExportedFunction,EIssueTypeAccess>(const HANodeIterator& baseline,const HANodeIterator& current)
       
   741 {
       
   742 	string ignoreinfo=KIgnoreInfoNone;
       
   743 	const XMLCh* access = current.GetAttribute(KXMLAccessString);
       
   744 	if (access)
       
   745 	{
       
   746 		ignoreinfo = toString(access);
       
   747 	}
       
   748 	return ignoreinfo;
       
   749 }
       
   750 
       
   751 ///////////////////////////////////////////////////////////////////////////////////////////////////////////
       
   752 //EIssueIdentityInlineFunction,
       
   753 //   Removal,                  
       
   754 //    {ESeverityInformative,   
       
   755 template <> TBCSeverity BCseverityAccessible<EIssueIdentityInlineFunction,EIssueTypeRemoval>(bool accessible)
       
   756 {
       
   757 	if ( !accessible )
       
   758 	{
       
   759 		return ESeverityInformative;
       
   760 	}
       
   761 	return ESeverityInformative;
       
   762 }
       
   763 template <> string ignoreInfo<EIssueIdentityInlineFunction,EIssueTypeRemoval>(const HANodeIterator& baseline,const HANodeIterator& current)
       
   764 {
       
   765 	return ignoreInfo<EIssueIdentityExportedFunction,EIssueTypeRemoval>(baseline,current);
       
   766 }
       
   767 
       
   768 //	Param,                    
       
   769 //	ESeverityInformative,     
       
   770 template <> TBCSeverity BCseverityAccessible<EIssueIdentityInlineFunction,EIssueTypeParam>(bool accessible)
       
   771 {
       
   772 	if ( !accessible )
       
   773 	{
       
   774 		return ESeverityInformative;
       
   775 	}
       
   776 	return ESeverityInformative;
       
   777 }
       
   778 template <> string ignoreInfo<EIssueIdentityInlineFunction,EIssueTypeParam>(const HANodeIterator& baseline,const HANodeIterator& current)
       
   779 {
       
   780 	return ignoreInfo<EIssueIdentityExportedFunction,EIssueTypeParam>(baseline,current);
       
   781 }
       
   782 
       
   783 //	Param non-const to const,                    
       
   784 //	ESeverityNULL,        
       
   785 template <> TBCSeverity BCseverityAccessible<EIssueIdentityInlineFunction,EIssueTypeParamConst>(bool accessible)
       
   786 {
       
   787 	if ( !accessible )
       
   788 	{
       
   789 		return ESeverityNULL;
       
   790 	}
       
   791 	return ESeverityNULL;
       
   792 }
       
   793 template <> string ignoreInfo<EIssueIdentityInlineFunction,EIssueTypeParamConst>(const HANodeIterator& baseline,const HANodeIterator& current)
       
   794 {
       
   795 	return ignoreInfo<EIssueIdentityExportedFunction,EIssueTypeParamConst>(baseline,current);
       
   796 }
       
   797 
       
   798 //	Param const to non-const,                    
       
   799 //	ESeverityFCBreak,        
       
   800 template <> TBCSeverity BCseverityAccessible<EIssueIdentityInlineFunction,EIssueTypeParamConst2>(bool accessible)
       
   801 {
       
   802 	if ( !accessible )
       
   803 	{
       
   804 		return ESeverityInformative;
       
   805 	}
       
   806 	return ESeverityInformative;
       
   807 }
       
   808 template <> string ignoreInfo<EIssueIdentityInlineFunction,EIssueTypeParamConst2>(const HANodeIterator& baseline,const HANodeIterator& current)
       
   809 {
       
   810 	return ignoreInfo<EIssueIdentityExportedFunction,EIssueTypeParamConst2>(baseline,current);
       
   811 }
       
   812 
       
   813 //	Return,                   
       
   814 //	ESeverityInformative,     
       
   815 template <> TBCSeverity BCseverityAccessible<EIssueIdentityInlineFunction,EIssueTypeReturn>(bool accessible)
       
   816 {
       
   817 	if ( !accessible )
       
   818 	{
       
   819 		return ESeverityInformative;
       
   820 	}
       
   821 	return ESeverityInformative;
       
   822 }
       
   823 template <> string ignoreInfo<EIssueIdentityInlineFunction,EIssueTypeReturn>(const HANodeIterator& baseline,const HANodeIterator& current)
       
   824 {
       
   825 	return ignoreInfo<EIssueIdentityExportedFunction,EIssueTypeReturn>(baseline,current);
       
   826 }
       
   827 
       
   828 //	Return const to non-const,                   
       
   829 //	ESeverityNULL,        
       
   830 template <> TBCSeverity BCseverityAccessible<EIssueIdentityInlineFunction,EIssueTypeReturnConst>(bool accessible)
       
   831 {
       
   832 	if ( !accessible )
       
   833 	{
       
   834 		return ESeverityNULL;
       
   835 	}
       
   836 	return ESeverityNULL;
       
   837 }
       
   838 template <> string ignoreInfo<EIssueIdentityInlineFunction,EIssueTypeReturnConst>(const HANodeIterator& baseline,const HANodeIterator& current)
       
   839 {
       
   840 	return ignoreInfo<EIssueIdentityExportedFunction,EIssueTypeReturnConst>(baseline,current);
       
   841 }
       
   842 
       
   843 //	Return non-const to const,                   
       
   844 //	ESeverityFCBreak,        
       
   845 template <> TBCSeverity BCseverityAccessible<EIssueIdentityInlineFunction,EIssueTypeReturnConst2>(bool accessible)
       
   846 {
       
   847 	if ( !accessible )
       
   848 	{
       
   849 		return ESeverityPossibleFCBreak;
       
   850 	}
       
   851 	return ESeverityFCBreak;
       
   852 }
       
   853 template <> string ignoreInfo<EIssueIdentityInlineFunction,EIssueTypeReturnConst2>(const HANodeIterator& baseline,const HANodeIterator& current)
       
   854 {
       
   855 	return ignoreInfo<EIssueIdentityExportedFunction,EIssueTypeReturnConst2>(baseline,current);
       
   856 }
       
   857 
       
   858 //	Access,                   
       
   859 //	ESeverityInformative,     
       
   860 template <> TBCSeverity BCseverityAccessible<EIssueIdentityInlineFunction,EIssueTypeAccess>(bool accessible)
       
   861 {
       
   862 	if ( !accessible )
       
   863 	{
       
   864 		return ESeverityInformative;
       
   865 	}
       
   866 	return ESeverityInformative;
       
   867 }
       
   868 template <> string ignoreInfo<EIssueIdentityInlineFunction,EIssueTypeAccess>(const HANodeIterator& baseline,const HANodeIterator& current)
       
   869 {
       
   870 	return ignoreInfo<EIssueIdentityExportedFunction,EIssueTypeAccess>(baseline,current);
       
   871 }
       
   872 
       
   873 ///////////////////////////////////////////////////////////////////////////////////////////////////////////
       
   874 //EIssueIdentityExportedVirtualFunction,
       
   875 //   Removal,                  
       
   876 //    {ESeverityBBCBreak,        
       
   877 template <> TBCSeverity BCseverityAccessible<EIssueIdentityExportedVirtualFunction,EIssueTypeRemoval>(bool accessible)
       
   878 {
       
   879 	if ( !accessible )
       
   880 	{
       
   881 		return ESeverityBBCBreak;
       
   882 	}
       
   883 	return ESeverityBBCBreak;
       
   884 }
       
   885 template <> string ignoreInfo<EIssueIdentityExportedVirtualFunction,EIssueTypeRemoval>(const HANodeIterator& baseline,const HANodeIterator& current)
       
   886 {
       
   887 	string ignoreinfo=KIgnoreInfoNone;
       
   888 
       
   889 	return ignoreinfo;
       
   890 }
       
   891 
       
   892 ///////////////////////////////////////////////////////////////////////////////////////////////////////////
       
   893 //EIssueIdentityVirtualFunction,
       
   894 //   Removal,                  
       
   895 //    {ESeverityBBCBreak,        
       
   896 template <> TBCSeverity BCseverityAccessible<EIssueIdentityVirtualFunction,EIssueTypeRemoval>(bool accessible)
       
   897 {
       
   898 	if ( !accessible )
       
   899 	{
       
   900 		return ESeverityBBCBreak;
       
   901 	}
       
   902 	return ESeverityBBCBreak;
       
   903 }
       
   904 template <> string ignoreInfo<EIssueIdentityVirtualFunction,EIssueTypeRemoval>(const HANodeIterator& baseline,const HANodeIterator& current)
       
   905 {
       
   906 	string ignoreinfo=KIgnoreInfoNone;
       
   907 
       
   908 	return ignoreinfo;
       
   909 }
       
   910 
       
   911 //	Addition,                 
       
   912 //	ESeverityBBCBreak,        
       
   913 template <> TBCSeverity BCseverityAccessible<EIssueIdentityVirtualFunction,EIssueTypeAddition>(bool accessible)
       
   914 {
       
   915 	if ( !accessible )
       
   916 	{
       
   917 		return ESeverityBBCBreak;
       
   918 	}
       
   919 	return ESeverityBBCBreak;
       
   920 }
       
   921 template <> string ignoreInfo<EIssueIdentityVirtualFunction,EIssueTypeAddition>(const HANodeIterator& baseline,const HANodeIterator& current)
       
   922 {
       
   923 	string ignoreinfo=KIgnoreInfoNone;
       
   924 
       
   925 	return ignoreinfo;
       
   926 }
       
   927 
       
   928 //	Param,                    
       
   929 //	ESeverityBBCBreak,  
       
   930 
       
   931 template <> TBCSeverity BCseverityAccessible<EIssueIdentityVirtualFunction,EIssueTypeParam>(bool accessible)
       
   932 {
       
   933 	if ( !accessible )
       
   934 	{
       
   935 		return ESeverityBBCBreak;
       
   936 	}
       
   937 	return ESeverityBBCBreak;
       
   938 }
       
   939 template <> string ignoreInfo<EIssueIdentityVirtualFunction,EIssueTypeParam>(const HANodeIterator& baseline,const HANodeIterator& current)
       
   940 {
       
   941 	return ignoreInfo<EIssueIdentityExportedFunction,EIssueTypeParam>(baseline,current);
       
   942 }
       
   943 
       
   944 //	Return,                   
       
   945 //	ESeverityBBCBreak,     
       
   946 template <> TBCSeverity BCseverityAccessible<EIssueIdentityVirtualFunction,EIssueTypeReturn>(bool accessible)
       
   947 {
       
   948 	if ( !accessible )
       
   949 	{
       
   950 		return ESeverityBBCBreak;
       
   951 	}
       
   952 	return ESeverityBBCBreak;
       
   953 }
       
   954 template <> string ignoreInfo<EIssueIdentityVirtualFunction,EIssueTypeReturn>(const HANodeIterator& baseline,const HANodeIterator& current)
       
   955 {
       
   956 	string ignoreinfo=KIgnoreInfoNone;
       
   957 	return ignoreInfo<EIssueIdentityExportedFunction,EIssueTypeReturn>(baseline,current);
       
   958 }
       
   959 
       
   960 //	Access,                   
       
   961 //	ESeverityInformative,     
       
   962 template <> TBCSeverity BCseverityAccessible<EIssueIdentityVirtualFunction,EIssueTypeAccess>(bool accessible)
       
   963 {
       
   964 	if ( !accessible )
       
   965 	{
       
   966 		return ESeverityInformative;
       
   967 	}
       
   968 	return ESeverityInformative;
       
   969 }
       
   970 template <> string ignoreInfo<EIssueIdentityVirtualFunction,EIssueTypeAccess>(const HANodeIterator& baseline,const HANodeIterator& current)
       
   971 {
       
   972 	string ignoreinfo=KIgnoreInfoNone;
       
   973 	const XMLCh* access = current.GetAttribute(KXMLAccessString);
       
   974 	if (access)
       
   975 	{
       
   976 		ignoreinfo = toString(access);
       
   977 	}
       
   978 	return ignoreinfo;}
       
   979 
       
   980 //	OrderChange,              	
       
   981 //	ESeverityBBCBreak,        
       
   982 template <> TBCSeverity BCseverityAccessible<EIssueIdentityVirtualFunction,EIssueTypeOrderChange>(bool accessible)
       
   983 {
       
   984 	if ( !accessible )
       
   985 	{
       
   986 		return ESeverityBBCBreak;
       
   987 	}
       
   988 	return ESeverityBBCBreak;
       
   989 }
       
   990 template <> string ignoreInfo<EIssueIdentityVirtualFunction,EIssueTypeOrderChange>(const HANodeIterator& baseline,const HANodeIterator& current)
       
   991 {
       
   992 	string ignoreinfo=KIgnoreInfoNone;
       
   993 	
       
   994 	const XMLCh* idx = current.GetAttribute(KXMLBBCVirtualFunctionIndex);
       
   995 	if (idx)
       
   996 	{
       
   997 		ignoreinfo = toString(idx);
       
   998 	}
       
   999 	return ignoreinfo;
       
  1000 }
       
  1001 
       
  1002 
       
  1003 //	KIssueTypeNewOverride,
       
  1004 //	ESeverityBBCBreak,        
       
  1005 template <> TBCSeverity BCseverityAccessible<EIssueIdentityVirtualFunction,EIssueTypeNewOverride>(bool accessible)
       
  1006 {
       
  1007 	if ( !accessible )
       
  1008 	{
       
  1009 		return ESeverityBBCBreak;
       
  1010 	}
       
  1011 	return ESeverityBBCBreak;
       
  1012 }
       
  1013 template <> string ignoreInfo<EIssueIdentityVirtualFunction,EIssueTypeNewOverride>(const HANodeIterator& baseline,const HANodeIterator& current)
       
  1014 {
       
  1015 	string ignoreinfo=KIgnoreInfoNone;
       
  1016 	return ignoreinfo;
       
  1017 }
       
  1018 
       
  1019 
       
  1020 ///////////////////////////////////////////////////////////////////////////////////////////////////////////
       
  1021 //EIssueIdentityStruct,
       
  1022 //   Removal,                  
       
  1023 //    {ESeverityBBCBreak,	       
       
  1024 template <> TBCSeverity BCseverityAccessible<EIssueIdentityStruct,EIssueTypeRemoval>(bool accessible)
       
  1025 {
       
  1026 	if ( !accessible )
       
  1027 	{
       
  1028 		return ESeverityPossibleBBCBreak;
       
  1029 	}
       
  1030 	return ESeverityBBCBreak;
       
  1031 }
       
  1032 template <> string ignoreInfo<EIssueIdentityStruct,EIssueTypeRemoval>(const HANodeIterator& baseline,const HANodeIterator& current)
       
  1033 {
       
  1034 	return ignoreInfo<EIssueIdentityClass,EIssueTypeRemoval>(baseline,current);
       
  1035 }
       
  1036 
       
  1037 //	BaseSize,                     
       
  1038 //	ESeverityBBCBreak,        
       
  1039 template <> TBCSeverity BCseverityAccessible<EIssueIdentityStruct,EIssueTypeBaseSize>(bool accessible)
       
  1040 {
       
  1041 	return BCseverityAccessible<EIssueIdentityClass,EIssueTypeBaseSize>(accessible);
       
  1042 }
       
  1043 
       
  1044 template <> string ignoreInfo<EIssueIdentityStruct,EIssueTypeBaseSize>(const HANodeIterator& baseline,const HANodeIterator& current)
       
  1045 {
       
  1046 	return ignoreInfo<EIssueIdentityClass,EIssueTypeBaseSize>(baseline,current);
       
  1047 }
       
  1048 
       
  1049 // EIssueTypeNotAnalysed
       
  1050 // ESeverityInformative
       
  1051 template <> TBCSeverity BCseverityAccessible<EIssueIdentityStruct,EIssueTypeNotAnalysed>(bool accessible)
       
  1052 {
       
  1053 	if ( !accessible )
       
  1054 	{
       
  1055 		return ESeverityInformative;
       
  1056 	}
       
  1057 	return ESeverityInformative;
       
  1058 }
       
  1059 template <> string ignoreInfo<EIssueIdentityStruct,EIssueTypeNotAnalysed>(const HANodeIterator& baseline,const HANodeIterator& current)
       
  1060 {
       
  1061 	return ignoreInfo<EIssueIdentityClass,EIssueTypeNotAnalysed>(baseline,current);
       
  1062 }
       
  1063 
       
  1064 
       
  1065 //	Size,                     
       
  1066 //	ESeverityBBCBreak,        
       
  1067 template <> TBCSeverity BCseverityAccessible<EIssueIdentityStruct,EIssueTypeSize>(bool accessible)
       
  1068 {
       
  1069 	if ( !accessible )
       
  1070 	{
       
  1071 		return ESeverityPossibleBBCBreak;
       
  1072 	}
       
  1073 	return ESeverityBBCBreak;
       
  1074 }
       
  1075 
       
  1076 template <> string ignoreInfo<EIssueIdentityStruct,EIssueTypeSize>(const HANodeIterator& baseline,const HANodeIterator& current)
       
  1077 {
       
  1078 	return ignoreInfo<EIssueIdentityClass,EIssueTypeSize>(baseline,current);
       
  1079 }
       
  1080 //	Align,                    
       
  1081 //	ESeverityBBCBreak,        
       
  1082 template <> TBCSeverity BCseverityAccessible<EIssueIdentityStruct,EIssueTypeAlign>(bool accessible)
       
  1083 {
       
  1084 	if ( !accessible )
       
  1085 	{
       
  1086 		return ESeverityPossibleBBCBreak;
       
  1087 	}
       
  1088 	return ESeverityBBCBreak;
       
  1089 }
       
  1090 
       
  1091 template <> string ignoreInfo<EIssueIdentityStruct,EIssueTypeAlign>(const HANodeIterator& baseline,const HANodeIterator& current)
       
  1092 {
       
  1093 	return ignoreInfo<EIssueIdentityClass,EIssueTypeAlign>(baseline,current);
       
  1094 }
       
  1095 //	Access,                   
       
  1096 //	ESeverityInformative,     
       
  1097 template <> TBCSeverity BCseverityAccessible<EIssueIdentityStruct,EIssueTypeAccess>(bool accessible)
       
  1098 {
       
  1099 	if ( !accessible )
       
  1100 	{
       
  1101 		return ESeverityInformative;
       
  1102 	}
       
  1103 	return ESeverityInformative;
       
  1104 }
       
  1105 
       
  1106 template <> string ignoreInfo<EIssueIdentityStruct,EIssueTypeAccess>(const HANodeIterator& baseline,const HANodeIterator& current)
       
  1107 {
       
  1108 	return ignoreInfo<EIssueIdentityClass,EIssueTypeAccess>(baseline,current);
       
  1109 }
       
  1110 //	Inheritance,              
       
  1111 //	ESeverityPossibleBBCBreak,
       
  1112 template <> TBCSeverity BCseverityAccessible<EIssueIdentityStruct,EIssueTypeInheritance>(bool accessible)
       
  1113 {
       
  1114 	if ( !accessible )
       
  1115 	{
       
  1116 		return ESeverityPossibleBBCBreak;
       
  1117 	}
       
  1118 	return ESeverityPossibleBBCBreak;
       
  1119 }
       
  1120 
       
  1121 template <> string ignoreInfo<EIssueIdentityStruct,EIssueTypeInheritance>(const HANodeIterator& baseline,const HANodeIterator& current)
       
  1122 {
       
  1123 	return ignoreInfo<EIssueIdentityClass,EIssueTypeInheritance>(baseline,current);
       
  1124 }
       
  1125 
       
  1126 //EIssueTypeVirtualBases
       
  1127 //Informative
       
  1128 
       
  1129 template <> TBCSeverity BCseverityAccessible<EIssueIdentityStruct,EIssueTypeVirtualBases>(bool accessible)
       
  1130 {
       
  1131 	if ( !accessible )
       
  1132 	{
       
  1133 		return ESeverityInformative;
       
  1134 	}
       
  1135 	return ESeverityInformative;
       
  1136 }
       
  1137 
       
  1138 template <> string ignoreInfo<EIssueIdentityStruct,EIssueTypeVirtualBases>(const HANodeIterator& baseline,const HANodeIterator& current)
       
  1139 {
       
  1140 	string ignoreinfo=KIgnoreInfoNone;
       
  1141 
       
  1142 	return ignoreinfo;
       
  1143 }
       
  1144 
       
  1145 ///////////////////////////////////////////////////////////////////////////////////////////////////////////
       
  1146 //EIssueIdentityUnion,
       
  1147 //   Removal,                  
       
  1148 //    {ESeverityBBCBreak,        
       
  1149 template <> TBCSeverity BCseverityAccessible<EIssueIdentityUnion,EIssueTypeRemoval>(bool accessible)
       
  1150 {
       
  1151 	if ( !accessible )
       
  1152 	{
       
  1153 		return ESeverityPossibleBBCBreak;
       
  1154 	}
       
  1155 	return ESeverityBBCBreak;
       
  1156 }
       
  1157 
       
  1158 template <> string ignoreInfo<EIssueIdentityUnion,EIssueTypeRemoval>(const HANodeIterator& baseline,const HANodeIterator& current)
       
  1159 {
       
  1160 	string ignoreinfo=KIgnoreInfoNone;
       
  1161 
       
  1162 	return ignoreinfo;
       
  1163 }
       
  1164 
       
  1165 template <> TBCSeverity BCseverityAccessible<EIssueIdentityUnion,EIssueTypeInheritance>(bool accessible)
       
  1166 {
       
  1167 	if ( !accessible )
       
  1168 	{
       
  1169 		return ESeverityPossibleBBCBreak;
       
  1170 	}
       
  1171 	return ESeverityPossibleBBCBreak;
       
  1172 }
       
  1173 template <> string ignoreInfo<EIssueIdentityUnion,EIssueTypeInheritance>(const HANodeIterator& baseline,const HANodeIterator& current)
       
  1174 {
       
  1175 	string ignoreinfo=KIgnoreInfoNone;
       
  1176 
       
  1177 	return ignoreinfo;
       
  1178 }
       
  1179 
       
  1180 
       
  1181 //	Size,                     
       
  1182 //	ESeverityBBCBreak,        
       
  1183 template <> TBCSeverity BCseverityAccessible<EIssueIdentityUnion,EIssueTypeSize>(bool accessible)
       
  1184 {
       
  1185 	if ( !accessible )
       
  1186 	{
       
  1187 		return ESeverityPossibleBBCBreak;
       
  1188 	}
       
  1189 	return ESeverityBBCBreak;
       
  1190 }
       
  1191 
       
  1192 template <> string ignoreInfo<EIssueIdentityUnion,EIssueTypeSize>(const HANodeIterator& baseline,const HANodeIterator& current)
       
  1193 {
       
  1194 	return GetIgnoreInfoFromAttribute(current,KXMLSizeString);
       
  1195 }
       
  1196 
       
  1197 //	BaseSize,                     
       
  1198 //	ESeverityBBCBreak,        
       
  1199 template <> TBCSeverity BCseverityAccessible<EIssueIdentityUnion,EIssueTypeBaseSize>(bool accessible)
       
  1200 {
       
  1201 	return BCseverityAccessible<EIssueIdentityClass,EIssueTypeBaseSize>(accessible);
       
  1202 }
       
  1203 
       
  1204 template <> string ignoreInfo<EIssueIdentityUnion,EIssueTypeBaseSize>(const HANodeIterator& baseline,const HANodeIterator& current)
       
  1205 {
       
  1206 	return ignoreInfo<EIssueIdentityClass,EIssueTypeBaseSize>(baseline,current);
       
  1207 }
       
  1208 
       
  1209 
       
  1210 //	Align,                    
       
  1211 //	ESeverityBBCBreak,        
       
  1212 template <> TBCSeverity BCseverityAccessible<EIssueIdentityUnion,EIssueTypeAlign>(bool accessible)
       
  1213 {
       
  1214 	if ( !accessible )
       
  1215 	{
       
  1216 		return ESeverityPossibleBBCBreak;
       
  1217 	}
       
  1218 	return ESeverityBBCBreak;
       
  1219 }
       
  1220 template <> string ignoreInfo<EIssueIdentityUnion,EIssueTypeAlign>(const HANodeIterator& baseline,const HANodeIterator& current)
       
  1221 {
       
  1222 	return GetIgnoreInfoFromAttribute(current,KXMLAlignString);
       
  1223 /*	string ignoreinfo=KIgnoreInfoNone;
       
  1224     ignoreinfo = toString(current.GetAttribute(KXMLAlignString));
       
  1225 	return ignoreinfo;
       
  1226 	*/
       
  1227 }
       
  1228 
       
  1229 //	Access,                   
       
  1230 //	ESeverityInformative,     
       
  1231 template <> TBCSeverity BCseverityAccessible<EIssueIdentityUnion,EIssueTypeAccess>(bool accessible)
       
  1232 {
       
  1233 	if ( !accessible )
       
  1234 	{
       
  1235 		return ESeverityInformative;
       
  1236 	}
       
  1237 	return ESeverityInformative;
       
  1238 }
       
  1239 template <> string ignoreInfo<EIssueIdentityUnion,EIssueTypeAccess>(const HANodeIterator& baseline,const HANodeIterator& current)
       
  1240 {
       
  1241 	string ignoreinfo=KIgnoreInfoNone;
       
  1242 	const XMLCh* access = current.GetAttribute(KXMLAccessString);
       
  1243 	if (access)
       
  1244 	{
       
  1245 		ignoreinfo = toString(access);
       
  1246 	}
       
  1247 	return ignoreinfo;
       
  1248 }
       
  1249 
       
  1250 //	KIssueNotAnalysed         
       
  1251 //	ESeverityInformative,     
       
  1252 template <> TBCSeverity BCseverityAccessible<EIssueIdentityUnion,EIssueTypeNotAnalysed>(bool accessible)
       
  1253 {
       
  1254 	if ( !accessible )
       
  1255 	{
       
  1256 		return ESeverityInformative;
       
  1257 	}
       
  1258 	return ESeverityInformative;
       
  1259 }
       
  1260 template <> string ignoreInfo<EIssueIdentityUnion,EIssueTypeNotAnalysed>(const HANodeIterator& baseline,const HANodeIterator& current)
       
  1261 {
       
  1262 	string ignoreinfo=KIgnoreInfoNone;
       
  1263 
       
  1264 	return ignoreinfo;
       
  1265 }
       
  1266 
       
  1267 
       
  1268 //EIssueTypeVirtualBases
       
  1269 //Informative
       
  1270 
       
  1271 template <> TBCSeverity BCseverityAccessible<EIssueIdentityUnion,EIssueTypeVirtualBases>(bool accessible)
       
  1272 {
       
  1273 	if ( !accessible )
       
  1274 	{
       
  1275 		return ESeverityInformative;
       
  1276 	}
       
  1277 	return ESeverityInformative;
       
  1278 }
       
  1279 
       
  1280 template <> string ignoreInfo<EIssueIdentityUnion,EIssueTypeVirtualBases>(const HANodeIterator& baseline,const HANodeIterator& current)
       
  1281 {
       
  1282 	string ignoreinfo=KIgnoreInfoNone;
       
  1283 
       
  1284 	return ignoreinfo;
       
  1285 }
       
  1286 ///////////////////////////////////////////////////////////////////////////////////////////////////////////
       
  1287 //EIssueIdentityEnumerationValue,
       
  1288 //   Removal,                  
       
  1289 //   {ESeverityFCBreak,		   
       
  1290 template <> TBCSeverity BCseverityAccessible<EIssueIdentityEnumerationValue,EIssueTypeRemoval>(bool accessible)
       
  1291 {
       
  1292 	if ( !accessible )
       
  1293 	{
       
  1294 		return ESeverityPossibleFCBreak;
       
  1295 	}
       
  1296 	return ESeverityPossibleFCBreak;
       
  1297 }
       
  1298 template <> string ignoreInfo<EIssueIdentityEnumerationValue,EIssueTypeRemoval>(const HANodeIterator& baseline,const HANodeIterator& current)
       
  1299 {
       
  1300 	string ignoreinfo=KIgnoreInfoNone;
       
  1301 
       
  1302 	return ignoreinfo;
       
  1303 }
       
  1304 
       
  1305 
       
  1306 //	ChangeInInitialisation,   ,	
       
  1307 //	ESeverityFCBreak,        ,
       
  1308 template <> TBCSeverity BCseverityAccessible<EIssueIdentityEnumerationValue,EIssueTypeChangeInInitialisation>(bool accessible)
       
  1309 {
       
  1310 	if ( !accessible )
       
  1311 	{
       
  1312 		return ESeverityPossibleFCBreak;
       
  1313 	}
       
  1314 	return ESeverityPossibleFCBreak;
       
  1315 }
       
  1316 template <> string ignoreInfo<EIssueIdentityEnumerationValue,EIssueTypeChangeInInitialisation>(const HANodeIterator& baseline,const HANodeIterator& current)
       
  1317 {
       
  1318 	return GetIgnoreInfoFromAttribute(current,KXMLInitString);
       
  1319 }
       
  1320 
       
  1321 //Access,                   
       
  1322 //ESeverityInformative,   
       
  1323 template <> TBCSeverity BCseverityAccessible<EIssueIdentityEnumerationValue,EIssueTypeAccess>(bool accessible)
       
  1324 {
       
  1325 	if ( !accessible )
       
  1326 	{
       
  1327 		return ESeverityInformative;
       
  1328 	}
       
  1329 	return ESeverityInformative;
       
  1330 }
       
  1331 template <> string ignoreInfo<EIssueIdentityEnumerationValue,EIssueTypeAccess>(const HANodeIterator& baseline,const HANodeIterator& current)
       
  1332 {
       
  1333 	string ignoreinfo=KIgnoreInfoNone;
       
  1334 	const XMLCh* access = current.GetAttribute(KXMLAccessString);
       
  1335 	if (access)
       
  1336 	{
       
  1337 		ignoreinfo = toString(access);
       
  1338 	}
       
  1339 	return ignoreinfo;
       
  1340 }
       
  1341 
       
  1342 ///////////////////////////////////////////////////////////////////////////////////////////////////////////
       
  1343 //EIssueIdentityTypedef,
       
  1344 //   Removal,                  
       
  1345 //    {ESeverityPossibleBBCBreak,
       
  1346 template <> TBCSeverity BCseverityAccessible<EIssueIdentityTypedef,EIssueTypeRemoval>(bool accessible)
       
  1347 {
       
  1348 	if ( !accessible )
       
  1349 	{
       
  1350 		return ESeverityPossibleBBCBreak;
       
  1351 	}
       
  1352 	return ESeverityPossibleBBCBreak;
       
  1353 }
       
  1354 template <> string ignoreInfo<EIssueIdentityTypedef,EIssueTypeRemoval>(const HANodeIterator& baseline,const HANodeIterator& current)
       
  1355 {
       
  1356 	string ignoreinfo=KIgnoreInfoNone;
       
  1357 
       
  1358 	return ignoreinfo;
       
  1359 }
       
  1360 
       
  1361 //	Change,                   
       
  1362 //	ESeverityBBCBreak,        
       
  1363 template <> TBCSeverity BCseverityAccessible<EIssueIdentityTypedef,EIssueTypeChange>(bool accessible)
       
  1364 {
       
  1365 	if ( !accessible )
       
  1366 	{
       
  1367 		return ESeverityPossibleBBCBreak;
       
  1368 	}
       
  1369 	return ESeverityPossibleBBCBreak;
       
  1370 }
       
  1371 template <> string ignoreInfo<EIssueIdentityTypedef,EIssueTypeChange>(const HANodeIterator& baseline,const HANodeIterator& current)
       
  1372 {
       
  1373 	string ignoreinfo=KIgnoreInfoNone;
       
  1374     const XMLCh * nodetypeid = current.GetAttribute(KXMLTypeString);
       
  1375     if (nodetypeid)
       
  1376 	{
       
  1377 		HANodeIterator typenode(current);
       
  1378 		bool ret1=typenode.FindNodeById(nodetypeid);
       
  1379 		if (ret1)
       
  1380 		{
       
  1381 			ignoreinfo = GetTypeName(typenode);
       
  1382 		}
       
  1383 	}
       
  1384 	return ignoreinfo;
       
  1385 }
       
  1386 //Access,                   
       
  1387 //ESeverityInformative,   
       
  1388 template <> TBCSeverity BCseverityAccessible<EIssueIdentityTypedef,EIssueTypeAccess>(bool accessible)
       
  1389 {
       
  1390 	if ( !accessible )
       
  1391 	{
       
  1392 		return ESeverityInformative;
       
  1393 	}
       
  1394 	return ESeverityInformative;
       
  1395 }
       
  1396 template <> string ignoreInfo<EIssueIdentityTypedef,EIssueTypeAccess>(const HANodeIterator& baseline,const HANodeIterator& current)
       
  1397 {
       
  1398 	string ignoreinfo=KIgnoreInfoNone;
       
  1399 	const XMLCh* access = current.GetAttribute(KXMLAccessString);
       
  1400 	if (access)
       
  1401 	{
       
  1402 		ignoreinfo = toString(access);
       
  1403 	}
       
  1404 	return ignoreinfo;
       
  1405 }
       
  1406 ///////////////////////////////////////////////////////////////////////////////////////////////////////////
       
  1407 //EIssueIdentityVariable,
       
  1408 //   Removal,                  
       
  1409 //    {ESeverityPossibleBBCBreak,
       
  1410 template <> TBCSeverity BCseverityAccessible<EIssueIdentityVariable,EIssueTypeRemoval>(bool accessible)
       
  1411 {
       
  1412 	if ( !accessible )
       
  1413 	{
       
  1414 		return ESeverityPossibleBBCBreak;
       
  1415 	}
       
  1416 	return ESeverityPossibleBBCBreak;
       
  1417 }
       
  1418 template <> string ignoreInfo<EIssueIdentityVariable,EIssueTypeRemoval>(const HANodeIterator& baseline,const HANodeIterator& current)
       
  1419 {
       
  1420 	string ignoreinfo=KIgnoreInfoNone;
       
  1421 
       
  1422 	return ignoreinfo;
       
  1423 }
       
  1424 
       
  1425 //	ChangeInType,             
       
  1426 //	ESeverityBBCBreak,      
       
  1427 
       
  1428 template <> TBCSeverity BCseverityAccessible<EIssueIdentityVariable,EIssueTypeChangeInType>(bool accessible)
       
  1429 {
       
  1430 	if ( !accessible )
       
  1431 	{
       
  1432 		return ESeverityPossibleBBCBreak;
       
  1433 	}
       
  1434 	return ESeverityPossibleBBCBreak;
       
  1435 }
       
  1436 template <> string ignoreInfo<EIssueIdentityVariable,EIssueTypeChangeInType>(const HANodeIterator& baseline,const HANodeIterator& current)
       
  1437 {
       
  1438 	string ignoreinfo=KIgnoreInfoNone;
       
  1439     const XMLCh * nodetypeid = current.GetAttribute(KXMLTypeString);
       
  1440     if (nodetypeid)
       
  1441 	{
       
  1442 		HANodeIterator typenode(current);
       
  1443 		bool ret1=typenode.FindNodeById(nodetypeid);
       
  1444 		if (ret1)
       
  1445 		{
       
  1446 			ignoreinfo = GetTypeName(typenode);
       
  1447 		}
       
  1448 	}
       
  1449 
       
  1450 	return ignoreinfo;
       
  1451 }
       
  1452 
       
  1453 //	ChangeInInitialisation,   ,	
       
  1454 //	ESeverityFCBreak,        ,
       
  1455 template <> TBCSeverity BCseverityAccessible<EIssueIdentityVariable,EIssueTypeChangeInInitialisation>(bool accessible)
       
  1456 {
       
  1457 	if ( !accessible )
       
  1458 	{
       
  1459 		return ESeverityPossibleFCBreak;
       
  1460 	}
       
  1461 	return ESeverityPossibleFCBreak;
       
  1462 }
       
  1463 template <> string ignoreInfo<EIssueIdentityVariable,EIssueTypeChangeInInitialisation>(const HANodeIterator& baseline,const HANodeIterator& current)
       
  1464 {
       
  1465 	return ::GetIgnoreInfoFromAttribute(current,KXMLInitString);
       
  1466 }
       
  1467 
       
  1468 //Access,                   
       
  1469 //ESeverityInformative,   
       
  1470 template <> TBCSeverity BCseverityAccessible<EIssueIdentityVariable,EIssueTypeAccess>(bool accessible)
       
  1471 {
       
  1472 	if ( !accessible )
       
  1473 	{
       
  1474 		return ESeverityInformative;
       
  1475 	}
       
  1476 	return ESeverityInformative;
       
  1477 }
       
  1478 template <> string ignoreInfo<EIssueIdentityVariable,EIssueTypeAccess>(const HANodeIterator& baseline,const HANodeIterator& current)
       
  1479 {
       
  1480 	string ignoreinfo=KIgnoreInfoNone;
       
  1481 	const XMLCh* access = current.GetAttribute(KXMLAccessString);
       
  1482 	if (access)
       
  1483 	{
       
  1484 		ignoreinfo = toString(access);
       
  1485 	}
       
  1486 	return ignoreinfo;
       
  1487 }
       
  1488 
       
  1489 ///////////////////////////////////////////////////////////////////////////////////////////////////////////
       
  1490 //EIssueIdentityField,
       
  1491 //   Removal,                  
       
  1492 //    {ESeverityBBCBreak,        
       
  1493 template <> TBCSeverity BCseverityAccessible<EIssueIdentityField,EIssueTypeRemoval>(bool accessible)
       
  1494 {
       
  1495 	if ( !accessible )
       
  1496 	{
       
  1497 		return ESeverityPossibleBBCBreak;
       
  1498 	}
       
  1499 	return ESeverityBBCBreak;
       
  1500 }
       
  1501 template <> string ignoreInfo<EIssueIdentityField,EIssueTypeRemoval>(const HANodeIterator& baseline,const HANodeIterator& current)
       
  1502 {
       
  1503 	string ignoreinfo=KIgnoreInfoNone;
       
  1504 
       
  1505 	return ignoreinfo;
       
  1506 }
       
  1507 
       
  1508 //	Addition,                 
       
  1509 //	ESeverityInformative,     
       
  1510 template <> TBCSeverity BCseverityAccessible<EIssueIdentityField,EIssueTypeAddition>(bool accessible)
       
  1511 {
       
  1512 	if ( !accessible )
       
  1513 	{
       
  1514 		return ESeverityInformative;
       
  1515 	}
       
  1516 	return ESeverityInformative;
       
  1517 }
       
  1518 
       
  1519 template <> string ignoreInfo<EIssueIdentityField,EIssueTypeAddition>(const HANodeIterator& baseline,const HANodeIterator& current)
       
  1520 {
       
  1521     string ignoreinfo=KIgnoreInfoNone;
       
  1522 
       
  1523     ignoreinfo += toString(current.GetAttribute(KXMLContextString));
       
  1524     ignoreinfo += ";";
       
  1525     const XMLCh * nodetypeid = current.GetAttribute(KXMLTypeString);
       
  1526     if (nodetypeid)
       
  1527     {
       
  1528 		  HANodeIterator typenode(current);
       
  1529 		  bool ret1=typenode.FindNodeById(nodetypeid);
       
  1530 		  if (ret1)
       
  1531 		  {
       
  1532 			  ignoreinfo += GetTypeName(typenode);
       
  1533 	  	}
       
  1534     }
       
  1535     return ignoreinfo;
       
  1536 }
       
  1537 
       
  1538 //	Size,                     
       
  1539 //	ESeverityBBCBreak,        
       
  1540 template <> TBCSeverity BCseverityAccessible<EIssueIdentityField,EIssueTypeSize>(bool accessible)
       
  1541 {
       
  1542 	if ( !accessible )
       
  1543 	{
       
  1544 		return ESeverityPossibleBBCBreak;
       
  1545 	}
       
  1546 	return ESeverityBBCBreak;
       
  1547 }
       
  1548 template <> string ignoreInfo<EIssueIdentityField,EIssueTypeSize>(const HANodeIterator& baseline,const HANodeIterator& current)
       
  1549 {
       
  1550 	string ignoreinfo=KIgnoreInfoNone;
       
  1551 	const XMLCh * size = GetSize(current);
       
  1552 	if (size)
       
  1553 	{
       
  1554 		ignoreinfo += toString( size );
       
  1555 	}
       
  1556 
       
  1557 	return ignoreinfo;
       
  1558 }
       
  1559 
       
  1560 
       
  1561 //	Access,                   
       
  1562 //	ESeverityInformative,     
       
  1563 template <> TBCSeverity BCseverityAccessible<EIssueIdentityField,EIssueTypeAccess>(bool accessible)
       
  1564 {
       
  1565 	if ( !accessible )
       
  1566 	{
       
  1567 		return ESeverityInformative;
       
  1568 	}
       
  1569 	return ESeverityInformative;
       
  1570 }
       
  1571 template <> string ignoreInfo<EIssueIdentityField,EIssueTypeAccess>(const HANodeIterator& baseline,const HANodeIterator& current)
       
  1572 {
       
  1573 	string ignoreinfo=KIgnoreInfoNone;
       
  1574 	const XMLCh* access = current.GetAttribute(KXMLAccessString);
       
  1575 	if (access)
       
  1576 	{
       
  1577 		ignoreinfo = toString(access);
       
  1578 	}
       
  1579 	return ignoreinfo;
       
  1580 }
       
  1581 
       
  1582 //	Offset,                   
       
  1583 //	ESeverityBBCBreak,        
       
  1584 template <> TBCSeverity BCseverityAccessible<EIssueIdentityField,EIssueTypeOffset>(bool accessible)
       
  1585 {
       
  1586 	if ( !accessible )
       
  1587 	{
       
  1588 		return ESeverityPossibleBBCBreak;
       
  1589 	}
       
  1590 	return ESeverityBBCBreak;
       
  1591 }
       
  1592 template <> string ignoreInfo<EIssueIdentityField,EIssueTypeOffset>(const HANodeIterator& baseline,const HANodeIterator& current)
       
  1593 {
       
  1594 	return ::GetIgnoreInfoFromAttribute(current,KXMLContextString);
       
  1595 }
       
  1596 
       
  1597 
       
  1598 //	ChangeInType,             
       
  1599 //	ESeverityBBCBreak,        
       
  1600 template <> TBCSeverity BCseverityAccessible<EIssueIdentityField,EIssueTypeChangeInType>(bool accessible)
       
  1601 {
       
  1602 	if ( !accessible )
       
  1603 	{
       
  1604 		return ESeverityPossibleBBCBreak;
       
  1605 	}
       
  1606 	return ESeverityBBCBreak;
       
  1607 }
       
  1608 template <> string ignoreInfo<EIssueIdentityField,EIssueTypeChangeInType>(const HANodeIterator& baseline,const HANodeIterator& current)
       
  1609 {
       
  1610 	string ignoreinfo="";
       
  1611 
       
  1612     const XMLCh * nodetypeid = current.GetAttribute(KXMLTypeString);
       
  1613     if (nodetypeid)
       
  1614 	{
       
  1615 		HANodeIterator typenode(current);
       
  1616 		bool ret1=typenode.FindNodeById(nodetypeid);
       
  1617 		if (ret1)
       
  1618 		{
       
  1619 			ignoreinfo += GetTypeName(typenode);
       
  1620 		}
       
  1621 	}
       
  1622 
       
  1623 	return ignoreinfo;
       
  1624 }
       
  1625 
       
  1626 ///////////////////////////////////////////////////////////////////////////////////////////////////////////
       
  1627 //EIssueIdentityFieldInaccessible,
       
  1628 //   Removal,                  
       
  1629 //   {ESeverityInformative,     
       
  1630 template <> TBCSeverity BCseverityAccessible<EIssueIdentityFieldInaccessible,EIssueTypeRemoval>(bool accessible)
       
  1631 {
       
  1632 	if ( !accessible )
       
  1633 	{
       
  1634 		return ESeverityInformative;
       
  1635 	}
       
  1636 	return ESeverityInformative;
       
  1637 }
       
  1638 template <> string ignoreInfo<EIssueIdentityFieldInaccessible,EIssueTypeRemoval>(const HANodeIterator& baseline,const HANodeIterator& current)
       
  1639 {
       
  1640 	return ignoreInfo<EIssueIdentityField,EIssueTypeRemoval>(baseline, current);
       
  1641 }
       
  1642 
       
  1643 //	Addition,                 
       
  1644 //	ESeverityInformative,     
       
  1645 template <> TBCSeverity BCseverityAccessible<EIssueIdentityFieldInaccessible,EIssueTypeAddition>(bool accessible)
       
  1646 {
       
  1647 	if ( !accessible )
       
  1648 	{
       
  1649 		return ESeverityInformative;
       
  1650 	}
       
  1651 	return ESeverityInformative;
       
  1652 }
       
  1653 template <> string ignoreInfo<EIssueIdentityFieldInaccessible,EIssueTypeAddition>(const HANodeIterator& baseline,const HANodeIterator& current)
       
  1654 {
       
  1655 	return ignoreInfo<EIssueIdentityField,EIssueTypeAddition>(baseline, current);
       
  1656 }
       
  1657 
       
  1658 
       
  1659 //	Size,                     
       
  1660 //	ESeverityInformative,     
       
  1661 template <> TBCSeverity BCseverityAccessible<EIssueIdentityFieldInaccessible,EIssueTypeSize>(bool accessible)
       
  1662 {
       
  1663 	if ( !accessible )
       
  1664 	{
       
  1665 		return ESeverityInformative;
       
  1666 	}
       
  1667 	return ESeverityInformative;
       
  1668 }
       
  1669 template <> string ignoreInfo<EIssueIdentityFieldInaccessible,EIssueTypeSize>(const HANodeIterator& baseline,const HANodeIterator& current)
       
  1670 {
       
  1671 	return ignoreInfo<EIssueIdentityField,EIssueTypeSize>(baseline, current);
       
  1672 }
       
  1673 
       
  1674 //	Access,                   
       
  1675 //	ESeverityInformative,     
       
  1676 template <> TBCSeverity BCseverityAccessible<EIssueIdentityFieldInaccessible,EIssueTypeAccess>(bool accessible)
       
  1677 {
       
  1678 	if ( !accessible )
       
  1679 	{
       
  1680 		return ESeverityInformative;
       
  1681 	}
       
  1682 	return ESeverityInformative;
       
  1683 }
       
  1684 template <> string ignoreInfo<EIssueIdentityFieldInaccessible,EIssueTypeAccess>(const HANodeIterator& baseline,const HANodeIterator& current)
       
  1685 {
       
  1686 	return ignoreInfo<EIssueIdentityField,EIssueTypeAccess>(baseline, current);
       
  1687 }
       
  1688 
       
  1689 //	Offset,                   
       
  1690 //	ESeverityInformative,     
       
  1691 template <> TBCSeverity BCseverityAccessible<EIssueIdentityFieldInaccessible,EIssueTypeOffset>(bool accessible)
       
  1692 {
       
  1693 	if ( !accessible )
       
  1694 	{
       
  1695 		return ESeverityInformative;
       
  1696 	}
       
  1697 	return ESeverityInformative;
       
  1698 }
       
  1699 template <> string ignoreInfo<EIssueIdentityFieldInaccessible,EIssueTypeOffset>(const HANodeIterator& baseline,const HANodeIterator& current)
       
  1700 {
       
  1701 	return ignoreInfo<EIssueIdentityField,EIssueTypeOffset>(baseline, current);
       
  1702 }
       
  1703 
       
  1704 //	ChangeInType,             
       
  1705 //	ESeverityInformative,     ,
       
  1706 template <> TBCSeverity BCseverityAccessible<EIssueIdentityFieldInaccessible,EIssueTypeChangeInType>(bool accessible)
       
  1707 {
       
  1708 	if ( !accessible )
       
  1709 	{
       
  1710 		return ESeverityInformative;
       
  1711 	}
       
  1712 	return ESeverityInformative;
       
  1713 }
       
  1714 template <> string ignoreInfo<EIssueIdentityFieldInaccessible,EIssueTypeChangeInType>(const HANodeIterator& baseline,const HANodeIterator& current)
       
  1715 {
       
  1716 	return ignoreInfo<EIssueIdentityField,EIssueTypeChangeInType>(baseline, current);
       
  1717 }
       
  1718 
       
  1719 
       
  1720 ///////////////////////////////////////////////////////////////////////////////////////////////////////////
       
  1721 //EIssueIdentityFile,
       
  1722 //	KIssueNotAnalysed         
       
  1723 //	ESeverityInformative,     
       
  1724 template <> TBCSeverity BCseverityAccessible<EIssueIdentityFile,EIssueTypeEmpty>(bool accessible)
       
  1725 {
       
  1726 	if ( !accessible )
       
  1727 	{
       
  1728 		return ESeverityInformative;
       
  1729 	}
       
  1730 	return ESeverityInformative;
       
  1731 }
       
  1732 template <> string ignoreInfo<EIssueIdentityFile,EIssueTypeEmpty>(const HANodeIterator& baseline,const HANodeIterator& current)
       
  1733 {
       
  1734 	string ignoreinfo=KIgnoreInfoNone;
       
  1735 
       
  1736 	return ignoreinfo;
       
  1737 }
       
  1738 
       
  1739 template <> TBCSeverity BCseverityAccessible<EIssueIdentityFile,EIssueTypeUnderConstruction>(bool accessible)
       
  1740 {
       
  1741 	if ( !accessible )
       
  1742 	{
       
  1743 		return ESeverityPossibleBBCBreak;
       
  1744 	}
       
  1745 	return ESeverityBBCBreak;
       
  1746 }
       
  1747 template <> string ignoreInfo<EIssueIdentityFile,EIssueTypeUnderConstruction>(const HANodeIterator& baseline,const HANodeIterator& current)
       
  1748 {
       
  1749 	string ignoreinfo=KIgnoreInfoNone;
       
  1750 
       
  1751 	return ignoreinfo;
       
  1752 }
       
  1753 ///////////////////////////////////////////////////////////////////////////////////////////////////////////
       
  1754 //EIssueIdentityVirtualTable,
       
  1755 template <> TBCSeverity BCseverityAccessible<EIssueIdentityVirtualTable,EIssueTypeChange>(bool accessible)
       
  1756 {
       
  1757 	return ESeverityBBCBreak;
       
  1758 }
       
  1759 template <> string ignoreInfo<EIssueIdentityVirtualTable,EIssueTypeChange>(const HANodeIterator& baseline,const HANodeIterator& current)
       
  1760 {
       
  1761 	string ignoreinfo=KIgnoreInfoNone;
       
  1762 
       
  1763 	return ignoreinfo;
       
  1764 }
       
  1765 
       
  1766 ///////////////////////////////////////////////////////////////////////////////////////////////////////////
       
  1767 //KIdentitySubobject
       
  1768 //Offset
       
  1769 //ESeverityBBCBreak
       
  1770 template <> TBCSeverity BCseverityAccessible<EIssueIdentitySubobject,EIssueTypeOffset>(bool accessible)
       
  1771 {
       
  1772 	return ESeverityBBCBreak;
       
  1773 }
       
  1774 template <> string ignoreInfo<EIssueIdentitySubobject,EIssueTypeOffset>(const HANodeIterator& baseline,const HANodeIterator& current)
       
  1775 {
       
  1776 	string ignoreinfo=KIgnoreInfoNone;
       
  1777 
       
  1778 	return ignoreinfo;
       
  1779 }
       
  1780 
       
  1781 //Removal
       
  1782 //ESeverityBBCBreak
       
  1783 template <> TBCSeverity BCseverityAccessible<EIssueIdentitySubobject,EIssueTypeRemoval>(bool accessible)
       
  1784 {
       
  1785 	return ESeverityBBCBreak;
       
  1786 }
       
  1787 template <> string ignoreInfo<EIssueIdentitySubobject,EIssueTypeRemoval>(const HANodeIterator& baseline,const HANodeIterator& current)
       
  1788 {
       
  1789 	string ignoreinfo=KIgnoreInfoNone;
       
  1790 
       
  1791 	return ignoreinfo;
       
  1792 }
       
  1793 
       
  1794 ///////////////////////////////////////////////////////////////////////////////////////////////////////////
       
  1795 //EIssueIdentityVirtualTablePointer
       
  1796 template <> TBCSeverity BCseverityAccessible<EIssueIdentityVirtualTablePointer,EIssueTypeAddition>(bool accessible)
       
  1797 {
       
  1798 	return ESeverityBBCBreak;
       
  1799 }
       
  1800 template <> string ignoreInfo<EIssueIdentityVirtualTablePointer,EIssueTypeAddition>(const HANodeIterator& baseline,const HANodeIterator& current)
       
  1801 {
       
  1802 	string ignoreinfo=KIgnoreInfoNone;
       
  1803 
       
  1804 	return ignoreinfo;
       
  1805 }
       
  1806 
       
  1807 template <> TBCSeverity BCseverityAccessible<EIssueIdentityVirtualTablePointer,EIssueTypeRemoval>(bool accessible)
       
  1808 {
       
  1809 	return ESeverityBBCBreak;
       
  1810 }
       
  1811 
       
  1812 template <> string ignoreInfo<EIssueIdentityVirtualTablePointer,EIssueTypeRemoval>(const HANodeIterator& baseline,const HANodeIterator& current)
       
  1813 {
       
  1814 	string ignoreinfo=KIgnoreInfoNone;
       
  1815 
       
  1816 	return ignoreinfo;
       
  1817 }
       
  1818 template <> TBCSeverity BCseverityAccessible<EIssueIdentityVirtualTablePointer,EIssueTypeOffset>(bool accessible)
       
  1819 {
       
  1820 	return ESeverityBBCBreak;
       
  1821 }
       
  1822 template <> string ignoreInfo<EIssueIdentityVirtualTablePointer,EIssueTypeOffset>(const HANodeIterator& baseline,const HANodeIterator& current)
       
  1823 {
       
  1824 	string ignoreinfo=KIgnoreInfoNone;
       
  1825 
       
  1826 	return ignoreinfo;
       
  1827 }
       
  1828 
       
  1829 
       
  1830 ///////////////////////////////////////////////////////////////////////////////////////////////////////////
       
  1831 //EIssueIdentityClass
       
  1832 //Removal
       
  1833 //ESeveritySCBreak
       
  1834 template <> TSCSeverity SCseverityAccessible<EIssueIdentityClass,EIssueTypeRemoval>(bool accessible)
       
  1835 {
       
  1836 	if ( !accessible )
       
  1837 	{
       
  1838 		return ESeveritySCNULL;
       
  1839 	}
       
  1840 	return ESeveritySCBreak;
       
  1841 }
       
  1842 
       
  1843 //Size,                     
       
  1844 //ESeveritySCNULL,        
       
  1845 template <> TSCSeverity SCseverityAccessible<EIssueIdentityClass,EIssueTypeSize>(bool accessible)
       
  1846 {
       
  1847 	if ( !accessible )
       
  1848 	{
       
  1849 		return ESeveritySCNULL;
       
  1850 	}
       
  1851 	return ESeveritySCNULL;
       
  1852 }
       
  1853 
       
  1854 //Align,                    
       
  1855 //ESeveritySCNULL,        
       
  1856 template <> TSCSeverity SCseverityAccessible<EIssueIdentityClass,EIssueTypeAlign>(bool accessible)
       
  1857 {
       
  1858 	if ( !accessible )
       
  1859 	{
       
  1860 		return ESeveritySCNULL;
       
  1861 	}
       
  1862 	return ESeveritySCNULL;
       
  1863 }
       
  1864 
       
  1865 //Access,                   
       
  1866 //ESeveritySCBreak,     
       
  1867 template <> TSCSeverity SCseverityAccessible<EIssueIdentityClass,EIssueTypeAccess>(bool accessible)
       
  1868 {
       
  1869 	if ( !accessible )
       
  1870 	{
       
  1871 		return ESeveritySCNULL;
       
  1872 	}
       
  1873 	return ESeveritySCBreak;
       
  1874 }
       
  1875 
       
  1876 //Inheritance,              
       
  1877 //ESeveritySCNULL,
       
  1878 template <> TSCSeverity SCseverityAccessible<EIssueIdentityClass,EIssueTypeInheritance>(bool accessible)
       
  1879 {
       
  1880 	if ( !accessible )
       
  1881 	{
       
  1882 		return ESeveritySCNULL;
       
  1883 	}
       
  1884 	return ESeveritySCNULL;
       
  1885 }
       
  1886 
       
  1887 //KIssueNotAnalysed        
       
  1888 //ESeveritySCBreak,    	
       
  1889 template <> TSCSeverity SCseverityAccessible<EIssueIdentityClass,EIssueTypeNotAnalysed>(bool accessible)
       
  1890 {
       
  1891 	if ( !accessible )
       
  1892 	{
       
  1893 		return ESeveritySCNULL;
       
  1894 	}
       
  1895 	return ESeveritySCBreak;
       
  1896 }
       
  1897 
       
  1898 //EIssueTypeVirtualBases
       
  1899 //ESeveritySCNULL
       
  1900 template <> TSCSeverity SCseverityAccessible<EIssueIdentityClass,EIssueTypeVirtualBases>(bool accessible)
       
  1901 {
       
  1902 	if ( !accessible )
       
  1903 	{
       
  1904 		return ESeveritySCNULL;
       
  1905 	}
       
  1906 	return ESeveritySCNULL;
       
  1907 }
       
  1908 
       
  1909 //EIssueTypeBaseSize
       
  1910 //ESeveritySCNULL
       
  1911 template <> TSCSeverity SCseverityAccessible<EIssueIdentityClass,EIssueTypeBaseSize>(bool accessible)
       
  1912 {
       
  1913 	if ( !accessible )
       
  1914 	{
       
  1915 		return ESeveritySCNULL;
       
  1916 	}
       
  1917 	return ESeveritySCNULL;
       
  1918 }
       
  1919 
       
  1920 
       
  1921 ///////////////////////////////////////////////////////////////////////////////////////////////////////////
       
  1922 //EIssueIdentityEnumeration,
       
  1923 //   Removal,                  
       
  1924 //    {ESeveritySCBreak,
       
  1925 template <> TSCSeverity SCseverityAccessible<EIssueIdentityEnumeration,EIssueTypeRemoval>(bool accessible)
       
  1926 {
       
  1927 	if ( !accessible )
       
  1928 	{
       
  1929 		return ESeveritySCNULL;
       
  1930 	}
       
  1931 	return ESeveritySCBreak;
       
  1932 }
       
  1933 
       
  1934 //Change,                   
       
  1935 //ESeveritySCNULL, 
       
  1936 template <> TSCSeverity SCseverityAccessible<EIssueIdentityEnumeration,EIssueTypeChange>(bool accessible)
       
  1937 {
       
  1938 	if ( !accessible )
       
  1939 	{
       
  1940 		return ESeveritySCNULL;
       
  1941 	}
       
  1942 	return ESeveritySCNULL;
       
  1943 }
       
  1944 
       
  1945 //Size,                     
       
  1946 //ESeveritySCNULL,      
       
  1947 template <> TSCSeverity SCseverityAccessible<EIssueIdentityEnumeration,EIssueTypeSize>(bool accessible)
       
  1948 {
       
  1949 	if ( !accessible )
       
  1950 	{
       
  1951 		return ESeveritySCNULL;
       
  1952 	}
       
  1953 	return ESeveritySCNULL;
       
  1954 }
       
  1955 
       
  1956 //Align,                    
       
  1957 //ESeveritySCNULL,         
       
  1958 template <> TSCSeverity SCseverityAccessible<EIssueIdentityEnumeration,EIssueTypeAlign>(bool accessible)
       
  1959 {
       
  1960 	if ( !accessible )
       
  1961 	{
       
  1962 		return ESeveritySCNULL;
       
  1963 	}
       
  1964 	return ESeveritySCNULL;
       
  1965 }
       
  1966 
       
  1967 //Access,                   
       
  1968 //ESeveritySCBreak,   
       
  1969 template <> TSCSeverity SCseverityAccessible<EIssueIdentityEnumeration,EIssueTypeAccess>(bool accessible)
       
  1970 {
       
  1971 	if ( !accessible )
       
  1972 	{
       
  1973 		return ESeveritySCNULL;
       
  1974 	}
       
  1975 	return ESeveritySCBreak;
       
  1976 }
       
  1977 
       
  1978 
       
  1979 ///////////////////////////////////////////////////////////////////////////////////////////////////////////
       
  1980 //EIssueIdentityExportedFunction,
       
  1981 //   Removal,                  
       
  1982 //    {ESeveritySCBreak,        
       
  1983 template <> TSCSeverity SCseverityAccessible<EIssueIdentityExportedFunction,EIssueTypeRemoval>(bool accessible)
       
  1984 {
       
  1985 	if ( !accessible )
       
  1986 	{
       
  1987 		return ESeveritySCNULL;
       
  1988 	}
       
  1989 	return ESeveritySCBreak;
       
  1990 }
       
  1991 
       
  1992 //	Param,                    
       
  1993 //	ESeveritySCBreak,        
       
  1994 template <> TSCSeverity SCseverityAccessible<EIssueIdentityExportedFunction,EIssueTypeParam>(bool accessible)
       
  1995 {
       
  1996 	if ( !accessible )
       
  1997 	{
       
  1998 		return ESeveritySCNULL;
       
  1999 	}
       
  2000 	return ESeveritySCBreak;
       
  2001 }
       
  2002 
       
  2003 //	Param non-const to const,                    
       
  2004 //	ESeveritySCBreak, 
       
  2005 template <> TSCSeverity SCseverityAccessible<EIssueIdentityExportedFunction,EIssueTypeParamConst>(bool accessible)
       
  2006 {
       
  2007 	if ( !accessible )
       
  2008 	{
       
  2009 		return ESeveritySCNULL;
       
  2010 	}
       
  2011 	return ESeveritySCBreak;
       
  2012 }
       
  2013 
       
  2014 //	Param const to non-const,                    
       
  2015 //	ESeveritySCBreak,
       
  2016 template <> TSCSeverity SCseverityAccessible<EIssueIdentityExportedFunction,EIssueTypeParamConst2>(bool accessible)
       
  2017 {
       
  2018 	if ( !accessible )
       
  2019 	{
       
  2020 		return ESeveritySCNULL;
       
  2021 	}
       
  2022 	return ESeveritySCBreak;
       
  2023 }
       
  2024 
       
  2025 //	Return,                   
       
  2026 //	ESeveritySCBreak,        
       
  2027 template <> TSCSeverity SCseverityAccessible<EIssueIdentityExportedFunction,EIssueTypeReturn>(bool accessible)
       
  2028 {
       
  2029 	if ( !accessible )
       
  2030 	{
       
  2031 		return ESeveritySCNULL;
       
  2032 	}
       
  2033 	return ESeveritySCBreak;
       
  2034 }
       
  2035 
       
  2036 //	Return const to non-const,                   
       
  2037 //	ESeveritySCBreak,
       
  2038 template <> TSCSeverity SCseverityAccessible<EIssueIdentityExportedFunction,EIssueTypeReturnConst>(bool accessible)
       
  2039 {
       
  2040 	if ( !accessible )
       
  2041 	{
       
  2042 		return ESeveritySCNULL;
       
  2043 	}
       
  2044 	return ESeveritySCBreak;
       
  2045 }
       
  2046 
       
  2047 //	Return non-const to const,                   
       
  2048 //	ESeveritySCBreak,
       
  2049 template <> TSCSeverity SCseverityAccessible<EIssueIdentityExportedFunction,EIssueTypeReturnConst2>(bool accessible)
       
  2050 {
       
  2051 	if ( !accessible )
       
  2052 	{
       
  2053 		return ESeveritySCNULL;
       
  2054 	}
       
  2055 	return ESeveritySCBreak;
       
  2056 }
       
  2057 
       
  2058 //	Access,                               	
       
  2059 //	ESeveritySCBreak,                 
       
  2060 template <> TSCSeverity SCseverityAccessible<EIssueIdentityExportedFunction,EIssueTypeAccess>(bool accessible)
       
  2061 {
       
  2062 	if ( !accessible )
       
  2063 	{
       
  2064 		return ESeveritySCNULL;
       
  2065 	}
       
  2066 	return ESeveritySCBreak;
       
  2067 }
       
  2068 
       
  2069 
       
  2070 ///////////////////////////////////////////////////////////////////////////////////////////////////////////
       
  2071 //EIssueIdentityInlineFunction,
       
  2072 //   Removal,                  
       
  2073 //    {ESeveritySCBreak,   
       
  2074 template <> TSCSeverity SCseverityAccessible<EIssueIdentityInlineFunction,EIssueTypeRemoval>(bool accessible)
       
  2075 {
       
  2076 	if ( !accessible )
       
  2077 	{
       
  2078 		return ESeveritySCNULL;
       
  2079 	}
       
  2080 	return ESeveritySCBreak;
       
  2081 }
       
  2082 
       
  2083 //	Param,                    
       
  2084 //	ESeverityInformative,     
       
  2085 template <> TSCSeverity SCseverityAccessible<EIssueIdentityInlineFunction,EIssueTypeParam>(bool accessible)
       
  2086 {
       
  2087 	if ( !accessible )
       
  2088 	{
       
  2089 		return ESeveritySCNULL;
       
  2090 	}
       
  2091 	return ESeveritySCBreak;
       
  2092 }
       
  2093 
       
  2094 //	Param non-const to const,                    
       
  2095 //	ESeveritySCBreak,
       
  2096 template <> TSCSeverity SCseverityAccessible<EIssueIdentityInlineFunction,EIssueTypeParamConst>(bool accessible)
       
  2097 {
       
  2098 	if ( !accessible )
       
  2099 	{
       
  2100 		return ESeveritySCNULL;
       
  2101 	}
       
  2102 	return ESeveritySCBreak;
       
  2103 }
       
  2104 
       
  2105 //	Param const to non-const,                    
       
  2106 //	ESeveritySCBreak,
       
  2107 template <> TSCSeverity SCseverityAccessible<EIssueIdentityInlineFunction,EIssueTypeParamConst2>(bool accessible)
       
  2108 {
       
  2109 	if ( !accessible )
       
  2110 	{
       
  2111 		return ESeveritySCNULL;
       
  2112 	}
       
  2113 	return ESeveritySCBreak;
       
  2114 }
       
  2115 
       
  2116 //	Return,                   
       
  2117 //	ESeveritySCBreak,     
       
  2118 template <> TSCSeverity SCseverityAccessible<EIssueIdentityInlineFunction,EIssueTypeReturn>(bool accessible)
       
  2119 {
       
  2120 	if ( !accessible )
       
  2121 	{
       
  2122 		return ESeveritySCNULL;
       
  2123 	}
       
  2124 	return ESeveritySCBreak;
       
  2125 }
       
  2126 
       
  2127 //	Return const to non-const,                   
       
  2128 //	ESeveritySCBreak,
       
  2129 template <> TSCSeverity SCseverityAccessible<EIssueIdentityInlineFunction,EIssueTypeReturnConst>(bool accessible)
       
  2130 {
       
  2131 	if ( !accessible )
       
  2132 	{
       
  2133 		return ESeveritySCNULL;
       
  2134 	}
       
  2135 	return ESeveritySCBreak;
       
  2136 }
       
  2137 
       
  2138 //	Return non-const to const,                   
       
  2139 //	ESeveritySCBreak,
       
  2140 template <> TSCSeverity SCseverityAccessible<EIssueIdentityInlineFunction,EIssueTypeReturnConst2>(bool accessible)
       
  2141 {
       
  2142 	if ( !accessible )
       
  2143 	{
       
  2144 		return ESeveritySCNULL;
       
  2145 	}
       
  2146 	return ESeveritySCBreak;
       
  2147 }
       
  2148 
       
  2149 //	Access,                   
       
  2150 //	ESeveritySCBreak,     
       
  2151 template <> TSCSeverity SCseverityAccessible<EIssueIdentityInlineFunction,EIssueTypeAccess>(bool accessible)
       
  2152 {
       
  2153 	if ( !accessible )
       
  2154 	{
       
  2155 		return ESeveritySCNULL;
       
  2156 	}
       
  2157 	return ESeveritySCBreak;
       
  2158 }
       
  2159 
       
  2160 
       
  2161 ///////////////////////////////////////////////////////////////////////////////////////////////////////////
       
  2162 //EIssueIdentityExportedVirtualFunction,
       
  2163 //   Removal,                  
       
  2164 //    {ESeveritySCBreak,        
       
  2165 template <> TSCSeverity SCseverityAccessible<EIssueIdentityExportedVirtualFunction,EIssueTypeRemoval>(bool accessible)
       
  2166 {
       
  2167 	if ( !accessible )
       
  2168 	{
       
  2169 		return ESeveritySCNULL;
       
  2170 	}
       
  2171 	return ESeveritySCBreak;
       
  2172 }
       
  2173 
       
  2174 
       
  2175 ///////////////////////////////////////////////////////////////////////////////////////////////////////////
       
  2176 //EIssueIdentityVirtualFunction,
       
  2177 //   Removal,                  
       
  2178 //    {ESeveritySCBreak,        
       
  2179 template <> TSCSeverity SCseverityAccessible<EIssueIdentityVirtualFunction,EIssueTypeRemoval>(bool accessible)
       
  2180 {
       
  2181 	if ( !accessible )
       
  2182 	{
       
  2183 		return ESeveritySCNULL;
       
  2184 	}
       
  2185 	return ESeveritySCBreak;
       
  2186 }
       
  2187 
       
  2188 //	Addition,                 
       
  2189 //	ESeveritySCBNULL,        
       
  2190 template <> TSCSeverity SCseverityAccessible<EIssueIdentityVirtualFunction,EIssueTypeAddition>(bool accessible)
       
  2191 {
       
  2192 	if ( !accessible )
       
  2193 	{
       
  2194 		return ESeveritySCNULL;
       
  2195 	}
       
  2196 	return ESeveritySCNULL;
       
  2197 }
       
  2198 
       
  2199 //	Param,                    
       
  2200 //	ESeveritySCBreak,  
       
  2201 template <> TSCSeverity SCseverityAccessible<EIssueIdentityVirtualFunction,EIssueTypeParam>(bool accessible)
       
  2202 {
       
  2203 	if ( !accessible )
       
  2204 	{
       
  2205 		return ESeveritySCNULL;
       
  2206 	}
       
  2207 	return ESeveritySCBreak;
       
  2208 }
       
  2209 
       
  2210 //	Return,                   
       
  2211 //	ESeveritySCBreak,     
       
  2212 template <> TSCSeverity SCseverityAccessible<EIssueIdentityVirtualFunction,EIssueTypeReturn>(bool accessible)
       
  2213 {
       
  2214 	if ( !accessible )
       
  2215 	{
       
  2216 		return ESeveritySCNULL;
       
  2217 	}
       
  2218 	return ESeveritySCBreak;
       
  2219 }
       
  2220 
       
  2221 //	Access,                   
       
  2222 //	ESeveritySCBreak,     
       
  2223 template <> TSCSeverity SCseverityAccessible<EIssueIdentityVirtualFunction,EIssueTypeAccess>(bool accessible)
       
  2224 {
       
  2225 	if ( !accessible )
       
  2226 	{
       
  2227 		return ESeveritySCNULL;
       
  2228 	}
       
  2229 	return ESeveritySCBreak;
       
  2230 }
       
  2231 
       
  2232 //	OrderChange,              	
       
  2233 //	ESeveritySCNULL,        
       
  2234 template <> TSCSeverity SCseverityAccessible<EIssueIdentityVirtualFunction,EIssueTypeOrderChange>(bool accessible)
       
  2235 {
       
  2236 	if ( !accessible )
       
  2237 	{
       
  2238 		return ESeveritySCNULL;
       
  2239 	}
       
  2240 	return ESeveritySCNULL;
       
  2241 }
       
  2242 
       
  2243 //	KIssueTypeNewOverride,
       
  2244 //	ESeveritySCNULL,        
       
  2245 template <> TSCSeverity SCseverityAccessible<EIssueIdentityVirtualFunction,EIssueTypeNewOverride>(bool accessible)
       
  2246 {
       
  2247 	if ( !accessible )
       
  2248 	{
       
  2249 		return ESeveritySCNULL;
       
  2250 	}
       
  2251 	return ESeveritySCNULL;
       
  2252 }
       
  2253 
       
  2254 
       
  2255 ///////////////////////////////////////////////////////////////////////////////////////////////////////////
       
  2256 //EIssueIdentityStruct,
       
  2257 //   Removal,                  
       
  2258 //    {ESeveritySCBreak,	       
       
  2259 template <> TSCSeverity SCseverityAccessible<EIssueIdentityStruct,EIssueTypeRemoval>(bool accessible)
       
  2260 {
       
  2261 	if ( !accessible )
       
  2262 	{
       
  2263 		return ESeveritySCNULL;
       
  2264 	}
       
  2265 	return ESeveritySCBreak;
       
  2266 }
       
  2267 
       
  2268 //	BaseSize,                     
       
  2269 //	ESeveritySCNULL,        
       
  2270 template <> TSCSeverity SCseverityAccessible<EIssueIdentityStruct,EIssueTypeBaseSize>(bool accessible)
       
  2271 {
       
  2272 	return SCseverityAccessible<EIssueIdentityClass,EIssueTypeBaseSize>(accessible);
       
  2273 }
       
  2274 
       
  2275 //EIssueTypeNotAnalysed
       
  2276 //ESeveritySCBreak
       
  2277 template <> TSCSeverity SCseverityAccessible<EIssueIdentityStruct,EIssueTypeNotAnalysed>(bool accessible)
       
  2278 {
       
  2279 	if ( !accessible )
       
  2280 	{
       
  2281 		return ESeveritySCNULL;
       
  2282 	}
       
  2283 	return ESeveritySCBreak;
       
  2284 }
       
  2285 
       
  2286 //	Size,                     
       
  2287 //	ESeveritySCNULL,        
       
  2288 template <> TSCSeverity SCseverityAccessible<EIssueIdentityStruct,EIssueTypeSize>(bool accessible)
       
  2289 {
       
  2290 	if ( !accessible )
       
  2291 	{
       
  2292 		return ESeveritySCNULL;
       
  2293 	}
       
  2294 	return ESeveritySCNULL;
       
  2295 }
       
  2296 
       
  2297 //	Align,                    
       
  2298 //	ESeveritySCNULL,        
       
  2299 template <> TSCSeverity SCseverityAccessible<EIssueIdentityStruct,EIssueTypeAlign>(bool accessible)
       
  2300 {
       
  2301 	if ( !accessible )
       
  2302 	{
       
  2303 		return ESeveritySCNULL;
       
  2304 	}
       
  2305 	return ESeveritySCNULL;
       
  2306 }
       
  2307 
       
  2308 //	Access,                   
       
  2309 //	ESeveritySCBreak,     
       
  2310 template <> TSCSeverity SCseverityAccessible<EIssueIdentityStruct,EIssueTypeAccess>(bool accessible)
       
  2311 {
       
  2312 	if ( !accessible )
       
  2313 	{
       
  2314 		return ESeveritySCNULL;
       
  2315 	}
       
  2316 	return ESeveritySCBreak;
       
  2317 }
       
  2318 
       
  2319 //	Inheritance,              
       
  2320 //	ESeveritySCNULL,
       
  2321 template <> TSCSeverity SCseverityAccessible<EIssueIdentityStruct,EIssueTypeInheritance>(bool accessible)
       
  2322 {
       
  2323 	if ( !accessible )
       
  2324 	{
       
  2325 		return ESeveritySCNULL;
       
  2326 	}
       
  2327 	return ESeveritySCNULL;
       
  2328 }
       
  2329 
       
  2330 //EIssueTypeVirtualBases
       
  2331 //ESeveritySCNULL
       
  2332 template <> TSCSeverity SCseverityAccessible<EIssueIdentityStruct,EIssueTypeVirtualBases>(bool accessible)
       
  2333 {
       
  2334 	if ( !accessible )
       
  2335 	{
       
  2336 		return ESeveritySCNULL;
       
  2337 	}
       
  2338 	return ESeveritySCNULL;
       
  2339 }
       
  2340 
       
  2341 
       
  2342 ///////////////////////////////////////////////////////////////////////////////////////////////////////////
       
  2343 //EIssueIdentityUnion,
       
  2344 //   Removal,                  
       
  2345 //    {ESeveritySCBreak,        
       
  2346 template <> TSCSeverity SCseverityAccessible<EIssueIdentityUnion,EIssueTypeRemoval>(bool accessible)
       
  2347 {
       
  2348 	if ( !accessible )
       
  2349 	{
       
  2350 		return ESeveritySCNULL;
       
  2351 	}
       
  2352 	return ESeveritySCBreak;
       
  2353 }
       
  2354 
       
  2355 //   Inheritance,                  
       
  2356 //    {ESeveritySCNULL,  
       
  2357 template <> TSCSeverity SCseverityAccessible<EIssueIdentityUnion,EIssueTypeInheritance>(bool accessible)
       
  2358 {
       
  2359 	if ( !accessible )
       
  2360 	{
       
  2361 		return ESeveritySCNULL;
       
  2362 	}
       
  2363 	return ESeveritySCNULL;
       
  2364 }
       
  2365 
       
  2366 //	Size,                     
       
  2367 //	ESeveritySCNULL,        
       
  2368 template <> TSCSeverity SCseverityAccessible<EIssueIdentityUnion,EIssueTypeSize>(bool accessible)
       
  2369 {
       
  2370 	if ( !accessible )
       
  2371 	{
       
  2372 		return ESeveritySCNULL;
       
  2373 	}
       
  2374 	return ESeveritySCNULL;
       
  2375 }
       
  2376 
       
  2377 //	BaseSize,                     
       
  2378 //	ESeveritySCNULL,        
       
  2379 template <> TSCSeverity SCseverityAccessible<EIssueIdentityUnion,EIssueTypeBaseSize>(bool accessible)
       
  2380 {
       
  2381 	return SCseverityAccessible<EIssueIdentityClass,EIssueTypeBaseSize>(accessible);
       
  2382 }
       
  2383 
       
  2384 //	Align,                    
       
  2385 //	ESeveritySCNULL,        
       
  2386 template <> TSCSeverity SCseverityAccessible<EIssueIdentityUnion,EIssueTypeAlign>(bool accessible)
       
  2387 {
       
  2388 	if ( !accessible )
       
  2389 	{
       
  2390 		return ESeveritySCNULL;
       
  2391 	}
       
  2392 	return ESeveritySCNULL;
       
  2393 }
       
  2394 
       
  2395 //	Access,                   
       
  2396 //	ESeveritySCBreak,     
       
  2397 template <> TSCSeverity SCseverityAccessible<EIssueIdentityUnion,EIssueTypeAccess>(bool accessible)
       
  2398 {
       
  2399 	if ( !accessible )
       
  2400 	{
       
  2401 		return ESeveritySCNULL;
       
  2402 	}
       
  2403 	return ESeveritySCBreak;
       
  2404 }
       
  2405 
       
  2406 //	KIssueNotAnalysed         
       
  2407 //	ESeveritySCBreak,     
       
  2408 template <> TSCSeverity SCseverityAccessible<EIssueIdentityUnion,EIssueTypeNotAnalysed>(bool accessible)
       
  2409 {
       
  2410 	if ( !accessible )
       
  2411 	{
       
  2412 		return ESeveritySCNULL;
       
  2413 	}
       
  2414 	return ESeveritySCBreak;
       
  2415 }
       
  2416 
       
  2417 //EIssueTypeVirtualBases
       
  2418 //ESeveritySCNULL
       
  2419 template <> TSCSeverity SCseverityAccessible<EIssueIdentityUnion,EIssueTypeVirtualBases>(bool accessible)
       
  2420 {
       
  2421 	if ( !accessible )
       
  2422 	{
       
  2423 		return ESeveritySCNULL;
       
  2424 	}
       
  2425 	return ESeveritySCNULL;
       
  2426 }
       
  2427 
       
  2428 
       
  2429 ///////////////////////////////////////////////////////////////////////////////////////////////////////////
       
  2430 //EIssueIdentityEnumerationValue,
       
  2431 //   Removal,                  
       
  2432 //   {ESeveritySCBreak,		   
       
  2433 template <> TSCSeverity SCseverityAccessible<EIssueIdentityEnumerationValue,EIssueTypeRemoval>(bool accessible)
       
  2434 {
       
  2435 	if ( !accessible )
       
  2436 	{
       
  2437 		return ESeveritySCNULL;
       
  2438 	}
       
  2439 	return ESeveritySCBreak;
       
  2440 }
       
  2441 
       
  2442 //	ChangeInInitialisation,   ,	
       
  2443 //	ESeveritySCNULL,        ,
       
  2444 template <> TSCSeverity SCseverityAccessible<EIssueIdentityEnumerationValue,EIssueTypeChangeInInitialisation>(bool accessible)
       
  2445 {
       
  2446 	if ( !accessible )
       
  2447 	{
       
  2448 		return ESeveritySCNULL;
       
  2449 	}
       
  2450 	return ESeveritySCNULL;
       
  2451 }
       
  2452 
       
  2453 //Access,                   
       
  2454 //ESeveritySCBreak,   
       
  2455 template <> TSCSeverity SCseverityAccessible<EIssueIdentityEnumerationValue,EIssueTypeAccess>(bool accessible)
       
  2456 {
       
  2457 	if ( !accessible )
       
  2458 	{
       
  2459 		return ESeveritySCNULL;
       
  2460 	}
       
  2461 	return ESeveritySCBreak;
       
  2462 }
       
  2463 
       
  2464 
       
  2465 ///////////////////////////////////////////////////////////////////////////////////////////////////////////
       
  2466 //EIssueIdentityTypedef,
       
  2467 //   Removal,                  
       
  2468 //    {ESeveritySCBreak,
       
  2469 template <> TSCSeverity SCseverityAccessible<EIssueIdentityTypedef,EIssueTypeRemoval>(bool accessible)
       
  2470 {
       
  2471 	if ( !accessible )
       
  2472 	{
       
  2473 		return ESeveritySCNULL;
       
  2474 	}
       
  2475 	return ESeveritySCBreak;
       
  2476 }
       
  2477 
       
  2478 //	Change,                   
       
  2479 //	ESeveritySCBreak,        
       
  2480 template <> TSCSeverity SCseverityAccessible<EIssueIdentityTypedef,EIssueTypeChange>(bool accessible)
       
  2481 {
       
  2482 	if ( !accessible )
       
  2483 	{
       
  2484 		return ESeveritySCNULL;
       
  2485 	}
       
  2486 	return ESeveritySCBreak;
       
  2487 }
       
  2488 
       
  2489 //Access,                   
       
  2490 //ESeveritySCBreak,   
       
  2491 template <> TSCSeverity SCseverityAccessible<EIssueIdentityTypedef,EIssueTypeAccess>(bool accessible)
       
  2492 {
       
  2493 	if ( !accessible )
       
  2494 	{
       
  2495 		return ESeveritySCNULL;
       
  2496 	}
       
  2497 	return ESeveritySCBreak;
       
  2498 }
       
  2499 
       
  2500 ///////////////////////////////////////////////////////////////////////////////////////////////////////////
       
  2501 //EIssueIdentityVariable,
       
  2502 //   Removal,                  
       
  2503 //    {ESeveritySCBreak,
       
  2504 template <> TSCSeverity SCseverityAccessible<EIssueIdentityVariable,EIssueTypeRemoval>(bool accessible)
       
  2505 {
       
  2506 	if ( !accessible )
       
  2507 	{
       
  2508 		return ESeveritySCNULL;
       
  2509 	}
       
  2510 	return ESeveritySCBreak;
       
  2511 }
       
  2512 
       
  2513 //	ChangeInType,             
       
  2514 //	ESeveritySCBreak,      
       
  2515 template <> TSCSeverity SCseverityAccessible<EIssueIdentityVariable,EIssueTypeChangeInType>(bool accessible)
       
  2516 {
       
  2517 	if ( !accessible )
       
  2518 	{
       
  2519 		return ESeveritySCNULL;
       
  2520 	}
       
  2521 	return ESeveritySCBreak;
       
  2522 }
       
  2523 
       
  2524 //	ChangeInInitialisation,   ,	
       
  2525 //	ESeveritySCNULL,        ,
       
  2526 template <> TSCSeverity SCseverityAccessible<EIssueIdentityVariable,EIssueTypeChangeInInitialisation>(bool accessible)
       
  2527 {
       
  2528 	if ( !accessible )
       
  2529 	{
       
  2530 		return ESeveritySCNULL;
       
  2531 	}
       
  2532 	return ESeveritySCNULL;
       
  2533 }
       
  2534 
       
  2535 //Access,                   
       
  2536 //ESeveritySCBreak,   
       
  2537 template <> TSCSeverity SCseverityAccessible<EIssueIdentityVariable,EIssueTypeAccess>(bool accessible)
       
  2538 {
       
  2539 	if ( !accessible )
       
  2540 	{
       
  2541 		return ESeveritySCNULL;
       
  2542 	}
       
  2543 	return ESeveritySCBreak;
       
  2544 }
       
  2545 
       
  2546 
       
  2547 ///////////////////////////////////////////////////////////////////////////////////////////////////////////
       
  2548 //EIssueIdentityField,
       
  2549 //   Removal,                  
       
  2550 //    {ESeveritySCBreak,        
       
  2551 template <> TSCSeverity SCseverityAccessible<EIssueIdentityField,EIssueTypeRemoval>(bool accessible)
       
  2552 {
       
  2553 	if ( !accessible )
       
  2554 	{
       
  2555 		return ESeveritySCNULL;
       
  2556 	}
       
  2557 	return ESeveritySCBreak;
       
  2558 }
       
  2559 
       
  2560 //	Addition,                 
       
  2561 //	ESeveritySCNULL,     
       
  2562 template <> TSCSeverity SCseverityAccessible<EIssueIdentityField,EIssueTypeAddition>(bool accessible)
       
  2563 {
       
  2564 	if ( !accessible )
       
  2565 	{
       
  2566 		return ESeveritySCNULL;
       
  2567 	}
       
  2568 	return ESeveritySCNULL;
       
  2569 }
       
  2570 
       
  2571 //	Size,                     
       
  2572 //	ESeveritySCNULL,        
       
  2573 template <> TSCSeverity SCseverityAccessible<EIssueIdentityField,EIssueTypeSize>(bool accessible)
       
  2574 {
       
  2575 	if ( !accessible )
       
  2576 	{
       
  2577 		return ESeveritySCNULL;
       
  2578 	}
       
  2579 	return ESeveritySCNULL;
       
  2580 }
       
  2581 
       
  2582 //	Access,                   
       
  2583 //	ESeveritySCBreak,     
       
  2584 template <> TSCSeverity SCseverityAccessible<EIssueIdentityField,EIssueTypeAccess>(bool accessible)
       
  2585 {
       
  2586 	if ( !accessible )
       
  2587 	{
       
  2588 		return ESeveritySCNULL;
       
  2589 	}
       
  2590 	return ESeveritySCBreak;
       
  2591 }
       
  2592 
       
  2593 //	Offset,                   
       
  2594 //	ESeveritySCNULL,        
       
  2595 template <> TSCSeverity SCseverityAccessible<EIssueIdentityField,EIssueTypeOffset>(bool accessible)
       
  2596 {
       
  2597 	if ( !accessible )
       
  2598 	{
       
  2599 		return ESeveritySCNULL;
       
  2600 	}
       
  2601 	return ESeveritySCNULL;
       
  2602 }
       
  2603 
       
  2604 //	ChangeInType,             
       
  2605 //	ESeveritySCBreak,        
       
  2606 template <> TSCSeverity SCseverityAccessible<EIssueIdentityField,EIssueTypeChangeInType>(bool accessible)
       
  2607 {
       
  2608 	if ( !accessible )
       
  2609 	{
       
  2610 		return ESeveritySCNULL;
       
  2611 	}
       
  2612 	return ESeveritySCBreak;
       
  2613 }
       
  2614 
       
  2615 
       
  2616 ///////////////////////////////////////////////////////////////////////////////////////////////////////////
       
  2617 //EIssueIdentityFieldInaccessible,
       
  2618 //   Removal,                  
       
  2619 //   {ESeveritySCNULL,     
       
  2620 template <> TSCSeverity SCseverityAccessible<EIssueIdentityFieldInaccessible,EIssueTypeRemoval>(bool accessible)
       
  2621 {
       
  2622 	if ( !accessible )
       
  2623 	{
       
  2624 		return ESeveritySCNULL;
       
  2625 	}
       
  2626 	return ESeveritySCNULL;
       
  2627 }
       
  2628 
       
  2629 //	Addition,                 
       
  2630 //	ESeveritySCNULL,     
       
  2631 template <> TSCSeverity SCseverityAccessible<EIssueIdentityFieldInaccessible,EIssueTypeAddition>(bool accessible)
       
  2632 {
       
  2633 	if ( !accessible )
       
  2634 	{
       
  2635 		return ESeveritySCNULL;
       
  2636 	}
       
  2637 	return ESeveritySCNULL;
       
  2638 }
       
  2639 
       
  2640 //	Size,                     
       
  2641 //	ESeveritySCNULL,     
       
  2642 template <> TSCSeverity SCseverityAccessible<EIssueIdentityFieldInaccessible,EIssueTypeSize>(bool accessible)
       
  2643 {
       
  2644 	if ( !accessible )
       
  2645 	{
       
  2646 		return ESeveritySCNULL;
       
  2647 	}
       
  2648 	return ESeveritySCNULL;
       
  2649 }
       
  2650 
       
  2651 //	Access,                   
       
  2652 //	ESeveritySCNULL,     
       
  2653 template <> TSCSeverity SCseverityAccessible<EIssueIdentityFieldInaccessible,EIssueTypeAccess>(bool accessible)
       
  2654 {
       
  2655 	if ( !accessible )
       
  2656 	{
       
  2657 		return ESeveritySCNULL;
       
  2658 	}
       
  2659 	return ESeveritySCNULL;
       
  2660 }
       
  2661 
       
  2662 //	Offset,                   
       
  2663 //	ESeveritySCNULL,     
       
  2664 template <> TSCSeverity SCseverityAccessible<EIssueIdentityFieldInaccessible,EIssueTypeOffset>(bool accessible)
       
  2665 {
       
  2666 	if ( !accessible )
       
  2667 	{
       
  2668 		return ESeveritySCNULL;
       
  2669 	}
       
  2670 	return ESeveritySCNULL;
       
  2671 }
       
  2672 
       
  2673 //	ChangeInType,             
       
  2674 //	ESeveritySCNULL,     ,
       
  2675 template <> TSCSeverity SCseverityAccessible<EIssueIdentityFieldInaccessible,EIssueTypeChangeInType>(bool accessible)
       
  2676 {
       
  2677 	if ( !accessible )
       
  2678 	{
       
  2679 		return ESeveritySCNULL;
       
  2680 	}
       
  2681 	return ESeveritySCNULL;
       
  2682 }
       
  2683 
       
  2684 
       
  2685 ///////////////////////////////////////////////////////////////////////////////////////////////////////////
       
  2686 //EIssueIdentityFile,
       
  2687 //	KIssueNotAnalysed         
       
  2688 //	ESeveritySCInformative,     
       
  2689 template <> TSCSeverity SCseverityAccessible<EIssueIdentityFile,EIssueTypeEmpty>(bool accessible)
       
  2690 {
       
  2691 	if ( !accessible )
       
  2692 	{
       
  2693 		return ESeveritySCNULL;
       
  2694 	}
       
  2695 	return ESeveritySCInformative;
       
  2696 }
       
  2697 
       
  2698 // EIssueTypeUnderConstruction
       
  2699 // ESeveritySCInformative
       
  2700 template <> TSCSeverity SCseverityAccessible<EIssueIdentityFile,EIssueTypeUnderConstruction>(bool accessible)
       
  2701 {
       
  2702 	if ( !accessible )
       
  2703 	{
       
  2704 		return ESeveritySCNULL;
       
  2705 	}
       
  2706 	return ESeveritySCInformative;
       
  2707 }
       
  2708 
       
  2709 ///////////////////////////////////////////////////////////////////////////////////////////////////////////
       
  2710 //EIssueIdentityVirtualTable,
       
  2711 template <> TSCSeverity SCseverityAccessible<EIssueIdentityVirtualTable,EIssueTypeChange>(bool accessible)
       
  2712 {
       
  2713 	return ESeveritySCNULL;
       
  2714 }
       
  2715 
       
  2716 
       
  2717 ///////////////////////////////////////////////////////////////////////////////////////////////////////////
       
  2718 //KIdentitySubobject
       
  2719 //Offset
       
  2720 //ESeveritySCNULL
       
  2721 template <> TSCSeverity SCseverityAccessible<EIssueIdentitySubobject,EIssueTypeOffset>(bool accessible)
       
  2722 {
       
  2723 	return ESeveritySCNULL;
       
  2724 }
       
  2725 
       
  2726 //Removal
       
  2727 //ESeveritySCBreak
       
  2728 template <> TSCSeverity SCseverityAccessible<EIssueIdentitySubobject,EIssueTypeRemoval>(bool accessible)
       
  2729 {
       
  2730 	return ESeveritySCBreak;
       
  2731 }
       
  2732 
       
  2733 
       
  2734 ///////////////////////////////////////////////////////////////////////////////////////////////////////////
       
  2735 //EIssueIdentityVirtualTablePointer
       
  2736 //Addition
       
  2737 //ESeveritySCNULL
       
  2738 template <> TSCSeverity SCseverityAccessible<EIssueIdentityVirtualTablePointer,EIssueTypeAddition>(bool accessible)
       
  2739 {
       
  2740 	return ESeveritySCNULL;
       
  2741 }
       
  2742 
       
  2743 //Removal
       
  2744 //ESeveritySCNULL
       
  2745 template <> TSCSeverity SCseverityAccessible<EIssueIdentityVirtualTablePointer,EIssueTypeRemoval>(bool accessible)
       
  2746 {
       
  2747 	return ESeveritySCNULL;
       
  2748 }
       
  2749 
       
  2750 //Offset
       
  2751 //ESeveritySCNULL
       
  2752 template <> TSCSeverity SCseverityAccessible<EIssueIdentityVirtualTablePointer,EIssueTypeOffset>(bool accessible)
       
  2753 {
       
  2754 	return ESeveritySCNULL;
       
  2755 }
       
  2756 
       
  2757