# Copyright (C) 2002-2004, 2006-2018 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. ldexpl_test = ''' #include extern #ifdef __cplusplus "C" #endif #if !defined (_MSC_VER) || defined (TEST_LDEXPL_DECL) long double ldexpl (long double, int); #endif int main() { int result = 0; { volatile long double x = 1.0; volatile long double y = ldexpl (x, -1); if (y != 0.5L) result |= 1; } { volatile long double x = 1.73205L; volatile long double y = ldexpl (x, 0); if (y != x) result |= 2; } return result; } ''' if not meson.is_cross_build() or meson.has_exe_wrapper() run_result = cc.run(ldexpl_test, name : 'ldexpl works', dependencies : [libm]) gl_cv_func_ldexpl_works = run_result.compiled() and run_result.returncode() == 0 else if host_system.startswith ('aix') gl_cv_func_ldexpl_works = false elif host_system == 'windows' gl_cv_func_ldexpl_works = true else gl_cv_func_ldexpl_works = true endif endif ldexpl_test_decl = ''' #define TEST_LDEXPL_DECL 1 ''' + ldexpl_test build_result = cc.compiles(ldexpl_test_decl, name : 'ldexpl prototype can be re-listed') gl_cv_func_ldexpl_decl = build_result