public void buildTable(Renamer renameRule) {
		if (!isReachable() && (Main.stripping & Main.STRIP_UNREACH) != 0)
			return;

		if (isPreserved()) {
			if (GlobalOptions.verboseLevel > 4)
				GlobalOptions.err.println(toString() + " is preserved");
		} else {
			Identifier rep = getRepresentative();
			if (!rep.wasAliased) {
				rep.wasAliased = true;

				// set alias to empty string, so it won't conflict!
				rep.alias = "";
				Iterator aliases = renameRule.generateNames(this);
				next_alias: for (;;) {
					String newAlias = (String) aliases.next();
					Identifier ptr = rep;
					while (ptr != null) {
						if (ptr.conflicting(newAlias))
							continue next_alias;
						ptr = ptr.right;
					}
					setAlias(newAlias.toString());
					break;
				}
			}
		}
		for (Iterator i = getChilds(); i.hasNext();)
			((Identifier) i.next()).buildTable(renameRule);
	}