public static void applyComponentOffsetPointer(Program program, Address addr,
			long componentOffset) {

		MemoryBlock block = program.getMemory().getBlock(addr);
		if (block == null || block.isExecute()) {
			return; // avoid pointer creation where instruction may reside
		}

		PointerTypedef dt =
			new PointerTypedef(null, null, -1, program.getDataTypeManager(), componentOffset);
		try {
			DataUtilities.createData(program, addr, dt, -1,
				ClearDataMode.CLEAR_ALL_UNDEFINED_CONFLICT_DATA);
		}
		catch (CodeUnitInsertionException e) {
			Msg.error(ElfRelocationHandler.class,
				"Failed to apply component-offset pointer at " + addr);
		}
	}
Apply a pointer-typedef with a specified component-offset if specified address
is not contained within an execute block.

@param program program
@param addr address where data should be applied
@param componentOffset component offset
Ghidra/Features/Base/src/main/java/ghidra/app/util/bin/format/elf/relocation/ElfRelocationHandler.java