Hello, I am using the following code to iterate different gimple statements:
... gimple* stmt = gsi_stmt(gsi); if (gimple_assign_load_p(stmt)) { tree rhs = gimple_assign_rhs1 (stmt); if (!rhs) return; gimple* def_stmt = SSA_NAME_DEF_STMT(rhs); if (!def_stmt) return; switch (gimple_code (def_stmt)) { .... } } While the above code works smoothly for most of the cases, to my surprise, the following statement (pointed by gsi) would cause a crash at gimple_code(def_stmt): stderr.9_1 = stderr; It seems that `stderr` is a special tree node; however, it successfully passes the two if checks and reaches the gimple_code(def_stmt), but still caused an exception: 0xb5cd5f crash_signal ../../gcc-10.1.0/gcc/toplev.c:328 0x7f4214557838 gimple_code /export/d1/shuaiw/gcc-build-10/gcc-install/lib/gcc/x86_64-pc-linux-gnu/10.1.0/plugin/include/gimple.h:1783 .... Am I missing anything? Best, Shuai