当前位置: 首页>>代码示例>>C++>>正文


C++ MCSymbol::isTemporary方法代码示例

本文整理汇总了C++中MCSymbol::isTemporary方法的典型用法代码示例。如果您正苦于以下问题:C++ MCSymbol::isTemporary方法的具体用法?C++ MCSymbol::isTemporary怎么用?C++ MCSymbol::isTemporary使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在MCSymbol的用法示例。


在下文中一共展示了MCSymbol::isTemporary方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: parseDirectiveIndirectSymbol

/// parseDirectiveIndirectSymbol
///  ::= .indirect_symbol identifier
bool DarwinAsmParser::parseDirectiveIndirectSymbol(StringRef, SMLoc Loc) {
  const MCSectionMachO *Current = static_cast<const MCSectionMachO*>(
                                       getStreamer().getCurrentSection().first);
  MachO::SectionType SectionType = Current->getType();
  if (SectionType != MachO::S_NON_LAZY_SYMBOL_POINTERS &&
      SectionType != MachO::S_LAZY_SYMBOL_POINTERS &&
      SectionType != MachO::S_SYMBOL_STUBS)
    return Error(Loc, "indirect symbol not in a symbol pointer or stub "
                      "section");

  StringRef Name;
  if (getParser().parseIdentifier(Name))
    return TokError("expected identifier in .indirect_symbol directive");

  MCSymbol *Sym = getContext().getOrCreateSymbol(Name);

  // Assembler local symbols don't make any sense here. Complain loudly.
  if (Sym->isTemporary())
    return TokError("non-local symbol required in directive");

  if (!getStreamer().EmitSymbolAttribute(Sym, MCSA_IndirectSymbol))
    return TokError("unable to emit indirect symbol attribute for: " + Name);

  if (getLexer().isNot(AsmToken::EndOfStatement))
    return TokError("unexpected token in '.indirect_symbol' directive");

  Lex();

  return false;
}
开发者ID:alessandrostone,项目名称:metashell,代码行数:32,代码来源:DarwinAsmParser.cpp

示例2: isSymbolLinkerVisible

bool MCAssembler::isSymbolLinkerVisible(const MCSymbol &Symbol) const {
  // Non-temporary labels should always be visible to the linker.
  if (!Symbol.isTemporary())
    return true;

  // Absolute temporary labels are never visible.
  if (!Symbol.isInSection())
    return false;

  // Otherwise, check if the section requires symbols even for temporary labels.
  return getBackend().doesSectionRequireSymbols(Symbol.getSection());
}
开发者ID:PodBuilder,项目名称:LLVM,代码行数:12,代码来源:MCAssembler.cpp

示例3: isSymbolLinkerVisible

bool MCAssembler::isSymbolLinkerVisible(const MCSymbol &Symbol) const {
  // Non-temporary labels should always be visible to the linker.
  if (!Symbol.isTemporary())
    return true;

  // Absolute temporary labels are never visible.
  if (!Symbol.isInSection())
    return false;

  if (Symbol.isUsedInReloc())
    return true;

  return false;
}
开发者ID:alessandrostone,项目名称:metashell,代码行数:14,代码来源:MCAssembler.cpp

示例4: isLocalUsedInReloc

bool MCAssembler::isLocalUsedInReloc(const MCSymbol &Sym) const {
  assert(Sym.isTemporary());
  return LocalsUsedInReloc.count(&Sym);
}
开发者ID:Dagrol,项目名称:llvm,代码行数:4,代码来源:MCAssembler.cpp

示例5: addLocalUsedInReloc

void MCAssembler::addLocalUsedInReloc(const MCSymbol &Sym) {
  assert(Sym.isTemporary());
  LocalsUsedInReloc.insert(&Sym);
}
开发者ID:Dagrol,项目名称:llvm,代码行数:4,代码来源:MCAssembler.cpp


注:本文中的MCSymbol::isTemporary方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。