)]}'
{
  "commit": "803924493a7c787b2ba358751f55f07d5dba64b2",
  "tree": "87e7684ca52fe1e35e5342d90eb9ceaed6080076",
  "parents": [
    "5154a66ccc4dff7fe9951643bf599ef17e75aedb"
  ],
  "author": {
    "name": "Jihyeon Gim",
    "email": "potatogim@potatogim.net",
    "time": "Tue Sep 08 20:43:45 2026 +0900"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Sep 08 12:43:45 2026 +0100"
  },
  "message": "headers: allow including the installed headers from C++ (#878)\n\n* headers: allow including the installed headers from C++\n\n_Static_assert has no C++ spelling: GCC rejects it in C++ mode (clang\naccepts it as an extension), so any C++ consumer of the installed\nheaders fails to compile. rocjitsu, for example, includes\n\u003cpci_caps/msix.h\u003e from C++20 and cannot build its vfio-user transport\nwith GCC.\n\nIntroduce VFU_STATIC_ASSERT, which maps to static_assert under C++ and\nto _Static_assert otherwise, and use it for the layout assertions in\nthe installed headers. This keeps C consumers unchanged regardless of\ntheir C standard or feature-test macros, and makes C++11 and newer\nwork on both compilers.\n\nTested with gcc 16.2.1 and clang 22.1.8 in C99, C11, C++11 and C++20\nmodes, plus the project\u0027s meson build and pre-push checks.\n\nSigned-off-by: Jihyeon Gim \u003cpotatogim@potatogim.net\u003e",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ad8556cb35705853f2768871156715f79f93694b",
      "new_mode": 33188,
      "new_path": "include/compiler.h"
    },
    {
      "type": "modify",
      "old_id": "07e1482eaede474f8bfb037c3b168af22e223e4e",
      "old_mode": 33188,
      "old_path": "include/meson.build",
      "new_id": "ad5b93f523a13c23ca9d685aaa071811d6ea8c09",
      "new_mode": 33188,
      "new_path": "include/meson.build"
    },
    {
      "type": "modify",
      "old_id": "e64801313cbd69e4f6b53675b92865851903c275",
      "old_mode": 33188,
      "old_path": "include/pci_caps/common.h",
      "new_id": "1b76f95713da2adcf3a109e371ba5da4193f282c",
      "new_mode": 33188,
      "new_path": "include/pci_caps/common.h"
    },
    {
      "type": "modify",
      "old_id": "b3934667332ad8bf156c3c89d923c77ed13f09e2",
      "old_mode": 33188,
      "old_path": "include/pci_caps/dsn.h",
      "new_id": "1a379459e08b6da5a8baf9c606f2f22b52049cd8",
      "new_mode": 33188,
      "new_path": "include/pci_caps/dsn.h"
    },
    {
      "type": "modify",
      "old_id": "481abeeab0e87f5f90fa9dd1a823e14917ebc2fb",
      "old_mode": 33188,
      "old_path": "include/pci_caps/msi.h",
      "new_id": "f58b2f64cfdecbbca89f4e319d9ab041c4623d09",
      "new_mode": 33188,
      "new_path": "include/pci_caps/msi.h"
    },
    {
      "type": "modify",
      "old_id": "c336e3d2fe05262dbb5415e1b2c0534ab0cf9205",
      "old_mode": 33188,
      "old_path": "include/pci_caps/msix.h",
      "new_id": "5817ccfa5f02a4023141ecd85a037a6b3724d6c7",
      "new_mode": 33188,
      "new_path": "include/pci_caps/msix.h"
    },
    {
      "type": "modify",
      "old_id": "365ecfc5fcb55e27cbc8dc4f6c3bedbab5e0d0e2",
      "old_mode": 33188,
      "old_path": "include/pci_caps/pm.h",
      "new_id": "990c5713e1845f2d77234e07bb6b5caa95e1af0b",
      "new_mode": 33188,
      "new_path": "include/pci_caps/pm.h"
    },
    {
      "type": "modify",
      "old_id": "88fbe853c342f8640a70eafa033dc2d314e1e32e",
      "old_mode": 33188,
      "old_path": "include/pci_caps/px.h",
      "new_id": "ac18d2d1add6d031f38d51f1f7c772144f95b80c",
      "new_mode": 33188,
      "new_path": "include/pci_caps/px.h"
    },
    {
      "type": "modify",
      "old_id": "11ab919678b4e415f21f16be3d09eb747933728f",
      "old_mode": 33188,
      "old_path": "include/pci_defs.h",
      "new_id": "f1cb2bbd8d907657e6f83658fc955817f8fbac20",
      "new_mode": 33188,
      "new_path": "include/pci_defs.h"
    },
    {
      "type": "modify",
      "old_id": "eb1b1414d676639098fe4055e324da1f54c7dbe1",
      "old_mode": 33188,
      "old_path": "include/vfio-user.h",
      "new_id": "8af7d4b93d2684521aef973996c119c139619289",
      "new_mode": 33188,
      "new_path": "include/vfio-user.h"
    }
  ]
}
