| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
after inlining post-call checking shouldn't be done.
llvm-svn: 103161
|
|
|
|
|
|
|
| |
flag now, and can be used with other analyses. Only turned it on for C++
methods for now.
llvm-svn: 103160
|
|
|
|
| |
llvm-svn: 103077
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Amadini.
This change introduces a new expression node type, OffsetOfExpr, that
describes __builtin_offsetof. Previously, __builtin_offsetof was
implemented using a unary operator whose subexpression involved
various synthesized array-subscript and member-reference expressions,
which was ugly and made it very hard to instantiate as a
template. OffsetOfExpr represents the AST more faithfully, with proper
type source information and a more compact representation.
OffsetOfExpr also has support for dependent __builtin_offsetof
expressions; it can be value-dependent, but will never be
type-dependent (like sizeof or alignof). This commit introduces
template instantiation for __builtin_offsetof as well.
There are two major caveats to this patch:
1) CodeGen cannot handle the case where __builtin_offsetof is not a
constant expression, so it produces an error. So, to avoid
regressing in C, we retain the old UnaryOperator-based
__builtin_offsetof implementation in C while using the shiny new
OffsetOfExpr implementation in C++. The old implementation can go
away once we have proper CodeGen support for this case, which we
expect won't cause much trouble in C++.
2) __builtin_offsetof doesn't work well with non-POD class types,
particularly when the designated field is found within a base
class. I will address this in a subsequent patch.
Fixes PR5880 and a bunch of assertions when building Boost.Python
tests.
llvm-svn: 102542
|
|
|
|
|
|
|
|
| |
thing. Audit all uses of Type::isStructure(), changing those calls to
isStructureOrClassType() as needed (which is alsmost
everywhere). Fixes the remaining failure in Boost.Utility/Swap.
llvm-svn: 102386
|
|
|
|
| |
llvm-svn: 101994
|
|
|
|
| |
llvm-svn: 101981
|
|
|
|
| |
llvm-svn: 101980
|