]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
diagnostic_path: fix up expected analyzer output
authorDavid Malcolm <dmalcolm@redhat.com>
Thu, 2 Jan 2020 18:21:58 +0000 (13:21 -0500)
committerDavid Malcolm <dmalcolm@redhat.com>
Wed, 15 Jan 2020 02:10:45 +0000 (21:10 -0500)
gcc/testsuite/ChangeLog:
* gcc.dg/analyzer/analyzer-verbosity-0.c: Update expected
output to remove source code from diagnostic locus, made redundant
by path.  Remove interprocedural margin and event-run header from
purely intraprocedural case.
* gcc.dg/analyzer/analyzer-verbosity-1.c: Likewise.
* gcc.dg/analyzer/analyzer-verbosity-2.c: Likewise.
* gcc.dg/analyzer/malloc-ipa-11.c: Update to remove source code
for diagnostic locus.
* gcc.dg/analyzer/malloc-ipa-8-double-free.c: Likewise.
* gcc.dg/analyzer/malloc-ipa-8-unchecked.c: Likewise.
* gcc.dg/analyzer/malloc-macro-inline-events.c: Likewise, also to
remove function names from event-run headers and remove
interprocedural margin.
* gcc.dg/analyzer/malloc-paths-9.c: Update to remove source code
for diagnostic locus, event-run header, and interprocedural margin.
* gcc.dg/analyzer/setjmp-2.c: Update to remove source code for
diagnostic locus, function name from event-run headers, and
interprocedural margin.
* gcc.dg/analyzer/setjmp-3.c: Update to remove source code for
diagnostic locus.
* gcc.dg/analyzer/setjmp-4.c: Likewise.
* gcc.dg/analyzer/setjmp-5.c: Likewise.
* gcc.dg/analyzer/setjmp-7a.c: Likewise.
* gcc.dg/analyzer/setjmp-8.c: Likewise.
* gcc.dg/analyzer/setjmp-9.c: Likewise.
* gcc.dg/analyzer/signal-4a.c: Likewise.
* gcc.dg/analyzer/signal-4b.c: Likewise.

17 files changed:
gcc/testsuite/gcc.dg/analyzer/analyzer-verbosity-0.c
gcc/testsuite/gcc.dg/analyzer/analyzer-verbosity-1.c
gcc/testsuite/gcc.dg/analyzer/analyzer-verbosity-2.c
gcc/testsuite/gcc.dg/analyzer/malloc-ipa-11.c
gcc/testsuite/gcc.dg/analyzer/malloc-ipa-8-double-free.c
gcc/testsuite/gcc.dg/analyzer/malloc-ipa-8-unchecked.c
gcc/testsuite/gcc.dg/analyzer/malloc-macro-inline-events.c
gcc/testsuite/gcc.dg/analyzer/malloc-paths-9.c
gcc/testsuite/gcc.dg/analyzer/setjmp-2.c
gcc/testsuite/gcc.dg/analyzer/setjmp-3.c
gcc/testsuite/gcc.dg/analyzer/setjmp-4.c
gcc/testsuite/gcc.dg/analyzer/setjmp-5.c
gcc/testsuite/gcc.dg/analyzer/setjmp-7a.c
gcc/testsuite/gcc.dg/analyzer/setjmp-8.c
gcc/testsuite/gcc.dg/analyzer/setjmp-9.c
gcc/testsuite/gcc.dg/analyzer/signal-4a.c
gcc/testsuite/gcc.dg/analyzer/signal-4b.c

