public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug analyzer/101980] New: [12 regressions] many test case failures after r12-3002
@ 2021-08-19 14:50 seurer at gcc dot gnu.org
  2021-08-19 15:06 ` [Bug analyzer/101980] " dmalcolm at gcc dot gnu.org
                   ` (8 more replies)
  0 siblings, 9 replies; 10+ messages in thread
From: seurer at gcc dot gnu.org @ 2021-08-19 14:50 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101980

            Bug ID: 101980
           Summary: [12 regressions] many test case failures after
                    r12-3002
           Product: gcc
           Version: 12.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: analyzer
          Assignee: dmalcolm at gcc dot gnu.org
          Reporter: seurer at gcc dot gnu.org
  Target Milestone: ---

g:aef703cf982072427e74034f4c460a11c5e04b8e, r12-3002

FAIL: g++.dg/analyzer/malloc.C  -std=c++14  (test for warnings, line 24)
FAIL: g++.dg/analyzer/malloc.C  -std=c++17  (test for warnings, line 24)
FAIL: g++.dg/analyzer/malloc.C  -std=c++2a  (test for warnings, line 24)
FAIL: g++.dg/analyzer/malloc.C  -std=c++98  (test for warnings, line 24)
FAIL: gcc.dg/analyzer/analyzer-verbosity-0.c (test for excess errors)
FAIL: gcc.dg/analyzer/analyzer-verbosity-0.c expected multiline pattern lines
24-60 not found: "\s*NN \|   free \(ptr\);.*\n      \|   \^~~~~~~~~~\n 
'test_1': event 1.*\n    \|.*\n    \|   NN \|     calls_free_1 \(ptr\);.*\n   
\|      \|     \^~~~~~~~~~~~~~~~~~\n    \|      \|     \|.*\n    \|      \|    
\(1\) calling 'calls_free_1' from 'test_1'.*\n    \|.*\n    \+-->
'calls_free_1': event 2.*\n           \|.*\n           \|   NN \|   free
\(ptr\);.*\n           \|      \|   \^~~~~~~~~~\n           \|      \|   \|.*\n
          \|      \|   \(2\) first 'free' here.*\n           \|.*\n   
<------\+.*\n    \|.*\n  'test_1': events 3-4.*\n    \|.*\n    \|   NN \|    
calls_free_1 \(ptr\);.*\n    \|      \|     \^~~~~~~~~~~~~~~~~~\n    \|      \|
    \|.*\n    \|      \|     \(3\) returning to 'test_1' from
'calls_free_1'.*\n    \|\.\.\.\.\.\..*\n    \|   NN \|     calls_free_1
\(ptr\);.*\n    \|      \|     ~~~~~~~~~~~~~~~~~~\n    \|      \|     \|.*\n   
\|      \|     \(4\) passing freed pointer 'ptr' in call to 'calls_free_1' from
'test_1'.*\n    \|.*\n    \+--> 'calls_free_1': event 5.*\n           \|.*\n   
       \|   NN \|   free \(ptr\);.*\n           \|      \|   \^~~~~~~~~~\n     
     \|      \|   \|.*\n           \|      \|   \(5\) second 'free' here; first
'free' was at \(2\).*\n           \|.*\n"
FAIL: gcc.dg/analyzer/analyzer-verbosity-0.c expected multiline pattern lines
94-130 not found: "   NN \|   free \(ptr\);.*\n      \|   \^~~~~~~~~~\n 
'test_2': event 1.*\n    \|.*\n    \|   NN \|       calls_free_2 \(ptr\);.*\n  
 \|      \|       \^~~~~~~~~~~~~~~~~~\n    \|      \|       \|.*\n    \|     
\|       \(1\) calling 'calls_free_2' from 'test_2'.*\n    \|.*\n    \+-->
'calls_free_2': event 2.*\n           \|.*\n           \|   NN \|   free
\(ptr\);.*\n           \|      \|   \^~~~~~~~~~\n           \|      \|   \|.*\n
          \|      \|   \(2\) first 'free' here.*\n           \|.*\n   
<------\+.*\n    \|.*\n  'test_2': events 3-4.*\n    \|.*\n    \|   NN \|      
calls_free_2 \(ptr\);.*\n    \|      \|       \^~~~~~~~~~~~~~~~~~\n    \|     
\|       \|.*\n    \|      \|       \(3\) returning to 'test_2' from
'calls_free_2'.*\n    \|\.\.\.\.\.\..*\n    \|   NN \|       calls_free_2
\(ptr\);.*\n    \|      \|       ~~~~~~~~~~~~~~~~~~\n    \|      \|      
\|.*\n    \|      \|       \(4\) passing freed pointer 'ptr' in call to
'calls_free_2' from 'test_2'.*\n    \|.*\n    \+--> 'calls_free_2': event 5.*\n
          \|.*\n           \|   NN \|   free \(ptr\);.*\n           \|      \| 
 \^~~~~~~~~~\n           \|      \|   \|.*\n           \|      \|   \(5\)
