From 2598141ca8fec2f50c30ce1fbbc190ba11c18350 Mon Sep 17 00:00:00 2001 From: Michael Tautschnig Date: Fri, 22 Jun 2018 12:37:09 +0100 Subject: [PATCH] Mark integer constants as unsigned when lhs is unsigned --- jbmc/src/java_bytecode/java_utils.cpp | 2 +- src/ansi-c/c_typecheck_expr.cpp | 27 ++++++++++++------- src/ansi-c/literals/unescape_string.cpp | 2 +- src/goto-cc/gcc_mode.cpp | 2 +- .../string_constraint_generator_testing.cpp | 12 ++++++--- src/util/simplify_expr.cpp | 2 +- src/util/unicode.cpp | 18 ++++++------- 7 files changed, 38 insertions(+), 27 deletions(-) diff --git a/jbmc/src/java_bytecode/java_utils.cpp b/jbmc/src/java_bytecode/java_utils.cpp index 5185ba8c8c7..5d49710d02b 100644 --- a/jbmc/src/java_bytecode/java_utils.cpp +++ b/jbmc/src/java_bytecode/java_utils.cpp @@ -43,7 +43,7 @@ unsigned java_local_variable_slots(const typet &t) "all types constructed in java_types.cpp encode JVM types " "with these bit widths"); - return bitwidth==64 ? 2 : 1; + return bitwidth == 64 ? 2u : 1u; } unsigned java_method_parameter_slots(const code_typet &t) diff --git a/src/ansi-c/c_typecheck_expr.cpp b/src/ansi-c/c_typecheck_expr.cpp index 4c8b9e838fb..1a721fbbff4 100644 --- a/src/ansi-c/c_typecheck_expr.cpp +++ b/src/ansi-c/c_typecheck_expr.cpp @@ -2694,20 +2694,27 @@ exprt c_typecheck_baset::do_special_functions( // clang returns 4 for _Bool, gcc treats these as 'int'. type_number = config.ansi_c.preprocessor == configt::ansi_ct::preprocessort::CLANG - ? 4 - : 1; + ? 4u + : 1u; } else { type_number = - type.id() == ID_empty ? 0 - : (type.id() == ID_bool || type.id() == ID_c_bool) ? 4 - : (type.id() == ID_pointer || type.id() == ID_array) ? 5 - : type.id() == ID_floatbv ? 8 - : (type.id() == ID_complex && type.subtype().id() == ID_floatbv) ? 9 - : type.id() == ID_struct ? 12 - : type.id() == ID_union ? 13 - : 1; // int, short, char, enum_tag + type.id() == ID_empty + ? 0u + : (type.id() == ID_bool || type.id() == ID_c_bool) + ? 4u + : (type.id() == ID_pointer || type.id() == ID_array) + ? 5u + : type.id() == ID_floatbv + ? 8u + : (type.id() == ID_complex && type.subtype().id() == ID_floatbv) + ? 9u + : type.id() == ID_struct + ? 12u + : type.id() == ID_union + ? 13u + : 1u; // int, short, char, enum_tag } exprt tmp=from_integer(type_number, expr.type()); diff --git a/src/ansi-c/literals/unescape_string.cpp b/src/ansi-c/literals/unescape_string.cpp index ab633795dec..7e0cef9fe23 100644 --- a/src/ansi-c/literals/unescape_string.cpp +++ b/src/ansi-c/literals/unescape_string.cpp @@ -73,7 +73,7 @@ std::basic_string unescape_string_templ(const std::string &src) { std::string hex; - const unsigned digits=(ch=='u')?4:8; + const unsigned digits = (ch == 'u') ? 4u : 8u; hex.reserve(digits); for(unsigned count=digits; diff --git a/src/goto-cc/gcc_mode.cpp b/src/goto-cc/gcc_mode.cpp index 16b28afcda9..229b8804b5e 100644 --- a/src/goto-cc/gcc_mode.cpp +++ b/src/goto-cc/gcc_mode.cpp @@ -534,7 +534,7 @@ int gcc_modet::doit() config.ansi_c.Float128_type = gcc_version.flavor == gcc_versiont::flavort::GCC && - gcc_version.is_at_least(4, gcc_float128_minor_version); + gcc_version.is_at_least(4u, gcc_float128_minor_version); // -fshort-double makes double the same as float if(cmdline.isset("fshort-double")) diff --git a/src/solvers/refinement/string_constraint_generator_testing.cpp b/src/solvers/refinement/string_constraint_generator_testing.cpp index bb7f7418330..9c2cfd8b1b9 100644 --- a/src/solvers/refinement/string_constraint_generator_testing.cpp +++ b/src/solvers/refinement/string_constraint_generator_testing.cpp @@ -95,8 +95,10 @@ exprt string_constraint_generatort::add_axioms_for_is_prefix( const function_application_exprt::argumentst &args=f.arguments(); PRECONDITION(f.type()==bool_typet() || f.type().id()==ID_c_bool); PRECONDITION(args.size() == 2 || args.size() == 3); - const array_string_exprt &s0 = get_string_expr(args[swap_arguments ? 1 : 0]); - const array_string_exprt &s1 = get_string_expr(args[swap_arguments ? 0 : 1]); + const array_string_exprt &s0 = + get_string_expr(args[swap_arguments ? 1u : 0u]); + const array_string_exprt &s1 = + get_string_expr(args[swap_arguments ? 0u : 1u]); const exprt offset = args.size() == 2 ? from_integer(0, s0.length().type()) : args[2]; return typecast_exprt(add_axioms_for_is_prefix(s0, s1, offset), f.type()); @@ -154,8 +156,10 @@ exprt string_constraint_generatort::add_axioms_for_is_suffix( symbol_exprt issuffix=fresh_boolean("issuffix"); typecast_exprt tc_issuffix(issuffix, f.type()); - const array_string_exprt &s0 = get_string_expr(args[swap_arguments ? 1 : 0]); - const array_string_exprt &s1 = get_string_expr(args[swap_arguments ? 0 : 1]); + const array_string_exprt &s0 = + get_string_expr(args[swap_arguments ? 1u : 0u]); + const array_string_exprt &s1 = + get_string_expr(args[swap_arguments ? 0u : 1u]); const typet &index_type=s0.length().type(); implies_exprt a1(issuffix, s1.axiom_for_length_ge(s0.length())); diff --git a/src/util/simplify_expr.cpp b/src/util/simplify_expr.cpp index efc78d73b47..3f3c5e5ea45 100644 --- a/src/util/simplify_expr.cpp +++ b/src/util/simplify_expr.cpp @@ -503,7 +503,7 @@ bool simplify_exprt::simplify_typecast(exprt &expr) const typet &c_enum_type=ns.follow_tag(to_c_enum_tag_type(expr_type)); if(c_enum_type.id()==ID_c_enum) // possibly incomplete { - unsigned int_value=operand.is_true(); + unsigned int_value = operand.is_true() ? 1u : 0u; exprt tmp=from_integer(int_value, c_enum_type); tmp.type()=expr_type; // we maintain the tag type expr=tmp; diff --git a/src/util/unicode.cpp b/src/util/unicode.cpp index 3a19493d964..6900048e425 100644 --- a/src/util/unicode.cpp +++ b/src/util/unicode.cpp @@ -232,27 +232,27 @@ std::wstring utf8_to_utf16(const std::string& in, bool swap_bytes) // note: if we wanted to make sure that we capture incorrect strings, // we should check that whatever follows first character starts with // bits 10. - code=(c & 0x1F) << 6; + code = (c & 0x1Fu) << 6; c=in[i++]; - code+=c & 0x3F; + code += c & 0x3Fu; } else if(c<=0xEF && i+1