From e758037ca9bf56a9c8617df6a02293d6a713359a Mon Sep 17 00:00:00 2001 From: Axel Naumann Date: Wed, 24 Sep 2014 10:36:21 +0200 Subject: [PATCH] Remove (now) unused code. --- core/metautils/src/TMetaUtils.cxx | 293 -------------------------------------- 1 file changed, 293 deletions(-) diff --git a/core/metautils/src/TMetaUtils.cxx b/core/metautils/src/TMetaUtils.cxx index 357413c..55f2596 100644 --- a/core/metautils/src/TMetaUtils.cxx +++ b/core/metautils/src/TMetaUtils.cxx @@ -4563,222 +4563,6 @@ const std::string& ROOT::TMetaUtils::GetPathSeparator() return gPathSeparator; } - -static void addDeclToTransaction(clang::Decl *decl, - cling::Transaction &theTransaction, - std::set &addedDecls); -static void addDeclsToTransactionForType(const clang::Type* typ, - cling::Transaction &theTransaction, - std::set &addedDecls); - -//______________________________________________________________________________ -static void addDeclsToTransactionForNNS(const clang::NestedNameSpecifier* NNS, - cling::Transaction &theTransaction, - std::set &addedDecls) { - if (const clang::NestedNameSpecifier* Prefix = NNS->getPrefix()) - addDeclsToTransactionForNNS(Prefix, theTransaction, addedDecls); - - switch (NNS->getKind()) { - case clang::NestedNameSpecifier::Namespace: - addDeclToTransaction(NNS->getAsNamespace(), theTransaction, addedDecls); - break; - case clang::NestedNameSpecifier::TypeSpec: // fall-through: - case clang::NestedNameSpecifier::TypeSpecWithTemplate: - addDeclsToTransactionForType(NNS->getAsType(), theTransaction, addedDecls); - break; - default: - ROOT::TMetaUtils::Error("addDeclsToTransactionForNNS", "Unexpected kind %d\n", - (int)NNS->getKind()); - break; - - }; -} - -static void addDeclsToTransactionForTemplateName(clang::TemplateName tName, - cling::Transaction &theTransaction, - std::set &addedDecls) { - switch (tName.getKind()) { - case clang::TemplateName::Template: - addDeclToTransaction(tName.getAsTemplateDecl(), theTransaction, addedDecls); - break; - case clang::TemplateName::QualifiedTemplate: - addDeclToTransaction(tName.getAsQualifiedTemplateName()->getTemplateDecl(), theTransaction, addedDecls); - break; - case clang::TemplateName::DependentTemplate: - addDeclsToTransactionForNNS(tName.getAsDependentTemplateName()->getQualifier(), theTransaction, addedDecls); - break; - case clang::TemplateName::SubstTemplateTemplateParm: - addDeclsToTransactionForTemplateName(tName.getAsSubstTemplateTemplateParm()->getReplacement(), theTransaction, addedDecls); - break; - /* needs TemplateArgument handling to be refactored - case clang::TemplateName::SubstTemplateTemplateParmPack: - addDeclsToTransactionForTemplateArgument(tName.getAsSubstTemplateTemplateParmPack()->getArgumentPack(), theTransaction, addedDecls); - break; - */ - default: - ROOT::TMetaUtils::Error("addDeclsToTransactionForTemplateName", "Unexpected kind %s\n", - tName.getKind()); - break; - } -} - -//______________________________________________________________________________ -static void addDeclsToTransactionForType(const clang::Type* typ, - cling::Transaction &theTransaction, - std::set &addedDecls) { - switch (typ->getTypeClass()) { - -#define R__ADD_UNDERLYING(WHAT, HOW) \ - case clang::Type::WHAT: \ - addDeclsToTransactionForType(static_cast(typ)->HOW().getTypePtr(), \ - theTransaction, addedDecls); \ - break - R__ADD_UNDERLYING(ConstantArray, getElementType); - R__ADD_UNDERLYING(DependentSizedArray, getElementType); - R__ADD_UNDERLYING(IncompleteArray, getElementType); - R__ADD_UNDERLYING(VariableArray, getElementType); - R__ADD_UNDERLYING(Atomic, getValueType); - R__ADD_UNDERLYING(Auto, getDeducedType); - R__ADD_UNDERLYING(Decltype, getUnderlyingType); - R__ADD_UNDERLYING(Paren, getInnerType); - R__ADD_UNDERLYING(Pointer, getPointeeType); - R__ADD_UNDERLYING(LValueReference, getPointeeType); - R__ADD_UNDERLYING(RValueReference, getPointeeType); - R__ADD_UNDERLYING(TypeOf, getUnderlyingType); - R__ADD_UNDERLYING(Elaborated, getNamedType); - R__ADD_UNDERLYING(UnaryTransform, getUnderlyingType); -#undef R__ADD_UNDERLYING - - case clang::Type::DependentName: { - const clang::NestedNameSpecifier* NNS = static_cast(typ)->getQualifier(); - addDeclsToTransactionForNNS(NNS, theTransaction, addedDecls); - } - break; - - case clang::Type::MemberPointer: - addDeclsToTransactionForType(static_cast(typ)->getPointeeType().getTypePtr(), - theTransaction, addedDecls); - addDeclsToTransactionForType(static_cast(typ)->getClass(), - theTransaction, addedDecls); - break; - - case clang::Type::Enum: - // intentional fall-through - case clang::Type::Record: - addDeclToTransaction(static_cast(typ)->getDecl(), - theTransaction, addedDecls); - break; - case clang::Type::TemplateSpecialization: { - const clang::TemplateSpecializationType* TST = static_cast(typ); - for (const clang::TemplateArgument& TA: *TST) { - switch (TA.getKind()) { - case clang::TemplateArgument::Type: - addDeclsToTransactionForType(TA.getAsType().getTypePtr(), theTransaction, addedDecls); - break; - case clang::TemplateArgument::Declaration: - addDeclToTransaction(TA.getAsDecl(), theTransaction, addedDecls); - break; - case clang::TemplateArgument::Template: // intentional fall-through: - case clang::TemplateArgument::Pack: - addDeclsToTransactionForTemplateName(TA.getAsTemplateOrTemplatePattern(), theTransaction, addedDecls); - break; - case clang::TemplateArgument::Expression: - // Nothing to fwd declare, hopefully... - break; - default: - ROOT::TMetaUtils::Error("addDeclsToTransactionForType", "Unexpected TemplateSpecializationType %d\n", - (int)TA.getKind()); - break; - } - } - addDeclsToTransactionForTemplateName(TST->getTemplateName(), theTransaction, addedDecls); - } - break; - case clang::Type::Typedef: - addDeclToTransaction(static_cast(typ)->getDecl(), - theTransaction, addedDecls); - break; - - case clang::Type::TemplateTypeParm: - addDeclToTransaction(static_cast(typ)->getDecl(), - theTransaction, addedDecls); - break; - - case clang::Type::Builtin: - // Nothing to do. - break; - case clang::Type::TypeOfExpr: - // Nothing to do. - break; - - default: - ROOT::TMetaUtils::Error("addDeclsToTransactionForType", "Unexpected %s\n", - typ->getTypeClassName()); - break; - } - -} - -//______________________________________________________________________________ -static void addDeclToTransaction(clang::Decl *decl, - cling::Transaction &theTransaction, - std::set &addedDecls) -{ - if (decl->isFromASTFile()) return; - if (!addedDecls.insert(decl).second) // no duplicates - return; - -// if (auto *nDecl = llvm::dyn_cast(decl)) { -// if (cling::utils::Analyze::IsStdOrCompilerDetails(*nDecl)){ -// return; -// } -// } - - // Class template instances - if (auto *tsd = llvm::dyn_cast(decl)) { - addDeclToTransaction(tsd->getSpecializedTemplate(), theTransaction, - addedDecls); - } else if (auto *td = llvm::dyn_cast(decl)) { - // default args of type params might need to be fwd declared, as in - // template > struct Y; - // needs X! - clang::TemplateParameterList &tdPars = *td->getTemplateParameters(); - // iterate over defaults. - for (int iArg = tdPars.getMinRequiredArguments(), - nArgs = tdPars.size(); iArg < nArgs; ++iArg) { - if (auto *ttpd = llvm::dyn_cast(tdPars.getParam(iArg))) { - addDeclToTransaction(ttpd, theTransaction, addedDecls); - } - } - } else if (auto *ttpd = llvm::dyn_cast(decl)) { - if (ttpd->hasDefaultArgument() && !ttpd->defaultArgumentWasInherited()) { - addDeclsToTransactionForType(ttpd->getDefaultArgument().getTypePtr(), - theTransaction, addedDecls); - } - // do not add the "T" of template to the - // transaction. - return; - } else if (auto *td = llvm::dyn_cast(decl)) { - addDeclsToTransactionForType(td->getUnderlyingType().getTypePtr(), - theTransaction, addedDecls); - } - - - // Contexts - auto *declForRecursion = decl; - while (auto *ctxt = declForRecursion->getDeclContext()) { - declForRecursion = llvm::dyn_cast_or_null(ctxt); - if (llvm::isa(declForRecursion) && // stop recursion at the last class/struct/ns - (addedDecls.insert(declForRecursion).second)) { // no duplicates - theTransaction.append(declForRecursion); - } else { - break; - } - } - - theTransaction.append(decl); -} - //______________________________________________________________________________ const std::string ROOT::TMetaUtils::AST2SourceTools::Decls2FwdDecls(const std::vector &decls, const cling::Interpreter &interp) @@ -4789,7 +4573,6 @@ const std::string ROOT::TMetaUtils::AST2SourceTools::Decls2FwdDecls(const std::v for (auto decl : decls) { // again waiting for cling clang::Decl *ncDecl = const_cast(decl); - //addDeclToTransaction(ncDecl, theTransaction, addedDecls); theTransaction.append(ncDecl); } std::string newFwdDecl; @@ -5205,79 +4988,3 @@ int ROOT::TMetaUtils::AST2SourceTools::GetDefArg(const clang::ParmVarDecl& par, return 0; } -//______________________________________________________________________________ -int ROOT::TMetaUtils::AST2SourceTools::FwdDeclFromFcnDecl(const clang::FunctionDecl& fcnDecl, - const cling::Interpreter& interp, - std::string& defString) -{ - - // Transform a function decl into a C++ forward declaration - // In some situation, we bail out: - // - CANNOT FWD DECLARE FUNCTIONS TWICE IF DEF ARGS PRESENT: if def args present - // - A parameter or the return value is not built-in - // - The function is a template, a method or extern C - - if (clang::FunctionDecl::TemplatedKind::TK_NonTemplate != fcnDecl.getTemplatedKind() || - llvm::isa(fcnDecl) || - fcnDecl.isExternC()){ - return 1; - } - - // Extract the fwd declaration of a function - defString = fcnDecl.getNameAsString(); - - // Treat parameters - std::string paramString; - auto paramArray = fcnDecl.parameters (); - unsigned int pCounter=0; - std::string parmTypeAsString; - for (auto const & paramptr : paramArray){ - ROOT::TMetaUtils::GetFullyQualifiedTypeName(parmTypeAsString, paramptr->getType(), interp); - paramString += parmTypeAsString+" p"+std::to_string(pCounter); - // For the moment, if it has a def arg or an arg is not built-in - if (paramptr->hasDefaultArg()){ - - // FIXME: here until we don't cope with def arguments - defString=""; - return 1; - - auto pointeeTypePtr = ROOT::TMetaUtils::GetUnderlyingType(paramptr->getType()); - if (!pointeeTypePtr->isBuiltinType()){ - defString=""; - return 1; - } - std::string defVal; - if (0==GetDefArg(*paramptr,defVal,interp.getCI()->getSema().getPrintingPolicy ())){ - paramString+="="+defVal; - } else { - defString=""; - return 1; - } - - } - paramString+=", "; - pCounter++; - } - - const auto size = paramString.size(); - if (size>2) - paramString.erase(size-2,size); - - defString+="("+paramString+");"; - - // Now the return type - const auto retQt = fcnDecl.getReturnType (); - auto& ctxt = fcnDecl.getASTContext(); - if (!retQt.isPODType(ctxt) && !retQt->isVoidType()){ - defString=""; - return 1; - } - - std::string retQtAsString; - ROOT::TMetaUtils::GetFullyQualifiedTypeName(retQtAsString, retQt, interp); - defString = retQtAsString + " " + defString; - - auto retCode = EncloseInNamespaces(fcnDecl, defString); - - return retCode; -} -- 1.8.2