| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
| |
llvm-svn: 107784
|
| |
|
|
|
|
|
|
| |
in recursive loading and the
declarations are fully initialized.
llvm-svn: 107783
|
| |
|
|
| |
llvm-svn: 107773
|
| |
|
|
| |
llvm-svn: 107772
|
| |
|
|
|
|
|
|
| |
This has 2 (slight) advantages:
-Make explicit at getBody()'s callsite that we expect/handle only CompoundStmt and not CXXTryStmt.
-Better tracking of Decl::getBody()'s callsites.
llvm-svn: 107771
|
| |
|
|
| |
llvm-svn: 107770
|
| |
|
|
| |
llvm-svn: 107769
|
| |
|
|
|
|
|
|
| |
of getBody() when we are just checking the existence of a body, to avoid de-serialization of the body from PCH.
Makes de-serialization of the function body even more "lazier".
llvm-svn: 107768
|
| |
|
|
|
|
| |
the buffer arguments and have a special-case for when the buffer arguments are known to be the same address, or when the size is zero.
llvm-svn: 107761
|
| |
|
|
|
|
| |
arguments...which are allowed if the access length is 0!
llvm-svn: 107759
|
| |
|
|
|
|
| |
rethrow. Fixes rdar://problem/7696603
llvm-svn: 107757
|
| |
|
|
|
|
|
|
| |
people seem to write when they want a deterministic trap.
Suggest instead that they use a volatile pointer or
__builtin_trap.
llvm-svn: 107756
|
| |
|
|
|
|
| |
Fixes rdar://problem/8154689
llvm-svn: 107755
|
| |
|
|
|
|
| |
IdempotentOperationChecker::PreVisitBinaryOperator.
llvm-svn: 107748
|
| |
|
|
|
|
|
| |
making the other switch case unreachable, or sinking the 'continue' into it
doesn't silence this.
llvm-svn: 107745
|
| |
|
|
|
|
| |
consider them for warnings.
llvm-svn: 107741
|
| |
|
|
|
|
|
|
|
|
|
|
| |
emit metadata associating allocas and global values with a Decl*. This feature
is controlled by an option that (intentionally) cannot be enabled on the command
line.
To use this feature, simply set
CodeGenOptions.EmitDeclMetadata = true;
and then interpret the completely underspecified metadata. :)
llvm-svn: 107739
|
| |
|
|
|
|
|
|
| |
SubRegions. Fixes assertion failure
reported in PR 7572.
llvm-svn: 107738
|
| |
|
|
|
|
| |
StaticGlobalSpaceRegion.
llvm-svn: 107731
|
| |
|
|
| |
llvm-svn: 107728
|
| |
|
|
|
|
| |
null-terminated strings and memory blocks. Currently only checks memcpy(), memmove(), and bcopy(), but this is intended to be expanded soon.
llvm-svn: 107722
|
| |
|
|
| |
llvm-svn: 107709
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
(-analyzer-idempotent-operation). Finds idempotent and/or tautological operations in a path sensitive context, flagging operations that have no effect or a predictable effect.
Example:
{
int a = 1;
int b = 5;
int c = b / a; // a is 1 on all paths
}
- New IdempotentOperationChecker class
- Moved recursive Stmt functions in r107675 to IdempotentOperationChecker
- Minor refactoring of SVal to allow checking for any integer
- Added command line option for check
- Added basic test cases
llvm-svn: 107706
|
| |
|
|
|
|
| |
AST during the instantiation. Fixes PR7417!
llvm-svn: 107690
|
| |
|
|
|
|
| |
into IRBuilder.
llvm-svn: 107687
|
| |
|
|
|
|
|
| |
TagDecl subclasses when out-of-line template declaration information
is available, from Peter Collingbourne!
llvm-svn: 107686
|
| |
|
|
|
|
| |
template specialization, from Peter Collingbourne.
llvm-svn: 107682
|
| |
|
|
|
|
|
|
| |
declarations when implicitly declaring the default constructor, copy
constructor, destructor, and copy-assignment operators of a
class. Argiris fixed the underlying problem in r107596.
llvm-svn: 107681
|
| |
|
|
|
|
|
| |
uninitialized (which doesn't seem to be the case), by giving
them arbitrary initial values.
llvm-svn: 107679
|
| |
|
|
|
|
|
|
| |
block before deleting it. Fixes PR7575.
This really just a short-term fix before implementing lazy cleanups.
llvm-svn: 107676
|
| |
|
|
|
|
| |
elements (macros, enum constants, etc).
llvm-svn: 107675
|
| |
|
|
| |
llvm-svn: 107665
|
| |
|
|
| |
llvm-svn: 107664
|
| |
|
|
|
|
| |
still initializing.
llvm-svn: 107663
|
| |
|
|
| |
llvm-svn: 107662
|
| |
|
|
| |
llvm-svn: 107645
|
| |
|
|
|
|
| |
Add an API to get an Entity associated with a name in the global namespace.
llvm-svn: 107642
|
| |
|
|
|
|
| |
as nounwind in -fno-exceptions. Fixes rdar://problem/8090834.
llvm-svn: 107639
|
| |
|
|
|
|
| |
expression equals a certain value, use SValuator::EvalEQ and GRState::Assume to see if it can, must, or must not equal that value.
llvm-svn: 107638
|
| |
|
|
|
|
| |
argument was non-NULL, and we report where the null assumption came from (like AttrNonNullChecker already did).
llvm-svn: 107633
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
self-host. Hopefully these results hold up on different platforms.
I tried to keep the GNU ObjC runtime happy, but it's hard for me to test.
Reimplement how clang generates IR for exceptions. Instead of creating new
invoke destinations which sequentially chain to the previous destination,
push a more semantic representation of *why* we need the cleanup/catch/filter
behavior, then collect that information into a single landing pad upon request.
Also reorganizes how normal cleanups (i.e. cleanups triggered by non-exceptional
control flow) are generated, since it's actually fairly closely tied in with
the former. Remove the need to track which cleanup scope a block is associated
with.
Document a lot of previously poorly-understood (by me, at least) behavior.
The new framework implements the Horrible Hack (tm), which requires every
landing pad to have a catch-all so that inlining will work. Clang no longer
requires the Horrible Hack just to make exceptions flow correctly within
a function, however. The HH is an unfortunate requirement of LLVM's EH IR.
llvm-svn: 107631
|
| |
|
|
| |
llvm-svn: 107630
|
| |
|
|
|
|
|
| |
coerce cases (e.g. {double,int}) which avoids fastisel
bailing out at -O0.
llvm-svn: 107628
|
| |
|
|
|
|
|
|
|
| |
alloca for an argument. Make sure the argument gets the proper
decl alignment, which may be different than the type alignment.
This fixes PR7567
llvm-svn: 107627
|
| |
|
|
| |
llvm-svn: 107626
|
| |
|
|
| |
llvm-svn: 107624
|
| |
|
|
|
|
| |
wasn't handling array padding elements right.
llvm-svn: 107621
|
| |
|
|
|
|
| |
Everyone knows that no bugs are ever possible with bitfields.
llvm-svn: 107620
|
| |
|
|
|
|
| |
We can now use a PCH'ed <map>.
llvm-svn: 107617
|
| |
|
|
| |
llvm-svn: 107616
|