summaryrefslogtreecommitdiffstats
path: root/clang/lib
Commit message (Collapse)AuthorAgeFilesLines
* Fix regression in GRExprEngine::VisitCast: Do not wrap symbolic function ↵Ted Kremenek2009-03-051-23/+26
| | | | | | pointers with TypedViewRegions. llvm-svn: 66187
* Partial fix <rdar://problem/6301205> [irgen] dot-syntax on super isn't ↵Steve Naroff2009-03-051-2/+25
| | | | | | | | supported. Tweak Sema::ActOnMemberReferenceExpr() and Sema::ActOnDeclarationNameExpr() to handle "super." notation for Class methods. llvm-svn: 66185
* Moved CollectObjCIvars to more commonly available placeFariborz Jahanian2009-03-051-2/+2
| | | | | | for future use. llvm-svn: 66184
* Adds a template for a function for objc2's gc's ivar layoutFariborz Jahanian2009-03-051-4/+16
| | | | | | bitmap. llvm-svn: 66175
* Retrofit some basic tracking of ivars (for the current object) into BasicStore.Ted Kremenek2009-03-051-30/+85
| | | | llvm-svn: 66166
* Minor code compaction. No functionality change.Ted Kremenek2009-03-051-11/+5
| | | | llvm-svn: 66165
* Rename VarBindings -> Bindings.Ted Kremenek2009-03-051-15/+15
| | | | llvm-svn: 66164
* BasicStore:Ted Kremenek2009-03-053-19/+24
| | | | | | | | | | | | | - 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
* Tweak diag for <rdar://problem/5982579> [clang on xcode] (using ↵Steve Naroff2009-03-051-1/+4
| | | | | | 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
* Fix <rdar://problem/6144382> [sema] gcc inconsistency w.r.t. forward ↵Steve Naroff2009-03-052-0/+31
| | | | | | protocol declarations. llvm-svn: 66161
* prep work for copy/destroy helpers for block literals.Mike Stump2009-03-054-51/+77
| | | | llvm-svn: 66159
* if we die in IR generation of a compound statement, include Chris Lattner2009-03-051-1/+4
| | | | | | | | | | | | | | 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
* rename PrettyStackTraceDecl -> PrettyStackTraceActionsDecl.Chris Lattner2009-03-056-16/+38
| | | | | | | | | | | | | | | | 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
* if we crash while parsing a block literal, include it.Chris Lattner2009-03-051-1/+5
| | | | llvm-svn: 66150
* fix eof checkChris Lattner2009-03-051-1/+6
| | | | llvm-svn: 66149
* When the parser is live, print out the location and spelling of its current ↵Chris Lattner2009-03-052-22/+39
| | | | | | | | | | | | | | | | | 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
* Driver: Basic argument parsing.Daniel Dunbar2009-03-053-15/+82
| | | | | | | | - Add Driver::ParseArgStrings. - Store values directly in CommaJoinedArg to support simple access. - Add FlagArg class. llvm-svn: 66142
* Add initial support for tracking ivars, with special handling for ivars of ↵Ted Kremenek2009-03-051-8/+33
| | | | | | 'self'. llvm-svn: 66133
* Make IRGen compatible with declaring a function with incomplete Eli Friedman2009-03-051-2/+13
| | | | | | | return/argument types. (The generated IR isn't ideal, but we can't really do better in general.) llvm-svn: 66132
* Add 'cast<>' to remove an extra function call and dynamic cast.Ted Kremenek2009-03-051-2/+2
| | | | llvm-svn: 66131
* More fixes in cast logic.Ted Kremenek2009-03-051-16/+9
| | | | llvm-svn: 66130
* Initial implementation of CodeGen for incomplete function types; fixes Eli Friedman2009-03-052-4/+55
| | | | | | | PR3688. (The FIXME is a rather big performance issue, but it only affects code using this feature, which is relatively rare.) llvm-svn: 66128
* GRExprEngine: Polish up handling of casting integer constants to pointers ↵Ted Kremenek2009-03-051-2/+8
| | | | | | and back. llvm-svn: 66127
* Avoid dispose calls when only doing gc.Mike Stump2009-03-051-1/+1
| | | | llvm-svn: 66126
* Fix regression in transparent translation of nonloc::ConcreteInto to ↵Ted Kremenek2009-03-051-10/+17
| | | | | | loc::ConcreteInt. llvm-svn: 66125
* Include struct context info for parser/sema crashes. ThisChris Lattner2009-03-052-0/+8
| | | | | | | | | | | | | | | | | | | | | 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
* Include namespace contexts in the virtual stack trace, so we get stuffChris Lattner2009-03-051-0/+4
| | | | | | | | | | | | | | | | | | | | | | 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
* include objc method decl contexts in stack trace of crash, e.g.:Chris Lattner2009-03-051-0/+5
| | | | | | | | | 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
* Set isMain bit for MainFile.Devang Patel2009-03-051-1/+3
| | | | llvm-svn: 66120
* When parsing a function body, add it to the crash stack, giving us somethingChris Lattner2009-03-054-0/+33
| | | | | | | | | | | | | 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
* Add codegen support for __block variables to call _Block_object_dispose as ↵Mike Stump2009-03-054-28/+53
| | | | | | necessary. llvm-svn: 66117
* Simplify the interface to ParseFunctionStatementBody to not take Chris Lattner2009-03-053-6/+9
| | | | | | | locations that are the current tok loc. Note that inline C++ methods have a big fixme that could cause a crash. llvm-svn: 66113
* Fix message titleTed Kremenek2009-03-051-1/+1
| | | | llvm-svn: 66110
* Include information about compound statements when crashing in sema or theChris Lattner2009-03-053-15/+44
| | | | | | | | | | 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
* For now, do not track NSWindow objects and it's subclasses.Ted Kremenek2009-03-041-0/+13
| | | | llvm-svn: 66107
* Driver: Implement Option::accept methods.Daniel Dunbar2009-03-043-17/+61
| | | | llvm-svn: 66106
* Driver: Fix off by one in ParseOneArg; this code is ugly but will beDaniel Dunbar2009-03-041-2/+2
| | | | | | replaced anyway. llvm-svn: 66101
* Driver: Add Arg::dump and SeparateArg stubs.Daniel Dunbar2009-03-041-0/+41
| | | | llvm-svn: 66100
* Removed an unfortunate cut and paste left-over.Fariborz Jahanian2009-03-041-2/+0
| | | | llvm-svn: 66099
* Add prototype support for invalidating fields for structures passed-by-referenceTed Kremenek2009-03-041-18/+71
| | | | | | | to unknown functions. Most of this logic should be eventually moved to RegionStore and be made lazy. llvm-svn: 66094
* MemRegion:Ted Kremenek2009-03-041-2/+3
| | | | | | | | | - 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
* Add an optional "tag" to conjured symbols that allows us to distinguish betweenTed Kremenek2009-03-041-3/+4
| | | | | | | | 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
* Fixup __block codegen in nested block literals.Mike Stump2009-03-041-15/+28
| | | | llvm-svn: 66091
* Driver: Add OptTable::ParseOneArg.Daniel Dunbar2009-03-041-0/+23
| | | | llvm-svn: 66090
* Driver: Add ArgList::{append, getArgString}Daniel Dunbar2009-03-041-0/+9
| | | | llvm-svn: 66089
* Driver: Stub out Arg implementations.Daniel Dunbar2009-03-041-0/+72
| | | | llvm-svn: 66088
* Implemented access check for ivars accessed insideFariborz Jahanian2009-03-044-20/+27
| | | | | | c-style functions declared inside objc @implementations. llvm-svn: 66087
* Driver: Option's need to know their ID.Daniel Dunbar2009-03-042-35/+46
| | | | | | - Also, add Input and Unknown opts to OptTable. llvm-svn: 66079
* Driver: Add Option flags.Daniel Dunbar2009-03-042-14/+10
| | | | llvm-svn: 66067
* Driver: Tweak Option::accept interface.Daniel Dunbar2009-03-041-10/+10
| | | | llvm-svn: 66066
OpenPOWER on IntegriCloud