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


C++ SILDeclRef::getNextOverriddenVTableEntry方法代码示例

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


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

示例1: getOverriddenVTableEntry

SILDeclRef SILDeclRef::getOverriddenVTableEntry() const {
  SILDeclRef cur = *this, next = *this;
  do {
    cur = next;
    if (cur.requiresNewVTableEntry())
      return cur;
    next = cur.getNextOverriddenVTableEntry();
  } while (next);

  return cur;
}
开发者ID:xwu,项目名称:swift,代码行数:11,代码来源:SILDeclRef.cpp

示例2: getBaseOverriddenVTableEntry

SILDeclRef SILDeclRef::getBaseOverriddenVTableEntry() const {
  // 'method' is the most final method in the hierarchy which we
  // haven't yet found a compatible override for.  'cur' is the method
  // we're currently looking at.  Compatibility is transitive,
  // so we can forget our original method and just keep going up.
  SILDeclRef method = *this;
  SILDeclRef cur = method;
  while ((cur = cur.getNextOverriddenVTableEntry())) {
    method = cur;
  }
  return method;
}
开发者ID:yasirmcs,项目名称:swift,代码行数:12,代码来源:SILDeclRef.cpp

示例3: computeClassMethodCallees

void CalleeCache::computeClassMethodCallees(ClassDecl *CD, SILDeclRef Method) {
  auto *CalledFn = M.lookUpFunctionInVTable(CD, Method);
  if (!CalledFn)
    return;

  bool canCallUnknown = !calleesAreStaticallyKnowable(M, Method);

  // Update the callees for this method and all the methods it
  // overrides by adding this function to their lists.
  do {
    auto &TheCallees = getOrCreateCalleesForMethod(Method);
    assert(TheCallees.getPointer() && "Unexpected null callees!");

    TheCallees.getPointer()->push_back(CalledFn);
    if (canCallUnknown)
      TheCallees.setInt(true);

    Method = Method.getNextOverriddenVTableEntry();
  } while (Method);
}
开发者ID:Daford,项目名称:swift,代码行数:20,代码来源:BasicCalleeAnalysis.cpp


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