// RUN: %clang -std=c17 %s -o %t && %run %t /// Test __isoc23_* for glibc 2.38+. // RUN: %clang -std=c23 %s -o %t && %run %t #include #include #include #include #include #define TESTL(func) \ { \ char *end; \ long l = (long)func("42", &end, 0); \ assert(l == 42); \ assert(*end == '\0'); \ } #define TESTF(func) \ { \ char *end; \ long l = (long)func("42", &end); \ assert(l == 42); \ assert(*end == '\0'); \ } #define WTESTL(func) \ { \ wchar_t *end; \ long l = (long)func(L"42", &end, 0); \ assert(l == 42); \ assert(*end == L'\0'); \ } #define WTESTF(func) \ { \ wchar_t *end; \ long l = (long)func(L"42", &end); \ assert(l == 42); \ assert(*end == '\0'); \ } int main() { TESTL(strtol); TESTL(strtoll); TESTL(strtoimax); TESTL(strtoul); TESTL(strtoull); TESTL(strtoumax); TESTF(strtof); TESTF(strtod); TESTF(strtold); WTESTL(wcstol); WTESTL(wcstoll); WTESTL(wcstoul); WTESTL(wcstoull); WTESTF(wcstof); WTESTF(wcstod); WTESTF(wcstold); }