Fix AIX compilation issue with NAN and INFINITY #3043
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
We have recently ported R to AIX .
https://www.ibm.com/developerworks/aix/library/aix-toolbox/alpha.html#R
When trying to install data.table, there is a compilation issue with NAN and INFINITY.
fread.c:79:28: error: initializer element is not constant
static const double NAND = (double)NAN;
^
fread.c:80:28: error: initializer element is not constant
static const double INFD = (double)INFINITY;
^
With gcc -E option , we see this
static const unsigned int _SINFINITY = 0x7f800000;
static const unsigned int _SQNAN = 0x7fc00000;
static const double NAND = (double)
79 "fread.c" 3 4
(*((float )(&_SQNAN)))
79 "fread.c"
;
static const double INFD = (double)
80 "fread.c" 3 4
(((float *)(&_SINFINITY)))
80 "fread.c"
So they don't seem to qualify as constant literals hence the compilation issue.
I have tested the fix in Linux as well.