private boolean finalizeSections(Constructor big, SectionVector vec) {
		entry("finalizeSections", big, vec);
		// Do all final checks, expansions, and linking for p-code sections
		VectorSTL<String> myErrors = new VectorSTL<>();

		RtlPair cur = vec.getMainPair();
		int i = -1;
		String sectionstring = "   Main section: ";
		int max = vec.getMaxId();
		for (;;) {

			String scopeString = cur.section.loc + ": " + sectionstring;

			String errstring;

			errstring = checkSymbols(cur.scope); // Check labels in the section's scope
			if (errstring.length() != 0) {
				myErrors.push_back(scopeString + errstring);
			}
			else {
				if (!expandMacros(cur.section)) {
					myErrors.push_back(scopeString + "Could not expand macros");
				}
				VectorSTL<Integer> check = new VectorSTL<>();
				big.markSubtableOperands(check);
				Pair<Integer, Location> res = cur.section.fillinBuild(check, getConstantSpace());
				if (res.first == 1) {
					myErrors.push_back(scopeString + "Duplicate BUILD statements at " + res.second);
				}
				if (res.first == 2) {
					myErrors.push_back(
						scopeString + "Unnecessary BUILD statements at " + res.second);
				}

				if (!pcode.propagateSize(cur.section)) {
					myErrors.push_back(scopeString + "Could not resolve at least 1 variable size");
				}
			}
			if (i < 0) {		// These potential errors only apply to main section
				if (cur.section.getResult() != null) {	// If there is an export statement
					if (big.getParent() == root) {
						myErrors.push_back("   Cannot have export statement in root constructor");
					}
					else if (!forceExportSize(cur.section)) {
						myErrors.push_back("   Size of export is unknown");
					}
				}
			}
			if (cur.section.delaySlot() != 0) { // Delay slot is present in this constructor
				if (root != big.getParent()) { // it is not in a root constructor
					reportWarning(big.location, "Delay slot used in " + big);
				}
				if (cur.section.delaySlot() > maxdelayslotbytes) {
					maxdelayslotbytes = cur.section.delaySlot();
				}
			}
			do {
				i += 1;
				if (i >= max) {
					break;
				}
				cur = vec.getNamedPair(i);
			}
			while (cur.section == null);

			if (i >= max) {
				break;
			}
			SectionSymbol sym = sections.get(i);
			sectionstring = "   " + sym.getName() + " section: ";
		}
		if (!myErrors.empty()) {
			reportError(big.location, "in " + big);
			for (int j = 0; j < myErrors.size(); ++j) {
				reportError(big.location, myErrors.get(j));
			}
			return false;
		}
		return true;
	}
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