<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<span>Package: clang-9<br>
</span>
<div>Version: 1:9.0.0-3+b1<br>
</div>
<div>Severity: normal<br>
</div>
<div>Tags: upstream<br>
</div>
<div><br>
</div>
<div>Dear Maintainer,<br>
</div>
<div><br>
</div>
<div>clang-9 can not parse the sanitizer suppressions that it generated<br>
</div>
<div>itself.<br>
</div>
<div><br>
</div>
<div>To reproduce:<br>
</div>
<div><br>
</div>
<div>$ export UBSAN_OPTIONS="suppressions=./supp:report_error_type=1"<br>
</div>
<div>$  cat ./supp <br>
</div>
<div>implicit-signed-integer-truncation-or-sign-change:foo.cpp<br>
</div>
<div>$  cat ./foo.cpp<br>
</div>
<div>int f() { return (unsigned long){0} - 1; }<br>
</div>
<div>int main() { f(); }<br>
</div>
<div>$ clang++-9 -g -fsanitize=address,integer -o ./foo.exe ./foo.cpp && ./foo.exe<br>
</div>
<div>./foo.cpp:1:37: warning: implicit conversion from 'unsigned long' to 'int' changes value from 18446744073709551615 to -1 [-Wconstant-conversion]<br>
</div>
<div>int f() { return (unsigned long){0} - 1; }<br>
</div>
<div>          ~~~~~~ ~~~~~~~~~~~~~~~~~~~^~~<br>
</div>
<div>1 warning generated.<br>
</div>
<div>AddressSanitizer: failed to parse suppressions<br>
</div>
<div><br>
</div>
<div>To verify the suppression name has no typo, clear the file and run the<br>
</div>
<div>command again:<br>
</div>
<div><br>
</div>
<div>$  echo "" > ./supp <br>
</div>
<div>$ clang++-9 -g -fsanitize=address,integer -o ./foo.exe ./foo.cpp && ./foo.exe<br>
</div>
<div>./foo.cpp:1:37: warning: implicit conversion from 'unsigned long' to 'int' changes value from 18446744073709551615 to -1 [-Wconstant-conversion]<br>
</div>
<div>int f() { return (unsigned long){0} - 1; }<br>
</div>
<div>          ~~~~~~ ~~~~~~~~~~~~~~~~~~~^~~<br>
</div>
<div>1 warning generated.<br>
</div>
<div>foo.cpp:1:37: runtime error: unsigned integer overflow: 0 - 1 cannot be represented in type 'unsigned long'<br>
</div>
<div>SUMMARY: UndefinedBehaviorSanitizer: unsigned-integer-overflow foo.cpp:1:37 in
<br>
</div>
<div>foo.cpp:1:18: runtime error: implicit conversion from type 'unsigned long' of value 18446744073709551615 (64-bit, unsigned) to type 'int' changed the value to -1 (32-bit, signed)<br>
</div>
<div>SUMMARY: UndefinedBehaviorSanitizer: implicit-signed-integer-truncation-or-sign-change foo.cpp:1:18 in
<br>
</div>
<div><br>
</div>
<div>Note that everything can be properly suppressed when using `unsigned`<br>
</div>
<div>instead of `unsigned long`.</div>
<div><br>
</div>
<div>Thanks,</div>
<div>Marco<br>
</div>
<div><br>
</div>
<div>-- System Information:<br>
</div>
<div>Debian Release: bullseye/sid<br>
</div>
<div>  APT prefers unstable<br>
</div>
<div>  APT policy: (500, 'unstable'), (1, 'experimental')<br>
</div>
<div>Architecture: amd64 (x86_64)<br>
</div>
<div><br>
</div>
<div>Locale: LANG=C, LC_CTYPE=C.UTF-8 (charmap=UTF-8), LANGUAGE=C (charmap=UTF-8)<br>
</div>
<div>Shell: /bin/sh linked to /bin/dash<br>
</div>
<div>Init: unable to detect<br>
</div>
<div><br>
</div>
<div>Versions of packages clang-9 depends on:<br>
</div>
<div>ii  binutils               2.33.1-4<br>
</div>
<div>ii  libc6                  2.29-3<br>
</div>
<div>ii  libc6-dev              2.29-3<br>
</div>
<div>ii  libclang-common-9-dev  1:9.0.0-3+b1<br>
</div>
<div>ii  libclang-cpp9          1:9.0.0-3+b1<br>
</div>
<div>ii  libgcc-8-dev           8.3.0-24<br>
</div>
<div>ii  libgcc1                1:9.2.1-19<br>
</div>
<div>ii  libllvm9               1:9.0.0-3+b1<br>
</div>
<div>ii  libobjc-8-dev          8.3.0-24<br>
</div>
<div>ii  libstdc++-8-dev        8.3.0-24<br>
</div>
<div>ii  libstdc++6             9.2.1-19<br>
</div>
<div><br>
</div>
<div>Versions of packages clang-9 recommends:<br>
</div>
<div>ii  libomp-9-dev  1:9.0.0-3+b1<br>
</div>
<div>ii  llvm-9-dev    1:9.0.0-3+b1<br>
</div>
<div>ii  python3       3.7.5-3<br>
</div>
<div><br>
</div>
<div>Versions of packages clang-9 suggests:<br>
</div>
<div>pn  clang-9-doc  <none><br>
</div>
<div><br>
</div>
<div>-- no debconf information<br>
</div>
<span></span><br>
</div>
</body>
</html>