diff options
| -rw-r--r-- | clang/lib/AST/DeclBase.cpp | 15 | 
1 files changed, 12 insertions, 3 deletions
diff --git a/clang/lib/AST/DeclBase.cpp b/clang/lib/AST/DeclBase.cpp index 89c61aea6a0..37505421328 100644 --- a/clang/lib/AST/DeclBase.cpp +++ b/clang/lib/AST/DeclBase.cpp @@ -26,11 +26,13 @@ static unsigned nFuncs = 0;  static unsigned nVars = 0;  static unsigned nParmVars = 0;  static unsigned nSUC = 0; +static unsigned nCXXSUC = 0;  static unsigned nEnumConst = 0;  static unsigned nEnumDecls = 0;  static unsigned nNamespaces = 0;  static unsigned nTypedef = 0;  static unsigned nFieldDecls = 0; +static unsigned nCXXFieldDecls = 0;  static unsigned nInterfaceDecls = 0;  static unsigned nClassDecls = 0;  static unsigned nMethodDecls = 0; @@ -85,7 +87,7 @@ bool Decl::CollectingStats(bool Enable) {  void Decl::PrintStats() {    fprintf(stderr, "*** Decl Stats:\n");    fprintf(stderr, "  %d decls total.\n",  -          int(nFuncs+nVars+nParmVars+nFieldDecls+nSUC+ +          int(nFuncs+nVars+nParmVars+nFieldDecls+nSUC+nCXXFieldDecls+nCXXSUC+                nEnumDecls+nEnumConst+nTypedef+nInterfaceDecls+nClassDecls+                nMethodDecls+nProtocolDecls+nCategoryDecls+nIvarDecls+                nNamespaces)); @@ -106,6 +108,12 @@ void Decl::PrintStats() {    fprintf(stderr, "    %d struct/union/class decls, %d each (%d bytes)\n",             nSUC, (int)sizeof(RecordDecl),            int(nSUC*sizeof(RecordDecl))); +  fprintf(stderr, "    %d C++ field decls, %d each (%d bytes)\n",  +          nCXXFieldDecls, (int)sizeof(CXXFieldDecl), +          int(nCXXFieldDecls*sizeof(CXXFieldDecl))); +  fprintf(stderr, "    %d C++ struct/union/class decls, %d each (%d bytes)\n",  +          nCXXSUC, (int)sizeof(CXXRecordDecl), +          int(nCXXSUC*sizeof(CXXRecordDecl)));    fprintf(stderr, "    %d enum decls, %d each (%d bytes)\n",             nEnumDecls, (int)sizeof(EnumDecl),             int(nEnumDecls*sizeof(EnumDecl))); @@ -161,6 +169,7 @@ void Decl::PrintStats() {            int(nFuncs*sizeof(FunctionDecl)+                nVars*sizeof(VarDecl)+nParmVars*sizeof(ParmVarDecl)+                nFieldDecls*sizeof(FieldDecl)+nSUC*sizeof(RecordDecl)+ +              nCXXFieldDecls*sizeof(CXXFieldDecl)+nCXXSUC*sizeof(CXXRecordDecl)+                nEnumDecls*sizeof(EnumDecl)+nEnumConst*sizeof(EnumConstantDecl)+                nTypedef*sizeof(TypedefDecl)+                nInterfaceDecls*sizeof(ObjCInterfaceDecl)+ @@ -209,9 +218,9 @@ void Decl::addDeclKind(Kind k) {    case ImplicitParam:    case TranslationUnit:     break; +  case CXXField:            nCXXFieldDecls++; break; +  case CXXStruct: case CXXUnion: case CXXClass: nCXXSUC++; break;    // FIXME: Statistics for C++ decls. -  case CXXField: -  case CXXStruct:  case CXXUnion:  case CXXClass:    case CXXMethod:    case CXXClassVar:      break;  | 