index f21cd37782415b5e21306adc2101e2631db8e07e..f8714a5d8bcc08ee1c150bfac78a1c99ed3e4b11 100644 (file)
@@ -21,8 +21,6 @@ void test_1 (void *ptr, int a, int b)
 }
 
 /* { dg-begin-multiline-output "" }
-   NN |   free (ptr);
-      |   ^~~~~~~~~~
   'test_1': event 1
     |
     |   NN |     calls_free_1 (ptr);
@@ -91,8 +89,6 @@ void test_2 (void *ptr, int a, int b)
 }
 
 /* { dg-begin-multiline-output "" }
-   NN |   free (ptr);
-      |   ^~~~~~~~~~
   'test_2': event 1
     |
     |   NN |       calls_free_2 (ptr);
@@ -148,16 +144,11 @@ void test_3 (void *ptr)
 /* { dg-begin-multiline-output "" }
    NN |   free (ptr);
       |   ^~~~~~~~~~
-  'test_3': events 1-2
-    |
-    |   NN |   free (ptr);
-    |      |   ^~~~~~~~~~
-    |      |   |
-    |      |   (1) first 'free' here
-    |   NN |   called_by_test_3 ();
-    |   NN |   free (ptr);
-    |      |   ~~~~~~~~~~
-    |      |   |
-    |      |   (2) second 'free' here; first 'free' was at (1)
-    |
+      |   |
+      |   (1) first 'free' here
+   NN |   called_by_test_3 ();
+   NN |   free (ptr);
+      |   ~~~~~~~~~~
+      |   |
+      |   (2) second 'free' here; first 'free' was at (1)
   { dg-end-multiline-output "" } */
index 6d6e70a8ae11f2e13fcebee7796896915acfc447..3085c001eebd8835c5b249d8b7eefbf489218a22 100644 (file)
@@ -21,8 +21,6 @@ void test_1 (void *ptr, int a, int b)
 }
 
 /* { dg-begin-multiline-output "" }
-   NN |   free (ptr);
-      |   ^~~~~~~~~~
   'test_1': events 1-2
     |
     |   NN | void test_1 (void *ptr, int a, int b)
@@ -106,8 +104,6 @@ void test_2 (void *ptr, int a, int b)
 }
 
 /* { dg-begin-multiline-output "" }
-   NN |   free (ptr);
-      |   ^~~~~~~~~~
   'test_2': events 1-2
     |
     |   NN | void test_2 (void *ptr, int a, int b)
@@ -176,16 +172,11 @@ void test_3 (void *ptr)
 /* { dg-begin-multiline-output "" }
    NN |   free (ptr);
       |   ^~~~~~~~~~
-  'test_3': events 1-2
-    |
-    |   NN |   free (ptr);
-    |      |   ^~~~~~~~~~
-    |      |   |
-    |      |   (1) first 'free' here
-    |   NN |   called_by_test_3 ();
-    |   NN |   free (ptr);
-    |      |   ~~~~~~~~~~
-    |      |   |
-    |      |   (2) second 'free' here; first 'free' was at (1)
-    |
+      |   |
+      |   (1) first 'free' here
+   NN |   called_by_test_3 ();
+   NN |   free (ptr);
+      |   ~~~~~~~~~~
+      |   |
+      |   (2) second 'free' here; first 'free' was at (1)
   { dg-end-multiline-output "" } */
index 3d3316af1f9a4123b8d3c29e45ccb5e432951186..9d601df0d23ac14d2ac19963fd60b60e71c475b8 100644 (file)
@@ -21,8 +21,6 @@ void test_1 (void *ptr, int a, int b)
 }
 
 /* { dg-begin-multiline-output "" }
-   NN |   free (ptr);
-      |   ^~~~~~~~~~
   'test_1': events 1-4
     |
     |   NN | void test_1 (void *ptr, int a, int b)
@@ -117,8 +115,6 @@ void test_2 (void *ptr, int a, int b)
 }
 
 /* { dg-begin-multiline-output "" }
-   NN |   free (ptr);
-      |   ^~~~~~~~~~
   'test_2': events 1-4
     |
     |   NN | void test_2 (void *ptr, int a, int b)
@@ -207,16 +203,11 @@ void test_3 (void *ptr)
 /* { dg-begin-multiline-output "" }
    NN |   free (ptr);
       |   ^~~~~~~~~~
-  'test_3': events 1-2
-    |
-    |   NN |   free (ptr);
-    |      |   ^~~~~~~~~~
-    |      |   |
-    |      |   (1) first 'free' here
-    |   NN |   called_by_test_3 ();
-    |   NN |   free (ptr);
-    |      |   ~~~~~~~~~~
-    |      |   |
-    |      |   (2) second 'free' here; first 'free' was at (1)
-    |
+      |   |
+      |   (1) first 'free' here
+   NN |   called_by_test_3 ();
+   NN |   free (ptr);
+      |   ~~~~~~~~~~
+      |   |
+      |   (2) second 'free' here; first 'free' was at (1)
   { dg-end-multiline-output "" } */
