diff options
| author | Fariborz Jahanian <fjahanian@apple.com> | 2010-03-15 18:36:00 +0000 |
|---|---|---|
| committer | Fariborz Jahanian <fjahanian@apple.com> | 2010-03-15 18:36:00 +0000 |
| commit | b397e43dea379bd436dda3fa92da449deaf70244 (patch) | |
| tree | 85a534793ff9020e5dc93c73145ea225781117ea /clang/lib/Sema/SemaOverload.cpp | |
| parent | a3e9c9ca7becdc621410f76c6c18495412eaf7b4 (diff) | |
| download | bcm5719-llvm-b397e43dea379bd436dda3fa92da449deaf70244.tar.gz bcm5719-llvm-b397e43dea379bd436dda3fa92da449deaf70244.zip | |
objective-c++ must take into account qualifiers when
considering valid objc pointer converions.
llvm-svn: 98557
Diffstat (limited to 'clang/lib/Sema/SemaOverload.cpp')
| -rw-r--r-- | clang/lib/Sema/SemaOverload.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaOverload.cpp b/clang/lib/Sema/SemaOverload.cpp index ff59fc3a7d3..a58b33f97f2 100644 --- a/clang/lib/Sema/SemaOverload.cpp +++ b/clang/lib/Sema/SemaOverload.cpp @@ -1135,6 +1135,12 @@ bool Sema::isObjCPointerConversion(QualType FromType, QualType ToType, // Objective C++: We're able to convert from a pointer to an // interface to a pointer to a different interface. if (Context.canAssignObjCInterfaces(ToObjCPtr, FromObjCPtr)) { + const ObjCInterfaceType* LHS = ToObjCPtr->getInterfaceType(); + const ObjCInterfaceType* RHS = FromObjCPtr->getInterfaceType(); + if (getLangOptions().CPlusPlus && LHS && RHS && + !ToObjCPtr->getPointeeType().isAtLeastAsQualifiedAs( + FromObjCPtr->getPointeeType())) + return false; ConvertedType = ToType; return true; } |

