summaryrefslogtreecommitdiffstats
path: root/clang/lib/Frontend
Commit message (Collapse)AuthorAgeFilesLines
* Introduce the canonical type smart pointers, and use them in a few places toDouglas Gregor2009-08-051-3/+3
| | | | | | tighten up the static type system. llvm-svn: 78164
* Update for LLVM API changeDaniel Dunbar2009-08-041-2/+1
| | | | llvm-svn: 78044
* Emit a special 'BUGMETAEND' comment to aid in the postprocessing of HTML bug ↵Ted Kremenek2009-08-031-39/+20
| | | | | | reports. llvm-svn: 78021
* Update for LLVM API change.Daniel Dunbar2009-08-031-2/+1
| | | | llvm-svn: 77952
* Update for LLVM API change.Daniel Dunbar2009-08-031-1/+2
| | | | llvm-svn: 77947
* now we can let AnalysisManager to own the PathDiagnosticClient.Zhongxing Xu2009-08-031-6/+8
| | | | llvm-svn: 77945
* Create only one AnalysisManager for each translation unit. In HandleCode(),Zhongxing Xu2009-08-031-14/+11
| | | | | | reset the current analysis context of the AnalysisManager. llvm-svn: 77943
* Fix regression caused by recent refactoring where HTML and plist files would ↵Ted Kremenek2009-08-021-0/+5
| | | | | | not get flushed out when using '-disable-free'. llvm-svn: 77882
* Additional AuroraUX header path.Eli Friedman2009-08-011-0/+1
| | | | llvm-svn: 77811
* Add temp C++ include path for AuroraUX; patch by Edward O'Callaghan.Eli Friedman2009-08-011-0/+3
| | | | llvm-svn: 77786
* Rename Action::TagKind to Action::TagUseKind, which removes both a misnomerJohn McCall2009-07-311-1/+1
| | | | | | and a name collision. llvm-svn: 77658
* Add a CastKind enum to CastExpr. Right now it's not used for much but it ↵Anders Carlsson2009-07-313-24/+62
| | | | | | will be :) llvm-svn: 77650
* Fix use-after-release bug introduced in r77585 where the PathDiagnosticClientTed Kremenek2009-07-311-5/+4
| | | | | | | | | | | | | | | created by AnalysisConsumer would be released by an instance of AnalysisManager and then reused by later instances of AnalysisManager. Ownership of the PathDiagnosticClient now belongs (for now) in AnalysisConsumer. We also need this layering (for now) because the HTMLDiagnostiClient requires that the entire translation unit be processed before emitting diagnostics. This is done in its destructor (which should also be fixed, but that is another issue). This fixes PR 4653. llvm-svn: 77648
* Initialize an otherwise-wild pointer. Fixes a crashy analyzerDouglas Gregor2009-07-301-1/+1
| | | | llvm-svn: 77599
* simple fixes.Zhongxing Xu2009-07-301-4/+2
| | | | llvm-svn: 77587
* Make AnalysisManager into its own source file and a pure data management class. Zhongxing Xu2009-07-301-169/+57
| | | | | | Move all components creation code into AnalysisConsumer::DigestAnalyzerOptions(). llvm-svn: 77585
* This patch collects all analysis context data into a new class Zhongxing Xu2009-07-301-31/+17
| | | | | | AnalysisContext. llvm-svn: 77563
* Make tag declarations redeclarable. This change has three purposes:Douglas Gregor2009-07-292-0/+3
| | | | | | | | | | | | | | | | 1) Allow the Index library (and any other interested client) to walk the set of declarations for a given tag (enum, union, class, whatever). At the moment, this information is not readily available. 2) Reduce our dependence on TagDecl::TypeForDecl being mapped down to a TagType (for which getDecl() will return the tag definition, if one exists). This property won't exist for class template partial specializations. 3) Make the canonical declaration of a TagDecl actually canonical, e.g., so that it does not change when the tag is defined. llvm-svn: 77523
* Change uses of:Ted Kremenek2009-07-293-25/+25
| | | | | | | | | | | | | | | | | | | | Type::getAsReferenceType() -> Type::getAs<ReferenceType>() Type::getAsRecordType() -> Type::getAs<RecordType>() Type::getAsPointerType() -> Type::getAs<PointerType>() Type::getAsBlockPointerType() -> Type::getAs<BlockPointerType>() Type::getAsLValueReferenceType() -> Type::getAs<LValueReferenceType>() Type::getAsRValueReferenceType() -> Type::getAs<RValueReferenceType>() Type::getAsMemberPointerType() -> Type::getAs<MemberPointerType>() Type::getAsReferenceType() -> Type::getAs<ReferenceType>() Type::getAsTagType() -> Type::getAs<TagType>() And remove Type::getAsReferenceType(), etc. This change is similar to one I made a couple weeks ago, but that was partly reverted pending some additional design discussion. With Doug's pending smart pointer changes for Types, it seemed natural to take this approach. llvm-svn: 77510
* Don't use a formatted ostream when writing .ll either.Daniel Dunbar2009-07-291-1/+1
| | | | llvm-svn: 77474
* Don't use a formatted ostream when writing .bc files. I don't really understandDaniel Dunbar2009-07-291-1/+1
| | | | | | this interface design, Chris please check. llvm-svn: 77473
* Add missing '"'Daniel Dunbar2009-07-291-1/+1
| | | | llvm-svn: 77416
* Make longjmp a real builtin.Mike Stump2009-07-282-0/+24
| | | | llvm-svn: 77291
* (1) Enable PlistDiagnostics to take an option "PathDiagnosticClientFactory"Ted Kremenek2009-07-273-16/+105
| | | | | | | | | | | | | | | object that it can use to forward PathDiagnostics for further processing. Along with this feature, the PlistDiagnostics object logs which files are created by the forwarding of the PathDiagnostics. (2) Create a new PathDiagnosticClientFactory object for HTMLDiagnostics, allowing other PathDiagnosticClients to forward PathDiagnostics through an opaque interface. (3) Create a "plist-html" diagnostics option in AnalysisConsumer to allow the logging of HTML files created in a hybrid Plist+HTML diagnostic client. llvm-svn: 77264
* Make ObjCImplDecl inherit from ObjCContainerDecl.Argyrios Kyrtzidis2009-07-272-4/+2
| | | | | | ObjCContainerDecl now is the root class for objc decls that contain methods. llvm-svn: 77235
* add gentoo 2009.0 g++ header locationsNuno Lopes2009-07-261-1/+9
| | | | llvm-svn: 77158
* Update for API change.Daniel Dunbar2009-07-261-1/+1
| | | | llvm-svn: 77112
* Lookup targets by Triple instead of Module.Daniel Dunbar2009-07-261-1/+2
| | | | llvm-svn: 77108
* Allow front-end 'isa' access on object's of type 'id'.Steve Naroff2009-07-242-0/+21
| | | | | | | | Enhance test case to cover 'isa' access on interface types (clang produces an error, GCC produces a warning). Still need back-end CodeGen for ObjCIsaExpr. llvm-svn: 76979
* Clean up the ActOnTag action, so that there is only a single entryDouglas Gregor2009-07-231-0/+1
| | | | | | | | | point that covers templates and non-templates. This should eliminate the flood of warnings I introduced yesterday. Removed the ActOnClassTemplate action, which is no longer used. llvm-svn: 76881
* Add initial implementation of checking for uses of floating point as a loop ↵Ted Kremenek2009-07-231-0/+5
| | | | | | counter. llvm-svn: 76833
* Add the location of the tag keyword into TagDecl. From EneaDouglas Gregor2009-07-212-2/+4
| | | | | | Zaffanella, with tweaks from Abramo Bagnara. llvm-svn: 76576
* define __STDC_VERSION__ processor token for c94Ryan Flynn2009-07-211-4/+7
| | | | llvm-svn: 76514
* Remove the ObjCCategoryImpls vector from Sema class.Argyrios Kyrtzidis2009-07-212-26/+0
| | | | | | Use ObjCInterfaceDecl::getCategoryClassMethod() and ObjCInterfaceDecl::getCategoryInstanceMethod() for the same functionality. llvm-svn: 76510
* Add yet more analysis for CFGs involving conditionals that are actually ↵Mike Stump2009-07-201-1/+1
| | | | | | constant. llvm-svn: 76500
* Reuse VarDecl::Init to store the default argument of a ParmVarDecl,Douglas Gregor2009-07-202-4/+0
| | | | | | | reducing the size of ParmVarDecl by one pointer. Also means that we'll properly (de-)serialize default arguments in C++ PCH files. llvm-svn: 76487
* Remove ObjCQualifiedInterfaceType:-)Steve Naroff2009-07-183-39/+17
| | | | llvm-svn: 76321
* Fix a comment.Zhongxing Xu2009-07-181-1/+1
| | | | llvm-svn: 76303
* Location should be passed to setLocEnd() not to setAtEndLoc() which belongs ↵Argyrios Kyrtzidis2009-07-181-1/+1
| | | | | | to ObjCContainerDecl. llvm-svn: 76268
* Per offline discussion with Steve Naroff, add back Type::getAsXXXType() methodsTed Kremenek2009-07-173-24/+24
| | | | | | | | | until Doug Gregor's Type smart pointer code lands (or more discussion occurs). These methods just call the new Type::getAs<XXX> methods, so we still have reduced implementation redundancy. Having explicit getAsXXXType() methods makes it easier to set breakpoints in the debugger. llvm-svn: 76193
* Replaced Type::getAsLValueReferenceType(), Type::getAsRValueReferenceType(), ↵Ted Kremenek2009-07-171-1/+1
| | | | | | Type::getAsMemberPointerType(), Type::getAsTagType(), and Type::getAsRecordType() with their Type::getAs<XXX> equivalents. llvm-svn: 76139
* Add member template 'Type::getAs<T>', which converts a Type* to a respective T*.Ted Kremenek2009-07-162-23/+23
| | | | | | | | | | | | | | | | | | | | | This method is intended to eventually replace the individual Type::getAsXXXType<> methods. The motivation behind this change is twofold: 1) Reduce redundant implementations of Type::getAsXXXType() methods. Most of them are basically copy-and-paste. 2) By centralizing the implementation of the getAs<Type> logic we can more smoothly move over to Doug Gregor's proposed canonical type smart pointer scheme. Along with this patch: a) Removed 'Type::getAsPointerType()'; now clients use getAs<PointerType>. b) Removed 'Type::getAsBlockPointerTypE()'; now clients use getAs<BlockPointerType>. llvm-svn: 76098
* Move the source-level CFG from libAST to libAnalysis.Ted Kremenek2009-07-161-1/+1
| | | | llvm-svn: 76092
* Lexically order files in CMakeLists.txt files.Ted Kremenek2009-07-151-1/+1
| | | | llvm-svn: 75832
* Reapply r75764: [llvm up] Switch to using the new TargetRegistryDaniel Dunbar2009-07-151-5/+5
| | | | llvm-svn: 75821
* 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-152-0/+4
| | | | | | | | | | | | 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-153-2/+5
| | | | | | | 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
* fix fallout of the LLVM codegen switching to formatted_raw_ostream.Chris Lattner2009-07-141-6/+11
| | | | llvm-svn: 75675
OpenPOWER on IntegriCloud