bool ClangToSageTranslator::VisitTemplateTemplateParmDecl(clang::TemplateTemplateParmDecl * template_template_parm_decl, SgNode ** node) { #if DEBUG_VISIT_DECL std::cerr << "ClangToSageTranslator::VisitTemplateTemplateParmDecl" << std::endl; #endif bool res = true; ROSE_ASSERT(FAIL_TODO == 0); // TODO return VisitTemplateDecl(template_template_parm_decl, node) && res; }
bool VisitCXXRecordDecl(CXXRecordDecl* D) { if (!D->hasAttr<AnnotateAttr>()) return true; VisitDecl(D); if (ClassTemplateDecl* TmplD = D->getDescribedClassTemplate()) return VisitTemplateDecl(TmplD); return true; }
bool ClangToSageTranslator::VisitRedeclarableTemplateDecl(clang::RedeclarableTemplateDecl * redeclarable_template_decl, SgNode ** node) { #if DEBUG_VISIT_DECL std::cerr << "ClangToSageTranslator::VisitRedeclarableTemplateDecl" << std::endl; #endif bool res = true; ROSE_ASSERT(FAIL_FIXME == 0); // FIXME return VisitTemplateDecl(redeclarable_template_decl, node) && res; }
bool VisitCXXRecordDecl(CXXRecordDecl* D) { // Since we are only interested in fixing forward declaration // there is no need to continue on when we see a complete definition. if (D->isCompleteDefinition()) return false; if (!D->hasAttr<AnnotateAttr>()) return true; if (ClassTemplateDecl* TmplD = D->getDescribedClassTemplate()) return VisitTemplateDecl(TmplD); return true; }