An intermediate language (IL) program is verified by processing the IL program in a single pass. Processed IL instructions may be provided to a just-in-time (JIT) compiler so that the IL program can be converted into a native language program of a targeted device. A verification apparatus may comprise a memory, a sequencing module, a memory updating module, and a rule logic module. The memory comprises an IL offset stack and a data structure that stores information of an IL stack corresponding to a processed IL instruction. The verification apparatus processes the IL program in a straight-line manner except when encountering IL instructions that correspond to designated op code types. In such cases, the verification apparatus may alter a sequencing of processing the IL program by utilizing the IL offset stack.