aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/compiler/testdata
Commit message (Collapse)AuthorAgeFilesLines
* pkg/compiler: add builtin bool type aliasesDmitry Vyukov2018-01-081-8/+9
| | | | | | | | | | | | | | | | This adds builtin: type bool8 int8[0:1] type bool16 int16[0:1] type bool32 int32[0:1] type bool64 int64[0:1] type boolptr intptr[0:1] We used to use just int's for bools. But bool types provide several advantages: - make true/false probability equal - improve description expressiveness - reduce search space (we will take advantage of this later)
* sys: support type aliases (aka typedefs)Dmitry Vyukov2018-01-081-0/+63
| | | | | | | | | | | | | | | | | | | | | | Complex types that are often repeated can be given short type aliases using the following syntax: ``` type identifier underlying_type ``` For example: ``` type signalno int32[0:65] type net_port proc[20000, 4, int16be] ``` Then, type alias can be used instead of the underlying type in any contexts. Underlying type needs to be described as if it's a struct field, that is, with the base type if it's required. However, type alias can be used as syscall arguments as well. Underlying types are currently restricted to integer types, `ptr`, `ptr64`, `const`, `flags` and `proc` types.
* prog: support opt for proc typesDmitry Vyukov2018-01-061-0/+1
|
* pkg/compiler: add bitsize typeDmitry Vyukov2018-01-061-0/+1
| | | | This is need for few crypto/xfrm descriptions.
* pkg/compiler: add check that len does not refer to array with varlen elementsDmitry Vyukov2017-11-281-0/+2
| | | | | This [almost] always means a bug in descriptions. Fix all bugs identified by the check.
* pkg/compiler: don't genererate missing syscallsDmitry Vyukov2017-09-151-1/+2
| | | | | | | | We used to generate them only because manager had no idea what arch it is testing. So syscalls numbers had to match between all arches. This is not needed anymore. Also don't generate unreferenced structs/resources.
* sys, pkg/compiler: move padding computation to compilerDmitry Vyukov2017-09-041-0/+46
| | | | This makes types constant during execution, everything is precomputed.
* pkg/compiler: prohibit arrays of size 0Dmitry Vyukov2017-09-041-0/+3
| | | | This is pointless and the only case that can yield 0 static type size.
* pkg/compiler: prohibit bitfields of size 0Dmitry Vyukov2017-09-041-1/+1
| | | | | They don't work the way C bitfields work. So this will lead to confusion at least.
* pkg/compiler: don't allow bitfields in unions, args and anon typesDmitry Vyukov2017-09-041-2/+8
|
* pkg/compiler: prohibit bitfields in syscall argsDmitry Vyukov2017-09-041-0/+1
|
* pkg/compiler: reserve in/out/inout/opt namesDmitry Vyukov2017-09-041-0/+15
|
* pkg/compiler: detect resources without ctorsDmitry Vyukov2017-09-043-60/+87
| | | | Fixes #217
* pkg/compiler: verify validity of len targetsDmitry Vyukov2017-09-043-35/+63
| | | | Update #217
* pkg/compiler: detect recursive struct declarationsDmitry Vyukov2017-09-041-0/+31
| | | | Update #217
* sys: support ptr64 typeDmitry Vyukov2017-09-021-0/+4
| | | | | | ptr64 is like ptr, but always takes 8 bytes of space. Needed for some APIs. Unfortunately, most of these APIs use buffer type, so we can't use ptr64 immidiately.
* pkg/compiler: check and generate typesDmitry Vyukov2017-09-021-25/+112
| | | | | | Move most of the logic from sysgen to pkg/compiler. Update #217
* pkg/compiler: more static error checkingDmitry Vyukov2017-08-273-0/+97
Update #217