)]}'
{
  "log": [
    {
      "commit": "f6495c78a84b4a797a6faf77f8bd56998c739509",
      "tree": "963ffcb86fadb817451ca92d7a2d99a08e71ba93",
      "parents": [
        "557b3a1194e03339b025b2d2282a0cc34aded7bb"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jul 25 09:20:57 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Jul 25 11:13:47 2016 -0700"
      },
      "message": "Stop #define\u0027ing __func__ and __restrict.\n\n__STDC_VERSION__ isn\u0027t defined for __cplusplus, so we\u0027ve been removing\nsuch checks. Some got missed.\n\nStop defining __func__ and just use the __PRETTY_FUNCTION__ GCC extension\nin \u003cassert.h\u003e. Also fix the #if there so that C++ gets __assert2 rather\nthan __assert, and rewrite the cast to work with -I rather than -isystem.\n\nAlso remove __restrict and just always use the __restrict GCC extension.\n\nAdd a trivial test for \u003cassert.h\u003e.\n\nBug: http://b/30353757\nChange-Id: Ie49bb417976293d3a9692b516e28fe3c0ae0a6d9\nTest: ran bionic unit tests.\n"
    },
    {
      "commit": "3ba55f8022f3d5c5ca94a3df46fa658eda791987",
      "tree": "9e500c17531ea742e86de6848cc10ebca7ef28cb",
      "parents": [
        "93bae32c27f41e55e1cf9a6f5f8a05fbc1feaf1d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 08 18:11:23 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 09 17:40:19 2016 -0700"
      },
      "message": "Rationalize visibility.\n\nIf it\u0027s C or POSIX, it\u0027s in. If it\u0027s BSD or GNU, it\u0027s guarded by __USE_BSD\nor __USE_GNU.\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d194631\nChange-Id: Ife51a21c2b37b060db56780d29c929805b199cb6\n"
    },
    {
      "commit": "409e48add1e9ec6189efbf32c376c1c90c7e186d",
      "tree": "6b15b7374a347e0b1a738228ccf84208b2bbf9df",
      "parents": [
        "74669e99ce73da86002fe047c73913427ef1d2a1"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 08 10:52:15 2016 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 08 10:52:15 2016 -0700"
      },
      "message": "More C compatibility.\n\nAdd C11 static_assert to \u003cassert.h\u003e. Remove uses of __dead while we\u0027re there:\n__noreturn already does the same thing on those functions.\n\nFix \u003cuchar.h\u003e so it works from C.\n\n\u003cstdalign.h\u003e and \u003cstdnoreturn.h\u003e are provided by clang, so there\u0027s nothing\nfor us to do.\n\nBug: http://b/29178582\nChange-Id: Iebc46223868729a26d1a61eb125b76cbcb83a22d\n"
    },
    {
      "commit": "323d4b6f6839b472ac02c31105727147660dc4db",
      "tree": "e5374de63274cd89e3bfcee3adfd4a0a3b89da00",
      "parents": [
        "ae189740de6b03f06a06214122183a3774f5cb62"
      ],
      "author": {
        "name": "Vadim Markovtsev",
        "email": "gmarkhor@gmail.com",
        "time": "Mon Jan 13 11:54:42 2014 +0400"
      },
      "committer": {
        "name": "Vadim Markovtsev",
        "email": "gmarkhor@gmail.com",
        "time": "Wed Jan 15 07:32:52 2014 +0000"
      },
      "message": "Add \"__noreturn\" to assert and assert2\n\nThese functions should print assertion violation messages and then\ncall abort(). They do really not return control flow afterwards.\nConsider the declaration of the similar __assert_fail from glibc:\n\nextern void __assert_fail (const char *__assertion,\n                           const char *__file,\n\t\t\t   unsigned int __line,\n                           const char *__function)\n     __THROW __attribute__ ((__noreturn__));\n\nBionic has __noreturn defined in sys/cdefs.h to be that GNU\nnoreturn attribute.\n\nThis patch has a practical value. Consider the following function:\n\nvoid check(void* ptr) {\n  assert(ptr !\u003d NULL);\n}\n\nWithout this patch applied, gcc (and presumably clang) shows even in\ndebug mode:\n\nwarning: unused parameter \u0027ptr\u0027 [-Wunused-parameter]\n\nIn release mode, NDEBUG is defined and assert() becomes a no-op, as\none should expect. Thus, the warning is shown correctly then.\n\nAnother code sample:\n\nfloat array[2];\nint i \u003d 3;\n...\nassert(i \u003c 2);\narray[i] \u003d 0;\n\ngcc says,\n\nwarning: array subscript is below array bounds [-Warray-bounds]\n\nIn other words, without noreturn attribute, assertions do not\nallow a compiler\u0027s static analyzer to properly understand\nthe preconditions.\n\nChange-Id: I3be92e99787c528899cf243ed448c4730c00c45b\nSigned-off-by: Vadim Markovtsev \u003cgmarkhor@gmail.com\u003e\n"
    },
    {
      "commit": "1dc9e472e19acfe6dc7f41e429236e7eef7ceda1",
      "tree": "3be0c520fae17689bbf5584e1136fb820caef26f",
      "parents": [
        "1767f908af327fa388b1c66883760ad851267013"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:28:35 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 19:28:35 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "1767f908af327fa388b1c66883760ad851267013",
      "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
      "parents": [
        "a799b53f10e5a6fd51fef4436cfb7ec99836a516"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:13 2009 -0800"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Mar 03 18:28:13 2009 -0800"
      },
      "message": "auto import from //depot/cupcake/@135843\n"
    },
    {
      "commit": "a27d2baa0c1a2ec70f47ea9199b1dd6762c8a349",
      "tree": "defd1cc07d16ad2f3b21154114e092d11c94c5bb",
      "parents": [],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Tue Oct 21 07:00:00 2008 -0700"
      },
      "message": "Initial Contribution\n"
    }
  ]
}
