microsoft / Armada

Armada is a tool for writing, and proving correct, high-performance concurrent programs.
Other
137 stars 19 forks source link

Concrete levels can atomically return multiple shared locations #17

Closed jaylorch closed 3 years ago

jaylorch commented 3 years ago

Armada's concrete-level checker doesn't prevent return statements that access multiple shared locations, such as return s where s is an addressable struct.

The proper fix is probably to just disallow arguments in return statements. One should return values by assigning them to output parameters, then using a bare return statement.