summaryrefslogtreecommitdiffstats
path: root/clang/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Revert r75764 "[llvm up] Switch to using the new TargetRegistry" to fix build.Argyrios Kyrtzidis2009-07-151-5/+5
| | | | llvm-svn: 75814
* Implement the ObjC pseudo built-in types as clang "BuiltinType's". I say ↵Steve Naroff2009-07-159-84/+74
| | | | | | | | | | | | pseudo built-in types, since Sema still injects a typedef for recognition (i.e. they aren't truly built-ins from a parser perspective). This removes the static data/methods on ObjCObjectPointerType while preserving the nice API (no need to fiddle with ASTContext:-). This patch also adds Type::isObjCBuiltinType(). This should be the last fairly large patch related to recrafting the ObjC type system. The follow-on patches should be fairly small. llvm-svn: 75808
* Update for raw_fd_ostream API changes. raw_fd_ostream now has aDan Gohman2009-07-154-3/+6
| | | | | | | Force flag to control whether the case of opening an existing file is considered an error. llvm-svn: 75802
* [llvm up] Switch to using the new TargetRegistry.Daniel Dunbar2009-07-151-5/+5
| | | | llvm-svn: 75764
* Delete extra whitespaces.Zhongxing Xu2009-07-151-1/+1
| | | | llvm-svn: 75761
* rewrite the logic to make it follow the comments more closely.Zhongxing Xu2009-07-151-1/+2
| | | | llvm-svn: 75750
* Enhance RegionStore's reasoning about Objective-C ivars. More testing to ↵Ted Kremenek2009-07-151-16/+40
| | | | | | follow. llvm-svn: 75748
* Use utility method.Zhongxing Xu2009-07-151-1/+1
| | | | llvm-svn: 75745
* Add getName() method to Entity.Zhongxing Xu2009-07-151-0/+7
| | | | llvm-svn: 75740
* Relax assertion.Ted Kremenek2009-07-151-1/+2
| | | | llvm-svn: 75738
* More test cases revealed that the logic in StoreManager::InvalidateRegion() ↵Ted Kremenek2009-07-152-10/+34
| | | | | | | | | | | | | | | | | needs more finesse when handling the invalidation of pointers. Pointers that were invalidated as integers could later cause problems for clients using them as pointers. It is easier for us to model a symbolic value as a pointer rather than modeling a non-symbolic value as a pointer. This patch causes: - StoreManager::InvalidateRegion() to not used the casted type of a region if it would cause a pointer type to be invalidated as a non-pointer type. - Pushes RegionStore::RetrieveElement() further by handling retrievals from symbolic arrays that have been invalidated. This uses the new SymbolDerived construct that was recently introduced. The result is that the failing test in misc-ps-region-store-x86_64.m now passes. Both misc-ps-region-store-x86_64.m and misc-ps-region-store-i386.m contain a test case that motivated this change. llvm-svn: 75730
* Introduced the notion of a "derived symbol" using the class SymbolDerived.Ted Kremenek2009-07-152-0/+44
| | | | | | | | SymbolDerived allows us to model symbolic values that are related to other symbols via a region hierarchy. For example, SymbolDerived can be used to model individual values of a symbolic array. llvm-svn: 75728
* Handle cast of 'ObjCObjectRegion' in StoreManager::InvalidateRegion.Ted Kremenek2009-07-141-1/+5
| | | | llvm-svn: 75713
* Added a FIXME and prevent crash when listingFariborz Jahanian2009-07-141-5/+6
| | | | | | a dependent type in the ctor initializer-list. llvm-svn: 75712
* Update for LLVM API change, and contextify a bunch of related stuff.Owen Anderson2009-07-1420-815/+916
| | | | llvm-svn: 75705
* Fixed a bug in building ctor-initializer AST.Fariborz Jahanian2009-07-141-2/+3
| | | | llvm-svn: 75692
* Remove -ftraditional option, which gcc doesn't actually support. Make Eli Friedman2009-07-141-4/+6
| | | | | | | | using -traditional and -traditional-cpp with clang an error because it's unsupported in clang and causes a significant change in the semantics of the language. llvm-svn: 75690
* Revert 75648 for now. It is causing test failures.Devang Patel2009-07-143-28/+8
| | | | llvm-svn: 75684
* Enhance RegionStoreManager to handle 'Retrieve's from SymbolicRegions. We ↵Ted Kremenek2009-07-141-2/+8
| | | | | | do this by silently wrapping the region with an ElementRegion. This fixes the failures in misc-ps-region-store.m. llvm-svn: 75679
* fix fallout of the LLVM codegen switching to formatted_raw_ostream.Chris Lattner2009-07-141-6/+11
| | | | llvm-svn: 75675
* Tweak pretty-printing of CompoundVal to make it more useful for debugging.Ted Kremenek2009-07-141-2/+2
| | | | llvm-svn: 75672
* Build AST for default ctor-initializer when constructor hasFariborz Jahanian2009-07-142-2/+3
| | | | | | out of line definition. llvm-svn: 75668
* Support data members of array type in defaultFariborz Jahanian2009-07-141-1/+3
| | | | | | ctor-initializer AST build. llvm-svn: 75662
* Moved a FIXME to where it was meant to be.Fariborz Jahanian2009-07-141-1/+1
| | | | llvm-svn: 75651
* Introduce Type::isAnyPointerType() and convert all clients (suggested by Chris).Steve Naroff2009-07-145-28/+13
| | | | | | I don't love the name, however it simplifies the code and is a worthwhile change. If/when we come up with a better name, we can do a search/replace. llvm-svn: 75650
* Patch to build AST for ctor's initializer list according toFariborz Jahanian2009-07-144-1/+86
| | | | | | semantics of order of construction [class.init]. llvm-svn: 75649
* [llvm up] adjust to match mainline.Chris Lattner2009-07-141-3/+4
| | | | llvm-svn: 75647
* Rename RecordLayout.h to ASTRecordLayout.hAnders Carlsson2009-07-149-9/+7
| | | | llvm-svn: 75641
* Revert r75614 which depend on r75610 (for LLVM), which was reverted.Daniel Dunbar2009-07-141-4/+3
| | | | | | | --- Reverse-merging r75614 into '.': U lib/CodeGen/CGDebugInfo.cpp llvm-svn: 75639
* Add a "TypeSpecStartLoc" to FieldDecl. Patch contributed by Enea Zaffanella.Steve Naroff2009-07-146-9/+17
| | | | | Note: One day, it might be useful to consider adding this info to DeclGroup (as the comments in FunctionDecl/VarDecl suggest). For now, I think this works fine. I considered moving this to ValueDecl (a common ancestor of FunctionDecl/VarDecl/FieldDecl), however this would add overhead to EnumConstantDecl (which would burn memory and isn't necessary). llvm-svn: 75635
* Fix the buildAlisdair Meredith2009-07-141-2/+6
| | | | llvm-svn: 75627
* Basic support for C++0x unicode types. Support for literals will follow in ↵Alisdair Meredith2009-07-1415-4/+86
| | | | | | an incremental patch llvm-svn: 75622
* use new name for method.Chris Lattner2009-07-141-3/+4
| | | | llvm-svn: 75614
* In Stmt::printPretty(), pass the SourceManager to dump().Argyrios Kyrtzidis2009-07-141-1/+1
| | | | llvm-svn: 75606
* Introduce redecl_iterator, used for iterating over the redeclarations of a ↵Argyrios Kyrtzidis2009-07-141-19/+19
| | | | | | | | | | | | | | | | | | | | | FunctionDecl or VarDecl. It iterates over all the redeclarations, regardless of the starting point. For example: 1) int f(); 2) int f(); 3) int f(); if you have the (2) FunctionDecl and call redecls_begin/redecls_end to iterate, you'll get this sequence: (2) (1) (3) The motivation to introduce this was that, previously, if (3) was a function definition, and you called getBody() at (2), it would not return it, since getBody() iterated over the previous declarations only, so it would only check (2) and (1). llvm-svn: 75604
* Introduce FunctionDecl::getLatestDeclaration() and ↵Argyrios Kyrtzidis2009-07-141-7/+39
| | | | | | | | | | VarDecl::getLatestDeclaration(). For multiple redeclarations they return the last one. Also, add some non const versions of methods. llvm-svn: 75603
* Introduce FunctionDecl::getFirstDeclaration() and ↵Argyrios Kyrtzidis2009-07-141-10/+18
| | | | | | | | VarDecl::getFirstDeclaration(). For multiple redeclarations they return the first one. llvm-svn: 75602
* For C++ overloaded operator calls, set the source location of the ↵Argyrios Kyrtzidis2009-07-141-1/+1
| | | | | | DeclRefExpr to the location of the operator. llvm-svn: 75600
* Read/write a CXXOperatorCallExpr from/to PCH files.Argyrios Kyrtzidis2009-07-143-3/+31
| | | | llvm-svn: 75598
* Fixes for a couple of things:Argyrios Kyrtzidis2009-07-141-3/+10
| | | | | | | | | - Declaration context of ParmVarDecls (that we got from the Declarator) was not their containing function. - C++ out-of-line method definitions didn't get an access specifier. Both were exposed by a crash when emitting a C++ method to a PCH file (assert at Decl::CheckAccessDeclContext()). llvm-svn: 75597
* In ResolveLocationInAST, handle locations that are inside TagDecl definitions.Argyrios Kyrtzidis2009-07-141-4/+17
| | | | llvm-svn: 75594
* In DeclReferenceMap, map FieldDecls to the MemberExprs that reference them.Argyrios Kyrtzidis2009-07-141-0/+6
| | | | llvm-svn: 75593
* Read/write TagDecl's RBraceLoc from/to PCH files.Argyrios Kyrtzidis2009-07-142-0/+2
| | | | llvm-svn: 75592
* Pass the right brace SourceLocation from the Parser to the TagDecls.Argyrios Kyrtzidis2009-07-144-5/+8
| | | | llvm-svn: 75591
* Add the SourceLocation for the right brace in TagDecl.Argyrios Kyrtzidis2009-07-141-0/+5
| | | | llvm-svn: 75590
* Use LLVM mangler to get mangled name for debug info entry.Devang Patel2009-07-143-8/+27
| | | | llvm-svn: 75589
* Update debug info generation for ObjCObjectPointer changes.Daniel Dunbar2009-07-142-5/+17
| | | | | | | | | - Previously this would crash on recursive types, and it was also incorrectly stripping off a level of indirection. - I'm not 100% convinced this is all correct, but it should be a monotonic improvment. llvm-svn: 75582
* Instead of recovering from a wrong invalidation, this patch aims to Zhongxing Xu2009-07-143-4/+43
| | | | | | | | invalidate the region correctly. It uses the cast-to type to invalidate the region when available. To avoid invalid cast-to type like 'void*' or 'id', region store now only records non-generic casts of regions. llvm-svn: 75580
* Add basic checking for passing NULL to CFRetain/CFRelease, since those functionsTed Kremenek2009-07-142-5/+84
| | | | | | | are not explicitly marked as not accepting NULL pointers. This check illustrates how we need more refactoring in the custom-check logic. llvm-svn: 75570
* Update for API change.Owen Anderson2009-07-141-1/+1
| | | | llvm-svn: 75569
OpenPOWER on IntegriCloud