summaryrefslogtreecommitdiff
path: root/src/libs/cplusplus/ResolveExpression.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/cplusplus/ResolveExpression.cpp')
-rw-r--r--src/libs/cplusplus/ResolveExpression.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/libs/cplusplus/ResolveExpression.cpp b/src/libs/cplusplus/ResolveExpression.cpp
index 81b2066634..99db8cef9d 100644
--- a/src/libs/cplusplus/ResolveExpression.cpp
+++ b/src/libs/cplusplus/ResolveExpression.cpp
@@ -1085,7 +1085,12 @@ ClassOrNamespace *ResolveExpression::baseExpression(const QList<LookupItem> &bas
qDebug() << "- after typedef resolving:" << oo(ty);
if (accessOp == T_ARROW) {
- if (PointerType *ptrTy = ty->asPointerType()) {
+ PointerType *ptrTy = ty->asPointerType();
+ if (!ptrTy) {
+ if (Function * const func = ty->asFunctionType())
+ ptrTy = func->returnType()->asPointerType();
+ }
+ if (ptrTy) {
FullySpecifiedType type = ptrTy->elementType();
if (ClassOrNamespace *binding
= findClassForTemplateParameterInExpressionScope(r.binding(),