<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 - clang rewrite introduces duplicate methods for property declare"
   href="https://bugs.llvm.org/show_bug.cgi?id=47330">47330</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>clang rewrite introduces duplicate methods for property declare
          </td>
        </tr>

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

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

        <tr>
          <th>Hardware</th>
          <td>Macintosh
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>All
          </td>
        </tr>

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

        <tr>
          <th>Severity</th>
          <td>normal
          </td>
        </tr>

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

        <tr>
          <th>Component</th>
          <td>Frontend
          </td>
        </tr>

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

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

        <tr>
          <th>CC</th>
          <td>llvm-bugs@lists.llvm.org, neeilans@live.com, richard-llvm@metafoo.co.uk
          </td>
        </tr></table>
      <p>
        <div>
        <pre>xcrun --sdk iphoneos clang -rewrite-objc ./Mock.m -v -target
arm64-apple-ios13.5

```
// Mock.h
@interface Mock : NSObject
@property (nonatomic, assign) NSInteger testProperty;

@end
```

```
// Mock.m
@implementation Mock
@end
```

Output:
```
// Mock.cpp
static struct /*_method_list_t*/ {
        unsigned int entsize;  // sizeof(struct _objc_method)
        unsigned int method_count;
        struct _objc_method method_list[4];
} _OBJC_$_INSTANCE_METHODS_Mock __attribute__ ((used, section
("__DATA,__objc_const"))) = {
        sizeof(_objc_method),
        4,
        {{(struct objc_selector *)"testProperty", "q16@0:8", (void
*)_I_Mock_testProperty},
        {(struct objc_selector *)"setTestProperty:", "v24@0:8q16", (void
*)_I_Mock_setTestProperty_},
        {(struct objc_selector *)"testProperty", "q16@0:8", (void
*)_I_Mock_testProperty},
        {(struct objc_selector *)"setTestProperty:", "v24@0:8q16", (void
*)_I_Mock_setTestProperty_}}
};
```</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>