In the function emit_side_effect_warnings, I find its inputs are "location_t loc" and "tree expr". And, there is a function warn_if_unused_value called by emit_side_effect_warnings: emit_side_effect_warnings(location_t loc, tree expr){ ... else warn_if_unused_value(expr,loc) }
To call warn_if_unused_value, we use location_t loc and tree expr as inputs In the function warn_if_unused_value, I find its inputs are "location_t loc" and "const_tree expr" warn_if_unused_value(const_tree exp, location_t locus){ ... } I am confused about the difference between "tree expr" and "const_tree expr" since if I modify the"const_tree" to "tree", I make failed. Besides this, I try to use debug_tree function to dump the imformation of the node. I am successful when I use it in the function emit_side_effect_warnings but not in the function warn_if_unused_value