second 'free' here; first 'free' was at \(2\).*\n           \|.*\n"
FAIL: gcc.dg/analyzer/analyzer-verbosity-1.c (test for excess errors)
FAIL: gcc.dg/analyzer/analyzer-verbosity-1.c expected multiline pattern lines
109-160 not found: "   NN \|   free \(ptr\);.*\n      \|   \^~~~~~~~~~\n 
'test_2': events 1-2.*\n    \|.*\n    \|   NN \| void test_2 \(void \*ptr, int
a, int b\).*\n    \|      \|      \^~~~~~\n    \|      \|      \|.*\n    \|    
 \|      \(1\) entry to 'test_2'.*\n    \|\.\.\.\.\.\..*\n    \|   NN \|      
calls_free_2 \(ptr\);.*\n    \|      \|       ~~~~~~~~~~~~~~~~~~\n    \|     
\|       \|.*\n    \|      \|       \(2\) calling 'calls_free_2' from
'test_2'.*\n    \|.*\n    \+--> 'calls_free_2': events 3-4.*\n           \|.*\n
          \|   NN \| void calls_free_2 \(void \*ptr\).*\n           \|      \| 
    \^~~~~~~~~~~~\n           \|      \|      \|.*\n           \|      \|     
\(3\) entry to 'calls_free_2'.*\n           \|   NN \| \{.*\n           \|   NN
\|   free \(ptr\);.*\n           \|      \|   ~~~~~~~~~~\n           \|      \|
  \|.*\n           \|      \|   \(4\) first 'free' here.*\n           \|.*\n   
<------\+.*\n    \|.*\n  'test_2': events 5-6.*\n    \|.*\n    \|   NN \|      
calls_free_2 \(ptr\);.*\n    \|      \|       \^~~~~~~~~~~~~~~~~~\n    \|     
\|       \|.*\n    \|      \|       \(5\) returning to 'test_2' from
'calls_free_2'.*\n    \|\.\.\.\.\.\..*\n    \|   NN \|       calls_free_2
\(ptr\);.*\n    \|      \|       ~~~~~~~~~~~~~~~~~~\n    \|      \|      
\|.*\n    \|      \|       \(6\) passing freed pointer 'ptr' in call to
'calls_free_2' from 'test_2'.*\n    \|.*\n    \+--> 'calls_free_2': events
7-8.*\n           \|.*\n           \|   NN \| void calls_free_2 \(void
\*ptr\).*\n           \|      \|      \^~~~~~~~~~~~\n           \|      \|     
\|.*\n           \|      \|      \(7\) entry to 'calls_free_2'.*\n           \|
  NN \| \{.*\n           \|   NN \|   free \(ptr\);.*\n           \|      \|  
~~~~~~~~~~\n           \|      \|   \|.*\n           \|      \|   \(8\) second
'free' here; first 'free' was at \(4\).*\n           \|.*\n"
FAIL: gcc.dg/analyzer/analyzer-verbosity-1.c expected multiline pattern lines
24-75 not found: "\s*NN \|   free \(ptr\);.*\n      \|   \^~~~~~~~~~\n 
'test_1': events 1-2.*\n    \|.*\n    \|   NN \| void test_1 \(void \*ptr, int
a, int b\).*\n    \|      \|      \^~~~~~\n    \|      \|      \|.*\n    \|    
 \|      \(1\) entry to 'test_1'.*\n    \|\.\.\.\.\.\..*\n    \|   NN \|    
calls_free_1 \(ptr\);.*\n    \|      \|     ~~~~~~~~~~~~~~~~~~\n    \|      \| 
   \|.*\n    \|      \|     \(2\) calling 'calls_free_1' from 'test_1'.*\n   
\|.*\n    \+--> 'calls_free_1': events 3-4.*\n           \|.*\n           \|  
NN \| void calls_free_1 \(void \*ptr\).*\n           \|      \|     
\^~~~~~~~~~~~\n           \|      \|      \|.*\n           \|      \|     
\(3\) entry to 'calls_free_1'.*\n           \|   NN \| \{.*\n           \|   NN
\|   free \(ptr\);.*\n           \|      \|   ~~~~~~~~~~\n           \|      \|
  \|.*\n           \|      \|   \(4\) first 'free' here.*\n           \|.*\n   
<------\+.*\n    \|.*\n  'test_1': events 5-6.*\n    \|.*\n    \|   NN \|    
calls_free_1 \(ptr\);.*\n    \|      \|     \^~~~~~~~~~~~~~~~~~\n    \|      \|
    \|.*\n    \|      \|     \(5\) returning to 'test_1' from
'calls_free_1'.*\n    \|\.\.\.\.\.\..*\n    \|   NN \|     calls_free_1
\(ptr\);.*\n    \|      \|     ~~~~~~~~~~~~~~~~~~\n    \|      \|     \|.*\n   
\|      \|     \(6\) passing freed pointer 'ptr' in call to 'calls_free_1' from
'test_1'.*\n    \|.*\n    \+--> 'calls_free_1': events 7-8.*\n           \|.*\n
          \|   NN \| void calls_free_1 \(void \*ptr\).*\n           \|      \| 
    \^~~~~~~~~~~~\n           \|      \|      \|.*\n           \|      \|     
\(7\) entry to 'calls_free_1'.*\n           \|   NN \| \{.*\n           \|   NN
\|   free \(ptr\);.*\n           \|      \|   ~~~~~~~~~~\n           \|      \|
  \|.*\n           \|      \|   \(8\) second 'free' here; first 'free' was at
\(4\).*\n           \|.*\n"
FAIL: gcc.dg/analyzer/analyzer-verbosity-2.c (test for excess errors)
FAIL: gcc.dg/analyzer/analyzer-verbosity-2.c expected multiline pattern lines
120-189 not found: "   NN \|   free \(ptr\);.*\n      \|   \^~~~~~~~~~\n 
'test_2': events 1-4.*\n    \|.*\n    \|   NN \| void test_2 \(void \*ptr, int
a, int b\).*\n    \|      \|      \^~~~~~\n    \|      \|      \|.*\n    \|    
 \|      \(1\) entry to 'test_2'.*\n    \|   NN \| \{.*\n    \|   NN \|  
switch \(a\).*\n    \|      \|   ~~~~~~\n    \|      \|   \|.*\n    \|      \| 
 \(2\) following 'case 3:' branch\.\.\..*\n    \|\.\.\.\.\.\..*\n    \|   NN \|
    case 3:.*\n    \|      \|     ~~~~\n    \|      \|     \|.*\n    \|      \|
    \(3\) \.\.\.to here.*\n    \|   NN \|       calls_free_2 \(ptr\);.*\n    \|
     \|       ~~~~~~~~~~~~~~~~~~\n    \|      \|       \|.*\n    \|      \|    
  \(4\) calling 'calls_free_2' from 'test_2'.*\n    \|.*\n    \+-->
'calls_free_2': events 5-6.*\n           \|.*\n           \|   NN \| void
calls_free_2 \(void \*ptr\).*\n           \|      \|      \^~~~~~~~~~~~\n      
    \|      \|      \|.*\n           \|      \|      \(5\) entry to
'calls_free_2'.*\n           \|   NN \| \{.*\n           \|   NN \|   free
\(ptr\);.*\n           \|      \|   ~~~~~~~~~~\n           \|      \|   \|.*\n 
         \|      \|   \(6\) first 'free' here.*\n           \|.*\n   
<------\+.*\n    \|.*\n  'test_2': events 7-10.*\n    \|.*\n    \|   NN \|     
 calls_free_2 \(ptr\);.*\n    \|      \|       \^~~~~~~~~~~~~~~~~~\n    \|     
\|       \|.*\n    \|      \|       \(7\) returning to 'test_2' from
'calls_free_2'.*\n    \|\.\.\.\.\.\..*\n    \|   NN \|   switch \(b\).*\n    \|
     \|   ~~~~~~\n    \|      \|   \|.*\n    \|      \|   \(8\) following
'default:' branch\.\.\..*\n    \|   NN \|     \{.*\n    \|   NN \|    
default:.*\n    \|      \|     ~~~~~~~\n    \|      \|     \|.*\n    \|      \|
    \(9\) \.\.\.to here.*\n    \|   NN \|       calls_free_2 \(ptr\);.*\n    \|
     \|       ~~~~~~~~~~~~~~~~~~\n    \|      \|       \|.*\n    \|      \|    
  \(10\) passing freed pointer 'ptr' in call to 'calls_free_2' from
'test_2'.*\n    \|.*\n    \+--> 'calls_free_2': events 11-12.*\n          
\|.*\n           \|   NN \| void calls_free_2 \(void \*ptr\).*\n           \|  
   \|      \^~~~~~~~~~~~\n           \|      \|      \|.*\n           \|     
\|      \(11\) entry to 'calls_free_2'.*\n           \|   NN \| \{.*\n         
 \|   NN \|   free \(ptr\);.*\n           \|      \|   ~~~~~~~~~~\n          
\|      \|   \|.*\n           \|      \|   \(12\) second 'free' here; first
'free' was at \(6\).*\n           \|.*\n"
FAIL: gcc.dg/analyzer/analyzer-verbosity-2.c expected multiline pattern lines
24-86 not found: "\s*NN \|   free \(ptr\);.*\n      \|   \^~~~~~~~~~\n 
'test_1': events 1-4.*\n    \|.*\n    \|   NN \| void test_1 \(void \*ptr, int
a, int b\).*\n    \|      \|      \^~~~~~\n    \|      \|      \|.*\n    \|    
 \|      \(1\) entry to 'test_1'.*\n    \|   NN \| \{.*\n    \|   NN \|   if
\(a\).*\n    \|      \|      ~\n    \|      \|      \|.*\n    \|      \|     
\(2\) following 'true' branch \(when 'a != 0'\)\.\.\..*\n    \|   NN \|    
calls_free_1 \(ptr\);.*\n    \|      \|     ~~~~~~~~~~~~~~~~~~\n    \|      \| 
   \|.*\n    \|      \|     \(3\) \.\.\.to here.*\n    \|      \|     \(4\)
calling 'calls_free_1' from 'test_1'.*\n    \|.*\n    \+--> 'calls_free_1':
events 5-6.*\n           \|.*\n           \|   NN \| void calls_free_1 \(void
\*ptr\).*\n           \|      \|      \^~~~~~~~~~~~\n           \|      \|     
\|.*\n           \|      \|      \(5\) entry to 'calls_free_1'.*\n           \|
  NN \| \{.*\n           \|   NN \|   free \(ptr\);.*\n           \|      \|  
~~~~~~~~~~\n           \|      \|   \|.*\n           \|      \|   \(6\) first
'free' here.*\n           \|.*\n    <------\+.*\n    \|.*\n  'test_1': events
7-10.*\n    \|.*\n    \|   NN \|     calls_free_1 \(ptr\);.*\n    \|      \|   
 \^~~~~~~~~~~~~~~~~~\n    \|      \|     \|.*\n    \|      \|     \(7\)
returning to 'test_1' from 'calls_free_1'.*\n    \|   NN \| .*\n    \|   NN \| 
 if \(b\).*\n    \|      \|      ~\n    \|      \|      \|.*\n    \|      \|   
  \(8\) following 'false' branch \(when 'b == 0'\)\.\.\..*\n   
\|\.\.\.\.\.\..*\n    \|   NN \|     calls_free_1 \(ptr\);.*\n    \|      \|   
 ~~~~~~~~~~~~~~~~~~\n    \|      \|     \|.*\n    \|      \|     \(9\) \.\.\.to
here.*\n    \|      \|     \(10\) passing freed pointer 'ptr' in call to
'calls_free_1' from 'test_1'.*\n    \|.*\n    \+--> 'calls_free_1': events
11-12.*\n           \|.*\n           \|   NN \| void calls_free_1 \(void
\*ptr\).*\n           \|      \|      \^~~~~~~~~~~~\n           \|      \|     
\|.*\n           \|      \|      \(11\) entry to 'calls_free_1'.*\n          
\|   NN \| \{.*\n           \|   NN \|   free \(ptr\);.*\n           \|      \|
  ~~~~~~~~~~\n           \|      \|   \|.*\n           \|      \|   \(12\)
second 'free' here; first 'free' was at \(6\).*\n           \|.*\n"
FAIL: gcc.dg/analyzer/analyzer-verbosity-3.c (test for excess errors)
FAIL: gcc.dg/analyzer/analyzer-verbosity-3.c expected multiline pattern lines
120-189 not found: "   NN \|   free \(ptr\);.*\n      \|   \^~~~~~~~~~\n 
'test_2': events 1-4.*\n    \|.*\n    \|   NN \| void test_2 \(void \*ptr, int
a, int b\).*\n    \|      \|      \^~~~~~\n    \|      \|      \|.*\n    \|    
 \|      \(1\) entry to 'test_2'.*\n    \|   NN \| \{.*\n    \|   NN \|  
switch \(a\).*\n    \|      \|   ~~~~~~\n    \|      \|   \|.*\n    \|      \| 
 \(2\) following 'case 3:' branch\.\.\..*\n    \|\.\.\.\.\.\..*\n    \|   NN \|
    case 3:.*\n    \|      \|     ~~~~\n    \|      \|     \|.*\n    \|      \|
    \(3\) \.\.\.to here.*\n    \|   NN \|       calls_free_2 \(ptr\);.*\n    \|
     \|       ~~~~~~~~~~~~~~~~~~\n    \|      \|       \|.*\n    \|      \|    
  \(4\) calling 'calls_free_2' from 'test_2'.*\n    \|.*\n    \+-->
'calls_free_2': events 5-6.*\n           \|.*\n           \|   NN \| void
calls_free_2 \(void \*ptr\).*\n           \|      \|      \^~~~~~~~~~~~\n      
    \|      \|      \|.*\n           \|      \|      \(5\) entry to
'calls_free_2'.*\n           \|   NN \| \{.*\n           \|   NN \|   free
\(ptr\);.*\n           \|      \|   ~~~~~~~~~~\n           \|      \|   \|.*\n 
         \|      \|   \(6\) first 'free' here.*\n           \|.*\n   
<------\+.*\n    \|.*\n  'test_2': events 7-10.*\n    \|.*\n    \|   NN \|     
 calls_free_2 \(ptr\);.*\n    \|      \|       \^~~~~~~~~~~~~~~~~~\n    \|     
\|       \|.*\n    \|      \|       \(7\) returning to 'test_2' from
'calls_free_2'.*\n    \|\.\.\.\.\.\..*\n    \|   NN \|   switch \(b\).*\n    \|
     \|   ~~~~~~\n    \|      \|   \|.*\n    \|      \|   \(8\) following
'default:' branch\.\.\..*\n    \|   NN \|     \{.*\n    \|   NN \|    
default:.*\n    \|      \|     ~~~~~~~\n    \|      \|     \|.*\n    \|      \|
    \(9\) \.\.\.to here.*\n    \|   NN \|       calls_free_2 \(ptr\);.*\n    \|
     \|       ~~~~~~~~~~~~~~~~~~\n    \|      \|       \|.*\n    \|      \|    
  \(10\) passing freed pointer 'ptr' in call to 'calls_free_2' from
'test_2'.*\n    \|.*\n    \+--> 'calls_free_2': events 11-12.*\n          
\|.*\n           \|   NN \| void calls_free_2 \(void \*ptr\).*\n           \|  
   \|      \^~~~~~~~~~~~\n           \|      \|      \|.*\n           \|     
\|      \(11\) entry to 'calls_free_2'.*\n           \|   NN \| \{.*\n         
 \|   NN \|   free \(ptr\);.*\n           \|      \|   ~~~~~~~~~~\n          
\|      \|   \|.*\n           \|      \|   \(12\) second 'free' here; first
'free' was at \(6\).*\n           \|.*\n"
FAIL: gcc.dg/analyzer/analyzer-verbosity-3.c expected multiline pattern lines
24-86 not found: "\s*NN \|   free \(ptr\);.*\n      \|   \^~~~~~~~~~\n 
'test_1': events 1-4.*\n    \|.*\n    \|   NN \| void test_1 \(void \*ptr, int
a, int b\).*\n    \|      \|      \^~~~~~\n    \|      \|      \|.*\n    \|    
 \|      \(1\) entry to 'test_1'.*\n    \|   NN \| \{.*\n    \|   NN \|   if
\(a\).*\n    \|      \|      ~\n    \|      \|      \|.*\n    \|      \|     
\(2\) following 'true' branch \(when 'a != 0'\)\.\.\..*\n    \|   NN \|    
calls_free_1 \(ptr\);.*\n    \|      \|     ~~~~~~~~~~~~~~~~~~\n    \|      \| 
   \|.*\n    \|      \|     \(3\) \.\.\.to here.*\n    \|      \|     \(4\)
calling 'calls_free_1' from 'test_1'.*\n    \|.*\n    \+--> 'calls_free_1':
events 5-6.*\n           \|.*\n           \|   NN \| void calls_free_1 \(void
\*ptr\).*\n           \|      \|      \^~~~~~~~~~~~\n           \|      \|     
\|.*\n           \|      \|      \(5\) entry to 'calls_free_1'.*\n           \|
  NN \| \{.*\n           \|   NN \|   free \(ptr\);.*\n           \|      \|  
~~~~~~~~~~\n           \|      \|   \|.*\n           \|      \|   \(6\) first
'free' here.*\n           \|.*\n    <------\+.*\n    \|.*\n  'test_1': events
7-10.*\n    \|.*\n    \|   NN \|     calls_free_1 \(ptr\);.*\n    \|      \|   
 \^~~~~~~~~~~~~~~~~~\n    \|      \|     \|.*\n    \|      \|     \(7\)
returning to 'test_1' from 'calls_free_1'.*\n    \|   NN \| .*\n    \|   NN \| 
 if \(b\).*\n    \|      \|      ~\n    \|      \|      \|.*\n    \|      \|   
  \(8\) following 'false' branch \(when 'b == 0'\)\.\.\..*\n   
\|\.\.\.\.\.\..*\n    \|   NN \|     calls_free_1 \(ptr\);.*\n    \|      \|   
 ~~~~~~~~~~~~~~~~~~\n    \|      \|     \|.*\n    \|      \|     \(9\) \.\.\.to
here.*\n    \|      \|     \(10\) passing freed pointer 'ptr' in call to
'calls_free_1' from 'test_1'.*\n    \|.*\n    \+--> 'calls_free_1': events
11-12.*\n           \|.*\n           \|   NN \| void calls_free_1 \(void
\*ptr\).*\n           \|      \|      \^~~~~~~~~~~~\n           \|      \|     
\|.*\n           \|      \|      \(11\) entry to 'calls_free_1'.*\n          
\|   NN \| \{.*\n           \|   NN \|   free \(ptr\);.*\n           \|      \|
  ~~~~~~~~~~\n           \|      \|   \|.*\n           \|      \|   \(12\)
second 'free' here; first 'free' was at \(6\).*\n           \|.*\n"
FAIL: gcc.dg/analyzer/data-model-path-1.c  (test for warnings, line 11)
FAIL: gcc.dg/analyzer/function-ptr-2.c (test for excess errors)
FAIL: gcc.dg/analyzer/malloc-callbacks.c  (test for warnings, line 29)
FAIL: gcc.dg/analyzer/malloc-callbacks.c  (test for warnings, line 30)
FAIL: gcc.dg/analyzer/malloc-callbacks.c  (test for warnings, line 36)
FAIL: gcc.dg/analyzer/malloc-callbacks.c  (test for warnings, line 37)
FAIL: gcc.dg/analyzer/malloc-callbacks.c  (test for warnings, line 43)
FAIL: gcc.dg/analyzer/malloc-callbacks.c  (test for warnings, line 55)
FAIL: gcc.dg/analyzer/malloc-callbacks.c  (test for warnings, line 56)
FAIL: gcc.dg/analyzer/malloc-callbacks.c  (test for warnings, line 64)
FAIL: gcc.dg/analyzer/malloc-callbacks.c  (test for warnings, line 66)
FAIL: gcc.dg/analyzer/malloc-ipa-10.c  (test for warnings, line 29)
FAIL: gcc.dg/analyzer/malloc-ipa-11.c (test for excess errors)
FAIL: gcc.dg/analyzer/malloc-ipa-11.c expected multiline pattern lines 32-95
not found: "\s*NN \|   free \(victim\);.*\n      \|   \^~~~~~~~~~~~~\n  'test':
events 1-2.*\n    \|.*\n    \|   NN \| void test \(void \*ptr\).*\n    \|     
\|      \^~~~\n    \|      \|      \|.*\n    \|      \|      \(1\) entry to
'test'.*\n    \|\.\.\.\.\.\..*\n    \|   NN \|   may_call_free \(ptr\);.*\n   
\|      \|   ~~~~~~~~~~~~~~~~~~~\n    \|      \|   \|.*\n    \|      \|   \(2\)
calling 'may_call_free' from 'test'.*\n    \|.*\n    \+--> 'may_call_free':
events 3-6.*\n           \|.*\n           \|   NN \| may_call_free \(void
\*victim\).*\n           \|      \| \^~~~~~~~~~~~~\n           \|      \|
\|.*\n           \|      \| \(3\) entry to 'may_call_free'.*\n           \|  
NN \| \{.*\n           \|   NN \|   if \(some_condition \(\)\).*\n           \|
     \|      ~\n           \|      \|      \|.*\n           \|      \|     
\(4\) following 'false' branch\.\.\..*\n           \|\.\.\.\.\.\..*\n          
\|   NN \|   free \(victim\);.*\n           \|      \|   ~~~~~~~~~~~~~\n       
   \|      \|   \|.*\n           \|      \|   \(5\) \.\.\.to here.*\n          
\|      \|   \(6\) first 'free' here.*\n           \|.*\n    <------\+.*\n   
\|.*\n  'test': events 7-8.*\n    \|.*\n    \|   NN \|   may_call_free
\(ptr\);.*\n    \|      \|   \^~~~~~~~~~~~~~~~~~~\n    \|      \|   \|.*\n   
\|      \|   \(7\) returning to 'test' from 'may_call_free'.*\n   
\|\.\.\.\.\.\..*\n    \|   NN \|   may_call_free \(ptr\);.*\n    \|      \|  
~~~~~~~~~~~~~~~~~~~\n    \|      \|   \|.*\n    \|      \|   \(8\) passing
freed pointer 'ptr' in call to 'may_call_free' from 'test'.*\n    \|.*\n   
\+--> 'may_call_free': events 9-12.*\n           \|.*\n           \|   NN \|
may_call_free \(void \*victim\).*\n           \|      \| \^~~~~~~~~~~~~\n      
    \|      \| \|.*\n           \|      \| \(9\) entry to 'may_call_free'.*\n  
        \|   NN \| \{.*\n           \|   NN \|   if \(some_condition \(\)\).*\n
          \|      \|      ~\n           \|      \|      \|.*\n           \|    
 \|      \(10\) following 'false' branch\.\.\..*\n           \|\.\.\.\.\.\..*\n
          \|   NN \|   free \(victim\);.*\n           \|      \|  
~~~~~~~~~~~~~\n           \|      \|   \|.*\n           \|      \|   \(11\)
\.\.\.to here.*\n           \|      \|   \(12\) second 'free' here; first
'free' was at \(6\).*\n           \|.*\n"
FAIL: gcc.dg/analyzer/malloc-ipa-13.c  (test for warnings, line 26)
FAIL: gcc.dg/analyzer/malloc-ipa-13a.c  (test for warnings, line 36)
FAIL: gcc.dg/analyzer/malloc-ipa-2.c  (test for warnings, line 28)
FAIL: gcc.dg/analyzer/malloc-ipa-5.c  (test for warnings, line 10)
FAIL: gcc.dg/analyzer/malloc-ipa-8-double-free.c (test for excess errors)
FAIL: gcc.dg/analyzer/malloc-ipa-8-double-free.c expected multiline pattern
lines 50-191 not found: "\s*NN \|   free \(ptr\);.*\n      \|   \^~~~~~~~~~\n 
'test': events 1-2.*\n    \|.*\n    \|   NN \| void test \(int i\).*\n    \|   
  \|      \^~~~\n    \|      \|      \|.*\n    \|      \|      \(1\) entry to
'test'.*\n    \|   NN \| \{.*\n    \|   NN \|   boxed_int \*obj =
make_boxed_int \(i\);.*\n    \|      \|                    ~~~~~~~~~~~~~~~~~~\n
   \|      \|                    \|.*\n    \|      \|                    \(2\)
calling 'make_boxed_int' from 'test'.*\n    \|.*\n    \+--> 'make_boxed_int':
events 3-4.*\n           \|.*\n           \|   NN \| make_boxed_int \(int
i\).*\n           \|      \| \^~~~~~~~~~~~~~\n           \|      \| \|.*\n     
     \|      \| \(3\) entry to 'make_boxed_int'.*\n           \|   NN \| \{.*\n
          \|   NN \|   boxed_int \*result = \(boxed_int \*\)wrapped_malloc
\(sizeof \(boxed_int\)\);.*\n           \|      \|                             
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n           \|      \|               
                    \|.*\n           \|      \|                                
   \(4\) calling 'wrapped_malloc' from 'make_boxed_int'.*\n           \|.*\n   
       \+--> 'wrapped_malloc': events 5-6.*\n                  \|.*\n          
       \|   NN \| void \*wrapped_malloc \(size_t size\).*\n                  \|
     \|       \^~~~~~~~~~~~~~\n                  \|      \|       \|.*\n       
          \|      \|       \(5\) entry to 'wrapped_malloc'.*\n                 
\|   NN \| \{.*\n                  \|   NN \|   return malloc \(size\);.*\n    
             \|      \|          ~~~~~~~~~~~~~\n                  \|      \|   
      \|.*\n                  \|      \|          \(6\) allocated here.*\n     
            \|.*\n           <------\+.*\n           \|.*\n        
'make_boxed_int': events 7-10.*\n           \|.*\n           \|   NN \|  
boxed_int \*result = \(boxed_int \*\)wrapped_malloc \(sizeof
\(boxed_int\)\);.*\n           \|      \|                                   
\^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n           \|      \|                    
               \|.*\n           \|      \|                                   
\(7\) returning to 'make_boxed_int' from 'wrapped_malloc'.*\n           \|   NN
\|   if \(!result\).*\n           \|      \|      ~                            
 .*\n           \|      \|      \|.*\n           \|      \|      \(8\) assuming
'result' is non-NULL.*\n           \|      \|      \(9\) following 'false'
branch \(when 'result' is non-NULL\)\.\.\..*\n           \|   NN \|     abort
\(\);.*\n           \|   NN \|   result->i = i;.*\n           \|      \|  
~~~~~~~~~~~~~                     .*\n           \|      \|             \|.*\n 
         \|      \|             \(10\) \.\.\.to here.*\n           \|.*\n   
<------\+.*\n    \|.*\n  'test': events 11-12.*\n    \|.*\n    \|   NN \|  
boxed_int \*obj = make_boxed_int \(i\);.*\n    \|      \|                   
\^~~~~~~~~~~~~~~~~~\n    \|      \|                    \|.*\n    \|      \|    
               \(11\) returning to 'test' from 'make_boxed_int'.*\n    \|   NN
\| .*\n    \|   NN \|   free_boxed_int \(obj\);.*\n    \|      \|  
~~~~~~~~~~~~~~~~~~~~\n    \|      \|   \|.*\n    \|      \|   \(12\) calling
'free_boxed_int' from 'test'.*\n    \|.*\n    \+--> 'free_boxed_int': events
13-14.*\n           \|.*\n           \|   NN \| free_boxed_int \(boxed_int
\*bi\).*\n           \|      \| \^~~~~~~~~~~~~~\n           \|      \| \|.*\n  
        \|      \| \(13\) entry to 'free_boxed_int'.*\n           \|   NN \|
\{.*\n           \|   NN \|   wrapped_free \(bi\);.*\n           \|      \|  
~~~~~~~~~~~~~~~~~\n           \|      \|   \|.*\n           \|      \|   \(14\)
calling 'wrapped_free' from 'free_boxed_int'.*\n           \|.*\n          
\+--> 'wrapped_free': events 15-16.*\n                  \|.*\n                 
\|   NN \| void wrapped_free \(void \*ptr\).*\n                  \|      \|    
 \^~~~~~~~~~~~\n                  \|      \|      \|.*\n                  \|   
  \|      \(15\) entry to 'wrapped_free'.*\n                  \|   NN \| \{.*\n
                 \|   NN \|   free \(ptr\);.*\n                  \|      \|  
~~~~~~~~~~\n                  \|      \|   \|.*\n                  \|      \|  
\(16\) first 'free' here.*\n                  \|.*\n           <------\+.*\n   
       \|.*\n         'free_boxed_int': event 17.*\n           \|.*\n          
\|   NN \|   wrapped_free \(bi\);.*\n           \|      \|  
\^~~~~~~~~~~~~~~~~\n           \|      \|   \|.*\n           \|      \|  
\(17\) returning to 'free_boxed_int' from 'wrapped_free'.*\n           \|.*\n  
 <------\+.*\n    \|.*\n  'test': events 18-19.*\n    \|.*\n    \|   NN \|  
free_boxed_int \(obj\);.*\n    \|      \|   \^~~~~~~~~~~~~~~~~~~~\n    \|     
\|   \|.*\n    \|      \|   \(18\) returning to 'test' from
'free_boxed_int'.*\n    \|   NN \| .*\n    \|   NN \|   free_boxed_int
\(obj\);.*\n    \|      \|   ~~~~~~~~~~~~~~~~~~~~\n    \|      \|   \|.*\n   
\|      \|   \(19\) passing freed pointer 'obj' in call to 'free_boxed_int'
from 'test'.*\n    \|.*\n    \+--> 'free_boxed_int': events 20-21.*\n          
\|.*\n           \|   NN \| free_boxed_int \(boxed_int \*bi\).*\n           \| 
    \| \^~~~~~~~~~~~~~\n           \|      \| \|.*\n           \|      \|
\(20\) entry to 'free_boxed_int'.*\n           \|   NN \| \{.*\n           \|  
NN \|   wrapped_free \(bi\);.*\n           \|      \|   ~~~~~~~~~~~~~~~~~\n    
      \|      \|   \|.*\n           \|      \|   \(21\) passing freed pointer
'bi' in call to 'wrapped_free' from 'free_boxed_int'.*\n           \|.*\n      
    \+--> 'wrapped_free': events 22-23.*\n                  \|.*\n             
    \|   NN \| void wrapped_free \(void \*ptr\).*\n                  \|      \|
     \^~~~~~~~~~~~\n                  \|      \|      \|.*\n                 
\|      \|      \(22\) entry to 'wrapped_free'.*\n                  \|   NN \|
\{.*\n                  \|   NN \|   free \(ptr\);.*\n                  \|     
\|   ~~~~~~~~~~\n                  \|      \|   \|.*\n                  \|     
\|   \(23\) second 'free' here; first 'free' was at \(16\).*\n                 
\|.*\n"
FAIL: gcc.dg/analyzer/malloc-ipa-8-unchecked.c (test for excess errors)
FAIL: gcc.dg/analyzer/malloc-ipa-8-unchecked.c expected multiline pattern lines
28-66 not found: "\s*NN \|   result->i = i;.*\n      \|   ~~~~~~~~~~\^~~\n 
'make_boxed_int': events 1-2.*\n    \|.*\n    \|   NN \| make_boxed_int \(int
i\).*\n    \|      \| \^~~~~~~~~~~~~~\n    \|      \| \|.*\n    \|      \|
\(1\) entry to 'make_boxed_int'.*\n    \|   NN \| \{.*\n    \|   NN \|  
boxed_int \*result = \(boxed_int \*\)wrapped_malloc \(sizeof
\(boxed_int\)\);.*\n    \|      \|                                   
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n    \|      \|                            
       \|.*\n    \|      \|                                    \(2\) calling
'wrapped_malloc' from 'make_boxed_int'.*\n    \|.*\n    \+--> 'wrapped_malloc':
events 3-4.*\n           \|.*\n           \|   NN \| void \*wrapped_malloc
\(size_t size\).*\n           \|      \|       \^~~~~~~~~~~~~~\n           \|  
   \|       \|.*\n           \|      \|       \(3\) entry to
'wrapped_malloc'.*\n           \|   NN \| \{.*\n           \|   NN \|   return
malloc \(size\);.*\n           \|      \|          ~~~~~~~~~~~~~\n           \|
     \|          \|.*\n           \|      \|          \(4\) this call could
return NULL.*\n           \|.*\n    <------\+.*\n    \|.*\n  'make_boxed_int':
events 5-6.*\n    \|.*\n    \|   NN \|   boxed_int \*result = \(boxed_int
\*\)wrapped_malloc \(sizeof \(boxed_int\)\);.*\n    \|      \|                 
                  \^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n    \|      \|         
                          \|.*\n    \|      \|                                 
  \(5\) possible return of NULL to 'make_boxed_int' from 'wrapped_malloc'.*\n  
 \|   NN \|   result->i = i;.*\n    \|      \|   ~~~~~~~~~~~~~                 
   .*\n    \|      \|             \|.*\n    \|      \|             \(6\)
'result' could be NULL: unchecked value from \(4\).*\n    \|.*\n"
FAIL: gcc.dg/analyzer/pr101503.c (internal compiler error)
FAIL: gcc.dg/analyzer/pr101503.c (test for excess errors)
FAIL: gcc.dg/analyzer/sensitive-1.c  (test for warnings, line 50)
FAIL: gcc.dg/analyzer/sensitive-1.c  (test for warnings, line 60)
FAIL: gfortran.dg/analyzer/pr96949.f90   -O  (internal compiler error)
FAIL: gfortran.dg/analyzer/pr96949.f90   -O  (test for excess errors)

commit aef703cf982072427e74034f4c460a11c5e04b8e (HEAD, refs/bisect/bad)
Author: Ankur Saini <arsenic@sourceware.org>
Date:   Thu Jul 29 15:48:07 2021 +0530

    analyzer: detect and analyze calls via function pointer

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2021-08-25 21:08 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-08-19 14:50 [Bug analyzer/101980] New: [12 regressions] many test case failures after r12-3002 seurer at gcc dot gnu.org
2021-08-19 15:06 ` [Bug analyzer/101980] " dmalcolm at gcc dot gnu.org
2021-08-20  8:28 ` rguenth at gcc dot gnu.org
2021-08-21  5:04 ` cvs-commit at gcc dot gnu.org
2021-08-23 14:29 ` arsenic at gcc dot gnu.org
2021-08-24 23:07 ` hp at gcc dot gnu.org
2021-08-25  8:32 ` arsenic at gcc dot gnu.org
2021-08-25 13:30 ` cvs-commit at gcc dot gnu.org
2021-08-25 13:33 ` arsenic at gcc dot gnu.org
2021-08-25 21:08 ` hp 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).