index b65ff9165e4da5c1bd730e8bc306a3618e18f2b4..2676109f91c4264d88356a4153742d000a4ef205 100644 (file)
@@ -29,8 +29,6 @@ void test (void *ptr)
 }
 
 /* { dg-begin-multiline-output "" }
-   NN |   free (victim);
-      |   ^~~~~~~~~~~~~
   'test': events 1-2
     |
     |   NN | void test (void *ptr)
index f86e8ac72d733c63c23203f4050120830d9d7ff9..23ca47e77d40cde925b8ff29af259a7a6ce4ba36 100644 (file)
@@ -47,8 +47,6 @@ void test (int i)
 
 /* double-'free'.  */
 /* { dg-begin-multiline-output "" }
-   NN |   free (ptr);
-      |   ^~~~~~~~~~
   'test': events 1-2
     |
     |   NN | void test (int i)
index a778a29852f8e6f4cd2a8cdfd1c0ae08fdbac07a..8072524927c59536ab3f62184666aa75082b4322 100644 (file)
@@ -25,8 +25,6 @@ make_boxed_int (int i)
 
 /* "dereference of possibly-NULL 'result' [CWE-690]".  */
 /* { dg-begin-multiline-output "" }
-   NN |   result->i = i;
-      |   ~~~~~~~~~~^~~
   'make_boxed_int': events 1-2
     |
     |   NN | make_boxed_int (int i)
index f08aee626a5e02af6d8f6b13dd099d4ef5fb372f..d07faa05799600edc6802156a2b79a29c5e52725 100644 (file)
@@ -18,29 +18,21 @@ int test (void *ptr)
   /* { dg-regexp "\[^|\]+/malloc-macro.h:\[0-9\]+:\[0-9\]+:" } */
 
   /* { dg-begin-multiline-output "" }
+  event 1
+
+   NN | #define WRAPPED_FREE(PTR) free(PTR)
+      |                           ^~~~~~~~~
+      |                           |
+      |                           (1) first 'free' here
+   NN |   WRAPPED_FREE (ptr);
+      |   ^~~~~~~~~~~~
+  event 2
+
    NN | #define WRAPPED_FREE(PTR) free(PTR)
       |                           ^~~~~~~~~
+      |                           |
+      |                           (2) second 'free' here; first 'free' was at (1)
    NN |   WRAPPED_FREE (ptr);
       |   ^~~~~~~~~~~~
-  'test': event 1
-    |
-    |
-    |   NN | #define WRAPPED_FREE(PTR) free(PTR)
-    |      |                           ^~~~~~~~~
-    |      |                           |
-    |      |                           (1) first 'free' here
-    |   NN |   WRAPPED_FREE (ptr);
-    |      |   ^~~~~~~~~~~~
-    |
-  'test': event 2
-    |
-    |
-    |   NN | #define WRAPPED_FREE(PTR) free(PTR)
-    |      |                           ^~~~~~~~~
-    |      |                           |
-    |      |                           (2) second 'free' here; first 'free' was at (1)
-    |   NN |   WRAPPED_FREE (ptr);
-    |      |   ^~~~~~~~~~~~
-    |
      { dg-end-multiline-output "" } */
 }
index 7b3a0a110e2ae2c483d71e76e779fc6ac04c07da..12e4541f58a6318e18ad0b67a1e219edf9208c74 100644 (file)
@@ -10,23 +10,18 @@ void test_1 (void)
   free (ptr); /* { dg-warning "double-'free' of 'ptr'"  } */
 }
 /* { dg-begin-multiline-output "" }
+   NN |   void *ptr = malloc (1024);
+      |               ^~~~~~~~~~~~~
+      |               |
+      |               (1) allocated here
    NN |   free (ptr);
-      |   ^~~~~~~~~~
-  'test_1': events 1-3
-    |
-    |   NN |   void *ptr = malloc (1024);
-    |      |               ^~~~~~~~~~~~~
-    |      |               |
-    |      |               (1) allocated here
-    |   NN |   free (ptr);
-    |      |   ~~~~~~~~~~   
-    |      |   |
-    |      |   (2) first 'free' here
-    |   NN |   free (ptr);
-    |      |   ~~~~~~~~~~   
-    |      |   |
-    |      |   (3) second 'free' here; first 'free' was at (2)
-    |
+      |   ~~~~~~~~~~   
+      |   |
+      |   (2) first 'free' here
+   NN |   free (ptr);
+      |   ~~~~~~~~~~   
+      |   |
+      |   (3) second 'free' here; first 'free' was at (2)
    { dg-end-multiline-output "" } */
 
 void test_2 (int x, int y)
