<html>
    <head>
      <base href="https://bugs.llvm.org/">
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - incorrect formatting of class in function"
   href="https://bugs.llvm.org/show_bug.cgi?id=44537">44537</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>incorrect formatting of class in function
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>clang
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>trunk
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>PC
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Windows NT
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>enhancement
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>Formatter
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>unassignedclangbugs@nondot.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>janwilmans@gmail.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>djasper@google.com, klimek@google.com, llvm-bugs@lists.llvm.org
          </td>
        </tr></table>
      <p>
        <div>
        <pre>- When a class is used inside a function
- And it inherits from a base class
- And its immediately used

The formatting is really odd, notice
- the mismatched braces of OnTaskExecute
- the mis-alignment of OnTaskAttach
- the incorrect placement of // namespace Foo (its on the wrong closing curly)


Before format:

namespace Foo{

void Bar( const char *Text, const char *Title )
{
        class MyErrorBox :
                public ErrorBox,
                public Foo::CTask::Client
        {
        public:
                MyErrorBox(const char *Text, const char *Title) :
                        ErrorBox(Text, Title)
                {}

                void OnTaskExecute(const Foo::CTask *pTask, Foo::uintptr vlaue)
override
                {
                        ErrorBox::OnTaskExecute(pTask, vlaue);
                }
                void OnTaskAttach(const Foo::CTask *, bool attach) override
                {
                        if (!attach) delete this;
                }
        } *pBox = new MyErrorBox(Text, Title);

}

}

After format:

namespace Foo {

void Bar(const char * Text, const char * Title)
{
    class MyErrorBox : public ErrorBox,
                       public Foo::CTask::Client{
                           public:
                               MyErrorBox(const char * Text, const char *
Title):
                                   ErrorBox(Text, Title){}

                           void OnTaskExecute(const Foo::CTask * pTask,
Foo::uintptr vlaue) override{
                               ErrorBox::OnTaskExecute(pTask, vlaue);
}
void OnTaskAttach(const Foo::CTask *, bool attach) override
{
    if (!attach)
        delete this;
}
} // namespace Foo
*pBox = new MyErrorBox(Text, Title);
}
}</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>