3.2 release branch r167710

git-svn-id: http://llvm.org/svn/llvm-project/safecode/branches/release_32@167710 91177308-0d34-0410-b5e6-96231b3b80d8
Re-creating the release_32 of SAFECode.
If I've done it correctly, it should be based off of Revision 168084 and
contain all changes to mainline clang made prior to the release_32 branch
of clang.


git-svn-id: http://llvm.org/svn/llvm-project/safecode/branches/release_32@168085 91177308-0d34-0410-b5e6-96231b3b80d8
Merged in changes up to Revision 167702.
In fact, no changes seem to have been made, but hopefully this gets SVN to know
that everything has been merged in.


git-svn-id: http://llvm.org/svn/llvm-project/safecode/branches/release_32@168094 91177308-0d34-0410-b5e6-96231b3b80d8
Merged in the release_32 branch of llvm/tools/lto.


git-svn-id: http://llvm.org/svn/llvm-project/safecode/branches/release_32@168096 91177308-0d34-0410-b5e6-96231b3b80d8
Merged in the release_32 branch of Clang.
SVN claimed to have done the following:

--- Merging r167704 through r168096 into '.':
U    test/Analysis/malloc.mm
U    test/Analysis/retain-release-inline.m
U    test/Analysis/dead-stores.cpp
U    test/Analysis/inlining/InlineObjCInstanceMethod.m
U    test/SemaCXX/switch-implicit-fallthrough-cxx98.cpp
--- Merging r167704 through r168096 into 'test/SemaCXX/warn-unreachable.cpp':
 G   test/SemaCXX/warn-unreachable.cpp
--- Merging r167704 through r168096 into '.':
U    lib/Analysis/CFG.cpp
U    lib/Sema/AnalysisBasedWarnings.cpp
U    lib/StaticAnalyzer/Checkers/MallocChecker.cpp
U    lib/StaticAnalyzer/Core/ExprEngineCallAndReturn.cpp
 G   .



git-svn-id: http://llvm.org/svn/llvm-project/safecode/branches/release_32@168097 91177308-0d34-0410-b5e6-96231b3b80d8
Updated documentation to reflect the fact that we're working with LLVM 3.2 now.


git-svn-id: http://llvm.org/svn/llvm-project/safecode/branches/release_32@168175 91177308-0d34-0410-b5e6-96231b3b80d8
Merged in release_32 branch of Clang (revisions 168097 through 168890) on
November 29, 2012.
This fixes the build with the release_32 branch of LLVM.


git-svn-id: http://llvm.org/svn/llvm-project/safecode/branches/release_32@168894 91177308-0d34-0410-b5e6-96231b3b80d8
Update to attribute API change in the release_32 branch of LLVM.


git-svn-id: http://llvm.org/svn/llvm-project/safecode/branches/release_32@168896 91177308-0d34-0410-b5e6-96231b3b80d8
Fixed linking both for normal builds and for when Automatic Pool Allocation is
enabled.


git-svn-id: http://llvm.org/svn/llvm-project/safecode/branches/release_32@169035 91177308-0d34-0410-b5e6-96231b3b80d8
Merged in the release_32 branch of Clang (r168891 through r169383).


git-svn-id: http://llvm.org/svn/llvm-project/safecode/branches/release_32@169385 91177308-0d34-0410-b5e6-96231b3b80d8
Merged in the release_32 branch of LLVM.
No changes were made on the branch, so this just updates the merging
information for SVN.


git-svn-id: http://llvm.org/svn/llvm-project/safecode/branches/release_32@169386 91177308-0d34-0410-b5e6-96231b3b80d8
Fixed PR#14470.
This root of the problem is that the RewriteOOB pass was finding checks on
constant NULL pointers and attempting to replace constant NULL pointers in
other functions with the return value of the run-time check.  This created
a use not dominated by its definition (which the LLVM verifier would choke on
if clang ran it), and so the LLVM code generator created invalid code.

This fix does two things:

1) It prevents the RewriteOOB pass from rewriting NULL pointers (since the run-
time should not be rewriting them anyway).

2) It ensures that it only modifies uses in same function as the run-time check.
I believe DominatorTree::dominates() used to handle this for us until the
definition of "dominates" changed.



git-svn-id: http://llvm.org/svn/llvm-project/safecode/branches/release_32@169416 91177308-0d34-0410-b5e6-96231b3b80d8
Disabled the export features in SAFECode clang.  This fixes the linking errors
on Ubuntu (PR#14509).


git-svn-id: http://llvm.org/svn/llvm-project/safecode/branches/release_32@169450 91177308-0d34-0410-b5e6-96231b3b80d8
Added the --enable-lto-tests configuration flag, along with associated
makefile changes to force use of libLTO when running the benchmarks.

With these changes, the olden benchmarks run with (or without) 
libLTO, but we have problems with SPEC 2000 and 2006



git-svn-id: http://llvm.org/svn/llvm-project/safecode/branches/release_32@169590 91177308-0d34-0410-b5e6-96231b3b80d8
Correct the libLTO install directions for Mac OS X.


git-svn-id: http://llvm.org/svn/llvm-project/safecode/branches/release_32@169911 91177308-0d34-0410-b5e6-96231b3b80d8
Fixed PR#14586 (http://llvm.org/bugs/show_bug.cgi?id=14586).
Defined dummy versions of the common infrastructure run-time functions to
appears the Mac OS X run-time linker when using libLTO.


git-svn-id: http://llvm.org/svn/llvm-project/safecode/branches/release_32@169989 91177308-0d34-0410-b5e6-96231b3b80d8
Added information on the debug versions of the SAFECode run-time checks.


git-svn-id: http://llvm.org/svn/llvm-project/safecode/branches/release_32@169991 91177308-0d34-0410-b5e6-96231b3b80d8
Fix some code to make Baggy Bounds Checking compile and enable it in the Makefile

git-svn-id: http://llvm.org/svn/llvm-project/safecode/branches/release_32@170285 91177308-0d34-0410-b5e6-96231b3b80d8
This is a start for fixing PR#15072: http://llvm.org/bugs/show_bug.cgi?id=15072
This changes replaces some global variables with functions that return a
reference to a static local variable.  This apparently forces the C++
compiler to ensure that the variable is initialized before it is used; globals
have their constructor called in any order, so it's possible for a rewrite
pointer operation to occur before the global variable constructor is called.


git-svn-id: http://llvm.org/svn/llvm-project/safecode/branches/release_32@173699 91177308-0d34-0410-b5e6-96231b3b80d8
More fixes for PR#15072: http://llvm.org/bugs/show_bug.cgi?id=15072.


git-svn-id: http://llvm.org/svn/llvm-project/safecode/branches/release_32@173704 91177308-0d34-0410-b5e6-96231b3b80d8