llvm-project/clang
Ted Kremenek 5f256da834 Rename GRState::getSVal() -> getRawSVal() and getSimplifiedSVal() -> getSVal().
The end result is now we eagarly constant-fold symbols in the analyzer that are perfectly constrained
to be a constant value.  This allows us to recover some path-sensitivity in some cases by lowering
the required level of reasoning power needed to evaluate some expressions.

The net win from this change is that the false positive in PR 8015 is fixed, and we also
find more idempotent operations bugs.

We do, however, regress with the BugReporterVisitors, which need to be modified to understand
this constant folding (and look past it).  This causes some diagnostic regressions in plist-output.m
which will get addressed in a future patch.  plist-output.m is now marked XFAIL, while
plist-output-alternate.m now tests that the plist output is working, but with the suboptimal
diagnostics.  This second test file will eventually be removed.

llvm-svn: 113477
2010-09-09 07:13:00 +00:00
..
INPUTS
bindings/python Rename 'CIndex' to 'libclang', since it has basically become our stable public 2010-04-30 21:51:10 +00:00
clang.xcodeproj Static local variables don't result in global constructors being emitted. 2010-09-03 01:11:38 +00:00
docs Update the internals manual for the removal of Action, as well as other 2010-09-03 05:07:55 +00:00
examples clang-interpreter: libFrontend depends on libSerialization. Fix linux build by changing the link order. 2010-08-26 15:21:38 +00:00
include Rename GRState::getSVal() -> getRawSVal() and getSimplifiedSVal() -> getSVal(). 2010-09-09 07:13:00 +00:00
lib Rename GRState::getSVal() -> getRawSVal() and getSimplifiedSVal() -> getSVal(). 2010-09-09 07:13:00 +00:00
runtime Runtime: Always build compiler-rt using the Clang we just built, instead of the 2010-06-30 22:10:41 +00:00
test Rename GRState::getSVal() -> getRawSVal() and getSimplifiedSVal() -> getSVal(). 2010-09-09 07:13:00 +00:00
tools Fix warnings caused by new CXXUuidofExprClass enumerator. 2010-09-08 23:47:05 +00:00
utils Fix typo in test program 2010-07-14 00:09:17 +00:00
www Put the info on testing from the command line into its own section 2010-09-03 17:01:13 +00:00
CMakeLists.txt clang: Derive version name from LLVM unless specified explicitly. This means 2010-06-25 23:34:47 +00:00
INSTALL.txt
LICENSE.TXT 2010 is here. 2010-01-09 18:40:42 +00:00
Makefile Move lib/Runtime to runtime/, and build after everything else. 2010-06-30 22:10:38 +00:00
ModuleInfo.txt
NOTES.txt A Release-Asserts build is now called a Release build. 2010-07-07 07:49:17 +00:00
README.txt Fix typo (test commit) 2010-06-17 12:39:05 +00:00
TODO.txt switch -Werror/-Wfatal-errors error conditions to use diagnostics instead 2009-12-23 18:53:37 +00:00

README.txt

//===----------------------------------------------------------------------===//
// C Language Family Front-end
//===----------------------------------------------------------------------===//

Welcome to Clang.  This is a compiler front-end for the C family of languages
(C, C++, Objective-C, and Objective-C++) which is built as part of the LLVM
compiler infrastructure project.

Unlike many other compiler frontends, Clang is useful for a number of things
beyond just compiling code: we intend for Clang to be host to a number of
different source level tools.  One example of this is the Clang Static Analyzer.

If you're interested in more (including how to build Clang) it is best to read
the relevant web sites.  Here are some pointers:

Information on Clang:              http://clang.llvm.org/
Building and using Clang:          http://clang.llvm.org/get_started.html
Clang Static Analyzer:             http://clang-analyzer.llvm.org/
Information on the LLVM project:   http://llvm.org/

If you have questions or comments about Clang, a great place to discuss them is
on the Clang development mailing list:
  http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev

If you find a bug in Clang, please file it in the LLVM bug tracker:
  http://llvm.org/bugs/