home *** CD-ROM | disk | FTP | other *** search
/ PC World 2008 March (DVD) / PCWorld_2008-03_DVD.iso / komunikace / mysql / mysql-essential-5.0.45-win32.msi / product.cab / fili270 < prev    next >
Encoding:
Text File  |  2007-07-06  |  1.9 KB  |  64 lines

  1. /* Copyright (C) 2000-2003 MySQL AB
  2.  
  3.    This program is free software; you can redistribute it and/or modify
  4.    it under the terms of the GNU General Public License as published by
  5.    the Free Software Foundation; version 2 of the License.
  6.  
  7.    This program is distributed in the hope that it will be useful,
  8.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  9.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  10.    GNU General Public License for more details.
  11.  
  12.    You should have received a copy of the GNU General Public License
  13.    along with this program; if not, write to the Free Software
  14.    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
  15.  
  16. /*
  17.   Helper macros used for setting different __attributes__
  18.   on functions in a portable fashion
  19. */
  20.  
  21. #ifndef _my_attribute_h
  22. #define _my_attribute_h
  23.  
  24. /*
  25.   Disable __attribute__() on gcc < 2.7, g++ < 3.4, and non-gcc compilers.
  26.   Some forms of __attribute__ are actually supported in earlier versions of
  27.   g++, but we just disable them all because we only use them to generate
  28.   compilation warnings.
  29. */
  30. #ifndef __attribute__
  31. # if !defined(__GNUC__)
  32. #  define __attribute__(A)
  33. # elif GCC_VERSION < 2008
  34. #  define __attribute__(A)
  35. # elif defined(__cplusplus) && GCC_VERSION < 3004
  36. #  define __attribute__(A)
  37. # endif
  38. #endif
  39.  
  40. /*
  41.   __attribute__((format(...))) is only supported in gcc >= 2.8 and g++ >= 3.4
  42.   But that's already covered by the __attribute__ tests above, so this is
  43.   just a convenience macro.
  44. */
  45. #ifndef ATTRIBUTE_FORMAT
  46. # define ATTRIBUTE_FORMAT(style, m, n) __attribute__((format(style, m, n)))
  47. #endif
  48.  
  49. /*
  50.  
  51.    __attribute__((format(...))) on a function pointer is not supported
  52.    until  gcc 3.1
  53. */
  54. #ifndef ATTRIBUTE_FORMAT_FPTR
  55. # if (GCC_VERSION >= 3001)
  56. #  define ATTRIBUTE_FORMAT_FPTR(style, m, n) ATTRIBUTE_FORMAT(style, m, n)
  57. # else
  58. #  define ATTRIBUTE_FORMAT_FPTR(style, m, n)
  59. # endif /* GNUC >= 3.1 */
  60. #endif
  61.  
  62.  
  63. #endif
  64.