From 0a77ce000cbc58105d6a7e27a45c317626510662 Mon Sep 17 00:00:00 2001 From: Michael Tautschnig Date: Wed, 6 Jun 2018 22:32:19 +0100 Subject: [PATCH] Do not use c_qualifiers on goto-program expressions goto-programs are not C specific. --- src/analyses/does_remove_const.cpp | 7 ++----- src/analyses/module_dependencies.txt | 1 - .../remove_const_function_pointers.cpp | 16 ++++------------ 3 files changed, 6 insertions(+), 18 deletions(-) diff --git a/src/analyses/does_remove_const.cpp b/src/analyses/does_remove_const.cpp index 8464980917c..cd6aaefd085 100644 --- a/src/analyses/does_remove_const.cpp +++ b/src/analyses/does_remove_const.cpp @@ -16,7 +16,6 @@ #include #include #include -#include /// A naive analysis to look for casts that remove const-ness from pointers. /// \param goto_program: the goto program to check @@ -163,8 +162,6 @@ bool does_remove_constt::does_type_preserve_const_correctness( bool does_remove_constt::is_type_at_least_as_const_as( const typet &type_more_const, const typet &type_compare) const { - const c_qualifierst type_compare_qualifiers(type_compare); - const c_qualifierst more_constant_qualifiers(type_more_const); - return !type_compare_qualifiers.is_constant || - more_constant_qualifiers.is_constant; + return !type_compare.get_bool(ID_C_constant) || + type_more_const.get_bool(ID_C_constant); } diff --git a/src/analyses/module_dependencies.txt b/src/analyses/module_dependencies.txt index 8962462ddc2..25dc8fec88e 100644 --- a/src/analyses/module_dependencies.txt +++ b/src/analyses/module_dependencies.txt @@ -1,5 +1,4 @@ analyses -ansi-c # should go away goto-programs langapi # should go away pointer-analysis diff --git a/src/goto-programs/remove_const_function_pointers.cpp b/src/goto-programs/remove_const_function_pointers.cpp index ec7fa86af20..eefaf90d77f 100644 --- a/src/goto-programs/remove_const_function_pointers.cpp +++ b/src/goto-programs/remove_const_function_pointers.cpp @@ -16,8 +16,6 @@ Author: Thomas Kiley, thomas.kiley@diffblue.com #include #include -#include - #include "goto_functions.h" #define LOG(message, irep) \ @@ -786,16 +784,10 @@ bool remove_const_function_pointerst::is_const_expression( /// arrays are implicitly const in C. bool remove_const_function_pointerst::is_const_type(const typet &type) const { - c_qualifierst qualifers(type); - if(type.id()==ID_array) - { - c_qualifierst array_type_qualifers(type.subtype()); - return qualifers.is_constant || array_type_qualifers.is_constant; - } - else - { - return qualifers.is_constant; - } + if(type.id() == ID_array && type.subtype().get_bool(ID_C_constant)) + return true; + + return type.get_bool(ID_C_constant); } /// To extract the value of the specific component within a struct