public void attachVarnodes(VectorSTL<SleighSymbol> symlist, VectorSTL<Location> locations,
			VectorSTL<SleighSymbol> varlist) {
		entry("attachVarnodes", symlist, locations, varlist);
		SleighSymbol dupsym = dedupSymbolList(symlist);
		if (dupsym != null) {
			reportWarning(dupsym.location,
				"'attach variables' list contains duplicate entries: " + dupsym.getName());
		}
		for (int i = 0; i < symlist.size(); ++i) {
			Location location = locations.get(i);
			ValueSymbol sym = (ValueSymbol) symlist.get(i);
			if (sym == null) {
				continue;
			}
			if (firstContextField != null && sym.getId() == firstContextField) {
				reportError(location, "'" + sym.getName() + "'" +
					" cannot be used to attach variables because it occurs at the lowest bit position in context at " +
					sym.getLocation());
				continue;
			}
			PatternValue patval = sym.getPatternValue();
			if (patval.maxValue() + 1 != varlist.size()) {
				reportError(location,
					"Attach varnode '" + sym + "' is wrong size for list: " + varlist);
			}
			int sz = 0;
			for (int j = 0; j < varlist.size(); ++j) {
				VarnodeSymbol vsym = (VarnodeSymbol) varlist.get(j);
				if (vsym != null) {
					if (sz == 0) {
						sz = vsym.getFixedVarnode().size;
					}
					else if (sz != vsym.getFixedVarnode().size) {
						reportError(location,
							"Attach statement contains varnodes of different sizes");
						break;
					}
				}
			}
			symtab.replaceSymbol(sym,
				new VarnodeListSymbol(location, sym.getName(), patval, varlist));
		}
	}
Sets whether or not to print out warning info about
{@link Constructor}s which reference varnodes in the
unique space larger than {@link SleighBase#MAX_UNIQUE_SIZE}.
@param val whether to print info about contructors using large varnodes
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/pcodeCPort/slgh_compile/SleighCompile.java