From: Douglas Raillard <douglas.raillard@xxxxxxx> Allow making the inner struct/enum/union anonymous. This permits using the header to inspect pointer values using -E, without having to care about avoiding duplicate type definitions such as: struct foo { ... }; struct bar { struct foo { .... } a; }; With --inner_anonymous, the conflict between the two definitions of struct foo is gone: struct foo { ... }; struct bar { struct { .... } a; }; Signed-off-by: Douglas Raillard <douglas.raillard@xxxxxxx> --- pahole.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/pahole.c b/pahole.c index 80271b5..b9c6305 100644 --- a/pahole.c +++ b/pahole.c @@ -1125,6 +1125,7 @@ ARGP_PROGRAM_VERSION_HOOK_DEF = dwarves_print_version; #define ARGP_hashbits 329 #define ARGP_devel_stats 330 #define ARGP_skip_encoding_btf_tag 331 +#define ARGP_inner_anonymous 332 static const struct argp_option pahole__options[] = { { @@ -1232,6 +1233,11 @@ static const struct argp_option pahole__options[] = { .key = 'E', .doc = "expand class members", }, + { + .name = "inner_anonymous", + .key = ARGP_inner_anonymous, + .doc = "expanded class members are anonymous", + }, { .name = "nr_members", .key = 'n', @@ -1650,6 +1656,8 @@ static error_t pahole__options_parser(int key, char *arg, conf_load.ptr_table_stats = true; break; case ARGP_skip_encoding_btf_tag: conf_load.skip_encoding_btf_tag = true; break; + case ARGP_inner_anonymous: + conf.inner_anonymous = true; break; default: return ARGP_ERR_UNKNOWN; } -- 2.25.1