From: Mike Stump Date: Sat, 16 May 2009 07:57:57 +0000 (+0000) Subject: Reflow some comments. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=f5408fe484495ee4efbdd709c8a2c2fdbbbdb328;p=clang Reflow some comments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71937 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/CGBlocks.cpp b/lib/CodeGen/CGBlocks.cpp index b04a942e4f..ead689cc01 100644 --- a/lib/CodeGen/CGBlocks.cpp +++ b/lib/CodeGen/CGBlocks.cpp @@ -133,8 +133,8 @@ llvm::Value *CodeGenFunction::BuildBlockLiteralTmp(const BlockExpr *BE) { BlockHasCopyDispose |= subBlockHasCopyDispose; Elts[3] = Fn; - // FIXME: Don't use BlockHasCopyDispose, it is set more often then necessary, for - // example: { ^{ __block int i; ^{ i = 1; }(); }(); } + // FIXME: Don't use BlockHasCopyDispose, it is set more often then + // necessary, for example: { ^{ __block int i; ^{ i = 1; }(); }(); } if (subBlockHasCopyDispose) flags |= BLOCK_HAS_COPY_DISPOSE; diff --git a/lib/CodeGen/CGCXX.cpp b/lib/CodeGen/CGCXX.cpp index 4c2faf0a60..e0ea2b98eb 100644 --- a/lib/CodeGen/CGCXX.cpp +++ b/lib/CodeGen/CGCXX.cpp @@ -131,6 +131,8 @@ llvm::Value *CodeGenFunction::LoadCXXThis() { "Must be in a C++ member function decl to load 'this'"); // FIXME: What if we're inside a block? + // ans: See how CodeGenFunction::LoadObjCSelf() uses + // CodeGenFunction::BlockForwardSelf() for how to do this. return Builder.CreateLoad(LocalDeclMap[CXXThisDecl], "this"); } diff --git a/lib/CodeGen/CGCall.cpp b/lib/CodeGen/CGCall.cpp index 2c89f3f50d..d253bb2ae1 100644 --- a/lib/CodeGen/CGCall.cpp +++ b/lib/CodeGen/CGCall.cpp @@ -258,10 +258,9 @@ static bool areAllFields32Or64BitBasicType(const RecordDecl *RD, if (!is32Or64BitBasicType(FD->getType(), Context)) return false; - // FIXME: Reject bit-fields wholesale; there are two problems, we - // don't know how to expand them yet, and the predicate for - // telling if a bitfield still counts as "basic" is more - // complicated than what we were doing previously. + // FIXME: Reject bit-fields wholesale; there are two problems, we don't know + // how to expand them yet, and the predicate for telling if a bitfield still + // counts as "basic" is more complicated than what we were doing previously. if (FD->isBitField()) return false; } @@ -430,8 +429,8 @@ ABIArgInfo X86_32ABIInfo::classifyReturnType(QualType RetTy, return ABIArgInfo::getCoerce(llvm::Type::DoubleTy); } } else if (SeltTy->isPointerType()) { - // FIXME: It would be really nice if this could come out as - // the proper pointer type. + // FIXME: It would be really nice if this could come out as the proper + // pointer type. llvm::Type *PtrTy = llvm::PointerType::getUnqual(llvm::Type::Int8Ty); return ABIArgInfo::getCoerce(PtrTy); @@ -566,11 +565,10 @@ class X86_64ABIInfo : public ABIInfo { /// that \arg CoerceTo would be passed, but while keeping the /// emitted code as simple as possible. /// - /// FIXME: Note, this should be cleaned up to just take an - /// enumeration of all the ways we might want to pass things, - /// instead of constructing an LLVM type. This makes this code more - /// explicit, and it makes it clearer that we are also doing this - /// for correctness in the case of passing scalar types. + /// FIXME: Note, this should be cleaned up to just take an enumeration of all + /// the ways we might want to pass things, instead of constructing an LLVM + /// type. This makes this code more explicit, and it makes it clearer that we + /// are also doing this for correctness in the case of passing scalar types. ABIArgInfo getCoerceResult(QualType Ty, const llvm::Type *CoerceTo, ASTContext &Context) const; @@ -637,13 +635,13 @@ void X86_64ABIInfo::classify(QualType Ty, ASTContext &Context, uint64_t OffsetBase, Class &Lo, Class &Hi) const { - // FIXME: This code can be simplified by introducing a simple value - // class for Class pairs with appropriate constructor methods for - // the various situations. + // FIXME: This code can be simplified by introducing a simple value class for + // Class pairs with appropriate constructor methods for the various + // situations. - // FIXME: Some of the split computations are wrong; unaligned - // vectors shouldn't be passed in registers for example, so there is - // no chance they can straddle an eightbyte. Verify & simplify. + // FIXME: Some of the split computations are wrong; unaligned vectors + // shouldn't be passed in registers for example, so there is no chance they + // can straddle an eightbyte. Verify & simplify. Lo = Hi = NoClass; @@ -862,8 +860,8 @@ ABIArgInfo X86_64ABIInfo::getCoerceResult(QualType Ty, return ABIArgInfo::getDirect(); } else if (CoerceTo == llvm::Type::DoubleTy) { - // FIXME: It would probably be better to make CGFunctionInfo only - // map using canonical types than to canonize here. + // FIXME: It would probably be better to make CGFunctionInfo only map using + // canonical types than to canonize here. QualType CTy = Context.getCanonicalType(Ty); // Float and double end up in a single SSE reg. @@ -1198,11 +1196,10 @@ llvm::Value *X86_64ABIInfo::EmitVAArg(llvm::Value *VAListAddr, QualType Ty, // in different register classes or requires an alignment greater // than 8 for general purpose registers and 16 for XMM registers. // - // FIXME: This really results in shameful code when we end up - // needing to collect arguments from different places; often what - // should result in a simple assembling of a structure from - // scattered addresses has many more loads than necessary. Can we - // clean this up? + // FIXME: This really results in shameful code when we end up needing to + // collect arguments from different places; often what should result in a + // simple assembling of a structure from scattered addresses has many more + // loads than necessary. Can we clean this up? const llvm::Type *LTy = CGF.ConvertTypeForMem(Ty); llvm::Value *RegAddr = CGF.Builder.CreateLoad(CGF.Builder.CreateStructGEP(VAListAddr, 3), @@ -1363,8 +1360,8 @@ ABIArgInfo ARMABIInfo::classifyArgumentType(QualType Ty, if (!CodeGenFunction::hasAggregateLLVMType(Ty)) { return ABIArgInfo::getDirect(); } - // FIXME: This is kind of nasty... but there isn't much choice - // because the ARM backend doesn't support byval. + // FIXME: This is kind of nasty... but there isn't much choice because the ARM + // backend doesn't support byval. // FIXME: This doesn't handle alignment > 64 bits. const llvm::Type* ElemTy; unsigned SizeRegs; @@ -1579,13 +1576,12 @@ static llvm::Value *CreateCoercedLoad(llvm::Value *SrcPtr, // If load is legal, just bitcast the src pointer. if (SrcSize >= DstSize) { - // Generally SrcSize is never greater than DstSize, since this - // means we are losing bits. However, this can happen in cases - // where the structure has additional padding, for example due to - // a user specified alignment. + // Generally SrcSize is never greater than DstSize, since this means we are + // losing bits. However, this can happen in cases where the structure has + // additional padding, for example due to a user specified alignment. // - // FIXME: Assert that we aren't truncating non-padding bits when - // have access to that information. + // FIXME: Assert that we aren't truncating non-padding bits when have access + // to that information. llvm::Value *Casted = CGF.Builder.CreateBitCast(SrcPtr, llvm::PointerType::getUnqual(Ty)); llvm::LoadInst *Load = CGF.Builder.CreateLoad(Casted); @@ -1623,13 +1619,12 @@ static void CreateCoercedStore(llvm::Value *Src, // If store is legal, just bitcast the src pointer. if (SrcSize >= DstSize) { - // Generally SrcSize is never greater than DstSize, since this - // means we are losing bits. However, this can happen in cases - // where the structure has additional padding, for example due to - // a user specified alignment. + // Generally SrcSize is never greater than DstSize, since this means we are + // losing bits. However, this can happen in cases where the structure has + // additional padding, for example due to a user specified alignment. // - // FIXME: Assert that we aren't truncating non-padding bits when - // have access to that information. + // FIXME: Assert that we aren't truncating non-padding bits when have access + // to that information. llvm::Value *Casted = CGF.Builder.CreateBitCast(DstPtr, llvm::PointerType::getUnqual(SrcTy)); // FIXME: Use better alignment / avoid requiring aligned store. @@ -1824,9 +1819,9 @@ void CodeGenModule::ConstructAttributeList(const CGFunctionInfo &FI, case ABIArgInfo::Expand: { std::vector Tys; - // FIXME: This is rather inefficient. Do we ever actually need - // to do anything here? The result should be just reconstructed - // on the other side, so extension should be a non-issue. + // FIXME: This is rather inefficient. Do we ever actually need to do + // anything here? The result should be just reconstructed on the other + // side, so extension should be a non-issue. getTypes().GetExpandedTypes(ParamType, Tys); Index += Tys.size(); continue; @@ -1844,8 +1839,8 @@ void CodeGenModule::ConstructAttributeList(const CGFunctionInfo &FI, void CodeGenFunction::EmitFunctionProlog(const CGFunctionInfo &FI, llvm::Function *Fn, const FunctionArgList &Args) { - // FIXME: We no longer need the types from FunctionArgList; lift up - // and simplify. + // FIXME: We no longer need the types from FunctionArgList; lift up and + // simplify. // Emit allocs for param decls. Give the LLVM Argument nodes names. llvm::Function::arg_iterator AI = Fn->arg_begin(); @@ -1936,10 +1931,9 @@ void CodeGenFunction::EmitFunctionProlog(const CGFunctionInfo &FI, case ABIArgInfo::Coerce: { assert(AI != Fn->arg_end() && "Argument mismatch!"); - // FIXME: This is very wasteful; EmitParmDecl is just going to - // drop the result in a new alloca anyway, so we could just - // store into that directly if we broke the abstraction down - // more. + // FIXME: This is very wasteful; EmitParmDecl is just going to drop the + // result in a new alloca anyway, so we could just store into that + // directly if we broke the abstraction down more. llvm::Value *V = CreateTempAlloca(ConvertTypeForMem(Ty), "coerce"); CreateCoercedStore(AI, V, *this); // Match to what EmitParmDecl is expecting for this type. @@ -2016,8 +2010,7 @@ RValue CodeGenFunction::EmitCall(const CGFunctionInfo &CallInfo, llvm::Value *Callee, const CallArgList &CallArgs, const Decl *TargetDecl) { - // FIXME: We no longer need the types from CallArgs; lift up and - // simplify. + // FIXME: We no longer need the types from CallArgs; lift up and simplify. llvm::SmallVector Args; // Handle struct-return functions by passing a pointer to the @@ -2116,9 +2109,9 @@ RValue CodeGenFunction::EmitCall(const CGFunctionInfo &CallInfo, Builder.CreateUnreachable(); Builder.ClearInsertionPoint(); - // FIXME: For now, emit a dummy basic block because expr - // emitters in generally are not ready to handle emitting - // expressions at unreachable points. + // FIXME: For now, emit a dummy basic block because expr emitters in + // generally are not ready to handle emitting expressions at unreachable + // points. EnsureInsertPoint(); // Return a reasonable RValue. diff --git a/lib/CodeGen/CGExpr.cpp b/lib/CodeGen/CGExpr.cpp index 06d8d974b0..212ce10bdd 100644 --- a/lib/CodeGen/CGExpr.cpp +++ b/lib/CodeGen/CGExpr.cpp @@ -211,12 +211,11 @@ llvm::Value *CodeGenFunction::EmitLoadOfScalar(llvm::Value *Addr, bool Volatile, void CodeGenFunction::EmitStoreOfScalar(llvm::Value *Value, llvm::Value *Addr, bool Volatile) { - // Handle stores of types which have different representations in - // memory and as LLVM values. + // Handle stores of types which have different representations in memory and + // as LLVM values. - // FIXME: We shouldn't be this loose, we should only do this - // conversion when we have a type we know has a different memory - // representation (e.g., bool). + // FIXME: We shouldn't be this loose, we should only do this conversion when + // we have a type we know has a different memory representation (e.g., bool). const llvm::Type *SrcTy = Value->getType(); const llvm::PointerType *DstPtr = cast(Addr->getType()); @@ -433,10 +432,10 @@ void CodeGenFunction::EmitStoreThroughLValue(RValue Src, LValue Dst, llvm::Value *LvalueDst = Dst.getAddress(); llvm::Value *src = Src.getScalarVal(); #if 0 - // FIXME. We cannot positively determine if we have an - // 'ivar' assignment, object assignment or an unknown - // assignment. For now, generate call to objc_assign_strongCast - // assignment which is a safe, but consevative assumption. + // FIXME. We cannot positively determine if we have an 'ivar' assignment, + // object assignment or an unknown assignment. For now, generate call to + // objc_assign_strongCast assignment which is a safe, but consevative + // assumption. if (Dst.isObjCIvar()) CGM.getObjCRuntime().EmitObjCIvarAssign(*this, src, LvalueDst); else @@ -956,8 +955,8 @@ LValue CodeGenFunction::EmitLValueForBitfield(llvm::Value* BaseValue, FieldDecl* Field, unsigned CVRQualifiers) { unsigned idx = CGM.getTypes().getLLVMFieldNo(Field); - // FIXME: CodeGenTypes should expose a method to get the appropriate - // type for FieldTy (the appropriate type is ABI-dependent). + // FIXME: CodeGenTypes should expose a method to get the appropriate type for + // FieldTy (the appropriate type is ABI-dependent). const llvm::Type *FieldTy = CGM.getTypes().ConvertTypeForMem(Field->getType()); const llvm::PointerType *BaseTy = diff --git a/lib/CodeGen/CGExprAgg.cpp b/lib/CodeGen/CGExprAgg.cpp index 6fc1988937..b216cf70a4 100644 --- a/lib/CodeGen/CGExprAgg.cpp +++ b/lib/CodeGen/CGExprAgg.cpp @@ -335,12 +335,11 @@ void AggExprEmitter::VisitInitListExpr(InitListExpr *E) { // FIXME: Disabled while we figure out what to do about // test/CodeGen/bitfield.c // - // If we can, prefer a copy from a global; this is a lot less - // code for long globals, and it's easier for the current optimizers - // to analyze. - // FIXME: Should we really be doing this? Should we try to avoid - // cases where we emit a global with a lot of zeros? Should - // we try to avoid short globals? + // If we can, prefer a copy from a global; this is a lot less code for long + // globals, and it's easier for the current optimizers to analyze. + // FIXME: Should we really be doing this? Should we try to avoid cases where + // we emit a global with a lot of zeros? Should we try to avoid short + // globals? if (E->isConstantInitializer(CGF.getContext(), 0)) { llvm::Constant* C = CGF.CGM.EmitConstantExpr(E, &CGF); llvm::GlobalVariable* GV = diff --git a/lib/CodeGen/CGExprConstant.cpp b/lib/CodeGen/CGExprConstant.cpp index e814dfc615..0df03ec3a2 100644 --- a/lib/CodeGen/CGExprConstant.cpp +++ b/lib/CodeGen/CGExprConstant.cpp @@ -155,9 +155,9 @@ public: ++i; // Promote the size of V if necessary - // FIXME: This should never occur, but currently it can because - // initializer constants are cast to bool, and because clang is - // not enforcing bitfield width limits. + // FIXME: This should never occur, but currently it can because initializer + // constants are cast to bool, and because clang is not enforcing bitfield + // width limits. if (bitFieldInfo.Size > V.getBitWidth()) V.zext(bitFieldInfo.Size); diff --git a/lib/CodeGen/CGObjC.cpp b/lib/CodeGen/CGObjC.cpp index 362865dac6..51f9a76579 100644 --- a/lib/CodeGen/CGObjC.cpp +++ b/lib/CodeGen/CGObjC.cpp @@ -133,9 +133,9 @@ void CodeGenFunction::GenerateObjCMethod(const ObjCMethodDecl *OMD) { FinishFunction(OMD->getBodyRBrace(getContext())); } -// FIXME: I wasn't sure about the synthesis approach. If we end up -// generating an AST for the whole body we can just fall back to -// having a GenerateFunction which takes the body Stmt. +// FIXME: I wasn't sure about the synthesis approach. If we end up generating an +// AST for the whole body we can just fall back to having a GenerateFunction +// which takes the body Stmt. /// GenerateObjCGetter - Generate an Objective-C property getter /// function. The given Decl must be an ObjCImplementationDecl. @synthesize @@ -146,8 +146,8 @@ void CodeGenFunction::GenerateObjCGetter(ObjCImplementationDecl *IMP, const ObjCPropertyDecl *PD = PID->getPropertyDecl(); ObjCMethodDecl *OMD = PD->getGetterMethodDecl(); assert(OMD && "Invalid call to generate getter (empty method)"); - // FIXME: This is rather murky, we create this here since they will - // not have been created by Sema for us. + // FIXME: This is rather murky, we create this here since they will not have + // been created by Sema for us. OMD->createImplicitParams(getContext(), IMP->getClassInterface()); StartObjCMethod(OMD, IMP->getClassInterface()); @@ -221,8 +221,8 @@ void CodeGenFunction::GenerateObjCSetter(ObjCImplementationDecl *IMP, const ObjCPropertyDecl *PD = PID->getPropertyDecl(); ObjCMethodDecl *OMD = PD->getSetterMethodDecl(); assert(OMD && "Invalid call to generate setter (empty method)"); - // FIXME: This is rather murky, we create this here since they will - // not have been created by Sema for us. + // FIXME: This is rather murky, we create this here since they will not have + // been created by Sema for us. OMD->createImplicitParams(getContext(), IMP->getClassInterface()); StartObjCMethod(OMD, IMP->getClassInterface()); @@ -274,8 +274,8 @@ void CodeGenFunction::GenerateObjCSetter(ObjCImplementationDecl *IMP, getContext().BoolTy)); Args.push_back(std::make_pair(RValue::get(IsCopy ? True : False), getContext().BoolTy)); - // FIXME: We shouldn't need to get the function info here, the - // runtime already should have computed it to build the function. + // FIXME: We shouldn't need to get the function info here, the runtime + // already should have computed it to build the function. EmitCall(Types.getFunctionInfo(getContext().VoidTy, Args), SetPropertyFn, Args); } else { @@ -540,8 +540,8 @@ void CodeGenFunction::EmitObjCForCollectionStmt(const ObjCForCollectionStmt &S){ CallArgList Args2; Args2.push_back(std::make_pair(RValue::get(V), getContext().getObjCIdType())); - // FIXME: We shouldn't need to get the function info here, the - // runtime already should have computed it to build the function. + // FIXME: We shouldn't need to get the function info here, the runtime already + // should have computed it to build the function. EmitCall(CGM.getTypes().getFunctionInfo(getContext().VoidTy, Args2), EnumerationMutationFn, Args2); diff --git a/lib/CodeGen/CGObjCMac.cpp b/lib/CodeGen/CGObjCMac.cpp index 25aad64ea7..56ec99d7c7 100644 --- a/lib/CodeGen/CGObjCMac.cpp +++ b/lib/CodeGen/CGObjCMac.cpp @@ -140,8 +140,8 @@ namespace { typedef std::vector ConstantVector; - // FIXME: We should find a nicer way to make the labels for - // metadata, string concatenation is lame. + // FIXME: We should find a nicer way to make the labels for metadata, string + // concatenation is lame. class ObjCCommonTypesHelper { private: @@ -1463,8 +1463,8 @@ CGObjCMac::GenerateMessageSendSuper(CodeGen::CodeGenFunction &CGF, } else { Target = EmitClassRef(CGF.Builder, Class->getSuperClass()); } - // FIXME: We shouldn't need to do this cast, rectify the ASTContext - // and ObjCTypes types. + // FIXME: We shouldn't need to do this cast, rectify the ASTContext and + // ObjCTypes types. const llvm::Type *ClassTy = CGM.getTypes().ConvertType(CGF.getContext().getObjCClassType()); Target = CGF.Builder.CreateBitCast(Target, ClassTy); @@ -1526,8 +1526,8 @@ CodeGen::RValue CGObjCCommonMac::EmitLegacyMessageSend( } } else - // FIXME. This currently matches gcc's API for x86-32. May need - // to change for others if we have their API. + // FIXME. This currently matches gcc's API for x86-32. May need to change + // for others if we have their API. Fn = ObjCTypes.getSendFpretFn(IsSuper); } else { Fn = (ObjCABI == 2) ? ObjCTypes.getSendFn2(IsSuper) @@ -1541,8 +1541,7 @@ CodeGen::RValue CGObjCCommonMac::EmitLegacyMessageSend( llvm::Value *CGObjCMac::GenerateProtocolRef(CGBuilderTy &Builder, const ObjCProtocolDecl *PD) { // FIXME: I don't understand why gcc generates this, or where it is - // resolved. Investigate. Its also wasteful to look this up over and - // over. + // resolved. Investigate. Its also wasteful to look this up over and over. LazySymbols.insert(&CGM.getContext().Idents.get("Protocol")); return llvm::ConstantExpr::getBitCast(GetProtocolRef(PD), @@ -1550,9 +1549,8 @@ llvm::Value *CGObjCMac::GenerateProtocolRef(CGBuilderTy &Builder, } void CGObjCCommonMac::GenerateProtocol(const ObjCProtocolDecl *PD) { - // FIXME: We shouldn't need this, the protocol decl should contain - // enough information to tell us whether this was a declaration or a - // definition. + // FIXME: We shouldn't need this, the protocol decl should contain enough + // information to tell us whether this was a declaration or a definition. DefinedProtocols.insert(PD->getIdentifier()); // If we have generated a forward reference to this protocol, emit @@ -1588,8 +1586,7 @@ llvm::Constant *CGObjCMac::GetOrEmitProtocol(const ObjCProtocolDecl *PD) { return Entry; // FIXME: I don't understand why gcc generates this, or where it is - // resolved. Investigate. Its also wasteful to look this up over and - // over. + // resolved. Investigate. Its also wasteful to look this up over and over. LazySymbols.insert(&CGM.getContext().Idents.get("Protocol")); const char *ProtocolName = PD->getNameAsCString(); @@ -1866,11 +1863,10 @@ llvm::Constant *CGObjCMac::EmitMethodDescList(const std::string &Name, void CGObjCMac::GenerateCategory(const ObjCCategoryImplDecl *OCD) { unsigned Size = CGM.getTargetData().getTypeAllocSize(ObjCTypes.CategoryTy); - // FIXME: This is poor design, the OCD should have a pointer to the - // category decl. Additionally, note that Category can be null for - // the @implementation w/o an @interface case. Sema should just - // create one for us as it does for @implementation so everyone else - // can live life under a clear blue sky. + // FIXME: This is poor design, the OCD should have a pointer to the category + // decl. Additionally, note that Category can be null for the @implementation + // w/o an @interface case. Sema should just create one for us as it does for + // @implementation so everyone else can live life under a clear blue sky. const ObjCInterfaceDecl *Interface = OCD->getClassInterface(); const ObjCCategoryDecl *Category = Interface->FindCategoryDeclaration(OCD->getIdentifier()); @@ -2122,10 +2118,10 @@ llvm::Constant *CGObjCMac::EmitMetaClass(const ObjCImplementationDecl *ID, llvm::Constant *CGObjCMac::EmitMetaClassRef(const ObjCInterfaceDecl *ID) { std::string Name = "\01L_OBJC_METACLASS_" + ID->getNameAsString(); - // FIXME: Should we look these up somewhere other than the - // module. Its a bit silly since we only generate these while - // processing an implementation, so exactly one pointer would work - // if know when we entered/exitted an implementation block. + // FIXME: Should we look these up somewhere other than the module. Its a bit + // silly since we only generate these while processing an implementation, so + // exactly one pointer would work if know when we entered/exitted an + // implementation block. // Check for an existing forward reference. // Previously, metaclass with internal linkage may have been defined. @@ -3114,8 +3110,8 @@ void CGObjCCommonMac::BuildAggrIvarLayout(const ObjCImplementationDecl *OI, (GCAttr == QualType::GCNone || GCAttr == QualType::Weak)) || (!ForStrongLayout && GCAttr != QualType::Weak)) { if (IsUnion) { - // FIXME: Why the asymmetry? We divide by word size in bits on - // other side. + // FIXME: Why the asymmetry? We divide by word size in bits on other + // side. uint64_t UnionIvarSize = FieldSize; if (UnionIvarSize > MaxSkippedUnionIvarSize) { MaxSkippedUnionIvarSize = UnionIvarSize; @@ -3525,8 +3521,8 @@ ObjCCommonTypesHelper::ObjCCommonTypesHelper(CodeGen::CodeGenModule &cgm) PtrObjectPtrTy = llvm::PointerType::getUnqual(ObjectPtrTy); SelectorPtrTy = Types.ConvertType(Ctx.getObjCSelType()); - // FIXME: It would be nice to unify this with the opaque type, so - // that the IR comes out a bit cleaner. + // FIXME: It would be nice to unify this with the opaque type, so that the IR + // comes out a bit cleaner. const llvm::Type *T = Types.ConvertType(Ctx.getObjCProtoType()); ExternalProtocolPtrTy = llvm::PointerType::getUnqual(T); @@ -3800,8 +3796,8 @@ ObjCTypesHelper::ObjCTypesHelper(CodeGen::CodeGenModule &cgm) CGM.getModule().addTypeName("struct._objc_module", ModuleTy); - // FIXME: This is the size of the setjmp buffer and should be - // target specific. 18 is what's used on 32-bit X86. + // FIXME: This is the size of the setjmp buffer and should be target + // specific. 18 is what's used on 32-bit X86. uint64_t SetJmpBufferSize = 18; // Exceptions @@ -4679,8 +4675,8 @@ llvm::Constant * CGObjCNonFragileABIMac::EmitIvarOffsetVar( IvarOffsetGV->setAlignment( CGM.getTargetData().getPrefTypeAlignment(ObjCTypes.LongTy)); - // FIXME: This matches gcc, but shouldn't the visibility be set on - // the use as well (i.e., in ObjCIvarOffsetVariable). + // FIXME: This matches gcc, but shouldn't the visibility be set on the use as + // well (i.e., in ObjCIvarOffsetVariable). if (Ivar->getAccessControl() == ObjCIvarDecl::Private || Ivar->getAccessControl() == ObjCIvarDecl::Package || CGM.getDeclVisibilityMode(ID) == LangOptions::Hidden) @@ -5037,16 +5033,16 @@ CodeGen::RValue CGObjCNonFragileABIMac::EmitMessageSend( QualType Arg0Ty, bool IsSuper, const CallArgList &CallArgs) { - // FIXME. Even though IsSuper is passes. This function doese not - // handle calls to 'super' receivers. + // FIXME. Even though IsSuper is passes. This function doese not handle calls + // to 'super' receivers. CodeGenTypes &Types = CGM.getTypes(); llvm::Value *Arg0 = Receiver; if (!IsSuper) Arg0 = CGF.Builder.CreateBitCast(Arg0, ObjCTypes.ObjectPtrTy, "tmp"); // Find the message function name. - // FIXME. This is too much work to get the ABI-specific result type - // needed to find the message name. + // FIXME. This is too much work to get the ABI-specific result type needed to + // find the message name. const CGFunctionInfo &FnInfo = Types.getFunctionInfo(ResultType, llvm::SmallVector()); llvm::Constant *Fn = 0; @@ -5295,8 +5291,8 @@ CGObjCNonFragileABIMac::GenerateMessageSendSuper(CodeGen::CodeGenFunction &CGF, else Target = EmitSuperClassRef(CGF.Builder, Class); - // FIXME: We shouldn't need to do this cast, rectify the ASTContext - // and ObjCTypes types. + // FIXME: We shouldn't need to do this cast, rectify the ASTContext and + // ObjCTypes types. const llvm::Type *ClassTy = CGM.getTypes().ConvertType(CGF.getContext().getObjCClassType()); Target = CGF.Builder.CreateBitCast(Target, ClassTy); @@ -5567,8 +5563,8 @@ CGObjCNonFragileABIMac::EmitTryOrSynchronizedStmt(CodeGen::CodeGenFunction &CGF, // Cleanups must call objc_end_catch. // - // FIXME: It seems incorrect for objc_begin_catch to be inside - // this context, but this matches gcc. + // FIXME: It seems incorrect for objc_begin_catch to be inside this + // context, but this matches gcc. CGF.PushCleanupBlock(MatchEnd); CGF.setInvokeDest(MatchHandler); diff --git a/lib/CodeGen/CGObjCRuntime.h b/lib/CodeGen/CGObjCRuntime.h index 55d94a051e..b8cf026b35 100644 --- a/lib/CodeGen/CGObjCRuntime.h +++ b/lib/CodeGen/CGObjCRuntime.h @@ -57,8 +57,8 @@ namespace CodeGen { namespace CodeGen { class CodeGenModule; -//FIXME Several methods should be pure virtual but aren't to avoid the -//partially-implemented subclass breaking. +// FIXME: Several methods should be pure virtual but aren't to avoid the +// partially-implemented subclass breaking. /// Implements runtime-specific code generation functions. class CGObjCRuntime { @@ -150,10 +150,9 @@ public: /// Generate a function preamble for a method with the specified /// types. - // FIXME: Current this just generates the Function definition, but - // really this should also be generating the loads of the - // parameters, as the runtime should have full control over how - // parameters are passed. + // FIXME: Current this just generates the Function definition, but really this + // should also be generating the loads of the parameters, as the runtime + // should have full control over how parameters are passed. virtual llvm::Function *GenerateMethod(const ObjCMethodDecl *OMD, const ObjCContainerDecl *CD) = 0; diff --git a/lib/CodeGen/CGValue.h b/lib/CodeGen/CGValue.h index 5204c45166..aed9fc156d 100644 --- a/lib/CodeGen/CGValue.h +++ b/lib/CodeGen/CGValue.h @@ -161,8 +161,8 @@ private: static void SetQualifiers(unsigned Qualifiers, LValue& R) { R.Volatile = (Qualifiers&QualType::Volatile)!=0; R.Restrict = (Qualifiers&QualType::Restrict)!=0; - // FIXME: Convenient place to set objc flags to 0. This - // should really be done in a user-defined constructor instead. + // FIXME: Convenient place to set objc flags to 0. This should really be + // done in a user-defined constructor instead. R.ObjCType = None; R.Ivar = R.NonGC = R.GlobalObjCRef = false; } @@ -288,9 +288,9 @@ public: return R; } - // FIXME: It is probably bad that we aren't emitting the target when - // we build the lvalue. However, this complicates the code a bit, - // and I haven't figured out how to make it go wrong yet. + // FIXME: It is probably bad that we aren't emitting the target when we build + // the lvalue. However, this complicates the code a bit, and I haven't figured + // out how to make it go wrong yet. static LValue MakePropertyRef(const ObjCPropertyRefExpr *E, unsigned Qualifiers) { LValue R; diff --git a/lib/CodeGen/CodeGenFunction.cpp b/lib/CodeGen/CodeGenFunction.cpp index c74f8344cc..04661fca47 100644 --- a/lib/CodeGen/CodeGenFunction.cpp +++ b/lib/CodeGen/CodeGenFunction.cpp @@ -66,8 +66,8 @@ const llvm::Type *CodeGenFunction::ConvertType(QualType T) { } bool CodeGenFunction::hasAggregateLLVMType(QualType T) { - // FIXME: Use positive checks instead of negative ones to be more - // robust in the face of extension. + // FIXME: Use positive checks instead of negative ones to be more robust in + // the face of extension. return !T->hasPointerRepresentation() &&!T->isRealType() && !T->isVoidType() && !T->isVectorType() && !T->isFunctionType() && !T->isBlockPointerType(); @@ -105,9 +105,9 @@ void CodeGenFunction::EmitReturnBlock() { } } - // FIXME: We are at an unreachable point, there is no reason to emit - // the block unless it has uses. However, we still need a place to - // put the debug region.end for now. + // FIXME: We are at an unreachable point, there is no reason to emit the block + // unless it has uses. However, we still need a place to put the debug + // region.end for now. EmitBlock(ReturnBlock); } @@ -663,8 +663,8 @@ void CodeGenFunction::AddBranchFixup(llvm::BranchInst *BI) assert(!CleanupEntries.empty() && "Trying to add branch fixup without cleanup block!"); - // FIXME: We could be more clever here and check if there's already a - // branch fixup for this destination and recycle it. + // FIXME: We could be more clever here and check if there's already a branch + // fixup for this destination and recycle it. CleanupEntries.back().BranchFixups.push_back(BI); } diff --git a/lib/CodeGen/CodeGenModule.cpp b/lib/CodeGen/CodeGenModule.cpp index 2c966150df..be5137210f 100644 --- a/lib/CodeGen/CodeGenModule.cpp +++ b/lib/CodeGen/CodeGenModule.cpp @@ -288,9 +288,8 @@ GetLinkageForFunction(const FunctionDecl *FD, const LangOptions &Features) { /// SetFunctionDefinitionAttributes - Set attributes for a global. /// -/// FIXME: This is currently only done for aliases and functions, but -/// not for variables (these details are set in -/// EmitGlobalVarDefinition for variables). +/// FIXME: This is currently only done for aliases and functions, but not for +/// variables (these details are set in EmitGlobalVarDefinition for variables). void CodeGenModule::SetFunctionDefinitionAttributes(const FunctionDecl *D, llvm::GlobalValue *GV) { GVALinkage Linkage = GetLinkageForFunction(D, Features); @@ -703,8 +702,8 @@ llvm::Constant *CodeGenModule::GetOrCreateLLVMGlobal(const char *MangledName, // Handle things which are present even on external declarations. if (D) { - // FIXME: This code is overly simple and should be merged with - // other global handling. + // FIXME: This code is overly simple and should be merged with other global + // handling. GV->setConstant(D->getType().isConstant(Context)); // FIXME: Merge with other attribute handling code. @@ -1213,11 +1212,10 @@ GetAddrOfConstantCFString(const StringLiteral *Literal) { const llvm::Type *Ty = getTypes().ConvertType(getContext().IntTy); Ty = llvm::ArrayType::get(Ty, 0); - // FIXME: This is fairly broken if - // __CFConstantStringClassReference is already defined, in that it - // will get renamed and the user will most likely see an opaque - // error message. This is a general issue with relying on - // particular names. + // FIXME: This is fairly broken if __CFConstantStringClassReference is + // already defined, in that it will get renamed and the user will most + // likely see an opaque error message. This is a general issue with relying + // on particular names. llvm::GlobalVariable *GV = new llvm::GlobalVariable(Ty, false, llvm::GlobalVariable::ExternalLinkage, 0, @@ -1531,10 +1529,9 @@ void CodeGenModule::EmitTopLevelDecl(Decl *D) { } default: - // Make sure we handled everything we should, every other kind is - // a non-top-level decl. FIXME: Would be nice to have an - // isTopLevelDeclKind function. Need to recode Decl::Kind to do - // that easily. + // Make sure we handled everything we should, every other kind is a + // non-top-level decl. FIXME: Would be nice to have an isTopLevelDeclKind + // function. Need to recode Decl::Kind to do that easily. assert(isa(D) && "Unsupported decl kind"); } } diff --git a/lib/CodeGen/Mangle.cpp b/lib/CodeGen/Mangle.cpp index 6f4ec0bd57..c27ef4fd97 100644 --- a/lib/CodeGen/Mangle.cpp +++ b/lib/CodeGen/Mangle.cpp @@ -543,8 +543,8 @@ void CXXNameMangler::mangleType(const BuiltinType *T) { void CXXNameMangler::mangleType(const FunctionType *T) { // ::= F [Y] E Out << 'F'; - // FIXME: We don't have enough information in the AST to produce the - // 'Y' encoding for extern "C" function types. + // FIXME: We don't have enough information in the AST to produce the 'Y' + // encoding for extern "C" function types. mangleBareFunctionType(T, /*MangleReturnType=*/true); Out << 'E'; }