Subversion Repositories QNX 8.QNX8 IFS tool

Rev

Rev 26 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. /* ACC -- Automatic Compiler Configuration
  2.  
  3.    Copyright (C) 1996-2004 Markus Franz Xaver Johannes Oberhumer
  4.    All Rights Reserved.
  5.  
  6.    This software is a copyrighted work licensed under the terms of
  7.    the GNU General Public License. Please consult the file "ACC_LICENSE"
  8.    for details.
  9.  
  10.    Markus F.X.J. Oberhumer
  11.    <markus@oberhumer.com>
  12.    http://www.oberhumer.com/
  13.  */
  14.  
  15.  
  16. /***********************************************************************
  17. // acc_alignof() / acc_inline
  18. ************************************************************************/
  19.  
  20. #if (ACC_CC_CILLY || ACC_CC_GNUC || ACC_CC_PGI)
  21. #  define acc_alignof(e)        __alignof__(e)
  22. #elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 700))
  23. #  define acc_alignof(e)        __alignof__(e)
  24. #elif (ACC_CC_MSC && (_MSC_VER >= 1300))
  25. #  define acc_alignof(e)        __alignof(e)
  26. #endif
  27.  
  28. #if (ACC_CC_TURBOC && (__TURBOC__ <= 0x0295))
  29. #elif defined(__cplusplus)
  30. #  define acc_inline            inline
  31. #elif (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0550))
  32. #  define acc_inline            __inline
  33. #elif (ACC_CC_CILLY || ACC_CC_GNUC || ACC_CC_PGI)
  34. #  define acc_inline            __inline__
  35. #elif (ACC_CC_DMC)
  36. #  define acc_inline            __inline
  37. #elif (ACC_CC_INTELC)
  38. #  define acc_inline            __inline
  39. #elif (ACC_CC_MSC && (_MSC_VER >= 900))
  40. #  define acc_inline            __inline
  41. #elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)
  42. #  define acc_inline            inline
  43. #endif
  44.  
  45.  
  46. /***********************************************************************
  47. // ACC_UNUSED / ACC_UNUSED_FUNC
  48. ************************************************************************/
  49.  
  50. #if !defined(ACC_UNUSED)
  51. #  if (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0600))
  52. #    define ACC_UNUSED(var)         ((void) &var)
  53. #  elif (ACC_CC_BORLANDC || ACC_CC_HIGHC || ACC_CC_NDPC || ACC_CC_TURBOC)
  54. #    define ACC_UNUSED(var)         if (&var) ; else
  55. #  elif (ACC_CC_MSC && (_MSC_VER < 900))
  56. #    define ACC_UNUSED(var)         if (&var) ; else
  57. #  elif (ACC_CC_GNUC)
  58. #    define ACC_UNUSED(var)         ((void) var)
  59. #  elif (ACC_CC_KEILC)
  60. #    define ACC_UNUSED(var)
  61. #  else
  62. #    define ACC_UNUSED(var)         ((void) &var)
  63. #  endif
  64. #endif
  65. #if !defined(ACC_UNUSED_FUNC)
  66. #  if (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0600))
  67. #    define ACC_UNUSED_FUNC(func)   ((void) func)
  68. #  elif (ACC_CC_BORLANDC || ACC_CC_NDPC || ACC_CC_TURBOC)
  69. #    define ACC_UNUSED_FUNC(func)   if (func) ; else
  70. #  elif (ACC_CC_GNUC == 0x030400ul) && defined(__llvm__)
  71. #    define ACC_UNUSED_FUNC(func)   ((void) &func)
  72. #  elif (ACC_CC_MSC && (_MSC_VER < 900))
  73. #    define ACC_UNUSED_FUNC(func)   if (func) ; else
  74. #  elif (ACC_CC_MSC)
  75. #    define ACC_UNUSED_FUNC(func)   ((void) &func)
  76. #  elif (ACC_CC_KEILC)
  77. #    define ACC_UNUSED_FUNC(func)
  78. #  else
  79. #    define ACC_UNUSED_FUNC(func)   ((void) func)
  80. #  endif
  81. #endif
  82.  
  83.  
  84. /***********************************************************************
  85. // compile-time-assertions
  86. ************************************************************************/
  87.  
  88. /* This can be put into a header file but may get ignored by some compilers. */
  89. #if !defined(ACC_COMPILE_TIME_ASSERT_HEADER)
  90. #  if (__cplusplus >= 201103L) /* Pierre-Marie Baty -- (much cleaner) C11 addition */
  91. #    define ACC_COMPILE_TIME_ASSERT_HEADER(e)  static_assert(e, #e);
  92. #  elif (__STDC_VERSION__ >= 201112L) /* Pierre-Marie Baty -- (much cleaner) C11 addition */
  93. #    define ACC_COMPILE_TIME_ASSERT_HEADER(e)  _Static_assert(e, #e);
  94. #  elif (ACC_CC_AZTECC || ACC_CC_ZORTECHC)
  95. #    define ACC_COMPILE_TIME_ASSERT_HEADER(e)  extern int __acc_cta[1-!(e)];
  96. #  elif (ACC_CC_DMC || ACC_CC_SYMANTECC)
  97. #    define ACC_COMPILE_TIME_ASSERT_HEADER(e)  extern int __acc_cta[1u-2*!(e)];
  98. #  elif (ACC_CC_TURBOC && (__TURBOC__ == 0x0295))
  99. #    define ACC_COMPILE_TIME_ASSERT_HEADER(e)  extern int __acc_cta[1-!(e)];
  100. #  else
  101. #    define ACC_COMPILE_TIME_ASSERT_HEADER(e)  extern int __acc_cta[1-2*!(e)];
  102. #  endif
  103. #endif
  104.  
  105. /* This must appear within a function body. */
  106. #if !defined(ACC_COMPILE_TIME_ASSERT)
  107. #  if (ACC_CC_AZTECC)
  108. #    define ACC_COMPILE_TIME_ASSERT(e)  {typedef int __acc_cta_t[1-!(e)];}
  109. #  elif (ACC_CC_DMC || ACC_CC_PACIFICC || ACC_CC_SYMANTECC || ACC_CC_ZORTECHC)
  110. #    define ACC_COMPILE_TIME_ASSERT(e)  switch(0) case 1:case !(e):break;
  111. #  elif (ACC_CC_MSC && (_MSC_VER < 900))
  112. #    define ACC_COMPILE_TIME_ASSERT(e)  switch(0) case 1:case !(e):break;
  113. #  elif (ACC_CC_TURBOC && (__TURBOC__ == 0x0295))
  114. #    define ACC_COMPILE_TIME_ASSERT(e)  switch(0) case 1:case !(e):break;
  115. #  else
  116. #    define ACC_COMPILE_TIME_ASSERT(e)  {typedef int __acc_cta_t[1-2*!(e)];}
  117. #  endif
  118. #endif
  119.  
  120.  
  121. /***********************************************************************
  122. // macros
  123. ************************************************************************/
  124.  
  125. #if !defined(__ACC_UINT_MAX)
  126. #  define __ACC_INT_MAX(b)      ((((1l  << ((b)-2)) - 1l)  * 2l)  + 1l)
  127. #  define __ACC_UINT_MAX(b)     ((((1ul << ((b)-1)) - 1ul) * 2ul) + 1ul)
  128. #endif
  129.  
  130.  
  131. /***********************************************************************
  132. // get sizes of builtin integral types from <limits.h>
  133. ************************************************************************/
  134.  
  135. #if !defined(__ACC_SHORT_BIT)
  136. #  if (USHRT_MAX == ACC_0xffffL)
  137. #    define __ACC_SHORT_BIT     16
  138. #  elif (USHRT_MAX == ACC_0xffffffffL)
  139. #    define __ACC_SHORT_BIT     32
  140. #  elif (USHRT_MAX == __ACC_UINT_MAX(64))
  141. #    define __ACC_SHORT_BIT     64
  142. #  elif (USHRT_MAX == __ACC_UINT_MAX(128))
  143. #    define __ACC_SHORT_BIT     128
  144. #  else
  145. #    error "check your compiler installation: USHRT_MAX"
  146. #  endif
  147. #endif
  148.  
  149. #if !defined(__ACC_INT_BIT)
  150. #  if (UINT_MAX == ACC_0xffffL)
  151. #    define __ACC_INT_BIT       16
  152. #  elif (UINT_MAX == ACC_0xffffffffL)
  153. #    define __ACC_INT_BIT       32
  154. #  elif (UINT_MAX == __ACC_UINT_MAX(64))
  155. #    define __ACC_INT_BIT       64
  156. #  elif (UINT_MAX == __ACC_UINT_MAX(128))
  157. #    define __ACC_INT_BIT       128
  158. #  else
  159. #    error "check your compiler installation: UINT_MAX"
  160. #  endif
  161. #endif
  162.  
  163. #if !defined(__ACC_LONG_BIT)
  164. #  if (ULONG_MAX == ACC_0xffffffffL)
  165. #    define __ACC_LONG_BIT      32
  166. #  elif (ULONG_MAX == __ACC_UINT_MAX(64))
  167. #    define __ACC_LONG_BIT      64
  168. #  elif (ULONG_MAX == __ACC_UINT_MAX(128))
  169. #    define __ACC_LONG_BIT      128
  170. #  else
  171. #    error "check your compiler installation: ULONG_MAX"
  172. #  endif
  173. #endif
  174.  
  175.  
  176. /***********************************************************************
  177. // acc_auto.h supplements
  178. ************************************************************************/
  179.  
  180. #if (ACC_OS_CYGWIN || (ACC_OS_EMX && defined(__RSXNT__)) || ACC_OS_WIN32 || ACC_OS_WIN64)
  181. #  if (ACC_CC_WATCOMC && (__WATCOMC__ < 1000))
  182. #  elif (ACC_OS_WIN32 && ACC_CC_GNUC) && defined(__PW32__)
  183.      /* ancient pw32 version */
  184. #  elif ((ACC_OS_CYGWIN || defined(__MINGW32__)) && (ACC_CC_GNUC && (ACC_CC_GNUC < 0x025f00ul)))
  185.      /* ancient cygwin/mingw version */
  186. #  else
  187. #    define ACC_HAVE_WINDOWS_H 1
  188. #  endif
  189. #endif
  190.  
  191.  
  192.  
  193. /*
  194. vi:ts=4:et
  195. */
  196.