brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.1 KiB · d1341f9 Raw
45 lines · cpp
1//===- lib/MC/MCValue.cpp - MCValue implementation ------------------------===//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 "llvm/MC/MCValue.h"10#include "llvm/Config/llvm-config.h"11#include "llvm/MC/MCExpr.h"12#include "llvm/MC/MCSymbol.h"13#include "llvm/Support/Debug.h"14#include "llvm/Support/raw_ostream.h"15 16using namespace llvm;17 18void MCValue::print(raw_ostream &OS) const {19  if (isAbsolute()) {20    OS << getConstant();21    return;22  }23 24  // FIXME: prints as a number, which isn't ideal. But the meaning will be25  // target-specific anyway.26  if (getSpecifier())27    OS << ':' << getSpecifier() << ':';28 29  SymA->print(OS, nullptr);30 31  if (auto *B = getSubSym()) {32    OS << " - ";33    B->print(OS, nullptr);34  }35 36  if (getConstant())37    OS << " + " << getConstant();38}39 40#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)41LLVM_DUMP_METHOD void MCValue::dump() const {42  print(dbgs());43}44#endif45