Implement a more sensible strategy for ObjC built-in types (addressing a long standing FIXME in Sema::GetObjcIdType()).
This removes several gross hacks to work around the previous "lazy" behavior.
Two notes:
- MinimalActions still needs to be taught about the built-in types (This breaks one of the -noop test cases). I started this, then added a FIXME.
- I didn't convert Sema::GetObjcProtoType() yet.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@43567 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/Sema/Sema.h b/Sema/Sema.h
index 13ba636..3b8b5e9 100644
--- a/Sema/Sema.h
+++ b/Sema/Sema.h
@@ -275,17 +275,11 @@
bool MatchTwoMethodDeclarations(const ObjcMethodDecl *Method,
const ObjcMethodDecl *PrevMethod);
- /// GetObjcIdType - Getter for the build-in "id" type.
- QualType GetObjcIdType(SourceLocation Loc = SourceLocation());
-
- /// GetObjcSelType - Getter for the build-in "SEL" type.
- QualType GetObjcSelType(SourceLocation Loc = SourceLocation());
-
/// GetObjcSelType - Getter for the build-in "Protocol *" type.
QualType GetObjcProtoType(SourceLocation Loc = SourceLocation());
- // GetObjcClassType - Getter for the built-in "Class" type.
- QualType GetObjcClassType(SourceLocation Loc = SourceLocation());
+ /// isBuiltinObjcType - Returns true of the type is "id", "SEL", "Class".
+ bool isBuiltinObjcType(TypedefDecl *TD);
/// AddInstanceMethodToGlobalPool - All instance methods in a translation
/// unit are added to a global pool. This allows us to efficiently associate