Merge changes Ie6c300e1,I391f1e69

* changes:
  header-checker: Remove protobuf parser for Python
  header-checker: Reorder command line option checks
diff --git a/vndk/tools/header-checker/header-abi-dumper/src/header_checker.cpp b/vndk/tools/header-checker/header-abi-dumper/src/header_checker.cpp
index 9b29597..02ba155 100644
--- a/vndk/tools/header-checker/header-abi-dumper/src/header_checker.cpp
+++ b/vndk/tools/header-checker/header-abi-dumper/src/header_checker.cpp
@@ -81,29 +81,35 @@
   FixedArgvRegistry::Apply(fixed_argv);
 
   // Create compilation database from command line arguments after "--".
+  std::string cmdline_error_msg;
   std::unique_ptr<clang::tooling::CompilationDatabase> compilations;
   {
     // loadFromCommandLine() may alter argc and argv, thus access fixed_argv
     // through FixedArgvAccess.
     FixedArgvAccess raw(fixed_argv);
 
-    std::string cmdline_error_msg;
     compilations =
         clang::tooling::FixedCompilationDatabase::loadFromCommandLine(
             raw.argc_, raw.argv_, cmdline_error_msg);
-
-    // Check whether we can create compilation database and deduce compiler
-    // options from command line options.
-    if (!compilations) {
-      llvm::errs() << "ERROR: " << cmdline_error_msg << "\n";
-      ::exit(1);
-    }
   }
 
-  // Parse the command line options.
+  // Parse the command line options
   llvm::cl::ParseCommandLineOptions(
       fixed_argv.GetArgc(), fixed_argv.GetArgv(), "header-checker");
 
