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

    <tr>
        <th>Summary</th>
        <td>
            ubsan: Suppression for implicit-integer-sign-change does not work for -O1 and above
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

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

<pre>
    This happens when:

* Using `-O1` or above
* Using `integer-sign-change` suppressions based on function name, as opposed to file name

Steps to reproduce:

```
$ cat << 'EOF_CPP' > /tmp/a.cpp && cat << 'EOF_SUPP_ISAN' > /tmp/supp_isan
int fun(unsigned a) { return a; }
int main() { (void)fun(4294961650); }
EOF_CPP
implicit-integer-sign-change:fun
EOF_SUPP_ISAN
```

```
$ bld/bin/clang++ -O1 -g -std=c++11 -fsanitize=integer -o /tmp/a.exe /tmp/a.cpp && UBSAN_OPTIONS="suppressions=/tmp/supp_isan:print_stacktrace=1:halt_on_error=1:report_error_type=1" /tmp/a.exe

/tmp/a.cpp:1:30: runtime error: implicit conversion from type 'unsigned int' of value 4294961650 (32-bit, unsigned) to type 'int' changed the value to -5646 (32-bit, signed)
    #0 0x560fd5739b46 in fun(unsigned int) /tmp/a.cpp:1:30
    #1 0x560fd5739b46 in main /tmp/a.cpp:2:20
...
 #4 0x560fd570d3f4 in _start (/tmp/a.exe+0x13f4)

SUMMARY: UndefinedBehaviorSanitizer: implicit-integer-sign-change /tmp/a.cpp:1:30 

```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJx8VE1v4zgM_TXMhXAgU7YTH3xwmgkwh2mLzfSwp0C25FhbRzIkOe3sr18oSZt-LuAgAMX3RD4-Sniv90apCvIV5OuZmEJvXXUQ3dA-2llj5Z_qd6899mIclfH41CsDvAZ2-qjGB6_NHqFgyV0KBUPrUDT2qD4eaxPUXrkk3pe0vTB7FdP9NI5Oea-t8dgIryRag91k2qCtQSMOCugGhUc7jjYeB4udHtT56FTGNqjRx7hTo7NyatW1woJdvlhOhq0ICPwG-A0CLX7cbXY39_dACwT-A4E24TACbcS8HUcEKoCKLyDbh_v73c9tffsJGLvZaS8MsFqbEPsAWk7mJLJEAVQiLFboVJicQQF8hbBYX7IPQsf0lySg5dFqCVSeaTIqs7JIi5wBlVfkSxOs1odx0K0OyVda8zqynNOvDXxQ6LNgzSCBNk0sbNMOwuyBVkArTO5STPaY-CCBr9tzNE0x6bwwOuh_FfD1pQ5M7Ftt1bP6RuqH1ba-3d3d__55d7sFvgait_44RT4pzevRaRN2Poj2MTgRp79Ogde9GMLOmp1yzrpLzKnRunAO7cKf8ZxL9KG-F3u_LRJ4HRk4A16jm0zQB4UX7hpftMfWmqNysV7snD1gvCQa59UE2oToG9vhUQyTwutY48Q5JY0O0fIvgGiHYF95LvDzVCWGXl14gsUkL7LiPcsrB7AaERGIM2TPecE6mS942WQFavPRqKdLSvxOgFeq9Auq6OLPSIq_iJzP5xEPxLMrmEneZREcp-gCnrbg3UBoxZ5T3mXnTuLSP_z6Vf_1d9T-wUjVaaPkSvXiqK3bXiz4bjJfbcV3HeKHZZjJisuSl2KmqnSRUcF5nuezvioktUowSQ3xrhU8a1KS3ZI4lctcEpvpihjljBOxZU48n-fLjBb5shBdsVgIVkLG1EHoYT4Mx8Pcuv1Mez-pKuWUcz4bRKMGf3qeiYx6wtMpEMXX2lURlDTT3kPGBu2Dv9IEHQZVTc15R3B7XSTsrPt_WaRVHo0N-GTd4yk97rsw8vy2zyY3VH0Io48PLW2ANnsd-qmZt_YAtIk1XP6S0dl_VBuANqfKPdDm0tqxov8CAAD__xOl9bY">