summaryrefslogtreecommitdiffstats
path: root/clang/lib/Sema
diff options
context:
space:
mode:
authorOlivier Goffart <ogoffart@woboq.com>2014-08-04 17:28:05 +0000
committerOlivier Goffart <ogoffart@woboq.com>2014-08-04 17:28:05 +0000
commit4c182c8bb10cb8131389ec1be4b0f9d3e3d03089 (patch)
treee88b7706f62fd96c58c24113440119403fda83fa /clang/lib/Sema
parent5002fb5337785a8e1051eb218bd6640472244118 (diff)
downloadbcm5719-llvm-4c182c8bb10cb8131389ec1be4b0f9d3e3d03089.tar.gz
bcm5719-llvm-4c182c8bb10cb8131389ec1be4b0f9d3e3d03089.zip
Fix crash when assiging to a property with an invalid type
This is a regression from clang 3.4 Set the result to ExprError and returns true, rather than simply returns false because errors have been reported already and returning false show a confusing error llvm-svn: 214734
Diffstat (limited to 'clang/lib/Sema')
-rw-r--r--clang/lib/Sema/SemaPseudoObject.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/clang/lib/Sema/SemaPseudoObject.cpp b/clang/lib/Sema/SemaPseudoObject.cpp
index c8d34f84e1b..fac7774734c 100644
--- a/clang/lib/Sema/SemaPseudoObject.cpp
+++ b/clang/lib/Sema/SemaPseudoObject.cpp
@@ -845,7 +845,12 @@ bool ObjCPropertyOpBuilder::tryBuildGetOfReference(Expr *op,
if (!S.getLangOpts().CPlusPlus) return false;
findGetter();
- assert(Getter && "property has no setter and no getter!");
+ if (!Getter) {
+ // The property has no setter and no getter! This can happen if the type is
+ // invalid. Error have already been reported.
+ result = ExprError();
+ return true;
+ }
// Only do this if the getter returns an l-value reference type.
QualType resultType = Getter->getReturnType();
OpenPOWER on IntegriCloud