@Override
	public void decode(Decoder decoder) throws DecoderException {
		int start = decoder.openElement(ELEM_FUNCTION);
		String name = decoder.readString(ATTRIB_NAME);
		if (!func.getName().equals(name)) {
			throw new DecoderException("Function name mismatch: " + func.getName() + " + " + name);
		}
		for (;;) {
			int subel = decoder.peekElement();
			if (subel == 0) {
				break;
			}
			if (subel == ELEM_ADDR.id()) {
				Address addr = AddressXML.decode(decoder);
				if (!entryPoint.equals(addr)) {
					throw new DecoderException("Mismatched address in function tag");
				}
			}
			else if (subel == ELEM_PROTOTYPE.id()) {
				proto.decodePrototype(decoder, this);
			}
			else if (subel == ELEM_LOCALDB.id()) {
				localSymbols.decodeScope(decoder);
			}
			else if (subel == ELEM_AST.id()) {
				super.decode(decoder);
			}
			else if (subel == ELEM_HIGHLIST.id()) {
				decodeHighlist(decoder);
			}
			else if (subel == ELEM_JUMPTABLELIST.id()) {
				decodeJumpTableList(decoder);
			}
			else if (subel == ELEM_OVERRIDE.id()) {
				// Do nothing with override at the moment
				decoder.skipElement();
			}
			else if (subel == ELEM_SCOPE.id()) {
				// This must be a subscope of the local scope
				// Currently this can only hold static variables of the function
				// which ghidra already knows about
				decoder.skipElement();
			}
			else {
				throw new DecoderException("Unknown element in function");
			}
		}
		decoder.closeElement(start);
	}
Check the symbol space for objects that indicate specific overrides to decompiler analysis:
     a) switch flow
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/pcode/HighFunction.java