private void updateClassesWithParentsAndFlags(List<GccTypeinfo> typeinfos)
			throws CancelledException {

		// add properties and parents to each class
		for (GccTypeinfo typeinfo : typeinfos) {

			monitor.checkCancelled();

			// skip the typeinfo symbols from the three special typeinfos
			if (typeinfo.isSpecialTypeinfo()) {
				continue;
			}

			Namespace classNamespace = typeinfo.getNamespace();

			RecoveredClass recoveredClass = getClass(classNamespace);

			if (recoveredClass == null) {
				Msg.error(this,
					"RecoveredClass should already exist for " + classNamespace.getName(true));
				continue;
			}

			// per docs those on this list are public and have no-inherited classes
			if (typeinfo.isClassTypeinfo()) {
				addClassFlagsForNoInheritanceClass(recoveredClass);
				continue;
			}

			// per docs those on this list are
			// classes containing only a single, public, non-virtual base at offset zero
			if (typeinfo.isSiClassTypeinfo()) {

				RecoveredClass parentClass =
					addClassParentAndFlagsForSiClass(recoveredClass, typeinfo);

				// parent isn't a known class - cannot continue processing recoveredClass
				if (parentClass == null) {
					Msg.error(this, "Removing class: " + recoveredClass.getName() +
						" from list to" + " process since parent information is not availalbe.");
					recoveredClasses.remove(recoveredClass);
				}
				continue;
			}

			if (typeinfo.isVmiClassTypeinfo()) {

				List<RecoveredClass> parents =
					addClassParentsAndFlagsForVmiClass(recoveredClass, typeinfo);

				if (parents == null) {
					Msg.debug(this,
						"Removing class: " + recoveredClass.getName() + " from list to" +
							" process since full parent information is not availalbe.");
					recoveredClasses.remove(recoveredClass);
				}

			}
		}

		return;

	}
Method to check for at least one special RTTI vtable

@return true if the program has at least one special vtable, false if none
@throws CancelledException           if cancelled
@throws InvalidInputException        if bad characters creating labels
@throws UnsupportedEncodingException
Ghidra/Features/Decompiler/ghidra_scripts/classrecovery/RTTIGccClassRecoverer.java