Update Clang for rebase to r212749.
This also fixes a small issue with arm_neon.h not being generated always.
Includes a cherry-pick of:
r213450 - fixes mac-specific header issue
r213126 - removes a default -Bsymbolic on Android
Change-Id: I2a790a0f5d3b2aab11de596fc3a74e7cbc99081d
diff --git a/tools/libclang/CXCursor.cpp b/tools/libclang/CXCursor.cpp
index fb4ce66..48f3480 100644
--- a/tools/libclang/CXCursor.cpp
+++ b/tools/libclang/CXCursor.cpp
@@ -34,7 +34,7 @@
CXCursor cxcursor::MakeCXCursorInvalid(CXCursorKind K, CXTranslationUnit TU) {
assert(K >= CXCursor_FirstInvalid && K <= CXCursor_LastInvalid);
- CXCursor C = { K, 0, { 0, 0, TU } };
+ CXCursor C = { K, 0, { nullptr, nullptr, TU } };
return C;
}
@@ -53,6 +53,10 @@
case attr::Pure: return CXCursor_PureAttr;
case attr::Const: return CXCursor_ConstAttr;
case attr::NoDuplicate: return CXCursor_NoDuplicateAttr;
+ case attr::CUDAConstant: return CXCursor_CUDAConstantAttr;
+ case attr::CUDADevice: return CXCursor_CUDADeviceAttr;
+ case attr::CUDAGlobal: return CXCursor_CUDAGlobalAttr;
+ case attr::CUDAHost: return CXCursor_CUDAHostAttr;
}
return CXCursor_UnexposedAttr;
@@ -211,6 +215,10 @@
case Stmt::SEHFinallyStmtClass:
K = CXCursor_SEHFinallyStmt;
break;
+
+ case Stmt::SEHLeaveStmtClass:
+ K = CXCursor_SEHLeaveStmt;
+ break;
case Stmt::ArrayTypeTraitExprClass:
case Stmt::AsTypeExprClass:
@@ -515,6 +523,24 @@
case Stmt::OMPSimdDirectiveClass:
K = CXCursor_OMPSimdDirective;
break;
+ case Stmt::OMPForDirectiveClass:
+ K = CXCursor_OMPForDirective;
+ break;
+ case Stmt::OMPSectionsDirectiveClass:
+ K = CXCursor_OMPSectionsDirective;
+ break;
+ case Stmt::OMPSectionDirectiveClass:
+ K = CXCursor_OMPSectionDirective;
+ break;
+ case Stmt::OMPSingleDirectiveClass:
+ K = CXCursor_OMPSingleDirective;
+ break;
+ case Stmt::OMPParallelForDirectiveClass:
+ K = CXCursor_OMPParallelForDirective;
+ break;
+ case Stmt::OMPParallelSectionsDirectiveClass:
+ K = CXCursor_OMPParallelSectionsDirective;
+ break;
}
CXCursor C = { K, 0, { Parent, S, TU } };
@@ -655,7 +681,7 @@
CXCursor cxcursor::MakeCursorCXXBaseSpecifier(const CXXBaseSpecifier *B,
CXTranslationUnit TU){
- CXCursor C = { CXCursor_CXXBaseSpecifier, 0, { B, 0, TU } };
+ CXCursor C = { CXCursor_CXXBaseSpecifier, 0, { B, nullptr, TU } };
return C;
}
@@ -684,7 +710,7 @@
CXCursor cxcursor::MakeMacroDefinitionCursor(const MacroDefinition *MI,
CXTranslationUnit TU) {
- CXCursor C = { CXCursor_MacroDefinition, 0, { MI, 0, TU } };
+ CXCursor C = { CXCursor_MacroDefinition, 0, { MI, nullptr, TU } };
return C;
}
@@ -695,7 +721,7 @@
CXCursor cxcursor::MakeMacroExpansionCursor(MacroExpansion *MI,
CXTranslationUnit TU) {
- CXCursor C = { CXCursor_MacroExpansion, 0, { MI, 0, TU } };
+ CXCursor C = { CXCursor_MacroExpansion, 0, { MI, nullptr, TU } };
return C;
}
@@ -725,7 +751,7 @@
CXCursor cxcursor::MakeInclusionDirectiveCursor(InclusionDirective *ID,
CXTranslationUnit TU) {
- CXCursor C = { CXCursor_InclusionDirective, 0, { ID, 0, TU } };
+ CXCursor C = { CXCursor_InclusionDirective, 0, { ID, nullptr, TU } };
return C;
}
@@ -808,7 +834,7 @@
if (Cursor.kind == CXCursor_ObjCSuperClassRef ||
Cursor.kind == CXCursor_ObjCProtocolRef ||
Cursor.kind == CXCursor_ObjCClassRef)
- return 0;
+ return nullptr;
return static_cast<const Stmt *>(Cursor.data[1]);
}
@@ -828,7 +854,7 @@
ASTUnit *cxcursor::getCursorASTUnit(CXCursor Cursor) {
CXTranslationUnit TU = getCursorTU(Cursor);
if (!TU)
- return 0;
+ return nullptr;
return cxtu::getASTUnit(TU);
}
@@ -902,7 +928,7 @@
return cursor;
const Expr *E = getCursorExpr(cursor);
- TypeSourceInfo *Type = 0;
+ TypeSourceInfo *Type = nullptr;
if (const CXXUnresolvedConstructExpr *
UnCtor = dyn_cast<CXXUnresolvedConstructExpr>(E)) {
Type = UnCtor->getTypeSourceInfo();
@@ -985,11 +1011,11 @@
const Decl *D = cxcursor::getCursorDecl(C);
if (const ObjCMethodDecl *MD = dyn_cast_or_null<ObjCMethodDecl>(D)) {
if (i < MD->param_size())
- return cxcursor::MakeCXCursor(MD->param_begin()[i],
+ return cxcursor::MakeCXCursor(MD->parameters()[i],
cxcursor::getCursorTU(C));
} else if (const FunctionDecl *FD = dyn_cast_or_null<FunctionDecl>(D)) {
if (i < FD->param_size())
- return cxcursor::MakeCXCursor(FD->param_begin()[i],
+ return cxcursor::MakeCXCursor(FD->parameters()[i],
cxcursor::getCursorTU(C));
}
}
@@ -1103,7 +1129,7 @@
false);
return String;
}
- return NULL;
+ return nullptr;
}
} // end: extern C.
@@ -1135,7 +1161,7 @@
CXCursor **overridden,
unsigned *num_overridden) {
if (overridden)
- *overridden = 0;
+ *overridden = nullptr;
if (num_overridden)
*num_overridden = 0;
@@ -1149,9 +1175,9 @@
OverridenCursorsPool &pool =
*static_cast<OverridenCursorsPool*>(TU->OverridenCursorsPool);
-
- OverridenCursorsPool::CursorVec *Vec = 0;
-
+
+ OverridenCursorsPool::CursorVec *Vec = nullptr;
+
if (!pool.AvailableCursors.empty()) {
Vec = pool.AvailableCursors.back();
pool.AvailableCursors.pop_back();
@@ -1209,7 +1235,7 @@
}
int clang_Cursor_isDynamicCall(CXCursor C) {
- const Expr *E = 0;
+ const Expr *E = nullptr;
if (clang_isExpression(C.kind))
E = getCursorExpr(C);
if (!E)
@@ -1218,7 +1244,7 @@
if (const ObjCMessageExpr *MsgE = dyn_cast<ObjCMessageExpr>(E))
return MsgE->getReceiverKind() == ObjCMessageExpr::Instance;
- const MemberExpr *ME = 0;
+ const MemberExpr *ME = nullptr;
if (isa<MemberExpr>(E))
ME = cast<MemberExpr>(E);
else if (const CallExpr *CE = dyn_cast<CallExpr>(E))
@@ -1235,7 +1261,7 @@
CXType clang_Cursor_getReceiverType(CXCursor C) {
CXTranslationUnit TU = cxcursor::getCursorTU(C);
- const Expr *E = 0;
+ const Expr *E = nullptr;
if (clang_isExpression(C.kind))
E = getCursorExpr(C);