On Wed, Apr 18, 2018 at 10:22:10AM -0700, Jakub Kicinski wrote: > On Tue, 17 Apr 2018 13:42:36 -0700, Martin KaFai Lau wrote: > > This patch checks a few things of struct's members: > > > > 1) It has a valid size (e.g. a "const void" is invalid) > > 2) A member's size (+ its member's offset) does not exceed > > the containing struct's size. > > 3) The member's offset satisfies the alignment requirement > > Could we also introduce a requirement for members to have different > names? Maybe it's there but I missed it. Would BTF with duplicated > member names be considered valid? It could check but I don't see BTF needs to check everything that clang does.
> > > The above can only be done after the needs_resolve member's type > > is resolved. Hence, the above is done together in > > btf_struct_resolve(). > > > > Each possible member's type (e.g. int, enum, modifier...) implements > > the check_member() ops which will be called from btf_struct_resolve(). > > > > Signed-off-by: Martin KaFai Lau <[email protected]> > > Acked-by: Alexei Starovoitov <[email protected]>
