- Oct 01, 2007
-
-
Ted Kremenek authored
expressions to IDs. This is used by various dataflow analyses, but is also useful for anyone querying a CFG to determine where an expression is evaluated. llvm-svn: 42495
-
Steve Naroff authored
Move ObjC decls to DeclObjC.h, a new AST header. Update clients and add to project file. llvm-svn: 42494
-
Fariborz Jahanian authored
with those in their base class. In response to clattner's September 30, 2007 12:54:49 AM PDT email. llvm-svn: 42491
-
Fariborz Jahanian authored
September 30, 2007 12:36:58 AM PDT and September 30, 2007 12:50:05 AM PDT llvm-svn: 42490
-
Ted Kremenek authored
as a member function. This function is no longer needed within the CFG class, and logically belongs to the Stmt class as a predicate for a Stmt instance. llvm-svn: 42489
-
- Sep 30, 2007
-
-
Fariborz Jahanian authored
llvm-svn: 42485
-
Chris Lattner authored
method to StringMapEntry. Steve, please use this to remove the strlen calls in selector processing. llvm-svn: 42481
-
Chris Lattner authored
llvm-svn: 42479
-
Chris Lattner authored
llvm-svn: 42478
-
Chris Lattner authored
llvm-svn: 42477
-
- Sep 29, 2007
-
-
Fariborz Jahanian authored
September 28, 2007 4:39:24 PM PDT Please let me know if I missed anything. llvm-svn: 42473
-
Fariborz Jahanian authored
Avoiding passing a Sema object to these utility functions. llvm-svn: 42472
-
Fariborz Jahanian authored
previous patch to do the same for class name lookup using a hash table. llvm-svn: 42471
-
Fariborz Jahanian authored
There is still an issue if doing ScopedLookup is an overkill and we can just access the decl using the identifier. llvm-svn: 42463
-
Steve Naroff authored
Add some comments to MultiKeywordSelector, make all methods private, add a friend, move some methods around. llvm-svn: 42456
-
Ted Kremenek authored
encapsulate a program point within a CFG for use by our path-sensitive dataflow solver. llvm-svn: 42455
-
Steve Naroff authored
Yesterday I discovered that 78% of all selectors in "Cocoa.h" take 0/1 argument. This motivated implementing a devious clattner inspired solution:-) This approach uses a small value "Selector" class to point to an IdentifierInfo for the 0/1 case. For multi-keyword selectors, we instantiate a MultiKeywordSelector object (previously known as SelectorInfo). Now, the incremental cost for selectors is only 24,800 for Cocoa.h! This saves 156,592 bytes, or 86%!! The size reduction is also the result of getting rid of the AST slot, which was not strictly necessary (we will associate a selector with it's method using another table...most likely in Sema). This change was critical to make now, before we have too many clients. I still need to add some comments to the Selector class...will likely add later today/tomorrow. llvm-svn: 42452
-
- Sep 28, 2007
-
-
Devang Patel authored
Dummy block is an empty block with no predecessors. llvm-svn: 42451
-
Ted Kremenek authored
properly kill variables. e.g: (x) = 1; llvm-svn: 42450
-
Ted Kremenek authored
in assignment operations of the form +=, -=, *=, etc. llvm-svn: 42449
-
Ted Kremenek authored
llvm-svn: 42447
-
Ted Kremenek authored
ExprDeclBitVector class for defining dataflow state. llvm-svn: 42446
-
Ted Kremenek authored
DeclBitVector ExprDeclBitVector (which subclasses the former) DeclBitVector is for analyses that just want to track bitvector state for declarations. ExprDeclBitVector is for analyses that want to track bitvector state for both both declarations and CFGBlock-level expressions. llvm-svn: 42445
-
Ted Kremenek authored
traversed by the visitor. llvm-svn: 42438
-
Ted Kremenek authored
tracked by an ExprDeclBitVector analysis. llvm-svn: 42437
-
Fariborz Jahanian authored
protocols. llvm-svn: 42436
-
Ted Kremenek authored
taintness across expressions. Made "smart-culling" of taint propagation (for error reporting) correctly handle conditional expressions and a few other edge cases. llvm-svn: 42421
-
- Sep 27, 2007
-
-
Fariborz Jahanian authored
llvm-svn: 42416
-
Fariborz Jahanian authored
Patch for method implementation. It populates ObjcImplementationDecl object with method implementation declarations . It checks and warns on those methods declared in class interface and not implemented. llvm-svn: 42412
-
Steve Naroff authored
Fix bug in SelectorInfo::getName() - method buffer needs to be passed by reference. llvm-svn: 42411
-
Ted Kremenek authored
values associated with ScopedDecls and CFGBlock-level Exprs. This is the common boilerplate needed by UninitializedValues and LiveVariables. Refactored UninitializedValues to use ExprDeclBitVector. Shortened the string diagnostic for UninitializedValues. llvm-svn: 42408
-
Chris Lattner authored
llvm-svn: 42396
-
Steve Naroff authored
Add SelectorInfo (similar in spirit to IdentifierInfo). The key difference is SelectorInfo is not string-oriented, it is a unique aggregate of IdentifierInfo's (using a folding set). SelectorInfo also has a richer API that simplifies the parser/action interface. 3 noteworthy benefits: #1: It is cleaner. I never "liked" storing keyword selectors (i.e. foo:bar:baz) in the IdentifierTable. #2: It is more space efficient. Since Cocoa keyword selectors can be quite long, this technique is space saving. For Cocoa.h, pulling the keyword selectors out saves ~180k. The cost of the SelectorInfo data is ~100k. Saves ~80k, or 43%. #3: It results in many API simplifications. Here are some highlights: - Removed 3 actions (ActOnKeywordMessage, ActOnUnaryMessage, & one flavor of ObjcBuildMethodDeclaration that was specific to unary messages). - Removed 3 funky structs from DeclSpec.h (ObjcKeywordMessage, ObjcKeywordDecl, and ObjcKeywordInfo). - Removed 2 ivars and 2 constructors from ObjCMessageExpr (fyi, this space savings has not been measured). I am happy with the way it turned out (though it took a bit more hacking than I expected). Given the central role of selectors in ObjC, making sure this is "right" will pay dividends later. Thanks to Chris for talking this through with me and suggesting this approach. llvm-svn: 42395
-
Chris Lattner authored
fixing: VoidMethod.m:14:5: warning: expression result unused [Greeter hello]; ^~~~~~~~~~~~~~~ llvm-svn: 42380
-
- Sep 26, 2007
-
-
Ted Kremenek authored
Added assertion that Block-level statements should not be NULL. llvm-svn: 42376
-
Ted Kremenek authored
BUG 1) CFG failed to build for empty functions, or functions containing only NullStmts or empty compound statements. We now handle such cases, although now we cannot test for CFG construction failure by asserting that the last block constructed is not NULL (since it now may be). BUG 2) CFG construction segfaulted on some cases when walking the AST and not taking into account that some children of a statement may be NULL. llvm-svn: 42370
-
Ted Kremenek authored
using "-parse-ast -verify". Updated all test cases (using a sed script) that invoked -parse-ast-check to now use -parse-ast -verify. Fixed a bug where using "-verify" instead of "-parse-ast-check" would not correctly create the DiagClient needed to accumulate diagnostics. llvm-svn: 42365
-
Ted Kremenek authored
declaration. This is because this option is logically tightly connected to the actions defined in ProgAction. llvm-svn: 42364
-
Ted Kremenek authored
aren't used auto_ptr's anymore. llvm-svn: 42363
-
Ted Kremenek authored
ASTConsumer can also be verified using the diagnostics checker. From the command line, users may activate diagnostic checking using the "-verify" option. For example, "clang -verify -warn-dead-stores" checks if the warnings flagged by the dead store checker match those in the comments. Note that we still have the option "-parse-ast-check" for backwards comptability with existing test cases. This option is now equivalent to "-parse-ast -verify". llvm-svn: 42362
-