@@ -40,62 +35,52 @@ void test_2 (int x, int y)
 
 /* "double-'free' of 'ptr'".  */
 /* { dg-begin-multiline-output "" }
+   NN |   void *ptr = malloc (1024);
+      |               ^~~~~~~~~~~~~
+      |               |
+      |               (1) allocated here
+   NN |   if (x)
+      |      ~         
+      |      |
+      |      (2) following 'true' branch (when 'x != 0')...
+   NN |     free (ptr);
+      |     ~~~~~~~~~~ 
+      |     |
+      |     (3) ...to here
+      |     (4) first 'free' here
+   NN |   if (y)
+      |      ~         
+      |      |
+      |      (5) following 'true' branch (when 'y != 0')...
    NN |     free (ptr);
-      |     ^~~~~~~~~~
-  'test_2': events 1-7
-    |
-    |   NN |   void *ptr = malloc (1024);
-    |      |               ^~~~~~~~~~~~~
-    |      |               |
-    |      |               (1) allocated here
-    |   NN |   if (x)
-    |      |      ~         
-    |      |      |
-    |      |      (2) following 'true' branch (when 'x != 0')...
-    |   NN |     free (ptr);
-    |      |     ~~~~~~~~~~ 
-    |      |     |
-    |      |     (3) ...to here
-    |      |     (4) first 'free' here
-    |   NN |   if (y)
-    |      |      ~         
-    |      |      |
-    |      |      (5) following 'true' branch (when 'y != 0')...
-    |   NN |     free (ptr);
-    |      |     ~~~~~~~~~~ 
-    |      |     |
-    |      |     (6) ...to here
-    |      |     (7) second 'free' here; first 'free' was at (4)
-    |
+      |     ~~~~~~~~~~ 
+      |     |
+      |     (6) ...to here
+      |     (7) second 'free' here; first 'free' was at (4)
    { dg-end-multiline-output "" } */
 
 /* "leak of 'ptr'.  */
 /* { dg-begin-multiline-output "" }
+   NN |   void *ptr = malloc (1024);
+      |               ^~~~~~~~~~~~~
+      |               |
+      |               (1) allocated here
+   NN |   if (x)
+      |      ~         
+      |      |
+      |      (2) following 'false' branch (when 'x == 0')...
+   NN |     free (ptr);
+   NN |   if (y)
+      |      ~         
+      |      |
+      |      (3) ...to here
+      |      (4) following 'false' branch (when 'y == 0')...
+   NN |     free (ptr);
    NN | }
-      | ^
-  'test_2': events 1-6
-    |
-    |   NN |   void *ptr = malloc (1024);
-    |      |               ^~~~~~~~~~~~~
-    |      |               |
-    |      |               (1) allocated here
-    |   NN |   if (x)
-    |      |      ~         
-    |      |      |
-    |      |      (2) following 'false' branch (when 'x == 0')...
-    |   NN |     free (ptr);
-    |   NN |   if (y)
-    |      |      ~         
-    |      |      |
-    |      |      (3) ...to here
-    |      |      (4) following 'false' branch (when 'y == 0')...
-    |   NN |     free (ptr);
-    |   NN | }
-    |      | ~              
-    |      | |
-    |      | (5) ...to here
-    |      | (6) 'ptr' leaks here; was allocated at (1)
-    |
+      | ~              
+      | |
+      | (5) ...to here
+      | (6) 'ptr' leaks here; was allocated at (1)
    { dg-end-multiline-output "" } */
 
 int test_3 (int x, int y)
