static bool check_ipa_store (gimple stmt ATTRIBUTE_UNUSED, tree op, void *data) { if (DECL_P (op)) check_decl ((funct_state)data, op, true, true); else check_op ((funct_state)data, op, true); return false; }
static void check_operand (funct_state local, tree t, bool checking_write) { if (!t) return; if (TREE_CODE (t) == VAR_DECL) check_decl (local, t, checking_write); }
static bool check_ipa_load (gimple, tree op, tree, void *data) { if (DECL_P (op)) check_decl ((funct_state)data, op, false, true); else check_op ((funct_state)data, op, false); return false; }
static void look_for_address_of (funct_state local, tree t) { if (TREE_CODE (t) == ADDR_EXPR) { tree x = get_base_var (t); if (TREE_CODE (x) == VAR_DECL) { check_decl (local, x, false); /* Taking the address of something appears to be reasonable in PURE code. Not allowed in const. */ if (local->pure_const_state == IPA_CONST) local->pure_const_state = IPA_PURE; } } }