]> granicus.if.org Git - clang/log
clang
16 years agohoist a bunch of casting.
Chris Lattner [Sun, 16 Mar 2008 01:16:52 +0000 (01:16 +0000)]
hoist a bunch of casting.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48409 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd create methods for ObjCIvarDecl and ObjCInterfaceDecl
Chris Lattner [Sun, 16 Mar 2008 01:15:50 +0000 (01:15 +0000)]
Add create methods for ObjCIvarDecl and ObjCInterfaceDecl

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48408 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoMake the parameter count of ObjCMethodDecl unsigned, you
Chris Lattner [Sun, 16 Mar 2008 01:07:14 +0000 (01:07 +0000)]
Make the parameter count of ObjCMethodDecl unsigned, you
can't have negative arguments.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48407 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoremove some dead arguments to ObjCMethodDecl.
Chris Lattner [Sun, 16 Mar 2008 00:58:16 +0000 (00:58 +0000)]
remove some dead arguments to ObjCMethodDecl.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48406 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoGive ObjCMethodDecl a Create method.
Chris Lattner [Sun, 16 Mar 2008 00:49:28 +0000 (00:49 +0000)]
Give ObjCMethodDecl a Create method.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48405 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoSplit objc decl implementation out into DeclObjC.cpp
Chris Lattner [Sun, 16 Mar 2008 00:19:01 +0000 (00:19 +0000)]
Split objc decl implementation out into DeclObjC.cpp

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48404 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoswitch the rest of the C decl classes to do their
Chris Lattner [Sun, 16 Mar 2008 00:16:02 +0000 (00:16 +0000)]
switch the rest of the C decl classes to do their
allocation through ASTContext.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48403 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoMake a major restructuring of the clang tree: introduce a top-level
Chris Lattner [Sat, 15 Mar 2008 23:59:48 +0000 (23:59 +0000)]
Make a major restructuring of the clang tree: introduce a top-level
lib dir and move all the libraries into it.  This follows the main
llvm tree, and allows the libraries to be built in parallel.  The
top level now enforces that all the libs are built before Driver,
but we don't care what order the libs are built in.  This speeds
up parallel builds, particularly incremental ones.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48402 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoMake a ctor protected
Chris Lattner [Sat, 15 Mar 2008 23:04:32 +0000 (23:04 +0000)]
Make a ctor protected

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48401 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFixed 80 col. violations.
Ted Kremenek [Sat, 15 Mar 2008 22:11:54 +0000 (22:11 +0000)]
Fixed 80 col. violations.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48400 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoDisable creation of "ContentsOf" symbols. It was fundamentally broken on many
Ted Kremenek [Sat, 15 Mar 2008 22:07:05 +0000 (22:07 +0000)]
Disable creation of "ContentsOf" symbols. It was fundamentally broken on many
levels; eventually we will need a plug-in model (similar to GRTransferFuncs) to
represent symbolic memory.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48399 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agomove the ASTContext argument to be first in the argument list of
Chris Lattner [Sat, 15 Mar 2008 21:32:50 +0000 (21:32 +0000)]
move the ASTContext argument to be first in the argument list of
all Create methods.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48398 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoSwitch over functiondecl. This makes it obvious that the ASTContext
Chris Lattner [Sat, 15 Mar 2008 21:24:04 +0000 (21:24 +0000)]
Switch over functiondecl.  This makes it obvious that the ASTContext
argument to Create should be first, not last.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48397 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoswitch the VarDecl allocation model to go through ASTContext.
Chris Lattner [Sat, 15 Mar 2008 21:10:16 +0000 (21:10 +0000)]
switch the VarDecl allocation model to go through ASTContext.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48396 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoimplement a bit of feedback: print dots
Gabor Greif [Sat, 15 Mar 2008 08:11:35 +0000 (08:11 +0000)]
implement a bit of feedback: print dots

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48394 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdded initialization to ErrorDiag to silence gcc's warning of the variable
Ted Kremenek [Sat, 15 Mar 2008 07:58:36 +0000 (07:58 +0000)]
Added initialization to ErrorDiag to silence gcc's warning of the variable
potentially being used uninitialized (which it cannot be).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48393 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoSmall bug fix in CFG construction: the active block for LabelStmts comes
Ted Kremenek [Sat, 15 Mar 2008 07:45:02 +0000 (07:45 +0000)]
Small bug fix in CFG construction: the active block for LabelStmts comes
from "Block", not the CFGBlock* returned from visiting its subexpression.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48392 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFirst draft of a parallelized test methodology. Improvements soon.
Gabor Greif [Sat, 15 Mar 2008 07:26:41 +0000 (07:26 +0000)]
First draft of a parallelized test methodology. Improvements soon.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48391 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agostart switching decls over to using an allocator controlled by ASTContext.
Chris Lattner [Sat, 15 Mar 2008 06:12:44 +0000 (06:12 +0000)]
start switching decls over to using an allocator controlled by ASTContext.
Right now only some ctors are switched over.  I need to switch them all
over so I can change the dtor over.

