<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/114770>114770</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[clang-tidy] compiler flag '-Warray-compare' does not take effect
</td>
</tr>
<tr>
<th>Labels</th>
<td>
clang-tidy
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
stephenLucien
</td>
</tr>
</table>
<pre>
clangd version
```shell
[li@ArchLinux-li cpp]$ clangd --version
clangd version 18.1.8
Features: linux
Platform: x86_64-pc-linux-gnu
[li@ArchLinux-li cpp]$ clang-tidy --version
LLVM (http://llvm.org/):
LLVM version 18.1.8
Optimized build.
```
my `.clangd` file:
```yaml
Diagnostics:
ClangTidy:
Remove:
- modernize-use-trailing-return-type
- modernize-use-nullptr
- modernize-use-using
- modernize-use-bool-literals
- modernize-use-equals-default
- modernize-avoid-c-arrays
- modernize-redundant-void-arg
- modernize-deprecated-headers
- bugprone-easily-swappable-parameters
Add:
- modernize*
- bugprone-*
- performance-*
CompileFlags:
Add:
- "-ferror-limit=0"
- "-fdelete-null-pointer-checks"
- "-Wall"
- "-Wextra"
- "-Wpedantic"
- "-Wformat=2"
- "-Wnull-dereference"
- "-Wpointer-compare"
- "-Wstring-compare"
- "-Warray-compare"
- "-Wno-unused-but-set-variable"
- "-Wno-unused-but-set-parameter"
- "-Wno-unused-variable"
- "-Wno-unused-parameter"
- "-Wno-unused-label"
- "-Wno-unused-function"
```
my test code `main.cpp`:
```cpp
#include <iostream>
typedef struct {
char str[16];
int id[16];
} MyObj;
bool myobj_equal(const MyObj &obj1, const MyObj &obj2) {
if (obj1.str != obj2.str) // compare array here, expect warning !!!
return false;
if (obj1.id != obj2.id) // compare array here, expect warning !!!
return false;
return true;
}
int main(int argc, char *argv[]) {
//
char str1[16] = "hello";
char str2[16] = "hello";
if (str1 == str2) {
std::cout << "same string";
}
//
MyObj a1 = {.str = "hello"};
MyObj a2 = {.str = "hello"};
if (myobj_equal(a1, a2)) {
std::cout << "same obj";
}
return 0;
}
```
only the following warnings pops up:
![image](https://github.com/user-attachments/assets/dea82e61-02e4-4cbe-942d-e6795e7fdcc7)
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy0V0uP4jgQ_jXmYhklDiFw4EA326cezWq12jmOHLsS3OPYWT-YZn79yg7vR9NzWISAlL_6XI8vFcOck60GWKDyCZWrEQt-bezCeejXoF8Dl6BHtRHbBcpWKFtyxXQr8Aask0YPNjTNhrdbg1I7W_mkJJpkS8vXr1KHd6Ik5n2PyhWiE7yjIeSM6Jwc57NxPp4NSy_AfLDgULHEKvIN5j8V842xXTS_z6bfpxPSc5IApNXh87EQL8X2Mp7X13--YERna-97VCwRfUH0RalNNza2TVfzaE5YjBP6VuwYf-297OQvELgOUonxRd12l-mz22I0zcZDKdA0w41UcNjl4LJl3a7SK8labZyX3B2DeY7uf0uxPYlveP0FndlEQnxujy-COyPAavkLSHBAvGVSSd0SCz5YTfy2h8deOijVe7sDXq4GJ3X7mKQ2RhElPVim3GM4_BuYckRAw4LyN7ZmGyMF4YRZy7YPCC2IoAXTniQnZh_EK6C3wJkHQdbABNib_HVoe2s0EGBOqi1xP1nfs1oB6ZllHfgrv6UQD_uE6PLDzRC9TdCDjfcN0zxhBsiz6Xqp4EWx1p0J52YkBCNKSQPWGkuU7KRHxSpDlN6ECVDgB3GQ3kjtwRK-Bv7DHT0G6Dem1B2Wb_DuLbu32ENsmuT31lPCMUh6D5GiE2ChAQuaw92d9gmYrmf2Lsx5G--eB6gkyUcgbUjQwYEgdfDEgScbZmWUz1X5rqEHgT1m_wTrb7ApVoP6gKoJmvs4bi-ZPhiQhzHpwXnMjYA4MDsm9TjO9Gl2PSyj_ZSBFlJzFaJn8SyN8xZYh4o_TkFx1glosPM2cI9R9bSLkK-ZjVZUPuXT-Agp9itYao-luFpA1Qp_2X6t346W9BlnHO62pn77nuYXojNutPMDGCM6NfVbjugzvjZTROcnQWHZxAdVxI-dtxjRHBUrHIHxOoHT0wvvdIaT6vAaouSeMbz3wD3-yayWuk3uw_vQleERgBumHJymfNxXirNtpfjfdt1ZvQ1wWuTT2sZWRE0gOos_mW15KmRsHqJLZtvNcOK5qOMQ7_5q3-t831Mc00OUxoOOiao9VmKPpZ_ADlWLxBEUccnxPBSMnY9jFxVLboKPWkXFc2R0rAM8DJdz3kMRLhMZpMPyIabqaRDJRXzVqZZ3HvTzHkNS53pmSb4spvZ72Zn67W5qu_Zn93p_c2wYrbbYrwE3RinzM-ptpzuHe9M7HPrj4KCx4bJjLSSFpAOgO5wAW-nXoR5z0yH6EhxYwrxnfN2B9g7RF-YcpB8C2IzCNCcZhQmZ8BrIfEIFgWk1L6FqBOdVrEzadCQWhZgXczaCRV4VWZWX81k5Wi_obDYVOUDJi6apBRTQsFpUE84r3oiZGMkFzegkz7NJntEpLcfzrGTNXLB50ZTTOq_RJIOOSTXen11H0rkAizyfVFU2SlPapX8AlB5Pw7H-5WpkF9GL1KF1aJIp6bw78njpVfrvcOJWrtLtLhVY3CgW7-vq6ilXYWHAYW089uwHYGga4H4UrFp8UOy47-6L9Na8AfeIvqRkYr13-WwW9L8AAAD__3L0oBQ">