Skip to content

Commit

Permalink
Avoid naming nonstandard <ymath.h> to retrieve a NaN constant, as tha…
Browse files Browse the repository at this point in the history
…t header is no longer #includable from C. (microsoft#7979)
  • Loading branch information
BillyONeal authored and cbezault committed Aug 30, 2019
1 parent dc61560 commit fdbd3b5
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 0 deletions.
1 change: 1 addition & 0 deletions ports/plplot/portfile.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ vcpkg_extract_source_archive_ex(
"${CMAKE_CURRENT_LIST_DIR}/0001-findwxwidgets-fixes.patch"
"${CMAKE_CURRENT_LIST_DIR}/0002-wxwidgets-dev-fixes.patch"
"${CMAKE_CURRENT_LIST_DIR}/install-interface-include-directories.patch"
"${CMAKE_CURRENT_LIST_DIR}/use-math-h-nan.patch"
)

set(BUILD_with_wxwidgets OFF)
Expand Down
28 changes: 28 additions & 0 deletions ports/plplot/use-math-h-nan.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
diff --git "a/lib/csa/nan.h" "b/lib/csa/nan.h"
index 29fd3d2f..7f16e8c8 100644
--- "a/lib/csa/nan.h"
+++ "b/lib/csa/nan.h"
@@ -19,6 +19,16 @@
#if !defined ( _NAN_H )
#define _NAN_H

+// Try to use the implementation-provided NAN constant:
+
+#include <math.h>
+
+#if defined(NAN)
+
+#define NaN ((double)NAN)
+
+#else // ^^^ implementation provides NAN // implementation does not provide NAN vvv
+
#if ( defined ( __GNUC__ ) && !defined ( __ICC ) ) || defined ( __BORLANDC__ )

static const double NaN = 0.0 / 0.0;
@@ -63,4 +73,6 @@ static const long long lNaN = ( (unsigned long long) 1 << 63 ) - 1;

#endif

+#endif // defined(NAN)
+
#endif

0 comments on commit fdbd3b5

Please sign in to comment.