<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=http://email.email.llvm.org/c/eJylk02PnDAMhn9NuFiLQhgYOHCY3dmqPVQaqb1XIRhIlSEoCYPm39eBVv2QVhptJYt82Lx-4jit7e7NCVjJlZHTwPIT2cXh7KxC763bdz5L5eyXIANSJNj2O6oASk7QIkgVI7GDMDq7DCONCPPSGq3gdPkEi9fTEDPMf8im16j4rcVBT0xUTNRPLH_1qOzUUWjK-Jnx0_79aFe8oWPiBUhKYdT6G0h7mJ2-xRUF3e0S2Zg4BkqOoAPoCSSE-7z511GrkX4g0Sn4Lbx39gqr0yGiRn5lOwQ_2jUe0dg1lmFHKvluap73nZvVHfTW0jGI3lNdHqykKMHvk5rlz__Iv5XtfSmA5Wd4uP5vwCRdk3d1XstELmG0rvmKPhbsQjAhWZxpxhBmHyHEB7JBh3FpU2WvtDDm9mt4IorYQLTU3i_oaVLkvM6TscnLvs67sjpIrLhUQmS9kAXWR5lVh1b2iZF0H75hxTMTYsIVNgmas-Kc_D-BbgQXgme85oWoeJYKgillUVYZV1V_FOzA8Sq1SaNOat2QuGaTbJfBk9NoH_xvp_ReDxPiBkyEQQeDzYPXFxtwMR1MNsSH9rPFkw252Xh_AGh8MUk>53093</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            clang::Preprocessor::MacroState should not be private
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          TestingPlant
      </td>
    </tr>
</table>

<pre>
    A `clang::Preprocessor::MacroState` object can be accessed through the public API using `preprocessor.macro_begin()->second`.

However, since `MacroState` is private, you can't use it in a type, which prevents you from writing the code shown below:
```cpp
void foo(const clang::Preprocessor::MacroState& state);
```
```cpp
const clang::Preprocessor::MacroState& state = preprocessor.macro_begin()->second;
```

</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJydUk2L2zAQ_TXyZVgjS2vHPviQ3WxpD4VAey-yPLFVFMtIckz-fUd2Sz9gIRQGa0Z6fu9pNJ3r7-0RWMW1VdPA5JHi7HH2TmMIzu87n5X27ktUEQkJrvuOOoJWE3QISick9hBH75ZhpBVhXjprNBzPn2AJZhqSwvwHbX5NjN86HMzERM1E88TkW0Dtpp6gOeMnxo_796Nb8YaeiVcgKo2J629DJsDszS1VBLq7JXlj4hBJHMFEMBMoiPd5O19Ho0f6gUinGDb4xbsrrN7EZDX5165HCKNb0xWtW1MbdksV30PP875zc6aHi3N0DXIfqC8PdlJUEPakYfLlH_r31P5PApg8wcP9f8dM1reyb2SjsmiixfZBE6mNi-1hcjGNy8-HyhZv2zHGOSS8-EAxmDguXa7dlQprb7-WJ6JOA0elCWHBQEkpeSOzsa1VcSgazeWlry_ygEpVUjccpVTdsyjKzCp6v9Cy8oUJMeEKGwXlrDxlphVcCF7whpei5kUu-qquVFnVBdf15SDYM8erMjZPPnLnh8y3m6VuGQIdWhNi-H2oQjDDhLjJEb9a4uh8-xVDGqwz9Stmm367-f8BfV4bnQ">