From a46ad62985ff5f07b6d0d9d974715972e0443683 Mon Sep 17 00:00:00 2001 From: reuk Date: Tue, 12 Sep 2017 18:45:02 +0100 Subject: [PATCH 1/4] Regenerate malformed binary blobs --- .../ansi-c/arch_flags_mcpu_bad/object.intel | Bin 4392 -> 4483 bytes .../ansi-c/arch_flags_mcpu_good/object.arm | Bin 4174 -> 4208 bytes .../ansi-c/arch_flags_mcpu_good/test.desc | 4 ++++ .../ansi-c/arch_flags_mthumb_bad/object.intel | Bin 4392 -> 4485 bytes .../ansi-c/arch_flags_mthumb_good/object.arm | Bin 4174 -> 4268 bytes .../ansi-c/arch_flags_mthumb_good/test.desc | 4 ++++ 6 files changed, 8 insertions(+) diff --git a/regression/ansi-c/arch_flags_mcpu_bad/object.intel b/regression/ansi-c/arch_flags_mcpu_bad/object.intel index cc6ea40a25e16bfd5f54e674940b2a56dd1a79ae..e32d04e4c5675da66bdfac403dd8587ddfac4357 100644 GIT binary patch literal 4483 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 IZli?!ALiP`UjP6A literal 4174 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 Date: Tue, 12 Sep 2017 14:37:59 +0100 Subject: [PATCH 2/4] Ensure pointer invariants are maintained --- src/ansi-c/c_typecast.cpp | 3 +-- src/ansi-c/c_typecheck_expr.cpp | 3 +-- src/ansi-c/c_typecheck_type.cpp | 2 +- src/ansi-c/parser.y | 21 +++++++-------------- src/ansi-c/parser_static.inc | 3 +-- src/cpp/cpp_typecheck_constructor.cpp | 11 +++++------ src/cpp/parse.cpp | 11 ++++++----- src/goto-programs/remove_exceptions.cpp | 2 +- src/util/std_types.h | 4 ++++ 9 files changed, 27 insertions(+), 33 deletions(-) diff --git a/src/ansi-c/c_typecast.cpp b/src/ansi-c/c_typecast.cpp index edf95e5379e..0be52dae81c 100644 --- a/src/ansi-c/c_typecast.cpp +++ b/src/ansi-c/c_typecast.cpp @@ -372,8 +372,7 @@ void c_typecastt::implicit_typecast_arithmetic( case PTR: if(expr_type.id()==ID_array) { - new_type.id(ID_pointer); - new_type.subtype()=expr_type.subtype(); + new_type=pointer_type(expr_type.subtype()); break; } return; diff --git a/src/ansi-c/c_typecheck_expr.cpp b/src/ansi-c/c_typecheck_expr.cpp index e45dc1a4d89..59c684de00b 100644 --- a/src/ansi-c/c_typecheck_expr.cpp +++ b/src/ansi-c/c_typecheck_expr.cpp @@ -1594,8 +1594,7 @@ void c_typecheck_baset::typecheck_expr_trinary(if_exprt &expr) { // Make it void *. // gcc and clang issue a warning for this. - expr.type()=typet(ID_pointer); - expr.type().subtype()=typet(ID_empty); + expr.type()=pointer_type(empty_typet()); implicit_typecast(operands[1], expr.type()); implicit_typecast(operands[2], expr.type()); } diff --git a/src/ansi-c/c_typecheck_type.cpp b/src/ansi-c/c_typecheck_type.cpp index 1a6bf27adad..88ca770c4bf 100644 --- a/src/ansi-c/c_typecheck_type.cpp +++ b/src/ansi-c/c_typecheck_type.cpp @@ -1492,7 +1492,7 @@ void c_typecheck_baset::adjust_function_parameter(typet &type) const { if(type.id()==ID_array) { - type.id(ID_pointer); + type=pointer_type(type.subtype()); type.remove(ID_size); type.remove(ID_C_constant); } diff --git a/src/ansi-c/parser.y b/src/ansi-c/parser.y index bddccced310..ba7ab7a0bb1 100644 --- a/src/ansi-c/parser.y +++ b/src/ansi-c/parser.y @@ -3065,8 +3065,7 @@ unary_identifier_declarator: { // the type_qualifier_list is for the pointer, // and not the identifier_declarator - stack_type($1).id(ID_pointer); - stack_type($1).subtype()=typet(ID_abstract); + stack_type($1)=pointer_type(typet(ID_abstract)); $2=merge($2, $1); // dest=$2 make_subtype($3, $2); // dest=$3 $$=$3; @@ -3250,15 +3249,13 @@ unary_abstract_declarator: '*' { $$=$1; - set($$, ID_pointer); - stack_type($$).subtype()=typet(ID_abstract); + stack_type($$)=pointer_type(typet(ID_abstract)); } | '*' attribute_type_qualifier_list { // The type_qualifier_list belongs to the pointer, // not to the (missing) abstract declarator. - set($1, ID_pointer); - stack_type($1).subtype()=typet(ID_abstract); + stack_type($1)=pointer_type(typet(ID_abstract)); $$=merge($2, $1); } | '*' abstract_declarator @@ -3270,8 +3267,7 @@ unary_abstract_declarator: { // The type_qualifier_list belongs to the pointer, // not to the abstract declarator. - stack_type($1).id(ID_pointer); - stack_type($1).subtype()=typet(ID_abstract); + stack_type($1)=pointer_type(typet(ID_abstract)); $2=merge($2, $1); // dest=$2 make_subtype($3, $2); // dest=$3 $$=$3; @@ -3290,15 +3286,13 @@ parameter_unary_abstract_declarator: '*' { $$=$1; - set($$, ID_pointer); - stack_type($$).subtype()=typet(ID_abstract); + stack_type($$)=pointer_type(typet(ID_abstract)); } | '*' attribute_type_qualifier_list { // The type_qualifier_list belongs to the pointer, // not to the (missing) abstract declarator. - set($1, ID_pointer); - stack_type($1).subtype()=typet(ID_abstract); + stack_type($1)=pointer_type(typet(ID_abstract)); $$=merge($2, $1); } | '*' parameter_abstract_declarator @@ -3310,8 +3304,7 @@ parameter_unary_abstract_declarator: { // The type_qualifier_list belongs to the pointer, // not to the (missing) abstract declarator. - stack($1).id(ID_pointer); - stack_type($1).subtype()=typet(ID_abstract); + stack_type($1)=pointer_type(typet(ID_abstract)); $2=merge($2, $1); // dest=$2 make_subtype($3, $2); // dest=$3 $$=$3; diff --git a/src/ansi-c/parser_static.inc b/src/ansi-c/parser_static.inc index e0c8385998d..6f0b3f41b1d 100644 --- a/src/ansi-c/parser_static.inc +++ b/src/ansi-c/parser_static.inc @@ -290,8 +290,7 @@ Function: make_pointer static void make_pointer(const YYSTYPE dest) { - set(dest, ID_pointer); - stack_type(dest).subtype()=typet(ID_abstract); + stack_type(dest)=pointer_type(typet(ID_abstract)); } /*******************************************************************\ diff --git a/src/cpp/cpp_typecheck_constructor.cpp b/src/cpp/cpp_typecheck_constructor.cpp index 40b0fe18afd..2ec3a686c2d 100644 --- a/src/cpp/cpp_typecheck_constructor.cpp +++ b/src/cpp/cpp_typecheck_constructor.cpp @@ -41,17 +41,17 @@ static void copy_parent( exprt &op0=code.op0().op0(); op0.operands().push_back(exprt("cpp-this")); - op0.type().id(ID_pointer); - op0.type().subtype()=cpp_namet(parent_base_name, source_location).as_type(); + op0.type()= + pointer_type(cpp_namet(parent_base_name, source_location).as_type()); op0.add_source_location()=source_location; code.operands().push_back(exprt("explicit-typecast")); exprt &op1=code.op1(); - op1.type().id(ID_pointer); + op0.type()= + pointer_type(cpp_namet(parent_base_name, source_location).as_type()); op1.type().set(ID_C_reference, true); op1.type().subtype().set(ID_C_constant, true); - op1.type().subtype()=cpp_namet(parent_base_name, source_location).as_type(); op1.operands().push_back(exprt(ID_cpp_name)); op1.op0().get_sub().push_back(irept(ID_name)); @@ -420,9 +420,8 @@ void cpp_typecheckt::default_assignop( args_decl_declor.name().get_sub().back().add(ID_identifier).id(arg_name); args_decl_declor.add_source_location()=source_location; - args_decl_declor.type().id(ID_pointer); + args_decl_declor.type()=pointer_type(typet(ID_nil)); args_decl_declor.type().set(ID_C_reference, true); - args_decl_declor.type().subtype().make_nil(); args_decl_declor.value().make_nil(); } diff --git a/src/cpp/parse.cpp b/src/cpp/parse.cpp index ee399b8af8d..1cb4bfbe651 100644 --- a/src/cpp/parse.cpp +++ b/src/cpp/parse.cpp @@ -18,6 +18,7 @@ Author: Daniel Kroening, kroening@cs.cmu.edu #include #include #include +#include #include @@ -3015,7 +3016,7 @@ bool Parser::optPtrOperator(typet &ptrs) if(t=='*') { - typet op(ID_pointer); + typet op=pointer_type(typet(ID_nil)); cpp_tokent tk; lex.get_token(tk); set_location(op, tk); @@ -3078,7 +3079,7 @@ bool Parser::optPtrOperator(typet &ptrs) { cpp_tokent tk; lex.get_token(tk); - typet op(ID_pointer); + typet op=pointer_type(typet(ID_nil)); op.set(ID_C_reference, true); set_location(op, tk); t_list.push_front(op); @@ -3087,7 +3088,7 @@ bool Parser::optPtrOperator(typet &ptrs) { cpp_tokent tk; lex.get_token(tk); - typet op(ID_pointer); + typet op=pointer_type(typet(ID_nil)); op.set(ID_C_rvalue_reference, true); set_location(op, tk); t_list.push_front(op); @@ -3530,7 +3531,7 @@ bool Parser::rPtrToMember(irept &ptr_to_mem) std::cout << std::string(__indent, ' ') << "Parser::rPtrToMember 0\n"; #endif - irept ptm(ID_pointer); + typet ptm=pointer_type(typet(ID_nil)); irept &name = ptm.add("to-member"); name=cpp_namet(); irept::subt &components=name.get_sub(); @@ -6477,7 +6478,7 @@ bool Parser::rPrimaryExpr(exprt &exp) case TOK_NULLPTR: lex.get_token(tk); - exp=constant_exprt(ID_NULL, typet(ID_pointer, typet(ID_nullptr))); + exp=constant_exprt(ID_NULL, pointer_type(typet(ID_nullptr))); set_location(exp, tk); #ifdef DEBUG std::cout << std::string(__indent, ' ') << "Parser::rPrimaryExpr 6\n"; diff --git a/src/goto-programs/remove_exceptions.cpp b/src/goto-programs/remove_exceptions.cpp index 0c9a922367d..d437ddf622b 100644 --- a/src/goto-programs/remove_exceptions.cpp +++ b/src/goto-programs/remove_exceptions.cpp @@ -213,7 +213,7 @@ void remove_exceptionst::add_exceptional_returns( new_symbol.base_name=id2string(function_symbol.base_name)+EXC_SUFFIX; new_symbol.name=id2string(function_symbol.name)+EXC_SUFFIX; new_symbol.mode=function_symbol.mode; - new_symbol.type=typet(ID_pointer, empty_typet()); + new_symbol.type=pointer_type(empty_typet()); symbol_table.add(new_symbol); // initialize the exceptional return with NULL diff --git a/src/util/std_types.h b/src/util/std_types.h index 4d4a0763ca8..52ba60784f5 100644 --- a/src/util/std_types.h +++ b/src/util/std_types.h @@ -1391,6 +1391,7 @@ class pointer_typet:public bitvector_typet inline const pointer_typet &to_pointer_type(const typet &type) { assert(type.id()==ID_pointer); + assert(!type.get(ID_width).empty()); return static_cast(type); } @@ -1400,6 +1401,7 @@ inline const pointer_typet &to_pointer_type(const typet &type) inline pointer_typet &to_pointer_type(typet &type) { assert(type.id()==ID_pointer); + assert(!type.get(ID_width).empty()); return static_cast(type); } @@ -1428,6 +1430,7 @@ class reference_typet:public pointer_typet inline const reference_typet &to_reference_type(const typet &type) { assert(type.id()==ID_pointer && type.get_bool(ID_C_reference)); + assert(!type.get(ID_width).empty()); return static_cast(type); } @@ -1437,6 +1440,7 @@ inline const reference_typet &to_reference_type(const typet &type) inline reference_typet &to_reference_type(typet &type) { assert(type.id()==ID_pointer && type.get_bool(ID_C_reference)); + assert(!type.get(ID_width).empty()); return static_cast(type); } From 81f1300f439f9b7f7e92b6feb242cf3789d7b092 Mon Sep 17 00:00:00 2001 From: reuk Date: Wed, 13 Sep 2017 16:50:29 +0100 Subject: [PATCH 3/4] Use PRECONDITION in std_types.h --- src/util/std_types.h | 161 +++++++++++++++++++++---------------------- 1 file changed, 79 insertions(+), 82 deletions(-) diff --git a/src/util/std_types.h b/src/util/std_types.h index 52ba60784f5..726c210e52e 100644 --- a/src/util/std_types.h +++ b/src/util/std_types.h @@ -17,10 +17,9 @@ Author: Daniel Kroening, kroening@kroening.com * \date Sun Jul 31 21:54:44 BST 2011 */ -#include - #include "expr.h" #include "mp_arith.h" +#include "invariant.h" class constant_exprt; @@ -141,7 +140,7 @@ class symbol_typet:public typet */ inline const symbol_typet &to_symbol_type(const typet &type) { - assert(type.id()==ID_symbol); + PRECONDITION(type.id()==ID_symbol); return static_cast(type); } @@ -150,7 +149,7 @@ inline const symbol_typet &to_symbol_type(const typet &type) */ inline symbol_typet &to_symbol_type(typet &type) { - assert(type.id()==ID_symbol); + PRECONDITION(type.id()==ID_symbol); return static_cast(type); } @@ -276,8 +275,7 @@ class struct_union_typet:public typet */ inline const struct_union_typet &to_struct_union_type(const typet &type) { - assert(type.id()==ID_struct || - type.id()==ID_union); + PRECONDITION(type.id()==ID_struct || type.id()==ID_union); return static_cast(type); } @@ -286,8 +284,7 @@ inline const struct_union_typet &to_struct_union_type(const typet &type) */ inline struct_union_typet &to_struct_union_type(typet &type) { - assert(type.id()==ID_struct || - type.id()==ID_union); + PRECONDITION(type.id()==ID_struct || type.id()==ID_union); return static_cast(type); } @@ -316,7 +313,7 @@ class struct_typet:public struct_union_typet */ inline const struct_typet &to_struct_type(const typet &type) { - assert(type.id()==ID_struct); + PRECONDITION(type.id()==ID_struct); return static_cast(type); } @@ -325,7 +322,7 @@ inline const struct_typet &to_struct_type(const typet &type) */ inline struct_typet &to_struct_type(typet &type) { - assert(type.id()==ID_struct); + PRECONDITION(type.id()==ID_struct); return static_cast(type); } @@ -420,7 +417,7 @@ class class_typet:public struct_typet */ inline const class_typet &to_class_type(const typet &type) { - assert(type.id()==ID_struct); + PRECONDITION(type.id()==ID_struct); return static_cast(type); } @@ -429,7 +426,7 @@ inline const class_typet &to_class_type(const typet &type) */ inline class_typet &to_class_type(typet &type) { - assert(type.id()==ID_struct); + PRECONDITION(type.id()==ID_struct); return static_cast(type); } @@ -455,7 +452,7 @@ class union_typet:public struct_union_typet */ inline const union_typet &to_union_type(const typet &type) { - assert(type.id()==ID_union); + PRECONDITION(type.id()==ID_union); return static_cast(type); } @@ -464,7 +461,7 @@ inline const union_typet &to_union_type(const typet &type) */ inline union_typet &to_union_type(typet &type) { - assert(type.id()==ID_union); + PRECONDITION(type.id()==ID_union); return static_cast(type); } @@ -508,9 +505,9 @@ class tag_typet:public typet */ inline const tag_typet &to_tag_type(const typet &type) { - assert(type.id()==ID_c_enum_tag || - type.id()==ID_struct_tag || - type.id()==ID_union_tag); + PRECONDITION(type.id()==ID_c_enum_tag || + type.id()==ID_struct_tag || + type.id()==ID_union_tag); return static_cast(type); } @@ -519,9 +516,9 @@ inline const tag_typet &to_tag_type(const typet &type) */ inline tag_typet &to_tag_type(typet &type) { - assert(type.id()==ID_c_enum_tag || - type.id()==ID_struct_tag || - type.id()==ID_union_tag); + PRECONDITION(type.id()==ID_c_enum_tag || + type.id()==ID_struct_tag || + type.id()==ID_union_tag); return static_cast(type); } @@ -549,7 +546,7 @@ class struct_tag_typet:public tag_typet */ inline const struct_tag_typet &to_struct_tag_type(const typet &type) { - assert(type.id()==ID_struct_tag); + PRECONDITION(type.id()==ID_struct_tag); return static_cast(type); } @@ -558,7 +555,7 @@ inline const struct_tag_typet &to_struct_tag_type(const typet &type) */ inline struct_tag_typet &to_struct_tag_type(typet &type) { - assert(type.id()==ID_struct_tag); + PRECONDITION(type.id()==ID_struct_tag); return static_cast(type); } @@ -586,7 +583,7 @@ class union_tag_typet:public tag_typet */ inline const union_tag_typet &to_union_tag_type(const typet &type) { - assert(type.id()==ID_union_tag); + PRECONDITION(type.id()==ID_union_tag); return static_cast(type); } @@ -595,7 +592,7 @@ inline const union_tag_typet &to_union_tag_type(const typet &type) */ inline union_tag_typet &to_union_tag_type(typet &type) { - assert(type.id()==ID_union_tag); + PRECONDITION(type.id()==ID_union_tag); return static_cast(type); } @@ -632,7 +629,7 @@ class enumeration_typet:public typet */ inline const enumeration_typet &to_enumeration_type(const typet &type) { - assert(type.id()==ID_enumeration); + PRECONDITION(type.id()==ID_enumeration); return static_cast(type); } @@ -641,7 +638,7 @@ inline const enumeration_typet &to_enumeration_type(const typet &type) */ inline enumeration_typet &to_enumeration_type(typet &type) { - assert(type.id()==ID_enumeration); + PRECONDITION(type.id()==ID_enumeration); return static_cast(type); } @@ -693,7 +690,7 @@ class c_enum_typet:public type_with_subtypet */ inline const c_enum_typet &to_c_enum_type(const typet &type) { - assert(type.id()==ID_c_enum); + PRECONDITION(type.id()==ID_c_enum); return static_cast(type); } @@ -702,7 +699,7 @@ inline const c_enum_typet &to_c_enum_type(const typet &type) */ inline c_enum_typet &to_c_enum_type(typet &type) { - assert(type.id()==ID_c_enum); + PRECONDITION(type.id()==ID_c_enum); return static_cast(type); } @@ -730,7 +727,7 @@ class c_enum_tag_typet:public tag_typet */ inline const c_enum_tag_typet &to_c_enum_tag_type(const typet &type) { - assert(type.id()==ID_c_enum_tag); + PRECONDITION(type.id()==ID_c_enum_tag); return static_cast(type); } @@ -739,7 +736,7 @@ inline const c_enum_tag_typet &to_c_enum_tag_type(const typet &type) */ inline c_enum_tag_typet &to_c_enum_tag_type(typet &type) { - assert(type.id()==ID_c_enum_tag); + PRECONDITION(type.id()==ID_c_enum_tag); return static_cast(type); } @@ -907,7 +904,7 @@ class code_typet:public typet */ inline const code_typet &to_code_type(const typet &type) { - assert(type.id()==ID_code); + PRECONDITION(type.id()==ID_code); return static_cast(type); } @@ -916,7 +913,7 @@ inline const code_typet &to_code_type(const typet &type) */ inline code_typet &to_code_type(typet &type) { - assert(type.id()==ID_code); + PRECONDITION(type.id()==ID_code); return static_cast(type); } @@ -969,7 +966,7 @@ class array_typet:public type_with_subtypet */ inline const array_typet &to_array_type(const typet &type) { - assert(type.id()==ID_array); + PRECONDITION(type.id()==ID_array); return static_cast(type); } @@ -978,7 +975,7 @@ inline const array_typet &to_array_type(const typet &type) */ inline array_typet &to_array_type(typet &type) { - assert(type.id()==ID_array); + PRECONDITION(type.id()==ID_array); return static_cast(type); } @@ -1009,7 +1006,7 @@ class incomplete_array_typet:public type_with_subtypet */ inline const incomplete_array_typet &to_incomplete_array_type(const typet &type) { - assert(type.id()==ID_array); + PRECONDITION(type.id()==ID_array); return static_cast(type); } @@ -1018,7 +1015,7 @@ inline const incomplete_array_typet &to_incomplete_array_type(const typet &type) */ inline incomplete_array_typet &to_incomplete_array_type(typet &type) { - assert(type.id()==ID_array); + PRECONDITION(type.id()==ID_array); return static_cast(type); } @@ -1074,32 +1071,32 @@ class bitvector_typet:public type_with_subtypet */ inline const bitvector_typet &to_bitvector_type(const typet &type) { - assert(type.id()==ID_signedbv || - type.id()==ID_unsignedbv || - type.id()==ID_fixedbv || - type.id()==ID_floatbv || - type.id()==ID_verilog_signedbv || - type.id()==ID_verilog_unsignedbv || - type.id()==ID_bv || - type.id()==ID_pointer || - type.id()==ID_c_bit_field || - type.id()==ID_c_bool); + PRECONDITION(type.id()==ID_signedbv || + type.id()==ID_unsignedbv || + type.id()==ID_fixedbv || + type.id()==ID_floatbv || + type.id()==ID_verilog_signedbv || + type.id()==ID_verilog_unsignedbv || + type.id()==ID_bv || + type.id()==ID_pointer || + type.id()==ID_c_bit_field || + type.id()==ID_c_bool); return static_cast(type); } inline bitvector_typet &to_bitvector_type(typet &type) { - assert(type.id()==ID_signedbv || - type.id()==ID_unsignedbv || - type.id()==ID_fixedbv || - type.id()==ID_floatbv || - type.id()==ID_verilog_signedbv || - type.id()==ID_verilog_unsignedbv || - type.id()==ID_bv || - type.id()==ID_pointer || - type.id()==ID_c_bit_field || - type.id()==ID_c_bool); + PRECONDITION(type.id()==ID_signedbv || + type.id()==ID_unsignedbv || + type.id()==ID_fixedbv || + type.id()==ID_floatbv || + type.id()==ID_verilog_signedbv || + type.id()==ID_verilog_unsignedbv || + type.id()==ID_bv || + type.id()==ID_pointer || + type.id()==ID_c_bit_field || + type.id()==ID_c_bool); return static_cast(type); } @@ -1131,7 +1128,7 @@ class bv_typet:public bitvector_typet */ inline const bv_typet &to_bv_type(const typet &type) { - assert(type.id()==ID_bv); + PRECONDITION(type.id()==ID_bv); return static_cast(type); } @@ -1140,7 +1137,7 @@ inline const bv_typet &to_bv_type(const typet &type) */ inline bv_typet &to_bv_type(typet &type) { - assert(type.id()==ID_bv); + PRECONDITION(type.id()==ID_bv); return static_cast(type); } @@ -1177,7 +1174,7 @@ class unsignedbv_typet:public bitvector_typet */ inline const unsignedbv_typet &to_unsignedbv_type(const typet &type) { - assert(type.id()==ID_unsignedbv); + PRECONDITION(type.id()==ID_unsignedbv); return static_cast(type); } @@ -1186,7 +1183,7 @@ inline const unsignedbv_typet &to_unsignedbv_type(const typet &type) */ inline unsignedbv_typet &to_unsignedbv_type(typet &type) { - assert(type.id()==ID_unsignedbv); + PRECONDITION(type.id()==ID_unsignedbv); return static_cast(type); } @@ -1223,7 +1220,7 @@ class signedbv_typet:public bitvector_typet */ inline const signedbv_typet &to_signedbv_type(const typet &type) { - assert(type.id()==ID_signedbv); + PRECONDITION(type.id()==ID_signedbv); return static_cast(type); } @@ -1232,7 +1229,7 @@ inline const signedbv_typet &to_signedbv_type(const typet &type) */ inline signedbv_typet &to_signedbv_type(typet &type) { - assert(type.id()==ID_signedbv); + PRECONDITION(type.id()==ID_signedbv); return static_cast(type); } @@ -1270,7 +1267,7 @@ class fixedbv_typet:public bitvector_typet */ inline const fixedbv_typet &to_fixedbv_type(const typet &type) { - assert(type.id()==ID_fixedbv); + PRECONDITION(type.id()==ID_fixedbv); return static_cast(type); } @@ -1309,7 +1306,7 @@ class floatbv_typet:public bitvector_typet */ inline const floatbv_typet &to_floatbv_type(const typet &type) { - assert(type.id()==ID_floatbv); + PRECONDITION(type.id()==ID_floatbv); return static_cast(type); } @@ -1342,7 +1339,7 @@ class c_bit_field_typet:public bitvector_typet */ inline const c_bit_field_typet &to_c_bit_field_type(const typet &type) { - assert(type.id()==ID_c_bit_field); + PRECONDITION(type.id()==ID_c_bit_field); return static_cast(type); } @@ -1358,7 +1355,7 @@ inline const c_bit_field_typet &to_c_bit_field_type(const typet &type) */ inline c_bit_field_typet &to_c_bit_field_type(typet &type) { - assert(type.id()==ID_c_bit_field); + PRECONDITION(type.id()==ID_c_bit_field); return static_cast(type); } @@ -1390,8 +1387,8 @@ class pointer_typet:public bitvector_typet */ inline const pointer_typet &to_pointer_type(const typet &type) { - assert(type.id()==ID_pointer); - assert(!type.get(ID_width).empty()); + PRECONDITION(type.id()==ID_pointer); + PRECONDITION(!type.get(ID_width).empty()); return static_cast(type); } @@ -1400,8 +1397,8 @@ inline const pointer_typet &to_pointer_type(const typet &type) */ inline pointer_typet &to_pointer_type(typet &type) { - assert(type.id()==ID_pointer); - assert(!type.get(ID_width).empty()); + PRECONDITION(type.id()==ID_pointer); + PRECONDITION(!type.get(ID_width).empty()); return static_cast(type); } @@ -1429,8 +1426,8 @@ class reference_typet:public pointer_typet */ inline const reference_typet &to_reference_type(const typet &type) { - assert(type.id()==ID_pointer && type.get_bool(ID_C_reference)); - assert(!type.get(ID_width).empty()); + PRECONDITION(type.id()==ID_pointer && type.get_bool(ID_C_reference)); + PRECONDITION(!type.get(ID_width).empty()); return static_cast(type); } @@ -1439,8 +1436,8 @@ inline const reference_typet &to_reference_type(const typet &type) */ inline reference_typet &to_reference_type(typet &type) { - assert(type.id()==ID_pointer && type.get_bool(ID_C_reference)); - assert(!type.get(ID_width).empty()); + PRECONDITION(type.id()==ID_pointer && type.get_bool(ID_C_reference)); + PRECONDITION(!type.get(ID_width).empty()); return static_cast(type); } @@ -1478,7 +1475,7 @@ class c_bool_typet:public bitvector_typet */ inline const c_bool_typet &to_c_bool_type(const typet &type) { - assert(type.id()==ID_c_bool); + PRECONDITION(type.id()==ID_c_bool); return static_cast(type); } @@ -1487,7 +1484,7 @@ inline const c_bool_typet &to_c_bool_type(const typet &type) */ inline c_bool_typet &to_c_bool_type(typet &type) { - assert(type.id()==ID_c_bool); + PRECONDITION(type.id()==ID_c_bool); return static_cast(type); } @@ -1513,7 +1510,7 @@ class string_typet:public typet */ inline const string_typet &to_string_type(const typet &type) { - assert(type.id()==ID_string); + PRECONDITION(type.id()==ID_string); return static_cast(type); } @@ -1551,7 +1548,7 @@ class range_typet:public typet */ inline const range_typet &to_range_type(const typet &type) { - assert(type.id()==ID_range); + PRECONDITION(type.id()==ID_range); return static_cast(type); } @@ -1594,7 +1591,7 @@ class vector_typet:public type_with_subtypet */ inline const vector_typet &to_vector_type(const typet &type) { - assert(type.id()==ID_vector); + PRECONDITION(type.id()==ID_vector); return static_cast(type); } @@ -1603,7 +1600,7 @@ inline const vector_typet &to_vector_type(const typet &type) */ inline vector_typet &to_vector_type(typet &type) { - assert(type.id()==ID_vector); + PRECONDITION(type.id()==ID_vector); return static_cast(type); } @@ -1634,7 +1631,7 @@ class complex_typet:public type_with_subtypet */ inline const complex_typet &to_complex_type(const typet &type) { - assert(type.id()==ID_complex); + PRECONDITION(type.id()==ID_complex); return static_cast(type); } @@ -1643,7 +1640,7 @@ inline const complex_typet &to_complex_type(const typet &type) */ inline complex_typet &to_complex_type(typet &type) { - assert(type.id()==ID_complex); + PRECONDITION(type.id()==ID_complex); return static_cast(type); } From 00e4555ba10b6a4b190ab7b64d885b7770463f68 Mon Sep 17 00:00:00 2001 From: reuk Date: Wed, 13 Sep 2017 22:03:57 +0100 Subject: [PATCH 4/4] Fix up CMake build (unrelated) --- CMakeLists.txt | 3 ++- src/CMakeLists.txt | 1 - src/musketeer/CMakeLists.txt | 30 ------------------------------ 3 files changed, 2 insertions(+), 32 deletions(-) delete mode 100644 src/musketeer/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index a5c0ef6893d..99a97066cde 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,6 +3,7 @@ cmake_minimum_required(VERSION 3.2) find_program(CCACHE_PROGRAM ccache) if(CCACHE_PROGRAM) set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CCACHE_PROGRAM}") + message(STATUS "Rule launch compile: ${CCACHE_PROGRAM}") endif() set(CMAKE_OSX_DEPLOYMENT_TARGET 10.9) @@ -19,7 +20,7 @@ if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR # Ensure NDEBUG is not set for release builds set(CMAKE_CXX_FLAGS_RELEASE "-O2") # Enable lots of warnings - set(CMAKE_CXX_FLAGS "-Wall -Wpedantic -Werror") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wpedantic -Werror") elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC") # This would be the place to enable warnings for Windows builds, although # config.inc doesn't seem to do that currently diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index a7be2e0fd31..13c6d0045b5 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -165,7 +165,6 @@ add_subdirectory(util) add_subdirectory(xmllang) add_subdirectory(java_bytecode) add_subdirectory(miniz) -add_subdirectory(musketeer) add_subdirectory(clobber) add_subdirectory(cbmc) add_subdirectory(goto-cc) diff --git a/src/musketeer/CMakeLists.txt b/src/musketeer/CMakeLists.txt deleted file mode 100644 index 6265183ee0b..00000000000 --- a/src/musketeer/CMakeLists.txt +++ /dev/null @@ -1,30 +0,0 @@ -# Library -file(GLOB_RECURSE sources "*.cpp") -file(GLOB_RECURSE headers "*.h") -list(REMOVE_ITEM sources - ${CMAKE_CURRENT_SOURCE_DIR}/musketeer_main.cpp -) -add_library(musketeer-lib ${sources} ${headers}) - -generic_includes(musketeer-lib) - -target_link_libraries(musketeer-lib - ansi-c - linking - big-int - goto-programs - goto-symex - assembler - pointer-analysis - analyses - langapi - util - solvers - goto-instrument-lib -) - -add_if_library(musketeer-lib glpk) - -# Executable -add_executable(musketeer musketeer_main.cpp) -target_link_libraries(musketeer musketeer-lib)