Ward icon indicating copy to clipboard operation
Ward copied to clipboard

A static analysis tool for C.

Results 9 Ward issues
Sort by recently updated
recently updated
newest added

Currently permissions are merely names. However, Ward could be made significantly more powerful by extending the permission language with some notion of parameterisation on source program identifiers. To make this...

enhancement
help wanted

Consider ```c void foo () { f1 (); if (cond) { f2 (); return; } f3 (); } ``` I haven't looked too closely, but does `CallTree` represent the join...

question

```haskell simplifyCallTree (Choice a b) = case (simplifyCallTree a, simplifyCallTree b) of (a', Nop) -> a' (Nop, b') -> b' (a', b') -> Choice a' b' ``` This seems wrong...

question

Take a look at https://github.com/evincarofautumn/Ward/blob/minimal-annotations/src/Check/Permissions.hs#L655 ```haskell let conflicts = HashSet.filter conflicting $ mconcat sites unless (HashSet.null conflicts) $ do record True $ Error pos $ Text.concat $ [ "conflicting information...

bug

At least in the HTML output, it would be nice to output some boring statistics (# of iterations until quiescence, total number of functions scanned, something like that). So that...

enhancement

In `compiler` mode I have noticed that errors are reported on a single line, greatly compromising legibility. For instance: ``` $ ward gcc --mode=compiler --config=rts/config.ward rts/sm/BlockAlloc.c.ward.graph rts/Capability.c.ward.graph Loading config files......

bug

Using 05b02cf2a617886d5c064648d2ce415aa9043c86 I am seeing some rather concerning behavior when processing callmaps. I am using this configuration file: ``` sm_lock_held "assume the storage manager lock is held"; take_sm_lock "the ability...

bug

I was looking into using Ward to lint GHC's runtime system, starting with simple lock checking. Unfortunately even with only no privileges defined and enabling enforcement for a single file...

bug

Having Ward on Hackage would make usage much more convenient.

release