1//===--- SymbolOrigin.cpp ----------------------------------------*- C++-*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9#include "SymbolOrigin.h"
10
11namespace clang {
12namespace clangd {
13
14llvm::raw_ostream &operator<<(llvm::raw_ostream &OS, SymbolOrigin O) {
15 if (O == SymbolOrigin::Unknown)
16 return OS << "unknown";
17 constexpr static char Sigils[] = "AOSMIRP7BL012345";
18 for (unsigned I = 0; I < sizeof(Sigils); ++I)
19 if (static_cast<uint16_t>(O) & 1u << I)
20 OS << Sigils[I];
21 return OS;
22}
23
24} // namespace clangd
25} // namespace clang
26

source code of clang-tools-extra/clangd/index/SymbolOrigin.cpp