)]}'
{
  "commit": "a0b3d071c729aa8b3523bda505d0ef127437bc34",
  "tree": "1894c96cc5299fa61519ae10a53004eb6b8f7f66",
  "parents": [
    "5e6d81b63b4cf0c976608ed6b9d688e730f5c393"
  ],
  "author": {
    "name": "Richard Smith",
    "email": "richard-llvm@metafoo.co.uk",
    "time": "Fri Jul 27 04:22:15 2012 +0000"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Wed Sep 16 23:16:25 2020 -0700"
  },
  "message": "Final piece of core issue 1330: delay computing the exception specification of\na defaulted special member function until the exception specification is needed\n(using the same criteria used for the delayed instantiation of exception\nspecifications for function temploids).\n\nEST_Delayed is now EST_Unevaluated (using 1330\u0027s terminology), and, like\nEST_Uninstantiated, carries a pointer to the FunctionDecl which will be used to\nresolve the exception specification.\n\nThis is enabled for all C++ modes: it\u0027s a little faster in the case where the\nexception specification isn\u0027t used, allows our C++11-in-C++98 extensions to\nwork, and is still correct for C++98, since in that mode the computation of the\nexception specification can\u0027t fail.\n\nThe diagnostics here aren\u0027t great (in particular, we should include implicit\nevaluation of exception specifications for defaulted special members in the\ntemplate instantiation backtraces), but they\u0027re not much worse than before.\n\nOur approach to the problem of cycles between in-class initializers and the\nexception specification for a defaulted default constructor is modified a\nlittle by this change -- we now reject any odr-use of a defaulted default\nconstructor if that constructor uses an in-class initializer and the use is in\nan in-class initialzer which is declared lexically earlier. This is a closer\napproximation to the current draft solution in core issue 1351, but isn\u0027t an\nexact match (but the current draft wording isn\u0027t reasonable, so that\u0027s to be\nexpected).\n\nllvm-svn: 160847\nGitOrigin-RevId: d3b5c9086567a2868d01830394ff2c8db58f8841\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "fbb3a582ca82aa93f8b294625cb887be54975f45",
      "old_mode": 33188,
      "old_path": "include/clang/AST/Type.h",
      "new_id": "bf30777922116b5d7110fd124ab1136f73912ec6",
      "new_mode": 33188,
      "new_path": "include/clang/AST/Type.h"
    },
    {
      "type": "modify",
      "old_id": "6a4e7d8c9bb94f78beade0a3596edf351b596ba8",
      "old_mode": 33188,
      "old_path": "include/clang/Basic/DiagnosticSemaKinds.td",
      "new_id": "eb8fcbba3e10cd0a618cd727dcd50daf34ecf319",
      "new_mode": 33188,
      "new_path": "include/clang/Basic/DiagnosticSemaKinds.td"
    },
    {
      "type": "modify",
      "old_id": "6be5053b1bcffa00c08e934faefec3820666dee5",
      "old_mode": 33188,
      "old_path": "include/clang/Basic/ExceptionSpecificationType.h",
      "new_id": "edd89ec709d7a4e9175656a58ed0e4be9f6b01bf",
      "new_mode": 33188,
      "new_path": "include/clang/Basic/ExceptionSpecificationType.h"
    },
    {
      "type": "modify",
      "old_id": "7999748b0f9a1045b3489e0f3a88ccf5b1bd1cc0",
      "old_mode": 33188,
      "old_path": "include/clang/Sema/DeclSpec.h",
      "new_id": "00d42a814a75d960ffc42ae7d9482ae831e51db9",
      "new_mode": 33188,
      "new_path": "include/clang/Sema/DeclSpec.h"
    },
    {
      "type": "modify",
      "old_id": "e5b3b5a012c84140e89599faf804462d563bdd05",
      "old_mode": 33188,
      "old_path": "include/clang/Sema/Sema.h",
      "new_id": "9675e08e4a6494936a199ef8c1b48b8ab51497d5",
      "new_mode": 33188,
      "new_path": "include/clang/Sema/Sema.h"
    },
    {
      "type": "modify",
      "old_id": "2e13d0cc445485a64f76c0c54e18320ddb1d79a6",
      "old_mode": 33188,
      "old_path": "lib/AST/ASTContext.cpp",
      "new_id": "5b57ce45577e0b48931163bc0c65178234e8e683",
      "new_mode": 33188,
      "new_path": "lib/AST/ASTContext.cpp"
    },
    {
      "type": "modify",
      "old_id": "eacf505442cc327b59cf46383013eb2477e0e38c",
      "old_mode": 33188,
      "old_path": "lib/AST/Type.cpp",
      "new_id": "abefae44b2ba462eba8156f638eddda421a235fe",
      "new_mode": 33188,
      "new_path": "lib/AST/Type.cpp"
    },
    {
      "type": "modify",
      "old_id": "128452759540dd93ee90fd63a30cf0062e285a22",
      "old_mode": 33188,
      "old_path": "lib/Analysis/CFG.cpp",
      "new_id": "05c53850f56873ba42c965dbc3bb398513f721f3",
      "new_mode": 33188,
      "new_path": "lib/Analysis/CFG.cpp"
    },
    {
      "type": "modify",
      "old_id": "7233fc7c13e352044d5394a5a1365fca34d71e9a",
      "old_mode": 33188,
      "old_path": "lib/Sema/SemaDecl.cpp",
      "new_id": "81b94a4ecdd35a65ab4796cadfdd8dc0fd2b18a6",
      "new_mode": 33188,
      "new_path": "lib/Sema/SemaDecl.cpp"
    },
    {
      "type": "modify",
      "old_id": "1480c2ef98d27af950d6a43ae7c94a73e9e20d5e",
      "old_mode": 33188,
      "old_path": "lib/Sema/SemaDeclCXX.cpp",
      "new_id": "9c4272de0c578f170d640a66ec9b62fc08bf6585",
      "new_mode": 33188,
      "new_path": "lib/Sema/SemaDeclCXX.cpp"
    },
    {
      "type": "modify",
      "old_id": "f88ead56f449af575512369f81d7d428f7a2b7fd",
      "old_mode": 33188,
      "old_path": "lib/Sema/SemaExceptionSpec.cpp",
      "new_id": "63bfa9dc2d9f8106726403b539319bda33e81097",
      "new_mode": 33188,
      "new_path": "lib/Sema/SemaExceptionSpec.cpp"
    },
    {
      "type": "modify",
      "old_id": "9b5f003dae90b37484a437b686fa0ad97ba5c520",
      "old_mode": 33188,
      "old_path": "lib/Sema/SemaExpr.cpp",
      "new_id": "19259b30ec95fe192a61dc010a488a6004f65c32",
      "new_mode": 33188,
      "new_path": "lib/Sema/SemaExpr.cpp"
    },
    {
      "type": "modify",
      "old_id": "ec4bf8221f9679bc546e86011a4ae982175ae24a",
      "old_mode": 33188,
      "old_path": "lib/Sema/SemaExprCXX.cpp",
      "new_id": "278549b4b7d6bc608e5db2c3fb31111e5f47d584",
      "new_mode": 33188,
      "new_path": "lib/Sema/SemaExprCXX.cpp"
    },
    {
      "type": "modify",
      "old_id": "082b2e847fe7f19e4ab7ff88dbb3ebc8c94161b7",
      "old_mode": 33188,
      "old_path": "lib/Sema/SemaTemplateInstantiate.cpp",
      "new_id": "102ec993ef37c428d19d6f5756b13cf443721c27",
      "new_mode": 33188,
      "new_path": "lib/Sema/SemaTemplateInstantiate.cpp"
    },
    {
      "type": "modify",
      "old_id": "aeda9755656f360a15181f97935e71657e274cd3",
      "old_mode": 33188,
      "old_path": "lib/Sema/SemaTemplateInstantiateDecl.cpp",
      "new_id": "15ddd7df98e454e2e994dba6fff1c7b904ea79c5",
      "new_mode": 33188,
      "new_path": "lib/Sema/SemaTemplateInstantiateDecl.cpp"
    },
    {
      "type": "modify",
      "old_id": "4073e32c2c16154381a8b7d6c959e252437f2412",
      "old_mode": 33188,
      "old_path": "lib/Serialization/ASTReader.cpp",
      "new_id": "beef338174f29d65cd38f45f742d8558f2b80c11",
      "new_mode": 33188,
      "new_path": "lib/Serialization/ASTReader.cpp"
    },
    {
      "type": "modify",
      "old_id": "6a6863f17bf076325d2df742e6a4d1d4168daa36",
      "old_mode": 33188,
      "old_path": "lib/Serialization/ASTWriter.cpp",
      "new_id": "b7718c4655b4691a21a4dd2ca03569c3252342db",
      "new_mode": 33188,
      "new_path": "lib/Serialization/ASTWriter.cpp"
    },
    {
      "type": "modify",
      "old_id": "15efb48477d4c49d8d7ba1979cc10caffe004390",
      "old_mode": 33188,
      "old_path": "test/CXX/dcl.decl/dcl.meaning/dcl.fct/dcl.fct.def.default/p1.cpp",
      "new_id": "21f71f05419cd03be740ea5d74e401b18d7b7a04",
      "new_mode": 33188,
      "new_path": "test/CXX/dcl.decl/dcl.meaning/dcl.fct/dcl.fct.def.default/p1.cpp"
    },
    {
      "type": "delete",
      "old_id": "21723942571f40d747831b48afcdb2fb2f44ba9a",
      "old_mode": 33188,
      "old_path": "test/CodeGenCXX/member-init-ctor.cpp",
      "new_id": "0000000000000000000000000000000000000000",
      "new_mode": 0,
      "new_path": "/dev/null"
    },
    {
      "type": "modify",
      "old_id": "595d428806f7f7745ca1b472c57e42cd282b7043",
      "old_mode": 33188,
      "old_path": "test/SemaCXX/cxx0x-defaulted-functions.cpp",
      "new_id": "61c4c3338c05d9a971c86a0753ced1cae05447f2",
      "new_mode": 33188,
      "new_path": "test/SemaCXX/cxx0x-defaulted-functions.cpp"
    },
    {
      "type": "modify",
      "old_id": "25316f8d51ee5bb3fb9f50d23beeedc5c7310080",
      "old_mode": 33188,
      "old_path": "test/SemaCXX/implicit-exception-spec.cpp",
      "new_id": "b29cff5c5d12bd7b47388558df12f6e49f369e84",
      "new_mode": 33188,
      "new_path": "test/SemaCXX/implicit-exception-spec.cpp"
    },
    {
      "type": "modify",
      "old_id": "3ca41a05633ed78d2d4a0a42227fcadb195a4fd0",
      "old_mode": 33188,
      "old_path": "test/SemaCXX/member-init.cpp",
      "new_id": "a13941fce5d8e887c3862b38f9a48625b5a22b84",
      "new_mode": 33188,
      "new_path": "test/SemaCXX/member-init.cpp"
    },
    {
      "type": "modify",
      "old_id": "63286e6e13c03dbcad1e7ce6984ae8622901605a",
      "old_mode": 33188,
      "old_path": "test/SemaCXX/type-traits.cpp",
      "new_id": "bf590f9c72bb31f7745f3a3196e2700f514e1626",
      "new_mode": 33188,
      "new_path": "test/SemaCXX/type-traits.cpp"
    },
    {
      "type": "modify",
      "old_id": "8e1b80368d18d18721051ac2ef159c83792ef7e7",
      "old_mode": 33188,
      "old_path": "test/SemaTemplate/instantiation-depth.cpp",
      "new_id": "c0b8bb2a124553c8d2795f71014c9b9a9ee5236b",
      "new_mode": 33188,
      "new_path": "test/SemaTemplate/instantiation-depth.cpp"
    }
  ]
}
