Home | History | Annotate | Download | only in Checkers

Lines Matching refs:RD

55       bool VisitRecordDecl(const RecordDecl *RD) {
56 Checker->visitRecord(RD);
74 void visitRecord(const RecordDecl *RD, uint64_t PadMultiplier = 1) const {
75 if (shouldSkipDecl(RD))
78 auto &ASTContext = RD->getASTContext();
79 const ASTRecordLayout &RL = ASTContext.getASTRecordLayout(RD);
82 CharUnits BaselinePad = calculateBaselinePad(RD, ASTContext, RL);
85 CharUnits OptimalPad = calculateOptimalPad(RD, ASTContext, RL);
93 reportRecord(RD, BaselinePad, OptimalPad);
116 bool shouldSkipDecl(const RecordDecl *RD) const {
117 auto Location = RD->getLocation();
129 if (RD->isUnion())
132 if (RD->field_empty())
134 if (auto *CXXRD = dyn_cast<CXXRecordDecl>(RD)) {
161 if (std::any_of(RD->field_begin(), RD->field_end(), IsTrickyField))
166 static CharUnits calculateBaselinePad(const RecordDecl *RD,
171 for (const auto &FD : RD->fields()) {
202 static CharUnits calculateOptimalPad(const RecordDecl *RD,
226 std::transform(RD->field_begin(), RD->field_end(),
274 void reportRecord(const RecordDecl *RD, CharUnits BaselinePad,
284 Os << QualType::getAsString(RD->getTypeForDecl(), Qualifiers()) << "'";
286 if (auto *TSD = dyn_cast<ClassTemplateSpecializationDecl>(RD)) {
301 PathDiagnosticLocation::create(RD, BR->getSourceManager());
304 Report->setDeclWithIssue(RD);
305 Report->addRange(RD->getSourceRange());