@@ -118,182 +103,152 @@ int test_3 (int x, int y)
 
 /* "dereference of possibly-NULL 'ptr'".  */
 /* { dg-begin-multiline-output "" }
+   NN |   int *ptr = (int *)malloc (sizeof (int));
+      |                     ^~~~~~~~~~~~~~~~~~~~~
+      |                     |
+      |                     (1) this call could return NULL
    NN |   *ptr = 42;
-      |   ~~~~~^~~~
-  'test_3': events 1-2
-    |
-    |   NN |   int *ptr = (int *)malloc (sizeof (int));
-    |      |                     ^~~~~~~~~~~~~~~~~~~~~
-    |      |                     |
-    |      |                     (1) this call could return NULL
-    |   NN |   *ptr = 42;
-    |      |   ~~~~~~~~~          
-    |      |        |
-    |      |        (2) 'ptr' could be NULL: unchecked value from (1)
-    |
+      |   ~~~~~~~~~          
+      |        |
+      |        (2) 'ptr' could be NULL: unchecked value from (1)
    { dg-end-multiline-output "" } */
 
 /* "use after 'free' of 'ptr'".  */
 /* { dg-begin-multiline-output "" }
+   NN |   int *ptr = (int *)malloc (sizeof (int));
+      |                     ^~~~~~~~~~~~~~~~~~~~~
+      |                     |
+      |                     (1) allocated here
+   NN |   *ptr = 42;
+      |   ~~~~~~~~~          
+      |        |
+      |        (2) assuming 'ptr' is non-NULL
+   NN |   if (x)
+      |      ~               
+      |      |
+      |      (3) following 'true' branch (when 'x != 0')...
+   NN |     free (ptr);
+      |     ~~~~~~~~~~       
+      |     |
+      |     (4) ...to here
+      |     (5) freed here
+   NN | 
    NN |   *ptr = 19;
-      |   ~~~~~^~~~
-  'test_3': events 1-6
-    |
-    |   NN |   int *ptr = (int *)malloc (sizeof (int));
-    |      |                     ^~~~~~~~~~~~~~~~~~~~~
-    |      |                     |
-    |      |                     (1) allocated here
-    |   NN |   *ptr = 42;
-    |      |   ~~~~~~~~~          
-    |      |        |
-    |      |        (2) assuming 'ptr' is non-NULL
-    |   NN |   if (x)
-    |      |      ~               
-    |      |      |
-    |      |      (3) following 'true' branch (when 'x != 0')...
-    |   NN |     free (ptr);
-    |      |     ~~~~~~~~~~       
-    |      |     |
-    |      |     (4) ...to here
-    |      |     (5) freed here
-    |   NN | 
-    |   NN |   *ptr = 19;
-    |      |   ~~~~~~~~~          
-    |      |        |
-    |      |        (6) use after 'free' of 'ptr'; freed at (5)
-    |
+      |   ~~~~~~~~~          
+      |        |
+      |        (6) use after 'free' of 'ptr'; freed at (5)
    { dg-end-multiline-output "" } */
 
 /* "use after 'free' of 'ptr'".  */
 /* { dg-begin-multiline-output "" }
+   NN |   int *ptr = (int *)malloc (sizeof (int));
+      |                     ^~~~~~~~~~~~~~~~~~~~~
+      |                     |
+      |                     (1) allocated here
+   NN |   *ptr = 42;
+      |   ~~~~~~~~~          
+      |        |
+      |        (2) assuming 'ptr' is non-NULL
+   NN |   if (x)
+      |      ~               
+      |      |
+      |      (3) following 'false' branch (when 'x == 0')...
+......
+   NN |   *ptr = 19;
+      |   ~~~~~~~~~          
+      |        |
+      |        (4) ...to here
+......
+   NN |   if (y)
+      |      ~               
+      |      |
+      |      (5) following 'true' branch (when 'y != 0')...
+   NN |     free (ptr);
+      |     ~~~~~~~~~~       
+      |     |
+      |     (6) ...to here
+      |     (7) freed here
+   NN |      
    NN |   return *ptr;
-      |          ^~~~
-  'test_3': events 1-8
-    |
-    |   NN |   int *ptr = (int *)malloc (sizeof (int));
-    |      |                     ^~~~~~~~~~~~~~~~~~~~~
-    |      |                     |
-    |      |                     (1) allocated here
-    |   NN |   *ptr = 42;
-    |      |   ~~~~~~~~~          
-    |      |        |
-    |      |        (2) assuming 'ptr' is non-NULL
-    |   NN |   if (x)
-    |      |      ~               
-    |      |      |
-    |      |      (3) following 'false' branch (when 'x == 0')...
-    |......
-    |   NN |   *ptr = 19;
-    |      |   ~~~~~~~~~          
-    |      |        |
-    |      |        (4) ...to here
-    |......
-    |   NN |   if (y)
-    |      |      ~               
-    |      |      |
-    |      |      (5) following 'true' branch (when 'y != 0')...
-    |   NN |     free (ptr);
-    |      |     ~~~~~~~~~~       
-    |      |     |
-    |      |     (6) ...to here
-    |      |     (7) freed here
-    |   NN |      
-    |   NN |   return *ptr;
-    |      |          ~~~~        
-    |      |          |
-    |      |          (8) use after 'free' of 'ptr'; freed at (7)
-    |
+      |          ~~~~        
+      |          |
+      |          (8) use after 'free' of 'ptr'; freed at (7)
    { dg-end-multiline-output "" } */
 
 /* "leak of 'ptr'".  */
 /* { dg-begin-multiline-output "" }
+   NN |   int *ptr = (int *)malloc (sizeof (int));
+      |                     ^~~~~~~~~~~~~~~~~~~~~
+      |                     |
+      |                     (1) allocated here
+   NN |   *ptr = 42;
+      |   ~~~~~~~~~          
+      |        |
+      |        (2) assuming 'ptr' is non-NULL
+   NN |   if (x)
+      |      ~               
+      |      |
+      |      (3) following 'false' branch (when 'x == 0')...
+......
+   NN |   *ptr = 19;
+      |   ~~~~~~~~~          
+      |        |
+      |        (4) ...to here
+......
+   NN |   if (y)
+      |      ~               
+      |      |
+      |      (5) following 'false' branch (when 'y == 0')...
+......
    NN |   return *ptr;
-      |          ^~~~
-  'test_3': events 1-7
-    |
-    |   NN |   int *ptr = (int *)malloc (sizeof (int));
-    |      |                     ^~~~~~~~~~~~~~~~~~~~~
-    |      |                     |
-    |      |                     (1) allocated here
-    |   NN |   *ptr = 42;
-    |      |   ~~~~~~~~~          
-    |      |        |
-    |      |        (2) assuming 'ptr' is non-NULL
-    |   NN |   if (x)
-    |      |      ~               
-    |      |      |
-    |      |      (3) following 'false' branch (when 'x == 0')...
-    |......
-    |   NN |   *ptr = 19;
-    |      |   ~~~~~~~~~          
-    |      |        |
-    |      |        (4) ...to here
-    |......
-    |   NN |   if (y)
-    |      |      ~               
-    |      |      |
-    |      |      (5) following 'false' branch (when 'y == 0')...
-    |......
-    |   NN |   return *ptr;
-    |      |          ~~~~        
-    |      |          |
-    |      |          (6) ...to here
-    |      |          (7) 'ptr' leaks here; was allocated at (1)
-    |
+      |          ~~~~        
+      |          |
+      |          (6) ...to here
+      |          (7) 'ptr' leaks here; was allocated at (1)
    { dg-end-multiline-output "" } */
 
 /* "use after 'free' of 'ptr'".  */
 /* { dg-begin-multiline-output "" }
+   NN |   if (x)
+      |      ^
+      |      |
+      |      (1) following 'true' branch (when 'x != 0')...
+   NN |     free (ptr);
+      |     ~~~~~~~~~~
+      |     |
+      |     (2) ...to here
+   NN | 
    NN |   *ptr = 19;
-      |   ~~~~~^~~~
-  'test_3': events 1-3
-    |
-    |   NN |   if (x)
-    |      |      ^
-    |      |      |
-    |      |      (1) following 'true' branch (when 'x != 0')...
-    |   NN |     free (ptr);
-    |      |     ~~~~~~~~~~
-    |      |     |
-    |      |     (2) ...to here
-    |   NN | 
-    |   NN |   *ptr = 19;
-    |      |   ~~~~~~~~~
-    |      |        |
-    |      |        (3) use after 'free' of 'ptr' here
-    |
+      |   ~~~~~~~~~
+      |        |
+      |        (3) use after 'free' of 'ptr' here
    { dg-end-multiline-output "" } */
 
 /* "use after 'free' of 'ptr'".  */
 /* { dg-begin-multiline-output "" }
+   NN |   if (x)
+      |      ^
+      |      |
+      |      (1) following 'false' branch (when 'x == 0')...
+......
+   NN |   *ptr = 19;
+      |   ~~~~~~~~~
+      |        |
+      |        (2) ...to here
+......
+   NN |   if (y)
+      |      ~
+      |      |
+      |      (3) following 'true' branch (when 'y != 0')...
+   NN |     free (ptr);
+      |     ~~~~~~~~~~
+      |     |
+      |     (4) ...to here
+   NN |      to dereference it above
    NN |   return *ptr;
-      |          ^~~~
-  'test_3': events 1-5
-    |
-    |   NN |   if (x)
-    |      |      ^
-    |      |      |
-    |      |      (1) following 'false' branch (when 'x == 0')...
-    |......
-    |   NN |   *ptr = 19;
-    |      |   ~~~~~~~~~
-    |      |        |
-    |      |        (2) ...to here
-    |......
-    |   NN |   if (y)
-    |      |      ~
-    |      |      |
-    |      |      (3) following 'true' branch (when 'y != 0')...
-    |   NN |     free (ptr);
-    |      |     ~~~~~~~~~~
-    |      |     |
-    |      |     (4) ...to here
-    |   NN |      to dereference it above
-    |   NN |   return *ptr;
-    |      |          ~~~~
-    |      |          |
-    |      |          (5) use after 'free' of 'ptr' here
-    |
+      |          ~~~~
+      |          |
+      |          (5) use after 'free' of 'ptr' here
    { dg-end-multiline-output "" } */
 /* TODO: this is really a duplicate; can we either eliminate it, or
    improve the path?  */
