brintos

brintos / llvm-project-archived public Read only

0
0
Text · 797 B · e893ff7 Raw
26 lines · cpp
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-exception6//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 clangd25} // namespace clang26