diff options
| author | Paul Chaignon <paul.chaignon@gmail.com> | 2024-03-01 17:02:06 +0100 |
|---|---|---|
| committer | Aleksandr Nogikh <nogikh@google.com> | 2024-03-01 17:12:18 +0000 |
| commit | 25905f5d0a2a7883bd33491997556193582c6059 (patch) | |
| tree | c794c7e216531861542cfeb66f89ae26480b819d /pkg/compiler/testdata/errors2.txt | |
| parent | 83acf9e00cea13b199346aea4d72094a03cef0ca (diff) | |
compiler: support using int flags in field conditions
Commit ed571339c6ff ("pkg/compiler: support if[expr] attributes") added
support for conditional fields in structs and unions. Conditions however
cannot refer to flags, as in the following example:
struct {
f0 flags[some_flags, int32]
f1 int32 (if[value[f0] & FLAG1])
} [packed]
It will fail to compile with:
flags does not refer to an integer
This commit adds support for that syntax.
Signed-off-by: Paul Chaignon <paul.chaignon@gmail.com>
Diffstat (limited to 'pkg/compiler/testdata/errors2.txt')
| -rw-r--r-- | pkg/compiler/testdata/errors2.txt | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/pkg/compiler/testdata/errors2.txt b/pkg/compiler/testdata/errors2.txt index 0f10ea278..ffb2e5bc5 100644 --- a/pkg/compiler/testdata/errors2.txt +++ b/pkg/compiler/testdata/errors2.txt @@ -470,11 +470,11 @@ conditional_fields { f3 some_nested_flags f4 int32 (if[value[f3:f1] != 0]) f5 int32 (if[value[f3:f2:f4] != 0]) ### value path f2 does not refer to a struct - f6 int32 (if[value[f3:f4] != 0]) ### f4 does not refer to an integer + f6 int32 (if[value[f3:f4] != 0]) ### f4 does not refer to an integer or a flag f7 int32 (if[value[f3:some_field] != 0]) ### value target some_field does not exist in some_nested_flags f8 int32 (if[value[f3:f5] != 0]) ### f5 has conditions, so value path cannot reference it f9 int32 (if[value[parent:a] != 0]) ### value target a does not exist in conditional_fields - f10 int32 (if[value[f3:f6] != 0]) ### f6 does not refer to an integer + f10 int32 (if[value[f3:f6] != 0]) ### f6 does not refer to an integer or a flag f11 len[f2, int32] ### f2 has conditions, so len path cannot reference it f12 union_cond_fields f13 int32:8 (if[1]) ### bitfields may not have conditions |
