)]}'
{
  "commit": "1652e9241b5d8a5a779c6582b1c3c4f4a7cc66e5",
  "tree": "f687f3b15cde1f2a54a782d3b1a4a9b640f86da8",
  "parents": [
    "847164bcf5a5a1454b444ce476a682f87cccce40"
  ],
  "author": {
    "name": "Martin Storsjö",
    "email": "martin@martin.st",
    "time": "Tue Apr 23 16:13:18 2024 +0300"
  },
  "committer": {
    "name": "Martin Storsjö",
    "email": "martin@martin.st",
    "time": "Thu Apr 25 23:52:36 2024 +0300"
  },
  "message": "headers: Use __mingw_ovr instead of explicitly static inline\n\nWhen building the C++23 std modules, at least with libc++, the\nC++ module needs to reexport a number of standard C functions.\n\nThe regular libc++ headers (the ones used even if not using\nC++ modules) do this, essentially:\n\n    namespace std {\n        using ::ctime;\n    }\n\nThus reexporting the regular C function ctime within the std\nnamespace.\n\nWhen building libc++ as a module, this function gets emitted as\npart of the C++ std module, like this:\n\n    export namespace std {\n        using std::ctime;\n    }\n\nThis tries to export the function as part of the C++ module. In the\ncase of our inline functions, this errors out if the inline functions\nare static inline:\n\n    \u003cprefix\u003e/share/libc++/v1/std/ctime.inc:20:14: error: using declaration referring to \u0027ctime\u0027 with internal linkage cannot be exported\n       20 |   using std::ctime;\n          |              ^\n    \u003cprefix\u003e/x86_64-w64-mingw32/include/time.h:267:29: note: target of using declaration\n      267 | static __inline char *__CRTDECL ctime(const time_t *_Time) { return _ctime64(_Time); }\n          |                                 ^\n\nTherefore, prefer using the __mingw_ovr macro for these inline\ndeclarations. This macro expands to regular plain (non-static)\ninline in C++ mode, while it still expands to static inline in C mode.\n\nSigned-off-by: Martin Storsjö \u003cmartin@martin.st\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d70a707173b1e614bbd328caf839e1b0ad52378f",
      "old_mode": 33188,
      "old_path": "mingw-w64-headers/crt/time.h",
      "new_id": "f8401903ca2117de628bf61c482a66adbff43e69",
      "new_mode": 33188,
      "new_path": "mingw-w64-headers/crt/time.h"
    },
    {
      "type": "modify",
      "old_id": "b1c10368632962b3353eed6f0668e18eb6d86a73",
      "old_mode": 33188,
      "old_path": "mingw-w64-headers/crt/wchar.h",
      "new_id": "c3bbbcc2339faf30afa49cad5b2974e185930162",
      "new_mode": 33188,
      "new_path": "mingw-w64-headers/crt/wchar.h"
    }
  ]
}
