public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
* [Bug analyzer/110700] New: gcc -fanalyzer --analyzer-checker=taint encouters an error @ 2023-07-17 10:14 geoffreydgr at icloud dot com 2023-07-19 13:01 ` [Bug analyzer/110700] ICE with -fanalyzer --analyzer-checker=taint on division of tainted floating-point values dmalcolm at gcc dot gnu.org ` (5 more replies) 0 siblings, 6 replies; 7+ messages in thread From: geoffreydgr at icloud dot com @ 2023-07-17 10:14 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110700 Bug ID: 110700 Summary: gcc -fanalyzer --analyzer-checker=taint encouters an error Product: gcc Version: 13.1.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: analyzer Assignee: dmalcolm at gcc dot gnu.org Reporter: geoffreydgr at icloud dot com Target Milestone: --- when i try to use taint checher to handle the following case, i encouter an error. ```c __attribute__ ((tainted_args)) double divide(double x, double y){ return x/y; } ``` cmd: gcc -fanalyzer --analyzer-checker=taint cwe-369.c -c error messages: " // Target: x86_64-pc-linux-gnu // Configured with: ../gcc/configure -prefix=/usr/local/gcc-13-9533 --enable-checking=release --enable-languages=c,c++ --disable-multilib // Thread model: posix // Supported LTO compression algorithms: zlib // gcc version 13.1.1 20230717 (GCC) // // during IPA pass: analyzer // CWE/cwe-369.c: In function 'divide': // CWE/cwe-369.c:3:9: internal compiler error: in wide_int_to_tree_1, at tree.cc:1755 // 3 | return x/y; // | ~^~ // 0x712cea wide_int_to_tree_1 // ../../gcc/gcc/tree.cc:1755 // 0xf4187b wide_int_to_tree(tree_node*, poly_int<1u, generic_wide_int<wide_int_ref_storage<false, true> > > const&) // ../../gcc/gcc/tree.cc:1867 // 0xf4187b build_int_cst(tree_node*, poly_int<1u, long>) // ../../gcc/gcc/tree.cc:1507 // 0x1007587 ana::region_model_manager::get_or_create_int_cst(tree_node*, poly_int<1u, long>) // ../../gcc/gcc/analyzer/region-model-manager.cc:236 // 0x1028059 check_for_tainted_divisor // ../../gcc/gcc/analyzer/sm-taint.cc:1355 // 0x1028059 on_stmt // ../../gcc/gcc/analyzer/sm-taint.cc:1015 // 0xfd5dbf ana::exploded_node::on_stmt(ana::exploded_graph&, ana::supernode const*, gimple const*, ana::program_state*, ana::uncertainty_t*, ana::path_context*) // ../../gcc/gcc/analyzer/engine.cc:1490 // 0xfd86bd ana::exploded_graph::process_node(ana::exploded_node*) // ../../gcc/gcc/analyzer/engine.cc:4063 // 0xfd94fa ana::exploded_graph::process_worklist() // ../../gcc/gcc/analyzer/engine.cc:3466 // 0xfdb7e7 ana::impl_run_checkers(ana::logger*) // ../../gcc/gcc/analyzer/engine.cc:6125 // 0xfdc7c6 ana::run_checkers() // ../../gcc/gcc/analyzer/engine.cc:6213 // 0xfccf68 execute // ../../gcc/gcc/analyzer/analyzer-pass.cc:87 // Please submit a full bug report, with preprocessed source. // Please include the complete backtrace with any bug report. // See <https://gcc.gnu.org/bugs/> for instructions. // /usr/local/gcc-13-9533/libexec/gcc/x86_64-pc-linux-gnu/13.1.1/cc1 -quiet -imultiarch x86_64-linux-gnu CWE/cwe-369.c -quiet -dumpbase cwe-369.c -dumpbase-ext .c -mtune=generic -march=x86-64 -fanalyzer -fanalyzer-checker=taint -freport-bug -o - -frandom-seed=0 -fdump-noaddr " ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug analyzer/110700] ICE with -fanalyzer --analyzer-checker=taint on division of tainted floating-point values 2023-07-17 10:14 [Bug analyzer/110700] New: gcc -fanalyzer --analyzer-checker=taint encouters an error geoffreydgr at icloud dot com @ 2023-07-19 13:01 ` dmalcolm at gcc dot gnu.org 2023-07-19 21:56 ` cvs-commit at gcc dot gnu.org ` (4 subsequent siblings) 5 siblings, 0 replies; 7+ messages in thread From: dmalcolm at gcc dot gnu.org @ 2023-07-19 13:01 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110700 David Malcolm <dmalcolm at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|gcc -fanalyzer |ICE with -fanalyzer |--analyzer-checker=taint |--analyzer-checker=taint on |encouters an error |division of tainted | |floating-point values Last reconfirmed| |2023-07-19 Ever confirmed|0 |1 Status|UNCONFIRMED |NEW --- Comment #1 from David Malcolm <dmalcolm at gcc dot gnu.org> --- Thanks for filing this bug. Seems to affect GCC 12, 13, and trunk. Here's the reproducer on Compiler Explorer: https://godbolt.org/z/GWM1G6b3s ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug analyzer/110700] ICE with -fanalyzer --analyzer-checker=taint on division of tainted floating-point values 2023-07-17 10:14 [Bug analyzer/110700] New: gcc -fanalyzer --analyzer-checker=taint encouters an error geoffreydgr at icloud dot com 2023-07-19 13:01 ` [Bug analyzer/110700] ICE with -fanalyzer --analyzer-checker=taint on division of tainted floating-point values dmalcolm at gcc dot gnu.org @ 2023-07-19 21:56 ` cvs-commit at gcc dot gnu.org 2023-07-19 22:10 ` dmalcolm at gcc dot gnu.org ` (3 subsequent siblings) 5 siblings, 0 replies; 7+ messages in thread From: cvs-commit at gcc dot gnu.org @ 2023-07-19 21:56 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110700 --- Comment #2 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by David Malcolm <dmalcolm@gcc.gnu.org>: https://gcc.gnu.org/g:b86c0fe327a5196a316bd698d12765b08de5dce7 commit r14-2658-gb86c0fe327a5196a316bd698d12765b08de5dce7 Author: David Malcolm <dmalcolm@redhat.com> Date: Wed Jul 19 17:55:09 2023 -0400 analyzer: fix ICE on division of tainted floating-point values [PR110700] gcc/analyzer/ChangeLog: PR analyzer/110700 * region-model-manager.cc (region_model_manager::get_or_create_int_cst): Assert that we have an integral or pointer type. * sm-taint.cc (taint_state_machine::check_for_tainted_divisor): Don't check non-integral types. gcc/testsuite/ChangeLog: PR analyzer/110700 * gcc.dg/analyzer/taint-divisor-2.c: New test. Signed-off-by: David Malcolm <dmalcolm@redhat.com> ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug analyzer/110700] ICE with -fanalyzer --analyzer-checker=taint on division of tainted floating-point values 2023-07-17 10:14 [Bug analyzer/110700] New: gcc -fanalyzer --analyzer-checker=taint encouters an error geoffreydgr at icloud dot com 2023-07-19 13:01 ` [Bug analyzer/110700] ICE with -fanalyzer --analyzer-checker=taint on division of tainted floating-point values dmalcolm at gcc dot gnu.org 2023-07-19 21:56 ` cvs-commit at gcc dot gnu.org @ 2023-07-19 22:10 ` dmalcolm at gcc dot gnu.org 2023-10-17 10:28 ` [Bug analyzer/110700] [12/13 Regression] " rguenth at gcc dot gnu.org ` (2 subsequent siblings) 5 siblings, 0 replies; 7+ messages in thread From: dmalcolm at gcc dot gnu.org @ 2023-07-19 22:10 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110700 --- Comment #3 from David Malcolm <dmalcolm at gcc dot gnu.org> --- Should be fixed on trunk by the above patch. Keeping open to track backporting to branches for gcc 12 and gcc 13. ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug analyzer/110700] [12/13 Regression] ICE with -fanalyzer --analyzer-checker=taint on division of tainted floating-point values 2023-07-17 10:14 [Bug analyzer/110700] New: gcc -fanalyzer --analyzer-checker=taint encouters an error geoffreydgr at icloud dot com ` (2 preceding siblings ...) 2023-07-19 22:10 ` dmalcolm at gcc dot gnu.org @ 2023-10-17 10:28 ` rguenth at gcc dot gnu.org 2024-05-09 17:11 ` cvs-commit at gcc dot gnu.org 2024-05-09 17:53 ` [Bug analyzer/110700] [12 " dmalcolm at gcc dot gnu.org 5 siblings, 0 replies; 7+ messages in thread From: rguenth at gcc dot gnu.org @ 2023-10-17 10:28 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110700 Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |12.4 ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug analyzer/110700] [12/13 Regression] ICE with -fanalyzer --analyzer-checker=taint on division of tainted floating-point values 2023-07-17 10:14 [Bug analyzer/110700] New: gcc -fanalyzer --analyzer-checker=taint encouters an error geoffreydgr at icloud dot com ` (3 preceding siblings ...) 2023-10-17 10:28 ` [Bug analyzer/110700] [12/13 Regression] " rguenth at gcc dot gnu.org @ 2024-05-09 17:11 ` cvs-commit at gcc dot gnu.org 2024-05-09 17:53 ` [Bug analyzer/110700] [12 " dmalcolm at gcc dot gnu.org 5 siblings, 0 replies; 7+ messages in thread From: cvs-commit at gcc dot gnu.org @ 2024-05-09 17:11 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110700 --- Comment #4 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The releases/gcc-13 branch has been updated by David Malcolm <dmalcolm@gcc.gnu.org>: https://gcc.gnu.org/g:0df1ee083434ac00ecb19582b1e5b25e105981b2 commit r13-8746-g0df1ee083434ac00ecb19582b1e5b25e105981b2 Author: David Malcolm <dmalcolm@redhat.com> Date: Thu May 9 13:09:28 2024 -0400 analyzer: fix ICE on division of tainted floating-point values [PR110700] gcc/analyzer/ChangeLog: PR analyzer/110700 * region-model-manager.cc (region_model_manager::get_or_create_int_cst): Assert that we have an integral or pointer type. * sm-taint.cc (taint_state_machine::check_for_tainted_divisor): Don't check non-integral types. gcc/testsuite/ChangeLog: PR analyzer/110700 * gcc.dg/analyzer/taint-divisor-2.c: New test. (cherry picked from commit r14-2658-gb86c0fe327a519) Signed-off-by: David Malcolm <dmalcolm@redhat.com> ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Bug analyzer/110700] [12 Regression] ICE with -fanalyzer --analyzer-checker=taint on division of tainted floating-point values 2023-07-17 10:14 [Bug analyzer/110700] New: gcc -fanalyzer --analyzer-checker=taint encouters an error geoffreydgr at icloud dot com ` (4 preceding siblings ...) 2024-05-09 17:11 ` cvs-commit at gcc dot gnu.org @ 2024-05-09 17:53 ` dmalcolm at gcc dot gnu.org 5 siblings, 0 replies; 7+ messages in thread From: dmalcolm at gcc dot gnu.org @ 2024-05-09 17:53 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110700 David Malcolm <dmalcolm at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|[12/13 Regression] ICE with |[12 Regression] ICE with |-fanalyzer |-fanalyzer |--analyzer-checker=taint on |--analyzer-checker=taint on |division of tainted |division of tainted |floating-point values |floating-point values --- Comment #5 from David Malcolm <dmalcolm at gcc dot gnu.org> --- Should be fixed for GCC 13 (for the upcoming GCC 13.3) by the above patch. Keeping open to track backporting to older branches. ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2024-05-09 17:53 UTC | newest] Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2023-07-17 10:14 [Bug analyzer/110700] New: gcc -fanalyzer --analyzer-checker=taint encouters an error geoffreydgr at icloud dot com 2023-07-19 13:01 ` [Bug analyzer/110700] ICE with -fanalyzer --analyzer-checker=taint on division of tainted floating-point values dmalcolm at gcc dot gnu.org 2023-07-19 21:56 ` cvs-commit at gcc dot gnu.org 2023-07-19 22:10 ` dmalcolm at gcc dot gnu.org 2023-10-17 10:28 ` [Bug analyzer/110700] [12/13 Regression] " rguenth at gcc dot gnu.org 2024-05-09 17:11 ` cvs-commit at gcc dot gnu.org 2024-05-09 17:53 ` [Bug analyzer/110700] [12 " dmalcolm at gcc dot gnu.org
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).