public Symbol applySymbol(Program program, Address address, SymbolPath symbolPath,
			boolean makePrimary) {
		Symbol symbol = null;
		try {
			Namespace namespace = program.getGlobalNamespace();
			String name = symbolPath.getName();
			String namespacePath = symbolPath.getParentPath();
			if (namespacePath != null) {
				namespace = NamespaceUtils.createNamespaceHierarchy(namespacePath, namespace,
					program, address, SourceType.IMPORTED);
			}
			symbol =
				program.getSymbolTable().createLabel(address, name, namespace, SourceType.IMPORTED);
			if (makePrimary && !symbol.isPrimary()) {
				SetLabelPrimaryCmd cmd =
					new SetLabelPrimaryCmd(address, symbol.getName(),
						symbol.getParentNamespace());
				cmd.applyTo(program);
			}
		}
		catch (InvalidInputException e) {
			Msg.warn(MockPdb.class,
				"Unable to create symbol at " + address + " due to exception: " +
					e.toString() + "; symbolPathName: " + symbolPath);
		}
		return symbol;
	}
Method to resolve all CppTypes types
@param dtm the data type manager
Ghidra/Features/PDB/src/test/java/ghidra/app/util/pdb/MockPdb.java