index f0fd23cf2641eba6922d54af90d8e3e59d8ec306..018771015f5b5f43d05d188dd7db13cc5075f338 100644 (file)
@@ -35,51 +35,41 @@ void test_2 (void)
 }
 
 /* { dg-begin-multiline-output "" }
+  event 1
+   NN |   i = setjmp(env);
+      |       ^~~~~~
+      |       |
+      |       (1) 'setjmp' called here
+  events 2-4
+   NN |   if (i != 0)
+      |      ^
+      |      |
+      |      (2) following 'false' branch (when 'i == 0')...
+......
+   NN |     longjmp (env, 1);
+      |     ~~~~~~~~~~~~~~~~
+      |     |
+      |     (3) ...to here
+      |     (4) rewinding within 'test_2' from 'longjmp'...
+  event 5
+   NN |   i = setjmp(env);
+      |       ^~~~~~
+      |       |
+      |       (5) ...to 'setjmp' (saved at (1))
+  events 6-8
+   NN |   if (i != 0)
+      |      ^
+      |      |
+      |      (6) following 'true' branch (when 'i != 0')...
+   NN |     {
+   NN |       foo (2);
+      |       ~~~~~~~
+      |       |
+      |       (7) ...to here
    NN |       __analyzer_dump_path ();
-      |       ^~~~~~~~~~~~~~~~~~~~~~~
-  'test_2': event 1
-    |
-    |   NN |   i = setjmp(env);
-    |      |       ^~~~~~
-    |      |       |
-    |      |       (1) 'setjmp' called here
-    |
-  'test_2': events 2-4
-    |
-    |   NN |   if (i != 0)
-    |      |      ^
-    |      |      |
-    |      |      (2) following 'false' branch (when 'i == 0')...
-    |......
-    |   NN |     longjmp (env, 1);
-    |      |     ~~~~~~~~~~~~~~~~
-    |      |     |
-    |      |     (3) ...to here
-    |      |     (4) rewinding within 'test_2' from 'longjmp'...
-    |
-  'test_2': event 5
-    |
-    |   NN |   i = setjmp(env);
-    |      |       ^~~~~~
-    |      |       |
-    |      |       (5) ...to 'setjmp' (saved at (1))
-    |
-  'test_2': events 6-8
-    |
-    |   NN |   if (i != 0)
-    |      |      ^
-    |      |      |
-    |      |      (6) following 'true' branch (when 'i != 0')...
-    |   NN |     {
-    |   NN |       foo (2);
-    |      |       ~~~~~~~
-    |      |       |
-    |      |       (7) ...to here
-    |   NN |       __analyzer_dump_path ();
-    |      |       ~~~~~~~~~~~~~~~~~~~~~~~
-    |      |       |
-    |      |       (8) here
-    |
+      |       ~~~~~~~~~~~~~~~~~~~~~~~
+      |       |
+      |       (8) here
     { dg-end-multiline-output "" } */
 
 void test_3 (void)
