Simplify handling of struct/union/class tags.
Instead of using two sets of Decl kinds (Struct/Union/Class and CXXStruct/CXXUnion/CXXClass), use one 'Record' and one 'CXXRecord' Decl kind and make tag kind a property of TagDecl.
Cleans up the code a bit and better reflects that Decl class structure.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@57541 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/AST/DeclBase.cpp b/lib/AST/DeclBase.cpp
index 265913c..75d6bc6 100644
--- a/lib/AST/DeclBase.cpp
+++ b/lib/AST/DeclBase.cpp
@@ -74,9 +74,8 @@
case ObjCMethod: return "ObjCMethod";
case ObjCProtocol: return "ObjCProtocol";
case ObjCForwardProtocol: return "ObjCForwardProtocol";
- case Struct: return "Struct";
- case Union: return "Union";
- case Class: return "Class";
+ case Record: return "Record";
+ case CXXRecord: return "CXXRecord";
case Enum: return "Enum";
case Block: return "Block";
}
@@ -206,7 +205,7 @@
case ParmVar: nParmVars++; break;
case EnumConstant: nEnumConst++; break;
case Field: nFieldDecls++; break;
- case Struct: case Union: case Class: nSUC++; break;
+ case Record: nSUC++; break;
case Enum: nEnumDecls++; break;
case ObjCInterface: nInterfaceDecls++; break;
case ObjCClass: nClassDecls++; break;
@@ -228,7 +227,7 @@
case TranslationUnit: break;
case CXXField: nCXXFieldDecls++; break;
- case CXXStruct: case CXXUnion: case CXXClass: nCXXSUC++; break;
+ case CXXRecord: nCXXSUC++; break;
// FIXME: Statistics for C++ decls.
case CXXMethod:
case CXXClassVar: