| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
then target specific.
llvm-svn: 57128
|
|
|
|
| |
llvm-svn: 57127
|
|
|
|
|
|
|
|
|
|
|
|
| |
TentativeParsingResult enum).
This was the motivation of the following changes:
-'TentativeParsingResult' enum is replaced by a 'TPResult' class that basically encapsulates the enum.
-TPR_true, TPR_false, TPR_ambiguous, and TPR_error enum constants are replaced by TPResult::True(), TPResult::False(), etc. calls that return a TPResult object.
-Also fixed the subtle bug in Parser::isCXXFunctionDeclarator (caught by the above changes as a compilation error).
llvm-svn: 57125
|
|
|
|
| |
llvm-svn: 57121
|
|
|
|
| |
llvm-svn: 57119
|
|
|
|
| |
llvm-svn: 57118
|
|
|
|
|
|
| |
'for-init-statement' part of a 'for' statement.
llvm-svn: 57112
|
|
|
|
| |
llvm-svn: 57111
|
|
|
|
|
|
| |
a if/switch/while/for statement.
llvm-svn: 57109
|
|
|
|
| |
llvm-svn: 57108
|
|
|
|
| |
llvm-svn: 57107
|
|
|
|
|
|
|
| |
- Print size as number of elements times "sizeof(elt type)", not
perfect but better than just printing the completely wrong type.
llvm-svn: 57100
|
|
|
|
|
|
| |
'ParseTentative.cpp' implements the functionality needed to resolve ambiguous C++ statements, to either a declaration or an expression, by "tentatively parsing" them.
llvm-svn: 57084
|
|
|
|
| |
llvm-svn: 57072
|
|
|
|
|
|
|
| |
- Uses Action::ActOnPragmaPack
- Test case is XFAIL pending verifier fixes.
llvm-svn: 57066
|
|
|
|
|
|
| |
- No functionality change.
llvm-svn: 57065
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the patch consists of deltas due to API changes.
This patch overhauls the "memory region" abstraction that was prototyped (but never really used) as part of the Store.h. This patch adds MemRegion.h and MemRegion.cpp, which defines the class MemRegion and its subclasses. This classes serve to define an abstract representation of memory, with regions being layered on other regions to to capture the relationships between fields and variables, variables and the address space they are allocated in, and so on.
The main motivation of this patch is that key parts of the analyzer assumed that all value bindings were to VarDecls. In the future this won't be the case, and this patch removes lval::DeclVal and replaces it with lval::MemRegionVal. Now all pieces of the analyzer must reason about abstract memory blocks instead of just variables.
There should be no functionality change from this patch, but it opens the door for significant improvements to the analyzer such as field-sensitivity and object-sensitivity, both which were on hold until the memory abstraction got generalized.
The memory region abstraction also allows type-information to literally be affixed to a memory region. This will allow the some now redundant logic to be removed from the retain/release checker.
llvm-svn: 57042
|
|
|
|
| |
llvm-svn: 57041
|
|
|
|
|
|
| |
that includes any edits in the range.
llvm-svn: 57037
|
|
|
|
| |
llvm-svn: 57019
|
|
|
|
| |
llvm-svn: 57015
|
|
|
|
| |
llvm-svn: 56993
|
|
|
|
| |
llvm-svn: 56992
|
|
|
|
|
|
|
| |
This is a temporary solution to help with the block rewriter (though it certainly has general utility).
Once DeclGroup's are implemented, this SourceLocation should be stored with it (since it applies to all the decls).
llvm-svn: 56985
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Enabled for builtins which are always constant expressions
(__builtin_huge_val*, __builtin_inf*, __builtin_constant_p,
__builtin_classify_type, __builtin___CFStringMakeConstantString).
Added Builtin::Context::isConstantExpr.
- Currently overly simply interface which only works for builtins
whose constantexprness does not depend on their arguments.
CallExpr::isBuiltinConstantExpr now takes an ASTContext argument.
llvm-svn: 56983
|
|
|
|
|
|
|
| |
versions of sprintf and friends.
- Added FIXME that this mechanism should be generalized.
llvm-svn: 56962
|
|
|
|
|
|
|
| |
handling blocks.
- This has false positives, but at least prevents miscompiles.
llvm-svn: 56958
|
|
|
|
|
|
| |
This commit also includes some name changes in the blocks rewriter (no functionality change).
llvm-svn: 56955
|
|
|
|
| |
llvm-svn: 56954
|
|
|
|
|
|
| |
Expand checking to include functions, not just methods.
llvm-svn: 56938
|
|
|
|
|
|
| |
"lvalue" type directly.
llvm-svn: 56912
|
|
|
|
| |
llvm-svn: 56902
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
collisions.
- Provide CodeGenModule::CreateRuntimeFunction which guarantees that
the function it creates will have the provided name in the final
module. This allows the runtime to have its functions protected
from declarations of the same name in the source code.
- One could argue that this is a reason to abuse the llvm::Module
namespace for dealing with function redeclarations. However, that
approach seems conceptually flawed to me. This one also happens to
be somewhat more efficient.
No functionality change.
llvm-svn: 56899
|
|
|
|
|
|
| |
Use this updated interface when invalidating arguments passed by reference; the type of symbol is of the object passed by reference, not the reference itself.
llvm-svn: 56894
|
|
|
|
| |
llvm-svn: 56880
|
|
|
|
| |
llvm-svn: 56879
|
|
|
|
| |
llvm-svn: 56876
|
|
|
|
|
|
| |
like "10.3.9"
llvm-svn: 56873
|
|
|
|
| |
llvm-svn: 56859
|
|
|
|
|
|
|
|
| |
scope) fails to handle overloaded selectors properly.
Long standing bug in Sema::ActOnInstanceMessage(). We now warn when messaging an "id" with multiple method signatures in scope. The diags are a little verbose, however they can be streamlined if necessary.
llvm-svn: 56843
|
|
|
|
|
|
|
|
| |
mismatched properties.
Needed to make sure the relaxed type checking only applies to "readonly" properties.
llvm-svn: 56838
|
|
|
|
| |
llvm-svn: 56836
|
|
|
|
| |
llvm-svn: 56832
|
|
|
|
|
|
| |
from the subexpression type to the expression type.
llvm-svn: 56831
|
|
|
|
| |
llvm-svn: 56830
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Provides a basic primitive to jump to an arbitrary basic block,
through the finally code.
- Only used for return statements and rethrow currently. Still need
to handle break, continue and goto.
- Code still needs to be shuffled around to live elsewhere.
llvm-svn: 56827
|
|
|
|
|
|
|
| |
the target triple on darwin. For example i386-apple-darwin9 -> 1050 because
darwin9 is "10.5".
llvm-svn: 56826
|
|
|
|
| |
llvm-svn: 56824
|
|
|
|
| |
llvm-svn: 56822
|
|
|
|
| |
llvm-svn: 56821
|