| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
tighten up the static type system.
llvm-svn: 78164
|
| |
|
|
| |
llvm-svn: 78044
|
| |
|
|
|
|
| |
reports.
llvm-svn: 78021
|
| |
|
|
| |
llvm-svn: 77952
|
| |
|
|
| |
llvm-svn: 77947
|
| |
|
|
| |
llvm-svn: 77945
|
| |
|
|
|
|
| |
reset the current analysis context of the AnalysisManager.
llvm-svn: 77943
|
| |
|
|
|
|
| |
not get flushed out when using '-disable-free'.
llvm-svn: 77882
|
| |
|
|
| |
llvm-svn: 77811
|
| |
|
|
| |
llvm-svn: 77786
|
| |
|
|
|
|
| |
and a name collision.
llvm-svn: 77658
|
| |
|
|
|
|
| |
will be :)
llvm-svn: 77650
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 77599
|
| |
|
|
| |
llvm-svn: 77587
|
| |
|
|
|
|
| |
Move all components creation code into AnalysisConsumer::DigestAnalyzerOptions().
llvm-svn: 77585
|
| |
|
|
|
|
| |
AnalysisContext.
llvm-svn: 77563
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 77474
|
| |
|
|
|
|
| |
this interface design, Chris please check.
llvm-svn: 77473
|
| |
|
|
| |
llvm-svn: 77416
|
| |
|
|
| |
llvm-svn: 77291
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
ObjCContainerDecl now is the root class for objc decls that contain methods.
llvm-svn: 77235
|
| |
|
|
| |
llvm-svn: 77158
|
| |
|
|
| |
llvm-svn: 77112
|
| |
|
|
| |
llvm-svn: 77108
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
counter.
llvm-svn: 76833
|
| |
|
|
|
|
| |
Zaffanella, with tweaks from Abramo Bagnara.
llvm-svn: 76576
|
| |
|
|
| |
llvm-svn: 76514
|
| |
|
|
|
|
| |
Use ObjCInterfaceDecl::getCategoryClassMethod() and ObjCInterfaceDecl::getCategoryInstanceMethod() for the same functionality.
llvm-svn: 76510
|
| |
|
|
|
|
| |
constant.
llvm-svn: 76500
|
| |
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 76321
|
| |
|
|
| |
llvm-svn: 76303
|
| |
|
|
|
|
| |
to ObjCContainerDecl.
llvm-svn: 76268
|
| |
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
Type::getAsMemberPointerType(), Type::getAsTagType(), and Type::getAsRecordType() with their Type::getAs<XXX> equivalents.
llvm-svn: 76139
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 76092
|
| |
|
|
| |
llvm-svn: 75832
|
| |
|
|
| |
llvm-svn: 75821
|
| |
|
|
| |
llvm-svn: 75814
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
Force flag to control whether the case of opening an existing
file is considered an error.
llvm-svn: 75802
|
| |
|
|
| |
llvm-svn: 75764
|
| |
|
|
| |
llvm-svn: 75675
|