)]}'
{
  "commit": "833d644ed1c04346d665193d1b3eac5e3ae68193",
  "tree": "2d0ebdca2c7538ac5534aa16df2a721da53f2598",
  "parents": [
    "cac9e30dbedef0887a35c42dbd96d8974660a11a"
  ],
  "author": {
    "name": "Eric Fiselier",
    "email": "eric@efcs.ca",
    "time": "Thu Sep 15 22:27:07 2016 +0000"
  },
  "committer": {
    "name": "Eric Fiselier",
    "email": "eric@efcs.ca",
    "time": "Thu Sep 15 22:27:07 2016 +0000"
  },
  "message": "[libc++] Fix and document visibility attributes for Clang, GCC and Windows.\n\nSummary:\nThis patch fixes a number of problems with the visibility macros across GCC (on Unix) and Windows (DLL import/export semantics). All of the visibility macros are now documented under `DesignDocs/VisibilityMacros.rst`. Now I\u0027ll no longer forget the subtleties of each!\n\nThis patch adds two new visibility macros:\n\n* `_LIBCPP_ENUM_VIS` for controlling the typeinfo of enum types. Only Clang supports this.\n* `_LIBCPP_EXTERN_TEMPLATE_TYPE_VIS` for redefining visibility on explicit instantiation declarations. Clang and Windows require this.\n\nAfter applying this patch GCC only emits one -Wattribute warning opposed to 30+.\n\n\nReviewers: mclow.lists, EricWF\n\nSubscribers: beanz, mgorny, cfe-commits\n\nDifferential Revision: https://reviews.llvm.org/D24602\n\ngit-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@281673 91177308-0d34-0410-b5e6-96231b3b80d8\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c1391741c6be5c6d0cba7f9a56e2b925aa3a453e",
      "old_mode": 33188,
      "old_path": "CMakeLists.txt",
      "new_id": "7c0f0610e5bc409a211f1bb17a0eb351b8a0baa0",
      "new_mode": 33188,
      "new_path": "CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6e2294d3965ac22df433fa24ca78033767b9aad4",
      "new_mode": 33188,
      "new_path": "docs/DesignDocs/VisibilityMacros.rst"
    },
    {
      "type": "modify",
      "old_id": "b0c8b813f57f31dc9ba5a1d5dc49a70ebcc415fc",
      "old_mode": 33188,
      "old_path": "docs/index.rst",
      "new_id": "0cac7fe98a90b29e6af9a5ca0799eca55485070d",
      "new_mode": 33188,
      "new_path": "docs/index.rst"
    },
    {
      "type": "modify",
      "old_id": "fb3efa0eb08c9fa755389058a0e4c2c4e22798da",
      "old_mode": 33188,
      "old_path": "include/__config",
      "new_id": "1afed4fb8234d17805d332c9d5c6fd3c1464c959",
      "new_mode": 33188,
      "new_path": "include/__config"
    },
    {
      "type": "modify",
      "old_id": "b618069f4610700f9f225640407a90f7c9204442",
      "old_mode": 33188,
      "old_path": "include/__locale",
      "new_id": "535ee165f652083b661946b34688dd2fd59dce1d",
      "new_mode": 33188,
      "new_path": "include/__locale"
    },
    {
      "type": "modify",
      "old_id": "764ee56a82288fab096e7ad677b79dc45f406a6e",
      "old_mode": 33188,
      "old_path": "include/__string",
      "new_id": "fc6097a1e0bc6855331f14538bd95baf218fe2e8",
      "new_mode": 33188,
      "new_path": "include/__string"
    },
    {
      "type": "modify",
      "old_id": "fa2face130f48c84cd42725a9f5a95b536afbc29",
      "old_mode": 33188,
      "old_path": "include/experimental/filesystem",
      "new_id": "fe6e40bf070f0a964a9fa2be568a9969042354ce",
      "new_mode": 33188,
      "new_path": "include/experimental/filesystem"
    },
    {
      "type": "modify",
      "old_id": "3a76ba831d3c852bdf433731325e7d7f8ae2de7a",
      "old_mode": 33188,
      "old_path": "include/istream",
      "new_id": "3ef638236be1963bf9e03b939134a716793cf4c0",
      "new_mode": 33188,
      "new_path": "include/istream"
    },
    {
      "type": "modify",
      "old_id": "339b52acda4c0c0786d6db85e7609f88e8f225c2",
      "old_mode": 33188,
      "old_path": "include/locale",
      "new_id": "adb03af94e7dc0b2776de813b44a4dc35b27067e",
      "new_mode": 33188,
      "new_path": "include/locale"
    },
    {
      "type": "modify",
      "old_id": "58a4768d9d40b6ddf39b2a007ede496c8508d86e",
      "old_mode": 33188,
      "old_path": "include/ostream",
      "new_id": "3a4c218ed56aacaaaf4ebd6eaad9d4895aa2e4d4",
      "new_mode": 33188,
      "new_path": "include/ostream"
    },
    {
      "type": "modify",
      "old_id": "7544aaf179bd0aeb1bf152c3dcf9500e0c34675a",
      "old_mode": 33188,
      "old_path": "include/streambuf",
      "new_id": "3ffe413ae300a56d9cf2ee587a24a2b36014857f",
      "new_mode": 33188,
      "new_path": "include/streambuf"
    },
    {
      "type": "modify",
      "old_id": "b9e044e82d42bd340d8ab7d58d55a5c24d22c1ce",
      "old_mode": 33188,
      "old_path": "include/string",
      "new_id": "39bda49280f10bfbbfbec073e511a983a4ff0673",
      "new_mode": 33188,
      "new_path": "include/string"
    },
    {
      "type": "modify",
      "old_id": "cbe86a412f984085952a7de799cf57246a0deff1",
      "old_mode": 33188,
      "old_path": "include/vector",
      "new_id": "edcb7dfabe5a52953926a54a79d684840df75b15",
      "new_mode": 33188,
      "new_path": "include/vector"
    }
  ]
}
