summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/analysis/expression.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/analysis/expression.cpp b/src/analysis/expression.cpp
index 1964072..ba4802b 100644
--- a/src/analysis/expression.cpp
+++ b/src/analysis/expression.cpp
@@ -127,6 +127,9 @@ std::string getComponentRefVariable(Node *node)
if (object == INDIRECT_REF &&
field == FIELD_DECL)
{
+ FieldDeclNode *fieldDecl = static_cast<FieldDeclNode*>(field);
+ if (fieldDecl->fieldType != POINTER_TYPE)
+ return str;
IndirectRefNode *indirect = static_cast<IndirectRefNode*>(object);
Node *ref = skipNop(indirect->ref);
if (ref == PARM_DECL || ref == VAR_DECL)