History log of /haiku/headers/posix/stdint.h
Revision Date Author Comments
# 32a71a00 07-Nov-2022 PulkoMandy <pulkomandy@pulkomandy.tk>

stdint.h: fix definition of UINT8_MAX, UINT16_MAX, UINT8_C and UINT16_C

C99 chapter 7.18.2, Limits of specified-width integer types:

"This expression shall have the same type as would an expression that is
an object of the corresponding type according to the integer promotions."

C99 chapter 6.3.1.1:

"If an int can represent all values of the original type, the value is
converted to an int; otherwise, it is converted to an unsigned int.
These are called the integer promotions."

Therefore, UINT8_MAX, UINT16_MAX, UINT8_C and UINT16_C should be signed.

This prevents building WebKit with -Werror.

Change-Id: Ib2a2c15acc2c761cccf8caa016c7ff163e3fdc0d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5806
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 36576214 04-Jun-2017 Adrien Destugues <pulkomandy@pulkomandy.tk>

Remove __STDC_FORMAT/CONSTANT_MACROS

These were added in C99 to avoid interferring with C++, but then C++11
caught up with inttypes/h/stdint.h and removed the need for the macros.
They have disappeared from C11 as a result, and also from current glibc
implementation (https://sourceware.org/bugzilla/show_bug.cgi?id=15366)

So it seems reasonably safe to do the same, and it will save people
having to enable access to these macros explicitly when writing C++.


# d1dc9cf6 19-Dec-2014 Timothy Gu <timothygu99@gmail.com>

stdint.h: use correct type for INT64_MAX (#11647)

int64_t is signed. Although it does not make a difference by itself, because
INT64_MAX is still a valid number for uint64_t (UL), the later INT64_MIN
declaration depends on INT64_MAX, and therefore got implicitly casted to
unsigned type.

This fixes the following program on a x86_64 system:

#include <stdint.h>

int main() {
int64_t test = 5;
if (test < INT64_MIN)
return 1;
return 0;
}

This is a regression since commit 1d13a609 ("stdint.h: define [U]INT64[MAX|MIN]
with [U]L on x86_64").

Signed-off-by: Jerome Duval <jerome.duval@gmail.com>


# 1d13a609 14-Dec-2014 Jérôme Duval <jerome.duval@gmail.com>

stdint.h: define [U]INT64[MAX|MIN] with [U]L on x86_64

instead of [U]LL


# 8d250951 29-Apr-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

Fix ptrdiff_t limits introduced in r24654 (!)

* The ptrdiff_t limits are PTRDIFF_MIN and PTRDIFF_MAX, not PTDIFF_*.
* I could not find any non-Haiku reference to PTDIFF_*, so I guess
that's a mistake.


# 122d1cdd 19-Feb-2014 Alexander von Gluck IV <kallisti5@unixzen.com>

Haiku: Fix posix INT64_C macros on x86_64

* Was causing LLVM to fail to build on x86_64
* Make XINT64 adjust based on architecture like
config/types.h to ensure these macros match
uint64 and int64 at all times.
* Resolves #10566


# 173f54f1 19-Jul-2012 Matt Madia <mattmadia@gmail.com>

Updated copyright in headers. No functional change.


# 0fae8733 03-Nov-2010 Scott McCreary <scottmc2@gmail.com>

Updated posix headers to remove commas from copyright line, to match the preferred coding guidelines.
Cleaned up some header style violations, making sure there are two blank lines after the header guards.
This fixes the posix header part of #2191.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39288 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2222d055 24-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Introduced new header directory "config", which ATM contains HaikuConfig.h
and types.h. The idea is to provide a basic architecture/compiler
abstraction by defining types and macros that allow the posix/ and os/
headers to be mostly architecture/compiler agnostic.
* Adjusted the posix/ and os/ headers accordingly.
* <SupportDefs.h>: Introduced B_PRI* and B_SCN* macros similar to the PRI*
and SCN* macros defined in <inttypes.h>, just for the BeOS/Haiku [u]int*
types and some POSIX types (e.g. off_t, dev_t, ino_t) that don't have POSIX
macros. Also the B_PRI* and B_SCN* macros are available unconditionally,
unlike the <inttypes.h> macros, which require __STDC_FORMAT_MACROS to be
defined in C++ mode.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34214 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b9320128 10-May-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch by Andreas Faerber:
Replaced single-line comments by multi-line comments for ANSI C
compliance.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25433 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 22611e78 29-Mar-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch by Curtis Wanner:
* Added some limit macros.
* Removed the "L" suffix from [U]INT32_MAX.
* Reordered some definitions.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24654 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b3918e2f 23-Feb-2008 Jérôme Duval <korli@users.berlios.de>

added SIZE_MAX to stdint.h


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24085 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 15ab0bcf 21-Oct-2007 Axel Dörfler <axeld@pinc-software.de>

* int32_t, uint32_t are now of type "int", and no longer of type "long".
This should help to reduce the number of warnings imported code will throw
during compilation (helps a lot with tcpdump, for example).
* Since long is 64 bit on 64 bit platforms, we might want to think about doing
that change for the Haiku types int32 and uint32 as well.
* Fixed several occurences of hidden type problems.
* Fixed build of the stack and TCP under BeOS.
* Fixed incorrect typedef in socket_interface.h.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22643 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8cea73aa 17-May-2006 Jérôme Duval <korli@users.berlios.de>

avoids a gcc warning on definition of INT32_MIN


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17494 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c6544683 11-Sep-2004 Axel Dörfler <axeld@pinc-software.de>

Cleaned up the stdint.h header.
Separated macros from the typedefs, removed macros for unsigned minima as
these are not part of the standard.
Added intptr_t/uintptr_t types. Added some comments what those types stand for.
Added a note that this header is mostly compiler/arch specific and should
be handled (adapted) like this.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8919 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3a79ea54 02-Aug-2003 shatty <shatty@nowhere.fake>

more posix compatibility in stdint.h prevents build problems in jpeg2000translator


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4201 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 99a35090 01-Aug-2003 shatty <shatty@nowhere.fake>

added least and fast types


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4193 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f8fdd89f 19-Apr-2003 Axel Dörfler <axeld@pinc-software.de>

Some header work to make it more posix compliant.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3080 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d1dc9cf655f283cf9a8b12f11b6cca7eb5d7a55e 19-Dec-2014 Timothy Gu <timothygu99@gmail.com>

stdint.h: use correct type for INT64_MAX (#11647)

int64_t is signed. Although it does not make a difference by itself, because
INT64_MAX is still a valid number for uint64_t (UL), the later INT64_MIN
declaration depends on INT64_MAX, and therefore got implicitly casted to
unsigned type.

This fixes the following program on a x86_64 system:

#include <stdint.h>

int main() {
int64_t test = 5;
if (test < INT64_MIN)
return 1;
return 0;
}

This is a regression since commit 1d13a609 ("stdint.h: define [U]INT64[MAX|MIN]
with [U]L on x86_64").

Signed-off-by: Jerome Duval <jerome.duval@gmail.com>


# 1d13a6090186938a21aeb09c26c383f370c749eb 14-Dec-2014 Jérôme Duval <jerome.duval@gmail.com>

stdint.h: define [U]INT64[MAX|MIN] with [U]L on x86_64

instead of [U]LL


# 8d250951a316e4ac42b5f5066103c1b599a1529e 29-Apr-2014 Adrien Destugues <pulkomandy@pulkomandy.tk>

Fix ptrdiff_t limits introduced in r24654 (!)

* The ptrdiff_t limits are PTRDIFF_MIN and PTRDIFF_MAX, not PTDIFF_*.
* I could not find any non-Haiku reference to PTDIFF_*, so I guess
that's a mistake.


# 122d1cddc94ee82bdbffed8b9d2d3780ed7a0b99 19-Feb-2014 Alexander von Gluck IV <kallisti5@unixzen.com>

Haiku: Fix posix INT64_C macros on x86_64

* Was causing LLVM to fail to build on x86_64
* Make XINT64 adjust based on architecture like
config/types.h to ensure these macros match
uint64 and int64 at all times.
* Resolves #10566


# 173f54f1473bd6a6511c5fc6dc899c91fb8dd667 19-Jul-2012 Matt Madia <mattmadia@gmail.com>

Updated copyright in headers. No functional change.


# 0fae873352b02792db93f721c1a2ff6b240c8ecc 03-Nov-2010 Scott McCreary <scottmc2@gmail.com>

Updated posix headers to remove commas from copyright line, to match the preferred coding guidelines.
Cleaned up some header style violations, making sure there are two blank lines after the header guards.
This fixes the posix header part of #2191.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39288 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2222d0559df303a9846a2fad53741f8b20b14d7c 24-Nov-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* Introduced new header directory "config", which ATM contains HaikuConfig.h
and types.h. The idea is to provide a basic architecture/compiler
abstraction by defining types and macros that allow the posix/ and os/
headers to be mostly architecture/compiler agnostic.
* Adjusted the posix/ and os/ headers accordingly.
* <SupportDefs.h>: Introduced B_PRI* and B_SCN* macros similar to the PRI*
and SCN* macros defined in <inttypes.h>, just for the BeOS/Haiku [u]int*
types and some POSIX types (e.g. off_t, dev_t, ino_t) that don't have POSIX
macros. Also the B_PRI* and B_SCN* macros are available unconditionally,
unlike the <inttypes.h> macros, which require __STDC_FORMAT_MACROS to be
defined in C++ mode.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34214 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b93201281504cee31f4186f7c6548815940c576e 10-May-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch by Andreas Faerber:
Replaced single-line comments by multi-line comments for ANSI C
compliance.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25433 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 22611e781a3cb306141171f93d07031f92474fae 29-Mar-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch by Curtis Wanner:
* Added some limit macros.
* Removed the "L" suffix from [U]INT32_MAX.
* Reordered some definitions.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24654 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b3918e2f66bd548ac543a574b1669b5fae5eada5 23-Feb-2008 Jérôme Duval <korli@users.berlios.de>

added SIZE_MAX to stdint.h


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24085 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 15ab0bcf01ef7bd7323d9b2da55906bafbb40fd3 21-Oct-2007 Axel Dörfler <axeld@pinc-software.de>

* int32_t, uint32_t are now of type "int", and no longer of type "long".
This should help to reduce the number of warnings imported code will throw
during compilation (helps a lot with tcpdump, for example).
* Since long is 64 bit on 64 bit platforms, we might want to think about doing
that change for the Haiku types int32 and uint32 as well.
* Fixed several occurences of hidden type problems.
* Fixed build of the stack and TCP under BeOS.
* Fixed incorrect typedef in socket_interface.h.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22643 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8cea73aade337ad71f05c141aa2f6983c0650465 17-May-2006 Jérôme Duval <korli@users.berlios.de>

avoids a gcc warning on definition of INT32_MIN


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17494 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c654468395c40c4180661f71c6e026062df54662 11-Sep-2004 Axel Dörfler <axeld@pinc-software.de>

Cleaned up the stdint.h header.
Separated macros from the typedefs, removed macros for unsigned minima as
these are not part of the standard.
Added intptr_t/uintptr_t types. Added some comments what those types stand for.
Added a note that this header is mostly compiler/arch specific and should
be handled (adapted) like this.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8919 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3a79ea54e8fa7b6b9d87e4a4c12d8d25d6859ca6 02-Aug-2003 shatty <shatty@nowhere.fake>

more posix compatibility in stdint.h prevents build problems in jpeg2000translator


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4201 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 99a35090bd78343522fb580b73da7d85a935d69e 01-Aug-2003 shatty <shatty@nowhere.fake>

added least and fast types


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4193 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f8fdd89ffbfcbc2df77bc87e170174ecea20a8ce 19-Apr-2003 Axel Dörfler <axeld@pinc-software.de>

Some header work to make it more posix compliant.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3080 a95241bf-73f2-0310-859d-f6bbb57e9c96