index 0c082b82a7086c8914f0c07e3482dff618d47c54..7159f93ff4e1cd78ce40099b1f73c05ba17536a8 100644 (file)
@@ -36,8 +36,6 @@ void outer (void)
 }
 
 /* { dg-begin-multiline-output "" }
-   NN |       __analyzer_dump_path ();
-      |       ^~~~~~~~~~~~~~~~~~~~~~~
   'outer': event 1
     |
     |   NN | void outer (void)
index bfac6170d910f12793feb7b260bf9f34896d4a96..738d2d0a3a360063b7b1e9be8823dfdd30d89596 100644 (file)
@@ -31,8 +31,6 @@ int main (void)
 }
 
 /* { dg-begin-multiline-output "" }
-   NN |     __analyzer_dump_path ();
-      |     ^~~~~~~~~~~~~~~~~~~~~~~
   'main': event 1
     |
     |   NN | int main (void)
index 2c41e6dff773ae935b4b0c4d151edde298478c63..fb802c40d281c2ad2ff17561f00225062039f44d 100644 (file)
@@ -22,8 +22,6 @@ void outer (void)
 }
 
 /* { dg-begin-multiline-output "" }
-   NN |   longjmp (env, 42);
-      |   ^~~~~~~~~~~~~~~~~
   'outer': events 1-2
     |
     |   NN | void outer (void)
index 1e2c348af3e4c90df2db10166d4dc363e5a612b3..82812fc9f0c02cf33ead81e2da4b26eb62d902fc 100644 (file)
@@ -38,8 +38,6 @@ void outer (void)
 }
 
 /* { dg-begin-multiline-output "" }
-   NN |   longjmp (env, 1);
-      |   ^~~~~~~~~~~~~~~~
   'outer': event 1
     |
     |   NN | void outer (void)
index fb93165380392985940562748cd090e42d9d52cb..ca88893d6839eb2a2c6a6db2b1c3698c49a91a77 100644 (file)
@@ -37,8 +37,6 @@ void outer (void)
 }
 
 /* { dg-begin-multiline-output "" }
-   NN |       __analyzer_dump_path ();
-      |       ^~~~~~~~~~~~~~~~~~~~~~~
   'outer': event 1
     |
     |   NN | void outer (void)
index fa2d3152c27cbeb5e031c3fea20a8c1f0ada1b9a..69ac83157d2582748a7e474540668508a9464a36 100644 (file)
@@ -39,8 +39,6 @@ void outer (void)
 }
 
 /* { dg-begin-multiline-output "" }
-   NN |       __analyzer_dump_path ();
-      |       ^~~~~~~~~~~~~~~~~~~~~~~
   'outer': event 1
     |
     |   NN | void outer (void)
index 4b68b6d045b9080b56b5478a4a5863b608b23cf9..878ee67d418e5839aae678967e786ce31f4f286e 100644 (file)
@@ -29,8 +29,6 @@ void test (void)
 
 /* "call to 'fprintf' from within signal handler [CWE-479]".  */
 /* { dg-begin-multiline-output "" }
-   NN |   fprintf(stderr, "LOG: %s", msg);
-      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   'test': events 1-2
     |
     |   NN | void test (void)
index 38d40247357473d5fe05942ec9b774cc7626622c..606a4818676e048966a9e0fcc53f2ace283fb7e3 100644 (file)
@@ -32,8 +32,6 @@ void test (void)
 
 /* "call to 'fprintf' from within signal handler [CWE-479]".  */
 /* { dg-begin-multiline-output "" }
-   NN |   fprintf(stderr, "LOG: %s", msg);
-      |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   'test': events 1-2
     |
     |   NN | void test (void)