kwsysPlatformTestsC.c 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. /*
  2. Macros to define main() in a cross-platform way.
  3. Usage:
  4. int KWSYS_PLATFORM_TEST_C_MAIN()
  5. {
  6. return 0;
  7. }
  8. int KWSYS_PLATFORM_TEST_C_MAIN_ARGS(argc, argv)
  9. {
  10. (void)argc; (void)argv;
  11. return 0;
  12. }
  13. */
  14. #if defined(__CLASSIC_C__)
  15. # define KWSYS_PLATFORM_TEST_C_MAIN() \
  16. main()
  17. # define KWSYS_PLATFORM_TEST_C_MAIN_ARGS(argc, argv) \
  18. main(argc,argv) int argc; char* argv[];
  19. #else
  20. # define KWSYS_PLATFORM_TEST_C_MAIN() \
  21. main(void)
  22. # define KWSYS_PLATFORM_TEST_C_MAIN_ARGS(argc, argv) \
  23. main(int argc, char* argv[])
  24. #endif
  25. /*--------------------------------------------------------------------------*/
  26. #ifdef TEST_KWSYS_C_HAS_PTRDIFF_T
  27. #include <stddef.h>
  28. int f(ptrdiff_t n) { return n > 0; }
  29. int KWSYS_PLATFORM_TEST_C_MAIN()
  30. {
  31. char* p = 0;
  32. ptrdiff_t d = p - p;
  33. (void)d;
  34. return f(p - p);
  35. }
  36. #endif
  37. /*--------------------------------------------------------------------------*/
  38. #ifdef TEST_KWSYS_C_HAS_SSIZE_T
  39. #include <unistd.h>
  40. int f(ssize_t n) { return (int)n; }
  41. int KWSYS_PLATFORM_TEST_C_MAIN()
  42. {
  43. ssize_t n = 0;
  44. return f(n);
  45. }
  46. #endif