void BlinkGCPluginConsumer::CheckRecord(RecordInfo* info) { if (IsIgnored(info)) return; CXXRecordDecl* record = info->record(); // TODO: what should we do to check unions? if (record->isUnion()) return; // If this is the primary template declaration, check its specializations. if (record->isThisDeclarationADefinition() && record->getDescribedClassTemplate()) { ClassTemplateDecl* tmpl = record->getDescribedClassTemplate(); for (ClassTemplateDecl::spec_iterator it = tmpl->spec_begin(); it != tmpl->spec_end(); ++it) { CheckClass(cache_.Lookup(*it)); } return; } CheckClass(info); }