https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119222
--- Comment #9 from Gwen Fu <gwen3293940943 at gmail dot com> --- I am sorry for my recklessness and carelessness! And thank you for your patient guidance. In gcc/convert.cc : func:convert_to_integer_1 : the case : case REAL_TYPE: if (sanitize_flags_p (SANITIZE_FLOAT_CAST) && current_function_decl != NULL_TREE) { expr = save_expr (expr); tree check = ubsan_instrument_float_cast (loc, type, expr); expr = build1 (FIX_TRUNC_EXPR, type, expr); if (check == NULL_TREE) return expr; return maybe_fold_build2_loc (dofold, loc, COMPOUND_EXPR, TREE_TYPE (expr), check, expr); } else return build1 (FIX_TRUNC_EXPR, type, expr); this case is about processing floating point numbers. But when I use gdb to figure out the run process of this case gdb --args ../objdir/gcc/cc1plus -Wall -Wextra 119222.cc However,The program is executed "return build1 (FIX_TRUNC_EXPR, type, expr); "directly . Breakpoint 2, convert_to_integer_1 (type=0x7ffff78285e8, expr=0x7ffff79bba28, dofold=false) at ../../gcc/gcc/convert.cc:934 934 if (sanitize_flags_p (SANITIZE_FLOAT_CAST) (gdb) s sanitize_flags_p (flag=flag@entry=65536, fn=0x7ffff79c1b00) at ../../gcc/gcc/asan.h:248 248 if (result_flags == 0) (gdb) s convert_to_integer_1 (type=0x7ffff78285e8, expr=0x7ffff79bba28, dofold=false) at ../../gcc/gcc/convert.cc:946 This indicates that the sanitization for detecting floating point conversions is not enabled.