private DataType getBuiltInType(DataTypeManager dataTypeManager) {
		DataType dt = null;
		String name = getDemangledName();
		if (BOOL.equals(name)) {
			dt = BooleanDataType.dataType;
		}
		else if (VOID.equals(name)) {
			dt = VoidDataType.dataType;
		}
		else if (CHAR.equals(name)) {
			if (isUnsigned()) {
				dt = UnsignedCharDataType.dataType;
			}
			else {
				dt = CharDataType.dataType;
			}
		}
		else if (WCHAR_T.equals(name)) {
			dt = WideCharDataType.dataType;
		}
		else if (WCHAR16.equals(name)) {
			dt = WideChar16DataType.dataType;
		}
		else if (WCHAR32.equals(name)) {
			dt = WideChar32DataType.dataType;
		}
		else if (CHAR8_T.equals(name)) {
			dt = UnsignedCharDataType.dataType;
		}
		else if (SHORT.equals(name)) {
			if (isUnsigned()) {
				dt = UnsignedShortDataType.dataType;
			}
			else {
				dt = ShortDataType.dataType;
			}
		}
		else if (INT.equals(name)) {
			if (isUnsigned()) {
				dt = UnsignedIntegerDataType.dataType;
			}
			else {
				dt = IntegerDataType.dataType;
			}
		}
		else if (LONG.equals(name)) {
			if (isUnsigned()) {
				dt = UnsignedLongDataType.dataType;
			}
			else {
				dt = LongDataType.dataType;
			}
		}
		else if (LONG_LONG.equals(name)) {
			if (isUnsigned()) {
				dt = UnsignedLongLongDataType.dataType;
			}
			else {
				dt = LongLongDataType.dataType;
			}
		}
		else if (UNSIGNED.equals(name)) {
			dt = UnsignedIntegerDataType.dataType;
		}
		else if (FLOAT.equals(name)) {
			dt = FloatDataType.dataType;
		}
		else if (FLOAT2.equals(name)) {
			dt = Float2DataType.dataType;
		}
		else if (FLOAT128.equals(name)) {
			dt = new TypedefDataType(FLOAT128, Float16DataType.dataType);
		}
		else if (DOUBLE.equals(name)) {
			dt = DoubleDataType.dataType;
		}
		else if (LONG_DOUBLE.equals(name)) {
			dt = LongDoubleDataType.dataType;
		}
		else if (INT8.equals(name)) {
			if (isUnsigned()) {
				dt = new TypedefDataType("__uint8",
					AbstractIntegerDataType.getUnsignedDataType(1, dataTypeManager));
			}
			else {
				dt = new TypedefDataType(INT8,
					AbstractIntegerDataType.getSignedDataType(1, dataTypeManager));
			}
		}
		else if (INT16.equals(name)) {
			if (isUnsigned()) {
				dt = new TypedefDataType("__uint16",
					AbstractIntegerDataType.getUnsignedDataType(2, dataTypeManager));
			}
			else {
				dt = new TypedefDataType(INT16,
					AbstractIntegerDataType.getSignedDataType(2, dataTypeManager));
			}
		}
		else if (INT32.equals(name)) {
			if (isUnsigned()) {
				dt = new TypedefDataType("__uint32",
					AbstractIntegerDataType.getUnsignedDataType(4, dataTypeManager));
			}
			else {
				dt = new TypedefDataType(INT32,
					AbstractIntegerDataType.getSignedDataType(4, dataTypeManager));
			}
		}
		else if (INT64.equals(name)) {
			if (isUnsigned()) {
				dt = new TypedefDataType("__uint64",
					AbstractIntegerDataType.getUnsignedDataType(8, dataTypeManager));
			}
			else {
				dt = new TypedefDataType(INT64,
					AbstractIntegerDataType.getSignedDataType(8, dataTypeManager));
			}
		}
		else if (INT128.equals(name)) {
			if (isUnsigned()) {
				dt = new TypedefDataType("__uint128",
					AbstractIntegerDataType.getUnsignedDataType(16, dataTypeManager));
			}
			else {
				dt = new TypedefDataType(INT128,
					AbstractIntegerDataType.getSignedDataType(16, dataTypeManager));
			}
		}
		else if (UNDEFINED.equals(name)) {
			dt = DataType.DEFAULT;
		}
		return dt;
	}
Converts this demangled datatype into the corresponding Ghidra datatype
@param dataTypeManager the manager to search and whose data organization should be used
@return the Ghidra datatype corresponding to the demangled datatype
Ghidra/Features/Base/src/main/java/ghidra/app/util/demangler/DemangledDataType.java