This lets us experiment with region allocation and other things in the
future.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48390 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agovarious minor cleanups.
Chris Lattner [Sat, 15 Mar 2008 05:43:15 +0000 (05:43 +0000)]
various minor cleanups.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48389 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoHandle StmtExprs whose last contained statement is not an expression.
Ted Kremenek [Sat, 15 Mar 2008 03:27:30 +0000 (03:27 +0000)]
Handle StmtExprs whose last contained statement is not an expression.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48388 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoCompute alignment in bytes, not bits.
Ted Kremenek [Sat, 15 Mar 2008 03:13:55 +0000 (03:13 +0000)]
Compute alignment in bytes, not bits.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48387 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoImplement transfer function logic for alignof operator (types).
Ted Kremenek [Sat, 15 Mar 2008 03:13:20 +0000 (03:13 +0000)]
Implement transfer function logic for alignof operator (types).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48386 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdded transfer function support in GRExprEngine for __extension__.
Ted Kremenek [Sat, 15 Mar 2008 03:05:30 +0000 (03:05 +0000)]
Added transfer function support in GRExprEngine for __extension__.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48385 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoLink against the correct ObjC string class (__CFConstantStringClassReference) and...
Steve Naroff [Sat, 15 Mar 2008 01:36:04 +0000 (01:36 +0000)]
Link against the correct ObjC string class (__CFConstantStringClassReference) and fix length computation (removing a FIXME).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48384 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoRemove ObjC rewriter dependency on GCC's __builtin___CFStringMakeConstantString.
Steve Naroff [Sat, 15 Mar 2008 00:55:56 +0000 (00:55 +0000)]
Remove ObjC rewriter dependency on GCC's __builtin___CFStringMakeConstantString.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48383 91177308-0d34-0410-b5e6-96231b3b80d8

16 years ago"panic" has 5 letters, not 4. Bug pointed out by Nuno Lopes!
Ted Kremenek [Fri, 14 Mar 2008 23:25:49 +0000 (23:25 +0000)]
"panic" has 5 letters, not 4.  Bug pointed out by Nuno Lopes!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48377 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoHack to hardwire in some panic functions that are not marked noreturn.
Ted Kremenek [Fri, 14 Mar 2008 21:58:42 +0000 (21:58 +0000)]
Hack to hardwire in some panic functions that are not marked noreturn.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48374 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoEmit warnings for undefined control-flow.
Ted Kremenek [Fri, 14 Mar 2008 18:14:50 +0000 (18:14 +0000)]
Emit warnings for undefined control-flow.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48368 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoCorrectly error on arrays with automatic storage full of objects with
Nate Begeman [Fri, 14 Mar 2008 18:07:10 +0000 (18:07 +0000)]
Correctly error on arrays with automatic storage full of objects with
non-default address space, and fix comment.
Add a test for this.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48366 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoPath-sensitive analyses no longer take a FunctionDecl, but any Decl representing
Ted Kremenek [Fri, 14 Mar 2008 17:31:00 +0000 (17:31 +0000)]
Path-sensitive analyses no longer take a FunctionDecl, but any Decl representing
a block of "code".

