From 51bfb8db8828fe147ac2d99ae8ee453a71503b65 Mon Sep 17 00:00:00 2001 From: Robert Marsh Date: Mon, 20 Aug 2018 15:10:28 -0700 Subject: [PATCH] C++: exclude conversion in MacroInvocation.getExpr --- cpp/ql/src/semmle/code/cpp/Macro.qll | 3 ++- .../macroinvocations/getanaffectedelement.expected | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/cpp/ql/src/semmle/code/cpp/Macro.qll b/cpp/ql/src/semmle/code/cpp/Macro.qll index febc4d4c47cb..e1d8108e623d 100644 --- a/cpp/ql/src/semmle/code/cpp/Macro.qll +++ b/cpp/ql/src/semmle/code/cpp/Macro.qll @@ -178,7 +178,8 @@ class MacroInvocation extends MacroAccess { */ Expr getExpr() { result = getAnExpandedElement() and - not (result.getParent() = getAnExpandedElement()) + not (result.getParent() = getAnExpandedElement()) and + not result instanceof Conversion } /** diff --git a/cpp/ql/test/library-tests/preprocessor/macroinvocations/getanaffectedelement.expected b/cpp/ql/test/library-tests/preprocessor/macroinvocations/getanaffectedelement.expected index 5bbb82d243d1..70829497b76f 100644 --- a/cpp/ql/test/library-tests/preprocessor/macroinvocations/getanaffectedelement.expected +++ b/cpp/ql/test/library-tests/preprocessor/macroinvocations/getanaffectedelement.expected @@ -58,7 +58,7 @@ | macroinvocations.cpp:123:10:123:19 | MACRO_EXPR | macroinvocations.cpp:123:10:123:19 | 2 | getAGeneratedElement() getAnAffectedElement() getAnExpandedElement() | | macroinvocations.cpp:123:10:123:19 | MACRO_EXPR | macroinvocations.cpp:123:10:123:19 | 3 | getAGeneratedElement() getAnAffectedElement() getAnExpandedElement() | | macroinvocations.cpp:123:10:123:19 | MACRO_EXPR | macroinvocations.cpp:123:10:123:19 | 4 | getAGeneratedElement() getAnAffectedElement() getAnExpandedElement() | -| macroinvocations.cpp:123:10:123:19 | MACRO_EXPR | macroinvocations.cpp:123:10:123:19 | (...) | getAGeneratedElement() getAnAffectedElement() getAnExpandedElement() getExpr() | -| macroinvocations.cpp:123:10:123:19 | MACRO_EXPR | macroinvocations.cpp:123:10:123:19 | (...) | getAGeneratedElement() getAnAffectedElement() getAnExpandedElement() getExpr() | +| macroinvocations.cpp:123:10:123:19 | MACRO_EXPR | macroinvocations.cpp:123:10:123:19 | (...) | getAGeneratedElement() getAnAffectedElement() getAnExpandedElement() | +| macroinvocations.cpp:123:10:123:19 | MACRO_EXPR | macroinvocations.cpp:123:10:123:19 | (...) | getAGeneratedElement() getAnAffectedElement() getAnExpandedElement() | | macroinvocations.cpp:123:10:123:19 | MACRO_EXPR | macroinvocations.cpp:123:10:123:19 | ... * ... | getAGeneratedElement() getAnAffectedElement() getAnExpandedElement() getExpr() | | macroinvocations.cpp:123:10:123:19 | MACRO_EXPR | macroinvocations.cpp:123:10:123:19 | ... + ... | getAGeneratedElement() getAnAffectedElement() getAnExpandedElement() |