)]}'
{
  "commit": "00f026a08cd20c25ab9e465c9eda5f234f0a008d",
  "tree": "36613ace2fda9939010fd3c12f75c927eeadaddf",
  "parents": [
    "b0651b603e9aaa6d532ce72f6fcac98e88d10fe0"
  ],
  "author": {
    "name": "Louis Dionne",
    "email": "ldionne@apple.com",
    "time": "Thu Sep 26 14:51:10 2019 +0000"
  },
  "committer": {
    "name": "Louis Dionne",
    "email": "ldionne@apple.com",
    "time": "Thu Sep 26 14:51:10 2019 +0000"
  },
  "message": "[libc++] Take 2: Implement LWG 2510\n\nSummary:\nLWG2510 makes tag types like allocator_arg_t explicitly default\nconstructible instead of implicitly default constructible. It also\nmakes the constructors for std::pair and std::tuple conditionally\nexplicit based on the explicit-ness of the default constructibility\nfor the pair/tuple\u0027s elements.\n\nThis was previously committed as r372777 and reverted in r372832 due to\nthe commit breaking LLVM\u0027s build in C++14 mode. This issue has now been\naddressed.\n\nReviewers: mclow.lists\n\nSubscribers: christof, jkorous, dexonsmith, libcxx-commits\n\nTags: #libc\n\nDifferential Revision: https://reviews.llvm.org/D65161\n\ngit-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@372983 91177308-0d34-0410-b5e6-96231b3b80d8\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9587d7ab15a1d7170839b0bbd8e5413065062319",
      "old_mode": 33188,
      "old_path": "include/__functional_base",
      "new_id": "ca761c409b627b03b39ed43278f5ba35f4b58d68",
      "new_mode": 33188,
      "new_path": "include/__functional_base"
    },
    {
      "type": "modify",
      "old_id": "a4ac36161cbaa3682821c5484c38ae6ce68da83d",
      "old_mode": 33188,
      "old_path": "include/__mutex_base",
      "new_id": "ed75c82380a6c340570b17712ca594b33a005645",
      "new_mode": 33188,
      "new_path": "include/__mutex_base"
    },
    {
      "type": "modify",
      "old_id": "dca62202db114a18d621f0f583d708b8d3c73c35",
      "old_mode": 33188,
      "old_path": "include/mutex",
      "new_id": "8fc3c61221b57ccb7afd93e27be8f307c5fa9633",
      "new_mode": 33188,
      "new_path": "include/mutex"
    },
    {
      "type": "modify",
      "old_id": "85e4c4b3fcf2adae39f760ae3fb77fc004afba7c",
      "old_mode": 33188,
      "old_path": "include/new",
      "new_id": "40d351e9b7705d7c0f4ed4ac8ce58ad591f2a58f",
      "new_mode": 33188,
      "new_path": "include/new"
    },
    {
      "type": "modify",
      "old_id": "32bc86913aaa89d722fa01f7c17e6f2066badd8a",
      "old_mode": 33188,
      "old_path": "include/tuple",
      "new_id": "c33b48ab54c6e9a419f18dd6e27386cf1467c40e",
      "new_mode": 33188,
      "new_path": "include/tuple"
    },
    {
      "type": "modify",
      "old_id": "ee178243181d773e368947a33cd55ed4e910bbf8",
      "old_mode": 33188,
      "old_path": "include/type_traits",
      "new_id": "77dcc2321d991018c8870b0b68ed1eb8ca383015",
      "new_mode": 33188,
      "new_path": "include/type_traits"
    },
    {
      "type": "modify",
      "old_id": "64599c8d55d0c6172985f9940c5fe1d16d71fa2c",
      "old_mode": 33188,
      "old_path": "include/utility",
      "new_id": "c90d049cf7b1644a79114a37274bb54739a90f0f",
      "new_mode": 33188,
      "new_path": "include/utility"
    },
    {
      "type": "modify",
      "old_id": "182785733efd57ab3faea3ee148e6801d3c49e91",
      "old_mode": 33188,
      "old_path": "src/mutex.cpp",
      "new_id": "7e979cd8904134d14c754b1525ce3f29e983b2f5",
      "new_mode": 33188,
      "new_path": "src/mutex.cpp"
    },
    {
      "type": "modify",
      "old_id": "016a5d91b85a4df1c064b99048541f05dc6d2a67",
      "old_mode": 33188,
      "old_path": "src/utility.cpp",
      "new_id": "6a690dc2879e1b4f5407f52918c87a35b27d06ca",
      "new_mode": 33188,
      "new_path": "src/utility.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "eef2828a217478bcc731c509c9bf104eb2be0ebf",
      "new_mode": 33188,
      "new_path": "test/libcxx/type_traits/is_implicitly_default_constructible.pass.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "78ab087c3ea1b4bee96f3f17bd749aa492d7111b",
      "new_mode": 33188,
      "new_path": "test/std/language.support/support.dynamic/nothrow_t.fail.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3a6231329f096467900ae886c9d2206d62b7dd4f",
      "new_mode": 33188,
      "new_path": "test/std/language.support/support.dynamic/nothrow_t.pass.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4542c04c297f90cec42049fd6e80755f44e9c1f5",
      "new_mode": 33188,
      "new_path": "test/std/thread/thread.mutex/thread.lock/types.fail.cpp"
    },
    {
      "type": "modify",
      "old_id": "84c39baafa6aa503f01b5114f652852235fe8bd5",
      "old_mode": 33188,
      "old_path": "test/std/thread/thread.mutex/thread.lock/types.pass.cpp",
      "new_id": "c03ca4622aabf7db83626af385d883be15c9da89",
      "new_mode": 33188,
      "new_path": "test/std/thread/thread.mutex/thread.lock/types.pass.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "fb991d425f12f3a2e88497149b88b3666ccb1b80",
      "new_mode": 33188,
      "new_path": "test/std/utilities/memory/allocator.tag/allocator_arg.fail.cpp"
    },
    {
      "type": "modify",
      "old_id": "0253243319af4032bd5adf21ec1488a694fff850",
      "old_mode": 33188,
      "old_path": "test/std/utilities/memory/allocator.tag/allocator_arg.pass.cpp",
      "new_id": "e22bec1e5144c89394ec34108f255eb666ffdf69",
      "new_mode": 33188,
      "new_path": "test/std/utilities/memory/allocator.tag/allocator_arg.pass.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "616550f60e57f22262df71887cad6448a27fde1b",
      "new_mode": 33188,
      "new_path": "test/std/utilities/tuple/tuple.tuple/tuple.cnstr/default.fail.cpp"
    },
    {
      "type": "modify",
      "old_id": "46fd35ad4ddd7c4f09ded2d6a847b21f2849369c",
      "old_mode": 33188,
      "old_path": "test/std/utilities/tuple/tuple.tuple/tuple.cnstr/default.pass.cpp",
      "new_id": "c5b650d79a1d83b714d18c43dd23fe063d679d02",
      "new_mode": 33188,
      "new_path": "test/std/utilities/tuple/tuple.tuple/tuple.cnstr/default.pass.cpp"
    },
    {
      "type": "modify",
      "old_id": "d70d060deb056d6226b7dc15bad7f2ea2db2f3e6",
      "old_mode": 33188,
      "old_path": "test/std/utilities/utility/pairs/pair.piecewise/piecewise_construct.pass.cpp",
      "new_id": "903aa9355832a06a0dda45df59a2c564ee9e049f",
      "new_mode": 33188,
      "new_path": "test/std/utilities/utility/pairs/pair.piecewise/piecewise_construct.pass.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b8dd28a5764588f2e8086e52749b9dd661107e00",
      "new_mode": 33188,
      "new_path": "test/std/utilities/utility/pairs/pair.piecewise/piecewise_construct_t.fail.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0fdba0674874c8bfd4bbdca7f45d6b25dee5d6ee",
      "new_mode": 33188,
      "new_path": "test/std/utilities/utility/pairs/pair.piecewise/piecewise_construct_t.pass.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "511f21ec301c6812b6d228a882cf86dd21603e4a",
      "new_mode": 33188,
      "new_path": "test/std/utilities/utility/pairs/pairs.pair/default.explicit.fail.cpp"
    },
    {
      "type": "modify",
      "old_id": "049c220608831fec2b66cb83f6645f6f6e56f1a0",
      "old_mode": 33188,
      "old_path": "test/std/utilities/utility/pairs/pairs.pair/default.pass.cpp",
      "new_id": "dc05a2b4885943379e063eadf25c08f8e65b22d9",
      "new_mode": 33188,
      "new_path": "test/std/utilities/utility/pairs/pairs.pair/default.pass.cpp"
    },
    {
      "type": "modify",
      "old_id": "227c05fa26a8d5b2384fa7e267dc34c18232761d",
      "old_mode": 33188,
      "old_path": "www/cxx1z_status.html",
      "new_id": "627f9a085cb2ccb9d706fa1007320608007db10d",
      "new_mode": 33188,
      "new_path": "www/cxx1z_status.html"
    }
  ]
}
