- Jul 06, 2009
-
-
Argyrios Kyrtzidis authored
Its purpose is to provide the basic infrastructure for cross-translation-unit analysis like indexing, refactoring, etc. Currently it is very "primitive" and with no type-names support. It can provide functionality like "show me all references of this function from these translation units". llvm-svn: 74802
-
Argyrios Kyrtzidis authored
DeclReferenceMap (similar to ParentMap) is a helper class for mapping Decls to the AST nodes that reference them. A client will initialize it by passing an ASTContext to its constructor and later use it to iterate over the references of a Decl. References are mapped and retrieved using the primary declaration (Decl::getPrimaryDecl()) of a particular Decl. llvm-svn: 74801
-
Argyrios Kyrtzidis authored
When a Decl subclass can have multiple re-declarations in the same declaration context (like FunctionDecl), getPrimaryDecl() will return a particular Decl that all of them will point to as the "primary" declaration. llvm-svn: 74800
-
Argyrios Kyrtzidis authored
llvm-svn: 74799
-
Argyrios Kyrtzidis authored
llvm-svn: 74798
-
Argyrios Kyrtzidis authored
ASTNode is an immutable pair of a Decl and Stmt. If Stmt is not null, Decl should be its immediate parent. llvm-svn: 74797
-
Argyrios Kyrtzidis authored
llvm-svn: 74796
-
- Jul 05, 2009
-
-
Eli Friedman authored
llvm-svn: 74795
-
- Jul 04, 2009
-
-
Zhongxing Xu authored
llvm-svn: 74788
-
Sebastian Redl authored
llvm-svn: 74787
-
Zhongxing Xu authored
llvm-svn: 74786
-
- Jul 03, 2009
-
-
Fariborz Jahanian authored
This fixes the case where the wrong symbol is emitted leading to linking errors when you reference a class before defining it (GNU runtime). Patch by David Chisnall. llvm-svn: 74772
-
Zhongxing Xu authored
llvm-svn: 74762
-
Zhongxing Xu authored
llvm-svn: 74761
-
Ted Kremenek authored
llvm-svn: 74757
-
Eli Friedman authored
to deal with for AST pretty-printing/rewriting. Patch by Abramo Bagnara. llvm-svn: 74752
-
Ted Kremenek authored
llvm-svn: 74751
-
Ted Kremenek authored
BasicStoreManager: Use SymbolManager::canSymbolicate() to determine if a variable can be symbolicated. llvm-svn: 74750
-
rdar://problem/7027684Ted Kremenek authored
block would get hooked up in some cases when processing empty compound statements. llvm-svn: 74743
-
Daniel Dunbar authored
the subprocess module. llvm-svn: 74738
-
Daniel Dunbar authored
llvm-svn: 74737
-
Ted Kremenek authored
ValueManager::getRegionValueSymbolVal() with unguarded calls to ValueManager::getRegionValueSymbolValOrUnknown(). This changes centralizes the decision of what values to symbolicate in SymbolManager rather than having it scatter in RegionStoreManager. llvm-svn: 74730
-
Ted Kremenek authored
structures passed-by-value as function arguments. llvm-svn: 74729
-
- Jul 02, 2009
-
-
Ted Kremenek authored
llvm-svn: 74719
-
Fariborz Jahanian authored
using ASTContxt allocation. llvm-svn: 74717
-
Ted Kremenek authored
directly consulting if a VarDecl is an implicit or actual parameter, a global, etc. llvm-svn: 74716
-
Ted Kremenek authored
This will simplify the logic of StoreManagers that want to specially reason about the values of parameters. llvm-svn: 74715
-
Ted Kremenek authored
llvm-svn: 74709
-
Douglas Gregor authored
declaration in the AST. The new ASTContext::getCommentForDecl function searches for a comment that is attached to the given declaration, and returns that comment, which may be composed of several comment blocks. Comments are always available in an AST. However, to avoid harming performance, we don't actually parse the comments. Rather, we keep the source ranges of all of the comments within a large, sorted vector, then lazily extract comments via a binary search in that vector only when needed (which never occurs in a "normal" compile). Comments are written to a precompiled header/AST file as a blob of source ranges. That blob is only lazily loaded when one requests a comment for a declaration (this never occurs in a "normal" compile). The indexer testbed now supports comment extraction. When the -point-at location points to a declaration with a Doxygen-style comment, the indexer testbed prints the associated comment block(s). See test/Index/comments.c for an example. Some notes: - We don't actually attempt to parse the comment blocks themselves, beyond identifying them as Doxygen comment blocks to associate them with a declaration. - We won't find comment blocks that aren't adjacent to the declaration, because we start our search based on the location of the declaration. - We don't go through the necessary hops to find, for example, whether some redeclaration of a declaration has comments when our current declaration does not. Similarly, we don't attempt to associate a \param Foo marker in a function body comment with the parameter named Foo (although that is certainly possible). - Verification of my "no performance impact" claims is still "to be done". llvm-svn: 74704
-
Douglas Gregor authored
Look through vector types when determining the base type of a type for declarator printing. Bug found via the PCH tester llvm-svn: 74672
-
Fariborz Jahanian authored
Per Doug's comments. Doug please review. llvm-svn: 74666
-
Ted Kremenek authored
actual lifetime to their logical lifetime. llvm-svn: 74665
-
Douglas Gregor authored
llvm-svn: 74664
-
Ted Kremenek authored
a case where RegionStore doesn't create symbolic values for the fields of structs that are passed-by-value. llvm-svn: 74662
-
Ted Kremenek authored
pass misc-ps.m. Currently RegionStore/BasicStore don't do any special reasoning about clang-style vectors, so we should return UnknownVal (in all cases) when accessing their values via an array. llvm-svn: 74660
-
Owen Anderson authored
llvm-svn: 74657
-
Douglas Gregor authored
by distinguishing between substitution that occurs for template argument deduction vs. explicitly-specifiad template arguments. This is used both to improve diagnostics and to make sure we only provide SFINAE in those cases where SFINAE should apply. In addition, deal with the sticky issue where SFINAE only considers substitution of template arguments into the *type* of a function template; we need to issue hard errors beyond this point, as test/SemaTemplate/operator-template.cpp illustrates. llvm-svn: 74651
-
- Jul 01, 2009
-
-
Owen Anderson authored
llvm-svn: 74642
-
Fariborz Jahanian authored
No change in functionality. llvm-svn: 74639
-
Daniel Dunbar authored
- Refactored slightly to make control flow more obvious. llvm-svn: 74637
-