remove the source location arguments to various target query methods.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@47954 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/AST/ASTContext.cpp b/AST/ASTContext.cpp
index 2487aba..b5b28bc 100644
--- a/AST/ASTContext.cpp
+++ b/AST/ASTContext.cpp
@@ -133,7 +133,7 @@
// C99 6.2.5p2.
InitBuiltinType(BoolTy, BuiltinType::Bool);
// C99 6.2.5p3.
- if (Target.isCharSigned(FullSourceLoc()))
+ if (Target.isCharSigned())
InitBuiltinType(CharTy, BuiltinType::Char_S);
else
InitBuiltinType(CharTy, BuiltinType::Char_U);
@@ -180,7 +180,7 @@
/// getTypeSize - Return the size of the specified type, in bits. This method
/// does not work on incomplete types.
std::pair<uint64_t, unsigned>
-ASTContext::getTypeInfo(QualType T, SourceLocation L) {
+ASTContext::getTypeInfo(QualType T) {
T = T.getCanonicalType();
uint64_t Size;
unsigned Align;
@@ -195,8 +195,7 @@
case Type::ConstantArray: {
ConstantArrayType *CAT = cast<ConstantArrayType>(T);
- std::pair<uint64_t, unsigned> EltInfo =
- getTypeInfo(CAT->getElementType(), L);
+ std::pair<uint64_t, unsigned> EltInfo = getTypeInfo(CAT->getElementType());
Size = EltInfo.first*CAT->getSize().getZExtValue();
Align = EltInfo.second;
break;
@@ -204,7 +203,7 @@
case Type::OCUVector:
case Type::Vector: {
std::pair<uint64_t, unsigned> EltInfo =
- getTypeInfo(cast<VectorType>(T)->getElementType(), L);
+ getTypeInfo(cast<VectorType>(T)->getElementType());
Size = EltInfo.first*cast<VectorType>(T)->getNumElements();
// FIXME: Vector alignment is not the alignment of its elements.
Align = EltInfo.second;
@@ -220,62 +219,62 @@
case BuiltinType::Void:
assert(0 && "Incomplete types have no size!");
case BuiltinType::Bool:
- Target.getBoolInfo(Size, Align, getFullLoc(L));
+ Target.getBoolInfo(Size, Align);
break;
case BuiltinType::Char_S:
case BuiltinType::Char_U:
case BuiltinType::UChar:
case BuiltinType::SChar:
- Target.getCharInfo(Size, Align, getFullLoc(L));
+ Target.getCharInfo(Size, Align);
break;
case BuiltinType::UShort:
case BuiltinType::Short:
- Target.getShortInfo(Size, Align, getFullLoc(L));
+ Target.getShortInfo(Size, Align);
break;
case BuiltinType::UInt:
case BuiltinType::Int:
- Target.getIntInfo(Size, Align, getFullLoc(L));
+ Target.getIntInfo(Size, Align);
break;
case BuiltinType::ULong:
case BuiltinType::Long:
- Target.getLongInfo(Size, Align, getFullLoc(L));
+ Target.getLongInfo(Size, Align);
break;
case BuiltinType::ULongLong:
case BuiltinType::LongLong:
- Target.getLongLongInfo(Size, Align, getFullLoc(L));
+ Target.getLongLongInfo(Size, Align);
break;
case BuiltinType::Float:
- Target.getFloatInfo(Size, Align, F, getFullLoc(L));
+ Target.getFloatInfo(Size, Align, F);
break;
case BuiltinType::Double:
- Target.getDoubleInfo(Size, Align, F, getFullLoc(L));
+ Target.getDoubleInfo(Size, Align, F);
break;
case BuiltinType::LongDouble:
- Target.getLongDoubleInfo(Size, Align, F, getFullLoc(L));
+ Target.getLongDoubleInfo(Size, Align, F);
break;
}
break;
}
case Type::ASQual:
- return getTypeInfo(QualType(cast<ASQualType>(T)->getBaseType(), 0), L);
+ // FIXME: Pointers into different addr spaces could have different sizes and
+ // alignment requirements: getPointerInfo should take an AddrSpace.
+ return getTypeInfo(QualType(cast<ASQualType>(T)->getBaseType(), 0));
case Type::ObjCQualifiedId:
- Target.getPointerInfo(Size, Align, getFullLoc(L));
- break;
case Type::Pointer:
- Target.getPointerInfo(Size, Align, getFullLoc(L));
+ Target.getPointerInfo(Size, Align);
break;
case Type::Reference:
// "When applied to a reference or a reference type, the result is the size
// of the referenced type." C++98 5.3.3p2: expr.sizeof.
// FIXME: This is wrong for struct layout: a reference in a struct has
// pointer size.
- return getTypeInfo(cast<ReferenceType>(T)->getReferenceeType(), L);
+ return getTypeInfo(cast<ReferenceType>(T)->getReferenceeType());
case Type::Complex: {
// Complex types have the same alignment as their elements, but twice the
// size.
std::pair<uint64_t, unsigned> EltInfo =
- getTypeInfo(cast<ComplexType>(T)->getElementType(), L);
+ getTypeInfo(cast<ComplexType>(T)->getElementType());
Size = EltInfo.first*2;
Align = EltInfo.second;
break;
@@ -283,11 +282,11 @@
case Type::Tagged:
TagType *TT = cast<TagType>(T);
if (RecordType *RT = dyn_cast<RecordType>(TT)) {
- const ASTRecordLayout &Layout = getASTRecordLayout(RT->getDecl(), L);
+ const ASTRecordLayout &Layout = getASTRecordLayout(RT->getDecl());
Size = Layout.getSize();
Align = Layout.getAlignment();
} else if (EnumDecl *ED = dyn_cast<EnumDecl>(TT->getDecl())) {
- return getTypeInfo(ED->getIntegerType(), L);
+ return getTypeInfo(ED->getIntegerType());
} else {
assert(0 && "Unimplemented type sizes!");
}
@@ -301,8 +300,7 @@
/// getASTRecordLayout - Get or compute information about the layout of the
/// specified record (struct/union/class), which indicates its size and field
/// position information.
-const ASTRecordLayout &ASTContext::getASTRecordLayout(const RecordDecl *D,
- SourceLocation L) {
+const ASTRecordLayout &ASTContext::getASTRecordLayout(const RecordDecl *D) {
assert(D->isDefinition() && "Cannot get layout of forward declarations!");
// Look up this layout, if already laid out, return what we have.
@@ -339,7 +337,7 @@
assert (BitWidthIsICE && "Invalid BitField size expression");
FieldSize = I.getZExtValue();
- std::pair<uint64_t, unsigned> TypeInfo = getTypeInfo(FD->getType(), L);
+ std::pair<uint64_t, unsigned> TypeInfo = getTypeInfo(FD->getType());
uint64_t TypeSize = TypeInfo.first;
if (const AlignedAttr *AA = FD->getAttr<AlignedAttr>())
@@ -372,11 +370,11 @@
FieldAlign = 8;
else {
const ArrayType* ATy = FD->getType()->getAsArrayType();
- FieldAlign = getTypeAlign(ATy->getElementType(), L);
+ FieldAlign = getTypeAlign(ATy->getElementType());
}
FieldSize = 0;
} else {
- std::pair<uint64_t, unsigned> FieldInfo = getTypeInfo(FD->getType(), L);
+ std::pair<uint64_t, unsigned> FieldInfo = getTypeInfo(FD->getType());
FieldSize = FieldInfo.first;
if (const AlignedAttr *AA = FD->getAttr<AlignedAttr>())
@@ -408,7 +406,7 @@
// Union layout just puts each member at the start of the record.
for (unsigned i = 0, e = D->getNumMembers(); i != e; ++i) {
const FieldDecl *FD = D->getMember(i);
- std::pair<uint64_t, unsigned> FieldInfo = getTypeInfo(FD->getType(), L);
+ std::pair<uint64_t, unsigned> FieldInfo = getTypeInfo(FD->getType());
uint64_t FieldSize = FieldInfo.first;
unsigned FieldAlign = FieldInfo.second;
@@ -1073,16 +1071,15 @@
/// getObjCEncodingTypeSize returns size of type for objective-c encoding
/// purpose.
int ASTContext::getObjCEncodingTypeSize(QualType type) {
- SourceLocation Loc;
- uint64_t sz = getTypeSize(type, Loc);
+ uint64_t sz = getTypeSize(type);
// Make all integer and enum types at least as large as an int
if (sz > 0 && type->isIntegralType())
- sz = std::max(sz, getTypeSize(IntTy, Loc));
+ sz = std::max(sz, getTypeSize(IntTy));
// Treat arrays as pointers, since that's how they're passed in.
else if (type->isArrayType())
- sz = getTypeSize(VoidPtrTy, Loc);
- return sz / getTypeSize(CharTy, Loc);
+ sz = getTypeSize(VoidPtrTy);
+ return sz / getTypeSize(CharTy);
}
/// getObjCEncodingForMethodDecl - Return the encoded type for this method
@@ -1098,7 +1095,7 @@
// Start with computing size of a pointer in number of bytes.
// FIXME: There might(should) be a better way of doing this computation!
SourceLocation Loc;
- int PtrSize = getTypeSize(VoidPtrTy, Loc) / getTypeSize(CharTy, Loc);
+ int PtrSize = getTypeSize(VoidPtrTy) / getTypeSize(CharTy);
// The first two arguments (self and _cmd) are pointers; account for
// their size.
int ParmOffset = 2 * PtrSize;