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