Patched various ASTConsumers (such as ASTDumper) to have more support for
processing ObjCMethodDecl. CFGVisitor now builds CFGs for ObjCMethodDecls.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48363 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoadd initial support for generating an llvm.globalctors list. Patch by David Chisnall
Chris Lattner [Fri, 14 Mar 2008 17:18:18 +0000 (17:18 +0000)]
add initial support for generating an llvm.globalctors list.  Patch by David Chisnall

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48362 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoOnly compute targetinfo once and don't leak it. Patch by Sam Bishop!
Chris Lattner [Fri, 14 Mar 2008 06:12:05 +0000 (06:12 +0000)]
Only compute targetinfo once and don't leak it.  Patch by Sam Bishop!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48358 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoMake the preprocessor own its PPCallbacks, fixing a memory leak.
Chris Lattner [Fri, 14 Mar 2008 06:07:05 +0000 (06:07 +0000)]
Make the preprocessor own its PPCallbacks, fixing a memory leak.
Patch by Sam Bishop!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48357 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoISO/IEC TR 18037
Nate Begeman [Fri, 14 Mar 2008 00:22:18 +0000 (00:22 +0000)]
ISO/IEC TR 18037
An address space name cannot be used to qualify an object that has automatic
storage duration.  Still not catching ASQual'd allocas of array type, just
scalars at the moment.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48350 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix comment
Nate Begeman [Thu, 13 Mar 2008 23:56:36 +0000 (23:56 +0000)]
Fix comment

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48347 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoThe LiveVariables analysis no longer requires a FunctionDecl&; this allows it
Ted Kremenek [Thu, 13 Mar 2008 16:55:07 +0000 (16:55 +0000)]
The LiveVariables analysis no longer requires a FunctionDecl&; this allows it
to be run on other declarations of blocks of code (e.g., Objective-C methods.)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48339 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agohandle __extension__ properly at block scope.
Chris Lattner [Thu, 13 Mar 2008 06:32:11 +0000 (06:32 +0000)]
handle __extension__ properly at block scope.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48332 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoinstead of passing in null end location info, pass in the same as start.
Chris Lattner [Thu, 13 Mar 2008 06:29:54 +0000 (06:29 +0000)]
instead of passing in null end location info, pass in the same as start.
This still isn't right, but is slightly nicer.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48331 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoimprove DeclStmt to be able to store SourceRange info correctly.
Chris Lattner [Thu, 13 Mar 2008 06:29:04 +0000 (06:29 +0000)]
improve DeclStmt to be able to store SourceRange info correctly.
Set the start of DeclStmt range.  Right now the end is meaningless
though.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48330 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd note about asm constraints.
Anders Carlsson [Thu, 13 Mar 2008 03:45:48 +0000 (03:45 +0000)]
Add note about asm constraints.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48324 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdded bandaid support in CFG construction for ObjCForEachStmt and ObjCAtTryStmt:
Ted Kremenek [Thu, 13 Mar 2008 03:04:22 +0000 (03:04 +0000)]
Added bandaid support in CFG construction for ObjCForEachStmt and ObjCAtTryStmt:
we gracefully back out and return NULL for the CFG, allowing clients to skip
analyzing functions with these CFGs. We will add support later.

