From: Zhongxing Xu Date: Fri, 27 Mar 2009 02:22:41 +0000 (+0000) Subject: remove the updated notes. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=6fa9c38744b2332acf9f5a72658fa213f93158de;p=clang remove the updated notes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67813 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Analysis/NOTES.TXT b/lib/Analysis/NOTES.TXT deleted file mode 100644 index 54ce078c1d..0000000000 --- a/lib/Analysis/NOTES.TXT +++ /dev/null @@ -1,55 +0,0 @@ -//===----------------------------------------------------------------------===// -// Random notes for the static analysis module. -//===----------------------------------------------------------------------===// - -Currently the analyzer with basic store will report false alarm for such code: - -p[0] = "/bin/sh"; -p[1] = NULL; - -execv(p[0], argv); - -This is because BasicStore "collapses" all elements of an array into their base -region. BasicStore should return UnknownVal() when getLValueElement. But that -way will break current test in null-deref-ps.c. - -//===----------------------------------------------------------------------===// - -Investigate what classes of exprs are passed silently in GRExprEngine::Visit(). - -One is PredefinedExpr. - -//===----------------------------------------------------------------------===// - -Remove PersistentSValPairs and PersistentSVals? - -//===----------------------------------------------------------------------===// - -If the pointer is symbolic, we should expand it to a full region with symbolic -values. This can eliminate the following false warning. - -struct file { - int lineno; -}; - -struct file *fileinfo; - -void f10() { - int i; - int *p = 0; - - if (fileinfo->lineno) - p = &i; - - if (fileinfo->lineno) - *p = 3; // false warning -} - -Now we return a symbolic region for fileinfo->lineno in RegionStore. Loading -from it returns an UnknownVal. Therefore the path condition is not recorded. - -Where should we call this ExpandSymbolicPointer method? Perhaps in -GRExprEngine::VisitMemberExpr(). - -Problem: The base expr of MemberExpr can be in various form. How do we get the -pointer varregion(or other kind of region) to be changed?