diff --git a/plugin/main.cpp b/plugin/main.cpp index 0be0038..5f8cc11 100644 --- a/plugin/main.cpp +++ b/plugin/main.cpp @@ -117,6 +117,7 @@ static void scan_tree_for_components(tree t, const char *funcname, gimple_stmt_i case CONVERT_EXPR: case NOP_EXPR: case VIEW_CONVERT_EXPR: + case ADDR_EXPR: scan_tree_for_components(TREE_OPERAND(t,0), funcname, gsi); break; case ARRAY_REF: diff --git a/subject/main.c b/subject/main.c index c3bdc3f..0b88483 100644 --- a/subject/main.c +++ b/subject/main.c @@ -32,7 +32,7 @@ int main(int argc, char** argv) { b.m2 = 42; struct B* someB = (struct B*)malloc(sizeof(struct B)); - float* someB_m4 = &someB->m4; // This is not recognized yet, simply ends up as "add 0x10" + float* someB_m4 = &someB->m4; container_of(someB_m4, struct B, m4)->m1 = 'x'; return 0;