https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101758
--- Comment #5 from Andrew Pinski <pinskia at gcc dot gnu.org> --- This is the fix which works: diff --git a/gcc/gimple-fold.c b/gcc/gimple-fold.c index ad7b140173f..f1fbdbd40c2 100644 --- a/gcc/gimple-fold.c +++ b/gcc/gimple-fold.c @@ -5587,6 +5587,16 @@ gimple_fold_call (gimple_stmt_iterator *gsi, bool inplace) gimple_call_arg (stmt, 2), NULL_TREE); break; + case IFN_UBSAN_NULL: + { + tree addr = gimple_call_arg (stmt, 0); + if (TREE_CODE (addr) == ADDR_EXPR + && DECL_P (TREE_OPERAND (addr, 0)) + && (!VAR_OR_FUNCTION_DECL_P (TREE_OPERAND (addr, 0)) + || !DECL_WEAK (TREE_OPERAND (addr, 0)))) + replace_call_with_value (gsi, NULL_TREE); + } + break; case IFN_UBSAN_OBJECT_SIZE: { tree offset = gimple_call_arg (stmt, 1);