diff options
author | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2020-11-18 17:18:47 +0100 |
---|---|---|
committer | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2020-11-18 21:57:59 +0100 |
commit | fd1491b217595b1da31a7c72303cbffff0aba56a (patch) | |
tree | e0bf0760205d82229807b5389e192db72e4de8eb | |
parent | a624f755195c4d69b4ad554ec0fe88e2e8efe70d (diff) | |
download | sparse-fd1491b217595b1da31a7c72303cbffff0aba56a.tar.gz |
unqual: statement expressions should drop qualifiers
Statement expressions should be subjected to lvalue-conversion
and thus should drop qualifiers.
Fix this by calling unqualify_type() after array-to-pointer
conversion.
Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
-rw-r--r-- | evaluate.c | 2 | ||||
-rw-r--r-- | validation/eval/unqual-stmt-expr.c | 1 |
2 files changed, 1 insertions, 2 deletions
@@ -3950,7 +3950,7 @@ struct symbol *evaluate_statement(struct statement *stmt) return NULL; if (stmt->expression->ctype == &null_ctype) stmt->expression = cast_to(stmt->expression, &ptr_ctype); - return degenerate(stmt->expression); + return unqualify_type(degenerate(stmt->expression)); case STMT_COMPOUND: { struct statement *s; diff --git a/validation/eval/unqual-stmt-expr.c b/validation/eval/unqual-stmt-expr.c index bac6cb6b..280c2fe8 100644 --- a/validation/eval/unqual-stmt-expr.c +++ b/validation/eval/unqual-stmt-expr.c @@ -9,5 +9,4 @@ int *foo(volatile int x) /* * check-name: unqual-stmt-expr - * check-known-to-fail */ |