| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 76092
|
|
|
|
|
|
|
| |
block would get hooked up in some cases when processing empty compound
statements.
llvm-svn: 74743
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is simple enough, but then I thought it would be nice to make PrintingPolicy
get a LangOptions so that various things can key off "bool" and "C++" independently.
This spiraled out of control. There are many fixme's, but I think things are slightly
better than they were before.
One thing that can be improved: CFG should probably have an ASTContext pointer in it,
which would simplify its clients.
llvm-svn: 74493
|
|
|
|
| |
llvm-svn: 74131
|
|
|
|
| |
llvm-svn: 74085
|
|
|
|
|
|
|
|
|
| |
printing logic to help customize the output. For now, we use this
rather than a special flag to suppress the "struct" when printing
"struct X" and to print the Boolean type as "bool" in C++ but "_Bool"
in C.
llvm-svn: 72590
|
|
|
|
|
|
| |
block. This makes it a little easier for diagnostics generation.
llvm-svn: 71037
|
|
|
|
| |
llvm-svn: 70620
|
|
|
|
|
|
|
| |
expressions not yet properly handled by the CFGBuilder. This failure resulted in
a null CFGBlock* being used in rare cases (causing a crash).
llvm-svn: 70612
|
|
|
|
| |
llvm-svn: 70284
|
|
|
|
| |
llvm-svn: 70280
|
|
|
|
|
|
|
|
| |
- Add 'LoopTarget' pointer field to CFGBlock. This records if the block is used
as the 'loop back' path back to the head of a loop.
- For ForStmt, encode the loop back target as the increment code.
llvm-svn: 70274
|
|
|
|
| |
llvm-svn: 68533
|
|
|
|
|
|
| |
had too many false positives in the analyzer.
llvm-svn: 68492
|
|
|
|
|
|
| |
distinguish between the true and false branches for path-sensitive analyses.
llvm-svn: 68185
|
|
|
|
|
|
| |
assume that @catch blocks are never executed.
llvm-svn: 68072
|
|
|
|
| |
llvm-svn: 67928
|
|
|
|
| |
llvm-svn: 67923
|
|
|
|
| |
llvm-svn: 65519
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
by DeclContexts (always) rather than by statements.
DeclContext currently goes out of its way to avoid destroying any
Decls that might be owned by a DeclGroupOwningRef. However, in an
error-recovery situation, a failure in a declaration statement can
cause all of the decls in a DeclGroupOwningRef to be destroyed after
they've already be added into the DeclContext. Hence, DeclContext is
left with already-destroyed declarations, and bad things happen. This
problem was causing failures that showed up as assertions on x86 Linux
in test/Parser/objc-forcollection-neg-2.m.
llvm-svn: 64474
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
that every declaration lives inside a DeclContext.
Moved several things that don't have names but were ScopedDecls (and,
therefore, NamedDecls) to inherit from Decl rather than NamedDecl,
including ObjCImplementationDecl and LinkageSpecDecl. Now, we don't
store empty DeclarationNames for these things, nor do we try to insert
them into DeclContext's lookup structure.
The serialization tests are temporarily disabled. We'll re-enable them
once we've sorted out the remaining ownership/serialiazation issues
between DeclContexts and TranslationUnion, DeclGroups, etc.
llvm-svn: 62562
|
|
|
|
|
|
| |
statement.
llvm-svn: 60790
|
|
|
|
|
|
|
|
|
|
|
|
| |
expressions, and value-dependent expressions. This permits us to parse
some template definitions.
This is not a complete solution; we're missing type- and
value-dependent computations for most of the expression types, and
we're missing checks for dependent types and type-dependent
expressions throughout Sema.
llvm-svn: 60615
|
|
|
|
|
|
|
|
|
|
| |
properly reversed once constructed.
This fixes PR 3125:
http://llvm.org/bugs/show_bug.cgi?id=3125
llvm-svn: 59982
|
|
|
|
|
|
| |
anything that evaluates to an lvalue
llvm-svn: 59289
|
|
|
|
| |
llvm-svn: 59227
|
|
|
|
|
|
| |
enumeration for blocks to the appropriate basic blocks.
llvm-svn: 59226
|
|
|
|
|
|
| |
get expanded as a series of basic blocks.
llvm-svn: 59197
|
|
|
|
| |
llvm-svn: 59160
|
|
|
|
|
|
| |
expressions, both of values and types.
llvm-svn: 59057
|
|
|
|
|
|
|
|
| |
http://developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/Articles/chapter_7_section_2.html#//apple_ref/doc/uid/TP30001163-CH18-SW3
Need to modify GRExprEngine, LiveVariables, and UninitializedValues to understand this construct.
llvm-svn: 59049
|
|
|
|
|
|
|
|
| |
ScopedDecl*.
This also removes the ugly hack needed in CFG.cpp for subclassing DeclStmt to create a DeclStmt with one Decl*.
llvm-svn: 57275
|
|
|
|
|
|
| |
ScopedDecl chain.
llvm-svn: 57206
|
|
|
|
| |
llvm-svn: 57041
|
|
|
|
|
|
| |
SizeOfAlignOfTypeExpr.
llvm-svn: 56706
|
|
|
|
|
|
| |
control-flow).
llvm-svn: 56672
|
|
|
|
|
|
| |
all dataflow analyses "see" the VLA size expressions.
llvm-svn: 56655
|
|
|
|
|
|
|
|
|
| |
motivated because it became clear that the number of subclasses of ProgramPoint
would expand and we ran out of bits to represent a pointer variant. As a plus of
this change, BlockEdge program points can now be represented explicitly without
using a cache of CFGBlock* pairs in CFG.
llvm-svn: 56245
|
|
|
|
|
|
|
| |
"Here is a patch what replaces std::ostream with llvm::raw_ostream. This patch
covers the AST library, but ignores Analysis lib."
llvm-svn: 56185
|
|
|
|
|
|
|
| |
- Within for loops, 'continue' should jump to a basic block containing the
increment code
llvm-svn: 55800
|
|
|
|
|
|
|
|
|
|
|
| |
- Kill unnecessary #includes in .cpp files. This is an automatic
sweep so some things removed are actually used, but happen to be
included by a previous header. I tried to get rid of the obvious
examples and this was the easiest way to trim the #includes in one
fell swoop.
- We now return to regularly scheduled development.
llvm-svn: 54632
|
|
|
|
|
|
| |
internal BumpPtrAllocator to allocator more of CFG's data structures.
llvm-svn: 54433
|
|
|
|
| |
llvm-svn: 54429
|
|
|
|
|
|
| |
"the attached patch fixes some typos, 80 cols violations, etc. in comments."
llvm-svn: 54328
|
|
|
|
| |
llvm-svn: 51707
|
|
|
|
|
|
| |
- #include ExprObjC.h in many places
llvm-svn: 51703
|
|
|
|
| |
llvm-svn: 51190
|
|
|
|
|
|
|
|
|
| |
std::pair<CFGBlock*, CFGBlock*> that have an 8-byte alignment for use with
ProgramPoint. This fixes a bug reported by Argiris where using std::set<> on
Windows would result in a 4-byte alignment, not an 8-byte alignment.
Fixes: <rdar://problem/5892265>
llvm-svn: 50364
|
|
|
|
|
|
|
|
|
|
|
| |
block's terminator.
Refactored LiveVariables to use getTerminatorCondition() in VisitTerminator().
Bug fix: CFG now computes Block-level expression numbers using information
from block terminators. This fixes <rdar://problem/5868189>.
llvm-svn: 49818
|
|
|
|
|
|
| |
created block.
llvm-svn: 48460
|