Commit Graph

1551 Commits

Author SHA1 Message Date
Oliver Scherer
abe8959339 Apply suggestions from code review
Co-Authored-By: RalfJung <post@ralfj.de>
2019-04-17 16:22:33 +02:00
Ralf Jung
46d5fd8487 barriers are dead, long live protectors -- this enables overlapping two-phase borrows! 2019-04-17 16:02:57 +02:00
Ralf Jung
14e701f7d8 abstract mapping over all the stacks in some memory range 2019-04-17 16:02:57 +02:00
Ralf Jung
7b7fef1b53 let the permission of a new pointer depend on the type only 2019-04-17 16:02:57 +02:00
Ralf Jung
924624f810 some failures are impossible 2019-04-17 16:02:57 +02:00
Ralf Jung
a6d377ca0b more comments 2019-04-17 16:02:57 +02:00
Ralf Jung
966d638760 make run-pass tests pass. tweak how we remove barriers. 2019-04-17 16:02:57 +02:00
Ralf Jung
3f0a2a2941 rewrite Stacked Borrows Core. this passes stacked-borrows.rs! 2019-04-17 16:02:57 +02:00
Ralf Jung
a50512f751 fix RtlGenRandom argument size 2019-04-16 21:27:27 +02:00
Ralf Jung
6fdc75024b
Merge branch 'master' into rand 2019-04-16 20:55:58 +02:00
Ralf Jung
ba567d19f0 stub out pthread_atfork to that we support thread_rng() 2019-04-16 19:53:10 +02:00
Ralf Jung
9c8ad5f9e1 fix 0-sized getrandom 2019-04-16 19:26:02 +02:00
Ralf Jung
378d9d4172 be pragmatic about ptr-int comparisons, for now 2019-04-16 17:47:37 +02:00
Ralf Jung
5f29a53992 rustup 2019-04-12 12:32:26 +02:00
Ralf Jung
8de4f34a7f Merge remote-tracking branch 'origin/master' 2019-04-11 22:09:09 +02:00
Ralf Jung
48b22b80c5 Fix typo
Co-Authored-By: Aaron1011 <aa1ronham@gmail.com>
2019-04-09 23:33:13 -04:00
Oliver Scherer
2eb2c8dd57
Merge branch 'master' into feature/random 2019-04-09 21:58:15 +02:00
Aaron Hill
0837d630f7
Some final cleanup 2019-04-09 15:49:34 -04:00
Aaron Hill
c6e0d09714
Retrieve SYS_getrandom from libc using const-eval 2019-04-09 11:04:30 -04:00
Aaron Hill
22044c878d
Improve deterministic mode error message 2019-04-09 10:16:32 -04:00
Aaron Hill
6b4c5b81da
Fix 'RtlGenRandom' argument slots 2019-04-08 23:18:10 -04:00
Aaron Hill
5f997645bc
Interpret system call numbers relative to target architecture 2019-04-08 22:37:58 -04:00
Aaron Hill
6d3e93c281
Refactor random number generation 2019-04-08 22:22:41 -04:00
Aaron Hill
6b0440e26d
Cleanup argument parsing 2019-04-08 21:40:52 -04:00
Ralf Jung
06af617b92 fix dumping uninitialized locals 2019-04-08 13:40:11 +02:00
bjorn3
32d01263a9
Update src/fn_call.rs
Co-Authored-By: TimDiekmann <21277928+TimDiekmann@users.noreply.github.com>
2019-04-08 10:44:02 +02:00
Aaron Hill
808b149671
Use raw syscall numbers 2019-04-07 20:09:53 -04:00
Aaron Hill
dddeda7f7d
Use getrandom() syscall number from libc 2019-04-07 19:57:14 -04:00
Aaron Hill
73239573c9
Implement non-deterministc mode
Part of #653

This allows us to properly implement getrandom(),
which unlocks the default HashMap type (e.g. HashMap<K, V>)
with RandomState)

This commit adds a new '-Zmiri-seed=<seed>' option. When present,
this option takes a 64-bit hex value, which is used as the seed
to an internal PRNG. This PRNG is used to implement the 'getrandom()'
syscall.

