diff options
author | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2020-09-24 23:59:40 +0200 |
---|---|---|
committer | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2020-10-01 00:44:53 +0200 |
commit | b6d76fee64b9b2bf36760609d8f2030f71f759fe (patch) | |
tree | aca76924d51fb541c150a7dd252024d0724decc1 | |
parent | d54f252497a0278ad709a97fb63bd745e132cc89 (diff) | |
download | sparse-b6d76fee64b9b2bf36760609d8f2030f71f759fe.tar.gz |
flex-array: warn on flexible arrays in unions
Flexible array members are not allowed in unions.
So, warn if one is present.
Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
-rw-r--r-- | symbol.c | 3 |
1 files changed, 3 insertions, 0 deletions
@@ -95,6 +95,9 @@ struct struct_union_info { */ static void lay_out_union(struct symbol *sym, struct struct_union_info *info) { + if (sym->bit_size < 0 && is_array_type(sym)) + sparse_error(sym->pos, "flexible array member '%s' in a union", show_ident(sym->ident)); + if (sym->bit_size > info->bit_size) info->bit_size = sym->bit_size; |