+  // Print an error message if we failed to create the compilation database
+  // from the command line arguments. This check is intentionally performed
+  // after `llvm::cl::ParseCommandLineOptions()` so that `-help` can work
+  // without `--`.
+  if (!compilations) {
+    if (cmdline_error_msg.empty()) {
+      llvm::errs() << "ERROR: Failed to parse clang command line options\n";
+    } else {
+      llvm::errs() << "ERROR: " << cmdline_error_msg << "\n";
+    }
+    ::exit(1);
+  }
+
   // Input header file existential check.
   if (!llvm::sys::fs::exists(header_file)) {
     llvm::errs() << "ERROR: Header file \"" << header_file << "\" not found\n";
diff --git a/vndk/tools/header-checker/proto/__init__.py b/vndk/tools/header-checker/proto/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/vndk/tools/header-checker/proto/__init__.py
+++ /dev/null
diff --git a/vndk/tools/header-checker/proto/abi_dump_pb2.py b/vndk/tools/header-checker/proto/abi_dump_pb2.py
deleted file mode 100644
index b6c1dcf..0000000
--- a/vndk/tools/header-checker/proto/abi_dump_pb2.py
+++ /dev/null
@@ -1,1574 +0,0 @@
-# Generated by the protocol buffer compiler.  DO NOT EDIT!
-# source: abi_dump.proto
-
-import sys
-_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
-from google.protobuf.internal import enum_type_wrapper
-from google.protobuf import descriptor as _descriptor
-from google.protobuf import message as _message
-from google.protobuf import reflection as _reflection
-from google.protobuf import symbol_database as _symbol_database
-# @@protoc_insertion_point(imports)
-
-_sym_db = _symbol_database.Default()
-
-
-
-
-DESCRIPTOR = _descriptor.FileDescriptor(
-  name='abi_dump.proto',
-  package='abi_dump',
-  syntax='proto2',
-  serialized_options=None,
-  serialized_pb=_b('\n\x0e\x61\x62i_dump.proto\x12\x08\x61\x62i_dump\"\xa6\x01\n\x16\x42\x61sicNamedAndTypedDecl\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0f\n\x04size\x18\x02 \x01(\x04:\x01\x30\x12\x14\n\talignment\x18\x03 \x01(\r:\x01\x30\x12\x17\n\x0freferenced_type\x18\x04 \x01(\t\x12\x13\n\x0bsource_file\x18\x05 \x01(\t\x12\x16\n\x0elinker_set_key\x18\x06 \x01(\t\x12\x11\n\tself_type\x18\x07 \x01(\t\"@\n\tArrayType\x12\x33\n\ttype_info\x18\x01 \x01(\x0b\x32 .abi_dump.BasicNamedAndTypedDecl\"B\n\x0bPointerType\x12\x33\n\ttype_info\x18\x01 \x01(\x0b\x32 .abi_dump.BasicNamedAndTypedDecl\"\x82\x01\n\rQualifiedType\x12\x33\n\ttype_info\x18\x01 \x01(\x0b\x32 .abi_dump.BasicNamedAndTypedDecl\x12\x10\n\x08is_const\x18\x06 \x01(\x08\x12\x13\n\x0bis_volatile\x18\x07 \x01(\x08\x12\x15\n\ris_restricted\x18\x08 \x01(\x08\"l\n\x0b\x42uiltinType\x12\x33\n\ttype_info\x18\x01 \x01(\x0b\x32 .abi_dump.BasicNamedAndTypedDecl\x12\x13\n\x0bis_unsigned\x18\x02 \x01(\x08\x12\x13\n\x0bis_integral\x18\x03 \x01(\x08\"J\n\x13LvalueReferenceType\x12\x33\n\ttype_info\x18\x01 \x01(\x0b\x32 .abi_dump.BasicNamedAndTypedDecl\"J\n\x13RvalueReferenceType\x12\x33\n\ttype_info\x18\x01 \x01(\x0b\x32 .abi_dump.BasicNamedAndTypedDecl\"\x81\x01\n\x0c\x46unctionType\x12\x33\n\ttype_info\x18\x01 \x01(\x0b\x32 .abi_dump.BasicNamedAndTypedDecl\x12\x13\n\x0breturn_type\x18\x02 \x01(\t\x12\'\n\nparameters\x18\x03 \x03(\x0b\x32\x13.abi_dump.ParamDecl\"\xf9\x01\n\x0c\x46unctionDecl\x12\x13\n\x0breturn_type\x18\x01 \x01(\t\x12\x15\n\rfunction_name\x18\x02 \x01(\t\x12\x13\n\x0bsource_file\x18\x03 \x01(\t\x12\'\n\nparameters\x18\x04 \x03(\x0b\x32\x13.abi_dump.ParamDecl\x12-\n\rtemplate_info\x18\x05 \x01(\x0b\x32\x16.abi_dump.TemplateInfo\x12\x16\n\x0elinker_set_key\x18\x06 \x01(\t\x12\x38\n\x06\x61\x63\x63\x65ss\x18\x07 \x01(\x0e\x32\x19.abi_dump.AccessSpecifier:\rpublic_access\"N\n\tParamDecl\x12\x17\n\x0freferenced_type\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65\x66\x61ult_arg\x18\x02 \x01(\x08\x12\x13\n\x0bis_this_ptr\x18\x03 \x01(\x08\"\x8e\x01\n\x0fRecordFieldDecl\x12\x17\n\x0freferenced_type\x18\x01 \x01(\t\x12\x14\n\x0c\x66ield_offset\x18\x02 \x01(\x04\x12\x12\n\nfield_name\x18\x03 \x01(\t\x12\x38\n\x06\x61\x63\x63\x65ss\x18\x04 \x01(\x0e\x32\x19.abi_dump.AccessSpecifier:\rpublic_access\"7\n\rEnumFieldDecl\x12\x18\n\x10\x65num_field_value\x18\x01 \x01(\x03\x12\x0c\n\x04name\x18\x03 \x01(\t\";\n\x0cTemplateInfo\x12+\n\x08\x65lements\x18\x01 \x03(\x0b\x32\x19.abi_dump.TemplateElement\"*\n\x0fTemplateElement\x12\x17\n\x0freferenced_type\x18\x01 \x01(\t\"j\n\x10\x43XXBaseSpecifier\x12\x17\n\x0freferenced_type\x18\x01 \x01(\t\x12\x12\n\nis_virtual\x18\x02 \x01(\x08\x12)\n\x06\x61\x63\x63\x65ss\x18\x03 \x01(\x0e\x32\x19.abi_dump.AccessSpecifier\"\xcf\x02\n\x0fVTableComponent\x12,\n\x04kind\x18\x01 \x01(\x0e\x32\x1e.abi_dump.VTableComponent.Kind\x12 \n\x16mangled_component_name\x18\x02 \x01(\t:\x00\x12\x10\n\x05value\x18\x03 \x01(\x04:\x01\x30\x12\x1a\n\x0f\x63omponent_value\x18\x04 \x01(\x03:\x01\x30\x12\x16\n\x07is_pure\x18\x06 \x01(\x08:\x05\x66\x61lse\"\xa5\x01\n\x04Kind\x12\x0f\n\x0bVCallOffset\x10\x00\x12\x0f\n\x0bVBaseOffset\x10\x01\x12\x0f\n\x0bOffsetToTop\x10\x02\x12\x08\n\x04RTTI\x10\x03\x12\x13\n\x0f\x46unctionPointer\x10\x04\x12\x17\n\x13\x43ompleteDtorPointer\x10\x05\x12\x17\n\x13\x44\x65letingDtorPointer\x10\x06\x12\x19\n\x15UnusedFunctionPointer\x10\x07\"D\n\x0cVTableLayout\x12\x34\n\x11vtable_components\x18\x01 \x03(\x0b\x32\x19.abi_dump.VTableComponent\"\x1e\n\x07TagType\x12\x13\n\tunique_id\x18\x01 \x01(\t:\x00\"\xac\x03\n\nRecordType\x12\x33\n\ttype_info\x18\x01 \x01(\x0b\x32 .abi_dump.BasicNamedAndTypedDecl\x12)\n\x06\x66ields\x18\x02 \x03(\x0b\x32\x19.abi_dump.RecordFieldDecl\x12\x33\n\x0f\x62\x61se_specifiers\x18\x03 \x03(\x0b\x32\x1a.abi_dump.CXXBaseSpecifier\x12-\n\rtemplate_info\x18\x05 \x01(\x0b\x32\x16.abi_dump.TemplateInfo\x12-\n\rvtable_layout\x18\x07 \x01(\x0b\x32\x16.abi_dump.VTableLayout\x12\x38\n\x06\x61\x63\x63\x65ss\x18\x08 \x01(\x0e\x32\x19.abi_dump.AccessSpecifier:\rpublic_access\x12\x14\n\x0cis_anonymous\x18\t \x01(\x08\x12\x36\n\x0brecord_kind\x18\n \x01(\x0e\x32\x14.abi_dump.RecordKind:\x0bstruct_kind\x12#\n\x08tag_info\x18\x0b \x01(\x0b\x32\x11.abi_dump.TagType\"\xe5\x01\n\x08\x45numType\x12\x33\n\ttype_info\x18\x01 \x01(\x0b\x32 .abi_dump.BasicNamedAndTypedDecl\x12\x17\n\x0funderlying_type\x18\x02 \x01(\t\x12,\n\x0b\x65num_fields\x18\x03 \x03(\x0b\x32\x17.abi_dump.EnumFieldDecl\x12\x38\n\x06\x61\x63\x63\x65ss\x18\x04 \x01(\x0e\x32\x19.abi_dump.AccessSpecifier:\rpublic_access\x12#\n\x08tag_info\x18\x05 \x01(\x0b\x32\x11.abi_dump.TagType\"\x9d\x01\n\rGlobalVarDecl\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0bsource_file\x18\x02 \x01(\t\x12\x16\n\x0elinker_set_key\x18\x03 \x01(\t\x12\x17\n\x0freferenced_type\x18\x04 \x01(\t\x12\x38\n\x06\x61\x63\x63\x65ss\x18\x05 \x01(\x0e\x32\x19.abi_dump.AccessSpecifier:\rpublic_access\"H\n\x0b\x45lfFunction\x12\x0c\n\x04name\x18\x01 \x01(\t\x12+\n\x07\x62inding\x18\x02 \x01(\x0e\x32\x1a.abi_dump.ElfSymbolBinding\"F\n\tElfObject\x12\x0c\n\x04name\x18\x01 \x01(\t\x12+\n\x07\x62inding\x18\x02 \x01(\x0e\x32\x1a.abi_dump.ElfSymbolBinding\"\xfc\x04\n\x0fTranslationUnit\x12*\n\x0crecord_types\x18\x01 \x03(\x0b\x32\x14.abi_dump.RecordType\x12&\n\nenum_types\x18\x02 \x03(\x0b\x32\x12.abi_dump.EnumType\x12,\n\rpointer_types\x18\x03 \x03(\x0b\x32\x15.abi_dump.PointerType\x12=\n\x16lvalue_reference_types\x18\x04 \x03(\x0b\x32\x1d.abi_dump.LvalueReferenceType\x12=\n\x16rvalue_reference_types\x18\x05 \x03(\x0b\x32\x1d.abi_dump.RvalueReferenceType\x12,\n\rbuiltin_types\x18\x06 \x03(\x0b\x32\x15.abi_dump.BuiltinType\x12\x30\n\x0fqualified_types\x18\x07 \x03(\x0b\x32\x17.abi_dump.QualifiedType\x12(\n\x0b\x61rray_types\x18\x08 \x03(\x0b\x32\x13.abi_dump.ArrayType\x12.\n\x0e\x66unction_types\x18\r \x03(\x0b\x32\x16.abi_dump.FunctionType\x12)\n\tfunctions\x18\t \x03(\x0b\x32\x16.abi_dump.FunctionDecl\x12,\n\x0bglobal_vars\x18\n \x03(\x0b\x32\x17.abi_dump.GlobalVarDecl\x12,\n\relf_functions\x18\x0b \x03(\x0b\x32\x15.abi_dump.ElfFunction\x12(\n\x0b\x65lf_objects\x18\x0c \x03(\x0b\x32\x13.abi_dump.ElfObject*N\n\x0f\x41\x63\x63\x65ssSpecifier\x12\x11\n\rpublic_access\x10\x01\x12\x12\n\x0eprivate_access\x10\x02\x12\x14\n\x10protected_access\x10\x03*=\n\nRecordKind\x12\x0f\n\x0bstruct_kind\x10\x01\x12\x0e\n\nclass_kind\x10\x02\x12\x0e\n\nunion_kind\x10\x03*(\n\x10\x45lfSymbolBinding\x12\n\n\x06Global\x10\x01\x12\x08\n\x04Weak\x10\x02')
-)
-
-_ACCESSSPECIFIER = _descriptor.EnumDescriptor(
-  name='AccessSpecifier',
-  full_name='abi_dump.AccessSpecifier',
-  filename=None,
-  file=DESCRIPTOR,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='public_access', index=0, number=1,
-      serialized_options=None,
-      type=None),
-    _descriptor.EnumValueDescriptor(
-      name='private_access', index=1, number=2,
-      serialized_options=None,
-      type=None),
-    _descriptor.EnumValueDescriptor(
-      name='protected_access', index=2, number=3,
-      serialized_options=None,
-      type=None),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=3653,
-  serialized_end=3731,
-)
-_sym_db.RegisterEnumDescriptor(_ACCESSSPECIFIER)
-
-AccessSpecifier = enum_type_wrapper.EnumTypeWrapper(_ACCESSSPECIFIER)
-_RECORDKIND = _descriptor.EnumDescriptor(
-  name='RecordKind',
-  full_name='abi_dump.RecordKind',
-  filename=None,
-  file=DESCRIPTOR,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='struct_kind', index=0, number=1,
-      serialized_options=None,
-      type=None),
-    _descriptor.EnumValueDescriptor(
-      name='class_kind', index=1, number=2,
-      serialized_options=None,
-      type=None),
-    _descriptor.EnumValueDescriptor(
-      name='union_kind', index=2, number=3,
-      serialized_options=None,
-      type=None),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=3733,
-  serialized_end=3794,
-)
-_sym_db.RegisterEnumDescriptor(_RECORDKIND)
-
-RecordKind = enum_type_wrapper.EnumTypeWrapper(_RECORDKIND)
-_ELFSYMBOLBINDING = _descriptor.EnumDescriptor(
-  name='ElfSymbolBinding',
-  full_name='abi_dump.ElfSymbolBinding',
-  filename=None,
-  file=DESCRIPTOR,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='Global', index=0, number=1,
-      serialized_options=None,
-      type=None),
-    _descriptor.EnumValueDescriptor(
-      name='Weak', index=1, number=2,
-      serialized_options=None,
-      type=None),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=3796,
-  serialized_end=3836,
-)
-_sym_db.RegisterEnumDescriptor(_ELFSYMBOLBINDING)
-
-ElfSymbolBinding = enum_type_wrapper.EnumTypeWrapper(_ELFSYMBOLBINDING)
-public_access = 1
-private_access = 2
-protected_access = 3
-struct_kind = 1
-class_kind = 2
-union_kind = 3
-Global = 1
-Weak = 2
-
-
-_VTABLECOMPONENT_KIND = _descriptor.EnumDescriptor(
-  name='Kind',
-  full_name='abi_dump.VTableComponent.Kind',
-  filename=None,
-  file=DESCRIPTOR,
-  values=[
-    _descriptor.EnumValueDescriptor(
-      name='VCallOffset', index=0, number=0,
-      serialized_options=None,
-      type=None),
-    _descriptor.EnumValueDescriptor(
-      name='VBaseOffset', index=1, number=1,
-      serialized_options=None,
-      type=None),
-    _descriptor.EnumValueDescriptor(
-      name='OffsetToTop', index=2, number=2,
-      serialized_options=None,
-      type=None),
-    _descriptor.EnumValueDescriptor(
-      name='RTTI', index=3, number=3,
-      serialized_options=None,
-      type=None),
-    _descriptor.EnumValueDescriptor(
-      name='FunctionPointer', index=4, number=4,
-      serialized_options=None,
-      type=None),
-    _descriptor.EnumValueDescriptor(
-      name='CompleteDtorPointer', index=5, number=5,
-      serialized_options=None,
-      type=None),
-    _descriptor.EnumValueDescriptor(
-      name='DeletingDtorPointer', index=6, number=6,
-      serialized_options=None,
-      type=None),
-    _descriptor.EnumValueDescriptor(
-      name='UnusedFunctionPointer', index=7, number=7,
-      serialized_options=None,
-      type=None),
-  ],
-  containing_type=None,
-  serialized_options=None,
-  serialized_start=1776,
-  serialized_end=1941,
-)
-_sym_db.RegisterEnumDescriptor(_VTABLECOMPONENT_KIND)
-
-
-_BASICNAMEDANDTYPEDDECL = _descriptor.Descriptor(
-  name='BasicNamedAndTypedDecl',
-  full_name='abi_dump.BasicNamedAndTypedDecl',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='name', full_name='abi_dump.BasicNamedAndTypedDecl.name', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='size', full_name='abi_dump.BasicNamedAndTypedDecl.size', index=1,
-      number=2, type=4, cpp_type=4, label=1,
-      has_default_value=True, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='alignment', full_name='abi_dump.BasicNamedAndTypedDecl.alignment', index=2,
-      number=3, type=13, cpp_type=3, label=1,
-      has_default_value=True, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='referenced_type', full_name='abi_dump.BasicNamedAndTypedDecl.referenced_type', index=3,
-      number=4, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='source_file', full_name='abi_dump.BasicNamedAndTypedDecl.source_file', index=4,
-      number=5, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='linker_set_key', full_name='abi_dump.BasicNamedAndTypedDecl.linker_set_key', index=5,
-      number=6, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='self_type', full_name='abi_dump.BasicNamedAndTypedDecl.self_type', index=6,
-      number=7, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=29,
-  serialized_end=195,
-)
-
-
-_ARRAYTYPE = _descriptor.Descriptor(
-  name='ArrayType',
-  full_name='abi_dump.ArrayType',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='type_info', full_name='abi_dump.ArrayType.type_info', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=197,
-  serialized_end=261,
-)
-
-
-_POINTERTYPE = _descriptor.Descriptor(
-  name='PointerType',
-  full_name='abi_dump.PointerType',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='type_info', full_name='abi_dump.PointerType.type_info', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=263,
-  serialized_end=329,
-)
-
-
-_QUALIFIEDTYPE = _descriptor.Descriptor(
-  name='QualifiedType',
-  full_name='abi_dump.QualifiedType',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='type_info', full_name='abi_dump.QualifiedType.type_info', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='is_const', full_name='abi_dump.QualifiedType.is_const', index=1,
-      number=6, type=8, cpp_type=7, label=1,
-      has_default_value=False, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='is_volatile', full_name='abi_dump.QualifiedType.is_volatile', index=2,
-      number=7, type=8, cpp_type=7, label=1,
-      has_default_value=False, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='is_restricted', full_name='abi_dump.QualifiedType.is_restricted', index=3,
-      number=8, type=8, cpp_type=7, label=1,
-      has_default_value=False, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=332,
-  serialized_end=462,
-)
-
-
-_BUILTINTYPE = _descriptor.Descriptor(
-  name='BuiltinType',
-  full_name='abi_dump.BuiltinType',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='type_info', full_name='abi_dump.BuiltinType.type_info', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='is_unsigned', full_name='abi_dump.BuiltinType.is_unsigned', index=1,
-      number=2, type=8, cpp_type=7, label=1,
-      has_default_value=False, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='is_integral', full_name='abi_dump.BuiltinType.is_integral', index=2,
-      number=3, type=8, cpp_type=7, label=1,
-      has_default_value=False, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=464,
-  serialized_end=572,
-)
-
-
-_LVALUEREFERENCETYPE = _descriptor.Descriptor(
-  name='LvalueReferenceType',
-  full_name='abi_dump.LvalueReferenceType',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='type_info', full_name='abi_dump.LvalueReferenceType.type_info', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=574,
-  serialized_end=648,
-)
-
-
-_RVALUEREFERENCETYPE = _descriptor.Descriptor(
-  name='RvalueReferenceType',
-  full_name='abi_dump.RvalueReferenceType',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='type_info', full_name='abi_dump.RvalueReferenceType.type_info', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=650,
-  serialized_end=724,
-)
-
-
-_FUNCTIONTYPE = _descriptor.Descriptor(
-  name='FunctionType',
-  full_name='abi_dump.FunctionType',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='type_info', full_name='abi_dump.FunctionType.type_info', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='return_type', full_name='abi_dump.FunctionType.return_type', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='parameters', full_name='abi_dump.FunctionType.parameters', index=2,
-      number=3, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=727,
-  serialized_end=856,
-)
-
-
-_FUNCTIONDECL = _descriptor.Descriptor(
-  name='FunctionDecl',
-  full_name='abi_dump.FunctionDecl',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='return_type', full_name='abi_dump.FunctionDecl.return_type', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='function_name', full_name='abi_dump.FunctionDecl.function_name', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='source_file', full_name='abi_dump.FunctionDecl.source_file', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='parameters', full_name='abi_dump.FunctionDecl.parameters', index=3,
-      number=4, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='template_info', full_name='abi_dump.FunctionDecl.template_info', index=4,
-      number=5, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='linker_set_key', full_name='abi_dump.FunctionDecl.linker_set_key', index=5,
-      number=6, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='access', full_name='abi_dump.FunctionDecl.access', index=6,
-      number=7, type=14, cpp_type=8, label=1,
-      has_default_value=True, default_value=1,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=859,
-  serialized_end=1108,
-)
-
-
-_PARAMDECL = _descriptor.Descriptor(
-  name='ParamDecl',
-  full_name='abi_dump.ParamDecl',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='referenced_type', full_name='abi_dump.ParamDecl.referenced_type', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='default_arg', full_name='abi_dump.ParamDecl.default_arg', index=1,
-      number=2, type=8, cpp_type=7, label=1,
-      has_default_value=False, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='is_this_ptr', full_name='abi_dump.ParamDecl.is_this_ptr', index=2,
-      number=3, type=8, cpp_type=7, label=1,
-      has_default_value=False, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1110,
-  serialized_end=1188,
-)
-
-
-_RECORDFIELDDECL = _descriptor.Descriptor(
-  name='RecordFieldDecl',
-  full_name='abi_dump.RecordFieldDecl',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='referenced_type', full_name='abi_dump.RecordFieldDecl.referenced_type', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='field_offset', full_name='abi_dump.RecordFieldDecl.field_offset', index=1,
-      number=2, type=4, cpp_type=4, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='field_name', full_name='abi_dump.RecordFieldDecl.field_name', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='access', full_name='abi_dump.RecordFieldDecl.access', index=3,
-      number=4, type=14, cpp_type=8, label=1,
-      has_default_value=True, default_value=1,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1191,
-  serialized_end=1333,
-)
-
-
-_ENUMFIELDDECL = _descriptor.Descriptor(
-  name='EnumFieldDecl',
-  full_name='abi_dump.EnumFieldDecl',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='enum_field_value', full_name='abi_dump.EnumFieldDecl.enum_field_value', index=0,
-      number=1, type=3, cpp_type=2, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='name', full_name='abi_dump.EnumFieldDecl.name', index=1,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1335,
-  serialized_end=1390,
-)
-
-
-_TEMPLATEINFO = _descriptor.Descriptor(
-  name='TemplateInfo',
-  full_name='abi_dump.TemplateInfo',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='elements', full_name='abi_dump.TemplateInfo.elements', index=0,
-      number=1, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1392,
-  serialized_end=1451,
-)
-
-
-_TEMPLATEELEMENT = _descriptor.Descriptor(
-  name='TemplateElement',
-  full_name='abi_dump.TemplateElement',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='referenced_type', full_name='abi_dump.TemplateElement.referenced_type', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1453,
-  serialized_end=1495,
-)
-
-
-_CXXBASESPECIFIER = _descriptor.Descriptor(
-  name='CXXBaseSpecifier',
-  full_name='abi_dump.CXXBaseSpecifier',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='referenced_type', full_name='abi_dump.CXXBaseSpecifier.referenced_type', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='is_virtual', full_name='abi_dump.CXXBaseSpecifier.is_virtual', index=1,
-      number=2, type=8, cpp_type=7, label=1,
-      has_default_value=False, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='access', full_name='abi_dump.CXXBaseSpecifier.access', index=2,
-      number=3, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=1,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1497,
-  serialized_end=1603,
-)
-
-
-_VTABLECOMPONENT = _descriptor.Descriptor(
-  name='VTableComponent',
-  full_name='abi_dump.VTableComponent',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='kind', full_name='abi_dump.VTableComponent.kind', index=0,
-      number=1, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='mangled_component_name', full_name='abi_dump.VTableComponent.mangled_component_name', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=True, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='value', full_name='abi_dump.VTableComponent.value', index=2,
-      number=3, type=4, cpp_type=4, label=1,
-      has_default_value=True, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='component_value', full_name='abi_dump.VTableComponent.component_value', index=3,
-      number=4, type=3, cpp_type=2, label=1,
-      has_default_value=True, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='is_pure', full_name='abi_dump.VTableComponent.is_pure', index=4,
-      number=6, type=8, cpp_type=7, label=1,
-      has_default_value=True, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-    _VTABLECOMPONENT_KIND,
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1606,
-  serialized_end=1941,
-)
-
-
-_VTABLELAYOUT = _descriptor.Descriptor(
-  name='VTableLayout',
-  full_name='abi_dump.VTableLayout',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='vtable_components', full_name='abi_dump.VTableLayout.vtable_components', index=0,
-      number=1, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=1943,
-  serialized_end=2011,
-)
-
-
-_TAGTYPE = _descriptor.Descriptor(
-  name='TagType',
-  full_name='abi_dump.TagType',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='unique_id', full_name='abi_dump.TagType.unique_id', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=True, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2013,
-  serialized_end=2043,
-)
-
-
-_RECORDTYPE = _descriptor.Descriptor(
-  name='RecordType',
-  full_name='abi_dump.RecordType',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='type_info', full_name='abi_dump.RecordType.type_info', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='fields', full_name='abi_dump.RecordType.fields', index=1,
-      number=2, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='base_specifiers', full_name='abi_dump.RecordType.base_specifiers', index=2,
-      number=3, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='template_info', full_name='abi_dump.RecordType.template_info', index=3,
-      number=5, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='vtable_layout', full_name='abi_dump.RecordType.vtable_layout', index=4,
-      number=7, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='access', full_name='abi_dump.RecordType.access', index=5,
-      number=8, type=14, cpp_type=8, label=1,
-      has_default_value=True, default_value=1,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='is_anonymous', full_name='abi_dump.RecordType.is_anonymous', index=6,
-      number=9, type=8, cpp_type=7, label=1,
-      has_default_value=False, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='record_kind', full_name='abi_dump.RecordType.record_kind', index=7,
-      number=10, type=14, cpp_type=8, label=1,
-      has_default_value=True, default_value=1,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='tag_info', full_name='abi_dump.RecordType.tag_info', index=8,
-      number=11, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2046,
-  serialized_end=2474,
-)
-
-
-_ENUMTYPE = _descriptor.Descriptor(
-  name='EnumType',
-  full_name='abi_dump.EnumType',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='type_info', full_name='abi_dump.EnumType.type_info', index=0,
-      number=1, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='underlying_type', full_name='abi_dump.EnumType.underlying_type', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='enum_fields', full_name='abi_dump.EnumType.enum_fields', index=2,
-      number=3, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='access', full_name='abi_dump.EnumType.access', index=3,
-      number=4, type=14, cpp_type=8, label=1,
-      has_default_value=True, default_value=1,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='tag_info', full_name='abi_dump.EnumType.tag_info', index=4,
-      number=5, type=11, cpp_type=10, label=1,
-      has_default_value=False, default_value=None,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2477,
-  serialized_end=2706,
-)
-
-
-_GLOBALVARDECL = _descriptor.Descriptor(
-  name='GlobalVarDecl',
-  full_name='abi_dump.GlobalVarDecl',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='name', full_name='abi_dump.GlobalVarDecl.name', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='source_file', full_name='abi_dump.GlobalVarDecl.source_file', index=1,
-      number=2, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='linker_set_key', full_name='abi_dump.GlobalVarDecl.linker_set_key', index=2,
-      number=3, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='referenced_type', full_name='abi_dump.GlobalVarDecl.referenced_type', index=3,
-      number=4, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='access', full_name='abi_dump.GlobalVarDecl.access', index=4,
-      number=5, type=14, cpp_type=8, label=1,
-      has_default_value=True, default_value=1,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2709,
-  serialized_end=2866,
-)
-
-
-_ELFFUNCTION = _descriptor.Descriptor(
-  name='ElfFunction',
-  full_name='abi_dump.ElfFunction',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='name', full_name='abi_dump.ElfFunction.name', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='binding', full_name='abi_dump.ElfFunction.binding', index=1,
-      number=2, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=1,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2868,
-  serialized_end=2940,
-)
-
-
-_ELFOBJECT = _descriptor.Descriptor(
-  name='ElfObject',
-  full_name='abi_dump.ElfObject',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='name', full_name='abi_dump.ElfObject.name', index=0,
-      number=1, type=9, cpp_type=9, label=1,
-      has_default_value=False, default_value=_b("").decode('utf-8'),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='binding', full_name='abi_dump.ElfObject.binding', index=1,
-      number=2, type=14, cpp_type=8, label=1,
-      has_default_value=False, default_value=1,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=2942,
-  serialized_end=3012,
-)
-
-
-_TRANSLATIONUNIT = _descriptor.Descriptor(
-  name='TranslationUnit',
-  full_name='abi_dump.TranslationUnit',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    _descriptor.FieldDescriptor(
-      name='record_types', full_name='abi_dump.TranslationUnit.record_types', index=0,
-      number=1, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='enum_types', full_name='abi_dump.TranslationUnit.enum_types', index=1,
-      number=2, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='pointer_types', full_name='abi_dump.TranslationUnit.pointer_types', index=2,
-      number=3, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='lvalue_reference_types', full_name='abi_dump.TranslationUnit.lvalue_reference_types', index=3,
-      number=4, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='rvalue_reference_types', full_name='abi_dump.TranslationUnit.rvalue_reference_types', index=4,
-      number=5, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='builtin_types', full_name='abi_dump.TranslationUnit.builtin_types', index=5,
-      number=6, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='qualified_types', full_name='abi_dump.TranslationUnit.qualified_types', index=6,
-      number=7, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='array_types', full_name='abi_dump.TranslationUnit.array_types', index=7,
-      number=8, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='function_types', full_name='abi_dump.TranslationUnit.function_types', index=8,
-      number=13, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='functions', full_name='abi_dump.TranslationUnit.functions', index=9,
-      number=9, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='global_vars', full_name='abi_dump.TranslationUnit.global_vars', index=10,
-      number=10, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='elf_functions', full_name='abi_dump.TranslationUnit.elf_functions', index=11,
-      number=11, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-    _descriptor.FieldDescriptor(
-      name='elf_objects', full_name='abi_dump.TranslationUnit.elf_objects', index=12,
-      number=12, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      serialized_options=None, file=DESCRIPTOR),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  serialized_options=None,
-  is_extendable=False,
-  syntax='proto2',
-  extension_ranges=[],
-  oneofs=[
-  ],
-  serialized_start=3015,
-  serialized_end=3651,
-)
-
-_ARRAYTYPE.fields_by_name['type_info'].message_type = _BASICNAMEDANDTYPEDDECL
-_POINTERTYPE.fields_by_name['type_info'].message_type = _BASICNAMEDANDTYPEDDECL
-_QUALIFIEDTYPE.fields_by_name['type_info'].message_type = _BASICNAMEDANDTYPEDDECL
-_BUILTINTYPE.fields_by_name['type_info'].message_type = _BASICNAMEDANDTYPEDDECL
-_LVALUEREFERENCETYPE.fields_by_name['type_info'].message_type = _BASICNAMEDANDTYPEDDECL
-_RVALUEREFERENCETYPE.fields_by_name['type_info'].message_type = _BASICNAMEDANDTYPEDDECL
-_FUNCTIONTYPE.fields_by_name['type_info'].message_type = _BASICNAMEDANDTYPEDDECL
-_FUNCTIONTYPE.fields_by_name['parameters'].message_type = _PARAMDECL
-_FUNCTIONDECL.fields_by_name['parameters'].message_type = _PARAMDECL
-_FUNCTIONDECL.fields_by_name['template_info'].message_type = _TEMPLATEINFO
-_FUNCTIONDECL.fields_by_name['access'].enum_type = _ACCESSSPECIFIER
-_RECORDFIELDDECL.fields_by_name['access'].enum_type = _ACCESSSPECIFIER
-_TEMPLATEINFO.fields_by_name['elements'].message_type = _TEMPLATEELEMENT
-_CXXBASESPECIFIER.fields_by_name['access'].enum_type = _ACCESSSPECIFIER
-_VTABLECOMPONENT.fields_by_name['kind'].enum_type = _VTABLECOMPONENT_KIND
-_VTABLECOMPONENT_KIND.containing_type = _VTABLECOMPONENT
-_VTABLELAYOUT.fields_by_name['vtable_components'].message_type = _VTABLECOMPONENT
-_RECORDTYPE.fields_by_name['type_info'].message_type = _BASICNAMEDANDTYPEDDECL
-_RECORDTYPE.fields_by_name['fields'].message_type = _RECORDFIELDDECL
-_RECORDTYPE.fields_by_name['base_specifiers'].message_type = _CXXBASESPECIFIER
-_RECORDTYPE.fields_by_name['template_info'].message_type = _TEMPLATEINFO
-_RECORDTYPE.fields_by_name['vtable_layout'].message_type = _VTABLELAYOUT
-_RECORDTYPE.fields_by_name['access'].enum_type = _ACCESSSPECIFIER
-_RECORDTYPE.fields_by_name['record_kind'].enum_type = _RECORDKIND
-_RECORDTYPE.fields_by_name['tag_info'].message_type = _TAGTYPE
-_ENUMTYPE.fields_by_name['type_info'].message_type = _BASICNAMEDANDTYPEDDECL
-_ENUMTYPE.fields_by_name['enum_fields'].message_type = _ENUMFIELDDECL
-_ENUMTYPE.fields_by_name['access'].enum_type = _ACCESSSPECIFIER
-_ENUMTYPE.fields_by_name['tag_info'].message_type = _TAGTYPE
-_GLOBALVARDECL.fields_by_name['access'].enum_type = _ACCESSSPECIFIER
-_ELFFUNCTION.fields_by_name['binding'].enum_type = _ELFSYMBOLBINDING
-_ELFOBJECT.fields_by_name['binding'].enum_type = _ELFSYMBOLBINDING
-_TRANSLATIONUNIT.fields_by_name['record_types'].message_type = _RECORDTYPE
-_TRANSLATIONUNIT.fields_by_name['enum_types'].message_type = _ENUMTYPE
-_TRANSLATIONUNIT.fields_by_name['pointer_types'].message_type = _POINTERTYPE
-_TRANSLATIONUNIT.fields_by_name['lvalue_reference_types'].message_type = _LVALUEREFERENCETYPE
-_TRANSLATIONUNIT.fields_by_name['rvalue_reference_types'].message_type = _RVALUEREFERENCETYPE
-_TRANSLATIONUNIT.fields_by_name['builtin_types'].message_type = _BUILTINTYPE
-_TRANSLATIONUNIT.fields_by_name['qualified_types'].message_type = _QUALIFIEDTYPE
-_TRANSLATIONUNIT.fields_by_name['array_types'].message_type = _ARRAYTYPE
-_TRANSLATIONUNIT.fields_by_name['function_types'].message_type = _FUNCTIONTYPE
-_TRANSLATIONUNIT.fields_by_name['functions'].message_type = _FUNCTIONDECL
-_TRANSLATIONUNIT.fields_by_name['global_vars'].message_type = _GLOBALVARDECL
-_TRANSLATIONUNIT.fields_by_name['elf_functions'].message_type = _ELFFUNCTION
-_TRANSLATIONUNIT.fields_by_name['elf_objects'].message_type = _ELFOBJECT
-DESCRIPTOR.message_types_by_name['BasicNamedAndTypedDecl'] = _BASICNAMEDANDTYPEDDECL
-DESCRIPTOR.message_types_by_name['ArrayType'] = _ARRAYTYPE
-DESCRIPTOR.message_types_by_name['PointerType'] = _POINTERTYPE
-DESCRIPTOR.message_types_by_name['QualifiedType'] = _QUALIFIEDTYPE
-DESCRIPTOR.message_types_by_name['BuiltinType'] = _BUILTINTYPE
-DESCRIPTOR.message_types_by_name['LvalueReferenceType'] = _LVALUEREFERENCETYPE
-DESCRIPTOR.message_types_by_name['RvalueReferenceType'] = _RVALUEREFERENCETYPE
-DESCRIPTOR.message_types_by_name['FunctionType'] = _FUNCTIONTYPE
-DESCRIPTOR.message_types_by_name['FunctionDecl'] = _FUNCTIONDECL
-DESCRIPTOR.message_types_by_name['ParamDecl'] = _PARAMDECL
-DESCRIPTOR.message_types_by_name['RecordFieldDecl'] = _RECORDFIELDDECL
-DESCRIPTOR.message_types_by_name['EnumFieldDecl'] = _ENUMFIELDDECL
-DESCRIPTOR.message_types_by_name['TemplateInfo'] = _TEMPLATEINFO
-DESCRIPTOR.message_types_by_name['TemplateElement'] = _TEMPLATEELEMENT
-DESCRIPTOR.message_types_by_name['CXXBaseSpecifier'] = _CXXBASESPECIFIER
-DESCRIPTOR.message_types_by_name['VTableComponent'] = _VTABLECOMPONENT
-DESCRIPTOR.message_types_by_name['VTableLayout'] = _VTABLELAYOUT
-DESCRIPTOR.message_types_by_name['TagType'] = _TAGTYPE
-DESCRIPTOR.message_types_by_name['RecordType'] = _RECORDTYPE
-DESCRIPTOR.message_types_by_name['EnumType'] = _ENUMTYPE
-DESCRIPTOR.message_types_by_name['GlobalVarDecl'] = _GLOBALVARDECL
-DESCRIPTOR.message_types_by_name['ElfFunction'] = _ELFFUNCTION
-DESCRIPTOR.message_types_by_name['ElfObject'] = _ELFOBJECT
-DESCRIPTOR.message_types_by_name['TranslationUnit'] = _TRANSLATIONUNIT
-DESCRIPTOR.enum_types_by_name['AccessSpecifier'] = _ACCESSSPECIFIER
-DESCRIPTOR.enum_types_by_name['RecordKind'] = _RECORDKIND
-DESCRIPTOR.enum_types_by_name['ElfSymbolBinding'] = _ELFSYMBOLBINDING
-_sym_db.RegisterFileDescriptor(DESCRIPTOR)
-
-BasicNamedAndTypedDecl = _reflection.GeneratedProtocolMessageType('BasicNamedAndTypedDecl', (_message.Message,), dict(
-  DESCRIPTOR = _BASICNAMEDANDTYPEDDECL,
-  __module__ = 'abi_dump_pb2'
-  # @@protoc_insertion_point(class_scope:abi_dump.BasicNamedAndTypedDecl)
-  ))
-_sym_db.RegisterMessage(BasicNamedAndTypedDecl)
-
-ArrayType = _reflection.GeneratedProtocolMessageType('ArrayType', (_message.Message,), dict(
-  DESCRIPTOR = _ARRAYTYPE,
-  __module__ = 'abi_dump_pb2'
-  # @@protoc_insertion_point(class_scope:abi_dump.ArrayType)
-  ))
-_sym_db.RegisterMessage(ArrayType)
-
-PointerType = _reflection.GeneratedProtocolMessageType('PointerType', (_message.Message,), dict(
-  DESCRIPTOR = _POINTERTYPE,
-  __module__ = 'abi_dump_pb2'
-  # @@protoc_insertion_point(class_scope:abi_dump.PointerType)
-  ))
-_sym_db.RegisterMessage(PointerType)
-
-QualifiedType = _reflection.GeneratedProtocolMessageType('QualifiedType', (_message.Message,), dict(
-  DESCRIPTOR = _QUALIFIEDTYPE,
-  __module__ = 'abi_dump_pb2'
-  # @@protoc_insertion_point(class_scope:abi_dump.QualifiedType)
-  ))
-_sym_db.RegisterMessage(QualifiedType)
-
-BuiltinType = _reflection.GeneratedProtocolMessageType('BuiltinType', (_message.Message,), dict(
-  DESCRIPTOR = _BUILTINTYPE,
-  __module__ = 'abi_dump_pb2'
-  # @@protoc_insertion_point(class_scope:abi_dump.BuiltinType)
-  ))
-_sym_db.RegisterMessage(BuiltinType)
-
-LvalueReferenceType = _reflection.GeneratedProtocolMessageType('LvalueReferenceType', (_message.Message,), dict(
-  DESCRIPTOR = _LVALUEREFERENCETYPE,
-  __module__ = 'abi_dump_pb2'
-  # @@protoc_insertion_point(class_scope:abi_dump.LvalueReferenceType)
-  ))
-_sym_db.RegisterMessage(LvalueReferenceType)
-
-RvalueReferenceType = _reflection.GeneratedProtocolMessageType('RvalueReferenceType', (_message.Message,), dict(
-  DESCRIPTOR = _RVALUEREFERENCETYPE,
-  __module__ = 'abi_dump_pb2'
-  # @@protoc_insertion_point(class_scope:abi_dump.RvalueReferenceType)
-  ))
-_sym_db.RegisterMessage(RvalueReferenceType)
-
-FunctionType = _reflection.GeneratedProtocolMessageType('FunctionType', (_message.Message,), dict(
-  DESCRIPTOR = _FUNCTIONTYPE,
-  __module__ = 'abi_dump_pb2'
-  # @@protoc_insertion_point(class_scope:abi_dump.FunctionType)
-  ))
-_sym_db.RegisterMessage(FunctionType)
-
-FunctionDecl = _reflection.GeneratedProtocolMessageType('FunctionDecl', (_message.Message,), dict(
-  DESCRIPTOR = _FUNCTIONDECL,
-  __module__ = 'abi_dump_pb2'
-  # @@protoc_insertion_point(class_scope:abi_dump.FunctionDecl)
-  ))
-_sym_db.RegisterMessage(FunctionDecl)
-
-ParamDecl = _reflection.GeneratedProtocolMessageType('ParamDecl', (_message.Message,), dict(
-  DESCRIPTOR = _PARAMDECL,
-  __module__ = 'abi_dump_pb2'
-  # @@protoc_insertion_point(class_scope:abi_dump.ParamDecl)
-  ))
-_sym_db.RegisterMessage(ParamDecl)
-
-RecordFieldDecl = _reflection.GeneratedProtocolMessageType('RecordFieldDecl', (_message.Message,), dict(
-  DESCRIPTOR = _RECORDFIELDDECL,
-  __module__ = 'abi_dump_pb2'
-  # @@protoc_insertion_point(class_scope:abi_dump.RecordFieldDecl)
-  ))
-_sym_db.RegisterMessage(RecordFieldDecl)
-
-EnumFieldDecl = _reflection.GeneratedProtocolMessageType('EnumFieldDecl', (_message.Message,), dict(
-  DESCRIPTOR = _ENUMFIELDDECL,
-  __module__ = 'abi_dump_pb2'
-  # @@protoc_insertion_point(class_scope:abi_dump.EnumFieldDecl)
-  ))
-_sym_db.RegisterMessage(EnumFieldDecl)
-
-TemplateInfo = _reflection.GeneratedProtocolMessageType('TemplateInfo', (_message.Message,), dict(
-  DESCRIPTOR = _TEMPLATEINFO,
-  __module__ = 'abi_dump_pb2'
-  # @@protoc_insertion_point(class_scope:abi_dump.TemplateInfo)
-  ))
-_sym_db.RegisterMessage(TemplateInfo)
-
-TemplateElement = _reflection.GeneratedProtocolMessageType('TemplateElement', (_message.Message,), dict(
-  DESCRIPTOR = _TEMPLATEELEMENT,
-  __module__ = 'abi_dump_pb2'
-  # @@protoc_insertion_point(class_scope:abi_dump.TemplateElement)
-  ))
-_sym_db.RegisterMessage(TemplateElement)
-
-CXXBaseSpecifier = _reflection.GeneratedProtocolMessageType('CXXBaseSpecifier', (_message.Message,), dict(
-  DESCRIPTOR = _CXXBASESPECIFIER,
-  __module__ = 'abi_dump_pb2'
-  # @@protoc_insertion_point(class_scope:abi_dump.CXXBaseSpecifier)
-  ))
-_sym_db.RegisterMessage(CXXBaseSpecifier)
-
-VTableComponent = _reflection.GeneratedProtocolMessageType('VTableComponent', (_message.Message,), dict(
-  DESCRIPTOR = _VTABLECOMPONENT,
-  __module__ = 'abi_dump_pb2'
-  # @@protoc_insertion_point(class_scope:abi_dump.VTableComponent)
-  ))
-_sym_db.RegisterMessage(VTableComponent)
-
-VTableLayout = _reflection.GeneratedProtocolMessageType('VTableLayout', (_message.Message,), dict(
-  DESCRIPTOR = _VTABLELAYOUT,
-  __module__ = 'abi_dump_pb2'
-  # @@protoc_insertion_point(class_scope:abi_dump.VTableLayout)
-  ))
-_sym_db.RegisterMessage(VTableLayout)
-
-TagType = _reflection.GeneratedProtocolMessageType('TagType', (_message.Message,), dict(
-  DESCRIPTOR = _TAGTYPE,
-  __module__ = 'abi_dump_pb2'
-  # @@protoc_insertion_point(class_scope:abi_dump.TagType)
-  ))
-_sym_db.RegisterMessage(TagType)
-
-RecordType = _reflection.GeneratedProtocolMessageType('RecordType', (_message.Message,), dict(
-  DESCRIPTOR = _RECORDTYPE,
-  __module__ = 'abi_dump_pb2'
-  # @@protoc_insertion_point(class_scope:abi_dump.RecordType)
-  ))
-_sym_db.RegisterMessage(RecordType)
-
-EnumType = _reflection.GeneratedProtocolMessageType('EnumType', (_message.Message,), dict(
-  DESCRIPTOR = _ENUMTYPE,
-  __module__ = 'abi_dump_pb2'
-  # @@protoc_insertion_point(class_scope:abi_dump.EnumType)
-  ))
-_sym_db.RegisterMessage(EnumType)
-
-GlobalVarDecl = _reflection.GeneratedProtocolMessageType('GlobalVarDecl', (_message.Message,), dict(
-  DESCRIPTOR = _GLOBALVARDECL,
-  __module__ = 'abi_dump_pb2'
-  # @@protoc_insertion_point(class_scope:abi_dump.GlobalVarDecl)
-  ))
-_sym_db.RegisterMessage(GlobalVarDecl)
-
-ElfFunction = _reflection.GeneratedProtocolMessageType('ElfFunction', (_message.Message,), dict(
-  DESCRIPTOR = _ELFFUNCTION,
-  __module__ = 'abi_dump_pb2'
-  # @@protoc_insertion_point(class_scope:abi_dump.ElfFunction)
-  ))
-_sym_db.RegisterMessage(ElfFunction)
-
-ElfObject = _reflection.GeneratedProtocolMessageType('ElfObject', (_message.Message,), dict(
-  DESCRIPTOR = _ELFOBJECT,
-  __module__ = 'abi_dump_pb2'
-  # @@protoc_insertion_point(class_scope:abi_dump.ElfObject)
-  ))
-_sym_db.RegisterMessage(ElfObject)
-
-TranslationUnit = _reflection.GeneratedProtocolMessageType('TranslationUnit', (_message.Message,), dict(
-  DESCRIPTOR = _TRANSLATIONUNIT,
-  __module__ = 'abi_dump_pb2'
-  # @@protoc_insertion_point(class_scope:abi_dump.TranslationUnit)
-  ))
-_sym_db.RegisterMessage(TranslationUnit)
-
-
-# @@protoc_insertion_point(module_scope)