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

    <tr>
        <th>Summary</th>
        <td>
            regression: clang -Wunused-parameter stopped warning for unused params in Objective-C methods at some point
        </td>
    </tr>

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

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

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

<pre>
    I don't know when it happened, and [godbolt compiler explorer does not support Obj-C with clang](https://github.com/compiler-explorer/compiler-explorer/issues/7064), but clang's `-Wunused-parameter` used to warn for unused Obj-C method parameters, but now it doesn't.

Example code:

```objc
@interface RRPoint

- (instancetype)initWithX:(double)inX Y:(double)inY Z:(double)inZ;

@end

@implementation RRPoint

- (instancetype)initWithX:(double)inX Y:(double)inY Z:(double)inZ
{
        return self;
}

@end

int main (int argc, const char * argv[])
{
        return 0;
}
```

Result with old AppleClang 10 (Xcode 10.1):

```
builder22:Desktop builder$ xcrun clang --version
Apple LLVM version 10.0.0 (clang-1000.11.45.5)
Target: x86_64-apple-darwin17.7.0
```

```
builder22:Desktop builder$ xcrun clang -fsyntax-only -Wunused-parameter test.m
test.m:9:35: warning: unused parameter 'inX' [-Wunused-parameter]
- (instancetype)initWithX:(double)inX Y:(double)inY Z:(double)inZ
                                  ^
```

Yet with newer AppleClang and open source clang 19.1.3, there is no warning.

(Godbolt compiler explorer does support Obj-C with gcc, and gcc does still warn here, FWIW)
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy8Vd9r5DYQ_mu0L4ONLP-KH_zgJJdycKUllCa5lyJLs7buZMlIcjb574tsby5lr1cotCGw2tnRzDcz33zi3qvBILakvCbl7YEvYbSu9cjNdOitfG0_grSGsDrAV2NPcBrRgAow8nlGg5KwG-BGAimvByt7qwMIO81KowN8mbV16EBa9GBsAL_Ms3UBfum_JDdwUmEEobkZSHlL2NUYwuxJ3hF2R9jdoMK49KmwE2F355jJOebf2JT3C3rC7mpaFYQ1EV6_hD0Lqz2QiiYPi1k8ymTmjk8Y0JGKQrRAsHDizsDROticdqwThtFKeLvhz5FjU1RYS1zblBLaEdp9eOHTrBGElRhLWo2kotu_7b-I-L2gygR0Ry4Q7u9_tcqEzTMBwq6U8YEbgeF1RsIaZVR4UGF8XFt0Je3S683-CE8Xtif4fGH7TPLrHUlB0ci3s4pYJzSBB2XN_wOFdqTe0DQOw-IMeNTHHWF9e4lTmQATV2bDE4C7QcQpCGt8ADFyB4R10fy8sTnO_zIL_UuK80S2FPfoFx02YlotoZtnjTeRO5DRmPcxzhMymmYx-MVcCe36RWmJjjGSd7fovwY7w24jrIAX4Raz0RGS5BmdV9YQ2q2Z4NOn33-G3Riz0HTNuronGaU0zbK0KNNyK-037gYMJO_g5ar6oyoSHqMkkruTMlmd1im9rPHfgj36VxP4S2KNfoXLFYKAPqQTod1-yLvYoLyM8OJOKTPE475V3-4RVivzSFgdNeQ7q1ne_qckhH_8I-WHyy4-4U4Tgyd074kS1dDOaMDbxQnc25c1aZbmka5hRIegoiCe-7JrBmFXP_1YQ7-jn4MQZw0ehNjdgtJ6E7KYLP5-9_DxgbDmINtcNnnDD9hmdc7qomRVdRhbdkTaUNnwnvMmr0Qhs16WFKtGsGMl6oNqGWVFlrGaMVoXVVrwvqmOFWZCNMc643FVJ650qvXzlFo3HFYxbrOsbvLsoHmP2q_vDGO7HLP45Lg2Xkj6ZfCkoFr54L-FCCpobB0ODv26KXl35uMlA32w84zy3NX3Ir46eVAmtg5FUM_4JuoeeABvJ4Q5qt5hcbr9wVMUse0fyexsjPb-4dnLfW7ZnwEAAP__H1tN0A">