1a4f0c58cScgyurgyik //===-- Implementation of strchr ------------------------------------------===// 2a4f0c58cScgyurgyik // 3a4f0c58cScgyurgyik // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4a4f0c58cScgyurgyik // See https://llvm.org/LICENSE.txt for license information. 5a4f0c58cScgyurgyik // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6a4f0c58cScgyurgyik // 7a4f0c58cScgyurgyik //===----------------------------------------------------------------------===// 8a4f0c58cScgyurgyik 9a4f0c58cScgyurgyik #include "src/string/strchr.h" 10a4f0c58cScgyurgyik 11a4f0c58cScgyurgyik #include "src/__support/common.h" 12a4f0c58cScgyurgyik 13a4f0c58cScgyurgyik namespace __llvm_libc { 14a4f0c58cScgyurgyik 15a4f0c58cScgyurgyik // TODO: Look at performance benefits of comparing words. 16a0b65a7bSMichael Jones LLVM_LIBC_FUNCTION(char *, strchr, (const char *src, int c)) { 17*6d1543a1SAlex Brachet const char ch = static_cast<char>(c); 1843c543aaSMichael Jones for (; *src && *src != ch; ++src) 19a4f0c58cScgyurgyik ; 2043c543aaSMichael Jones return *src == ch ? const_cast<char *>(src) : nullptr; 21a4f0c58cScgyurgyik } 22a4f0c58cScgyurgyik 23a4f0c58cScgyurgyik } // namespace __llvm_libc 24