Polgreen
29542059e6
aggressive slicer regression tests
2018-07-24 10:48:03 +02:00
E Polgreen
c98c9df24d
Merge branch 'develop' into cbmc_trace_options
2018-07-23 10:35:19 +02:00
Daniel Kroening
8edc5ee762
C front-end: constant folding for floating-point
2018-07-18 08:04:38 +01:00
Daniel Kroening
bb7ea783cd
Merge pull request #2528 from tautschnig/dev-null
...
goto-gcc: run original compiler even when output is /dev/null
2018-07-17 12:29:04 +01:00
Daniel Kroening
8966f0986e
Merge pull request #2560 from tautschnig/force-inline
...
Support Visual Studio's __forceinline
2018-07-17 10:43:19 +01:00
Peter Schrammel
15f44c7662
Revert "Mark tests which fail due to invariant violations"
...
This reverts commit d423c65705
.
2018-07-09 18:14:12 +01:00
Michael Tautschnig
ea9dc15f36
goto-gcc: run original compiler even when output is /dev/null
2018-07-09 18:05:23 +01:00
Michael Tautschnig
754b36d6d0
Accept more mismatching function definition/declaration pairs
...
As long as the bit-width of parameters matches, we should be able to obtain sane
results. Xen does this sort of type conversion.
2018-07-09 09:33:05 +01:00
Michael Tautschnig
36d13f7e7e
Support Visual Studio's __forceinline
...
It was previously treated the same as inline/__inline, but Windows header files
come with multiple implementations of functions defined in the same file, with
an expected behaviour similar to "extern inline" in GCC.
2018-07-08 22:53:46 +01:00
Daniel Kroening
c6f92318e9
Merge pull request #2553 from tautschnig/always-inline-partial-revert
...
Partial revert of #1898 (always_inline support, second attempt)
2018-07-08 08:12:36 +01:00
Michael Tautschnig
61a6acd787
Name resolution may require further template instantiation
2018-07-07 13:30:50 +01:00
Michael Tautschnig
4c6cfc03ef
Merge pull request #2448 from tautschnig/c++-delayed-body
...
Fix delayed method body conversion for templates
2018-07-07 12:37:00 +01:00
Michael Tautschnig
425db26d63
Merge pull request #2530 from tautschnig/debian3
...
Fix tests that are only correct on little-endian architectures
2018-07-07 11:42:43 +01:00
Michael Tautschnig
e501317b53
Additional regression tests for always_inline
...
The previous attempt of implementing support for always_inline broke each of
those in different ways.
2018-07-07 10:02:57 +00:00
Michael Tautschnig
016ad92b3d
Revert "Fully interpret __attribute__((always_inline))"
...
This partly reverts commit 9c93f59593
.
The regression test stays in place, but is now marked as KNOWNBUG.
2018-07-07 09:56:19 +00:00
Michael Tautschnig
ee9444f9be
Merge pull request #2532 from tautschnig/debian2
...
Regression test should succeed even if char is an unsigned type
2018-07-07 10:44:35 +01:00
Michael Tautschnig
26803f7ee4
Test only works with simplification enabled
...
... and simplification is only performed for byte_extract_little_endian.
2018-07-07 07:08:52 +01:00
Michael Tautschnig
cd6127a3e6
Regression test should succeed even if char is an unsigned type
2018-07-07 07:04:12 +01:00
Michael Tautschnig
dab6a6e18a
Fix tests that are only correct on little-endian architectures
2018-07-07 06:39:01 +01:00
Daniel Kroening
6409eae64f
Merge pull request #2449 from tautschnig/c++-template-cleanup
...
Clean up unused template instantiation symbols
2018-07-06 10:14:52 +01:00
Polgreen
180e066993
add option to show code in CBMC trace
2018-07-06 08:07:57 +02:00
Polgreen
4fbc10da0f
Add option to show function calls and returns in CBMC trace
2018-07-06 08:07:57 +02:00
Polgreen
f532b4bd6f
allow unsigned long instead of unsigned in regression test for hex_trace
2018-07-06 08:07:57 +02:00
Polgreen
94cacc66d9
represent numerical values in CBMC trace in hex
2018-07-06 08:07:57 +02:00
Daniel Kroening
a354513634
Merge pull request #2510 from polgreen/hex_trace
...
represent numerical values in CBMC trace in hex
2018-07-05 16:22:11 +01:00
Polgreen
a018652885
allow unsigned long instead of unsigned in regression test for hex_trace
2018-07-05 10:42:28 +02:00
Polgreen
d5bbdd8af0
represent numerical values in CBMC trace in hex
2018-07-05 10:42:28 +02:00
Peter Schrammel
19bddce081
Do not ignore --full-slice
2018-07-04 21:02:28 +01:00
Michael Tautschnig
0c20014e56
Merge pull request #2513 from tautschnig/clean
...
Regression test clean target and test.pl fix
2018-07-03 12:55:40 +01:00
Michael Tautschnig
2be11f37c4
Make "clean" target in regression tests do full cleanup
2018-07-03 10:56:05 +00:00
Michael Tautschnig
97e9314c91
Do not hardcode tests.log as option -s <suffix> may be in use
...
With -s <suffix> the output log file is actually tests-<suffix>.log.
2018-07-03 10:56:05 +00:00
Michael Tautschnig
15d430732d
Evaluate expressions that delimit GCC switch/case ranges
...
Type casts may reasonably occur in here (and maybe also other expressions that
evaluate to constants). The regression test addionally covers the case of enum
values being used, which works fine (even without this change).
2018-07-03 10:26:23 +00:00
Peter Schrammel
34bd58f3e9
Clean up unused template instantiation symbols
2018-06-25 00:11:02 +00:00
Peter Schrammel
02e38408e1
Fix delayed method body conversion for templates
...
Do not add method body on declaration - they are handled upon use.
2018-06-25 00:10:22 +00:00
Michael Tautschnig
ee2421a6fc
Test passes
...
Some prior fix to the C++ front-end has addressed this.
2018-06-24 23:41:52 +00:00
Michael Tautschnig
0cf27c611d
type_traits requires C++ 11
2018-06-24 23:41:52 +00:00
Chris Smowton
9fd3434c96
Use local-safe-pointers analysis to improve Symex pointer resolution
...
This uses local_safe_pointerst to determine when symex dereferences a pointer
that cannot be null. When it does the null result is excluded from the possible
values, and therefore a $invalid_object reference may be excluded from the result
of dereferencing such a pointer. This can improve constant propagation.
2018-06-24 17:39:50 +01:00
Chris Smowton
8078569175
Add local-safe-pointers analysis
...
This approaches the safe-pointers problem from the opposite direction compared to local-
bitvector-analysis -- local-bitvector tries to establish a pointer is safe because it
definitely points to known object, whereas local-safe-pointers tries to establish a
particular usage is certainly safe because it is trivially dominated by a not-null test,
which at present means a conditional GOTO or an ASSUME.
2018-06-24 17:39:50 +01:00
Daniel Kroening
c0dd633854
Merge pull request #2376 from diffblue/gcc_attributes5_KNOWNBUG
...
gcc/clang treat __attribute__((aligned())) differently
2018-06-21 12:56:00 +01:00
Daniel Kroening
3423e44fd3
gcc/clang treat __attribute__((aligned())) differently
...
The change of the given alignment from 8 to 16 prevents spurious passing,
since 16 is not the default alignment on any platform.
2018-06-21 12:54:37 +01:00
Daniel Kroening
ac02bbc0d0
Merge pull request #2243 from diffblue/no-warning-ptr-array
...
ignore size of arrays on ptr-to-array conversions
2018-06-20 22:20:17 +01:00
Daniel Kroening
b603a6374f
make test independent of index type
2018-06-20 17:05:45 +01:00
Daniel Kroening
f7cd161c6c
Merge pull request #2371 from diffblue/fix-tests2
...
make test independent of index type
2018-06-20 14:39:49 +01:00
Daniel Kroening
82753bc70f
make test independent of index type
2018-06-20 12:46:30 +01:00
Daniel Kroening
f5f32da572
Merge pull request #2364 from smowton/smowton/fix/autodetect-default-cxx-dialect
...
C/C++ frontends: select standard using the same rules as the compiler we emulate
2018-06-20 12:30:36 +01:00
Michael Tautschnig
d46a55c3e3
Add new goto-instrument option print-global-state-size
2018-06-20 09:38:30 +01:00
Daniel Kroening
5ca741056d
ignore size of arrays on ptr-to-array conversions
2018-06-19 22:22:59 +01:00
Daniel Kroening
bcc3bef4a4
make regression/cbmc/bounds_check1 independent of types used
2018-06-19 20:51:32 +01:00
Daniel Kroening
4de45388fa
switch regression/cbmc/Typecast2 to preprocessed code
...
This avoids the need for a cross-compiler to 64 bit when run on a 32-bit
system.
2018-06-19 20:51:14 +01:00
Chris Smowton
91a9c646af
Amend two tests that explicitly target C++98
...
These were previously broken on g++-6 and above, as the compiler defaults to C++14 mode.
2018-06-19 17:22:20 +01:00