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