Far Pointer Comparisons Do Not Account for Aliases

ID: Q34410

6.00 6.00a 6.00ax 7.00 | 6.00 6.00a | 1.00 1.50

MS-DOS                 | OS/2       | WINDOWS
kbtool

The information in this article applies to:

When code generated by one of the compilers listed above compares two far pointers for equality, it does not account for the possibility that the pointers have different segment and offset values yet point to the same location in memory.

This is the correct behavior for the compiler; only huge pointers are normalized. The compiler assumes that near and far pointers that point to the same segment have the same segment value; any differences between the pointers must be in the offset value.

Normalizing pointers would involve a very large performance penalty for applications running in the MS-DOS operating system and is not possible in the protected-mode addressing scheme of the OS/2 operating system.

Additional reference words: kbinf 1.00 1.50 6.00 6.00a 6.00ax 7.00 8.00 8.00c KBCategory: kbtool KBSubcategory: CLIss Keywords : kb16bitonly

Last Reviewed: July 18, 1997