cpredef / cpredef/predef

data models and 64 bit on IBM XL C

Open
#50 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
No language data
Stars
674
Forks
52
PR merge metrics
No merged PRs in 30d

Description

IBM XL C defines __64BIT__ if the compilation target is 64 bit: https://www.ibm.com/docs/en/xl-c-aix/13.1.2?topic=descriptions-q32-q64

And I'm not sure if it belongs into DataModels.md too but compilers targeting Windows will always define _WIN64 if compiling for any kind of 64 bit architecture.

Of interest for DataModels.md might also be the __SIZEOF_* macros defined by GCC:

__SIZEOF_INT__
__SIZEOF_LONG__
__SIZEOF_LONG_LONG__
__SIZEOF_SHORT__
__SIZEOF_POINTER__
__SIZEOF_FLOAT__
__SIZEOF_DOUBLE__
__SIZEOF_LONG_DOUBLE__
__SIZEOF_SIZE_T__
__SIZEOF_WCHAR_T__
__SIZEOF_WINT_T__
__SIZEOF_PTRDIFF_T__

Here are the size values for me on x86 32 and 64 bit Linux:

$ gcc -m64 main.c && ./a.out 
__SIZEOF_INT__         == 4
__SIZEOF_LONG__        == 8
__SIZEOF_LONG_LONG__   == 8
__SIZEOF_SHORT__       == 2
__SIZEOF_POINTER__     == 8
__SIZEOF_FLOAT__       == 4
__SIZEOF_DOUBLE__      == 8
__SIZEOF_LONG_DOUBLE__ == 16
__SIZEOF_SIZE_T__      == 8
__SIZEOF_WCHAR_T__     == 4
__SIZEOF_WINT_T__      == 4
__SIZEOF_PTRDIFF_T__   == 8

$ gcc -m32 main.c && ./a.out 
__SIZEOF_INT__         == 4
__SIZEOF_LONG__        == 4
__SIZEOF_LONG_LONG__   == 8
__SIZEOF_SHORT__       == 2
__SIZEOF_POINTER__     == 4
__SIZEOF_FLOAT__       == 4
__SIZEOF_DOUBLE__      == 8
__SIZEOF_LONG_DOUBLE__ == 12
__SIZEOF_SIZE_T__      == 4
__SIZEOF_WCHAR_T__     == 4
__SIZEOF_WINT_T__      == 4
__SIZEOF_PTRDIFF_T__   == 4

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with DataModels.md and compare its existing coverage with the IBM XL C 64BIT, Windows _WIN64, and GCC _SIZEOF* macros mentioned in the issue. Verify the documented values and platform conditions using the linked IBM documentation and reproducible GCC 32-bit and 64-bit builds. Done means the relevant macros and data-model details are accurately documented with clear scope.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
documentation
Issue type
Documentation
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.