| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
pointers with TypedViewRegions.
llvm-svn: 66187
|
| |
|
|
|
|
|
|
| |
supported.
Tweak Sema::ActOnMemberReferenceExpr() and Sema::ActOnDeclarationNameExpr() to handle "super." notation for Class methods.
llvm-svn: 66185
|
| |
|
|
|
|
| |
for future use.
llvm-svn: 66184
|
| |
|
|
|
|
| |
bitmap.
llvm-svn: 66175
|
| |
|
|
| |
llvm-svn: 66166
|
| |
|
|
| |
llvm-svn: 66165
|
| |
|
|
| |
llvm-svn: 66164
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
- Store bindings using a MemRegion -> SVal binding instead of VarDecl -> SVal
binding. This mirrors some of the idea of RegionStore, but is far simpler and
not nearly as functional. This leads to some code simplification and
some potential for some minor precision hacks.
Along the way...
- constify the use of MemRegion* in a few places
- add operator<<(llvm::raw_ostream, const MemRegion*)
llvm-svn: 66163
|
| |
|
|
|
|
| |
arch=x86_64): synthesized property 'sdkPath' must either be named the same as a compatible ivar or must explicitly name an ivar.
llvm-svn: 66162
|
| |
|
|
|
|
| |
protocol declarations.
llvm-svn: 66161
|
| |
|
|
| |
llvm-svn: 66159
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
it in the stack trace, giving us stuff like:
Stack dump:
0. Program arguments: clang t.c -emit-llvm
1. <eof> parser at end of file
2. t.c:1:5: LLVM IR generation of declaration 'a'
3. t.c:1:9: LLVM IR generation of compound statement ('{}')
4. t.c:2:3: LLVM IR generation of compound statement ('{}')
Abort
llvm-svn: 66154
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Introduce a new PrettyStackTraceDecl.
Use it to add the top level LLVM IR generation stuff in
Backend.cpp to stack traces. We now get crashes like:
Stack dump:
0. Program arguments: clang t.c -emit-llvm
1. <eof> parser at end of file
2. t.c:1:5: LLVM IR generation of declaration 'a'
Abort
for IR generation crashes.
llvm-svn: 66153
|
| |
|
|
| |
llvm-svn: 66150
|
| |
|
|
| |
llvm-svn: 66149
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
token.
For example:
Stack dump:
0. Program arguments: clang t.cpp
1. t.cpp:4:8: current parser token: ';'
2. t.cpp:3:1: parsing struct/union/class body 'x'
Abort
It is weird that the parser is always "underneath" any parse context
actions, but the parser is created first.
llvm-svn: 66148
|
| |
|
|
|
|
|
|
| |
- Add Driver::ParseArgStrings.
- Store values directly in CommaJoinedArg to support simple access.
- Add FlagArg class.
llvm-svn: 66142
|
| |
|
|
|
|
| |
'self'.
llvm-svn: 66133
|
| |
|
|
|
|
|
| |
return/argument types. (The generated IR isn't ideal, but we can't
really do better in general.)
llvm-svn: 66132
|
| |
|
|
| |
llvm-svn: 66131
|
| |
|
|
| |
llvm-svn: 66130
|
| |
|
|
|
|
|
| |
PR3688. (The FIXME is a rather big performance issue, but it only
affects code using this feature, which is relatively rare.)
llvm-svn: 66128
|
| |
|
|
|
|
| |
and back.
llvm-svn: 66127
|
| |
|
|
| |
llvm-svn: 66126
|
| |
|
|
|
|
| |
loc::ConcreteInt.
llvm-svn: 66125
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
gives us:
Stack dump:
0. using-directive.cpp:26:16: in compound statement ('{}')
1. using-directive.cpp:26:16: parsing function body 'A::K1::foo'
2. using-directive.cpp:25:3: parsing struct/union/class body 'A::K1'
3. using-directive.cpp:5:1: parsing namespace 'A'
4. clang using-directive.cpp
Abort
for code like:
namespace A {
...
class K1 {
void foo() { <<crash>>
llvm-svn: 66124
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
like this:
Stack dump:
0. using-directive.cpp:9:14: in compound statement ('{}')
1. using-directive.cpp:9:14: parsing function body 'A::B::f'
2. using-directive.cpp:7:3: parsing namespace 'A::B'
3. using-directive.cpp:5:1: parsing namespace 'A'
4. clang using-directive.cpp
Abort
for testcase like like:
namespace A {
short i;
namespace B {
long i;
void f() { <<crash>>
llvm-svn: 66123
|
| |
|
|
|
|
|
|
|
| |
Stack dump:
0. message.m:53:13: in compound statement ('{}')
1. message.m:53:13: parsing Objective-C method 'xx'
2. clang message.m
llvm-svn: 66121
|
| |
|
|
| |
llvm-svn: 66120
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
like:
Stack dump:
0. t.c:5:10: in compound statement ('{}')
1. t.c:3:12: in compound statement ('{}')
2. t.c:3:12: parsing function body 'foo'
3. clang t.c
Abort
llvm-svn: 66118
|
| |
|
|
|
|
| |
necessary.
llvm-svn: 66117
|
| |
|
|
|
|
|
| |
locations that are the current tok loc. Note that inline C++ methods
have a big fixme that could cause a crash.
llvm-svn: 66113
|
| |
|
|
| |
llvm-svn: 66110
|
| |
|
|
|
|
|
|
|
|
| |
parser. For example, we now print out:
0. t.c:5:10: in compound statement {}
1. t.c:3:12: in compound statement {}
2. clang t.c -fsyntax-only
llvm-svn: 66108
|
| |
|
|
| |
llvm-svn: 66107
|
| |
|
|
| |
llvm-svn: 66106
|
| |
|
|
|
|
| |
replaced anyway.
llvm-svn: 66101
|
| |
|
|
| |
llvm-svn: 66100
|
| |
|
|
| |
llvm-svn: 66099
|
| |
|
|
|
|
|
| |
to unknown functions. Most of this logic should be eventually moved to
RegionStore and be made lazy.
llvm-svn: 66094
|
| |
|
|
|
|
|
|
|
| |
- Have 'TypedRegion::getRValueType()' return a null QualType for 'id<...>'
instead of aborting.
- Change 'TypedRegion::isBoundable()' to return true for all objects with a
non-null RValueType (this may not be the final behavior).
llvm-svn: 66093
|
| |
|
|
|
|
|
|
| |
multiple symbols conjured at the same location. All that is required of the tag
is that it is a fixed void* value that points to an memory address that remains
valid throughout the remainder of the lifetime of the SymbolManager.
llvm-svn: 66092
|
| |
|
|
| |
llvm-svn: 66091
|
| |
|
|
| |
llvm-svn: 66090
|
| |
|
|
| |
llvm-svn: 66089
|
| |
|
|
| |
llvm-svn: 66088
|
| |
|
|
|
|
| |
c-style functions declared inside objc @implementations.
llvm-svn: 66087
|
| |
|
|
|
|
| |
- Also, add Input and Unknown opts to OptTable.
llvm-svn: 66079
|
| |
|
|
| |
llvm-svn: 66067
|
| |
|
|
| |
llvm-svn: 66066
|