diff options
| author | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2017-11-24 23:03:41 +0100 |
|---|---|---|
| committer | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2017-12-21 01:23:56 +0100 |
| commit | 696b243a5ae0b532c5505d53ae176fc3ac501579 (patch) | |
| tree | 8af2170101d28441df2610eba91857aa8fcf222f /validation/linear | |
| parent | 26d547eeb3dff8cad58d314fcc7805b9862eadf5 (diff) | |
| download | sparse-dev-696b243a5ae0b532c5505d53ae176fc3ac501579.tar.gz | |
fix: evaluate_dereference() unexamined base type
Examination of a pointer type doesn't examine the corresponding
base type (this base type may not yet be complete). So, this
examination must be done later, when the base type is needed.
However, in some cases it's possible to call evaluate_dereference()
while the base type is still unexamined.
Fix this by adding the missing examine_symbol_type() on the base type.
Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
Diffstat (limited to 'validation/linear')
| -rw-r--r-- | validation/linear/deref-ptr-ptr.c | 1 | ||||
| -rw-r--r-- | validation/linear/unexamined-base-type.c | 1 |
2 files changed, 0 insertions, 2 deletions
diff --git a/validation/linear/deref-ptr-ptr.c b/validation/linear/deref-ptr-ptr.c index 022595d7..963acd36 100644 --- a/validation/linear/deref-ptr-ptr.c +++ b/validation/linear/deref-ptr-ptr.c @@ -6,7 +6,6 @@ char *foo(char **pfmt) /* * check-name: deref-ptr-ptr * check-command: test-linearize -m64 -Wno-decl $file - * check-known-to-fail * * check-output-excludes: load[^.] * check-output-contains: load\. diff --git a/validation/linear/unexamined-base-type.c b/validation/linear/unexamined-base-type.c index a138ba13..96aee3f0 100644 --- a/validation/linear/unexamined-base-type.c +++ b/validation/linear/unexamined-base-type.c @@ -28,7 +28,6 @@ static void bar(struct s *d, struct s *s1, struct s *s2) * ^^^ !! WRONG !! * and.32 %r6 <- %r5, $1 * ret.32 %r6 - * check-known-to-fail * * check-output-ignore * check-output-excludes: load[^.] |
