Hi everybody! I'm working on a pass and I need to handle some pointer expressions. For example, I have this C-code: int v[1000]; int *p; p = &v[10];
The problem is that, when I'm trying to parse "p = &v[10];", I'm not able to get the array offset (10 in this case). Namely, for a given statement like "p = &v[10]", I need to get: array: v (I can do that) offset: 10 Here is the code I am working on: op0 = gimple_op (stmt, 0); op1 = gimple_op (stmt, 1); if (gimple_assign_rhs_code (stmt) == ADDR_EXPR) { base = get_base_address (TREE_OPERAND (op1, 0)); // the array v, OK offset = // ??? How can I do? Max