| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
| |
assuming relationships, convert the integers to the same type as the symbol, at least for now.
llvm-svn: 106458
|
| |
|
|
| |
llvm-svn: 106456
|
| |
|
|
| |
llvm-svn: 106403
|
| |
|
|
|
|
| |
as "a*0" and "a+0". This is not very powerful, but does make the analyzer look a little smarter than it actually is.
llvm-svn: 106402
|
| |
|
|
|
|
| |
pointers) causes a divide-by-zero error. Simple fix: check if the pointee type size is 0 and bail out early if it is.
llvm-svn: 106401
|
| |
|
|
|
|
| |
const2
llvm-svn: 106339
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to use them instead of SourceRange. CharSourceRange is just a SourceRange
plus a bool that indicates whether the range has the end character resolved
or whether the end location is the start of the end token. While most of
the compiler wants to think of ranges that have ends that are the start of
the end token, the printf diagnostic stuff wants to highlight ranges within
tokens.
This is transparent to the diagnostic stuff. To start taking advantage of
the new capabilities, you can do something like this:
Diag(..) << CharSourceRange::getCharRange(Begin,End)
llvm-svn: 106338
|
| |
|
|
| |
llvm-svn: 106274
|
| |
|
|
|
|
|
|
| |
reference stack memory.
Also refactor the diagnostics so that we print out the kind of stack memory returned.
llvm-svn: 106210
|
| |
|
|
| |
llvm-svn: 106188
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
global variables
by inspecting the Store bindings instead of iterating over all the global variables
in a translation unit. By looking at the store directly, we avoid cases where we cannot
directly load from the global variable, such as an array (which can result in an assertion failure)
and it also catches cases where we store stack addresses to non-scalar globals.
Also, but not iterating over all the globals in the translation unit, we maintain cache
locality, and the complexity of the checker becomes restricted to the complexity of the
analyzed function, and doesn't scale with the size of the translation unit.
This fixes PR 7383.
llvm-svn: 106184
|
| |
|
|
|
|
|
|
|
|
| |
returns the base region in
the binding key instead of the region + offset. It isn't clear if this is the best semantics, but most
clients will likely only care about simple bindings, or bindings to a particular variable. We can
refine later if necessary.
llvm-svn: 106183
|
| |
|
|
|
|
| |
BindingsHandler returns false.
llvm-svn: 106182
|
| |
|
|
| |
llvm-svn: 106087
|
| |
|
|
| |
llvm-svn: 106086
|
| |
|
|
|
|
| |
unknown.
llvm-svn: 106085
|
| |
|
|
| |
llvm-svn: 106084
|
| |
|
|
|
|
| |
arguments are not undefined.
llvm-svn: 106083
|
| |
|
|
|
|
| |
This is the start.
llvm-svn: 106082
|
| |
|
|
|
|
|
|
|
|
| |
in C++ that involve both integral and enumeration types. Convert all
of the callers to Type::isIntegralType() that are meant to work with
both integral and enumeration types over to
Type::isIntegralOrEnumerationType(), to prepare to eliminate
enumeration types as integral types.
llvm-svn: 106071
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
library configuration
Currently, all AST consumers are located in the Frontend library,
meaning that in a shared library configuration, Frontend has a
dependency on Rewrite, Checker and CodeGen. This is suboptimal for
clients which only wish to make use of the frontend. CodeGen in
particular introduces a large number of unwanted dependencies.
This patch breaks the dependency by moving all AST consumers with
dependencies on Rewrite, Checker and/or CodeGen to their respective
libraries. The patch therefore introduces dependencies in the other
direction (i.e. from Rewrite, Checker and CodeGen to Frontend).
After applying this patch, Clang builds correctly using CMake and
shared libraries ("cmake -DBUILD_SHARED_LIBS=ON").
N.B. This patch includes file renames which are indicated in the
patch body.
Changes in this revision of the patch:
- Fixed some copy-paste mistakes in the header files
- Modified certain aspects of the coding to comply with the LLVM
Coding Standards
llvm-svn: 106010
|
| |
|
|
| |
llvm-svn: 105708
|
| |
|
|
| |
llvm-svn: 105687
|
| |
|
|
|
|
| |
improves generality. Thanks Ted.
llvm-svn: 105686
|
| |
|
|
| |
llvm-svn: 105657
|
| |
|
|
|
|
| |
scattered throughout the project Makefiles.
llvm-svn: 105638
|
| |
|
|
|
|
| |
- This eliminates most dependencies on how Clang is installed relative to LLVM.
llvm-svn: 105637
|
| |
|
|
|
|
| |
the function call is left where the local variable is declared.
llvm-svn: 105602
|
| |
|
|
|
|
| |
checking the symbol type and memory space.
llvm-svn: 105547
|
| |
|
|
| |
llvm-svn: 105382
|
| |
|
|
| |
llvm-svn: 105265
|
| |
|
|
|
|
| |
modification.
llvm-svn: 105264
|
| |
|
|
|
|
|
|
|
| |
RegionStoreManager::RetrieveElement() that handles indexing into a larger scalar
object to only consult the direct binding of a super region if it is a scalar.
This isn't perfect yet, and a big FIXME is attached to the code. This causes
the test case for PR 7218 now to pass.
llvm-svn: 105195
|
| |
|
|
|
|
| |
'IsClangAttr' to match prevailing style in this file. Patch by Jon Mulder!
llvm-svn: 105170
|
| |
|
|
|
|
|
|
| |
The macros required for DeclNodes use have changed to match the use of
StmtNodes. The FooFirst enumerator constants have been named firstFoo
to match usage elsewhere.
llvm-svn: 105165
|
| |
|
|
| |
llvm-svn: 105099
|
| |
|
|
| |
llvm-svn: 105097
|
| |
|
|
|
|
|
|
| |
lookup semantics
in the symbol store. We may wish to push this down into the StoreManager itself.
llvm-svn: 104788
|
| |
|
|
| |
llvm-svn: 104669
|
| |
|
|
|
|
| |
This requires creating new persistent states due to the nature of GDM.
llvm-svn: 104668
|
| |
|
|
|
|
|
| |
whether the size of the symbolic region is a multiple of the size of T.
Fixes PR6123 and PR7217.
llvm-svn: 104584
|
| |
|
|
|
|
|
|
| |
represented
in the ASTs. Fixes <rdar://problem/8015556>.
llvm-svn: 104389
|
| |
|
|
|
|
| |
in the Objective-C memory checker.
llvm-svn: 104388
|
| |
|
|
| |
llvm-svn: 104135
|
| |
|
|
|
|
| |
number of times the analyzer will go through a loop.
llvm-svn: 104007
|
| |
|
|
|
|
| |
out. The remaining ones are okay.
llvm-svn: 103973
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ObjCObjectType, which is basically just a pair of
one of {primitive-id, primitive-Class, user-defined @class}
with
a list of protocols.
An ObjCObjectPointerType is therefore just a pointer which always points to
one of these types (possibly sugared). ObjCInterfaceType is now just a kind
of ObjCObjectType which happens to not carry any protocols.
Alter a rather large number of use sites to use ObjCObjectType instead of
ObjCInterfaceType. Store an ObjCInterfaceType as a pointer on the decl rather
than hashing them in a FoldingSet. Remove some number of methods that are no
longer used, at least after this patch.
By simplifying ObjCObjectPointerType, we are now able to easily remove and apply
pointers to Objective-C types, which is crucial for a certain kind of ObjC++
metaprogramming common in WebKit.
llvm-svn: 103870
|
| |
|
|
| |
llvm-svn: 103707
|
| |
|
|
| |
llvm-svn: 103517
|
| |
|
|
| |
llvm-svn: 103458
|