CheckTypeSize.c.in 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. @headers@
  2. #undef KEY
  3. #if defined(__i386)
  4. # define KEY '_','_','i','3','8','6'
  5. #elif defined(__x86_64)
  6. # define KEY '_','_','x','8','6','_','6','4'
  7. #elif defined(__PPC64__)
  8. # define KEY '_','_','P','P','C','6','4','_','_'
  9. #elif defined(__ppc64__)
  10. # define KEY '_','_','p','p','c','6','4','_','_'
  11. #elif defined(__PPC__)
  12. # define KEY '_','_','P','P','C','_','_'
  13. #elif defined(__ppc__)
  14. # define KEY '_','_','p','p','c','_','_'
  15. #elif defined(__aarch64__)
  16. # define KEY '_','_','a','a','r','c','h','6','4','_','_'
  17. #elif defined(__ARM_ARCH_7A__)
  18. # define KEY '_','_','A','R','M','_','A','R','C','H','_','7','A','_','_'
  19. #elif defined(__ARM_ARCH_7S__)
  20. # define KEY '_','_','A','R','M','_','A','R','C','H','_','7','S','_','_'
  21. #endif
  22. #define SIZE (sizeof(@type@))
  23. static char info_size[] = {'I', 'N', 'F', 'O', ':', 's','i','z','e','[',
  24. ('0' + ((SIZE / 10000)%10)),
  25. ('0' + ((SIZE / 1000)%10)),
  26. ('0' + ((SIZE / 100)%10)),
  27. ('0' + ((SIZE / 10)%10)),
  28. ('0' + (SIZE % 10)),
  29. ']',
  30. #ifdef KEY
  31. ' ','k','e','y','[', KEY, ']',
  32. #endif
  33. '\0'};
  34. #ifdef __CLASSIC_C__
  35. int main(argc, argv) int argc; char *argv[];
  36. #else
  37. int main(int argc, char *argv[])
  38. #endif
  39. {
  40. int require = 0;
  41. require += info_size[argc];
  42. (void)argv;
  43. return require;
  44. }