Modified base ASTConsumer "CFGVisitor" to detect when a CFG is not constructed
and to emit a warning.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48322 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoTwo fixes to RewriteTest::RewriteObjCIvarRefExpr():
Steve Naroff [Wed, 12 Mar 2008 23:15:19 +0000 (23:15 +0000)]
Two fixes to RewriteTest::RewriteObjCIvarRefExpr():
- For explicit ivar refers, make sure the cast is propagated to the AST.
- Don't free the base (since it is still in use).
This fixes the recent regression to test/Rewriter/objc-ivar-receiver-1.m.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48309 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoChanged CallRetValSymbol to SymbolConjured to allow "conjured" symbols to be created...
Ted Kremenek [Wed, 12 Mar 2008 21:45:47 +0000 (21:45 +0000)]
Changed CallRetValSymbol to SymbolConjured to allow "conjured" symbols to be created for any expression, not just CallExprs.
Added experimental support for conjuring symbols during assingments where the RHS is "unknown".  This allows more value tracking for path-sensitivity.
Fixed bug in "assumption" logic when processing symbolic constraints; we would improperly mark constraints we didn't support as infeasible.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48306 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoMinor aesthetic improvement (after I reviewed my last commit).
Steve Naroff [Wed, 12 Mar 2008 21:22:52 +0000 (21:22 +0000)]
Minor aesthetic improvement (after I reviewed my last commit).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48304 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAvoid using the "unnamed struct field" extension (enabled with -fms-extensions)....
Steve Naroff [Wed, 12 Mar 2008 21:09:20 +0000 (21:09 +0000)]
Avoid using the "unnamed struct field" extension (enabled with -fms-extensions). This feature/extension silently does the wrong thing in g++. As far as I can tell, g++ simply throws the field away entirely (note that it works fine with gcc). Since I am now always casting the object (for other reasons), accessing protected/public fields simply requires the cast refer to the defining class. This solution is simpler all around (thanks to Chris for suggesting it).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48302 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdded generation of symbolic values for the return values of functions that have
Ted Kremenek [Wed, 12 Mar 2008 21:06:49 +0000 (21:06 +0000)]
Added generation of symbolic values for the return values of functions that have
no summaries (useful for false-path pruning).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48301 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoIn GRSimpleVals, added the generation of symbolic values for the return values
Ted Kremenek [Wed, 12 Mar 2008 21:04:07 +0000 (21:04 +0000)]
In GRSimpleVals, added the generation of symbolic values for the return values
of function calls. This is useful in pruning paths.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48299 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoUpdate to reflect changes in parameter attribute api.
Chris Lattner [Wed, 12 Mar 2008 17:46:07 +0000 (17:46 +0000)]
Update to reflect changes in parameter attribute api.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48290 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoUse the "used" attribute. Without it, g++ removes all the meta-data:-( This doesn...
Steve Naroff [Wed, 12 Mar 2008 17:18:30 +0000 (17:18 +0000)]
Use the "used" attribute. Without it, g++ removes all the meta-data:-( This doesn't happen when compiling straight C code.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48287 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoImproved ExplodedGraph::Trim to only show nodes reachable from a reverse BFS
Ted Kremenek [Wed, 12 Mar 2008 17:18:20 +0000 (17:18 +0000)]
Improved ExplodedGraph::Trim to only show nodes reachable from a reverse BFS
from the sources, and to try and generate only a single path from sources
to roots.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48286 91177308-0d34-0410-b5e6-96231b3b80d8

16 years ago-Add missing visitor for ObjCIvarRefExpr.
Steve Naroff [Wed, 12 Mar 2008 13:19:12 +0000 (13:19 +0000)]
-Add missing visitor for ObjCIvarRefExpr.
-Wrap objc runtime calls with "extern "C"" (for now).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48284 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoSince the rewriter now outputs C++, it no longer makes sense to pipe the output to...
Steve Naroff [Wed, 12 Mar 2008 02:07:40 +0000 (02:07 +0000)]
Since the rewriter now outputs C++, it no longer makes sense to pipe the output to clang.
This should "fix" all but one of the test failure.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48275 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFixed regression in SymbolManager introduced in r48272.
Ted Kremenek [Wed, 12 Mar 2008 02:00:37 +0000 (02:00 +0000)]
Fixed regression in SymbolManager introduced in r48272.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48273 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoPrototype (pre-alpha) implementation of CFRef checker.
Ted Kremenek [Wed, 12 Mar 2008 01:21:45 +0000 (01:21 +0000)]
Prototype (pre-alpha) implementation of CFRef checker.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48272 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoRemove more dependencies on C "flexible array member" idiom (when generating meta...
Steve Naroff [Wed, 12 Mar 2008 01:06:30 +0000 (01:06 +0000)]
Remove more dependencies on C "flexible array member" idiom (when generating meta-data).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48271 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoMake ivar rewrite C++ friendly (since C++ forces a unified namespace for typedefs...
Steve Naroff [Wed, 12 Mar 2008 00:25:36 +0000 (00:25 +0000)]
Make ivar rewrite C++ friendly (since C++ forces a unified namespace for typedefs/structures). The previous version of the rewriter generated both a type def and structure def for each class (which doesn't fly in C++).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48266 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdded pretty-printing support for checker-specific state for the CFRefCount checker.
Ted Kremenek [Tue, 11 Mar 2008 19:44:10 +0000 (19:44 +0000)]
Added pretty-printing support for checker-specific state for the CFRefCount checker.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48242 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoExpanded graph-visualization to include optional pretty-printing of checker-specific...
Ted Kremenek [Tue, 11 Mar 2008 19:02:40 +0000 (19:02 +0000)]
Expanded graph-visualization to include optional pretty-printing of checker-specific state.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48238 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoExpanded ValueState pretty-printing to use an optional "CheckerStatePrinter"
Ted Kremenek [Tue, 11 Mar 2008 18:57:24 +0000 (18:57 +0000)]
Expanded ValueState pretty-printing to use an optional "CheckerStatePrinter"
object to pretty-print the component of a state that is specific to a checker.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48237 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoExpanded graph visualization interface to include specifying a range of
Ted Kremenek [Tue, 11 Mar 2008 18:25:33 +0000 (18:25 +0000)]
Expanded graph visualization interface to include specifying a range of
nodes to use a trim sources.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48236 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoMake "super" rewrite for class methods C++ friendly (follow-up from last commit).
Steve Naroff [Tue, 11 Mar 2008 18:14:26 +0000 (18:14 +0000)]
Make "super" rewrite for class methods C++ friendly (follow-up from last commit).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48235 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdded bookkeeping of error nodes.
Ted Kremenek [Tue, 11 Mar 2008 18:14:09 +0000 (18:14 +0000)]
Added bookkeeping of error nodes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48234 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdded main logic for typestate tracking for the CFRetain checker.
Ted Kremenek [Tue, 11 Mar 2008 17:48:22 +0000 (17:48 +0000)]
Added main logic for typestate tracking for the CFRetain checker.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48231 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoMake "super" rewrite C++ friendly (since it doesn't support Compound Literals).
Steve Naroff [Tue, 11 Mar 2008 17:37:02 +0000 (17:37 +0000)]
Make "super" rewrite C++ friendly (since it doesn't support Compound Literals).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48230 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdded main skeleton for CFRetain transfer function logic.
Ted Kremenek [Tue, 11 Mar 2008 06:39:11 +0000 (06:39 +0000)]
Added main skeleton for CFRetain transfer function logic.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48214 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoGenerate meta-data in a C++ compatible way (remove 2 dependencies on C "flexible...
Steve Naroff [Tue, 11 Mar 2008 00:12:29 +0000 (00:12 +0000)]
Generate meta-data in a C++ compatible way (remove 2 dependencies on C "flexible array member" idiom and perform some extra casts).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48202 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoMissed a couple "_IMPL" suffixes.
Steve Naroff [Mon, 10 Mar 2008 23:33:22 +0000 (23:33 +0000)]
Missed a couple "_IMPL" suffixes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48191 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix dangling pointer and give the implementation struct for a class a unique name.
Steve Naroff [Mon, 10 Mar 2008 23:16:54 +0000 (23:16 +0000)]
Fix dangling pointer and give the implementation struct for a class a unique name.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48190 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd support for the 'N' constraint.
Anders Carlsson [Mon, 10 Mar 2008 22:37:16 +0000 (22:37 +0000)]
Add support for the 'N' constraint.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48185 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoPass LangOptions to RewriteTest().
Steve Naroff [Mon, 10 Mar 2008 20:43:59 +0000 (20:43 +0000)]
Pass LangOptions to RewriteTest().

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48172 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agorewriter tests are darwin specific, don't run them on other platforms.
Chris Lattner [Mon, 10 Mar 2008 19:32:31 +0000 (19:32 +0000)]
rewriter tests are darwin specific, don't run them on other platforms.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48168 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix "error: explicit template specialization cannot have a storage class"
Chris Lattner [Mon, 10 Mar 2008 17:06:40 +0000 (17:06 +0000)]
Fix "error: explicit template specialization cannot have a storage class"
with gcc 4.4, patch by Shantonu Sen!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48155 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd some missing #includes for GCC mainline, patch by Shantonu Sen!
Chris Lattner [Mon, 10 Mar 2008 17:04:53 +0000 (17:04 +0000)]
Add some missing #includes for GCC mainline, patch by Shantonu Sen!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48153 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd transfer function support for pointer arithmetic where the
Ted Kremenek [Mon, 10 Mar 2008 15:17:11 +0000 (15:17 +0000)]
Add transfer function support for pointer arithmetic where the
increment/decrement operand is on the left side.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48144 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoadd comments about some simple optimizations that may become
Chris Lattner [Mon, 10 Mar 2008 06:20:22 +0000 (06:20 +0000)]
add comments about some simple optimizations that may become
more important if this api gets wider use.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48131 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoimplement simple support for arbitrary token lookahead. Change the
Chris Lattner [Mon, 10 Mar 2008 06:06:04 +0000 (06:06 +0000)]
implement simple support for arbitrary token lookahead.  Change the
objc @try parser to use it, fixing a FIXME.  Update the
objc-try-catch-1.m file to pass now that we get more reasonable
errors.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48129 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoMore edge-case handling with using liveness information to prune dead state values.
Ted Kremenek [Mon, 10 Mar 2008 04:45:00 +0000 (04:45 +0000)]
More edge-case handling with using liveness information to prune dead state values.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48127 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoMore cleanups with using the liveness analysis to removed dead symbols and
Ted Kremenek [Mon, 10 Mar 2008 04:11:42 +0000 (04:11 +0000)]
More cleanups with using the liveness analysis to removed dead symbols and
variables from the symbolic state. Now we keep a mapping from the predecessor
node of a statement and its cleaned state, and interpose an accessor
"GetState()" to return the cleaned state when the node is the predecessor node,
and the real state otherwise. This obviates problem of ever accidentally
cleaning the state more than once (thus blowing away new bindings by mistake).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48124 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoWhen processing the transfer function for a statement, evaluate
Ted Kremenek [Sun, 9 Mar 2008 18:28:41 +0000 (18:28 +0000)]
When processing the transfer function for a statement, evaluate
RemoveDeadBindings early because (1) it will always be called and (2) we can
dispatch to a plug-in transfer function that can evaluate the effect of dead
symbols (not yet added).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48114 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoRefactored guards for "GRExprEngine::RemoveDeadBindings" directly into the
Ted Kremenek [Sun, 9 Mar 2008 18:05:48 +0000 (18:05 +0000)]
Refactored guards for "GRExprEngine::RemoveDeadBindings" directly into the
method. This paves the way for other alterations to RemoveDeadBindings that are
transparent to its callers.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48113 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoBug fix in the transfer function for compound assignments: if the value
Ted Kremenek [Sun, 9 Mar 2008 08:12:37 +0000 (08:12 +0000)]
Bug fix in the transfer function for compound assignments: if the value
of the LHS expressions is Unknown, the value of the entire expression
does not evaluate to the RHS (as is the case with normal assignments).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48102 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoHandle the 'n' constraint
Anders Carlsson [Sun, 9 Mar 2008 06:02:02 +0000 (06:02 +0000)]
Handle the 'n' constraint

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48091 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFix a ted-o
Chris Lattner [Sun, 9 Mar 2008 05:25:01 +0000 (05:25 +0000)]
Fix a ted-o

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48089 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoFixed crash where SetBlkExpr would attempt to query the liveness data when
Ted Kremenek [Sun, 9 Mar 2008 05:15:50 +0000 (05:15 +0000)]
Fixed crash where SetBlkExpr would attempt to query the liveness data when
we weren't processing a statement within a basic block.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48087 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoimprove comment.
Chris Lattner [Sun, 9 Mar 2008 04:49:35 +0000 (04:49 +0000)]
improve comment.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48083 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agomove PP::LookupFile from PPLexerChange -> PPDirectives.cpp
Chris Lattner [Sun, 9 Mar 2008 04:17:44 +0000 (04:17 +0000)]
move PP::LookupFile from PPLexerChange -> PPDirectives.cpp

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48082 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoAdd PPLexerChange.cpp to the project.
Chris Lattner [Sun, 9 Mar 2008 04:14:55 +0000 (04:14 +0000)]
Add PPLexerChange.cpp to the project.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48081 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoMove a bunch more code out of Preprocessor.cpp into PPLexerChange.cpp
Chris Lattner [Sun, 9 Mar 2008 04:10:46 +0000 (04:10 +0000)]
Move a bunch more code out of Preprocessor.cpp into PPLexerChange.cpp

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48080 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoBug fix: Don't call RemoveDeadBindings more than once (can kill newly generated value...
Ted Kremenek [Sun, 9 Mar 2008 03:30:59 +0000 (03:30 +0000)]
Bug fix: Don't call RemoveDeadBindings more than once (can kill newly generated values to Block-Level Expressions).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48079 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agosplit macro expansion support out of Preprocessor.cpp into PPMacroExpansion.cpp
Chris Lattner [Sun, 9 Mar 2008 03:13:06 +0000 (03:13 +0000)]
split macro expansion support out of Preprocessor.cpp into PPMacroExpansion.cpp
Rename Directives.cpp -> PPDirectives.cpp since it implements part of the
Preprocessor class.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48078 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoPropagate calling convention information to function declarations and CallInst
Nate Begeman [Sun, 9 Mar 2008 03:09:36 +0000 (03:09 +0000)]
Propagate calling convention information to function declarations and CallInst
instructions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48077 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agorename HandleEndOfMacro -> HandleEndOfTokenLexer
Chris Lattner [Sun, 9 Mar 2008 03:04:16 +0000 (03:04 +0000)]
rename HandleEndOfMacro -> HandleEndOfTokenLexer

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48076 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agosplit the MacroArgs class out of TokenLexer.cpp/h into
Chris Lattner [Sun, 9 Mar 2008 02:55:12 +0000 (02:55 +0000)]
split the MacroArgs class out of TokenLexer.cpp/h into
MacroArgs.cpp/h

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48075 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoupdate documentation
Chris Lattner [Sun, 9 Mar 2008 02:27:26 +0000 (02:27 +0000)]
update documentation

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48074 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agorename some MacroExpander-related ivars to TokenLexer.
Chris Lattner [Sun, 9 Mar 2008 02:26:03 +0000 (02:26 +0000)]
rename some MacroExpander-related ivars to TokenLexer.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48073 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agoRename MacroExpander.cpp/h -> TokenLexer.cpp/h
Chris Lattner [Sun, 9 Mar 2008 02:22:57 +0000 (02:22 +0000)]
Rename MacroExpander.cpp/h -> TokenLexer.cpp/h

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48072 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agorename the MacroExpander class to TokenLexer. It handles both
Chris Lattner [Sun, 9 Mar 2008 02:18:51 +0000 (02:18 +0000)]
rename the MacroExpander class to TokenLexer.  It handles both
token streams and macro lexing, so a more generic name is useful.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48071 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agorename MacroTokens -> Tokens. When this is a token stream, there is no macro
Chris Lattner [Sun, 9 Mar 2008 02:07:49 +0000 (02:07 +0000)]
rename MacroTokens -> Tokens.  When this is a token stream, there is no macro
involved.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48070 91177308-0d34-0410-b5e6-96231b3b80d8

16 years agofix clang xcode build
Nate Begeman [Sun, 9 Mar 2008 01:55:39 +0000 (01:55 +0000)]
fix clang xcode build

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@48069 91177308-0d34-0410-b5e6-96231b3b80d8