<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Let me play with it a bit (I did not read the code, I just was tracking down the linkage error).<div class=""><br class=""></div><div class="">Michael</div><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Oct 20, 2015, at 12:07 AM, Chandler Carruth <<a href="mailto:chandlerc@google.com" class="">chandlerc@google.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">Is it possible to add a unittest that exercises this extension point in-tree? For example the way I did for AA extension hooks?</div><br class=""><div class="gmail_quote"><div dir="ltr" class="">On Mon, Oct 19, 2015 at 9:00 PM Michael Gottesman via cfe-commits <<a href="mailto:cfe-commits@lists.llvm.org" class="">cfe-commits@lists.llvm.org</a>> wrote:<br class=""></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word" class=""><div class=""><blockquote type="cite" class=""><div class="">On Oct 19, 2015, at 4:40 PM, Michael Gottesman via cfe-commits <<a href="mailto:cfe-commits@lists.llvm.org" target="_blank" class="">cfe-commits@lists.llvm.org</a>> wrote:</div><br class=""><div class=""><blockquote type="cite" style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px" class=""><br class="">On Oct 15, 2015, at 8:29 AM, Benjamin Kramer via cfe-commits <<a href="mailto:cfe-commits@lists.llvm.org" target="_blank" class="">cfe-commits@lists.llvm.org</a>> wrote:<br class=""><br class="">Author: d0k<br class="">Date: Thu Oct 15 10:29:40 2015<br class="">New Revision: 250418<br class=""><br class="">URL: <a href="http://llvm.org/viewvc/llvm-project?rev=250418&view=rev" target="_blank" class="">http://llvm.org/viewvc/llvm-project?rev=250418&view=rev</a><br class="">Log:<br class="">[CodeGen] Remove dead code. NFC.<br class=""><br class="">Modified:<br class="">  cfe/trunk/lib/CodeGen/CGBuiltin.cpp<br class="">  cfe/trunk/lib/CodeGen/CGCall.cpp<br class="">  cfe/trunk/lib/CodeGen/CGCleanup.cpp<br class="">  cfe/trunk/lib/CodeGen/CGDebugInfo.cpp<br class="">  cfe/trunk/lib/CodeGen/CGDebugInfo.h<br class="">  cfe/trunk/lib/CodeGen/CGObjC.cpp<br class="">  cfe/trunk/lib/CodeGen/CGObjCMac.cpp<br class="">  cfe/trunk/lib/CodeGen/CGVTables.h<br class="">  cfe/trunk/lib/CodeGen/CodeGenABITypes.cpp<br class="">  cfe/trunk/lib/CodeGen/CodeGenFunction.h<br class="">  cfe/trunk/lib/CodeGen/CodeGenModule.cpp<br class="">  cfe/trunk/lib/CodeGen/CodeGenModule.h<br class="">  cfe/trunk/lib/CodeGen/CodeGenPGO.h<br class="">  cfe/trunk/lib/CodeGen/EHScopeStack.h<br class="">  cfe/trunk/lib/CodeGen/MicrosoftCXXABI.cpp<br class=""><br class="">Modified: cfe/trunk/lib/CodeGen/CGBuiltin.cpp<br class="">URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGBuiltin.cpp?rev=250418&r1=250417&r2=250418&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGBuiltin.cpp?rev=250418&r1=250417&r2=250418&view=diff</a><br class="">==============================================================================<br class="">--- cfe/trunk/lib/CodeGen/CGBuiltin.cpp (original)<br class="">+++ cfe/trunk/lib/CodeGen/CGBuiltin.cpp Thu Oct 15 10:29:40 2015<br class="">@@ -4106,15 +4106,6 @@ Value *CodeGenFunction::vectorWrapScalar<br class=""> return Op;<br class="">}<br class=""><br class="">-Value *CodeGenFunction::vectorWrapScalar8(Value *Op) {<br class="">-  llvm::Type *VTy = llvm::VectorType::get(Int8Ty, 8);<br class="">-  Op = Builder.CreateBitCast(Op, Int8Ty);<br class="">-  Value *V = UndefValue::get(VTy);<br class="">-  llvm::Constant *CI = ConstantInt::get(SizeTy, 0);<br class="">-  Op = Builder.CreateInsertElement(V, Op, CI);<br class="">-  return Op;<br class="">-}<br class="">-<br class="">Value *CodeGenFunction::EmitAArch64BuiltinExpr(unsigned BuiltinID,<br class="">                                              const CallExpr *E) {<br class=""> unsigned HintID = static_cast<unsigned>(-1);<br class=""><br class="">Modified: cfe/trunk/lib/CodeGen/CGCall.cpp<br class="">URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGCall.cpp?rev=250418&r1=250417&r2=250418&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGCall.cpp?rev=250418&r1=250417&r2=250418&view=diff</a><br class="">==============================================================================<br class="">--- cfe/trunk/lib/CodeGen/CGCall.cpp (original)<br class="">+++ cfe/trunk/lib/CodeGen/CGCall.cpp Thu Oct 15 10:29:40 2015<br class="">@@ -3038,12 +3038,6 @@ CodeGenFunction::EmitRuntimeCallOrInvoke<br class=""> return callSite;<br class="">}<br class=""><br class="">-llvm::CallSite<br class="">-CodeGenFunction::EmitCallOrInvoke(llvm::Value *Callee,<br class="">-                                  const Twine &Name) {<br class="">-  return EmitCallOrInvoke(Callee, None, Name);<br class="">-}<br class="">-<br class="">/// Emits a call or invoke instruction to the given function, depending<br class="">/// on the current state of the EH stack.<br class="">llvm::CallSite<br class=""><br class="">Modified: cfe/trunk/lib/CodeGen/CGCleanup.cpp<br class="">URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGCleanup.cpp?rev=250418&r1=250417&r2=250418&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGCleanup.cpp?rev=250418&r1=250417&r2=250418&view=diff</a><br class="">==============================================================================<br class="">--- cfe/trunk/lib/CodeGen/CGCleanup.cpp (original)<br class="">+++ cfe/trunk/lib/CodeGen/CGCleanup.cpp Thu Oct 15 10:29:40 2015<br class="">@@ -167,23 +167,6 @@ EHScopeStack::getInnermostActiveNormalCl<br class=""> return stable_end();<br class="">}<br class=""><br class="">-EHScopeStack::stable_iterator EHScopeStack::getInnermostActiveEHScope() const {<br class="">-  for (stable_iterator si = getInnermostEHScope(), se = stable_end();<br class="">-         si != se; ) {<br class="">-    // Skip over inactive cleanups.<br class="">-    EHCleanupScope *cleanup = dyn_cast<EHCleanupScope>(&*find(si));<br class="">-    if (cleanup && !cleanup->isActive()) {<br class="">-      si = cleanup->getEnclosingEHScope();<br class="">-      continue;<br class="">-    }<br class="">-<br class="">-    // All other scopes are always active.<br class="">-    return si;<br class="">-  }<br class="">-<br class="">-  return stable_end();<br class="">-}<br class="">-<br class=""><br class="">void *EHScopeStack::pushCleanup(CleanupKind Kind, size_t Size) {<br class=""> char *Buffer = allocate(EHCleanupScope::getSizeForCleanupSize(Size));<br class=""><br class="">Modified: cfe/trunk/lib/CodeGen/CGDebugInfo.cpp<br class="">URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGDebugInfo.cpp?rev=250418&r1=250417&r2=250418&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGDebugInfo.cpp?rev=250418&r1=250417&r2=250418&view=diff</a><br class="">==============================================================================<br class="">--- cfe/trunk/lib/CodeGen/CGDebugInfo.cpp (original)<br class="">+++ cfe/trunk/lib/CodeGen/CGDebugInfo.cpp Thu Oct 15 10:29:40 2015<br class="">@@ -2159,30 +2159,6 @@ llvm::DIType *CGDebugInfo::getOrCreateTy<br class=""> return Res;<br class="">}<br class=""><br class="">-unsigned CGDebugInfo::Checksum(const ObjCInterfaceDecl *ID) {<br class="">-  // The assumption is that the number of ivars can only increase<br class="">-  // monotonically, so it is safe to just use their current number as<br class="">-  // a checksum.<br class="">-  unsigned Sum = 0;<br class="">-  for (const ObjCIvarDecl *Ivar = ID->all_declared_ivar_begin();<br class="">-       Ivar != nullptr; Ivar = Ivar->getNextIvar())<br class="">-    ++Sum;<br class="">-<br class="">-  return Sum;<br class="">-}<br class="">-<br class="">-ObjCInterfaceDecl *CGDebugInfo::getObjCInterfaceDecl(QualType Ty) {<br class="">-  switch (Ty->getTypeClass()) {<br class="">-  case Type::ObjCObjectPointer:<br class="">-    return getObjCInterfaceDecl(<br class="">-        cast<ObjCObjectPointerType>(Ty)->getPointeeType());<br class="">-  case Type::ObjCInterface:<br class="">-    return cast<ObjCInterfaceType>(Ty)->getDecl();<br class="">-  default:<br class="">-    return nullptr;<br class="">-  }<br class="">-}<br class="">-<br class="">llvm::DIModule *CGDebugInfo::getParentModuleOrNull(const Decl *D) {<br class=""> // A forward declaration inside a module header does not belong to the module.<br class=""> if (isa<RecordDecl>(D) && !cast<RecordDecl>(D)->getDefinition())<br class=""><br class="">Modified: cfe/trunk/lib/CodeGen/CGDebugInfo.h<br class="">URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGDebugInfo.h?rev=250418&r1=250417&r2=250418&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGDebugInfo.h?rev=250418&r1=250417&r2=250418&view=diff</a><br class="">==============================================================================<br class="">--- cfe/trunk/lib/CodeGen/CGDebugInfo.h (original)<br class="">+++ cfe/trunk/lib/CodeGen/CGDebugInfo.h Thu Oct 15 10:29:40 2015<br class="">@@ -135,12 +135,6 @@ class CGDebugInfo {<br class="">     NamespaceAliasCache;<br class=""> llvm::DenseMap<const Decl *, llvm::TypedTrackingMDRef<llvm::DIDerivedType>><br class="">     StaticDataMemberCache;<br class="">-<br class="">-  /// Helper functions for getOrCreateType.<br class="">-  /// @{<br class="">-  /// Currently the checksum of an interface includes the number of<br class="">-  /// ivars and property accessors.<br class="">-  unsigned Checksum(const ObjCInterfaceDecl *InterfaceDecl);<br class=""> llvm::DIType *CreateType(const BuiltinType *Ty);<br class=""> llvm::DIType *CreateType(const ComplexType *Ty);<br class=""> llvm::DIType *CreateQualifiedType(QualType Ty, llvm::DIFile *Fg);<br class="">@@ -199,11 +193,8 @@ class CGDebugInfo {<br class=""> llvm::DIType *getOrCreateVTablePtrType(llvm::DIFile *F);<br class=""> /// \return namespace descriptor for the given namespace decl.<br class=""> llvm::DINamespace *getOrCreateNameSpace(const NamespaceDecl *N);<br class="">-  llvm::DIType *getOrCreateTypeDeclaration(QualType PointeeTy, llvm::DIFile *F);<br class=""> llvm::DIType *CreatePointerLikeType(llvm::dwarf::Tag Tag, const Type *Ty,<br class="">                                     QualType PointeeTy, llvm::DIFile *F);<br class="">-<br class="">-  llvm::Value *getCachedInterfaceTypeOrNull(const QualType Ty);<br class=""> llvm::DIType *getOrCreateStructPtrType(StringRef Name, llvm::DIType *&Cache);<br class=""><br class=""> /// A helper function to create a subprogram for a single member<br class="">@@ -435,10 +426,6 @@ private:<br class=""> /// Create type metadata for a source language type.<br class=""> llvm::DIType *CreateTypeNode(QualType Ty, llvm::DIFile *Fg);<br class=""><br class="">-  /// Return the underlying ObjCInterfaceDecl if \arg Ty is an<br class="">-  /// ObjCInterface or a pointer to one.<br class="">-  ObjCInterfaceDecl *getObjCInterfaceDecl(QualType Ty);<br class="">-<br class=""> /// Create new member and increase Offset by FType's size.<br class=""> llvm::DIType *CreateMemberType(llvm::DIFile *Unit, QualType FType,<br class="">                                StringRef Name, uint64_t *Offset);<br class="">@@ -587,12 +574,6 @@ public:<br class="">   return ApplyDebugLocation(CGF, true, SourceLocation());<br class=""> }<br class=""><br class="">-  /// \brief Apply TemporaryLocation if it is valid. Otherwise set the IRBuilder<br class="">-  /// to not attach debug locations.<br class="">-  static ApplyDebugLocation<br class="">-  CreateDefaultEmpty(CodeGenFunction &CGF, SourceLocation TemporaryLocation) {<br class="">-    return ApplyDebugLocation(CGF, true, TemporaryLocation);<br class="">-  }<br class="">};<br class=""><br class="">} // namespace CodeGen<br class=""><br class="">Modified: cfe/trunk/lib/CodeGen/CGObjC.cpp<br class="">URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGObjC.cpp?rev=250418&r1=250417&r2=250418&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGObjC.cpp?rev=250418&r1=250417&r2=250418&view=diff</a><br class="">==============================================================================<br class="">--- cfe/trunk/lib/CodeGen/CGObjC.cpp (original)<br class="">+++ cfe/trunk/lib/CodeGen/CGObjC.cpp Thu Oct 15 10:29:40 2015<br class="">@@ -1410,22 +1410,6 @@ void CodeGenFunction::GenerateObjCCtorDt<br class=""> FinishFunction();<br class="">}<br class=""><br class="">-bool CodeGenFunction::IndirectObjCSetterArg(const CGFunctionInfo &FI) {<br class="">-  CGFunctionInfo::const_arg_iterator it = FI.arg_begin();<br class="">-  it++; it++;<br class="">-  const ABIArgInfo &AI = it->info;<br class="">-  // FIXME. Is this sufficient check?<br class="">-  return (AI.getKind() == ABIArgInfo::Indirect);<br class="">-}<br class="">-<br class="">-bool CodeGenFunction::IvarTypeWithAggrGCObjects(QualType Ty) {<br class="">-  if (CGM.getLangOpts().getGC() == LangOptions::NonGC)<br class="">-    return false;<br class="">-  if (const RecordType *FDTTy = Ty.getTypePtr()->getAs<RecordType>())<br class="">-    return FDTTy->getDecl()->hasObjectMember();<br class="">-  return false;<br class="">-}<br class="">-<br class="">llvm::Value *CodeGenFunction::LoadObjCSelf() {<br class=""> VarDecl *Self = cast<ObjCMethodDecl>(CurFuncDecl)->getSelfDecl();<br class=""> DeclRefExpr DRE(Self, /*is enclosing local*/ (CurFuncDecl != CurCodeDecl),<br class="">@@ -1745,13 +1729,6 @@ void CodeGenFunction::EmitObjCAtSynchron<br class=""> CGM.getObjCRuntime().EmitSynchronizedStmt(*this, S);<br class="">}<br class=""><br class="">-/// Produce the code for a CK_ARCProduceObject.  Just does a<br class="">-/// primitive retain.<br class="">-llvm::Value *CodeGenFunction::EmitObjCProduceObject(QualType type,<br class="">-                                                    llvm::Value *value) {<br class="">-  return EmitARCRetain(type, value);<br class="">-}<br class="">-<br class="">namespace {<br class=""> struct CallObjCRelease final : EHScopeStack::Cleanup {<br class="">   CallObjCRelease(llvm::Value *object) : object(object) {}<br class="">@@ -2187,14 +2164,6 @@ CodeGenFunction::EmitARCRetainAutoreleas<br class="">                              "objc_retainAutorelease");<br class="">}<br class=""><br class="">-/// i8* \@objc_loadWeak(i8** %addr)<br class="">-/// Essentially objc_autorelease(objc_loadWeakRetained(addr)).<br class="">-llvm::Value *CodeGenFunction::EmitARCLoadWeak(Address addr) {<br class="">-  return emitARCLoadOperation(*this, addr,<br class="">-                              CGM.getARCEntrypoints().objc_loadWeak,<br class="">-                              "objc_loadWeak");<br class="">-}<br class="">-<br class="">/// i8* \@objc_loadWeakRetained(i8** %addr)<br class="">llvm::Value *CodeGenFunction::EmitARCLoadWeakRetained(Address addr) {<br class=""> return emitARCLoadOperation(*this, addr,<br class=""><br class="">Modified: cfe/trunk/lib/CodeGen/CGObjCMac.cpp<br class="">URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGObjCMac.cpp?rev=250418&r1=250417&r2=250418&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGObjCMac.cpp?rev=250418&r1=250417&r2=250418&view=diff</a><br class="">==============================================================================<br class="">--- cfe/trunk/lib/CodeGen/CGObjCMac.cpp (original)<br class="">+++ cfe/trunk/lib/CodeGen/CGObjCMac.cpp Thu Oct 15 10:29:40 2015<br class="">@@ -659,9 +659,6 @@ public:<br class=""> // MessageRefCPtrTy - clang type for struct _message_ref_t*<br class=""> QualType MessageRefCPtrTy;<br class=""><br class="">-  // MessengerTy - Type of the messenger (shown as IMP above)<br class="">-  llvm::FunctionType *MessengerTy;<br class="">-<br class=""> // SuperMessageRefTy - LLVM for:<br class=""> // struct _super_message_ref_t {<br class=""> //   SUPER_IMP messenger;<br class=""><br class="">Modified: cfe/trunk/lib/CodeGen/CGVTables.h<br class="">URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGVTables.h?rev=250418&r1=250417&r2=250418&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGVTables.h?rev=250418&r1=250417&r2=250418&view=diff</a><br class="">==============================================================================<br class="">--- cfe/trunk/lib/CodeGen/CGVTables.h (original)<br class="">+++ cfe/trunk/lib/CodeGen/CGVTables.h Thu Oct 15 10:29:40 2015<br class="">@@ -85,10 +85,6 @@ public:<br class=""> uint64_t getSecondaryVirtualPointerIndex(const CXXRecordDecl *RD,<br class="">                                          BaseSubobject Base);<br class=""><br class="">-  /// getAddressPoint - Get the address point of the given subobject in the<br class="">-  /// class decl.<br class="">-  uint64_t getAddressPoint(BaseSubobject Base, const CXXRecordDecl *RD);<br class="">-  <br class=""> /// GenerateConstructionVTable - Generate a construction vtable for the given<span class=""> </span><br class=""> /// base subobject.<br class=""> llvm::GlobalVariable *<br class=""><br class="">Modified: cfe/trunk/lib/CodeGen/CodeGenABITypes.cpp<br class="">URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenABITypes.cpp?rev=250418&r1=250417&r2=250418&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenABITypes.cpp?rev=250418&r1=250417&r2=250418&view=diff</a><br class="">==============================================================================<br class="">--- cfe/trunk/lib/CodeGen/CodeGenABITypes.cpp (original)<br class="">+++ cfe/trunk/lib/CodeGen/CodeGenABITypes.cpp Thu Oct 15 10:29:40 2015<br class="">@@ -36,35 +36,3 @@ CodeGenABITypes::CodeGenABITypes(ASTCont<br class="">// Explicitly out-of-line because ~CodeGenModule() is private but<br class="">// CodeGenABITypes.h is part of clang's API.<br class="">CodeGenABITypes::~CodeGenABITypes() = default;<br class="">-<br class="">-const CGFunctionInfo &<br class="">-CodeGenABITypes::arrangeObjCMessageSendSignature(const ObjCMethodDecl *MD,<br class="">-                                                 QualType receiverType) {<br class="">-  return CGM->getTypes().arrangeObjCMessageSendSignature(MD, receiverType);<br class="">-}<br class="">-<br class="">-const CGFunctionInfo &<br class="">-CodeGenABITypes::arrangeFreeFunctionType(CanQual<FunctionProtoType> Ty) {<br class="">-  return CGM->getTypes().arrangeFreeFunctionType(Ty);<br class="">-}<br class="">-<br class="">-const CGFunctionInfo &<br class="">-CodeGenABITypes::arrangeFreeFunctionType(CanQual<FunctionNoProtoType> Ty) {<br class="">-  return CGM->getTypes().arrangeFreeFunctionType(Ty);<br class="">-}<br class="">-<br class="">-const CGFunctionInfo &<br class="">-CodeGenABITypes::arrangeCXXMethodType(const CXXRecordDecl *RD,<br class="">-                                      const FunctionProtoType *FTP) {<br class="">-  return CGM->getTypes().arrangeCXXMethodType(RD, FTP);<br class="">-}<br class="">-<br class="">-const CGFunctionInfo &<br class="">-CodeGenABITypes::arrangeFreeFunctionCall(CanQualType returnType,<br class="">-                                         ArrayRef<CanQualType> argTypes,<br class="">-                                         FunctionType::ExtInfo info,<br class="">-                                         RequiredArgs args) {<br class="">-  return CGM->getTypes().arrangeLLVMFunctionInfo(<br class="">-      returnType, /*IsInstanceMethod=*/false, /*IsChainCall=*/false, argTypes,<br class="">-      info, args);<br class="">-}<br class=""></blockquote><br style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px" class=""><span style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;float:none;display:inline!important" class="">This code in CodeGenABITypes.cpp is not dead. It is intended to be used by external clients (so it appears to be dead = /) and is the only implementation of these methods for CodeGenABITypes. So if external clients try to use these methods, a linker error will result (defeating the purpose of providing this API).</span><br style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px" class=""><br style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px" class=""><span style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;float:none;display:inline!important" class="">Can you revert just the changes in CodeGenABITypes.cpp?</span><br style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px" class=""><br style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px" class=""><span style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;float:none;display:inline!important" class="">How did you determine that this was dead (maybe I can slap some sort of warning removal on it so it won't come up again or at least a large comment).</span><br style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px" class=""></div></blockquote><div class=""><br class=""></div></div></div><div style="word-wrap:break-word" class=""><div class=""><div class="">(I am happy to make the change as well. Forgot to add that).</div></div></div><div style="word-wrap:break-word" class=""><div class=""><div class=""><br class=""></div><div class="">Michael</div></div></div><div style="word-wrap:break-word" class=""><div class=""><br class=""><blockquote type="cite" class=""><div class=""><br style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px" class=""><span style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;float:none;display:inline!important" class="">Thanks!</span><br style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px" class=""><span style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;float:none;display:inline!important" class="">Michael</span><br style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px" class=""><br style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px" class=""><blockquote type="cite" style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px" class=""><br class="">Modified: cfe/trunk/lib/CodeGen/CodeGenFunction.h<br class="">URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenFunction.h?rev=250418&r1=250417&r2=250418&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenFunction.h?rev=250418&r1=250417&r2=250418&view=diff</a><br class="">==============================================================================<br class="">--- cfe/trunk/lib/CodeGen/CodeGenFunction.h (original)<br class="">+++ cfe/trunk/lib/CodeGen/CodeGenFunction.h Thu Oct 15 10:29:40 2015<br class="">@@ -250,10 +250,6 @@ public:<br class="">   ~CGCapturedStmtRAII() { CGF.CapturedStmtInfo = PrevCapturedStmtInfo; }<br class=""> };<br class=""><br class="">-  /// BoundsChecking - Emit run-time bounds checks. Higher values mean<br class="">-  /// potentially higher performance penalties.<br class="">-  unsigned char BoundsChecking;<br class="">-<br class=""> /// \brief Sanitizers enabled for this function.<br class=""> SanitizerSet SanOpts;<br class=""><br class="">@@ -1237,8 +1233,6 @@ public:<br class=""> void generateObjCSetterBody(const ObjCImplementationDecl *classImpl,<br class="">                             const ObjCPropertyImplDecl *propImpl,<br class="">                             llvm::Constant *AtomicHelperFn);<br class="">-  bool IndirectObjCSetterArg(const CGFunctionInfo &FI);<br class="">-  bool IvarTypeWithAggrGCObjects(QualType Ty);<br class=""><br class=""> //===--------------------------------------------------------------------===//<br class=""> //                                  Block Bits<br class="">@@ -1247,10 +1241,6 @@ public:<br class=""> llvm::Value *EmitBlockLiteral(const BlockExpr *);<br class=""> llvm::Value *EmitBlockLiteral(const CGBlockInfo &Info);<br class=""> static void destroyBlockInfos(CGBlockInfo *info);<br class="">-  llvm::Constant *BuildDescriptorBlockDecl(const BlockExpr *,<br class="">-                                           const CGBlockInfo &Info,<br class="">-                                           llvm::StructType *,<br class="">-                                           llvm::Constant *BlockVarLayout);<br class=""><br class=""> llvm::Function *GenerateBlockFunction(GlobalDecl GD,<br class="">                                       const CGBlockInfo &Info,<br class="">@@ -1276,9 +1266,6 @@ public:<br class="">                               llvm::Value *ptr);<br class=""><br class=""> Address LoadBlockStruct();<br class="">-<br class="">-  void AllocateBlockCXXThisPointer(const CXXThisExpr *E);<br class="">-  void AllocateBlockDecl(const DeclRefExpr *E);<br class=""> Address GetAddrOfBlockDecl(const VarDecl *var, bool ByRef);<br class=""><br class=""> /// BuildBlockByrefAddress - Computes the location of the<br class="">@@ -1627,10 +1614,6 @@ public:<br class="">                                AggValueSlot::IsNotAliased);<br class=""> }<br class=""><br class="">-  /// CreateInAllocaTmp - Create a temporary memory object for the given<br class="">-  /// aggregate type.<br class="">-  AggValueSlot CreateInAllocaTmp(QualType T, const Twine &Name = "inalloca");<br class="">-<br class=""> /// Emit a cast to void* in the appropriate address space.<br class=""> llvm::Value *EmitCastToVoidPtr(llvm::Value *value);<br class=""><br class="">@@ -1711,10 +1694,6 @@ public:<br class="">                        QualType EltTy, bool isVolatile=false,<br class="">                        bool isAssignment = false);<br class=""><br class="">-  /// StartBlock - Start new block named N. If insert block is a dummy block<br class="">-  /// then reuse it.<br class="">-  void StartBlock(const char *N);<br class="">-<br class=""> /// GetAddrOfLocalVar - Return the address of a local variable.<br class=""> Address GetAddrOfLocalVar(const VarDecl *VD) {<br class="">   auto it = LocalDeclMap.find(VD);<br class="">@@ -1811,14 +1790,6 @@ public:<br class="">   return CXXStructorImplicitParamValue;<br class=""> }<br class=""><br class="">-  /// LoadCXXStructorImplicitParam - Load the implicit parameter<br class="">-  /// for a constructor/destructor.<br class="">-  llvm::Value *LoadCXXStructorImplicitParam() {<br class="">-    assert(CXXStructorImplicitParamValue &&<br class="">-           "no implicit argument value for this function");<br class="">-    return CXXStructorImplicitParamValue;<br class="">-  }<br class="">-<br class=""> /// GetAddressOfBaseOfCompleteClass - Convert the given pointer to a<br class=""> /// complete class to the given direct base.<br class=""> Address<br class="">@@ -2549,7 +2520,6 @@ public:<br class=""> // Note: only available for agg return types<br class=""> LValue EmitVAArgExprLValue(const VAArgExpr *E);<br class=""> LValue EmitDeclRefLValue(const DeclRefExpr *E);<br class="">-  LValue EmitReadRegister(const VarDecl *VD);<br class=""> LValue EmitStringLiteralLValue(const StringLiteral *E);<br class=""> LValue EmitObjCEncodeExprLValue(const ObjCEncodeExpr *E);<br class=""> LValue EmitPredefinedLValue(const PredefinedExpr *E);<br class="">@@ -2677,8 +2647,6 @@ public:<br class=""> llvm::CallSite EmitCallOrInvoke(llvm::Value *Callee,<br class="">                                 ArrayRef<llvm::Value *> Args,<br class="">                                 const Twine &Name = "");<br class="">-  llvm::CallSite EmitCallOrInvoke(llvm::Value *Callee,<br class="">-                                  const Twine &Name = "");<br class=""> llvm::CallSite EmitRuntimeCallOrInvoke(llvm::Value *callee,<br class="">                                        ArrayRef<llvm::Value*> args,<br class="">                                        const Twine &name = "");<br class="">@@ -2765,8 +2733,6 @@ public:<br class="">                                  bool negateForRightShift);<br class=""> llvm::Value *EmitNeonRShiftImm(llvm::Value *Vec, llvm::Value *Amt,<br class="">                                llvm::Type *Ty, bool usgn, const char *name);<br class="">-  // Helper functions for EmitAArch64BuiltinExpr.<br class="">-  llvm::Value *vectorWrapScalar8(llvm::Value *Op);<br class=""> llvm::Value *vectorWrapScalar16(llvm::Value *Op);<br class=""> llvm::Value *EmitAArch64BuiltinExpr(unsigned BuiltinID, const CallExpr *E);<br class=""><br class="">@@ -2800,7 +2766,6 @@ public:<br class=""> // ARC primitives.<br class=""> void EmitARCInitWeak(Address addr, llvm::Value *value);<br class=""> void EmitARCDestroyWeak(Address addr);<br class="">-  llvm::Value *EmitARCLoadWeak(Address addr);<br class=""> llvm::Value *EmitARCLoadWeakRetained(Address addr);<br class=""> llvm::Value *EmitARCStoreWeak(Address addr, llvm::Value *value, bool ignored);<br class=""> void EmitARCCopyWeak(Address dst, Address src);<br class="">@@ -2827,8 +2792,6 @@ public:<br class=""> EmitARCStoreStrong(const BinaryOperator *e, bool ignored);<br class=""><br class=""> llvm::Value *EmitObjCThrowOperand(const Expr *expr);<br class="">-<br class="">-  llvm::Value *EmitObjCProduceObject(QualType T, llvm::Value *Ptr);<br class=""> llvm::Value *EmitObjCConsumeObject(QualType T, llvm::Value *Ptr);<br class=""> llvm::Value *EmitObjCExtendObjectLifetime(QualType T, llvm::Value *Ptr);<br class=""><br class="">@@ -2881,11 +2844,6 @@ public:<br class=""> /// aggregate type into a temporary LValue.<br class=""> LValue EmitAggExprToLValue(const Expr *E);<br class=""><br class="">-  /// EmitGCMemmoveCollectable - Emit special API for structs with object<br class="">-  /// pointers.<br class="">-  void EmitGCMemmoveCollectable(llvm::Value *DestPtr, llvm::Value *SrcPtr,<br class="">-                                QualType Ty);<br class="">-<br class=""> /// EmitExtendGCLifetime - Given a pointer to an Objective-C object,<br class=""> /// make sure it survives garbage collection until this point.<br class=""> void EmitExtendGCLifetime(llvm::Value *object);<br class=""><br class="">Modified: cfe/trunk/lib/CodeGen/CodeGenModule.cpp<br class="">URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenModule.cpp?rev=250418&r1=250417&r2=250418&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenModule.cpp?rev=250418&r1=250417&r2=250418&view=diff</a><br class="">==============================================================================<br class="">--- cfe/trunk/lib/CodeGen/CodeGenModule.cpp (original)<br class="">+++ cfe/trunk/lib/CodeGen/CodeGenModule.cpp Thu Oct 15 10:29:40 2015<br class="">@@ -489,12 +489,6 @@ llvm::MDNode *CodeGenModule::getTBAAStru<br class=""> return TBAA->getTBAAStructInfo(QTy);<br class="">}<br class=""><br class="">-llvm::MDNode *CodeGenModule::getTBAAStructTypeInfo(QualType QTy) {<br class="">-  if (!TBAA)<br class="">-    return nullptr;<br class="">-  return TBAA->getTBAAStructTypeInfo(QTy);<br class="">-}<br class="">-<br class="">llvm::MDNode *CodeGenModule::getTBAAStructTagInfo(QualType BaseTy,<br class="">                                                 llvm::MDNode *AccessN,<br class="">                                                 uint64_t O) {<br class=""><br class="">Modified: cfe/trunk/lib/CodeGen/CodeGenModule.h<br class="">URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenModule.h?rev=250418&r1=250417&r2=250418&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenModule.h?rev=250418&r1=250417&r2=250418&view=diff</a><br class="">==============================================================================<br class="">--- cfe/trunk/lib/CodeGen/CodeGenModule.h (original)<br class="">+++ cfe/trunk/lib/CodeGen/CodeGenModule.h Thu Oct 15 10:29:40 2015<br class="">@@ -643,8 +643,6 @@ public:<br class=""> llvm::MDNode *getTBAAInfo(QualType QTy);<br class=""> llvm::MDNode *getTBAAInfoForVTablePtr();<br class=""> llvm::MDNode *getTBAAStructInfo(QualType QTy);<br class="">-  /// Return the MDNode in the type DAG for the given struct type.<br class="">-  llvm::MDNode *getTBAAStructTypeInfo(QualType QTy);<br class=""> /// Return the path-aware tag for given base type, access node and offset.<br class=""> llvm::MDNode *getTBAAStructTagInfo(QualType BaseTy, llvm::MDNode *AccessN,<br class="">                                    uint64_t O);<br class="">@@ -991,9 +989,6 @@ public:<br class=""><br class=""> void EmitVTable(CXXRecordDecl *Class);<br class=""><br class="">-  /// Emit the RTTI descriptors for the builtin types.<br class="">-  void EmitFundamentalRTTIDescriptors();<br class="">-<br class=""> /// \brief Appends Opts to the "Linker Options" metadata value.<br class=""> void AppendLinkerOptions(StringRef Opts);<br class=""><br class="">@@ -1073,13 +1068,6 @@ public:<br class=""> /// are emitted lazily.<br class=""> void EmitGlobal(GlobalDecl D);<br class=""><br class="">-  bool<br class="">-  HasTrivialDestructorBody(ASTContext &Context,<br class="">-                           const CXXRecordDecl *BaseClassDecl,<br class="">-                           const CXXRecordDecl *MostDerivedClassDecl);<br class="">-  bool<br class="">-  FieldHasTrivialDestructorBody(ASTContext &Context, const FieldDecl *Field);<br class="">-<br class=""> bool TryEmitDefinitionAsAlias(GlobalDecl Alias, GlobalDecl Target,<br class="">                               bool InEveryTU);<br class=""> bool TryEmitBaseDestructorAsAlias(const CXXDestructorDecl *D);<br class="">@@ -1192,9 +1180,6 @@ private:<br class=""> /// as a LLVM constructor or destructor array.<br class=""> void EmitCtorList(const CtorList &Fns, const char *GlobalName);<br class=""><br class="">-  /// Emit the RTTI descriptors for the given type.<br class="">-  void EmitFundamentalRTTIDescriptor(QualType Type);<br class="">-<br class=""> /// Emit any needed decls for which code generation was deferred.<br class=""> void EmitDeferred();<br class=""><br class=""><br class="">Modified: cfe/trunk/lib/CodeGen/CodeGenPGO.h<br class="">URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenPGO.h?rev=250418&r1=250417&r2=250418&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CodeGenPGO.h?rev=250418&r1=250417&r2=250418&view=diff</a><br class="">==============================================================================<br class="">--- cfe/trunk/lib/CodeGen/CodeGenPGO.h (original)<br class="">+++ cfe/trunk/lib/CodeGen/CodeGenPGO.h Thu Oct 15 10:29:40 2015<br class="">@@ -99,7 +99,6 @@ private:<br class="">                              llvm::Function *Fn);<br class=""> void loadRegionCounts(llvm::IndexedInstrProfReader *PGOReader,<br class="">                       bool IsInMainFile);<br class="">-  void emitCounterVariables();<br class=""> void emitCounterRegionMapping(const Decl *D);<br class=""><br class="">public:<br class=""><br class="">Modified: cfe/trunk/lib/CodeGen/EHScopeStack.h<br class="">URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/EHScopeStack.h?rev=250418&r1=250417&r2=250418&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/EHScopeStack.h?rev=250418&r1=250417&r2=250418&view=diff</a><br class="">==============================================================================<br class="">--- cfe/trunk/lib/CodeGen/EHScopeStack.h (original)<br class="">+++ cfe/trunk/lib/CodeGen/EHScopeStack.h Thu Oct 15 10:29:40 2015<br class="">@@ -365,7 +365,6 @@ public:<br class="">   return InnermostEHScope;<br class=""> }<br class=""><br class="">-  stable_iterator getInnermostActiveEHScope() const;<br class=""><br class=""> /// An unstable reference to a scope-stack depth.  Invalidated by<br class=""> /// pushes but not pops.<br class="">@@ -396,9 +395,6 @@ public:<br class=""> /// to the EH stack.<br class=""> iterator find(stable_iterator save) const;<br class=""><br class="">-  /// Removes the cleanup pointed to by the given stable_iterator.<br class="">-  void removeCleanup(stable_iterator save);<br class="">-<br class=""> /// Add a branch fixup to the current cleanup scope.<br class=""> BranchFixup &addBranchFixup() {<br class="">   assert(hasNormalCleanups() && "adding fixup in scope without cleanups");<br class=""><br class="">Modified: cfe/trunk/lib/CodeGen/MicrosoftCXXABI.cpp<br class="">URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/MicrosoftCXXABI.cpp?rev=250418&r1=250417&r2=250418&view=diff" target="_blank" class="">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/MicrosoftCXXABI.cpp?rev=250418&r1=250417&r2=250418&view=diff</a><br class="">==============================================================================<br class="">--- cfe/trunk/lib/CodeGen/MicrosoftCXXABI.cpp (original)<br class="">+++ cfe/trunk/lib/CodeGen/MicrosoftCXXABI.cpp Thu Oct 15 10:29:40 2015<br class="">@@ -46,7 +46,7 @@ public:<br class="">     : CGCXXABI(CGM), BaseClassDescriptorType(nullptr),<br class="">       ClassHierarchyDescriptorType(nullptr),<br class="">       CompleteObjectLocatorType(nullptr), CatchableTypeType(nullptr),<br class="">-        ThrowInfoType(nullptr), CatchHandlerTypeType(nullptr) {}<br class="">+        ThrowInfoType(nullptr) {}<br class=""><br class=""> bool HasThisReturn(GlobalDecl GD) const override;<br class=""> bool hasMostDerivedReturn(GlobalDecl GD) const override;<br class="">@@ -534,14 +534,6 @@ private:<br class="">   return  llvm::Constant::getAllOnesValue(CGM.IntTy);<br class=""> }<br class=""><br class="">-  llvm::Constant *getConstantOrZeroInt(llvm::Constant *C) {<br class="">-    return C ? C : getZeroInt();<br class="">-  }<br class="">-<br class="">-  llvm::Value *getValueOrZeroInt(llvm::Value *C) {<br class="">-    return C ? C : getZeroInt();<br class="">-  }<br class="">-<br class=""> CharUnits getVirtualFunctionPrologueThisAdjustment(GlobalDecl GD);<br class=""><br class=""> void<br class="">@@ -659,18 +651,6 @@ public:<br class=""><br class=""> void emitCXXStructor(const CXXMethodDecl *MD, StructorType Type) override;<br class=""><br class="">-  llvm::StructType *getCatchHandlerTypeType() {<br class="">-    if (!CatchHandlerTypeType) {<br class="">-      llvm::Type *FieldTypes[] = {<br class="">-          CGM.IntTy,     // Flags<br class="">-          CGM.Int8PtrTy, // TypeDescriptor<br class="">-      };<br class="">-      CatchHandlerTypeType = llvm::StructType::create(<br class="">-          CGM.getLLVMContext(), FieldTypes, "eh.CatchHandlerType");<br class="">-    }<br class="">-    return CatchHandlerTypeType;<br class="">-  }<br class="">-<br class=""> llvm::StructType *getCatchableTypeType() {<br class="">   if (CatchableTypeType)<br class="">     return CatchableTypeType;<br class="">@@ -786,7 +766,6 @@ private:<br class=""> llvm::StructType *CatchableTypeType;<br class=""> llvm::DenseMap<uint32_t, llvm::StructType *> CatchableTypeArrayTypeMap;<br class=""> llvm::StructType *ThrowInfoType;<br class="">-  llvm::StructType *CatchHandlerTypeType;<br class="">};<br class=""><br class="">}<br class=""><br class=""><br class="">_______________________________________________<br class="">cfe-commits mailing list<br class=""><a href="mailto:cfe-commits@lists.llvm.org" target="_blank" class="">cfe-commits@lists.llvm.org</a><br class=""><a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits" target="_blank" class="">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits</a><br class=""></blockquote><br style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px" class=""><span style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;float:none;display:inline!important" class="">_______________________________________________</span><br style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px" class=""><span style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;float:none;display:inline!important" class="">cfe-commits mailing list</span><br style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px" class=""><a href="mailto:cfe-commits@lists.llvm.org" style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px" target="_blank" class="">cfe-commits@lists.llvm.org</a><br style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px" class=""><a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits" style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px" target="_blank" class="">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits</a></div></blockquote></div></div>_______________________________________________<br class="">
cfe-commits mailing list<br class="">
<a href="mailto:cfe-commits@lists.llvm.org" target="_blank" class="">cfe-commits@lists.llvm.org</a><br class="">
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits" rel="noreferrer" target="_blank" class="">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits</a><br class="">
</blockquote></div>
</div></blockquote></div><br class=""></div></body></html>