summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorFariborz Jahanian <fjahanian@apple.com>2009-10-09 16:34:40 +0000
committerFariborz Jahanian <fjahanian@apple.com>2009-10-09 16:34:40 +0000
commit4dc1246d87c3daafcdfb83e68484b75a4fa0ece6 (patch)
tree15f29d84c47bd2ffbd5d833ca52509c59e73021f /clang/lib
parent31c4d8b0bac74dc5d9dffae6fe307a5d902c0e25 (diff)
downloadbcm5719-llvm-4dc1246d87c3daafcdfb83e68484b75a4fa0ece6.tar.gz
bcm5719-llvm-4dc1246d87c3daafcdfb83e68484b75a4fa0ece6.zip
Use the new API for applying the qualifiers on built-in '->*'
operator's types. llvm-svn: 83648
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/Sema/SemaOverload.cpp8
1 files changed, 3 insertions, 5 deletions
diff --git a/clang/lib/Sema/SemaOverload.cpp b/clang/lib/Sema/SemaOverload.cpp
index f2142c50894..f710f1e2d5c 100644
--- a/clang/lib/Sema/SemaOverload.cpp
+++ b/clang/lib/Sema/SemaOverload.cpp
@@ -3690,12 +3690,11 @@ Sema::AddBuiltinOperatorCandidates(OverloadedOperatorKind Op,
Ptr != CandidateTypes.pointer_end(); ++Ptr) {
QualType C1Ty = (*Ptr);
QualType C1;
- unsigned CV1;
+ QualifierCollector Q1;
if (const PointerType *PointerTy = C1Ty->getAs<PointerType>()) {
- C1 = PointerTy->getPointeeType().getUnqualifiedType();
+ C1 = QualType(Q1.strip(PointerTy->getPointeeType()), 0);
if (!isa<RecordType>(C1))
continue;
- CV1 = PointerTy->getPointeeType().getCVRQualifiers();
}
for (BuiltinCandidateTypeSet::iterator
MemPtr = CandidateTypes.member_pointer_begin(),
@@ -3709,8 +3708,7 @@ Sema::AddBuiltinOperatorCandidates(OverloadedOperatorKind Op,
QualType ParamTypes[2] = { *Ptr, *MemPtr };
// build CV12 T&
QualType T = mptr->getPointeeType();
- unsigned CV2 = T.getCVRQualifiers();
- T = Context.getCVRQualifiedType(T, (CV1 | CV2));
+ T = Q1.apply(T);
QualType ResultTy = Context.getLValueReferenceType(T);
AddBuiltinCandidate(ResultTy, ParamTypes, Args, 2, CandidateSet);
}
OpenPOWER on IntegriCloud