When '-Zmiri-seed' is not passed, 'getrandom()' will be disabled.
2019-04-07 19:26:20 -04:00
Tim Diekmann
a59e155206
Tidy up calloc code 2019-04-08 01:12:44 +02:00
Tim Diekmann
d1d05c8b41
Fix tagging order 2019-04-07 21:09:21 +02:00
Tim Diekmann
6e4264bf27
Add calloc 2019-04-07 20:52:12 +02:00
Oliver Scherer
9a0eaf6ebd Update to rustc nightly 2019-04-03 10:48:11 +02:00
kenta7777
d9178b9300 renames EvalContext to InterpretCx 2019-03-30 10:58:28 +09:00
Oliver Scherer
5d3825fc48
Update src/bin/miri-rustc-tests.rs
Co-Authored-By: RalfJung <post@ralfj.de>
2019-03-18 15:08:36 +01:00
Ralf Jung
8ee67994cc fix for rustc change 2019-03-18 13:48:37 +01:00
Ralf Jung
687c5d13ea bump Rust; remove stabilized feature 2019-03-18 13:31:29 +01:00
Oliver Scherer
56c7656568 Remove dead code and docs 2019-03-11 10:28:03 +01:00
Oliver Scherer
a672abddfa Make the rustc test runner build again 2019-03-11 10:25:21 +01:00
Oliver Scherer
ecae3751b4 Reintroduce prepending the input file name to the miri arguments 2019-03-11 09:43:52 +01:00
John Kåre Alsaker
7d142ecf75 Use the new rustc interface 2019-03-11 09:43:52 +01:00
Ralf Jung
8c74325441 mention --exclude-should-panic 2019-03-10 17:53:30 +01:00
Santiago Pastorino
0bb6ae8f62
Place::Local(x) is now Place::Base(PlaceBase::Local(x)) 2019-03-01 11:27:30 -03:00
Ralf Jung
a9b03f9411 avoid [..] 2019-02-27 11:39:59 +01:00
Alexander Regueiro
205490b85c Fixed nits raised in review. 2019-02-26 18:37:46 +00:00
Alexander Regueiro
12d3ecbaff Various cosmetic improvements. 2019-02-26 18:37:46 +00:00
rchaser53
b1c0cf2ef9 use copy_op directly insteadof write_scalar
- fix volatile_store logic
- rename test to be able to read back from later
- expand test to use assert_eq! and confirm to fix volatile_store
- expand test to use assert_eq! and confirm normal load
2019-02-26 19:49:02 +09:00
Ralf Jung
9397b36ab8 typo and comments 2019-02-15 09:35:55 +01:00
Ralf Jung
2c3ee678b1 Fix comparing fat pointers 2019-02-15 09:35:55 +01:00
Ralf Jung
457741d6d2 update for new bin_op APIs 2019-02-15 09:35:55 +01:00
Ralf Jung
2d323857e9 implement and test posix_memalign 2019-02-13 17:47:54 +01:00
Ralf Jung
2d892c160b skip installing rust-src if XARGO_RUST_SRC is set 2019-02-13 12:10:05 +01:00
Ralf Jung
fd6bd5ba4b rename things away from 'Shr' that are used for much more than just shared references 2019-02-12 10:58:18 +01:00
Ralf Jung
3c652032c0 be more clear which stack we are talking about 2019-02-12 10:51:03 +01:00
Ralf Jung
35ed590075 also enable passing arguments through from cargo-miri 2019-02-09 20:00:40 +01:00
Ralf Jung
5e468766b7 also pass actual arguments to Windows 2019-02-09 20:00:40 +01:00
Ralf Jung
e400b42c21 fix build 2019-02-09 20:00:40 +01:00
Ralf Jung
0802b3a108 implement passing arguments to the interpreted program 2019-02-09 20:00:40 +01:00
Ralf Jung
0f6e82db36 fix (un)likely intrinsics 2019-02-09 13:08:23 +01:00
Ralf Jung
7af75abdd7 we don't need to flush stderr 2019-02-08 10:41:44 +01:00
Ralf Jung
68e8ff1a09 flush stdout/stderr to make sure it appears on the screen 2019-02-07 18:04:58 +01:00
Ralf Jung
e0891bd619 Fix cargo miri test on lib crates 2019-02-07 16:33:46 +01:00
Ralf Jung
5766b32871 update test for cargo-miri 2019-02-07 13:03:03 +01:00
Ralf Jung
4309539efe cargo miri: refactor how we detect what to interpret and how we run cargo rustc, fix running unit tests 2019-02-07 13:00:27 +01:00
Ralf Jung
48ac35f072 panic_impl is another way to panic 2019-02-06 11:41:45 +01:00
Ralf Jung
661ed7b82d implement atomic_nand 2019-02-06 11:40:10 +01:00
Ralf Jung
76985f1e2d remove outdated comment 2019-01-25 08:59:12 +01:00
Oliver Scherer
9f06cdc87a Explain Ref problems 2019-01-22 17:19:19 +01:00
Oliver Scherer
7269a884c9 Expose AllocIds for priroda 2019-01-22 16:46:45 +01:00
Oliver Scherer
9c1c407a02 Update to latest rustc master 2019-01-21 17:29:09 +01:00
Ralf Jung
c54d7eef07 expand docs 2019-01-07 19:41:18 +01:00
Ralf Jung
a957a36ddc tweak merging to give up if we don't make any progress 2019-01-07 19:36:25 +01:00
Ralf Jung
17d11ebe6e be explicit about doing a binary search; fix out-of-bounds check 2019-01-07 15:10:22 +01:00
Ralf Jung
4f9c14c256 deduplicate RangeMap elements in iter_mut
This cuts down execution time of the benchmark in the OP of https://github.com/solson/miri/issues/593 by another 25%, and it cuts max-RSS by 90% (!)
2019-01-07 15:10:22 +01:00
Ralf Jung
f24d0354f9 rewrite RangeMap to use a sorted Vec instead of a RangeMap
This gives us a 20% perf improve for the benchmark from https://github.com/solson/miri/issues/593
2019-01-07 15:10:22 +01:00
Ralf Jung
6c9e702d9b range_map: also test size of the internal representation 2019-01-07 15:10:22 +01:00
Ralf Jung
e81d81e5af implement panic_if_uninhabited intrinsic 2019-01-07 11:23:08 +01:00
Ralf Jung
fced2ac865 move env var stuff out of the miri lib 2019-01-04 15:37:51 +01:00
Ralf Jung
f2e14d9314 use memory::check_bounds_ptr for offset check 2018-12-26 13:16:47 +01:00
Ralf Jung
5a8f9e58f7 properly compare unequal function pointers 2018-12-25 13:29:38 +01:00
Ralf Jung
4e4569cf4b fix build and tests with latest nightly 2018-12-25 13:26:40 +01:00
Ralf Jung
4f659ed507 fix for infallible allocation 2018-12-23 14:13:16 +01:00
Ralf Jung
a03d184648
Merge branch 'master' into rustup 2018-12-20 13:34:24 +01:00
Ralf Jung
750cd442be fix argv null terminator 2018-12-19 15:45:23 +01:00
Ralf Jung
af4fb6655e implement GetCommandLineW, GetEnvironmentVariableW, GetConsoleScreenBufferInfo, SetConsoleTextAttribute, GetSystemInfo 2018-12-19 15:25:25 +01:00
Ralf Jung
51ed485ba4 implement stdout/stderr on Windows 2018-12-19 12:16:07 +01:00
Ralf Jung
d67da9f04b no need to set the cargo-miri feature twice 2018-12-19 11:12:56 +01:00
Ralf Jung
11433bf38e actually show warnings about suppressed output 2018-12-19 11:07:24 +01:00
Ralf Jung
ecf6599051 xargo version check: also check application name, just to be sure 2018-12-19 11:06:46 +01:00
Ralf Jung
4e0fe62bd9 typo 2018-12-18 19:45:10 +01:00
Ralf Jung
e4fd710606 there is a new xargo released, use that 2018-12-18 19:41:32 +01:00
Ralf Jung
e8c53e81f8 implement macOS functions for argc, argv 2018-12-18 19:26:57 +01:00
Ralf Jung
93b8c23f7b Merge remote-tracking branch 'origin/master' into cargo-miri-test 2018-12-18 18:36:19 +01:00
Ralf Jung
96b2c347d7 temporarily use git version of xargo 2018-12-15 18:39:42 +01:00
Ralf Jung
6a37e723c4 detect outdated xargo version 2018-12-15 15:08:03 +01:00
Ralf Jung
e6147ae67e *oops* 2018-12-12 17:30:20 +01:00
Ralf Jung
b6a4556cb9 use show_error to terminate 2018-12-12 17:05:23 +01:00
Ralf Jung
ed83cc2600 use RUSTC_WRAPPER for the cargo hook 2018-12-12 17:03:40 +01:00
Ralf Jung
7e9098ff69 treat ref-to-raw cast like a reborrow: do a special kind of retag 2018-12-12 11:11:20 +01:00
Ralf Jung
ce5089c390 rebase fallout 2018-12-11 17:54:39 +01:00
Ralf Jung
9417b28de5 treat test binaries like all others 2018-12-11 17:42:18 +01:00
Ralf Jung
f31bb43804 implement some libc hooks needed by libtest 2018-12-11 17:39:46 +01:00
Ralf Jung
6b376dc394 get rid of to_bytes hack 2018-12-11 14:32:59 +01:00
Ralf Jung
383d215386 make some functions private to StackedBorrows 2018-12-11 14:18:51 +01:00
Ralf Jung
9de605b32f avoid repeating signatures in EvalContext extension traits 2018-12-11 14:16:58 +01:00
Ralf Jung
05f2b2ed3d remove support for not having libstd MIR 2018-12-10 12:26:20 +01:00
Ralf Jung
b50662d68c fix CI 2018-12-10 12:21:39 +01:00
Ralf Jung
b8e6af49d9 fix setting the manifest path manually when using cargo miri 2018-12-10 10:53:32 +01:00
Ralf Jung
b6eb2cd08e cargo miri: support foreign targets 2018-12-10 09:53:14 +01:00
Ralf Jung
c84c1527e2 factor grabbing of cargo options into separate function and make it better 2018-12-10 09:28:24 +01:00
Ralf Jung
f06e25f9b2 bump Rust version, fix build 2018-12-08 10:38:36 +01:00
Ralf Jung
61f20761d3
Merge branch 'master' into stacked-borrows-2-phase 2018-12-03 11:11:32 +01:00
Ralf Jung
d11a6766ad use assert 2018-12-03 10:26:39 +01:00
Ralf Jung
0e44876a2d fix mutability gap: do not allow shared mutation when creating frozen reference 2018-12-03 09:15:18 +01:00
Ralf Jung
6df89de68a we don't need no whitelist 2018-12-02 17:18:25 +01:00
Ralf Jung
e12d4bc70c build libstd with minimal features 2018-12-02 14:05:14 +01:00
Ralf Jung
b2305da8d0 assert some sense 2018-12-02 13:30:09 +01:00
Ralf Jung
479eb3bd2b support for basic (non-overlapping) 2-phase borrows 2018-12-02 13:30:09 +01:00
Ralf Jung
dcfc2f207e do not even look for cargo metadata in 'cargo miri setup' 2018-12-02 10:29:57 +01:00
Ralf Jung
86e6470a12 update README to first describe the usual user setup, and to always set up a proper libstd 2018-11-30 09:23:44 +01:00
Ralf Jung
c10811a82d Merge remote-tracking branch 'origin/master' into rustup 2018-11-28 16:15:56 +01:00
Oliver S̶c̶h̶n̶e̶i̶d̶e̶r Scherer
26fe778c55
Typo
Co-Authored-By: RalfJung <post@ralfj.de>
2018-11-28 09:58:23 +01:00
Ralf Jung
6ca4fc7125 Merge remote-tracking branches 'origin/master' and 'ralf/shrink-whitelist' into memory-data-revived 2018-11-28 08:09:58 +01:00
Oliver S̶c̶h̶n̶e̶i̶d̶e̶r Scherer
f42b708568
Merge branch 'master' into oli-obk-patch-1 2018-11-27 17:18:16 +01:00
Oliver Scherer
5958fa6a70 Use explicit dyn trait object 2018-11-27 16:20:15 +01:00
Oliver Scherer
edc2fb5f60 Expose some internals for priroda 2018-11-27 14:41:53 +01:00
Ralf Jung
97e010f5b9 barriers prevent deallocation 2018-11-27 14:26:23 +01:00
Ralf Jung
194710e112 no barriers for boxes 2018-11-27 14:26:23 +01:00
Ralf Jung
dd94930ee3 implement function barriers 2018-11-27 14:26:23 +01:00
Ralf Jung
215ec38624 track call IDs 2018-11-27 14:25:20 +01:00
Ralf Jung
e9370d2b74 adjust for memory_allocated hook, make RangeMap preallocated with a fixed size 2018-11-27 14:25:20 +01:00
Ralf Jung
53196554ec inform the user when and where we are creating a cache dir 2018-11-27 13:12:52 +01:00
Ralf Jung
bd7f4076cd we need to recursively create the dir 2018-11-27 11:43:02 +01:00
Ralf Jung
b91679539e use proper platform cache dir 2018-11-27 11:26:53 +01:00
Ralf Jung
464dee8edf std::ptr no longer needs whitelisting 2018-11-27 09:23:22 +01:00
Ralf Jung
07f78a37d4 tweaks 2018-11-27 08:16:58 +01:00
Ralf Jung
58982d655a remove unneeded backtrace feature 2018-11-27 08:16:58 +01:00
Ralf Jung
82caed1a48 cargo miri setup: print when we are executing commands 2018-11-27 08:16:58 +01:00
Ralf Jung
b09dfc14a0 there are less places now to keep the flags in sync 2018-11-27 08:16:58 +01:00
Ralf Jung
cc4dd29f54 kill xargo dir and update docs 2018-11-27 08:16:58 +01:00
Ralf Jung
16ac7ec1b1 tweak comments, remove debug output 2018-11-27 08:16:58 +01:00
Ralf Jung
738133b379 complete setup routine: instal rust-src, build libstd, use it 2018-11-27 08:16:58 +01:00
Ralf Jung
c945e30d10 setup routine to install xargo when missing 2018-11-27 08:16:58 +01:00
Ralf Jung
6bd76c7ee1 cargo miri: factor package manifest logic into separate function 2018-11-27 08:16:58 +01:00
Ralf Jung
14d58ca8a9 fix clippy lint whitelisting 2018-11-27 08:16:58 +01:00
Oliver Scherer
32e93ed776 Update to Memory -> Allocation method move 2018-11-23 17:00:31 +01:00
Ralf Jung
68ba6cdbaa fix for new Align type 2018-11-23 09:46:51 +01:00
Ralf Jung
094d07c114 Merge remote-tracking branch 'origin/master' into rustup 2018-11-22 08:21:05 +01:00
Ralf Jung
694d2490f1 slightly more verbose error msg 2018-11-21 16:02:38 +01:00
Ralf Jung
41f89beb3f if let 2018-11-21 16:01:39 +01:00
Ralf Jung
ec8cc029c1 on a deref, check that we are not using a mutable ref with a frozen tag 2018-11-21 15:44:47 +01:00
Ralf Jung
984c3368a9 remove stabilized feature flag 2018-11-21 13:41:57 +01:00
Ralf Jung
6181b29f5d bump Rust 2018-11-21 09:52:31 +01:00
Ralf Jung
f41decc6e1
Merge branch 'master' into cargo-miri-2018 2018-11-20 10:18:34 +01:00
Ralf Jung
cfa6397ad0 UnsafeCell no longer needs to be on the whitelist 2018-11-20 08:50:08 +01:00
Ralf Jung
6085865975 adjust for InboundsCheck parameter of memory bounds check 2018-11-20 08:45:25 +01:00
Ralf Jung
d619049b2d Merge branch 'miri-backtrace' into mut-visitor 2018-11-20 08:29:51 +01:00
Ralf Jung
ef2ffed93f port cargo-miri-test to 2018 edition, mostly to test that that works with cargo miri 2018-11-19 22:59:41 +01:00
Ralf Jung
19f8a9db7d Boxes can also use the fast path 2018-11-17 12:35:58 +01:00
Ralf Jung
c847071355 add comment about not using builtin_deref 2018-11-17 12:33:44 +01:00
Ralf Jung
56f1ef325a remove spurious assignments 2018-11-17 10:29:16 +01:00
Ralf Jung
662821f7f7 raw ptr deref no longer erases the tag 2018-11-17 10:11:21 +01:00
Ralf Jung
880229d4c3 escape-on-cast, now ptr-deref does not change the tag at all, ever 2018-11-17 10:05:40 +01:00
Ralf Jung
b7dbb5e2a7 also consider boxes like unique references 2018-11-17 10:05:40 +01:00
Ralf Jung
36b97cd76c Factor out common top-level code from escape-to-raw and retag 2018-11-16 11:24:01 +01:00
Ralf Jung
a1f895d6f2 retagging: descent into values, type-driven 2018-11-16 11:09:33 +01:00
Ralf Jung
60e26af323 add a sanity assertion 2018-11-16 08:40:00 +01:00
Ralf Jung
cf1746222e we no longer even try pushing to a frozen location 2018-11-15 21:22:05 +01:00
Ralf Jung
f521fd5e0f let's call this a redundant reborrow 2018-11-15 21:22:05 +01:00
Ralf Jung
c234009fdd generalize reborrow-to-raw exception to a general redundancy check 2018-11-15 09:35:40 +01:00
Ralf Jung
5a801c0dc1 adjust comment 2018-11-15 09:35:40 +01:00
Ralf Jung
a87e952102 Separate deref and access into different operations; add special exception for creating raw references 2018-11-15 09:35:40 +01:00
Ralf Jung
a94e197105 better test the special exception for reading through unique when things are shared 2018-11-15 09:35:40 +01:00
Ralf Jung
020313dd85 make freezing inherently part of the high-level reactivate/initiate operations 2018-11-15 09:35:40 +01:00
Ralf Jung
09919c2b59 Retag is the only operation that generates new tags 2018-11-15 09:35:40 +01:00
Ralf Jung
1e51a382ed update for changed FrameInfo, do not print span for all frames 2018-11-15 09:14:03 +01:00
Ralf Jung
f5bd85d009 update for memory_deallocated moving to AllocExtra 2018-11-14 16:03:38 +01:00
Ralf Jung
e7aa5c68ff Update rustc for AllocationExtra trait
Based on https://github.com/solson/miri/pull/493 but there were more conflicts
than code so I opted not to cherry-pick.
2018-11-12 08:54:12 +01:00
Ralf Jung
f4e45ff2b7 sort the fields ourselves 2018-11-08 08:29:34 +01:00
Ralf Jung
00936316d1 treat shared and raw borrows alike 2018-11-08 08:29:34 +01:00
Ralf Jung
74635a57e2 re-do large parts of stacked borrows, now with proper support for partiall frozen data 2018-11-08 08:29:34 +01:00
Ralf Jung
2ff1f24f2b bump rust 2018-11-07 10:41:15 +01:00
Ralf Jung
f6d6470bc4 move to 2018 edition
I want NLL :D
2018-11-05 15:45:27 +01:00
Ralf Jung
9edac3189a rustup 2018-11-05 08:52:02 +01:00
Ralf Jung
a8af5ae139 fix for latest nightly 2018-11-04 10:30:15 +01:00
Ralf Jung
cb691b7ed9 comment on mut-to-shr transmutes 2018-11-03 11:42:38 +01:00
Oliver S̶c̶h̶n̶e̶i̶d̶e̶r Scherer
8ac5d988e2
typo
Co-Authored-By: RalfJung <post@ralfj.de>
2018-11-03 11:39:50 +01:00
Ralf Jung
8da2c9e34e fix adding default arguments 2018-11-03 11:03:53 +01:00
Ralf Jung
dc859f345d Merge remote-tracking branch 'origin/master' into rustup 2018-11-02 14:32:56 +01:00
Ralf Jung
a68779fd16 use crate:: import to make edition port easier later 2018-11-01 09:00:09 +01:00
Ralf Jung
81534496dc rename RefKind to UsageKind, because it not only used for references now 2018-11-01 08:58:03 +01:00
Ralf Jung
478f137c39 put all the logic into reactivatable() 2018-11-01 08:58:03 +01:00
Ralf Jung
85f821d7e9 unify checks on memory access and reborrowing, and update for Machine trait change 2018-11-01 08:58:03 +01:00
Ralf Jung
bba3c49e84 basic retagging (no fn_entry); this also makes us catch more bugs even with optimizations and we can finally stop mutating the state on deref 2018-11-01 08:58:03 +01:00
Ralf Jung
7ac0e79ad5 stub Retag hook; fix tests for removal of -Zmir-emit-validate 2018-11-01 08:58:03 +01:00
Ralf Jung
fba55ba2a9 make the -Z flags we use more consistent 2018-11-01 08:58:03 +01:00
Ralf Jung
27b1f47b0a use crate:: where appropriate 2018-11-01 08:57:22 +01:00
Ralf Jung
1fe925e758
Merge branch 'master' into atomic-arith 2018-10-31 11:19:26 +01:00
Ralf Jung
40b7502613 Reject atomic arithmetic on non-integer types
Fixes #181
2018-10-31 11:04:35 +01:00
Ralf Jung
016009a301 properly recognize log levels 2018-10-31 10:58:19 +01:00