)]}'
{
  "commit": "b4e53e9b3c963b1c0fe9637618dec8042764f599",
  "tree": "0032767bbbe11287e921f5bc1f0c57867ebfa7b5",
  "parents": [
    "f137a7c6b122e524294fb792bb97d5f3b0600c4f"
  ],
  "author": {
    "name": "Jason Merrill",
    "email": "jason@redhat.com",
    "time": "Mon Mar 02 14:42:47 2020 -0500"
  },
  "committer": {
    "name": "Jason Merrill",
    "email": "jason@redhat.com",
    "time": "Mon Mar 02 15:49:58 2020 -0500"
  },
  "message": "c++: Allow parm of empty class type in constexpr.\n\nSince copying a class object is defined in terms of the copy constructor,\ncopying an empty class is OK even if it would otherwise not be usable in a\nconstant expression.  Relatedly, using a parameter as an lvalue is no more\nproblematic than a local variable, and calling a member function uses the\nobject as an lvalue.\n\ngcc/cp/ChangeLog\n2020-03-02  Jason Merrill  \u003cjason@redhat.com\u003e\n\n\tPR c++/91953\n\t* constexpr.c (potential_constant_expression_1) [PARM_DECL]: Allow\n\tempty class type.\n\t[COMPONENT_REF]: A member function reference doesn\u0027t use the object\n\tas an rvalue.\n\n\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5a908241c6ac713b557c393d4fc163952e068fd0",
      "old_mode": 33188,
      "old_path": "gcc/cp/ChangeLog",
      "new_id": "7692a8f1903fcb7e481555a1e906fc22d3bfbbb9",
      "new_mode": 33188,
      "new_path": "gcc/cp/ChangeLog"
    },
    {
      "type": "modify",
      "old_id": "bc2476f94f924c0d4ec7359f061b4a91a0d49c2e",
      "old_mode": 33188,
      "old_path": "gcc/cp/constexpr.c",
      "new_id": "2006ad9f45eec6966f44d4e2f0eb482b3e9ea317",
      "new_mode": 33188,
      "new_path": "gcc/cp/constexpr.c"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ca4f9a55e5f9686c02b1fcbda62cbfd9e1aac93d",
      "new_mode": 33188,
      "new_path": "gcc/testsuite/g++.dg/cpp0x/constexpr-empty14.C"
    },
    {
      "type": "modify",
      "old_id": "f21a9896ff288f7569c5d1f9f3242989cbf93936",
      "old_mode": 33188,
      "old_path": "gcc/testsuite/g++.dg/cpp1z/constexpr-if12.C",
      "new_id": "005aa80fc093adf6394013c9122182094bcdbb9d",
      "new_mode": 33188,
      "new_path": "gcc/testsuite/g++.dg/cpp1z/constexpr-if12.C"
    }
  ]
}
