aboutsummaryrefslogtreecommitdiff
path: root/gcc/builtins.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/builtins.c')
-rw-r--r--gcc/builtins.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/gcc/builtins.c b/gcc/builtins.c
index e44ad61..e265186 100644
--- a/gcc/builtins.c
+++ b/gcc/builtins.c
@@ -7123,6 +7123,21 @@ fold_builtin_strchr (tree exp, bool actually_strrchr)
ssize_int (r - p1))));
}
+ if (actually_strrchr)
+ {
+ tree fn;
+
+ if (!integer_zerop (s2))
+ return 0;
+
+ fn = implicit_built_in_decls[BUILT_IN_STRCHR];
+ if (!fn)
+ return 0;
+
+ /* Transform strrchr(s1, '\0') to strchr(s1, '\0'). */
+ return build_function_call_expr (fn, arglist);
+ }
+
return 0;
}
}