<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/92911>92911</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[clang-cl] MSVC `/options:strict` is not supported (recognized as `/o ptions:strict`)
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
MisterDA
</td>
</tr>
</table>
<pre>
Using solely -WX to turn warnings as errors isn't sufficient to probe MSVC for unknown options. MSVC exists with a warning but not an error if it doesn't recognize an option. Following the bug report [`D9002 : ignoring unknown option` will not return an exit code on failure](https://developercommunity.visualstudio.com/t/D9002-:-ignoring-unknown-option-will-n/1211629), `/options:strict` was added in Visual Studio 2022 version 17.0 Preview 4.
clang-cl doesn't need it and mistakenly considers it as the output to a file option `-o ptions:strict`.
```console
> cl -nologo -WX -empanadas test.c
cl : Command line warning D9002 : ignoring unknown option '-empanadas'
test.c
> cl -nologo -options:strict -empanadas test.c
cl : Command line error D8043 : unknown option '-empanadas'
> clang-cl -WX -empanadas -c test.c
clang-cl: error: unknown argument ignored in clang-cl: '-empanadas' [-Werror,-Wunknown-argument]
> clang-cl -options:strict -c test.c
error: unable to rename temporary 'ptions:strict-3e22c2cd.obj.tmp' to output file 'ptions:strict.obj':
'invalid argument'
1 error generated.
````
I think it should be special cased, to not be recognized as `-o <file>`.
There could be a case in clang-cl for `-WX` to not activate warning-as-errors for unknown options to mimic MSVC, but IMO that was a design flaw of MSVC in the first place.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyUlU1v4zYTxz8NfRlIkCi_6eCDn3gN7CF4Cmy72StFjmRuKFIgKXvTT18MJSeOk6ItINiGxfnPj_MqQtCdRdyx1f_Y6rAQYzw5v3vUIaI_7BeNUy-7P4K2HQRn0LxA9vQDooM4egsX4a22XQARAL13PoAOlvFNhDC2rZYabaTTg3cNwuO37w_QOg-jfbbuYsENUTsb8ukN_tIhBrjoeAJx1YZmjGBdBGEnF6Bb0BGUw9mTR-k6q_9EOjIp5nB0xrgL2ccTQjN24HFwPgLdc10c6qLgwKo96M46T-feM7F1ARdtTHLtMd2WCH7pCNIpBGehFdqMHtnqwPj2FOMQWLVn_Mj4UeEZjRvQS9f3o9XxJT_rMAoT4qi0y6XrGT9Gxo-JJGPVPruSZDNJNpFkhJFZxo8lL8s1rxk9D8DWBePHOYKs2ofotYyJWwQQSqECbeF7cgvfkl_gBedwRh-0s1Bu8gJ-83jWeIFlzooDK_bSCNtl0twE2CJJUQYU9DpE8YzWvIB0NmiFlPNIBUCBdmMcxpRxAa02OEeTYDMHH1lnp_PnupgeUnYG53-rLyANZNYZ17lUfhn2g7BCkVMMMZdX9JTRB9f3hGq0xdcq-seEA-ObN13GN5Pmrf49yX3s_wvXVMqHbbGs0st_BTMBzPm5C0Qm73xOx0g7-bp1Inw39tSZKRZTndwa3HunpsmeJhn-kD1dC_SqQx3wCeDH-LxnvOESjUGqGo9W9AgR-8F54V8I5U4lq5BzyaXKXfMzj_1AgNFdSy9V3UcrOkxxrOZaoyPanoXR6jUcr3Eu5_R0aNGLiCq_K1B6JhkAmH59hXjS9pl6IZzcaBQ0CGFAqYUBKQIqatro0kBp8G1qKeqdqT9Y9UD4rPry1hq_n9AjyKuiSFq3CUsDleyfflDzzx6EjPos4msDZCJk84T-ZACTVa97LdMgJlCaul8f_w_xJOI0UEAhrQpojbiAa6eRrW1q-1b7EGEwQmK-ULtK1VUtFrgrNzSw1tV2uzjtis0Wi7UUom03tRRVjSWWrVqqtsVyo9qF3vGCL4sVL0u-qpfbXG0UR74SzUpK3NZLtiywF9rkxpz73PluoUMYcVfzuiwXRjRoQlpknFu8QHrJOKe95ndkkzVjF9iyMLRo3lSijiZtwNcmWB2m-_39kNUhxTmMA60VVMD49kNOyfaTqcd4vRi92b3fGZ2Op7GZVwOxzV_Z4N1PlLQs0o0C48d0478CAAD__8Y1iI8">