r280701 - DebugInfo: use llvm::DINode::DIFlags type for debug info flags
Author: lkholodov Date: Tue Sep 6 05:48:04 2016 New Revision: 280701 URL: http://llvm.org/viewvc/llvm-project?rev=280701&view=rev Log: DebugInfo: use llvm::DINode::DIFlags type for debug info flags Use llvm::DINode::DIFlags type (strongly typed enum) for debug flags instead of unsigned int to avoid problems on platforms with sizeof(int) < 4: we already have flags with values > (1 << 16). Patch by: Victor Leschuk Differential Revision: https://reviews.llvm.org/D23767 Modified: cfe/trunk/lib/CodeGen/CGDebugInfo.cpp cfe/trunk/lib/CodeGen/CGDebugInfo.h Modified: cfe/trunk/lib/CodeGen/CGDebugInfo.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGDebugInfo.cpp?rev=280701&r1=280700&r2=280701&view=diff == --- cfe/trunk/lib/CodeGen/CGDebugInfo.cpp (original) +++ cfe/trunk/lib/CodeGen/CGDebugInfo.cpp Tue Sep 6 05:48:04 2016 @@ -497,12 +497,12 @@ llvm::DIType *CGDebugInfo::CreateType(co ObjTy = DBuilder.createStructType(TheCU, "objc_object", getOrCreateMainFile(), - 0, 0, 0, 0, nullptr, llvm::DINodeArray()); + 0, 0, 0, llvm::DINode::FlagZero, nullptr, llvm::DINodeArray()); DBuilder.replaceArrays( ObjTy, DBuilder.getOrCreateArray(&*DBuilder.createMemberType( -ObjTy, "isa", getOrCreateMainFile(), 0, Size, 0, 0, 0, ISATy))); +ObjTy, "isa", getOrCreateMainFile(), 0, Size, 0, 0, llvm::DINode::FlagZero, ISATy))); return ObjTy; } case BuiltinType::ObjCSel: { @@ -787,7 +787,7 @@ llvm::DIType *CGDebugInfo::CreateType(co Elements = DBuilder.getOrCreateArray(EltTys); EltTys.clear(); - unsigned Flags = llvm::DINode::FlagAppleBlock; + llvm::DINode::DIFlags Flags = llvm::DINode::FlagAppleBlock; unsigned LineNo = 0; auto *EltTy = @@ -813,7 +813,7 @@ llvm::DIType *CGDebugInfo::CreateType(co FieldAlign = CGM.getContext().getTypeAlign(Ty); EltTys.push_back(DBuilder.createMemberType(Unit, "__descriptor", nullptr, LineNo, FieldSize, FieldAlign, FieldOffset, - 0, DescTy)); + llvm::DINode::FlagZero, DescTy)); FieldOffset += FieldSize; Elements = DBuilder.getOrCreateArray(EltTys); @@ -917,14 +917,14 @@ llvm::DIType *CGDebugInfo::CreateType(co } llvm::DITypeRefArray EltTypeArray = DBuilder.getOrCreateTypeArray(EltTys); - return DBuilder.createSubroutineType(EltTypeArray, 0, + return DBuilder.createSubroutineType(EltTypeArray, llvm::DINode::FlagZero, getDwarfCC(Ty->getCallConv())); } /// Convert an AccessSpecifier into the corresponding DINode flag. /// As an optimization, return 0 if the access specifier equals the /// default for the containing type. -static unsigned getAccessFlag(AccessSpecifier Access, const RecordDecl *RD) { +static llvm::DINode::DIFlags getAccessFlag(AccessSpecifier Access, const RecordDecl *RD) { AccessSpecifier Default = clang::AS_none; if (RD && RD->isClass()) Default = clang::AS_private; @@ -932,7 +932,7 @@ static unsigned getAccessFlag(AccessSpec Default = clang::AS_public; if (Access == Default) -return 0; +return llvm::DINode::FlagZero; switch (Access) { case clang::AS_private: @@ -942,7 +942,7 @@ static unsigned getAccessFlag(AccessSpec case clang::AS_public: return llvm::DINode::FlagPublic; case clang::AS_none: -return 0; +return llvm::DINode::FlagZero; } llvm_unreachable("unexpected access enumerator"); } @@ -968,7 +968,7 @@ llvm::DIType *CGDebugInfo::createBitFiel uint64_t StorageOffsetInBits = CGM.getContext().toBits(BitFieldInfo.StorageOffset); uint64_t OffsetInBits = StorageOffsetInBits + BitFieldInfo.Offset; - unsigned Flags = getAccessFlag(BitFieldDecl->getAccess(), RD); + llvm::DINode::DIFlags Flags = getAccessFlag(BitFieldDecl->getAccess(), RD); return DBuilder.createBitFieldMemberType( RecordTy, Name, File, Line, SizeInBits, AlignInBits, OffsetInBits, StorageOffsetInBits, Flags, DebugType); @@ -993,7 +993,7 @@ CGDebugInfo::createFieldType(StringRef n AlignInBits = TI.Align; } - unsigned flags = getAccessFlag(AS, RD); + llvm::DINode::DIFlags flags = getAccessFlag(AS, RD); return DBuilder.createMemberType(scope, name, file, line, SizeInBits, AlignInBits, offsetInBits, flags, debugType); } @@ -1060,7 +1060,7 @@ CGDebugInfo::CreateRecordStaticField(con } } - unsigned Flags = getAccessFlag(Var->getAccess(), RD); + llvm::DINode::DIFlags Flags = getAccessFlag(Var->getAccess(), RD); llvm::DIDerivedType *GV = DBuilder.createStaticMemberType( RecordTy, VName, VUnit, LineNumber, VTy, Flags, C); StaticDataMemberCache[Var->getCanonicalDecl()].reset(GV); @@ -1203,7 +12
r280718 - Formatting with clang-format patch r280701
Author: lkholodov Date: Tue Sep 6 12:06:14 2016 New Revision: 280718 URL: http://llvm.org/viewvc/llvm-project?rev=280718&view=rev Log: Formatting with clang-format patch r280701 Modified: cfe/trunk/lib/CodeGen/CGDebugInfo.cpp Modified: cfe/trunk/lib/CodeGen/CGDebugInfo.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGDebugInfo.cpp?rev=280718&r1=280717&r2=280718&view=diff == --- cfe/trunk/lib/CodeGen/CGDebugInfo.cpp (original) +++ cfe/trunk/lib/CodeGen/CGDebugInfo.cpp Tue Sep 6 12:06:14 2016 @@ -495,14 +495,14 @@ llvm::DIType *CGDebugInfo::CreateType(co auto *ISATy = DBuilder.createPointerType(ClassTy, Size); -ObjTy = -DBuilder.createStructType(TheCU, "objc_object", getOrCreateMainFile(), - 0, 0, 0, llvm::DINode::FlagZero, nullptr, llvm::DINodeArray()); +ObjTy = DBuilder.createStructType( +TheCU, "objc_object", getOrCreateMainFile(), 0, 0, 0, +llvm::DINode::FlagZero, nullptr, llvm::DINodeArray()); DBuilder.replaceArrays( -ObjTy, -DBuilder.getOrCreateArray(&*DBuilder.createMemberType( -ObjTy, "isa", getOrCreateMainFile(), 0, Size, 0, 0, llvm::DINode::FlagZero, ISATy))); +ObjTy, DBuilder.getOrCreateArray(&*DBuilder.createMemberType( + ObjTy, "isa", getOrCreateMainFile(), 0, Size, 0, 0, + llvm::DINode::FlagZero, ISATy))); return ObjTy; } case BuiltinType::ObjCSel: { @@ -811,9 +811,9 @@ llvm::DIType *CGDebugInfo::CreateType(co FType = CGM.getContext().getPointerType(CGM.getContext().VoidTy); FieldSize = CGM.getContext().getTypeSize(Ty); FieldAlign = CGM.getContext().getTypeAlign(Ty); - EltTys.push_back(DBuilder.createMemberType(Unit, "__descriptor", nullptr, LineNo, - FieldSize, FieldAlign, FieldOffset, - llvm::DINode::FlagZero, DescTy)); + EltTys.push_back(DBuilder.createMemberType( + Unit, "__descriptor", nullptr, LineNo, FieldSize, FieldAlign, FieldOffset, + llvm::DINode::FlagZero, DescTy)); FieldOffset += FieldSize; Elements = DBuilder.getOrCreateArray(EltTys); @@ -924,7 +924,8 @@ llvm::DIType *CGDebugInfo::CreateType(co /// Convert an AccessSpecifier into the corresponding DINode flag. /// As an optimization, return 0 if the access specifier equals the /// default for the containing type. -static llvm::DINode::DIFlags getAccessFlag(AccessSpecifier Access, const RecordDecl *RD) { +static llvm::DINode::DIFlags getAccessFlag(AccessSpecifier Access, + const RecordDecl *RD) { AccessSpecifier Default = clang::AS_none; if (RD && RD->isClass()) Default = clang::AS_private; @@ -1978,7 +1979,8 @@ llvm::DIType *CGDebugInfo::CreateTypeDef if (!SClassTy) return nullptr; -llvm::DIType *InhTag = DBuilder.createInheritance(RealDecl, SClassTy, 0, llvm::DINode::FlagZero); +llvm::DIType *InhTag = DBuilder.createInheritance(RealDecl, SClassTy, 0, + llvm::DINode::FlagZero); EltTys.push_back(InhTag); } @@ -2656,9 +2658,9 @@ llvm::DIType *CGDebugInfo::CreateMemberT llvm::DIType *FieldTy = CGDebugInfo::getOrCreateType(FType, Unit); uint64_t FieldSize = CGM.getContext().getTypeSize(FType); unsigned FieldAlign = CGM.getContext().getTypeAlign(FType); - llvm::DIType *Ty = DBuilder.createMemberType(Unit, Name, Unit, 0, FieldSize, - FieldAlign, *Offset, - llvm::DINode::FlagZero, FieldTy); + llvm::DIType *Ty = + DBuilder.createMemberType(Unit, Name, Unit, 0, FieldSize, FieldAlign, +*Offset, llvm::DINode::FlagZero, FieldTy); *Offset += FieldSize; return Ty; } @@ -3518,10 +3520,9 @@ void CGDebugInfo::EmitDeclareOfBlockLite uint64_t xoffset; fieldType = EmitTypeForVarWithBlocksAttr(variable, &xoffset); fieldType = DBuilder.createPointerType(fieldType, PtrInfo.Width); - fieldType = - DBuilder.createMemberType(tunit, name, tunit, line, PtrInfo.Width, -PtrInfo.Align, offsetInBits, -llvm::DINode::FlagZero, fieldType); + fieldType = DBuilder.createMemberType( + tunit, name, tunit, line, PtrInfo.Width, PtrInfo.Align, offsetInBits, + llvm::DINode::FlagZero, fieldType); } else { fieldType = createFieldType(name, variable->getType(), loc, AS_public, offsetInBits, tunit, tunit); @@ -3535,11 +3536,11 @@ void CGDebugInfo::EmitDeclareOfBlockLite llvm::DINodeArray fieldsArray = DBuilder.getOrCreateArray(fields); - llvm::DIType *type = DBuilder.createStructType( - tunit, typeName.str(), tunit, line