Uploaded image for project: 'Axis2-C'
  1. Axis2-C
  2. AXIS2C-1441

[AIX] util/include/axutil_utils_defines.h should not map AXIS2_CALL to __stdcall on non-Windows platforms

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Blocker
    • Resolution: Fixed
    • 1.6.0
    • 1.7.0
    • guththila, platforms/unix, util
    • AIX 5.2 ; Visual Age C++ 6.0 ; Insure++ 7.1

    Description

      __stdcall is a Microsoft specific keyword that should be used only for Win32 builds.
      (reference: http://msdn.microsoft.com/en-us/library/zxk0tw93%28VS.80%29.aspx )

      However util/include/axutil_utils_defines.h contains this code:
      ========================================
      #if defined(_GNUC_)
      #if defined(__i386)
      #define AXIS2_CALL _attribute_((cdecl))
      #define AXIS2_WUR _attribute_((warn_unused_result))
      #else
      #define AXIS2_CALL
      #define AXIS2_WUR

      #endif
      #else
      #if defined(__unix)
      #define AXIS2_CALL
      #define AXIS2_WUR

      #else /* WIN32 */
      #define AXIS2_CALL __stdcall
      #define AXIS2_WUR
      #endif
      #endif
      ========================================

      On AIX platforms, the C preprocessor doesn't have the __unix define and Insure++ doesn't know the __stdcall keyword.

      So this makes Insure++ fail to compile such function variable declaration as AXIS2_CALL is mapped to __stdcall:
      ========================================
      void *(
      AXIS2_CALL

      • my_fn)();
        ========================================

      Attachments

        1. AXIS2C-1441.patch
          1 kB
          Olivier Mengué

        Issue Links

          Activity

            People

              shankar Selvaratnam Uthaiyashankar
              dolmen-oxymel Olivier Mengué
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: