[LLVMbugs] [Bug 16025] New: static analyzer does not keep track of variable values
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Wed May 15 21:19:17 PDT 2013
http://llvm.org/bugs/show_bug.cgi?id=16025
Bug ID: 16025
Summary: static analyzer does not keep track of variable values
Product: clang
Version: trunk
Hardware: PC
OS: Linux
Status: NEW
Severity: normal
Priority: P
Component: Static Analyzer
Assignee: kremenek at apple.com
Reporter: austinenglish at gmail.com
CC: llvmbugs at cs.uiuc.edu
Classification: Unclassified
Created attachment 10521
--> http://llvm.org/bugs/attachment.cgi?id=10521&action=edit
report file
Noticed while analyzing wine. The code in question:
if(IsEqualCLSID((*iter)->pclsid, rclsid) && (*iter)->pfnGetClassObject) {
if(!(*iter)->pCF)
hres = (*iter)->pfnGetClassObject((*iter)->pfnCreateInstance,
&IID_IUnknown, (void**)&(*iter)->pCF);
if((*iter)->pCF)
hres = IUnknown_QueryInterface((*iter)->pCF, riid, ppv);
TRACE("returning %p (%08x)\n", *ppv, hres);
return hres;
the problem is that when analyzing, clang decides to take the false path
initially (so (*iter)->pCF is a valid pointer). It then takes the next false
path, where (*iter)->pCF is not valid.
This condition isn't possible, and makes the reports much less helpful.
The file in question is from wine/dlls/atl100/atl.c.
I've attached the html report from ccc-analyzer. Note lines 445/447.
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20130516/3e14beae/attachment.html>
More information about the llvm-bugs
mailing list