Inconsistency in CPU version symbols

Jacob Carlborg doob at me.com
Sun Jan 27 03:37:30 PST 2013


On 2013-01-27 10:42, Johannes Pfau wrote:

> Questions:
> * D_LP64 docs say it means 64bit pointers. GDC currently checks for
>    "INT_SIZE == 32 && LONG_INT_SIZE == 64 && POINTER_SIZE == 64" which
>    matches the C definition of LP64. This would not match ILP64/SILP64
>    for example, so what is D_LP64 supposed to mean?	

Looking at the source code, by default LP64 is set if sizeof(size_t) == 
8. The the -m32/64 flags can override this.

On Windows that name is kind of misleading. On Windows the correct data 
models seems to be LLP64.

http://en.wikipedia.org/wiki/64-bit_computing#64-bit_data_models

-- 
/Jacob Carlborg


More information about the Digitalmars-d mailing list