1e8a2af28Scgyurgyik //===-- Implementation of strrchr------------------------------------------===// 2e8a2af28Scgyurgyik // 3e8a2af28Scgyurgyik // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4e8a2af28Scgyurgyik // See https://llvm.org/LICENSE.txt for license information. 5e8a2af28Scgyurgyik // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6e8a2af28Scgyurgyik // 7e8a2af28Scgyurgyik //===----------------------------------------------------------------------===// 8e8a2af28Scgyurgyik 9e8a2af28Scgyurgyik #include "src/string/strrchr.h" 10e8a2af28Scgyurgyik 11e8a2af28Scgyurgyik #include "src/__support/common.h" 12e8a2af28Scgyurgyik 13e8a2af28Scgyurgyik namespace __llvm_libc { 14e8a2af28Scgyurgyik 15a0b65a7bSMichael Jones LLVM_LIBC_FUNCTION(char *, strrchr, (const char *src, int c)) { 16*6d1543a1SAlex Brachet const char ch = static_cast<char>(c); 171b35c4feScgyurgyik char *last_occurrence = nullptr; 1843c543aaSMichael Jones for (; *src; ++src) { 191b35c4feScgyurgyik if (*src == ch) 201b35c4feScgyurgyik last_occurrence = const_cast<char *>(src); 2143c543aaSMichael Jones } 221b35c4feScgyurgyik return last_occurrence; 23e8a2af28Scgyurgyik } 24e8a2af28Scgyurgyik 25e8a2af28Scgyurgyik } // namespace __llvm_libc 26