)]}'
{
  "commit": "952eaecfc6fa504c40d6f7220d8c017d014cda0c",
  "tree": "91f54ab548a1a5a8c94abc48bbc864bd2ed76c7a",
  "parents": [
    "ee856f131dc433ff3c7522a4782aed7ac6de4f4a"
  ],
  "author": {
    "name": "Eric Fiselier",
    "email": "eric@efcs.ca",
    "time": "Sat Jan 21 00:02:12 2017 +0000"
  },
  "committer": {
    "name": "Eric Fiselier",
    "email": "eric@efcs.ca",
    "time": "Sat Jan 21 00:02:12 2017 +0000"
  },
  "message": "Implement P0513R0 - \"Poisoning the Hash\"\n\nSummary:\nExactly what the title says.\n\nThis patch also adds a `std::hash\u003cnullptr_t\u003e` specialization in C++17, but it was not added by this paper and I can\u0027t find the actual paper that adds it.\n\nSee http://wg21.link/P0513R0 for more info.\n\nIf there are no comments in the next couple of days I\u0027ll commit this\n\nReviewers: mclow.lists, K-ballo, EricWF\n\nReviewed By: EricWF\n\nSubscribers: cfe-commits\n\nDifferential Revision: https://reviews.llvm.org/D28938\n\ngit-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@292684 91177308-0d34-0410-b5e6-96231b3b80d8\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "05c9f066fd0f01429f6f284e418f6cca5db5f0a3",
      "old_mode": 33188,
      "old_path": "include/__functional_base",
      "new_id": "4e2b7eb8d2893c4853959cf45bfbb9bf1eabdea4",
      "new_mode": 33188,
      "new_path": "include/__functional_base"
    },
    {
      "type": "modify",
      "old_id": "4f8ec65e090d3545e057d7f2f614a4cbea4fae8f",
      "old_mode": 33188,
      "old_path": "include/functional",
      "new_id": "2a810b1a0f2fa07242db70906eb887a2d3f8522b",
      "new_mode": 33188,
      "new_path": "include/functional"
    },
    {
      "type": "modify",
      "old_id": "1b58550bc9549e686981bde85eea8da63401d58c",
      "old_mode": 33188,
      "old_path": "include/memory",
      "new_id": "f4a938342562f3e66e7cbc4136583ae53925d9cf",
      "new_mode": 33188,
      "new_path": "include/memory"
    },
    {
      "type": "modify",
      "old_id": "86428f281dc16e006f1ff4e80629eddb0aa03e37",
      "old_mode": 33188,
      "old_path": "include/new",
      "new_id": "6e43501d2991b78b09d8f613c47027a3178973b5",
      "new_mode": 33188,
      "new_path": "include/new"
    },
    {
      "type": "modify",
      "old_id": "c002cc729059fc73d9ed69af2db8348ca35f493a",
      "old_mode": 33188,
      "old_path": "include/optional",
      "new_id": "b13a2d5f7aef0015a346db432c5dd02ec9fafa20",
      "new_mode": 33188,
      "new_path": "include/optional"
    },
    {
      "type": "modify",
      "old_id": "cc0646cbd2704888733a1dfbe7a3cf7ecf2dd594",
      "old_mode": 33188,
      "old_path": "include/utility",
      "new_id": "c230511b37d130866bd4e817e3b4fb83bf0f9f41",
      "new_mode": 33188,
      "new_path": "include/utility"
    },
    {
      "type": "modify",
      "old_id": "4396f1062f5d6a8105ad6b858253866d0d5237b0",
      "old_mode": 33188,
      "old_path": "include/variant",
      "new_id": "67d4e3c9992a0b5cf14540097291464409dc1acc",
      "new_mode": 33188,
      "new_path": "include/variant"
    },
    {
      "type": "modify",
      "old_id": "ae48c735a233252df5e8751982dec4a4645a4bb5",
      "old_mode": 33188,
      "old_path": "test/libcxx/test/config.py",
      "new_id": "0d90258267a406c70d9485860d46fc19664e92b5",
      "new_mode": 33188,
      "new_path": "test/libcxx/test/config.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f8a8dbd8d6d4bf6dce5a07b4d05c143a91aa8b62",
      "new_mode": 33188,
      "new_path": "test/std/containers/sequences/vector.bool/enabled_hash.pass.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f1b460575917695561bd74bb628b11bc432dbe2c",
      "new_mode": 33188,
      "new_path": "test/std/diagnostics/syserr/syserr.hash/enabled_hash.pass.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "01f01218999df2e05ab4c745c2b5a377b6429307",
      "new_mode": 33188,
      "new_path": "test/std/strings/basic.string.hash/enabled_hashes.pass.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2e9ebcb4c037ad4fe2c9d48bbdd2c4410d3cbb5a",
      "new_mode": 33188,
      "new_path": "test/std/strings/string.view/string.view.hash/enabled_hashes.pass.cpp"
    },
    {
      "type": "modify",
      "old_id": "63099e2c886477f2817bbca2211269cee43ffde7",
      "old_mode": 33188,
      "old_path": "test/std/strings/string.view/string.view.hash/string_view.pass.cpp",
      "new_id": "d0766482551e1f0d256059a6e0198d0ad9e353fa",
      "new_mode": 33188,
      "new_path": "test/std/strings/string.view/string.view.hash/string_view.pass.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9799467c4529f4c1b38593138c77040f6cf30160",
      "new_mode": 33188,
      "new_path": "test/std/thread/thread.threads/thread.thread.class/thread.thread.id/enabled_hashes.pass.cpp"
    },
    {
      "type": "modify",
      "old_id": "106c69e2e4a1fd9ef63d495a824b9f450447c62b",
      "old_mode": 33188,
      "old_path": "test/std/thread/thread.threads/thread.thread.class/thread.thread.id/thread_id.pass.cpp",
      "new_id": "f7d4deb8f98083855a6d3470e3e50a2c7d3ac0e0",
      "new_mode": 33188,
      "new_path": "test/std/thread/thread.threads/thread.thread.class/thread.thread.id/thread_id.pass.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "775247fc80b68e10086c5709a67a2a4cb0374177",
      "new_mode": 33188,
      "new_path": "test/std/utilities/function.objects/unord.hash/enabled_hashes.pass.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e9237c534fba5de4101566f94e7ac4f0f5116129",
      "new_mode": 33188,
      "new_path": "test/std/utilities/memory/util.smartptr/util.smartptr.hash/enabled_hash.pass.cpp"
    },
    {
      "type": "modify",
      "old_id": "990cb58722b1ccefb60ca324f95792e970ac83f6",
      "old_mode": 33188,
      "old_path": "test/std/utilities/memory/util.smartptr/util.smartptr.hash/hash_shared_ptr.pass.cpp",
      "new_id": "5fba1fc0460ba4ebf640ddc1742b95b398527ddd",
      "new_mode": 33188,
      "new_path": "test/std/utilities/memory/util.smartptr/util.smartptr.hash/hash_shared_ptr.pass.cpp"
    },
    {
      "type": "modify",
      "old_id": "5cd4ab1f83d0eb2cce98461ba328bb1ace3b8444",
      "old_mode": 33188,
      "old_path": "test/std/utilities/memory/util.smartptr/util.smartptr.hash/hash_unique_ptr.pass.cpp",
      "new_id": "f989a017348c320f4becf9aa6be141ca4bab5741",
      "new_mode": 33188,
      "new_path": "test/std/utilities/memory/util.smartptr/util.smartptr.hash/hash_unique_ptr.pass.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e54a4ced84118190f1bf4913c407ca6fba9a291c",
      "new_mode": 33188,
      "new_path": "test/std/utilities/optional/optional.hash/enabled_hash.pass.cpp"
    },
    {
      "type": "modify",
      "old_id": "dfdd07ddf452e30ececcdce7a25fe965e6ed5ea5",
      "old_mode": 33188,
      "old_path": "test/std/utilities/optional/optional.hash/hash.pass.cpp",
      "new_id": "ea89dc3bd9278a50cc4b601feece8d14e11c1037",
      "new_mode": 33188,
      "new_path": "test/std/utilities/optional/optional.hash/hash.pass.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1d8bff41ae5311571343c2ad80ad61bc701f6dab",
      "new_mode": 33188,
      "new_path": "test/std/utilities/template.bitset/bitset.hash/enabled_hash.pass.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "26bada38fdd55ac2268070dd910117f30800d447",
      "new_mode": 33188,
      "new_path": "test/std/utilities/type.index/type.index.hash/enabled_hash.pass.cpp"
    },
    {
      "type": "modify",
      "old_id": "6d353f1d30574d9c2ee1db5a92825bc709c81ae3",
      "old_mode": 33188,
      "old_path": "test/std/utilities/type.index/type.index.synopsis/hash_type_index.pass.cpp",
      "new_id": "0fe020bf3d47db879df4f02c6f14d7c087a38fc7",
      "new_mode": 33188,
      "new_path": "test/std/utilities/type.index/type.index.synopsis/hash_type_index.pass.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "826dcbae6b9f4aa48a2de9c406fc79fb7bfe6987",
      "new_mode": 33188,
      "new_path": "test/std/utilities/variant/variant.hash/enabled_hash.pass.cpp"
    },
    {
      "type": "modify",
      "old_id": "d807a7c7e2eafc1a26d04a5a1aead817b5fbdd0f",
      "old_mode": 33188,
      "old_path": "test/std/utilities/variant/variant.hash/hash.pass.cpp",
      "new_id": "96ef967f6c1f6b95c0908ea62f95e5dc768bda36",
      "new_mode": 33188,
      "new_path": "test/std/utilities/variant/variant.hash/hash.pass.cpp"
    },
    {
      "type": "modify",
      "old_id": "c8b382023529a1046a76e79588c496bb3abaf67f",
      "old_mode": 33188,
      "old_path": "test/support/deleter_types.h",
      "new_id": "f7cdb624e4f5ef0990703411cd8a1655219c2f77",
      "new_mode": 33188,
      "new_path": "test/support/deleter_types.h"
    },
    {
      "type": "modify",
      "old_id": "d518e4a6d77cb893c368a85465eea0b7043eb328",
      "old_mode": 33188,
      "old_path": "test/support/min_allocator.h",
      "new_id": "a3af9e1db66d01e23bd6cd836cb4993cc2318a92",
      "new_mode": 33188,
      "new_path": "test/support/min_allocator.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0a5675a2c5a99509a1dfe9bd1f0eb75bb661941a",
      "new_mode": 33188,
      "new_path": "test/support/poisoned_hash_helper.hpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "4dffae6dbdfe72279d633dd2e0deda1b0ad9093a",
      "new_mode": 33188,
      "new_path": "test/support/test.support/test_poisoned_hash_helper.pass.cpp"
    },
    {
      "type": "modify",
      "old_id": "88cf153dda3a68075def213c7104e084f7e2bb0f",
      "old_mode": 33188,
      "old_path": "www/cxx1z_status.html",
      "new_id": "324f21dd8b650bc6bc15e0f1f4085cd6db744492",
      "new_mode": 33188,
      "new_path": "www/cxx1z_status.html"
    }
  ]
}
