diff options
author | Andrei Karas <akaras@inbox.ru> | 2015-07-21 21:21:18 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2015-07-21 21:21:18 +0300 |
commit | e57f31ed8c663cd3a0c3bac358ad657e6786121f (patch) | |
tree | bc68e813a232b52e7f5db536af3cba493692860e /src | |
parent | 09842c339f6ce04b1e4c64258498a05576527961 (diff) | |
download | paranucker-e57f31ed8c663cd3a0c3bac358ad657e6786121f.tar.gz paranucker-e57f31ed8c663cd3a0c3bac358ad657e6786121f.tar.bz2 paranucker-e57f31ed8c663cd3a0c3bac358ad657e6786121f.tar.xz paranucker-e57f31ed8c663cd3a0c3bac358ad657e6786121f.zip |
Fix false positives with detecting variables as pointers in VAR_DECL nodes.
Diffstat (limited to 'src')
-rw-r--r-- | src/analysis/expression.cpp | 3 |
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) |