Automatic Reference Counting.
Language-design credit goes to a lot of people, but I particularly want
to single out Blaine Garst and Patrick Beard for their contributions.
Compiler implementation credit goes to Argyrios, Doug, Fariborz, and myself,
in no particular order.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133103 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/tools/libclang/CIndex.cpp b/tools/libclang/CIndex.cpp
index 2a9d96d..f9cd408 100644
--- a/tools/libclang/CIndex.cpp
+++ b/tools/libclang/CIndex.cpp
@@ -2374,7 +2374,8 @@
unsigned clang_defaultEditingTranslationUnitOptions() {
return CXTranslationUnit_PrecompiledPreamble |
CXTranslationUnit_CacheCompletionResults |
- CXTranslationUnit_CXXPrecompiledPreamble;
+ CXTranslationUnit_CXXPrecompiledPreamble |
+ CXTranslationUnit_CXXChainedPCH;
}
CXTranslationUnit
@@ -4797,6 +4798,7 @@
llvm::StringSwitch<bool>(II->getName())
.Case("readonly", true)
.Case("assign", true)
+ .Case("unsafe_unretained", true)
.Case("readwrite", true)
.Case("retain", true)
.Case("copy", true)
@@ -4804,6 +4806,8 @@
.Case("atomic", true)
.Case("getter", true)
.Case("setter", true)
+ .Case("strong", true)
+ .Case("weak", true)
.Default(false))
Tokens[I].int_data[0] = CXToken_Keyword;
}
diff --git a/tools/libclang/CXCursor.cpp b/tools/libclang/CXCursor.cpp
index b34370d..3513451 100644
--- a/tools/libclang/CXCursor.cpp
+++ b/tools/libclang/CXCursor.cpp
@@ -92,6 +92,7 @@
case Stmt::ObjCAtFinallyStmtClass:
case Stmt::ObjCAtThrowStmtClass:
case Stmt::ObjCAtSynchronizedStmtClass:
+ case Stmt::ObjCAutoreleasePoolStmtClass:
case Stmt::ObjCForCollectionStmtClass:
case Stmt::CXXCatchStmtClass:
case Stmt::CXXTryStmtClass:
@@ -167,7 +168,9 @@
case Stmt::ObjCEncodeExprClass:
case Stmt::ObjCSelectorExprClass:
case Stmt::ObjCProtocolExprClass:
- case Stmt::ObjCIsaExprClass:
+ case Stmt::ObjCIsaExprClass:
+ case Stmt::ObjCIndirectCopyRestoreExprClass:
+ case Stmt::ObjCBridgedCastExprClass:
case Stmt::ShuffleVectorExprClass:
case Stmt::BlockExprClass:
case Stmt::OpaqueValueExprClass:
diff --git a/tools/libclang/CXType.cpp b/tools/libclang/CXType.cpp
index 5af9553..45c7346 100644
--- a/tools/libclang/CXType.cpp
+++ b/tools/libclang/CXType.cpp
@@ -366,7 +366,11 @@
QualType T = GetQualType(X);
if (!T.getTypePtrOrNull())
return 0;
- return T->isPODType() ? 1 : 0;
+
+ CXTranslationUnit TU = GetTU(X);
+ ASTUnit *AU = static_cast<ASTUnit*>(TU->TUData);
+
+ return T.isPODType(AU->getASTContext()) ? 1 : 0;
}
CXString clang_getDeclObjCTypeEncoding(CXCursor C) {