Uploaded image for project: 'C++ Driver'
  1. C++ Driver
  2. CXX-3093

Exported v_noabi functions are missing __cdecl on Windows

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Unknown Unknown
    • 3.11.0
    • Affects Version/s: None
    • Component/s: None
    • None
    • C Drivers
    • Not Needed
    • Hide

      1. What would you like to communicate to the user about this feature?
      2. Would you like the user to see examples of the syntax and/or executable code and its output?
      3. Which versions of the driver/connector does this apply to?

      Show
      1. What would you like to communicate to the user about this feature? 2. Would you like the user to see examples of the syntax and/or executable code and its output? 3. Which versions of the driver/connector does this apply to?

      Many classes use the BSONCXX_API macro to export symbols related to its members.

      This pattern does not account for the required BSONCXX_CALL macro on function symbols to support users on Windows building with a different default calling convention than __cdecl (e.g. __stdcall, __fastcall, etc.). This is outlined in CXX-81.

      Executables under the examples subdirectory are compiled with /Gv to test for the absence of __cdecl in the API. However, the API coverage of examples is very small compared to the library test suites: see CXX-3092. Attempting to increasing API coverage in examples as part of CXX-3082 triggered build failures (as intended) due to missing __cdecl.

      Audit the set of exported symbols in the current C++ Driver API and ensure functions are declared with __cdecl as required.

            Assignee:
            ezra.chung@mongodb.com Ezra Chung
            Reporter:
            ezra.chung@mongodb.com Ezra Chung
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: