diff options
author | Chris Lattner <sabre@nondot.org> | 2008-04-02 17:35:06 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2008-04-02 17:35:06 +0000 |
commit | bdcd637c29ec1540f912ea6860c88b910e78c329 (patch) | |
tree | 05002c136b0c19e0a6e9625b3f12750d2f89e806 /lib/AST/ASTContext.cpp | |
parent | 987798ad1d5db2a8ec26cd5bbe434b35ad32659c (diff) |
add a common base class "PointerLikeType" for PointerType and ReferenceType,
allowing them to be treated the same in some contexts. A suggestion for a
better name is welcome :)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@49100 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/AST/ASTContext.cpp')
-rw-r--r-- | lib/AST/ASTContext.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/lib/AST/ASTContext.cpp b/lib/AST/ASTContext.cpp index ce2e58fa35..d716917b9c 100644 --- a/lib/AST/ASTContext.cpp +++ b/lib/AST/ASTContext.cpp @@ -281,7 +281,7 @@ ASTContext::getTypeInfo(QualType T) { // 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()); + return getTypeInfo(cast<ReferenceType>(T)->getPointeeType()); case Type::Complex: { // Complex types have the same alignment as their elements, but twice the @@ -1725,12 +1725,12 @@ bool ASTContext::referenceTypesAreCompatible(QualType lhs, QualType rhs) { QualType ltype = lhs; if (lhs->isReferenceType()) - ltype = cast<ReferenceType>(lhs.getCanonicalType())->getReferenceeType(); + ltype = cast<ReferenceType>(lhs.getCanonicalType())->getPointeeType(); QualType rtype = rhs; if (rhs->isReferenceType()) - rtype = cast<ReferenceType>(rhs.getCanonicalType())->getReferenceeType(); + rtype = cast<ReferenceType>(rhs.getCanonicalType())->getPointeeType(); return typesAreCompatible(ltype, rtype); } @@ -1817,9 +1817,9 @@ bool ASTContext::typesAreCompatible(QualType lhs, QualType rhs) { // designates the object or function denoted by the reference, and the // expression is an lvalue. if (ReferenceType *RT = dyn_cast<ReferenceType>(lcanon)) - lcanon = RT->getReferenceeType(); + lcanon = RT->getPointeeType(); if (ReferenceType *RT = dyn_cast<ReferenceType>(rcanon)) - rcanon = RT->getReferenceeType(); + rcanon = RT->getPointeeType(); Type::TypeClass LHSClass = lcanon->getTypeClass(); Type::TypeClass RHSClass = rcanon->getTypeClass(); |