diff options
author | Andrei Karas <akaras@inbox.ru> | 2015-06-17 17:06:42 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2015-06-17 17:25:25 +0300 |
commit | f92d8d4c27a2c8602ac5ec888fc344d01a5da5cc (patch) | |
tree | 3a1cfb6c043dd7ee714f41418f2926d8db8ebf32 /src/analysis/expression.cpp | |
parent | b2bcd7a94f4d44e5767b0d95881d331a567fa6f2 (diff) | |
download | paranucker-f92d8d4c27a2c8602ac5ec888fc344d01a5da5cc.tar.gz paranucker-f92d8d4c27a2c8602ac5ec888fc344d01a5da5cc.tar.bz2 paranucker-f92d8d4c27a2c8602ac5ec888fc344d01a5da5cc.tar.xz paranucker-f92d8d4c27a2c8602ac5ec888fc344d01a5da5cc.zip |
Extract null pointer reporting code into separate function.
Diffstat (limited to 'src/analysis/expression.cpp')
-rw-r--r-- | src/analysis/expression.cpp | 36 |
1 files changed, 5 insertions, 31 deletions
diff --git a/src/analysis/expression.cpp b/src/analysis/expression.cpp index d3fbf73..0fbb9c5 100644 --- a/src/analysis/expression.cpp +++ b/src/analysis/expression.cpp @@ -47,19 +47,9 @@ void analyseModifyExpr(ModifyExprNode *node, const WalkItem &wi, WalkItem &wo) Node *arg = node->args[0]; if (arg && arg->nodeType == INDIRECT_REF) { - IndirectRefNode *refNode = static_cast<IndirectRefNode*>(arg); - // need atleast one arg for check - if (refNode->ref == nullptr) - return; - arg = refNode->ref; - if (arg->nodeType == PARM_DECL) - { - if (wi.checkNullVars.find(arg->label) != wi.checkNullVars.end()) - { - Log::warn(findBackLocation(node), - "Using variable without check for NULL"); - } - } + reportParmDeclNullPointer(node, + static_cast<IndirectRefNode*>(arg)->ref, + wi); } } @@ -69,15 +59,7 @@ void analysePointerPlusExpr(PointerPlusExprNode *node, const WalkItem &wi, WalkI if (node->args.empty() || command == FindArgs) return; - Node *arg = node->args[0]; - if (arg && arg->nodeType == PARM_DECL) - { - if (wi.checkNullVars.find(arg->label) != wi.checkNullVars.end()) - { - Log::warn(findBackLocation(node), - "Using variable without check for NULL"); - } - } + reportParmDeclNullPointer(node, node->args[0], wi); } void analyseAddrExpr(AddrExprNode *node, const WalkItem &wi, WalkItem &wo) @@ -86,15 +68,7 @@ void analyseAddrExpr(AddrExprNode *node, const WalkItem &wi, WalkItem &wo) if (node->args.empty() || command == FindArgs) return; - Node *arg = node->args[0]; - if (arg && arg->nodeType == PARM_DECL) - { - if (wi.checkNullVars.find(arg->label) != wi.checkNullVars.end()) - { - Log::warn(findBackLocation(node), - "Using variable without check for NULL"); - } - } + reportParmDeclNullPointer(node, node->args[0], wi); } } |