MCPcopy Create free account
hub / github.com/cppcheck-opensource/cppcheck / createGuidelineMapping

Function createGuidelineMapping

lib/errorlogger.cpp:1126–1172  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1124}
1125
1126std::map<std::string, std::string> createGuidelineMapping(ReportType reportType) {
1127 std::map<std::string, std::string> guidelineMapping;
1128 const std::vector<checkers::IdMapping> *idMapping1 = nullptr;
1129 const std::vector<checkers::IdMapping> *idMapping2 = nullptr;
1130 std::string ext1, ext2;
1131
1132 switch (reportType) {
1133 case ReportType::autosar:
1134 idMapping1 = &checkers::idMappingAutosar;
1135 break;
1136 case ReportType::certCpp:
1137 idMapping2 = &checkers::idMappingCertCpp;
1138 ext2 = "-CPP";
1139 FALLTHROUGH;
1140 case ReportType::certC:
1141 idMapping1 = &checkers::idMappingCertC;
1142 ext1 = "-C";
1143 break;
1144 case ReportType::misraC2012:
1145 case ReportType::misraC2023:
1146 case ReportType::misraC2025:
1147 idMapping1 = &checkers::idMappingMisraC;
1148 break;
1149 case ReportType::misraCpp2008:
1150 idMapping1 = &checkers::idMappingMisraCpp2008;
1151 break;
1152 case ReportType::misraCpp2023:
1153 idMapping1 = &checkers::idMappingMisraCpp2023;
1154 break;
1155 default:
1156 break;
1157 }
1158
1159 if (idMapping1) {
1160 for (const auto &i : *idMapping1)
1161 for (const std::string &cppcheckId : splitString(i.cppcheckId, ','))
1162 guidelineMapping[cppcheckId] = i.guideline + ext1;
1163 }
1164
1165 if (idMapping2) {
1166 for (const auto &i : *idMapping2)
1167 for (const std::string &cppcheckId : splitString(i.cppcheckId, ','))
1168 guidelineMapping[cppcheckId] = i.guideline + ext2;
1169 }
1170
1171 return guidelineMapping;
1172}

Callers 3

StdLoggerMethod · 0.85
testReportType_Method · 0.85
setReportTypeMethod · 0.85

Calls 1

splitStringFunction · 0.70

Tested by 1

testReportType_Method · 0.68