)]}'
{
  "log": [
    {
      "commit": "483f071ff4780a8884f32d97d2d262fbe9f1ae18",
      "tree": "ad2f2d3827497b71c4675ff2ed9a637289a291e2",
      "parents": [
        "2ce528fb5e0f92e57c97ec3ff53b75359d33af12"
      ],
      "author": {
        "name": "Jason Simmons",
        "email": "jsimmons@google.com",
        "time": "Thu Sep 01 18:12:04 2022 +0000"
      },
      "committer": {
        "name": "Jason Simmons",
        "email": "jsimmons@google.com",
        "time": "Thu Sep 01 18:12:04 2022 +0000"
      },
      "message": "Export ___gxx_personality_v0 as a weak symbol on iOS\n\nThis is apparently required by the latest Clang toolchain in order to do a\nbitcode build of the engine with LTO enabled.\n\nSee https://github.com/flutter/flutter/issues/110140\n\nChange-Id: I6eec2e741e5a9a67aece176aab365303b5425827\nReviewed-on: https://flutter-review.googlesource.com/c/third_party/libcxxabi/+/33360\nReviewed-by: Zach Anderson \u003czra@google.com\u003e\n"
    },
    {
      "commit": "2ce528fb5e0f92e57c97ec3ff53b75359d33af12",
      "tree": "f2acab9be8c2a16316666ccbd8abdb140dff793d",
      "parents": [
        "d9207841e5750263821a63296131e716d096a378"
      ],
      "author": {
        "name": "Muiez Ahmed",
        "email": "muiez@ibm.com",
        "time": "Tue Jun 28 20:59:49 2022 +0300"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Jun 28 11:06:09 2022 -0700"
      },
      "message": "[SystemZ][z/OS] Modify cxxabi to be compatible with existing z/OS runtime\n\nThis patch is to enable exception handling on the z/OS platform that is compatible with the existing z/OS runtime. No functionality of libcxxabi has been changed for other platforms. With this patch the hope is we can add z/OS as a platform to perform testing on any C++ ABI changes.\n\nThere is a primary difference for the z/OS implementation. On z/OS the thrown object is added to a linked list of caught and uncaught exceptions. The unwinder uses the top one as the current exception it is trying to find the landing pad for. We have to pop the top exception after we get it’s landing pad for our unwinder to correctly get any subsequent rethrows or nested exception calls.\n\nDifferential Revision: https://reviews.llvm.org/D99913\n\nGitOrigin-RevId: 85593e7bb5a8bfde80aaf4eb4e15f982aebe2282\n"
    },
    {
      "commit": "d9207841e5750263821a63296131e716d096a378",
      "tree": "6b873fe9ea859a4ea67db1774bb76aad27b44d2a",
      "parents": [
        "3d113c9f0690411914864c2f9393cc352b451cc9"
      ],
      "author": {
        "name": "Xing Xue",
        "email": "xingxue@outlook.com",
        "time": "Tue Jun 21 16:18:17 2022 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Jun 21 19:27:59 2022 -0700"
      },
      "message": "[libc++abi][AIX] Use _LIBCXXABI_FUNC_VIS for exported routines\n\nSummary:\nThis patch adds _LIBCXXABI_FUNC_VIS to the definitions of the personality and helper routines for the state table based EH, now that the support of the visibility attribute is being added to AIX Clang. Currently an export list is generated in the absence of the visibility attribute support downstream.\n\nReviewed by: MaskRay, daltenty\n\nDifferential Revision: https://reviews.llvm.org/D126915\n\nGitOrigin-RevId: 8da20096080ba0c4bc9738fa78fcd2140d0bc7cc\n"
    },
    {
      "commit": "3d113c9f0690411914864c2f9393cc352b451cc9",
      "tree": "276425934b1cb5a9e0d5bc1add418a574698ea7b",
      "parents": [
        "d6e1313f1d4a6fa203e74656868dfb88e4e449c9"
      ],
      "author": {
        "name": "Mark de Wever",
        "email": "koraq@xs4all.nl",
        "time": "Mon May 30 18:38:27 2022 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Jun 21 10:01:13 2022 -0700"
      },
      "message": "[libc++][CI] Updates GCC to version 12.\n\nReviewed By: ldionne, philnik, #libc, #libc_abi\n\nDifferential Revision: https://reviews.llvm.org/D126667\n\nGitOrigin-RevId: eb12ad9d7ff64398add1a9cc84e56cc20aed09f8\n"
    },
    {
      "commit": "d6e1313f1d4a6fa203e74656868dfb88e4e449c9",
      "tree": "885dd7d877d78c84f41dc9349dea1356ab0cda20",
      "parents": [
        "78bd3e6515fc742fb3648d45d139ac344cd95b75"
      ],
      "author": {
        "name": "owenca",
        "email": "owenpiano@gmail.com",
        "time": "Wed Jun 15 01:29:51 2022 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jun 15 01:35:43 2022 -0700"
      },
      "message": "[libcxx] Remove extraneous \u0027---\u0027 lines in .clang-format files\n\nGitOrigin-RevId: 462b49f18c6c065e1a0f46ee22cf01b205a24981\n"
    },
    {
      "commit": "78bd3e6515fc742fb3648d45d139ac344cd95b75",
      "tree": "2227046e3ac1368ef4059ace4a1f700c89a90807",
      "parents": [
        "e8a7517cf39e24c8327a4f0e8559d9aec073cb5b"
      ],
      "author": {
        "name": "Jake Egan",
        "email": "jakeegan10@gmail.com",
        "time": "Mon Jun 13 21:44:58 2022 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jun 13 18:51:07 2022 -0700"
      },
      "message": "[libcxx][AIX] Switch build compiler to clang\n\nThis patch switches the build compiler for AIX from ibm-clang to clang. ibm-clang++_r has `-pthread` by default, but clang for AIX doesn\u0027t, so `-pthread` had to be added to the test config. A bunch of tests now pass, so the `XFAIL` was removed. This patch also switch the build to use the visibility support available in clang-15 to control symbols exported by the shared library (AIX traditionally uses explicit export lists for this purpose).\n\nReviewed By: #libc, #libc_abi, daltenty, #libunwind, ldionne\n\nDifferential Revision: https://reviews.llvm.org/D127470\n\nGitOrigin-RevId: 1cf4113952ae3e4cc75decdf6feb3ce5dd8ca4a1\n"
    },
    {
      "commit": "e8a7517cf39e24c8327a4f0e8559d9aec073cb5b",
      "tree": "6d54f62d39cf126c01a76f8115b60328b5f80f7e",
      "parents": [
        "e5ac812511e07c482e073fc2130641e6c9da0258"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Tue Jun 08 17:25:08 2021 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jun 08 19:11:05 2022 -0700"
      },
      "message": "[libc++] Towards a simpler extern template story in libc++\n\nThe flexibility around extern template instantiation declarations in\nlibc++ result in a very complicated model, especially when support for\nslightly different configurations (like the debug mode or assertions\nin the dylib) are taken into account. That results in unexpected bugs\nlike http://llvm.org/PR50534 (and there have been multiple similar\nbugs in the past, notably around the debug mode).\n\nThis patch gets rid of the _LIBCPP_DISABLE_EXTERN_TEMPLATE knob, which\nI don\u0027t think is fundamental. Indeed, the motivation for that knob was to\navoid taking a dependency on the library, however that can be done better\nby linking against the static library instead. And in fact, some parts of\nthe headers will always depend on things defined in the library, which\ndefeats the original goal of _LIBCPP_DISABLE_EXTERN_TEMPLATE.\n\nDifferential Revision: https://reviews.llvm.org/D103960\n\nGitOrigin-RevId: 2ae52326dab0a771b6167bc61a858389ac609ccc\n"
    },
    {
      "commit": "e5ac812511e07c482e073fc2130641e6c9da0258",
      "tree": "22ecec387e3d0f559d679873d1224f0c7ecf7130",
      "parents": [
        "e8d7667d37421f50d61e3a4e30199b1a0b86db6c"
      ],
      "author": {
        "name": "Martin Storsjö",
        "email": "martin@martin.st",
        "time": "Sat May 07 00:37:40 2022 +0300"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jun 06 13:20:51 2022 -0700"
      },
      "message": "[libcxxabi] Check __SEH__, when checking if ARM EHABI is implied\n\nARM EHABI isn\u0027t signalled by any specific compiler builtin define,\nbut is implied by the lack of defines specifying any other\nexception handling mechanism, `__USING_SJLJ_EXCEPTIONS__` or\n`__ARM_DWARF_EH__`.\n\nAs Windows SEH also can be used for unwinding, check for the\n`__SEH__` define too, in the same way.\n\nDifferential Revision: https://reviews.llvm.org/D126866\n\nGitOrigin-RevId: 4a3722a2c3dff1fe885cc38bf43d3c095c9851e7\n"
    },
    {
      "commit": "e8d7667d37421f50d61e3a4e30199b1a0b86db6c",
      "tree": "26dabd25a32d481a14159eb6bc8311b911896651",
      "parents": [
        "96e8eeb75f178f4cf7a315d4ed50ed8466edd28b"
      ],
      "author": {
        "name": "Xing Xue",
        "email": "xingxue@outlook.com",
        "time": "Tue May 31 09:21:34 2022 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue May 31 06:25:57 2022 -0700"
      },
      "message": "[libc++abi][AIX] add personality and helper functions for the state table EH\n\nSummary:\nThis patch adds the personality and helper functions for the state table based EH used by IBM legacy compilers xlC and xlclang++ on AIX.\n\n * A high level description of the state table based EH is provided in the code comments.\n\n * Function scan_state_tab() is added to scan the state table. It is invoked by the state table personality routine __xlcxx_personality_v0() and returns scan_results like scan_eh_tab() does.\n\n * A couple of EH helper functions used by xlC and xlclang++ generated code are also added, e.g., __xlc_catch_matchv2() which checks whether the thrown object matches the catch handler\u0027s exception type.\n\n * Debugging macros _LIBCXXABI_TRACE_STATETAB, _LIBCXXABI_TRACE_STATETAB0, and _LIBCXXABI_TRACING_STATETAB are added to dump state table scanning traces if environment variable LIBCXXABI_PRINT_STATTAB is set.\n\n * The state variable and state table data is the LSDA found from the traceback table of the function during unwinding.\n\nReviewed by: MaskRay, cebowleratibm, libc++abi\n\nDifferential Revision: https://reviews.llvm.org/D100504\n\nGitOrigin-RevId: b8f5732634feaf7a9ce37d33f97f1fb490efeddd\n"
    },
    {
      "commit": "96e8eeb75f178f4cf7a315d4ed50ed8466edd28b",
      "tree": "20cd06d095afde5b29b9f3990ffc4f5c2eeadba1",
      "parents": [
        "fc284cc0d0a65f13b2ee49f05204732e86c655b1"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Thu May 26 11:49:47 2022 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri May 27 12:28:45 2022 -0700"
      },
      "message": "[runtimes] Rename various libcpp-has-no-XYZ Lit features to just no-XYZ\n\nSince those features are general properties of the environment, it makes\nsense to use them from libc++abi too, and so the name libcpp-has-no-xxx\ndoesn\u0027t make sense.\n\nDifferential Revision: https://reviews.llvm.org/D126482\n\nGitOrigin-RevId: a7f9895cc18995549c7facb96e72718da282a864\n"
    },
    {
      "commit": "fc284cc0d0a65f13b2ee49f05204732e86c655b1",
      "tree": "b650172231f7b20cb2017af4ce62ce03d04e8f00",
      "parents": [
        "6592eafa8f26e0cb705fdb84f355ea317bfe94cf"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Thu May 26 11:12:45 2022 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri May 27 10:22:27 2022 -0700"
      },
      "message": "[runtimes] Officially deprecate the legacy testing configuration system\n\nAdd a warning and tweak the release note to explain that the deprecation\ntargets libc++, libc++abi and libuwnind as well.\n\nAlso, as a fly-by, ensure that our CI runs the legacy testing configuration\nfor libc++, libc++abi and libunwind. This doesn\u0027t matter too much since\nit\u0027s deprecated, but we might as well test it properly.\n\nDifferential Revision: https://reviews.llvm.org/D126478\n\nGitOrigin-RevId: 719bf2d9d9fdb8792b15d93364c9c6b2ddd68a36\n"
    },
    {
      "commit": "6592eafa8f26e0cb705fdb84f355ea317bfe94cf",
      "tree": "a1cfcdff4fa30502e4b64b6ea56c946f32c778d8",
      "parents": [
        "2737401956ed92b97b91392f3771aa5d411f7eea"
      ],
      "author": {
        "name": "Piggy NL",
        "email": "piggynl@outlook.com",
        "time": "Thu May 26 22:59:49 2022 +0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu May 26 22:56:43 2022 -0700"
      },
      "message": "[demangler][RISCV] Fix for long double\n\nSummary:\nThe size of long double in RISCV (both RV32 and RV64) is 16 bytes, thus\nthe mangled_size shouble be 32.\n\nThis patch will fix test case\n\"_ZN5test01hIfEEvRAcvjplstT_Le4001a000000000000000E_c\"\nin test_demangle.pass.cpp, which is expected to be invalid but demangler\nreturned \"void test0::h\u003cfloat\u003e(char (\u0026) [(unsigned int)((sizeof (float))\n+ (0x0.000000004001ap-16382L))])\" in RISCV environment without this patch.\n\nReviewed By: urnathan\n\nDifferential Revision: https://reviews.llvm.org/D126480\n\nGitOrigin-RevId: 842e48bd65770f0368ee0d1ca7ee34dbd8f0ff03\n"
    },
    {
      "commit": "2737401956ed92b97b91392f3771aa5d411f7eea",
      "tree": "0aad69a9a9337c35cc000c131e87a6ac685c2495",
      "parents": [
        "c33afff3e56d450b1921e0740337b21e8ed510c1"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Mon May 09 11:54:10 2022 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu May 26 06:11:05 2022 -0700"
      },
      "message": "[libc++abi] Use from-scratch testing configs for libc++abi by default\n\nLike we have been doing for libc++ for a while now, start using\nfrom-scratch testing configurations for libc++abi.\n\nAs a fly-by fix, remove the LIBCXXABI_NO_TIMER macro, which was defined\nbut never used.\n\nDifferential Revision: https://reviews.llvm.org/D125242\n\nGitOrigin-RevId: 851bfc07c86e7f84ee38d918cb4b6b49a47434f1\n"
    },
    {
      "commit": "c33afff3e56d450b1921e0740337b21e8ed510c1",
      "tree": "200c97035d36e7a89160f228fe33194511d7782a",
      "parents": [
        "6c10d7d910e948528729c3a040921ba00b30a3ad"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Fri May 20 09:35:44 2022 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri May 20 06:41:01 2022 -0700"
      },
      "message": "[libc++abi] Add missing XFAIL on test\n\nGitOrigin-RevId: e3f990b4e997a10aa3112ee8dff786e46ae9e12f\n"
    },
    {
      "commit": "6c10d7d910e948528729c3a040921ba00b30a3ad",
      "tree": "12530f3cb67e6543d934967d8e4aecdf38ddf7d4",
      "parents": [
        "9f1d51209cb03024c7b90ee240645772bbb11019"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Wed May 18 12:05:45 2022 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu May 19 07:50:48 2022 -0700"
      },
      "message": "[runtimes] Fix the build of merged ABI/unwinder libraries\n\nAlso, add a CI job that tests this configuration. The exact configuration\nis that we build a shared libc++ and merge objects for the ABI library\nand the unwinder library into it.\n\nDifferential Revision: https://reviews.llvm.org/D125903\n\nGitOrigin-RevId: fa7ce8e685faa63f7ad1d0c7a640217286ec291b\n"
    },
    {
      "commit": "9f1d51209cb03024c7b90ee240645772bbb11019",
      "tree": "e7f2487dbc15cb362441bb6f5531f95df8c95d4b",
      "parents": [
        "c522bc4da70a3a38893292511d85440abeff5b29"
      ],
      "author": {
        "name": "Martin Storsjö",
        "email": "martin@martin.st",
        "time": "Sat Apr 09 23:40:07 2022 +0300"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed May 18 10:40:37 2022 -0700"
      },
      "message": "[runtimes] Default LIB*_HERMETIC_STATIC_LIBRARY to ON on Windows\n\n(In the case of libunwind, the cmake option is called\nLIBUNWIND_HIDE_SYMBOLS, but it has the same effect as\nLIBCXX_HERMETIC_STATIC_LIBRARY and\nLIBCXXABI_HERMETIC_STATIC_LIBRARY.)\n\nPreviously, the same issue was dealt with by setting a project wide\ndefine (_LIBUNWIND_HIDE_SYMBOLS,\n_LIBCXXABI_DISABLE_VISIBILITY_ANNOTATIONS and\n_LIBCPP_DISABLE_VISIBILITY_ANNOTATIONS) if only building a static\nlibrary.  If building both static and shared at the same time, this\nwasn\u0027t set, and the static library would contain dllexport directives.\n\nThe LIB*_HERMETIC_STATIC_LIBRARY and LIBUNWIND_HIDE_SYMBOLS cmake\noptions only apply the defines to the static library in the build,\neven if building both static and shared at the same time.\n\n(This could only be done use after the object libraries were\nenabled, as a shared libcxx needs libcxxabi object files built\nwith dllexports included.)\n\nThis allows removing inelegant code for deciding how to build the\nlibcxxabi static library and a TODO comment that suggested that\nusers should need to start setting an option, which they shouldn\u0027t\nneed to. Finally, this gets rid of two XFAILs in tests.\n\nDifferential Revision: https://reviews.llvm.org/D125715\n\nGitOrigin-RevId: bedf657d0f4c54ffe9ef4303382657a74296b544\n"
    },
    {
      "commit": "c522bc4da70a3a38893292511d85440abeff5b29",
      "tree": "05ee7c71ade258057f509ecc34386fe9b214eb8c",
      "parents": [
        "aaea5e4f4bd8f1662ada83622310f7324301ce82"
      ],
      "author": {
        "name": "Daniel Kiss",
        "email": "daniel.kiss@arm.com",
        "time": "Fri May 13 09:12:07 2022 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed May 18 09:06:17 2022 -0700"
      },
      "message": "[libunwind][AArch64] Add support for DWARF expression for RA_SIGN_STATE.\n\nProgram may set the RA_SIGN_STATE pseudo register by expressions.\nLibunwind expected only the DW_CFA_AARCH64_negate_ra_state could change the value\nof the register which leads to runtime errors on PAC enabled systems.\nIn the recent version of the aadwarf64[1] a limitation is added[2] to forbid the mixing the\nDW_CFA_AARCH64_negate_ra_state with other DWARF Register Rule Instructions.\n\n[1] https://github.com/ARM-software/abi-aa/releases/tag/2022Q1\n[2] https://github.com/ARM-software/abi-aa/pull/129\n\nReviewed By: #libunwind, MaskRay\n\nDifferential Revision: https://reviews.llvm.org/D123692\nReland: test moved because it depends on exceptions.\nGitOrigin-RevId: c218fd3d7d3764eb123c8429bbcd33bacfe2e633\n"
    },
    {
      "commit": "aaea5e4f4bd8f1662ada83622310f7324301ce82",
      "tree": "bd342348a9258956229a0c3ef852ffc23d56b538",
      "parents": [
        "e986481ba99415c023d944ed43b1aae3e0fd3c77"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Wed May 11 11:06:28 2022 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon May 16 05:45:42 2022 -0700"
      },
      "message": "[runtimes] Introduce object libraries\n\nThis is a variant of D116689 rebased on top of the new (proposed) ABI\nrefactoring in D120727. It should conserve the basic properties of the\noriginal patch by @phosek, except it also allows cleaning up the merging\nof libc++abi into libc++ from the libc++ side.\n\nDifferential Revision: https://reviews.llvm.org/D125393\n\nGitOrigin-RevId: aa656f6c2dec73faceeed21e15401d8f0c743c8b\n"
    },
    {
      "commit": "e986481ba99415c023d944ed43b1aae3e0fd3c77",
      "tree": "3458fa305212bd16705761f12eeec9163f17f946",
      "parents": [
        "cab721b797f85828ca42db69fe1a8c87aa3264c3"
      ],
      "author": {
        "name": "Petr Hosek",
        "email": "phosek@google.com",
        "time": "Sat May 14 02:23:52 2022 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri May 13 21:15:56 2022 -0700"
      },
      "message": "[libcxxabi] Copy headers into build location\n\nPrior to D120727, the libcxx build was responsible for copying libcxxabi\nheaders into the right location, both in the build and install trees,\nbut now it\u0027s the responsibility of the libcxxabi build. While the build\nalready did the right thing for the install tree, it wouldn\u0027t copy\nheaders into the build tree, resulting in errors when trying to use the\njust built toolchain as is the case in the runtimes build when building\ncompiler-rt runtimes.\n\nDifferential Revision: https://reviews.llvm.org/D125597\n\nGitOrigin-RevId: 6f5f847a36af2f2e9dfce4ed99f1a243161c7d5d\n"
    },
    {
      "commit": "cab721b797f85828ca42db69fe1a8c87aa3264c3",
      "tree": "d0eee25a78adfe51a60300cbbee61728e2b13097",
      "parents": [
        "857f9957fd18c1831b52408a001ae26a806fcc15"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Fri May 13 12:15:15 2022 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri May 13 11:40:59 2022 -0700"
      },
      "message": "[runtimes][NFC] Remove dead code for Standalone builds\n\nStandalone builds have been deprecated and then removed for a while now.\nTrying to use standalone builds leads to a fatal CMake error, so this\ncode is all dead. Remove it to clean things up.\n\nDifferential Revision: https://reviews.llvm.org/D125561\n\nGitOrigin-RevId: 0a22dfcb11c05cbd4f654c8ef1868a4bc6085140\n"
    },
    {
      "commit": "857f9957fd18c1831b52408a001ae26a806fcc15",
      "tree": "17c60aaad5af716d4f7f2295bec4dd7ca962577b",
      "parents": [
        "9e5113dfa3d1be7464652ff60d3dd9ca0e221a22"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Tue May 10 10:35:49 2022 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri May 13 09:25:47 2022 -0700"
      },
      "message": "[libc++abi][NFCI] Refactor demangling_terminate_handler to reduce nesting\n\nThis keeps the same logic, but uses early return to avoid multiple layers\nof nested ifs and make the code simpler to follow.\n\nDifferential Revision: https://reviews.llvm.org/D125476\n\nGitOrigin-RevId: f21cf11a4c1d4b09f956e50706307fe986f527dc\n"
    },
    {
      "commit": "9e5113dfa3d1be7464652ff60d3dd9ca0e221a22",
      "tree": "b54d93a738006c6ffd206b0e1caee633dcce973f",
      "parents": [
        "cb8c0a0419ca4098d08b12e5d1f491fbf4776d3f"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Tue Mar 01 08:42:13 2022 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri May 13 05:37:04 2022 -0700"
      },
      "message": "[libc++] Overhaul how we select the ABI library\n\nThis patch overhauls how we pick up the ABI library. Instead of setting\nad-hoc flags, it creates interface targets that can be linked against by\nthe rest of the build, which is easier to follow and extend to support\nnew ABI libraries.\n\nThis is intended to be a NFC change, however there are some additional\nsimplifications and improvements we can make in the future that would\nrequire a slight behavior change.\n\nDifferential Revision: https://reviews.llvm.org/D120727\n\nGitOrigin-RevId: a80e65e00ada7a9c16acf17a5fd40b4f12ced3a8\n"
    },
    {
      "commit": "cb8c0a0419ca4098d08b12e5d1f491fbf4776d3f",
      "tree": "fd4c82f7eb3a06fbfb0a4953eaa9b95c58594651",
      "parents": [
        "8613489faa20bd24fb076b1e7f3a6f7a166363ae"
      ],
      "author": {
        "name": "Nathan Sidwell",
        "email": "nathan@acm.org",
        "time": "Mon Mar 28 12:55:45 2022 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri May 13 04:40:36 2022 -0700"
      },
      "message": "[demangler] Avoid special-subst code duplication\n\nWe need to expand special substitutions in four different ways.  This\nrefactors to only have one conversion from enum to string, and derive\nthe other 3 needs off that.\n\nThe SpecialSubstitution node is derived from the\nExpandedSpecialSubstitution.  While this may seem unintuitive, it\nworks out quite well, as SpecialSubstitution can then use the former\u0027s\ngetBaseName and remove an unneeded \u0027basic_\u0027 prefix, for those\nsubstitutions that are instantiations (to known typedef).  Similarly\nall those instantiations use the same set of template arguments (with\n\u0027basic_string\u0027, getting an additional \u0027allocator\u0027 arg).\n\nExpansion tests were added in D123134, and remain unchanged.\n\nReviewed By: MaskRay, dblaikie\n\nDifferential Revision: https://reviews.llvm.org/D125257\n\nGitOrigin-RevId: 562ce15924560d14f7062173cbdc6a9cd778e2eb\n"
    },
    {
      "commit": "8613489faa20bd24fb076b1e7f3a6f7a166363ae",
      "tree": "6122e0f88ca267c27005d99f5ffcaf80023b1a0b",
      "parents": [
        "0829d0661746d2d9cd7637e95b258aed449c9e7c"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Thu May 12 13:26:16 2022 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu May 12 10:31:31 2022 -0700"
      },
      "message": "[libc++abi][NFC] Add comment on long reaching #if\n\nGitOrigin-RevId: 2f21f5b06a490396af10359b32c6313521e526a1\n"
    },
    {
      "commit": "0829d0661746d2d9cd7637e95b258aed449c9e7c",
      "tree": "802db8bf241ab5b201633ffb573862e7702279f7",
      "parents": [
        "ad563568470561c89cfd18127b1b9679142043c4"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Mon May 09 16:41:38 2022 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu May 12 10:21:00 2022 -0700"
      },
      "message": "[libc++abi] Refactor exception type demangling into a separate function\n\nAs a fly-by fix, also let `__cxa_demangle` allocate its buffer alone,\nsince we are not allowed to pass a non-malloc\u0027d buffer to it.\n\nDifferential Revision: https://reviews.llvm.org/D125268\n\nGitOrigin-RevId: 6089fd6c0b1cca4fd16583b25954c132a9b58ebd\n"
    },
    {
      "commit": "ad563568470561c89cfd18127b1b9679142043c4",
      "tree": "e3f1f88eb5112df3cca6957e4e796bead514320c",
      "parents": [
        "003b2e4c621ad61e3775d6bf4f4952baab3d16c8"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Wed May 11 10:16:29 2022 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed May 11 07:20:44 2022 -0700"
      },
      "message": "[runtimes] Print the testing configuration in use in libunwind and libc++abi\n\nWe do it for libc++, and it\u0027s rather useful for debugging e.g. CI.\n\nGitOrigin-RevId: c631e33f316d891b39c1e01217a7422fdc29ced1\n"
    },
    {
      "commit": "003b2e4c621ad61e3775d6bf4f4952baab3d16c8",
      "tree": "3dc4580fbfa9029eedad2cc9c2b23d65af99f444",
      "parents": [
        "f72b815b3032a11023b5bb63d6eca3c895bacf68"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Tue May 10 11:14:59 2022 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue May 10 08:21:01 2022 -0700"
      },
      "message": "[libc++abi][NFC] Fix typo in comment\n\nGitOrigin-RevId: 671afac89dece7d728cd3c6a277faee1c8d1d592\n"
    },
    {
      "commit": "f72b815b3032a11023b5bb63d6eca3c895bacf68",
      "tree": "0355c27aa7c060b35020bdf3f9fa73fc8747fa2c",
      "parents": [
        "c07358918eaa7ecaf2b613f313455ef9529912e2"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Mon May 09 13:31:42 2022 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue May 10 07:01:23 2022 -0700"
      },
      "message": "[libc++abi] Reword uncaught exception termination message\n\nWhen we terminate due to an exception being uncaught, libc++abi prints\na message saying \"terminating with uncaught exception [...]\". This patch\nchanges that to say \"terminating due to uncaught exception [...]\" instead,\nwhich is a bit clearer. Indeed, I\u0027ve seen some people being confused and\nthinking that libc++abi was the component throwing the exception.\n\nDifferential Revision: https://reviews.llvm.org/D125245\n\nGitOrigin-RevId: ead7a5fc04360c1d740214048b15c4d7100dc768\n"
    },
    {
      "commit": "c07358918eaa7ecaf2b613f313455ef9529912e2",
      "tree": "9fc81d94ec18d47bde705c2d5ed204334bcebc7c",
      "parents": [
        "dd6fa08be086cd56fe179a36a74589a3ea23b91d"
      ],
      "author": {
        "name": "Martin Storsjö",
        "email": "martin@martin.st",
        "time": "Tue May 10 10:22:39 2022 +0300"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue May 10 00:31:14 2022 -0700"
      },
      "message": "[libcxxabi] [cmake] Fix a mismatched variable name\n\nThe variable name checked didn\u0027t match the one set on the line above.\n\nThis error was introduced in b3df14b6c98702ce50401fd039852787373e4676.\n\nGitOrigin-RevId: bf1b81d076f89bd56e86189b013f27dcf4d73ae8\n"
    },
    {
      "commit": "dd6fa08be086cd56fe179a36a74589a3ea23b91d",
      "tree": "a202ec8a6bcc96b50d555f6197acf11f9128f6bd",
      "parents": [
        "cc8d7dfa941fda10d93e6f52db1129c09a8d9799"
      ],
      "author": {
        "name": "Nathan Sidwell",
        "email": "nathan@acm.org",
        "time": "Mon Mar 28 12:38:24 2022 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon May 09 06:17:49 2022 -0700"
      },
      "message": "[demangler] No need to space adjacent template closings\n\nWith the demangler parenthesizing \u0027a \u003e\u003e b\u0027 inside template parameters,\nbecause C++11 parsing of \u003e\u003e there, we don\u0027t really need to add spaces\nbetween adjacent template arg closing \u0027\u003e\u0027 chars.  In 2022, that just\nlooks odd.\n\nReviewed By: MaskRay\n\nDifferential Revision: https://reviews.llvm.org/D123134\n\nGitOrigin-RevId: bc150a07f1a14a7923a29499b568d799f7214912\n"
    },
    {
      "commit": "cc8d7dfa941fda10d93e6f52db1129c09a8d9799",
      "tree": "5366921eee525d142fab55e10d3fabfc5c3e9496",
      "parents": [
        "b2a4b9290986653b6111a11d0b1934aa667ab359"
      ],
      "author": {
        "name": "Nathan Sidwell",
        "email": "nathan@acm.org",
        "time": "Mon Mar 28 12:38:48 2022 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon May 09 05:01:15 2022 -0700"
      },
      "message": "[demangler] Buffer peeking needs buffer\n\nThe output buffer has a \u0027back\u0027 member, which returns NUL when you try\nit with an empty buffer.  But there are no use cases that need that\nadditional functionality.  This makes the \u0027back\u0027 member behave more\nlike STL containers\u0027 back members.  (It still returns a value, not a\nreference.)\n\nReviewed By: dblaikie\n\nDifferential Revision: https://reviews.llvm.org/D123201\n\nGitOrigin-RevId: e48cd7088b736dae5cd572ebb58963c70a4a72b8\n"
    },
    {
      "commit": "b2a4b9290986653b6111a11d0b1934aa667ab359",
      "tree": "e729caf6ba7c5986b34224d0073699bd8b9ed4ad",
      "parents": [
        "0aa0bdbb0cc87c9754a2e085b4abc98259dd5534"
      ],
      "author": {
        "name": "Martin Storsjö",
        "email": "martin@martin.st",
        "time": "Wed May 04 15:50:24 2022 +0300"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu May 05 13:45:49 2022 -0700"
      },
      "message": "[libcxxabi] Use the right calling convention for exception destructors on i386 Windows\n\nOn Windows on i386, C++ member functions use a different calling\nconvention (`__thiscall`) than the default one for regular functions\n(`__cdecl`). (On Windows on architectures other than i386, both calling\nconvention attributes are no-ops.)\n\nThis matches how libstdc++ declares these types.\n\nThis fixes the std/thread/futures/futures.{shared,unique}_future/dtor.pass.cpp\ntests on i386 mingw.\n\nDifferential Revision: https://reviews.llvm.org/D124990\n\nGitOrigin-RevId: aeb4907ed658ad5538f8cd569facae5beaab2940\n"
    },
    {
      "commit": "0aa0bdbb0cc87c9754a2e085b4abc98259dd5534",
      "tree": "4b94835e7043df63b55060a9075da1baceb79034",
      "parents": [
        "d669f773772c6187d53cbc1f457f851f31af9464"
      ],
      "author": {
        "name": "Nathan Sidwell",
        "email": "nathan@acm.org",
        "time": "Fri Feb 18 11:06:58 2022 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue May 03 06:49:26 2022 -0700"
      },
      "message": "[demangler] Fold expressions of .* and -\u003e*\n\n(Exitingly) a fold expression\u0027s operators include .* and -\u003e*, but we\nfailed to demangle them as we categorize those as MemberExprs, not\nBinaryExprs.\n\nReviewed By: dblaikie\n\nDifferential Revision: https://reviews.llvm.org/D123305\n\nGitOrigin-RevId: ed2d4da732006d76e2f7b4315a2056b2d7b2f15c\n"
    },
    {
      "commit": "d669f773772c6187d53cbc1f457f851f31af9464",
      "tree": "4dc21b801f6ea06d3faf50b5968d23b3acd7aadd",
      "parents": [
        "a78c52dbc34e2204b9b0bcbc120e3003a090682c"
      ],
      "author": {
        "name": "Daniel Kiss",
        "email": "daniel.kiss@arm.com",
        "time": "Fri Apr 29 09:40:55 2022 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Apr 29 00:50:05 2022 -0700"
      },
      "message": "Disable test for Android/Bionic.\n\nTest depends on pthread_cancel which is not supported on Android.\n\nGitOrigin-RevId: 6830ebb07eb9065dca0215e5ae6b22a24d35a745\n"
    },
    {
      "commit": "a78c52dbc34e2204b9b0bcbc120e3003a090682c",
      "tree": "cdeb30fff2f45e5c8167a59d8864e06531f327a4",
      "parents": [
        "644bc105e01253eac7f40ac2b3f147eace792c30"
      ],
      "author": {
        "name": "Daniel Kiss",
        "email": "daniel.kiss@arm.com",
        "time": "Thu Apr 28 10:01:22 2022 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Apr 28 09:46:02 2022 -0700"
      },
      "message": "[libunwind][AArch64] Fix _Unwind_ForcedUnwind via sigreturn.\n\nWhen the sigreturn trampoline is found the unw_proc_info_t.end_ip need to be set to\nindicate a stack frame is found.\n\nReviewed By: cjdb, #libunwind, MaskRay\n\nDifferential Revision: https://reviews.llvm.org/D124522\n\nGitOrigin-RevId: f326df34bc179e41ea17d31e1ffba4a479e45589\n"
    },
    {
      "commit": "644bc105e01253eac7f40ac2b3f147eace792c30",
      "tree": "4136b8a9cedf2735539c624dd36619c98e5e46eb",
      "parents": [
        "0bbd03f304158a86410bbf0d5228d6af70734c4b"
      ],
      "author": {
        "name": "gbreynoo",
        "email": "Owen.Reynolds@sony.com",
        "time": "Thu Apr 28 15:55:26 2022 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Apr 28 08:01:19 2022 -0700"
      },
      "message": "[demangler] Fix demangling a template argument which happens to be a null pointer\n\nAs seen in https://github.com/llvm/llvm-project/issues/51854\nllvm-cxxfilt was having trouble demangling the case \"_Z1fIDnLDn0EEvv\".\nWe handled the \"LDNE\" case and \"LPi0E\" but not \"LDn0E\". This change adds\nthat handling.\n\nDifferential Revision: https://reviews.llvm.org/D124010\n\nGitOrigin-RevId: 5420834aadbd271b3773f53fbbd58e9437952616\n"
    },
    {
      "commit": "0bbd03f304158a86410bbf0d5228d6af70734c4b",
      "tree": "77ff62430dcd46b5382a49bae9bf578d8c41a70c",
      "parents": [
        "49b596fed3763d72b549eb11cf9d9d0a05ce6318"
      ],
      "author": {
        "name": "Kirill Stoimenov",
        "email": "kstoimenov@google.com",
        "time": "Tue Apr 26 20:24:06 2022 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Apr 26 13:31:04 2022 -0700"
      },
      "message": "Revert \"[demangler] Simplify OutputBuffer initialization\"\n\nReverting due to a bot failure:\nhttps://lab.llvm.org/buildbot/#/builders/5/builds/22738\n\nThis reverts commit 5b3ca24a35e91bf9c19af856e7f92c69b17f989e.\n\nGitOrigin-RevId: aabeb5eb7f0aaa2c80147d904959c882cdeba1e5\n"
    },
    {
      "commit": "49b596fed3763d72b549eb11cf9d9d0a05ce6318",
      "tree": "ce815a6ef213137a315d4a1bee3fcac463ed1b49",
      "parents": [
        "69ab51cce8a8d2b93abe13b93c97ddbbe256adff"
      ],
      "author": {
        "name": "Nathan Sidwell",
        "email": "nathan@acm.org",
        "time": "Mon Feb 28 10:13:44 2022 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Apr 26 04:26:04 2022 -0700"
      },
      "message": "[demangler] Simplify OutputBuffer initialization\n\nEvery non-testcase use of OutputBuffer contains code to allocate an\ninitial buffer (using either 128 or 1024 as initial guesses). There\u0027s\nnow no need to do that, given recent changes to the buffer extension\nheuristics -- it allocates a 1k(ish) buffer on first need.\n\nJust pass in a buffer (if any) to the constructor.  Thus the\nOutputBuffer\u0027s ownership of the buffer starts at its own lifetime\nstart. We can reduce the lifetime of this object in several cases.\n\nThat new constructor takes a \u0027size_t *\u0027 for the size argument, as all\nuses with a non-null buffer are passing through a malloc\u0027d buffer from\ntheir own caller in this manner.\n\nThe buffer reset member function is never used, and is deleted.\n\nThe original buffer initialization code would return a failure code if\nthat first malloc failed.  Existing code either ignored that, called\nstd::terminate with a FIXME, or returned an error code.\n\nBut that\u0027s not foolproof anyway, as a subsequent buffer extension\nfailure ends up calling std::terminate. I am working on addressing\nthat unfortunate failure mode in a manner more consistent with the C++\nABI design.\n\nReviewed By: dblaikie\n\nDifferential Revision: https://reviews.llvm.org/D122604\n\nGitOrigin-RevId: 5b3ca24a35e91bf9c19af856e7f92c69b17f989e\n"
    },
    {
      "commit": "69ab51cce8a8d2b93abe13b93c97ddbbe256adff",
      "tree": "77ff62430dcd46b5382a49bae9bf578d8c41a70c",
      "parents": [
        "e81d3c1b4440d10b0303cde1f926695a6dc71da4"
      ],
      "author": {
        "name": "Nathan Sidwell",
        "email": "nathan@acm.org",
        "time": "Fri Apr 08 06:55:31 2022 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Apr 25 10:06:45 2022 -0700"
      },
      "message": "[demangler][NFC] OperatorInfo table unit test\n\nPlacing a run-once test inside the operator lookup function caused\nproblems with the thread sanitizer. See D122975.\n\nBreak out the operator table into a member variable, and move the test\nto the unit test machinery.\n\nReviewed By: dblaikie\n\nDifferential Revision: https://reviews.llvm.org/D123390\n\nGitOrigin-RevId: c47bcf9af6fcfd565af25ab95932d7ceadd5d5ab\n"
    },
    {
      "commit": "e81d3c1b4440d10b0303cde1f926695a6dc71da4",
      "tree": "ce9eca50c268718e5363fa653fa55e68a1790bf3",
      "parents": [
        "ca5ea31303ab80c79d5ff2cff7e47e02e287f03c"
      ],
      "author": {
        "name": "Petr Hosek",
        "email": "phosek@google.com",
        "time": "Thu Mar 10 11:47:09 2022 +0200"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sun Apr 24 03:20:44 2022 -0700"
      },
      "message": "[runtimes] [CMake] Unify variable names\n\nAvoid repeating CMake checks across runtimes by unifying names of\nvariables used for results to leverage CMake caching.\n\nDifferential Revision: https://reviews.llvm.org/D110005\n\nGitOrigin-RevId: b3df14b6c98702ce50401fd039852787373e4676\n"
    },
    {
      "commit": "ca5ea31303ab80c79d5ff2cff7e47e02e287f03c",
      "tree": "df3636cc827be6ac088afba34bcf4785f6868a1e",
      "parents": [
        "71cdbada2726bf0161fb9b34b7ecd2b2e6be593d"
      ],
      "author": {
        "name": "Senran Zhang",
        "email": "zsrkmyn@gmail.com",
        "time": "Sun Mar 27 00:04:23 2022 +0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Apr 07 21:26:04 2022 -0700"
      },
      "message": "[demangler] Support C23 _BitInt type\n\nReviewed By: #libc_abi, aaron.ballman, urnathan\n\nDifferential Revision: https://reviews.llvm.org/D122530\n\nGitOrigin-RevId: a23652f6f9d8bcdeb7eee81c45eaf3ae65cfb3c5\n"
    },
    {
      "commit": "71cdbada2726bf0161fb9b34b7ecd2b2e6be593d",
      "tree": "fdcf54cc7d26fe6c4d719e302fa97b3038ec60c3",
      "parents": [
        "6845b52e38ca5863be169068721deb4cd40d7b17"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Mon Apr 04 17:53:31 2022 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Apr 07 07:19:24 2022 -0700"
      },
      "message": "[libc++] Add back-deployment testing on arm64 macs\n\nDifferential Revision: https://reviews.llvm.org/D123081\n\nGitOrigin-RevId: b7042b73a3999d5ca3ff1fee2dd4abc1061f800d\n"
    },
    {
      "commit": "6845b52e38ca5863be169068721deb4cd40d7b17",
      "tree": "4aec98993d1ac629e890b63988f6e14f1cd9c0c3",
      "parents": [
        "ff3efeaf37e8bbe49d14a627418f0fa6ae9f3114"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Wed Apr 06 19:01:39 2022 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Apr 06 16:10:58 2022 -0700"
      },
      "message": "[libc++abi] Remove XFAIL on arm64\n\nThe underlying TLS destruction order bug has been fixed in the OS. This\nwould technically still fail when running on top of macOS \u003c 12, however\nwe don\u0027t have a good way of encoding that using Lit features. Indeed,\nthe existing target\u003d\u003cFOO\u003e Lit feature encodes the deployment target,\nnot the actual runtime system that the tests are being run on.\n\nIf this test starts failing on your machine after this patch, upgrading\nto macOS 12 should solve the problem.\n\nGitOrigin-RevId: dd8269c54e9bf6f886cecb6df2aec9b90fcc645f\n"
    },
    {
      "commit": "ff3efeaf37e8bbe49d14a627418f0fa6ae9f3114",
      "tree": "ab718a60f2f3ddae3da1163f368f1dfadfb1bbcc",
      "parents": [
        "151de1f514b188b65c73be8f409dbc54d174a973"
      ],
      "author": {
        "name": "Nathan Sidwell",
        "email": "nathan@acm.org",
        "time": "Wed Mar 30 07:21:42 2022 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Apr 06 14:11:05 2022 -0700"
      },
      "message": "[demangler] Node precision dumper\n\nAdd contents to the demangler node dumper\u0027s print(Prec) functions.\n\nReviewed By: dblaikie\n\nDifferential Revision: https://reviews.llvm.org/D122740\n\nGitOrigin-RevId: 4a4d0985d4f0a6334e411ba9236a32197af009cb\n"
    },
    {
      "commit": "151de1f514b188b65c73be8f409dbc54d174a973",
      "tree": "6b5f97b4474113d10efcf09c7c56b75aa957d755",
      "parents": [
        "5a3d4840019a62c615e949cf28f2c610c2a88387"
      ],
      "author": {
        "name": "Nathan Sidwell",
        "email": "nathan@acm.org",
        "time": "Mon Feb 28 10:18:14 2022 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Apr 06 13:25:48 2022 -0700"
      },
      "message": "[demangler][NFC] Rename SwapAndRestore to ScopedOverride\n\nThe demangler has a utility class \u0027SwapAndRestore\u0027. That name is\nconfusing. It\u0027s not swapping anything, and the restore part happens at\nthe object\u0027s destruction. What it\u0027s actually doing is allowing a\noverride of some value that is dynamically accessible within the\nlifetime of a lexical scope. Thus rename it to ScopedOverride, and\ntweak it\u0027s member variable names.\n\nReviewed By: dblaikie\n\nDifferential Revision: https://reviews.llvm.org/D122606\n\nGitOrigin-RevId: 51f6caf2fbb5118569f2de33a85ffcc52568e0a7\n"
    },
    {
      "commit": "5a3d4840019a62c615e949cf28f2c610c2a88387",
      "tree": "25b3037585a60bf5169857841193d7b4963362a4",
      "parents": [
        "166054f70b0b4da427f91202032e4034264105e1"
      ],
      "author": {
        "name": "Nathan Sidwell",
        "email": "nathan@acm.org",
        "time": "Tue Apr 05 09:25:47 2022 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Apr 06 10:30:50 2022 -0700"
      },
      "message": "[demangler] Fix undocumented Local encoding\n\nGCC emits [some] static symbols with an \u0027L\u0027 mangling, which we attempt\nto demangle.  But the module mangling changes have exposed that we\nwere doing so at the wrong level.  Such manglings are outside of the\nABI as they are internal-linkage, so a bit of reverse engineering was\nneeded.  This adjusts the demangler along the same lines as the\nexisting gcc demangler (which is not yet module-aware).  \u0027L\u0027 is part\nof an unqualified name.  As before we merely parse the \u0027L\u0027, and then\nignore it.\n\nReviewed By: iains\n\nDifferential Revision: https://reviews.llvm.org/D123138\n\nGitOrigin-RevId: df4522feb790ea574f470e45e473aac1f6483b93\n"
    },
    {
      "commit": "166054f70b0b4da427f91202032e4034264105e1",
      "tree": "0f096494c57c55e2dbd82e25ff2d4700c770d590",
      "parents": [
        "5fc0dde44a07c1adb84d4d62b92c0eb1a375f0de"
      ],
      "author": {
        "name": "Nathan Sidwell",
        "email": "nathan@acm.org",
        "time": "Fri Mar 25 04:34:19 2022 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Apr 04 06:41:16 2022 -0700"
      },
      "message": "[demangler] Parenthesize \u003e\u003e inside template args\n\nBoth \u003e and \u003e\u003e expressions need to be parenthesized inside template\nargument lists.\n\nReviewed By: dblaikie, rjmccall\n\nDifferential Revision: https://reviews.llvm.org/D122474\n\nGitOrigin-RevId: ee6ec9e861e6d7d4d29712e9a7176fcbb975f519\n"
    },
    {
      "commit": "5fc0dde44a07c1adb84d4d62b92c0eb1a375f0de",
      "tree": "71b26a1f48f0e1b979d4fab5ac387f85dcadb413",
      "parents": [
        "353008b08c07efa5ae218aa127a6bab6c448877a"
      ],
      "author": {
        "name": "Nathan Sidwell",
        "email": "nathan@acm.org",
        "time": "Tue Mar 29 06:19:18 2022 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Apr 01 05:51:01 2022 -0700"
      },
      "message": "[demangler] Fix node matchers\n\n* Add instantiation tests to ItaniumDemangleTest, to make sure all\n  match functions provide constructor arguments to the provided functor.\n\n* Fix the Node constructors that lost const qualification on arguments.\n\nReviewed By: dblaikie\n\nDifferential Revision: https://reviews.llvm.org/D122665\n\nGitOrigin-RevId: abffdd88767791ef6da4d2df7ec7ab158eb8b775\n"
    },
    {
      "commit": "353008b08c07efa5ae218aa127a6bab6c448877a",
      "tree": "a92a42f10ed58a66003835192ff3821ec16478d6",
      "parents": [
        "31677fc421f7b86d7e3937a7de7d4352f6e5f4a1"
      ],
      "author": {
        "name": "Nathan Sidwell",
        "email": "nathan@acm.org",
        "time": "Wed Mar 30 05:59:16 2022 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Apr 01 05:16:25 2022 -0700"
      },
      "message": "[demangler][NFC] Use def file for node names\n\nIn order to add a unit test, we need to expose the node names beyond\nItaniumDemangle.h.  This breaks them out into a def file.\n\nReviewed By: dblaikie\n\nDifferential Revision: https://reviews.llvm.org/D122739\n\nGitOrigin-RevId: 369337e3c2225e3a09f62a6016a93752aa7e3812\n"
    },
    {
      "commit": "31677fc421f7b86d7e3937a7de7d4352f6e5f4a1",
      "tree": "2ced484d66e7736d04cf0e5031b6ce462c38f67c",
      "parents": [
        "0a4dca8199257d5e7e1a30f7289d17fdda486856"
      ],
      "author": {
        "name": "David Blaikie",
        "email": "dblaikie@gmail.com",
        "time": "Wed Mar 30 20:18:40 2022 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Mar 30 13:34:01 2022 -0700"
      },
      "message": "Demangle: Fix crash-on-invalid demangling of a module name with no underlying entity\n\nGitOrigin-RevId: 6f5ecd089f77e0da9af44bb7211ad1b11ea582d4\n"
    },
    {
      "commit": "0a4dca8199257d5e7e1a30f7289d17fdda486856",
      "tree": "6d4ee90008bb39b9a182181a1a95db1af9a3cbff",
      "parents": [
        "415fbcf54a1b8bb2f53657d866ef80bad63759db"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Fri Mar 04 14:34:46 2022 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Mar 30 08:30:31 2022 -0700"
      },
      "message": "[libunwind] Add a _LIBUNWIND_VERSION macro\n\nThis allows us to detect whether we\u0027re being compiled with LLVM\u0027s libunwind\nmore easily, without CMake having to set explicit variables.\n\nAs discussed in https://llvm.org/D119538.\n\nDifferential Revision: https://reviews.llvm.org/D121015\n\nGitOrigin-RevId: f29002a4b71b7734dfc4bd0e62eec2d341edb3fd\n"
    },
    {
      "commit": "415fbcf54a1b8bb2f53657d866ef80bad63759db",
      "tree": "612472a5a73f280fa6236c0a86be1f7122a0c73e",
      "parents": [
        "f26979fd765e9f19232493dd2defb5982576b983"
      ],
      "author": {
        "name": "Nathan Sidwell",
        "email": "nathan@acm.org",
        "time": "Tue Mar 29 04:43:16 2022 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Mar 29 05:36:08 2022 -0700"
      },
      "message": "[demangler] Update node match calls\n\nEach demangler node\u0027s match function needs to call the provided\nfunctor with constructor arguments.  That was omitted from D120905.\nThis adds the new Precedence argument where necessary (and a missing\nboolean for a module node).\n\nThe two visitors need updating with a printer for that type, and this\nadds a stub to cxa_demangle\u0027s version.  blaikie added one to llvm\u0027s.\nI\u0027ll fill out those printers in a followup, rather than wait, so that\ndownstream consumers are unbroken.\n\nGitOrigin-RevId: c204cee642ee794901d2e8a9819b52ac12f92bc9\n"
    },
    {
      "commit": "f26979fd765e9f19232493dd2defb5982576b983",
      "tree": "a4c6274d0173066df3d1a0e46553d5531b01e841",
      "parents": [
        "a7135f448af8087a9066eed148e47e9f5bac80e6"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Mon Mar 28 13:10:14 2022 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Mar 29 05:19:30 2022 -0700"
      },
      "message": "[libc++][libc++abi] Serialize the enable_assertions Lit parameter in the generated config\n\nThis means that re-running with llvm-lit in that configuration will\nwork as expected. This also enables assertions in libc++abi in the\nGeneric-assertions CI job, which was disabled previously.\n\nDifferential Revision: https://reviews.llvm.org/D122597\n\nGitOrigin-RevId: 65b1b3b961cf0337a007e5646431abf2b7aff334\n"
    },
    {
      "commit": "a7135f448af8087a9066eed148e47e9f5bac80e6",
      "tree": "2b147411a3f4c943996d468c282c5a69faec8ae3",
      "parents": [
        "3cfc1b727eeffedfaa0c9514980dfc2abf3dd05d"
      ],
      "author": {
        "name": "Nathan Sidwell",
        "email": "nathan@acm.org",
        "time": "Tue Mar 01 08:36:24 2022 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Mar 28 11:22:18 2022 -0700"
      },
      "message": "[demangler] Add StringView conversion operator\n\nThe OutputBuffer class tries to present a NUL-terminated string API to\nconsumers.  But several of them would prefer a StringView.  In\nparticular the Microsoft demangler, juggles between NUL-terminated and\nStringView, which is confusing.\n\nThis adds a StringView conversion, and adjusts the Demanglers that can\nbenefit from that.\n\nReviewed By: dblaikie\n\nDifferential Revision: https://reviews.llvm.org/D120990\n\nGitOrigin-RevId: 1066e397fa907629f0da370f9721821c838ed30a\n"
    },
    {
      "commit": "3cfc1b727eeffedfaa0c9514980dfc2abf3dd05d",
      "tree": "cd6f2df1e96e3c11b7925dee6af40fda587726d0",
      "parents": [
        "6f376cb897fc4a9f64830fe11c920262c1a7d811"
      ],
      "author": {
        "name": "Nathan Sidwell",
        "email": "nathan@acm.org",
        "time": "Fri Feb 04 11:45:23 2022 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Mar 28 06:21:43 2022 -0700"
      },
      "message": "[demangler] Add operator precedence\n\nThe demangler had no concept of operator precendence, and would\nparenthesize many more subexpressions than necessary.  In particular\nit would parenthesize primary-expressions, such as \u00274\u0027, which just\nlooks strange.  It would also parenthesize \u0027\u003e\u0027 expressions, just in\ncase they were inside a template parameter list.\n\nThis patch fixes both issues.\n\n* Add operator precedence to the OpInfo structure, and add a\n  subexpression helper that will parenthesize a lower precedence\n  subexpression.\n\n* Add a \u0027greater-than is greater-than\u0027 indicator to the output buffer,\n  so the expression printer knows whether it is immediately inside a\n  template parameter list (and must therefore parenthesize \u0027expr \u003e\n  expr\u0027).  This is a counter, so that ...\n\n* Add open and close printers to the output buffer, that increment and\n  decrement the gt-is-gt indicator.\n\n* Parenthesize comma operators inside comma-separated lists. (probably\n  a rare case, but still).\n\nThis dramatically reduces the extraneous parentheses being printed.\n\nReviewed By: dblaikie, bruno\n\nDifferential Revision: https://reviews.llvm.org/D120905\n\nGitOrigin-RevId: b3b4113a23756eb5f519ff473295483874d8e164\n"
    },
    {
      "commit": "6f376cb897fc4a9f64830fe11c920262c1a7d811",
      "tree": "a3d9ac5ce61f0cf6aabed081716ffe8d8e993421",
      "parents": [
        "b4f78f5e52f448da9020320b5764175b92373429"
      ],
      "author": {
        "name": "Nathan Sidwell",
        "email": "nathan@acm.org",
        "time": "Wed Jan 26 07:22:04 2022 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Mar 22 09:46:38 2022 -0700"
      },
      "message": "[demangler] Add support for C++20 modules\n\nAdd support for module name demangling.  We have two new demangler\nnodes -- ModuleName and ModuleEntity. The former represents a module\nname in a hierarchical fashion. The latter is the combination of a\n(name) node and a module name. Because module names and entity\nidentities use the same substitution encoding, we have to adjust the\nflow of how substitutions are handled, and examine the substituted\nnode to know how to deal with it.\n\nReviewed By: dblaikie\n\nDifferential Revision: https://reviews.llvm.org/D119933\n\nGitOrigin-RevId: c354167ae217f90399bff9a644fffb3e9a6b4334\n"
    },
    {
      "commit": "b4f78f5e52f448da9020320b5764175b92373429",
      "tree": "144a3361488f33471cd2ca310129828cdfc3b446",
      "parents": [
        "0c5a80eb1b0ccc39d6f184183ee758bbbfcd906c"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Tue Mar 15 10:49:49 2022 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Mar 16 09:37:27 2022 -0700"
      },
      "message": "[libc++][tests] Use CMake provided paths for includes and libdir instead of hardcoding them\n\nIn the new-style testing configurations, we were hardcoding paths to the\n`include` and `lib` directories, which was incorrect but always went\nunnoticed because the hardcoded values always happened to match the\nactual value.\n\nWhen using new-style configs with the bootstrapping build, this falls\nappart -- and we never noticed this because the bootstrapping build was\nstill using old style configs.\n\nThis patch removes the %{install} substitution, which makes it too\ntempting to hardcode installation paths, and it also switches the\nbootstrapping build to actually using new-style configs like we\nalways intended to do.\n\nDifferential Revision: https://reviews.llvm.org/D121700\n\nGitOrigin-RevId: 78669c4185e4f8784308b5e740721cd374052cae\n"
    },
    {
      "commit": "0c5a80eb1b0ccc39d6f184183ee758bbbfcd906c",
      "tree": "72b421f5a44bcabd4eb2a1a3ee6d922ae9bc4077",
      "parents": [
        "a5812395d75ce8b845d3f9e5b7a90f03e3ec1254"
      ],
      "author": {
        "name": "Ryan Prichard",
        "email": "rprichard@google.com",
        "time": "Mon Mar 14 15:43:50 2022 -0700"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Mar 14 15:54:17 2022 -0700"
      },
      "message": "[ARM] __cxa_end_cleanup: avoid clobbering r4\n\nThe fix for D111703 clobbered r4 both to:\n - Save/restore the original lr.\n - Load the address of _Unwind_Resume for LIBCXXABI_BAREMETAL.\n\nThis patch saves and restores lr without clobbering any extra\nregisters.\n\nFor LIBCXXABI_BAREMETAL, it is still necessary to clobber one extra\nregister to hold the address of _Unwind_Resume, but it seems better to\nuse ip/r12 (intended for linker veneers/trampolines) than r4 for this\npurpose.\n\nThe function also clobbers r0 for the _Unwind_Resume function\u0027s\nparameter, but that is unavoidable.\n\nReviewed By: danielkiss, logan, MaskRay\n\nDifferential Revision: https://reviews.llvm.org/D121432\n\nGitOrigin-RevId: 659029302dfb16a29219f931f66e9ad483ad1445\n"
    },
    {
      "commit": "a5812395d75ce8b845d3f9e5b7a90f03e3ec1254",
      "tree": "76a63fd6952bc5a94bac97f69184212b854d5928",
      "parents": [
        "86f5c6e46935021d5fbbc5c094ce16e8daa8df9d"
      ],
      "author": {
        "name": "Martin Storsjö",
        "email": "martin@martin.st",
        "time": "Mon Mar 07 13:32:52 2022 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Mar 07 12:38:27 2022 -0800"
      },
      "message": "[libcxxabi] Fix cmake order dependency wrt dllexporting\n\nIf LIBCXX_ENABLE_SHARED isn\u0027t explicitly set on the cmake command\nline, isn\u0027t set in the cache, and the libcxxabi project is configured\nbefore libcxx, then LIBCXX_ENABLE_SHARED isn\u0027t defined yet. Once\nthe libcxx cmake project has been parsed, LIBCXX_ENABLE_SHARED would\nhave been set to its default value of ON.\n\nThis makes sure that the symbols are properly dllexported in such\na configuration scenario.\n\nDifferential Revision: https://reviews.llvm.org/D120982\n\nGitOrigin-RevId: ebde6fc23bc0ee9d022fcd26b52bc82dfb7c8468\n"
    },
    {
      "commit": "86f5c6e46935021d5fbbc5c094ce16e8daa8df9d",
      "tree": "d92b92adf108a78616f2fc44aa428e0bcac81d4b",
      "parents": [
        "637e8c503ade7452427b9c6bd3ba362d2d195453"
      ],
      "author": {
        "name": "Nathan Sidwell",
        "email": "nathan@acm.org",
        "time": "Thu Mar 03 03:44:16 2022 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Mar 04 04:45:47 2022 -0800"
      },
      "message": "[demangler] Make OutputBuffer non-copyable\n\nIn addressing the buffer ownership API, I discovered a rogue member\nfunction that returned by value rather than by reference. It clearly\nintended to return by reference, but because the copy ctor wasn\u0027t\ndeleted this wasn\u0027t caught.\n\nIt is not necessary to make this a move-only type, although that would\nbe an alternative.\n\nReviewed By: bruno\n\nDifferential Revision: https://reviews.llvm.org/D120901\n\nGitOrigin-RevId: 64221645a824f0b70ae130001b37ac01095aa806\n"
    },
    {
      "commit": "637e8c503ade7452427b9c6bd3ba362d2d195453",
      "tree": "7778e09b1287b41a3dbbaebd1b871653cdf856e1",
      "parents": [
        "4642f4676ebfbbd4cb6474b2c153e26dfbc44b20"
      ],
      "author": {
        "name": "Nikolas Klauser",
        "email": "nikolasklauser@berlin.de",
        "time": "Thu Mar 03 12:10:30 2022 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Mar 03 04:22:47 2022 -0800"
      },
      "message": "[libc++] Use -I instead of -isystem to include headers in the test suite\n\nUsing -isystem marks the headers as system headers, which means that we\ndon\u0027t actually get all the warnings that we\u0027d normally get if we included\nthe headers as user headers.\n\nThe goal of the test suite is normally to mirror as closely as possible\nhow users would use the library. Technically, this change goes against\nthat philosophy, since users should be using `-isystem` (if they ever\nneed to specify the libc++ path explicitly, which should be a rare\noccurence). However, I believe fishing out additional warnings from\nthe headers provides more value, hence this change. Ideally, we\u0027d be\nable to still use `-isystem`, but instruct Clang to still emit warnings\nfrom the libc++ headers (e.g. we could tell Clang to emit warnings in\nany file inside `\u003c...\u003e/usr/include/c++/v1`).\n\nReviewed By: #libc, ldionne, #libc_abi\n\nSpies: Mordante, EricWF, mstorsjo, mgorny, aheejin, arichardson, philnik, jloser, libcxx-commits\n\nDifferential Revision: https://reviews.llvm.org/D118616\n\nGitOrigin-RevId: bd44174547aaf0b491039a5a71d967e1471b6d87\n"
    },
    {
      "commit": "4642f4676ebfbbd4cb6474b2c153e26dfbc44b20",
      "tree": "9d92bd78b66ce63cb0ff147657b57b239c6f32d1",
      "parents": [
        "87915fb0681337a62b2388a610312d44874e72ac"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Tue Oct 12 15:59:08 2021 -0400"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Mar 01 09:04:39 2022 -0800"
      },
      "message": "[runtimes] Remove FOO_TARGET_TRIPLE, FOO_SYSROOT and FOO_GCC_TOOLCHAIN\n\nInstead, folks can use the equivalent variables provided by CMake\nto set those. This removal aims to reduce complexity and potential\nfor confusion when setting the target triple for building the runtimes,\nand make it correct when `CMAKE_OSX_ARCHITECTURES` is used (right now\nboth `-arch` and `--target\u003d` will end up being passed, which is downright\nincorrect).\n\nDifferential Revision: https://reviews.llvm.org/D112155\n\nGitOrigin-RevId: 3ee0cec88effc88285732c8bec2a8f0e4e37c0b1\n"
    },
    {
      "commit": "87915fb0681337a62b2388a610312d44874e72ac",
      "tree": "a5564624f17a77aafe96d146009783f25ccfc070",
      "parents": [
        "edab2a4ddad9bf4ec6b300f36dc35da850b0e3e2"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Mon Feb 28 16:37:25 2022 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Mar 01 09:04:36 2022 -0800"
      },
      "message": "[libc++] Revert \"Protect users from relying on detail headers\" \u0026 related changes\n\nThis commit reverts 5aaefa51 (and also partly 7f285f48e77 and b6d75682f9,\nwhich were related to the original commit). As landed, 5aaefa51 had\nunintended consequences on some downstream bots and didn\u0027t have proper\ncoverage upstream due to a few subtle things. Implementing this is\nsomething we should do in libc++, however we\u0027ll first need to address\na few issues listed in https://reviews.llvm.org/D106124#3349710.\n\nDifferential Revision: https://reviews.llvm.org/D120683\n\nGitOrigin-RevId: 368faacac7525e538fa6680aea74e19a75e3458d\n"
    },
    {
      "commit": "edab2a4ddad9bf4ec6b300f36dc35da850b0e3e2",
      "tree": "982a8bddda45b9b6dea346ffbeb5f692b4414713",
      "parents": [
        "283ee1b8fd188a39aad3b6961b29f475c02013fd"
      ],
      "author": {
        "name": "Nathan Sidwell",
        "email": "nathan@acm.org",
        "time": "Fri Feb 18 09:51:24 2022 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Mar 01 09:04:31 2022 -0800"
      },
      "message": "[demangler] Add co_await demangling\n\nThe demangler doesn\u0027t understand \u0027aw\u0027 as an operator name. This adds\nthe necessary smarts -- you may use this as an operator functionname,\nbut not as an expression operator.\n\nReviewed By: ChuanqiXu\n\nDifferential Revision: https://reviews.llvm.org/D120143\n\nGitOrigin-RevId: 75db1795e44629b9c84c70410f6a6b106c4c5f3a\n"
    },
    {
      "commit": "283ee1b8fd188a39aad3b6961b29f475c02013fd",
      "tree": "656e80257389ff5e217a9dc85c1bf46fb0cef7b3",
      "parents": [
        "2dc9c72bf2984fef8bbe9007523f55e824ec1157"
      ],
      "author": {
        "name": "Nathan Sidwell",
        "email": "nathan@acm.org",
        "time": "Thu Jan 27 13:23:16 2022 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Mar 01 09:04:26 2022 -0800"
      },
      "message": "[demangler][NFC] Tabularize operator name parsing\n\nWe need to parse operator names in 3 places -- expressions, names \u0026\nfold expressions.  Currently we have 3 separate pieces to do this, and a FIXME.\n\nThe operator name and expression parsing are implemented as\nhandwritten two-character nested switches, the fold expression is a\nsequence of string comparisons.\n\nThis adds a new OperatorInfo class to encode the operator info\n(encoding, kind, name), and has a table that it can binary search.\nFrom that each of the above 3 uses are altered to use the new scheme.\n\nExisting tests cover parsing operator encodings.\n\nReviewed By: ChuanqiXu\n\nDifferential Revision: https://reviews.llvm.org/D119467\n\nGitOrigin-RevId: 7f89fa32e8e9251b0b780009c340bc0d8f4d2e88\n"
    },
    {
      "commit": "2dc9c72bf2984fef8bbe9007523f55e824ec1157",
      "tree": "78605f45fae46d7fd4d3d877fa671fe9ad3f6aee",
      "parents": [
        "613f64ea2a7e686429ef67d577548d856e7ff253"
      ],
      "author": {
        "name": "Nathan Sidwell",
        "email": "nathan@acm.org",
        "time": "Wed Feb 16 08:03:24 2022 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Mar 01 09:04:23 2022 -0800"
      },
      "message": "[demangler] Improve buffer hysteresis\n\nImprove demangler buffer hysteresis.  If we needed more than double\nthe buffer, the original code would allocate exactly the amount\nneeded, and thus consequently the next request would also realloc.\nWe\u0027re very unlikely to get into wanting more than double, after the\nfirst allocation, as it would require the user to have used an\nidentifier larger than the hysteresis.  With machine generated code\nthat\u0027s possible, but unlikely.\n\nReviewed By: ChuanqiXu\n\nDifferential Revision: https://reviews.llvm.org/D119972\n\nGitOrigin-RevId: 024495e62660a51edd060b57a95ca68d584d3b43\n"
    },
    {
      "commit": "613f64ea2a7e686429ef67d577548d856e7ff253",
      "tree": "740b5e95a8dfdbd30dbe174a1a83a2a8ca084a86",
      "parents": [
        "b147773e14f4d0dbbb9ced5bb75b7100536bc0a3"
      ],
      "author": {
        "name": "Nathan Sidwell",
        "email": "nathan@acm.org",
        "time": "Mon Feb 28 12:04:37 2022 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Mar 01 09:04:17 2022 -0800"
      },
      "message": "[demangler] Simplify SwapAndRestore\n\nThe SwapAndRestore class is over engineered.  Nothing makes use of the\nearly restoration machinery.  Let\u0027s just remove that cognative burdon.\n\nReviewed By: ChuanqiXu\n\nDifferential Revision: https://reviews.llvm.org/D120673\n\nGitOrigin-RevId: e5c98e22fbbe3c3eb5f2c782d0789098afc81518\n"
    },
    {
      "commit": "b147773e14f4d0dbbb9ced5bb75b7100536bc0a3",
      "tree": "a0f79e6066535efd789d1a4cf0124c4c91289945",
      "parents": [
        "1914eff320b525b44c90d16c107e9cdb425b9938"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Thu Feb 17 11:19:45 2022 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Feb 28 14:25:58 2022 -0800"
      },
      "message": "[libc++abi] Install the libc++abi headers from libc++abi\n\nlibc++abi should be responsible for installing its own headers, it\ndoesn\u0027t make sense for libc++ to be responsible for it.\n\nDifferential Revision: https://reviews.llvm.org/D101458\n\nGitOrigin-RevId: 6dfdf79b8c482c892a76406799d285baf5d71198\n"
    },
    {
      "commit": "1914eff320b525b44c90d16c107e9cdb425b9938",
      "tree": "7b6ca59272b461960ed2da95f6b4407dad6cf021",
      "parents": [
        "62a455435e7f7af07de4f8bd3d17271e10663629"
      ],
      "author": {
        "name": "Christopher Di Bella",
        "email": "cjdb@google.com",
        "time": "Fri Feb 25 18:59:32 2022 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat Feb 26 02:50:04 2022 -0800"
      },
      "message": "[libcxx][modules] protects users from relying on detail headers\n\nlibc++ has started splicing standard library headers into much more\nfine-grained content for maintainability. It\u0027s very likely that outdated\nand naive tooling (some of which is outside of LLVM\u0027s scope) will\nsuggest users include things such as \u003c__ranges/access.h\u003e instead of\n\u003cranges\u003e, and Hyrum\u0027s law suggests that users will eventually begin to\nrely on this without the help of tooling. As such, this commit\nintends to protect users from themselves, by making it a hard error for\nanyone outside of the standard library to include libc++ detail headers.\n\nDifferential Revision: https://reviews.llvm.org/D106124\n\nGitOrigin-RevId: 5aaefa510ef055e8f044ca89e352d4313f3aba49\n"
    },
    {
      "commit": "62a455435e7f7af07de4f8bd3d17271e10663629",
      "tree": "24d92aad7f229d0e6ca16c078bb23239a82d9672",
      "parents": [
        "6a5efea8b6b081c3051673730b07561b7d8995f9"
      ],
      "author": {
        "name": "Nathan Sidwell",
        "email": "nathan@acm.org",
        "time": "Fri Feb 18 04:05:06 2022 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Feb 18 08:57:59 2022 -0800"
      },
      "message": "[demangler][NFC] Reformatting\n\nThe linter complains about the formatting in subsequent changes.\nFixing that now.\n\nReviewed By: iains\n\nDifferential Revision: https://reviews.llvm.org/D120117\n\nGitOrigin-RevId: 12c4e65a76ed16ce90a9db0b47fdd41133fef4e9\n"
    },
    {
      "commit": "6a5efea8b6b081c3051673730b07561b7d8995f9",
      "tree": "2ba4a081a01ab80911a8e7c9bae5116d5097f7a4",
      "parents": [
        "45e01f552a89454c6f7946463dd5054bd24c63b6"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Wed Feb 16 10:44:39 2022 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Feb 16 13:31:02 2022 -0800"
      },
      "message": "[libc++abi] Bump the libc++abi version and add it to the post-release list\n\nDifferential Revision: https://reviews.llvm.org/D119947\n\nGitOrigin-RevId: 259c58d7d8fb33830ddf0573f0478d84d96aa6d7\n"
    },
    {
      "commit": "45e01f552a89454c6f7946463dd5054bd24c63b6",
      "tree": "fe2d499a0ffb345aa740b628c3ebca2442d016d4",
      "parents": [
        "d79e3b69e4bbf237ac4660b6af8a4591f15377f8"
      ],
      "author": {
        "name": "Michał Górny",
        "email": "mgorny@moritz.systems",
        "time": "Fri Feb 11 12:48:31 2022 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Feb 16 10:35:53 2022 -0800"
      },
      "message": "[libcxxabi] [test] Depend on unwind only if available\n\nWhen building libcxxabi via LLVM_ENABLE_RUNTIMES\u003dlibcxxabi the CMake\ninvocation fails because of missing \"unwind\" target.  However,\nif the extraneous dependency is removed, the library builds just fine\nagainst installed libunwind and tests work fine.  To fix this,\nadd the dependency only if the target actually exists.\n\nDifferential Revision: https://reviews.llvm.org/D119538\n\nGitOrigin-RevId: 5244ef0faf5595495c1adedfa16c346d35caebdf\n"
    },
    {
      "commit": "d79e3b69e4bbf237ac4660b6af8a4591f15377f8",
      "tree": "d99ff697186e47f2dce57501f3729d21009bcde5",
      "parents": [
        "17e393195521c8cd4ba376b46ea50e247860b64f"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Wed Feb 16 11:59:32 2022 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Feb 16 09:05:35 2022 -0800"
      },
      "message": "[runtimes] Move warning messages for FOO_SYSROOT \u0026 friends above their default value\n\nOtherwise, the warnings always trigger.\n\nGitOrigin-RevId: 2e3bb910e3f7f5cc92e7c5c8acc7e6e7328afcce\n"
    },
    {
      "commit": "17e393195521c8cd4ba376b46ea50e247860b64f",
      "tree": "2ace07e1301174f395eb4fc187bed80e7c01d793",
      "parents": [
        "1dee448965bc6bdf94ed241fdf4bcc308dc5f9aa"
      ],
      "author": {
        "name": "Nathan Sidwell",
        "email": "nathan@acm.org",
        "time": "Wed Feb 16 08:03:24 2022 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Feb 16 09:00:34 2022 -0800"
      },
      "message": "[demangler] Fix build breakage\n\nThe copy and pristine versions of Utility diverged and one didn\u0027t\ninclude \u003calgorithm\u003e.  As that\u0027s a rather large header, let\u0027s just open\ncode the comparisons.\n\nReviewed By:\n\nDifferential Revision: https://reviews.llvm.org/\n\nGitOrigin-RevId: fbf7bbcb839929ff4eed89921191ed51a2a99777\n"
    },
    {
      "commit": "1dee448965bc6bdf94ed241fdf4bcc308dc5f9aa",
      "tree": "dfd56913fb8f96f1d3d5e53ea0d95f8196b3a48f",
      "parents": [
        "0887a01667f1a76c7ce01d8d72e5c0474f5a51af"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Tue Feb 15 08:18:38 2022 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Feb 16 06:45:55 2022 -0800"
      },
      "message": "[runtimes] Deprecate FOO_SYSROOT \u0026 friends\n\nAs suggested in https://reviews.llvm.org/D112155.\n\nDifferential Revision: https://reviews.llvm.org/D119836\n\nGitOrigin-RevId: 641a141da1f22de319e891bdfd61e614632b39f0\n"
    },
    {
      "commit": "0887a01667f1a76c7ce01d8d72e5c0474f5a51af",
      "tree": "e9687bcbbce6e91db66881fb9c8d0e1adf7f94ea",
      "parents": [
        "3c38be4dc8f9e159fda558b42ed26af1fb322b63"
      ],
      "author": {
        "name": "Nathan Sidwell",
        "email": "nathan@acm.org",
        "time": "Tue Jan 25 12:31:01 2022 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Feb 16 04:35:41 2022 -0800"
      },
      "message": "[demangler] Reorder parseNestedName loop\n\nparseNestedName\u0027s main loop allowed parsing a grammar that was more\nflexible than the actual grammar.  This refactors that to rule out\nsome more incorrect manglings.\n\n1) The \u0027L\u0027 extension only applies to unqualified-name components, so\ncheck it just there.\n\n2) The \u0027M\u0027 suffix is, AFAICT, removed from the grammar.  Rather than\neliminate it, let\u0027s parse it after we\u0027ve parsed a component.\n\nAdded some additional bad mangling tests, which are now rejected.\n\nI don\u0027t break the \u0027T\u0027 and \u0027D[tT]\u0027 cases out of the loop, even though\nthey can only appear at first position, as it seems simpler to just\ncheck there is nothing SoFar.\n\nReviewed By: ChuanqiXu\n\nDifferential Revision: https://reviews.llvm.org/D119542\n\nGitOrigin-RevId: 6244730e29f66ae3d0ba80c2341f9f17c7eb78d3\n"
    },
    {
      "commit": "3c38be4dc8f9e159fda558b42ed26af1fb322b63",
      "tree": "c2e6dcc2fdf24f43935431282a9a7bcb08541108",
      "parents": [
        "8fc2688fc8e4e0c9d4a41d2fe7db1a64e5bba191"
      ],
      "author": {
        "name": "Nikolas Klauser",
        "email": "nikolasklauser@berlin.de",
        "time": "Tue Feb 15 18:18:08 2022 +0100"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Feb 15 19:15:41 2022 -0800"
      },
      "message": "[libc++] Granularize algorithm includes\n\nReviewed By: Mordante, ldionne, Quuxplusone, #libc, #libc_abi\n\nSpies: #libc_vendors, libcxx-commits, miyuki\n\nDifferential Revision: https://reviews.llvm.org/D119667\n\nGitOrigin-RevId: 2e2f3158c604adb8401a2a44a03f58d4b6f1c7f9\n"
    },
    {
      "commit": "8fc2688fc8e4e0c9d4a41d2fe7db1a64e5bba191",
      "tree": "80caf2f97fea53d909f20264a6c35486a970ee2e",
      "parents": [
        "e4bc3f49406b8efed078eadecd72c5e6314e0d8a"
      ],
      "author": {
        "name": "Arthur O\u0027Dwyer",
        "email": "arthur.j.odwyer@gmail.com",
        "time": "Tue Feb 08 13:08:59 2022 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Feb 15 07:47:03 2022 -0800"
      },
      "message": "[libc++] Rename *SAFE_STATIC to *CONSTINIT, and normalize its uses.\n\nIn src/, most files can use `constinit` directly because they\u0027re always\ncompiled with C++20. But some files, like \"libcxxabi/src/fallback_malloc.cpp\",\ncan\u0027t, because they\u0027re `#include`d directly from test cases in libcxxabi/test/\nand therefore must (currently) compile as C++03. We might consider refactoring\nthose offending tests, or at least marking them `UNSUPPORTED: c++03`.\n\nDifferential Revision: https://reviews.llvm.org/D119264\n\nGitOrigin-RevId: 05337a756c6606fdbf2c0ff3a8399da3e60f1591\n"
    },
    {
      "commit": "e4bc3f49406b8efed078eadecd72c5e6314e0d8a",
      "tree": "158081f280b59bcabb34fa3cafdc83e1a89bbd8e",
      "parents": [
        "6cb33e01fa44555a24d8d20ffb90ccbf6f9285c7"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Thu Feb 10 14:03:05 2022 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Feb 14 12:38:54 2022 -0800"
      },
      "message": "[libc++abi] Add a from-scratch testing config for Apple backdeployment\n\nWe added one for libc++ recently, and this patch adds one for libc++abi.\nAlso, as a fly-by fix, include older libunwind dylibs in the testing of\nlibc++ and libc++abi, which fixes some issues related to running\nback-deployment tests on newer systems.\n\nDifferential Revision: https://reviews.llvm.org/D119466\n\nGitOrigin-RevId: 8c060613721c5e7b52f43e7d1da24346b0506dde\n"
    },
    {
      "commit": "6cb33e01fa44555a24d8d20ffb90ccbf6f9285c7",
      "tree": "3cfa2bb0db379dadd293bf1e7ad8fa6530100ecf",
      "parents": [
        "20950d1f1e0a6d07b39ed5e02cb492d02c457947"
      ],
      "author": {
        "name": "Nathan Sidwell",
        "email": "nathan@acm.org",
        "time": "Fri Feb 11 05:54:40 2022 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Feb 14 04:15:44 2022 -0800"
      },
      "message": "[demangler][NFC] Tweak legacy uuidof handling\n\nWe have to special-case \u0027u 8__uuidof [tz]\u0027 demangling for legacy\nsupport.  That handling is a little duplicative.\n\n* It seems better to just push the single expected node.\n\n* We can also use \u0027consumeIf\u0027 rather than open-coding the peeking and increment.\n\n* We don\u0027t need the numLeft \u003c 2 check, as if there are few than that\n  other paths will end up with detecting the error.\n\nFWIW This simplifies a future change adding operator precedence.\n\nReviewed By: ChuanqiXu\n\nDifferential Revision: https://reviews.llvm.org/D119543\n\nGitOrigin-RevId: 880e87580a219996f96ebf2cc9be9740f1a99a4c\n"
    },
    {
      "commit": "20950d1f1e0a6d07b39ed5e02cb492d02c457947",
      "tree": "6517be98fae46ad5424690dfd2e04260db5a6b0d",
      "parents": [
        "6f19bc6f7a4be8b2d78ef508b1a5e79e83e37dd0"
      ],
      "author": {
        "name": "Nathan Sidwell",
        "email": "nathan@acm.org",
        "time": "Mon Feb 07 11:33:08 2022 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Feb 14 04:06:44 2022 -0800"
      },
      "message": "[demangler] Fix buffer growth\n\nThe output buffer growth algorithm had a few issues:\n\na) An off-by-one error in the initial size check, which uses\n\u0027\u003e\u003d\u0027. This error was safe, but could cause us to reallocate when there\nwas no need.\n\nb) An inconsistency between the initial size check (\u003e\u003d) and the\npost-doubling check (\u003e).  The latter was somewhat obscured by the\nswapped operands.\n\nc) There would be many reallocs with an initially-small buffer.  Add a\nlittle initialization hysteresis.\n\nReviewed By: ChuanqiXu\n\nDifferential Revision: https://reviews.llvm.org/D119177\n\nGitOrigin-RevId: 995c4f306890ad379de19106f053238ce89f1483\n"
    },
    {
      "commit": "6f19bc6f7a4be8b2d78ef508b1a5e79e83e37dd0",
      "tree": "ea4e59bfed87936ec70a45ea4507f5ddfcb12275",
      "parents": [
        "3240928bb7a6a195afde85e89af12ded1cecc63c"
      ],
      "author": {
        "name": "Nathan Sidwell",
        "email": "nathan@acm.org",
        "time": "Tue Jan 25 12:23:31 2022 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Fri Feb 11 04:25:29 2022 -0800"
      },
      "message": "[demangler] Adjust unqualified name parsing\n\nThe unqualified name grammar includes \u003cctor-dtor-name\u003e, but we handle\nthat specially in parseNestedName.  This is a little awkward.  We can\npass in the current scope and have parseUnqualifiedName deal with\ncdtors too.  That also allows a couple of other simplifications:\n\n1) parseUnqualifiedName can also build up the NestedName, when the\nprovided scope is non-null.  Which means ...\n\n2) parseUnscopedName can pass a \"std\" scope in (and tailcall).\n\n3) ... and also parseNestedName need not construct the nestedname itself.\n\n4) also parseNestedName\u0027s detection of a cdtor-name doesn\u0027t have to\nrule out a decomposition name anymore.\n\nThis change also makes adding module demangling more\nstraight-forwards, btw.\n\nReviewed By: ChuanqiXu\n\nDifferential Revision: https://reviews.llvm.org/D119154\n\nGitOrigin-RevId: fbded4f42db1e52e3e0bc0fe2c7e3440ace455a4\n"
    },
    {
      "commit": "3240928bb7a6a195afde85e89af12ded1cecc63c",
      "tree": "4aa0f4b2fb397a7f2d8f964cc13d176c7f9cfff5",
      "parents": [
        "6fa1569a647745874bef3fefb46d1a1b035f8e94"
      ],
      "author": {
        "name": "Nathan Sidwell",
        "email": "nathan@acm.org",
        "time": "Fri Jan 28 07:09:38 2022 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Feb 10 04:36:27 2022 -0800"
      },
      "message": "[demangler] Fix new/delete demangling\n\nI discovered some demangler problems:\n\na) parsing of new expressions was broken, ignoring any \u0027gs\u0027 prefix\nb) (when #a is fixed) badly formatted global new expressions\nc) formatting of new and delete failed to correctly add whitespace\n\n(a) happens as parseExpr swallows the \u0027gs\u0027 prefix but doesn\u0027t pass it\n to \u0027parseNewExpr\u0027.  It seems simpler to me to just code the new\n expression parsing directly in parseExpr, as is done for delete\n expressions.\n\n(b) global new should be rendered something like \u0027::new T\u0027 not\n \u0027::operator new T\u0027\n\n(c) is resolved by being a bit more careful with whitespace.\n\nBest shown with some examples (don\u0027t worry that these symbols are for\nimpossible instantiations, that\u0027s not the point):\n\nOld behaviour:\nbuild/bin/llvm-cxxfilt _ZN2FnIXgsnw_iEEXna_ipiLi4EEEEEvv _ZN2FnIXnwLj4E_iEEXgsnaLj4E_ipiLi4EEEEEvv _ZN2FnIXgsdlLi4EEXdaLi4EEEEvv _ZN2FnIXdlLj4EEXgsdaLj4EEEEvv\nvoid Fn\u003cnew int, new[] int(4)\u003e()   // No ::new\nvoid Fn\u003cnew (4u)int, new[] (4u)int(4)\u003e() // No ::new, poor whitespace\nvoid Fn\u003c::delete4, delete[] 4\u003e()  // missing necessary space\nvoid Fn\u003cdelete4u, ::delete[] 4u\u003e() // missing necessary space\n\nNew behaviour:\nbuild/bin/llvm-cxxfilt _ZN2FnIXgsnw_iEEXna_ipiLi4EEEEEvv _ZN2FnIXnwLj4E_iEEXgsnaLj4E_ipiLi4EEEEEvv _ZN2FnIXgsdlLi4EEXdaLi4EEEEvv _ZN2FnIXdlLj4EEXgsdaLj4EEEEvv\nvoid Fn\u003c::new int, new[] int(4)\u003e()\nvoid Fn\u003cnew(4u) int, ::new[](4u) int(4)\u003e()\nvoid Fn\u003c::delete 4, delete[] 4\u003e()\nvoid Fn\u003cdelete 4u, ::delete[] 4u\u003e()\n\nBinutils\u0027 behaviour:\nc++filt _ZN2FnIXgsnw_iEEXna_ipiLi4EEEEEvv _ZN2FnIXnwLj4E_iEEXgsnaLj4E_ipiLi4EEEEEvv _ZN2FnIXgsdlLi4EEXdaLi4EEEEvv _ZN2FnIXdlLj4EEXgsdaLj4EEEEvv\nvoid Fn\u003c::new int, new int(4)\u003e()\nvoid Fn\u003cnew (4u) int, ::new (4u) int(4)\u003e()\nvoid Fn\u003c::delete (4), delete[] (4)\u003e()\nvoid Fn\u003cdelete (4u), ::delete[] (4u)\u003e()\n\nThe new and binutils demanglings are the same modulo some whitespace and optional parens.\n\nReviewed By: ChuanqiXu\n\nDifferential Revision: https://reviews.llvm.org/D118476\n\nGitOrigin-RevId: 9d283634f7be35f229e1ebe5f908c59352fe88c2\n"
    },
    {
      "commit": "6fa1569a647745874bef3fefb46d1a1b035f8e94",
      "tree": "6982e532872584e586a787502b89670cec968ae2",
      "parents": [
        "8dcea64377e997c116d7ebe865dbddc50be0ecf5"
      ],
      "author": {
        "name": "Louis Dionne",
        "email": "ldionne.2@gmail.com",
        "time": "Tue Feb 08 11:38:29 2022 -0500"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Feb 09 06:01:07 2022 -0800"
      },
      "message": "[runtimes] Remove support for standalone builds\n\nStandalone build have been deprecated for some time now, so this\ncommit removes support for those builds entirely from libc++, libc++abi\nand libunwind.\n\nThis, along with the removal of other legacy ways to build, will allow\nfor major build system simplifications.\n\nDifferential Revision: https://reviews.llvm.org/D119255\n\nGitOrigin-RevId: 6f17768e11480063f4c2bcbeea559505fee3ea19\n"
    },
    {
      "commit": "8dcea64377e997c116d7ebe865dbddc50be0ecf5",
      "tree": "d2f478497252190827b59ba5e76211acef3931aa",
      "parents": [
        "e1484e020bf75ca76292d4dbf58cafc71d0c4a07"
      ],
      "author": {
        "name": "Nathan Sidwell",
        "email": "nathan@acm.org",
        "time": "Mon Feb 07 10:08:18 2022 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Feb 08 07:30:51 2022 -0800"
      },
      "message": "[demangler][NFC] Utility header cleanups\n\na) Using a do...while loop in the number formatter means we do not\nhave to special case zero.\n\nb) Let\u0027s use \u0027if (auto size \u003d ...) {}\u0027 for appending to the output\nbuffer.\n\nc) We should also be using memcpy there, not memmove -- the string\nbeing appended is never part of the current buffer.\n\nd) Let\u0027s put all the operator\u003c\u003c functions together.\n\ne) I find \u0027if (cond) frob(..., true) ; elseOD frob(..., false)\u0027\nsomewhat confusing.  Let\u0027s just use std::abs in the signed integer\nprinter and let CSE decide about the duplicate \u003c 0 testing.\n\nf) Let\u0027s have as many as possible return *this.  That\u0027s both more\nconsistent, and allows tailcalls in some cases (the actual number\nformatter has a local array though).\n\nThese changes removed around 100 bytes from the demangler\u0027s\ninstructions on x86_64.\n\nReviewed By: ChuanqiXu\n\nDifferential Revision: https://reviews.llvm.org/D119176\n\nGitOrigin-RevId: f0ef708dc12eb7d3ec5d8af9abbae40bd27c07cd\n"
    },
    {
      "commit": "e1484e020bf75ca76292d4dbf58cafc71d0c4a07",
      "tree": "3d39f8496fc43e5d4154cff83cde792336bfeb1e",
      "parents": [
        "15bc1ff919cf88b0a2b9372bb2a0b2584670ec0a"
      ],
      "author": {
        "name": "Nathan Sidwell",
        "email": "nathan@acm.org",
        "time": "Fri Jan 28 09:27:28 2022 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Feb 08 06:30:25 2022 -0800"
      },
      "message": "[demangler] Improve -\u003e* \u0026 .* demangling\n\nThe demangler treats -\u003e* as a BinaryExpr, but .* as a MemberExpr.\nThat\u0027s inconsistent.  This makes the former a MemberExpr too.\nHowever, in order to not regress the paren output, MemberExpr::print\nis modified to parenthesize the MemberExpr if the operator ends with\n\u0027*\u0027.  Printing is affected thusly:\n\nBefore:\n    obj.member\n    obj-\u003emember\n    obj.*member\n    (obj) -\u003e* (member)\n\nAfter:\n   obj.member   # Unchanged\n   obj-\u003emember  # Unchanged\n   obj.*(member)  # Added paren member operand\n   obj-\u003e*(member) # Removed paren on object operand, less whitespace\n\nThe right solution to the paren problem is to add some notion of\nprecedence (and associativity) to Nodes, but that\u0027s a larger change\nthat would become simpler once the refactoring I\u0027m doing is completed.\n\nFWIW, binutils\u0027 demangler\u0027s paren algorithm has a small idea of\nprecedence, and will generally not emit parens when the operand is\nunary.\n\nReviewed By: bruno\n\nDifferential Revision: https://reviews.llvm.org/D118486\n\nGitOrigin-RevId: 28669bd091e1542d8318bec4cb2219d65cb73b07\n"
    },
    {
      "commit": "15bc1ff919cf88b0a2b9372bb2a0b2584670ec0a",
      "tree": "956eea8cf2d2912814fc299a7a128c9590e80ea7",
      "parents": [
        "e7df305cbc8b128bce840b074f9cc0d7a5082e3a"
      ],
      "author": {
        "name": "Nathan Sidwell",
        "email": "nathan@acm.org",
        "time": "Fri Jan 21 11:00:56 2022 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Feb 07 08:26:31 2022 -0800"
      },
      "message": "[demangler] Stricter NestedName parsing\n\nThe parsing of nested names is a little lax.  This corrects that.\n\n1) The \u0027L\u0027 local name prefix cannot appear before a NestedName -- only\nwithin it.  Let\u0027s remove that check from parseName, and then adjust\nparseUnscopedName to allow it with or without the \u0027St\u0027 prefix.\n\n2) In a nested name, a \u003ctemplate-param\u003e, \u003cdecltype\u003e or \u003csubstitution\u003e\ncan only appear as the first element.  Let\u0027s enforce that.  Note I do\nnot remove these from the loop, to make the change easier to follow\n(such a change will come later).\n\n3) Given that, there\u0027s no need to special case \u0027St\u0027 outside of the\nloop, handle it with the other \u0027S\u0027 elements.\n\n4) There\u0027s no need to reset \u0027EndsWithTemplateArgs\u0027 after each\nnon-template-arg component.  Rather, always clear it and then set it\nin the template-args case.\n\n5) An template-args cannot immediately follow a template-args.\n\n6) The parsing of a CDtor name with ABITags would attach the tags to\nthe NestedName node, rather than the CDTor node.  This is different to\nhow ABITags are attached to an unscopedName.  Make it consistent.\n\n7) We remain with only CDTor and UnscopedName requireing construction\nof a NestedName, so let\u0027s drop the PushComponent lambda.\n\n8) Add some tests to catch the new rejected manglings.\n\nReviewed By: ChuanqiXu\n\nDifferential Revision: https://reviews.llvm.org/D118132\n\nGitOrigin-RevId: ad46cf14d408018edad17defe6d2911093d35503\n"
    },
    {
      "commit": "e7df305cbc8b128bce840b074f9cc0d7a5082e3a",
      "tree": "ee8446bf7fe3198a91a65c3e9df41b5b215abd49",
      "parents": [
        "c7d0b08757a178b503e0387d51171c745cf9dee8"
      ],
      "author": {
        "name": "Nathan Sidwell",
        "email": "nathan@acm.org",
        "time": "Fri Jan 28 11:59:03 2022 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Feb 07 07:54:07 2022 -0800"
      },
      "message": "[demangler] Fix unresolvedname demangling\n\nWe were dropping the [gs] modifier by parsing it in parseExpr, but not\nforwarding it on to parseUnresolvedName.  This is the straightforwards\nfix to forward that flag -- parseExpr must see past it.\n\nReviewed By: ChuanqiXu\n\nDifferential Revision: https://reviews.llvm.org/D118504\n\nGitOrigin-RevId: 8d38273a3dae41e8da381542a20fbd09d4ccedc2\n"
    },
    {
      "commit": "c7d0b08757a178b503e0387d51171c745cf9dee8",
      "tree": "aff311466718a06676966d58e995b73569320d33",
      "parents": [
        "4a60eaa97fdece5373830224afd048c66f4010e2"
      ],
      "author": {
        "name": "Nathan Sidwell",
        "email": "nathan@acm.org",
        "time": "Fri Jan 21 11:37:01 2022 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Feb 07 07:54:02 2022 -0800"
      },
      "message": "[demangler] Remove StdQualifiedName\n\nThe StdQualifiedName node class is used for names exactly in the std\nnamespace.  It is not used for nested names that descend further --\nthose use a NestedName with NameType(\"std\") as the scope.\nRepresenting the compression scheme in the node graph is layer\nbreaking.  We can use the same structure for those exactly in std too,\nand reduce code size a bit.\n\nReviewed By: ChuanqiXu\n\nDifferential Revision: https://reviews.llvm.org/D118249\n\nGitOrigin-RevId: 704b21cb4fa5323564779b1a39b577b2481bf677\n"
    },
    {
      "commit": "4a60eaa97fdece5373830224afd048c66f4010e2",
      "tree": "5376333a31bb16dbc38e35e5d5b7cc3fb0cfe3b5",
      "parents": [
        "02ad874efa40ad35741415bfe69e2c3c0c8f6910"
      ],
      "author": {
        "name": "Nathan Sidwell",
        "email": "nathan@acm.org",
        "time": "Mon Jan 24 06:38:47 2022 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Tue Feb 01 05:31:47 2022 -0800"
      },
      "message": "[demangler] Preserve line numbering in copied demangler sources\n\nWhile prepending lines to the copied source files is functional, it\ndisturbs the line numbering between the original and the copy.  That\nmakes development more awkward than necessary, as it is the copy that\ngenerally gets compiled first and emits compiler errors.\n\nThis uses sed to alter the first two lines, and also emits better\nemacs mode setting, getting both C++ mode and read-only mode.\n\nWhile here, also update and clarify documentation.\n\nReviewed By: ChuanqiXu\n\nDifferential Revision: https://reviews.llvm.org/D118135\n\nGitOrigin-RevId: fa7834a55484f9a7add76750a448184c333fba4b\n"
    },
    {
      "commit": "02ad874efa40ad35741415bfe69e2c3c0c8f6910",
      "tree": "a0bd5c701850720c09ed591aa476c6832f8e9a03",
      "parents": [
        "6533d11048e15cf31181d5fd93d35ab96078bd49"
      ],
      "author": {
        "name": "Nathan Sidwell",
        "email": "nathan@acm.org",
        "time": "Mon Jan 24 07:59:57 2022 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jan 26 05:06:13 2022 -0800"
      },
      "message": "[demangler] refactor SpecialSubKind\n\nCode generating the special substitutions in std is a switch statement\nwith each case block containing the same conststruction template.  It\nis more efficient to commonize that after the switch, having\ndetermined which SubKind to create.  Also, let\u0027s sort the cases.\n\nReviewed By: ChuanqiXu\n\nDifferential Revision: https://reviews.llvm.org/D118131\n\nGitOrigin-RevId: 4e5fce58485cc69ee69da10e26a338ceeef280a0\n"
    },
    {
      "commit": "6533d11048e15cf31181d5fd93d35ab96078bd49",
      "tree": "585530ce5e78d4a78d3e1d96e3fb4a53ab617521",
      "parents": [
        "bbc24438c4cc24973a5603f7674f3b8100b3b9a2"
      ],
      "author": {
        "name": "Nathan Sidwell",
        "email": "nathan@acm.org",
        "time": "Mon Jan 24 11:07:29 2022 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jan 26 05:06:08 2022 -0800"
      },
      "message": "[demangler] improve test harness\n\nThe demangler test harness is a little unclear.  The failed demangling\nmessage always causes me to think about \u0027reality\u0027, changing to a\nsimple \u0027Found\u0027 seems clearer.\n\nThe expected-to-fail tests abort as soon as one passes, rather than\ncontinue, and then abort if any passed.  This changes that loop to\nfail at the end, in a similar manner to the expected-to-work loop.\n\nReviewed By: ChuanqiXu\n\nDifferential Revision: https://reviews.llvm.org/D118130\n\nGitOrigin-RevId: 52c7faeae8fce49cd7e3853a29bb38e3ce5be892\n"
    },
    {
      "commit": "bbc24438c4cc24973a5603f7674f3b8100b3b9a2",
      "tree": "68c3c55c96b800cfbc97f305909816239a9cd625",
      "parents": [
        "80367becd64001f952e96928e54d739d9ea2505b"
      ],
      "author": {
        "name": "Nathan Sidwell",
        "email": "nathan@acm.org",
        "time": "Mon Jan 24 04:28:09 2022 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jan 24 05:35:47 2022 -0800"
      },
      "message": "[demangler][NFC] Refactor some parsing\n\nThere\u0027s some unnecessary code duplication in the parser.  This\nrefactors that and deploys boolean variables to avoid the duplication.\nThese also happen to help adding module demangling (with an updated\nmangling scheme).\n\n1a) The grammar requires some lookahead concerning \u003ctemplate-args\u003e. We\nmay discover an \u003cunscoped-name\u003e is actually \u003cunscoped-template-name\u003e\n\u003ctemplate-args\u003e.  (When \u003cunscoped-name\u003e was a substitution, there must\nbe a following \u003ctemplate-args\u003e.)  Refactor parseName to only have one\ncode path looking for the \u0027I\u0027 indicating \u003ctemplate-args\u003e.\n\n1b) While there I altered the control flow to hold the result in a\nvariable, rather than tail call.  Made it easier to debug (and of\ncourse an optimizer will DTRT here anyway).\n\n2a) An \u003cunscoped-name\u003e can have an St or StL prefix.  No need for\ncompletely separate code paths handling the following unqualified-name\nthough.\n\n2b) Also no need to look for both \u0027St\u0027 and \u0027StL\u0027 separately.  Look for\n\u0027St\u0027 and then conditionally swallow an \u0027L\u0027.\n\n3) We get a similar issue as #1a when parsing a typeName.  Here I just\nchange the control flow slightly to bring the \u0027break\u0027 out to the end\nof the \u0027S\u0027 block and embed the early return inside an if.  That\u0027s more\nin keeping with the code style.\n\n4) Although NFC, there\u0027s a new testcase as that\u0027s not covered by the\nexisting demangler tests and is significant in the #1a case above.\n\nReviewed By: ChuanqiXu\n\nDifferential Revision: https://reviews.llvm.org/D117879\n\nGitOrigin-RevId: 6184e565ad4065026bc121fd13d6a8743a1fe593\n"
    },
    {
      "commit": "80367becd64001f952e96928e54d739d9ea2505b",
      "tree": "028480d11db63859efbf1e7d5a5e77d4a2454a39",
      "parents": [
        "96c7331876b1b1ee0dcc390409d879198da7db44"
      ],
      "author": {
        "name": "Nathan Sidwell",
        "email": "nathan@acm.org",
        "time": "Mon Jan 24 04:14:47 2022 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jan 24 05:31:25 2022 -0800"
      },
      "message": "[demangler] write-protect non-canonical source\n\nTo try and avoid undesired changes to the non-canonical demangler\nsources, change the cp-to-llvm script to (a) write-protect the target\nfiles and (b) prepend \u0027do not edit\u0027 comments that are significant to\nemacs[*], and hopefully humans.\n\nReviewed By: ChuanqiXu\n\nDifferential Revision: https://reviews.llvm.org/D118008\n\nGitOrigin-RevId: 897d1bb659c2a23baed8ff4881960945125c40f7\n"
    },
    {
      "commit": "96c7331876b1b1ee0dcc390409d879198da7db44",
      "tree": "39d13981844b552470af001cba5f221c1e09562b",
      "parents": [
        "64e94ec9ad916878748b2d0c9f10071f86e94afb"
      ],
      "author": {
        "name": "Nathan Sidwell",
        "email": "nathan@acm.org",
        "time": "Mon Jan 24 04:11:59 2022 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jan 24 05:31:20 2022 -0800"
      },
      "message": "[demangler] Resync demangler sources\n\nRecent commits changed llvm/include/llvm/Demangle without also\nchanging libcxxabi/src/Demangle, which is the canonical source\nlocation.  This resyncs those commits to the libcxxabi directory.\n\nCommits:\n* 1f9e18b6565fd1bb69c4b649b9efd3467b3c7c7d\n* f53d359816e66a107195e1e4b581e2a33bbafaa4\n* 065044c443f4041f32e0a8d6e633f9d92580fbca\n\nReviewed By: ChuanqiXu\n\nDifferential Revision: https://reviews.llvm.org/D117990.diff\n\nGitOrigin-RevId: 38ffea9b4c1f59ebf434a9774cd7ae741cc87d70\n"
    },
    {
      "commit": "64e94ec9ad916878748b2d0c9f10071f86e94afb",
      "tree": "bd6d85119561f26b9a7c275e8e1e9a3145f443c6",
      "parents": [
        "cf19a0076b2a28f70ae54c9e433551402419393a"
      ],
      "author": {
        "name": "Nathan Sidwell",
        "email": "nathan@acm.org",
        "time": "Thu Jan 20 07:40:12 2022 -0800"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Jan 20 11:50:40 2022 -0800"
      },
      "message": "[demangler][NFC] Small cleanups and sync\n\nSome precursor work to adding module demangling.\n\n* some mismatched comment and code in the demangler\n\n* a const fn was not marked thusly\n\n* we use std::islower.  A direct range check is smaller code (no function call),\n  and we know we\u0027re in ASCII-land and later in that same function make the same\n  assumption about upper-case contiguity.  Heck, maybe just drop the switch\u0027s\n  precondition and rely on the optimizer to do its thing?\n\n* the directory is cloned in two places, which had gotten out of sync.\n\nDifferential Revision: https://reviews.llvm.org/D117800\n\nGitOrigin-RevId: 8105e404f186c6f31e08185b37f81e6da904f6d7\n"
    },
    {
      "commit": "cf19a0076b2a28f70ae54c9e433551402419393a",
      "tree": "919aaa36afde07604f5c331d06a673b9c3b03af3",
      "parents": [
        "a5498b2e7e49d22d05a344630cf994e49e5117de"
      ],
      "author": {
        "name": "John Ericson",
        "email": "John.Ericson@Obsidian.Systems",
        "time": "Wed Jan 19 06:45:07 2022 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Thu Jan 20 11:01:31 2022 -0800"
      },
      "message": "[cmake] Make include(GNUInstallDirs) always below project(..)\n\nIts defaulting logic must go after `project(..)` to work correctly,  but `project(..)` is often in a standalone condition making this\nawkward, since the rest of the condition code may also need GNUInstallDirs.\n\nThe good thing is there are the various standalone booleans, which I had missed before. This makes splitting the conditional blocks less awkward.\n\nReviewed By: arichardson, phosek, beanz, ldionne, #libunwind, #libc, #libc_abi\n\nDifferential Revision: https://reviews.llvm.org/D117639\n\nGitOrigin-RevId: df31ff1b29bc4c2308ec5df8a7ff0ec2ab0942d4\n"
    },
    {
      "commit": "a5498b2e7e49d22d05a344630cf994e49e5117de",
      "tree": "d845029447d6fc7e298e62a7fd98765ef7a2f40e",
      "parents": [
        "4a3e0860b7e906afed8f67d56d7b815e77a22d92"
      ],
      "author": {
        "name": "John Ericson",
        "email": "John.Ericson@Obsidian.Systems",
        "time": "Tue Jan 18 22:58:31 2022 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Wed Jan 19 14:11:14 2022 -0800"
      },
      "message": "[cmake] Move HandleOutOfTreeLLVM to common cmake utils\n\nThis is better than libunwind and libcxxabi fishing it out of libcxx\u0027s\nmodule directory.\n\nIt is done in prepartion for a better version of D117537 which deduplicates\nCMake logic instead of just renaming to avoid a name clash.\n\nReviewed By: phosek, #libunwind, #libc_abi, Ericson2314\n\nDifferential Revision: https://reviews.llvm.org/D117617\n\nGitOrigin-RevId: 429a717ea5ec141b5c0c93c2c53097dccf67e05a\n"
    },
    {
      "commit": "4a3e0860b7e906afed8f67d56d7b815e77a22d92",
      "tree": "3cf3b977e94d14da55cb9ba63da58aa500dbea1a",
      "parents": [
        "b74766b0f8006c805768d06a731775f666e59883"
      ],
      "author": {
        "name": "John Ericson",
        "email": "John.Ericson@Obsidian.Systems",
        "time": "Sun Jan 16 06:00:29 2022 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Mon Jan 17 22:51:23 2022 -0800"
      },
      "message": "[libcxx][libcxxabi][libunwind][cmake] Use `GNUInstallDirs` to support custom installation dirs\n\nI am breaking apart D99484 so the cause of build failures is easier to\nunderstand.\n\nDifferential Revision: https://reviews.llvm.org/D117417\n\nGitOrigin-RevId: f16a4a034a279f52c33f41cafb7d9751ee8a01dd\n"
    },
    {
      "commit": "b74766b0f8006c805768d06a731775f666e59883",
      "tree": "91745af35395a018475ee56a4bfcdcba537ab6fe",
      "parents": [
        "70589c1aaea4f9de02010d8a9e1cbdf66a1baec0"
      ],
      "author": {
        "name": "John Ericson",
        "email": "John.Ericson@Obsidian.Systems",
        "time": "Sun Jan 16 05:48:30 2022 +0000"
      },
      "committer": {
        "name": "Copybara-Service",
        "email": "copybara-worker@google.com",
        "time": "Sat Jan 15 21:52:48 2022 -0800"
      },
      "message": "Revert \"[cmake] Use `GNUInstallDirs` to support custom installation dirs.\"\n\nhttps://lab.llvm.org/buildbot/#/builders/46/builds/21146 Still have\nthis odd error, not sure how to reproduce, so I will just try breaking\nup my patch.\n\nThis reverts commit 4a678f8072004eff9214c1a4e1836a14abb69535.\n\nGitOrigin-RevId: da77db58d7629a3bfea1a0053aa9c29764b0bc2b\n"
    }
  ],
  "next": "70589c1aaea4f9de02010d8a9e1cbdf66a1baec0"
}
