Commit Graph

9022 Commits

Author SHA1 Message Date
Kareem Khazem 6822afa58e Add --print-internal-representation to goto-instrument
This flag pretty-prints every instruction in the entire program. I use
it to learn about CPROVER's internal representation of particular
constructs, by passing in --print-internal-representation on a one-line
C program.

CR: https://cr.amazon.com/r/7203184/
2017-06-08 11:32:26 +01:00
Michael Tautschnig 45d7f0894a Support "polymorphic" floating-point functions, fix typos
make -C ansi-c library_check is now happy again.
2017-06-07 18:49:20 +01:00
martin e821efec16 Fix special cases for the remainder functions, now down to 4 failures! 2017-06-07 18:49:20 +01:00
martin 07776756c7 An alternative implementation to avoid the difference between RNE and RNA. 2017-06-07 18:49:20 +01:00
martin 9f23c25654 A first cut at the additions we need to the math library. 2017-06-07 18:49:20 +01:00
Michael Tautschnig afff4a7cc2 MinGW GCC defines __int64 for Visual-Studio compatibility 2017-06-07 18:47:52 +01:00
Daniel Kroening e2afe933e9 Merge pull request #869 from reuk/doxy-squashed
Convert documentation style for doxygen compatibility
2017-06-06 16:21:45 +01:00
reuk e9349f8793 Reformat src 2017-06-06 15:13:14 +01:00
reuk aed3c25fa3 Modify reformatting script to retain existing headers 2017-06-06 15:13:09 +01:00
reuk 69dacac7e6 Update postprocessor comparison script 2017-06-06 15:13:09 +01:00
reuk 5a01942062 Update gitignore 2017-06-06 15:13:09 +01:00
reuk 0f6df5c2fb Add doc conversion driver script 2017-06-06 15:13:09 +01:00
reuk e0f2b2b5ca Fix parameter list bug 2017-06-06 15:13:09 +01:00
reuk 7ed20c1839 Allow python script to reformat in place 2017-06-06 15:13:09 +01:00
reuk 3e623f6e96 Revert "Fix up linter script to accept new Copyright label"
This reverts commit 60c5091e36.
2017-06-06 15:13:09 +01:00
reuk 60c5091e36 Fix up linter script to accept new Copyright label 2017-06-06 14:42:12 +01:00
reuk fa1d8e2359 Move conversion scripts to scripts folder 2017-06-06 14:42:12 +01:00
reuk 7ec965e357 Add legalese handling to conversion script 2017-06-06 14:42:12 +01:00
reuk 4e6c56ef57 Update script based on review feedback 2017-06-06 14:42:12 +01:00
reuk 86776e8f7a Enable doxygen quiet mode 2017-06-06 14:42:12 +01:00
reuk 00e97f8b6b Rename doxygen.cfg to doxyfile 2017-06-06 14:42:12 +01:00
reuk 4142b6001c Update source and exclude paths 2017-06-06 14:42:12 +01:00
reuk e6c1f59f31 Set doxygen to extract all 2017-06-06 14:42:12 +01:00
reuk 9f25d7c354 Fix whitespace in doxygen.cfg 2017-06-06 14:42:12 +01:00
reuk 25183acfa1 Add conversion/checking scripts 2017-06-06 14:42:12 +01:00
Daniel Kroening 7ee051015b Merge pull request #981 from tautschnig/guard-diff
Avoid repeated computation of guardt::operator-=
2017-06-01 18:51:21 +01:00
Daniel Kroening cc22448736 Merge pull request #729 from tautschnig/c-linking
Bug fixes to linking and C/C++ conversion
2017-06-01 15:54:21 +01:00
Michael Tautschnig 56aaf0c19a Avoid repeated computation of guardt::operator-=
Each iteration of the loop yields the same expression. Avoiding repeated
construction enables trivial sharing rather than relying on merge_irepst for
a reduced memory footprint, and reduces the computational cost as
guardt::operator-= is non-trivial.
2017-06-01 13:30:21 +01:00
Michael Tautschnig 3c51152723 Rework and fix parsing of unicode strings
We cannot arbitrarily convert strings to unicode representation as this would
affect their size. Instead, only the unicode portion of a non-wide string must
be encoded. As part of this work the code duplication
unescape_string/unescape_wide_string is resolved. A new regression test confirms
that the previous implementation was broken (and is now fixed).
2017-05-31 23:16:30 +01:00
Michael Tautschnig f195d69c34 Support return statements in C(!) constructors/destructors
constructors/destructors are a GCC extension, and their return type must be
void as checked earlier. As the type is then replaced by
ID_constructor/ID_destructor, and checks on the return type must consider this
case.
2017-05-31 23:14:20 +01:00
Michael Tautschnig fbdd728b06 Revert "disable nonsense code"
This reverts commit a40fc8b9c8.
2017-05-31 23:14:12 +01:00
Peter Schrammel 2f29c99a13 Assign function in instructions introduced by MM I/O instrumentation
E.g. the full slicer relies on function being set and will abort
with an assertion violation in that case.
2017-05-30 17:29:15 +01:00
Daniel Kroening 320722faf0 update highlight package 2017-05-30 10:23:30 +01:00
Michael Tautschnig 5936a3d988 GCC supports -> in offsetof when forming a member designator
This is undocumented, but available as of GCC > 4.4:
f0d0d842dc
2017-05-29 16:40:35 +01:00
Michael Tautschnig bcdd322e94 Update initializer and expression types after linking
Non-symbol types may have been updated during linking; those updates had not
been propagated to initializers or goto programs.
2017-05-29 16:40:35 +01:00
Michael Tautschnig b7c7e8f2e7 Demote goto/destructor interaction to debug message level
Compilation using goto-cc used to be very noisy. Added source location
information to make messages more comprehensible.
2017-05-29 16:40:34 +01:00
Michael Tautschnig 3d9c87b8db C/C++ front end fixes 2017-05-29 16:40:34 +01:00
Michael Tautschnig 5c836a49c7 Only merge foo() and foo(int) declarations when the former has no body 2017-05-29 16:38:01 +01:00
Michael Tautschnig 3f29f62474 Fix merging of attributes 2017-05-29 16:38:01 +01:00
Michael Tautschnig 04ac8d8dfb asm blocks have an asm+void combined type, just use "void" 2017-05-29 16:38:01 +01:00
Michael Tautschnig eddd157820 Ensure type consistency in scanf("%s", ...) 2017-05-29 16:38:00 +01:00
Michael Tautschnig 9d4aceabec Inside newlib, __assert_func takes a non-const argument 2017-05-29 16:38:00 +01:00
Daniel Kroening d23aa7e176 Merge pull request #795 from tautschnig/array-replace
Implement C library string functions via array_{copy,replace,set}
2017-05-29 16:30:02 +01:00
Daniel Kroening 928c28f17f Merge pull request #876 from tautschnig/gcc-builtins
Further extensions and automation to GCC built-in declarations
2017-05-29 16:28:00 +01:00
Daniel Kroening 0b629719f6 Merge pull request #166 from tautschnig/messaget
Migrate all uses of message_streamt to messaget
2017-05-29 16:26:49 +01:00
Michael Tautschnig 7f8efa0385 Merge pull request #971 from diffblue/c-types-typing
Make the c_types have stronger C++ types
2017-05-26 08:20:59 +01:00
Daniel Kroening 2e11fef1da the c_types now have stronger C++ types 2017-05-25 21:42:32 +01:00
Daniel Kroening 3dbda9268f restore do_bmc interface, for the benefit of cegis and hw-cbmc; partially reverts dd2a55f43a 2017-05-25 21:21:50 +01:00
Michael Tautschnig ed0c88f464 member_offset is strictly positive, use size_type instead of signed_size_type
member_offset_expr would otherwise yield mixed signed/unsigned plus expressions
as size_of_expr is combined with member_offset_expr results.
2017-05-25 19:29:19 +01:00
Michael Tautschnig a71a093092 Dereferencing to void induces 0 read bytes 2017-05-25 19:29:19 +01:00