[PATCH 2/2] analyzer: diagnostic_path: fix up expected analyzer output
David Malcolm
dmalcolm@redhat.com
Thu Jan 2 22:44:00 GMT 2020
Successfully bootstrapped & regrtested on x86_64-pc-linux-gnu.
Pushed to dmalcolm/analyzer on the GCC git mirror.
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.
---
.../gcc.dg/analyzer/analyzer-verbosity-0.c | 23 +-
.../gcc.dg/analyzer/analyzer-verbosity-1.c | 23 +-
.../gcc.dg/analyzer/analyzer-verbosity-2.c | 23 +-
gcc/testsuite/gcc.dg/analyzer/malloc-ipa-11.c | 2 -
.../analyzer/malloc-ipa-8-double-free.c | 2 -
.../gcc.dg/analyzer/malloc-ipa-8-unchecked.c | 2 -
.../analyzer/malloc-macro-inline-events.c | 32 +-
.../gcc.dg/analyzer/malloc-paths-9.c | 387 ++++++++----------
gcc/testsuite/gcc.dg/analyzer/setjmp-2.c | 78 ++--
gcc/testsuite/gcc.dg/analyzer/setjmp-3.c | 2 -
gcc/testsuite/gcc.dg/analyzer/setjmp-4.c | 2 -
gcc/testsuite/gcc.dg/analyzer/setjmp-5.c | 2 -
gcc/testsuite/gcc.dg/analyzer/setjmp-7a.c | 2 -
gcc/testsuite/gcc.dg/analyzer/setjmp-8.c | 2 -
gcc/testsuite/gcc.dg/analyzer/setjmp-9.c | 2 -
gcc/testsuite/gcc.dg/analyzer/signal-4a.c | 2 -
gcc/testsuite/gcc.dg/analyzer/signal-4b.c | 2 -
17 files changed, 238 insertions(+), 350 deletions(-)
diff --git a/gcc/testsuite/gcc.dg/analyzer/analyzer-verbosity-0.c b/gcc/testsuite/gcc.dg/analyzer/analyzer-verbosity-0.c
index 1103cc6642d3..bf5ec32c0def 100644
--- a/gcc/testsuite/gcc.dg/analyzer/analyzer-verbosity-0.c
+++ b/gcc/testsuite/gcc.dg/analyzer/analyzer-verbosity-0.c
@@ -20,8 +20,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);
@@ -90,8 +88,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);
@@ -147,16 +143,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 "" } */
diff --git a/gcc/testsuite/gcc.dg/analyzer/analyzer-verbosity-1.c b/gcc/testsuite/gcc.dg/analyzer/analyzer-verbosity-1.c
index 80039d5d9d24..b678790dbc9b 100644
--- a/gcc/testsuite/gcc.dg/analyzer/analyzer-verbosity-1.c
+++ b/gcc/testsuite/gcc.dg/analyzer/analyzer-verbosity-1.c
@@ -20,8 +20,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)
@@ -105,8 +103,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)
@@ -175,16 +171,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 "" } */
diff --git a/gcc/testsuite/gcc.dg/analyzer/analyzer-verbosity-2.c b/gcc/testsuite/gcc.dg/analyzer/analyzer-verbosity-2.c
index 9b87d43544fe..d02207774e69 100644
--- a/gcc/testsuite/gcc.dg/analyzer/analyzer-verbosity-2.c
+++ b/gcc/testsuite/gcc.dg/analyzer/analyzer-verbosity-2.c
@@ -20,8 +20,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)
@@ -116,8 +114,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)
@@ -206,16 +202,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 "" } */
diff --git a/gcc/testsuite/gcc.dg/analyzer/malloc-ipa-11.c b/gcc/testsuite/gcc.dg/analyzer/malloc-ipa-11.c
index d02250f16f60..5a49f5d41129 100644
--- a/gcc/testsuite/gcc.dg/analyzer/malloc-ipa-11.c
+++ b/gcc/testsuite/gcc.dg/analyzer/malloc-ipa-11.c
@@ -28,8 +28,6 @@ void test (void *ptr)
}
/* { dg-begin-multiline-output "" }
- NN | free (victim);
- | ^~~~~~~~~~~~~
'test': events 1-2
|
| NN | void test (void *ptr)
diff --git a/gcc/testsuite/gcc.dg/analyzer/malloc-ipa-8-double-free.c b/gcc/testsuite/gcc.dg/analyzer/malloc-ipa-8-double-free.c
index 50d907f738c1..c848125bd576 100644
--- a/gcc/testsuite/gcc.dg/analyzer/malloc-ipa-8-double-free.c
+++ b/gcc/testsuite/gcc.dg/analyzer/malloc-ipa-8-double-free.c
@@ -46,8 +46,6 @@ void test (int i)
/* double-'free'. */
/* { dg-begin-multiline-output "" }
- NN | free (ptr);
- | ^~~~~~~~~~
'test': events 1-2
|
| NN | void test (int i)
diff --git a/gcc/testsuite/gcc.dg/analyzer/malloc-ipa-8-unchecked.c b/gcc/testsuite/gcc.dg/analyzer/malloc-ipa-8-unchecked.c
index f204331f0a95..35a7a296b8d1 100644
--- a/gcc/testsuite/gcc.dg/analyzer/malloc-ipa-8-unchecked.c
+++ b/gcc/testsuite/gcc.dg/analyzer/malloc-ipa-8-unchecked.c
@@ -24,8 +24,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)
diff --git a/gcc/testsuite/gcc.dg/analyzer/malloc-macro-inline-events.c b/gcc/testsuite/gcc.dg/analyzer/malloc-macro-inline-events.c
index fad6d6e63744..6f355ca71e8d 100644
--- a/gcc/testsuite/gcc.dg/analyzer/malloc-macro-inline-events.c
+++ b/gcc/testsuite/gcc.dg/analyzer/malloc-macro-inline-events.c
@@ -17,29 +17,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 "" } */
}
diff --git a/gcc/testsuite/gcc.dg/analyzer/malloc-paths-9.c b/gcc/testsuite/gcc.dg/analyzer/malloc-paths-9.c
index 6bee885e7de0..d456fee96115 100644
--- a/gcc/testsuite/gcc.dg/analyzer/malloc-paths-9.c
+++ b/gcc/testsuite/gcc.dg/analyzer/malloc-paths-9.c
@@ -9,23 +9,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)
@@ -39,62 +34,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)
@@ -117,182 +102,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? */
diff --git a/gcc/testsuite/gcc.dg/analyzer/setjmp-2.c b/gcc/testsuite/gcc.dg/analyzer/setjmp-2.c
index 2ba3913b4c75..b7ce6ef8cc68 100644
--- a/gcc/testsuite/gcc.dg/analyzer/setjmp-2.c
+++ b/gcc/testsuite/gcc.dg/analyzer/setjmp-2.c
@@ -34,51 +34,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)
diff --git a/gcc/testsuite/gcc.dg/analyzer/setjmp-3.c b/gcc/testsuite/gcc.dg/analyzer/setjmp-3.c
index e89599c42878..25e81d5cf6c9 100644
--- a/gcc/testsuite/gcc.dg/analyzer/setjmp-3.c
+++ b/gcc/testsuite/gcc.dg/analyzer/setjmp-3.c
@@ -35,8 +35,6 @@ void outer (void)
}
/* { dg-begin-multiline-output "" }
- NN | __analyzer_dump_path ();
- | ^~~~~~~~~~~~~~~~~~~~~~~
'outer': event 1
|
| NN | void outer (void)
diff --git a/gcc/testsuite/gcc.dg/analyzer/setjmp-4.c b/gcc/testsuite/gcc.dg/analyzer/setjmp-4.c
index a5b9e9d5d3d6..4efcf41c37d2 100644
--- a/gcc/testsuite/gcc.dg/analyzer/setjmp-4.c
+++ b/gcc/testsuite/gcc.dg/analyzer/setjmp-4.c
@@ -30,8 +30,6 @@ int main (void)
}
/* { dg-begin-multiline-output "" }
- NN | __analyzer_dump_path ();
- | ^~~~~~~~~~~~~~~~~~~~~~~
'main': event 1
|
| NN | int main (void)
diff --git a/gcc/testsuite/gcc.dg/analyzer/setjmp-5.c b/gcc/testsuite/gcc.dg/analyzer/setjmp-5.c
index e9d49b41a6e3..71cfadfa1590 100644
--- a/gcc/testsuite/gcc.dg/analyzer/setjmp-5.c
+++ b/gcc/testsuite/gcc.dg/analyzer/setjmp-5.c
@@ -21,8 +21,6 @@ void outer (void)
}
/* { dg-begin-multiline-output "" }
- NN | longjmp (env, 42);
- | ^~~~~~~~~~~~~~~~~
'outer': events 1-2
|
| NN | void outer (void)
diff --git a/gcc/testsuite/gcc.dg/analyzer/setjmp-7a.c b/gcc/testsuite/gcc.dg/analyzer/setjmp-7a.c
index a462f62649fc..06be82673c67 100644
--- a/gcc/testsuite/gcc.dg/analyzer/setjmp-7a.c
+++ b/gcc/testsuite/gcc.dg/analyzer/setjmp-7a.c
@@ -37,8 +37,6 @@ void outer (void)
}
/* { dg-begin-multiline-output "" }
- NN | longjmp (env, 1);
- | ^~~~~~~~~~~~~~~~
'outer': event 1
|
| NN | void outer (void)
diff --git a/gcc/testsuite/gcc.dg/analyzer/setjmp-8.c b/gcc/testsuite/gcc.dg/analyzer/setjmp-8.c
index f876b8f8a12f..6c391f3c9f47 100644
--- a/gcc/testsuite/gcc.dg/analyzer/setjmp-8.c
+++ b/gcc/testsuite/gcc.dg/analyzer/setjmp-8.c
@@ -36,8 +36,6 @@ void outer (void)
}
/* { dg-begin-multiline-output "" }
- NN | __analyzer_dump_path ();
- | ^~~~~~~~~~~~~~~~~~~~~~~
'outer': event 1
|
| NN | void outer (void)
diff --git a/gcc/testsuite/gcc.dg/analyzer/setjmp-9.c b/gcc/testsuite/gcc.dg/analyzer/setjmp-9.c
index 153676bca8c1..a26218396c35 100644
--- a/gcc/testsuite/gcc.dg/analyzer/setjmp-9.c
+++ b/gcc/testsuite/gcc.dg/analyzer/setjmp-9.c
@@ -38,8 +38,6 @@ void outer (void)
}
/* { dg-begin-multiline-output "" }
- NN | __analyzer_dump_path ();
- | ^~~~~~~~~~~~~~~~~~~~~~~
'outer': event 1
|
| NN | void outer (void)
diff --git a/gcc/testsuite/gcc.dg/analyzer/signal-4a.c b/gcc/testsuite/gcc.dg/analyzer/signal-4a.c
index 19e6b83b032a..9a1a13da06dd 100644
--- a/gcc/testsuite/gcc.dg/analyzer/signal-4a.c
+++ b/gcc/testsuite/gcc.dg/analyzer/signal-4a.c
@@ -28,8 +28,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)
diff --git a/gcc/testsuite/gcc.dg/analyzer/signal-4b.c b/gcc/testsuite/gcc.dg/analyzer/signal-4b.c
index 764af10b1b64..53d0f2e82399 100644
--- a/gcc/testsuite/gcc.dg/analyzer/signal-4b.c
+++ b/gcc/testsuite/gcc.dg/analyzer/signal-4b.c
@@ -31,8 +31,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)
--
2.21.0
More information about the Gcc-patches
mailing list