On Wed, 2021-08-18 at 12:19 -0400, David Malcolm wrote:
> On Tue, 2021-08-17 at 20:40 +0530, Ankur Saini wrote:
> > Here is the final patch after fixing all the nits mentioned. 
> > 
> > Successfully bootstrapped and completed regress tests on x86_64-
> > linux-
> > gnu.
> 
> Great, thanks!
> 
> A very minor nit re ChangeLog entries: when referencing a PR in a
> patch, typically *each* ChangeLog fragment should reference the patch,
> not just one.  So e.g. in....
> 
> gcc/analyzer/ChangeLog:
>         PR analyzer/100546
>         * analysis-plan.cc (analysis_plan::use_summary_p): Don't use
> call
>         summaries if there is no callgraph edge
> [...snip...]
> 
> gcc/testsuite/ChangeLog:
>         * gcc.dg/analyzer/function-ptr-4.c: New test.
>         * gcc.dg/analyzer/pr100546.c: New test.
> 
> ...the "gcc/testsuite/ChangeLog:" should also have a reference to "PR
> analyzer/100546".
> 
> Please go ahead and push these to trunk/master.

I see you pushed these as
  aef703cf982072427e74034f4c460a11c5e04b8e
  1b34248527472496ca3fe2a07183beac8cf69041
respectively.

Unfortunately I'm seeing some new failures with
aef703cf982072427e74034f4c460a11c5e04b8e when I do a clean build of
that tree on x86_64.

e.g. with:
$ make check-gcc RUNTESTFLAGS="--target_board=unix\{-m32,-m64\} 
analyzer-torture.exp=*.c analyzer.exp=*.c" &> 
test-aef703cf982072427e74034f4c460a11c5e04b8e.out

I get the following:

# of unexpected failures        76
# of unexpected successes       2

with at least one ICE (pr101503.c).

I'm attaching the results I get (test.out from above).

Do you see the same failures?

When you said that the patch "completed regress tests on
x86_64-linux-gnu", what checking did you do on the results of those
tests?  The idea is that patches shouldn't introduce new failures.

Thanks
Dave




rm -rf testsuite/gcc-parallel
make[1]: Entering directory '/home/david/coding/gcc-newgit-clean/build/gcc'
(rootme=`${PWDCMD-pwd}`; export rootme; \
srcdir=`cd ../../src/gcc; ${PWDCMD-pwd}` ; export srcdir ; \
if [ -n "" ] \
   && [ -n "$GCC_RUNTEST_PARALLELIZE_DIR" ] \
   && [ -f testsuite/gcc-parallel/finished ]; then \
  rm -rf testsuite/gcc; \
else \
  cd testsuite/gcc; \
  rm -f tmp-site.exp; \
  sed '/set tmpdir/ s|testsuite$|testsuite/gcc|' \
        < ../../site.exp > tmp-site.exp; \
  /bin/sh ${srcdir}/../move-if-change tmp-site.exp site.exp; \
  EXPECT=`if [ -f ${rootme}/../expect/expect ] ; then echo 
${rootme}/../expect/expect ; else echo expect ; fi` ; export EXPECT ; \
  if [ -f ${rootme}/../expect/expect ] ; then  \
    TCL_LIBRARY=`cd .. ; cd ${srcdir}/../tcl/library ; ${PWDCMD-pwd}` ; \
    export TCL_LIBRARY ; \
  fi ; \
  `if [ -f ${srcdir}/../dejagnu/runtest ] ; then echo 
${srcdir}/../dejagnu/runtest ; else echo runtest; fi` --tool gcc 
--target_board=unix\{-m32,-m64\} analyzer-torture.exp=*.c analyzer.exp=*.c; \
  if [ -n "$GCC_RUNTEST_PARALLELIZE_DIR" ] ; then \
    touch ${rootme}/testsuite/gcc-parallel/finished; \
  fi ; \
fi )
WARNING: Couldn't find the global config file.
Test run by david on Wed Aug 18 16:35:35 2021
Native configuration is x86_64-pc-linux-gnu

                === gcc tests ===

Schedule of variations:
    unix/-m32
    unix/-m64

Running target unix/-m32
Using /usr/share/dejagnu/baseboards/unix.exp as board description file for 
target.
Using /usr/share/dejagnu/config/unix.exp as generic interface file for target.
Using /home/david/coding/gcc-newgit-clean/src/gcc/testsuite/config/default.exp 
as tool-and-target-specific interface file.
Running 
/home/david/coding/gcc-newgit-clean/src/gcc/testsuite/gcc.dg/analyzer/analyzer.exp
 ...
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-0.c (test for excess errors)
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-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 (test for excess errors)
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-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 (test for excess errors)
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/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 (test for excess errors)
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)
XPASS: gcc.dg/analyzer/malloc-callbacks.c  (test for warnings, line 72)
FAIL: gcc.dg/analyzer/malloc-ipa-10.c  (test for warnings, line 29)
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-11.c (test for excess errors)
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 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-double-free.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/malloc-ipa-8-unchecked.c (test for excess errors)
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)
Running 
/home/david/coding/gcc-newgit-clean/src/gcc/testsuite/gcc.dg/analyzer/torture/analyzer-torture.exp
 ...

                === gcc Summary for unix/-m32 ===

# of expected passes            2687
# of unexpected failures        38
# of unexpected successes       1
# of expected failures          129
# of unsupported tests          59
Running target unix/-m64
Using /usr/share/dejagnu/baseboards/unix.exp as board description file for 
target.
Using /usr/share/dejagnu/config/unix.exp as generic interface file for target.
Using /home/david/coding/gcc-newgit-clean/src/gcc/testsuite/config/default.exp 
as tool-and-target-specific interface file.
Running 
/home/david/coding/gcc-newgit-clean/src/gcc/testsuite/gcc.dg/analyzer/analyzer.exp
 ...
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-0.c (test for excess errors)
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-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 (test for excess errors)
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-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 (test for excess errors)
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/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 (test for excess errors)
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)
XPASS: gcc.dg/analyzer/malloc-callbacks.c  (test for warnings, line 72)
FAIL: gcc.dg/analyzer/malloc-ipa-10.c  (test for warnings, line 29)
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-11.c (test for excess errors)
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 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-double-free.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/malloc-ipa-8-unchecked.c (test for excess errors)
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)
Running 
/home/david/coding/gcc-newgit-clean/src/gcc/testsuite/gcc.dg/analyzer/torture/analyzer-torture.exp
 ...

                === gcc Summary for unix/-m64 ===

# of expected passes            2842
# of unexpected failures        38
# of unexpected successes       1
# of expected failures          129
# of unsupported tests          19

                === gcc Summary ===

# of expected passes            5529
# of unexpected failures        76
# of unexpected successes       2
# of expected failures          258
# of unsupported tests          78
/home/david/coding/gcc-newgit-clean/build/gcc/xgcc  version 12.0.0 20210818 
(experimental) (GCC) 

make[1]: Leaving directory '/home/david/coding/gcc-newgit-clean/build/gcc'

Reply via email to