<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/59338>59338</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            __PRETTY_FUNCTION__ no longer contains namespace qualifications for return type, affects frontend and libtooling
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
      </td>
    </tr>

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

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

<pre>
    Version | trunk
-- | --
OS | All

Clang 15's __PRETTY_FUNCTION__ emitted fully qualified return type name, but Clang 16 lacks namespace qualifications.

```c
#include <iostream>

namespace SE {

struct my_struct {
    int field;
};

template<typename T>
my_struct func() {
    std::cout<< __PRETTY_FUNCTION__;
 return my_struct{};
}

}

int main()
{
 SE::func<int>();
    return 0;
}
```
trunk yields 
> my_struct SE::func() [T = int]

clang 15 yields
> SE::my_struct SE::func() [T = int]

When updating libtooling plugin, a similar issue occurred: `FunctionDecl`'s `getReturnType()`, `getType()`, and `parameters()` each `QualType` no longer prints in fully qualified form, and requires manual walking through `getPointeeType()` and retrieving qualified name from `TypedefType`, `RecordType`, this is probably connected.

Compiler Explorer: https://godbolt.org/z/bGKTvEjKe
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJycVE2P4zYM_TXKhUjgWHEyOfgw4yRtscDudiZt0VMgy7SjHVnyStR0019fyLHz0ZleCgSOKIqPj4-UhPeqMYg5y55YtpmIQEfr8p_xh7aumpS2OuW_o_PKGmCrAsgF88qSDUsep9N-Zzo9m19eevNR67N9_hZamAbmGUtXHg6Hr8_b_f7Pw-63z8X-ly-fDwfAVhFhBXXQ-gTfg9CqVliBQwrOAJ06BCNaZGkBZSAYAJeghXz1vct3QuIYKgUpa_zslgRbJuefHOyUKyN1qBAYL5T15FC0jG9vg67IL1tgq6dbnycXJEF7Ogyrix8AQBmCWqGuGB-jVpvruv8Stp0WhIwXscSYDPYXBlfgOhjJ0geWru9zeKoYf2T8UdpAjBeMFx_Je8k66nlBjmi3rFabO8XuzVhRK5Q5MxmPjNAv2zOVnisvlKFYyPkov-E8UEg-SDo2aBAnDhmcooQehhN8eyP3XcZBnexpD4xvovosu2MvhxkcEK-AI8z_Bf7jiAZCVwlSpgGtSrJWx2WnQxPVKkCAV63SwoHyPiBYKYNzGJsHbJnsgpFxXjcodSw_3hK2TBqk516s_anDQcnoLQbnu21hqujqhBMtEjp_8QIKeYy-X4PQfdwyAWNBW9Ogg84pQx6UeXcBa-vaEdrh96AcemiFCULDX0K_xjrp6GxojgOrr1YZQrwjN4STU_gWI674_cjXzrYxOsZUWA_8hkKfUVpX3ezRUXlQHjpnS1HqE0hrDErC6u66F7btlEYH2x-dtg5dFPtI1PnY3HTH0l1jq9JqmlnXsHT3N0t35U-f9m_bb59wUuW8WvO1mGA-X66SNF1knE-OOeKcZ6KaZ-W8zEouuCgXiwXWtVyvsmUlJipPkzSdp0mWrOYZn894IjO5mC-WHB8k8gVbJNgKpWdav7Ux96Qfijxbc_4w0aJE7ceH2OXx0LQMjWeLRCtP_hpGijTmHz2n185Ka0go899PZOzw7TPbN7uuUZKPfTGEpurbdx3sSXA6_5eSio6hnEnbsnQXCQ5_087ZbyiJpbu-SM_SXV_nPwEAAP__eV73hg">