Re: PR analyzer/94362 Partial Fix

2021-03-02 Thread brian.sobulefsky via Gcc-patches
Agreed too. Generic "error on overflow" is not an answer, and ignoring overflow is not an answer either because flagging faulty memory allocations is an important feature. Brian Sent with ProtonMail Secure Email. ‐‐‐ Original Message ‐‐‐ On Tuesday, March 2, 2021 6:09 PM, Jeff Law

Re: PR analyzer/94362 Partial Fix

2021-03-02 Thread brian.sobulefsky via Gcc-patches
Wow! I wasn't expecting that to work. Obviously we know that there is currently no handler for binop_svalue in the constraints so I would have to watch it run with state merging disabled to see how it is managing the unroll. The fact that merging breaks it is indicative of what we are saying

Re: PR analyzer/94362 Partial Fix

2021-03-02 Thread brian.sobulefsky via Gcc-patches
I have been kicking these sorts of ideas around ever since I came to understand that the second "UNKNOWN" in the for loop that originally started this was due to the state merge as we loop. For now, and I don't mean this disrespectfully because it is very hard to get right, the whole issue of

Re: PR analyzer/94362 Partial Fix

2021-03-01 Thread brian.sobulefsky via Gcc-patches
Hi, It may not be worth altering at this point, but it seems like it would leave less bugs open if all the constraints go in as "closed" ranges and all evals are translated to closed intervals. So, if (idx > 0) and if (idx >= 1) are the same constraint. I know this won't be an option for

PR analyzer/94362 Partial Fix

2021-02-27 Thread brian.sobulefsky via Gcc-patches
Hi, Please find a patch to fix part of the bug PR analyzer/94362. This bug is a false positive for a null dereference found when compiling openssl. The cause is the constraint_manager not knowing that i >= 0 within the for block: for ( ; i-- > 0; ) The bug can be further reduced to the

Re: Patch for PR analyzer/98797

2021-02-18 Thread brian.sobulefsky via Gcc-patches
Hi David, Please find my revised patch attached. You should find all items addressed. I have bootstrapped and rerun the testsuite (gcc and g++ only). Also, you should have seen my legal paperwork go in. 1) The commit message has been updated to reflect the nomenclature in the testsuite, as well

Re: Patch for PR analyzer/98797

2021-02-17 Thread brian.sobulefsky via Gcc-patches
Hi David, I'm sorry but I wanted to get this out to you. To clarify, I had a statement of the form: end_offset <= covering_field->field_decl.bit_offset->int_cst.val[0] covering_field->decl_common.size->int_cst.val[0] - 1; (Sorry if my email is clobbering the angle brackets). I have

Re: Patch for PR analyzer/98797

2021-02-16 Thread brian.sobulefsky via Gcc-patches
David, Two items I needs answered to get you the patch. 1) The get_field_at_bit_offset function is static in region.cc, so I cannot use it outside of the file (you want me to use it in store.cc) without updating that definition to extern. I am assuming you want this. 2) I am updating my

Re: Patch for PR analyzer/98797

2021-02-13 Thread brian.sobulefsky via Gcc-patches
Hi, answers below. Note, do you want my resubmitted patch to be with commit --amend, and therefore relative to "real" commits in the history, or do you want me to chain it onto the last submission? I have already sent to assign at gnu for the form. I will update the commit message to call it s3

Re: Patch for PR analyzer/98797

2021-02-10 Thread brian.sobulefsky via Gcc-patches
I apologize. I left a dangling space in the patch. I am guessing that this is against whitespace policy. I had actually corrected it but forgot to add the file to the commit. Please see the attached.commit a9b60f36b499463b49095f28ce8053f6387c506d Author: Brian Sobulefsky Date: Tue Feb 9

Patch for PR analyzer/98797

2021-02-09 Thread brian.sobulefsky via Gcc-patches
The attached patch has been bootstrapped and regression tested. It addresses PR analyzer/98797, which is built off the expected failures in gcc/testsuite/gcc.dg/analyzer/casts-1.c It fixes those failures and additional manifestations. That testsuite file has been updated to no longer expect