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

    <tr>
        <th>Summary</th>
        <td>
            [clang-tidy] bugprone-throw-keyword-missing on default member initializer: "did you mean 'throw shared_ptr'?"
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang-tidy
      </td>
    </tr>

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

    <tr>
      <th>Reporter</th>
      <td>
          N-Dekker
      </td>
    </tr>
</table>

<pre>
    Using LLVM 19.1.7, I encountered a false positive `bugprone-throw-keyword-missing` from [ITK](https://itk.org)'s [itkExceptionObject.h](https://github.com/InsightSoftwareConsortium/ITK/blob/32a2a6de17ffb7c8319ab38dbe61bd3b7c171f00/Modules/Core/Common/include/itkExceptionObject.h), which can be reproduced as follows:

```cpp
#include <exception>
#include <memory>

class MyException : public std::exception
{
public:
 MyException() = default;
private:
  class NestedData;
 std::shared_ptr<NestedData> m_shared_data{};
};

class Bug : public MyException
{
public:
  Bug()
  {
    // Non-defaulted default constructor.
  }
};

```

Output:

```
warning: suspicious exception object created but not thrown; did you mean 'throw shared_ptr'? [bugprone-throw-keyword-missing]
   10 |   std::shared_ptr<NestedData> m_shared_data{};
      |                                            ^```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJykVEuP2zYQ_jXjy8AGRVqWddDBjzUQJLs5NO01oMSRxa5ECnys6_76gpJ31-gGaYAKAmR65ht-37yk9_psiCrI95AfFzKGzrrqaXmk52dyi9qqa_W71-aMX7788YhZucpWBfADfkIyjY0mkCOFElvZe8LReh30CyFsWB3Po7OGlqFz9rJ8puvFOrUctE_xYMOwdXZAyPefvn2G_Ah824UwehA74CfgJx2eV9adgZfAC58cdXh--KuhMWhrvtZ_UhNW3Y-QZx26WK8aOwA_fTJen7vwm23DRTo6WOOtCzpOtm-fgZ_q3tbAT4JLLjeKsqJt66LZiqyUtdiqmjZZrURdNFmRtYwBPz1aFXvywE8H62j6DIM1ibRp-qhopv-RbNJywEunmw4babAmdDQ6q2KT0uixtX1vL5MUNr0bNr_NOKYjF7cbEMSBXuODePhgHGiw7nqzsF3TS-_x8frGCUHscIx1rxv0QaUbxe49IttBsQe2mz1mPvdw4FvgJYI4oqJWxj6AmPydfpGBbgCcr30iH0gdZZCz0_uFvpOO1PcxOBCHe7cHHL7fjCr9UeyhOM7o9x-vsvbxfC_nnuYPdSTALGA6zR6IiHP_4JM1y5sqUq_6sLHGBxebYN3qhjv-i85buebj1xjGGD4WE9juIp1JcyB26KMfdaNt9PiWf7RTy2DjSCYOdQxobMBpmAyIPSqt8GojDiQNAi8mC97lkxcgTmls_mMS8-MsPmMIxQHx_xUHp2cO9MsP5A9vuVmoSqhSlHJBVVasM7bNsrxYdNVacFK1aIRgdUuMNYJEvi0zuS0pZ6xd6IoznjPB1qwUZbZZFWWbi4xYS61qJVvDmtEgdb_q-5ch7ZaF9j5SlfFyU-SLXtbU-2kXct700pyXQasrcJ52o6sSalnHs4c167UP_j1O0KGftugdLD_izzOP1rz11kBDTQ610UHLXv9NLnUGcP5rZQbOF9H11U_2YOJ6-yxHZ1N3pS2VEpAW2S0HLxX_JwAA__-VIuLM">