)]}'
{
  "commit": "3d85029503b16a8f1dde1349cc15f669f6f820e8",
  "tree": "a5973288c1a842b4bd86a3930d6e1485063d6909",
  "parents": [
    "239c70ec62385295135e8646d1f340180833de9b"
  ],
  "author": {
    "name": "Louis Dionne",
    "email": "ldionne@apple.com",
    "time": "Tue Sep 24 20:18:54 2019 +0000"
  },
  "committer": {
    "name": "Louis Dionne",
    "email": "ldionne@apple.com",
    "time": "Tue Sep 24 20:18:54 2019 +0000"
  },
  "message": "[libc++] 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\nReviewers: mclow.lists, EricWF\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@372777 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": "cb3ed971110247e5f9ec4d6af81edabc91cdae75",
      "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": "19719a79c0c6a42aab27f54f4df454fe2ba33d20",
      "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": "c1092c3516b849f4fb2840ddcff946dde772f136",
      "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": "56fbc90a63d2d9ff9dc67a754ac9645fcbb94e1f",
      "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": "2b8d09afaae735e4af29666ce238c2c1f918bac9",
      "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": "f25450af63b76f4fd7062fb03c951ae981fc5f5e",
      "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": "9f855986257ee9118c68f92a46269709a49250d1",
      "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": "90b3313eff1cbdb8174f828ba749787c0c628244",
      "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": "332fe33f41ef1ec4555e6800aad23b08f18e190b",
      "new_mode": 33188,
      "new_path": "test/std/utilities/utility/pairs/pairs.pair/default.explicit.fail.cpp"
    },
    {
      "type": "modify",
      "old_id": "de3730ef3cb2878b0aaa4cafa1f97ef8acdc90ad",
      "old_mode": 33188,
      "old_path": "test/std/utilities/utility/pairs/pairs.pair/default.pass.cpp",
      "new_id": "9c53cb8d14b835dc4f83d32a41825bce5d67bfd2",
      "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"
    }
  ]
}
