Revert "upgrade to clang10"

Reviewed By: jvillard

Differential Revision: D23961256

fbshipit-source-id: d57760b27
master
Martin Trojer 4 years ago committed by Facebook GitHub Bot
parent 9d38d413ce
commit 26dcd63a25

@ -180,7 +180,7 @@ let get_type_tuple = function
#define TYPE(DERIVED, BASE) | DERIVED@@Type (@DERIVED@_type_tuple) -> (type_tuple) #define TYPE(DERIVED, BASE) | DERIVED@@Type (@DERIVED@_type_tuple) -> (type_tuple)
#define ABSTRACT_TYPE(DERIVED, BASE) #define ABSTRACT_TYPE(DERIVED, BASE)
TYPE(None, Type) (* special case for nullptr type *) TYPE(None, Type) (* special case for nullptr type *)
#include <clang/AST/TypeNodes.inc> #include <clang/AST/TypeNodes.def>
let is_valid_binop_kind_name = function let is_valid_binop_kind_name = function
#define BINARY_OPERATION(Name, Spelling) | s(Name) -> true #define BINARY_OPERATION(Name, Spelling) | s(Name) -> true

@ -1112,7 +1112,7 @@ TranslationUnitDecl None:None:None None:None:None
VarDecl tests/friend.cpp:18:1 tests/friend.cpp:18:8 VarDecl tests/friend.cpp:18:1 tests/friend.cpp:18:8
CXXConstructExpr CXXConstructExpr
TypedefDecl tests/friend.cpp:18:8 tests/friend.cpp:18:8 TypedefDecl tests/friend.cpp:18:8 tests/friend.cpp:18:8
86 37 115 58 37 112
TranslationUnitDecl None:None:None None:None:None TranslationUnitDecl None:None:None None:None:None
TypedefDecl None:None:None None:None:None TypedefDecl None:None:None None:None:None
TypedefDecl None:None:None None:None:None TypedefDecl None:None:None None:None:None
@ -1127,58 +1127,32 @@ TranslationUnitDecl None:None:None None:None:None
TypedefDecl tests/FoundationStub.h:9:1 tests/FoundationStub.h:9:22 TypedefDecl tests/FoundationStub.h:9:1 tests/FoundationStub.h:9:22
ObjCInterfaceDecl tests/FoundationStub.h:16:1 tests/FoundationStub.h:27:2 ObjCInterfaceDecl tests/FoundationStub.h:16:1 tests/FoundationStub.h:27:2
ObjCMethodDecl tests/FoundationStub.h:18:1 tests/FoundationStub.h:18:22 ObjCMethodDecl tests/FoundationStub.h:18:1 tests/FoundationStub.h:18:22
ImplicitParamDecl tests/FoundationStub.h:18:22 tests/FoundationStub.h:18:22
ImplicitParamDecl tests/FoundationStub.h:18:22 tests/FoundationStub.h:18:22
ObjCMethodDecl tests/FoundationStub.h:19:1 tests/FoundationStub.h:19:20 ObjCMethodDecl tests/FoundationStub.h:19:1 tests/FoundationStub.h:19:20
ImplicitParamDecl tests/FoundationStub.h:19:20 tests/FoundationStub.h:19:20
ImplicitParamDecl tests/FoundationStub.h:19:20 tests/FoundationStub.h:19:20
ObjCMethodDecl tests/FoundationStub.h:20:1 tests/FoundationStub.h:20:28 ObjCMethodDecl tests/FoundationStub.h:20:1 tests/FoundationStub.h:20:28
ImplicitParamDecl tests/FoundationStub.h:20:28 tests/FoundationStub.h:20:28
ImplicitParamDecl tests/FoundationStub.h:20:28 tests/FoundationStub.h:20:28
ObjCMethodDecl tests/FoundationStub.h:21:1 tests/FoundationStub.h:21:21 ObjCMethodDecl tests/FoundationStub.h:21:1 tests/FoundationStub.h:21:21
ImplicitParamDecl tests/FoundationStub.h:21:21 tests/FoundationStub.h:21:21
ImplicitParamDecl tests/FoundationStub.h:21:21 tests/FoundationStub.h:21:21
ObjCMethodDecl tests/FoundationStub.h:22:1 tests/FoundationStub.h:22:15 ObjCMethodDecl tests/FoundationStub.h:22:1 tests/FoundationStub.h:22:15
ImplicitParamDecl tests/FoundationStub.h:22:15 tests/FoundationStub.h:22:15
ImplicitParamDecl tests/FoundationStub.h:22:15 tests/FoundationStub.h:22:15
ObjCMethodDecl tests/FoundationStub.h:24:1 tests/FoundationStub.h:24:34 ObjCMethodDecl tests/FoundationStub.h:24:1 tests/FoundationStub.h:24:34
ParmVarDecl tests/FoundationStub.h:24:29 tests/FoundationStub.h:24:33 ParmVarDecl tests/FoundationStub.h:24:29 tests/FoundationStub.h:24:33
ImplicitParamDecl tests/FoundationStub.h:24:33 tests/FoundationStub.h:24:33
ImplicitParamDecl tests/FoundationStub.h:24:33 tests/FoundationStub.h:24:33
ObjCMethodDecl tests/FoundationStub.h:25:1 tests/FoundationStub.h:25:41 ObjCMethodDecl tests/FoundationStub.h:25:1 tests/FoundationStub.h:25:41
ParmVarDecl tests/FoundationStub.h:25:29 tests/FoundationStub.h:25:40 ParmVarDecl tests/FoundationStub.h:25:29 tests/FoundationStub.h:25:40
ImplicitParamDecl tests/FoundationStub.h:25:40 tests/FoundationStub.h:25:40
ImplicitParamDecl tests/FoundationStub.h:25:40 tests/FoundationStub.h:25:40
ObjCInterfaceDecl tests/FoundationStub.h:29:1 tests/FoundationStub.h:31:2 ObjCInterfaceDecl tests/FoundationStub.h:29:1 tests/FoundationStub.h:31:2
ObjCMethodDecl tests/FoundationStub.h:30:1 tests/FoundationStub.h:30:37 ObjCMethodDecl tests/FoundationStub.h:30:1 tests/FoundationStub.h:30:37
ParmVarDecl tests/FoundationStub.h:30:32 tests/FoundationStub.h:30:36 ParmVarDecl tests/FoundationStub.h:30:32 tests/FoundationStub.h:30:36
ImplicitParamDecl tests/FoundationStub.h:30:36 tests/FoundationStub.h:30:36
ImplicitParamDecl tests/FoundationStub.h:30:36 tests/FoundationStub.h:30:36
ObjCInterfaceDecl tests/FoundationStub.h:33:1 tests/FoundationStub.h:35:2 ObjCInterfaceDecl tests/FoundationStub.h:33:1 tests/FoundationStub.h:35:2
ObjCMethodDecl tests/FoundationStub.h:34:1 tests/FoundationStub.h:34:21 ObjCMethodDecl tests/FoundationStub.h:34:1 tests/FoundationStub.h:34:21
ImplicitParamDecl tests/FoundationStub.h:34:21 tests/FoundationStub.h:34:21
ImplicitParamDecl tests/FoundationStub.h:34:21 tests/FoundationStub.h:34:21
ObjCInterfaceDecl tests/FoundationStub.h:37:1 tests/FoundationStub.h:42:2 ObjCInterfaceDecl tests/FoundationStub.h:37:1 tests/FoundationStub.h:42:2
ObjCMethodDecl tests/FoundationStub.h:38:1 tests/FoundationStub.h:40:56 ObjCMethodDecl tests/FoundationStub.h:38:1 tests/FoundationStub.h:40:56
ParmVarDecl tests/FoundationStub.h:38:46 tests/FoundationStub.h:38:51 ParmVarDecl tests/FoundationStub.h:38:46 tests/FoundationStub.h:38:51
ParmVarDecl tests/FoundationStub.h:39:46 tests/FoundationStub.h:39:51 ParmVarDecl tests/FoundationStub.h:39:46 tests/FoundationStub.h:39:51
ParmVarDecl tests/FoundationStub.h:40:40 tests/FoundationStub.h:40:51 ParmVarDecl tests/FoundationStub.h:40:40 tests/FoundationStub.h:40:51
ImplicitParamDecl tests/FoundationStub.h:40:51 tests/FoundationStub.h:40:51
ImplicitParamDecl tests/FoundationStub.h:40:51 tests/FoundationStub.h:40:51
ObjCMethodDecl tests/FoundationStub.h:41:1 tests/FoundationStub.h:41:38 ObjCMethodDecl tests/FoundationStub.h:41:1 tests/FoundationStub.h:41:38
ParmVarDecl tests/FoundationStub.h:41:32 tests/FoundationStub.h:41:35 ParmVarDecl tests/FoundationStub.h:41:32 tests/FoundationStub.h:41:35
ImplicitParamDecl tests/FoundationStub.h:41:35 tests/FoundationStub.h:41:35
ImplicitParamDecl tests/FoundationStub.h:41:35 tests/FoundationStub.h:41:35
ObjCInterfaceDecl tests/FoundationStub.h:44:1 tests/FoundationStub.h:47:2 ObjCInterfaceDecl tests/FoundationStub.h:44:1 tests/FoundationStub.h:47:2
ObjCMethodDecl tests/FoundationStub.h:45:1 tests/FoundationStub.h:45:64 ObjCMethodDecl tests/FoundationStub.h:45:1 tests/FoundationStub.h:45:64
ParmVarDecl tests/FoundationStub.h:45:35 tests/FoundationStub.h:45:40 ParmVarDecl tests/FoundationStub.h:45:35 tests/FoundationStub.h:45:40
ParmVarDecl tests/FoundationStub.h:45:52 tests/FoundationStub.h:45:61 ParmVarDecl tests/FoundationStub.h:45:52 tests/FoundationStub.h:45:61
ImplicitParamDecl tests/FoundationStub.h:45:61 tests/FoundationStub.h:45:61
ImplicitParamDecl tests/FoundationStub.h:45:61 tests/FoundationStub.h:45:61
ObjCMethodDecl tests/FoundationStub.h:46:1 tests/FoundationStub.h:46:49 ObjCMethodDecl tests/FoundationStub.h:46:1 tests/FoundationStub.h:46:49
ParmVarDecl tests/FoundationStub.h:46:33 tests/FoundationStub.h:46:44 ParmVarDecl tests/FoundationStub.h:46:33 tests/FoundationStub.h:46:44
ImplicitParamDecl tests/FoundationStub.h:46:44 tests/FoundationStub.h:46:44
ImplicitParamDecl tests/FoundationStub.h:46:44 tests/FoundationStub.h:46:44
ObjCInterfaceDecl tests/FoundationStub.h:49:1 tests/FoundationStub.h:50:2 ObjCInterfaceDecl tests/FoundationStub.h:49:1 tests/FoundationStub.h:50:2
FunctionDecl tests/FoundationStub.h:52:13 tests/FoundationStub.h:52:13 FunctionDecl tests/FoundationStub.h:52:13 tests/FoundationStub.h:52:13
ParmVarDecl tests/FoundationStub.h:52:13 tests/FoundationStub.h:52:13 ParmVarDecl tests/FoundationStub.h:52:13 tests/FoundationStub.h:52:13
@ -1187,8 +1161,6 @@ TranslationUnitDecl None:None:None None:None:None
ObjCInterfaceDecl tests/Hello.m:10:1 tests/Hello.m:12:2 ObjCInterfaceDecl tests/Hello.m:10:1 tests/Hello.m:12:2
ObjCMethodDecl tests/Hello.m:11:1 tests/Hello.m:11:19 ObjCMethodDecl tests/Hello.m:11:1 tests/Hello.m:11:19
ParmVarDecl tests/Hello.m:11:14 tests/Hello.m:11:18 ParmVarDecl tests/Hello.m:11:14 tests/Hello.m:11:18
ImplicitParamDecl tests/Hello.m:11:18 tests/Hello.m:11:18
ImplicitParamDecl tests/Hello.m:11:18 tests/Hello.m:11:18
ObjCImplementationDecl tests/Hello.m:14:1 tests/Hello.m:20:1 ObjCImplementationDecl tests/Hello.m:14:1 tests/Hello.m:20:1
ObjCMethodDecl tests/Hello.m:15:1 tests/Hello.m:19:1 ObjCMethodDecl tests/Hello.m:15:1 tests/Hello.m:19:1
ParmVarDecl tests/Hello.m:15:14 tests/Hello.m:15:18 ParmVarDecl tests/Hello.m:15:14 tests/Hello.m:15:18
@ -1237,7 +1209,7 @@ TranslationUnitDecl None:None:None None:None:None
ReturnStmt ReturnStmt
IntegerLiteral IntegerLiteral
TypedefDecl tests/Hello.m:28:10 tests/Hello.m:28:10 TypedefDecl tests/Hello.m:28:10 tests/Hello.m:28:10
176 193 139 132 193 139
TranslationUnitDecl None:None:None None:None:None TranslationUnitDecl None:None:None None:None:None
TypedefDecl None:None:None None:None:None TypedefDecl None:None:None None:None:None
TypedefDecl None:None:None None:None:None TypedefDecl None:None:None None:None:None
@ -1252,58 +1224,32 @@ TranslationUnitDecl None:None:None None:None:None
TypedefDecl tests/FoundationStub.h:9:1 tests/FoundationStub.h:9:22 TypedefDecl tests/FoundationStub.h:9:1 tests/FoundationStub.h:9:22
ObjCInterfaceDecl tests/FoundationStub.h:16:1 tests/FoundationStub.h:27:2 ObjCInterfaceDecl tests/FoundationStub.h:16:1 tests/FoundationStub.h:27:2
ObjCMethodDecl tests/FoundationStub.h:18:1 tests/FoundationStub.h:18:22 ObjCMethodDecl tests/FoundationStub.h:18:1 tests/FoundationStub.h:18:22
ImplicitParamDecl tests/FoundationStub.h:18:22 tests/FoundationStub.h:18:22
ImplicitParamDecl tests/FoundationStub.h:18:22 tests/FoundationStub.h:18:22
ObjCMethodDecl tests/FoundationStub.h:19:1 tests/FoundationStub.h:19:20 ObjCMethodDecl tests/FoundationStub.h:19:1 tests/FoundationStub.h:19:20
ImplicitParamDecl tests/FoundationStub.h:19:20 tests/FoundationStub.h:19:20
ImplicitParamDecl tests/FoundationStub.h:19:20 tests/FoundationStub.h:19:20
ObjCMethodDecl tests/FoundationStub.h:20:1 tests/FoundationStub.h:20:28 ObjCMethodDecl tests/FoundationStub.h:20:1 tests/FoundationStub.h:20:28
ImplicitParamDecl tests/FoundationStub.h:20:28 tests/FoundationStub.h:20:28
ImplicitParamDecl tests/FoundationStub.h:20:28 tests/FoundationStub.h:20:28
ObjCMethodDecl tests/FoundationStub.h:21:1 tests/FoundationStub.h:21:21 ObjCMethodDecl tests/FoundationStub.h:21:1 tests/FoundationStub.h:21:21
ImplicitParamDecl tests/FoundationStub.h:21:21 tests/FoundationStub.h:21:21
ImplicitParamDecl tests/FoundationStub.h:21:21 tests/FoundationStub.h:21:21
ObjCMethodDecl tests/FoundationStub.h:22:1 tests/FoundationStub.h:22:15 ObjCMethodDecl tests/FoundationStub.h:22:1 tests/FoundationStub.h:22:15
ImplicitParamDecl tests/FoundationStub.h:22:15 tests/FoundationStub.h:22:15
ImplicitParamDecl tests/FoundationStub.h:22:15 tests/FoundationStub.h:22:15
ObjCMethodDecl tests/FoundationStub.h:24:1 tests/FoundationStub.h:24:34 ObjCMethodDecl tests/FoundationStub.h:24:1 tests/FoundationStub.h:24:34
ParmVarDecl tests/FoundationStub.h:24:29 tests/FoundationStub.h:24:33 ParmVarDecl tests/FoundationStub.h:24:29 tests/FoundationStub.h:24:33
ImplicitParamDecl tests/FoundationStub.h:24:33 tests/FoundationStub.h:24:33
ImplicitParamDecl tests/FoundationStub.h:24:33 tests/FoundationStub.h:24:33
ObjCMethodDecl tests/FoundationStub.h:25:1 tests/FoundationStub.h:25:41 ObjCMethodDecl tests/FoundationStub.h:25:1 tests/FoundationStub.h:25:41
ParmVarDecl tests/FoundationStub.h:25:29 tests/FoundationStub.h:25:40 ParmVarDecl tests/FoundationStub.h:25:29 tests/FoundationStub.h:25:40
ImplicitParamDecl tests/FoundationStub.h:25:40 tests/FoundationStub.h:25:40
ImplicitParamDecl tests/FoundationStub.h:25:40 tests/FoundationStub.h:25:40
ObjCInterfaceDecl tests/FoundationStub.h:29:1 tests/FoundationStub.h:31:2 ObjCInterfaceDecl tests/FoundationStub.h:29:1 tests/FoundationStub.h:31:2
ObjCMethodDecl tests/FoundationStub.h:30:1 tests/FoundationStub.h:30:37 ObjCMethodDecl tests/FoundationStub.h:30:1 tests/FoundationStub.h:30:37
ParmVarDecl tests/FoundationStub.h:30:32 tests/FoundationStub.h:30:36 ParmVarDecl tests/FoundationStub.h:30:32 tests/FoundationStub.h:30:36
ImplicitParamDecl tests/FoundationStub.h:30:36 tests/FoundationStub.h:30:36
ImplicitParamDecl tests/FoundationStub.h:30:36 tests/FoundationStub.h:30:36
ObjCInterfaceDecl tests/FoundationStub.h:33:1 tests/FoundationStub.h:35:2 ObjCInterfaceDecl tests/FoundationStub.h:33:1 tests/FoundationStub.h:35:2
ObjCMethodDecl tests/FoundationStub.h:34:1 tests/FoundationStub.h:34:21 ObjCMethodDecl tests/FoundationStub.h:34:1 tests/FoundationStub.h:34:21
ImplicitParamDecl tests/FoundationStub.h:34:21 tests/FoundationStub.h:34:21
ImplicitParamDecl tests/FoundationStub.h:34:21 tests/FoundationStub.h:34:21
ObjCInterfaceDecl tests/FoundationStub.h:37:1 tests/FoundationStub.h:42:2 ObjCInterfaceDecl tests/FoundationStub.h:37:1 tests/FoundationStub.h:42:2
ObjCMethodDecl tests/FoundationStub.h:38:1 tests/FoundationStub.h:40:56 ObjCMethodDecl tests/FoundationStub.h:38:1 tests/FoundationStub.h:40:56
ParmVarDecl tests/FoundationStub.h:38:46 tests/FoundationStub.h:38:51 ParmVarDecl tests/FoundationStub.h:38:46 tests/FoundationStub.h:38:51
ParmVarDecl tests/FoundationStub.h:39:46 tests/FoundationStub.h:39:51 ParmVarDecl tests/FoundationStub.h:39:46 tests/FoundationStub.h:39:51
ParmVarDecl tests/FoundationStub.h:40:40 tests/FoundationStub.h:40:51 ParmVarDecl tests/FoundationStub.h:40:40 tests/FoundationStub.h:40:51
ImplicitParamDecl tests/FoundationStub.h:40:51 tests/FoundationStub.h:40:51
ImplicitParamDecl tests/FoundationStub.h:40:51 tests/FoundationStub.h:40:51
ObjCMethodDecl tests/FoundationStub.h:41:1 tests/FoundationStub.h:41:38 ObjCMethodDecl tests/FoundationStub.h:41:1 tests/FoundationStub.h:41:38
ParmVarDecl tests/FoundationStub.h:41:32 tests/FoundationStub.h:41:35 ParmVarDecl tests/FoundationStub.h:41:32 tests/FoundationStub.h:41:35
ImplicitParamDecl tests/FoundationStub.h:41:35 tests/FoundationStub.h:41:35
ImplicitParamDecl tests/FoundationStub.h:41:35 tests/FoundationStub.h:41:35
ObjCInterfaceDecl tests/FoundationStub.h:44:1 tests/FoundationStub.h:47:2 ObjCInterfaceDecl tests/FoundationStub.h:44:1 tests/FoundationStub.h:47:2
ObjCMethodDecl tests/FoundationStub.h:45:1 tests/FoundationStub.h:45:64 ObjCMethodDecl tests/FoundationStub.h:45:1 tests/FoundationStub.h:45:64
ParmVarDecl tests/FoundationStub.h:45:35 tests/FoundationStub.h:45:40 ParmVarDecl tests/FoundationStub.h:45:35 tests/FoundationStub.h:45:40
ParmVarDecl tests/FoundationStub.h:45:52 tests/FoundationStub.h:45:61 ParmVarDecl tests/FoundationStub.h:45:52 tests/FoundationStub.h:45:61
ImplicitParamDecl tests/FoundationStub.h:45:61 tests/FoundationStub.h:45:61
ImplicitParamDecl tests/FoundationStub.h:45:61 tests/FoundationStub.h:45:61
ObjCMethodDecl tests/FoundationStub.h:46:1 tests/FoundationStub.h:46:49 ObjCMethodDecl tests/FoundationStub.h:46:1 tests/FoundationStub.h:46:49
ParmVarDecl tests/FoundationStub.h:46:33 tests/FoundationStub.h:46:44 ParmVarDecl tests/FoundationStub.h:46:33 tests/FoundationStub.h:46:44
ImplicitParamDecl tests/FoundationStub.h:46:44 tests/FoundationStub.h:46:44
ImplicitParamDecl tests/FoundationStub.h:46:44 tests/FoundationStub.h:46:44
ObjCInterfaceDecl tests/FoundationStub.h:49:1 tests/FoundationStub.h:50:2 ObjCInterfaceDecl tests/FoundationStub.h:49:1 tests/FoundationStub.h:50:2
FunctionDecl tests/FoundationStub.h:52:13 tests/FoundationStub.h:52:13 FunctionDecl tests/FoundationStub.h:52:13 tests/FoundationStub.h:52:13
ParmVarDecl tests/FoundationStub.h:52:13 tests/FoundationStub.h:52:13 ParmVarDecl tests/FoundationStub.h:52:13 tests/FoundationStub.h:52:13
@ -1312,12 +1258,8 @@ TranslationUnitDecl None:None:None None:None:None
ObjCProtocolDecl tests/ObjCTest.m:10:1 tests/ObjCTest.m:12:2 ObjCProtocolDecl tests/ObjCTest.m:10:1 tests/ObjCTest.m:12:2
ObjCPropertyDecl tests/ObjCTest.m:11:1 tests/ObjCTest.m:11:38 ObjCPropertyDecl tests/ObjCTest.m:11:1 tests/ObjCTest.m:11:38
ObjCMethodDecl tests/ObjCTest.m:11:38 tests/ObjCTest.m:11:38 ObjCMethodDecl tests/ObjCTest.m:11:38 tests/ObjCTest.m:11:38
ImplicitParamDecl tests/ObjCTest.m:11:38 tests/ObjCTest.m:11:38
ImplicitParamDecl tests/ObjCTest.m:11:38 tests/ObjCTest.m:11:38
ObjCMethodDecl tests/ObjCTest.m:11:38 tests/ObjCTest.m:11:38 ObjCMethodDecl tests/ObjCTest.m:11:38 tests/ObjCTest.m:11:38
ParmVarDecl tests/ObjCTest.m:11:38 tests/ObjCTest.m:11:38 ParmVarDecl tests/ObjCTest.m:11:38 tests/ObjCTest.m:11:38
ImplicitParamDecl tests/ObjCTest.m:11:38 tests/ObjCTest.m:11:38
ImplicitParamDecl tests/ObjCTest.m:11:38 tests/ObjCTest.m:11:38
ObjCProtocolDecl tests/ObjCTest.m:14:1 tests/ObjCTest.m:14:11 ObjCProtocolDecl tests/ObjCTest.m:14:1 tests/ObjCTest.m:14:11
ObjCInterfaceDecl tests/ObjCTest.m:16:1 tests/ObjCTest.m:24:2 ObjCInterfaceDecl tests/ObjCTest.m:16:1 tests/ObjCTest.m:24:2
ObjCPropertyDecl tests/ObjCTest.m:18:1 tests/ObjCTest.m:18:38 ObjCPropertyDecl tests/ObjCTest.m:18:1 tests/ObjCTest.m:18:38
@ -1355,8 +1297,6 @@ TranslationUnitDecl None:None:None None:None:None
ObjCCategoryDecl tests/ObjCTest.m:26:1 tests/ObjCTest.m:30:2 ObjCCategoryDecl tests/ObjCTest.m:26:1 tests/ObjCTest.m:30:2
ObjCMethodDecl tests/ObjCTest.m:28:1 tests/ObjCTest.m:28:35 ObjCMethodDecl tests/ObjCTest.m:28:1 tests/ObjCTest.m:28:35
ParmVarDecl tests/ObjCTest.m:28:14 tests/ObjCTest.m:28:34 ParmVarDecl tests/ObjCTest.m:28:14 tests/ObjCTest.m:28:34
ImplicitParamDecl tests/ObjCTest.m:28:34 tests/ObjCTest.m:28:34
ImplicitParamDecl tests/ObjCTest.m:28:34 tests/ObjCTest.m:28:34
ObjCImplementationDecl tests/ObjCTest.m:32:1 tests/ObjCTest.m:65:1 ObjCImplementationDecl tests/ObjCTest.m:32:1 tests/ObjCTest.m:65:1
ObjCMethodDecl tests/ObjCTest.m:34:1 tests/ObjCTest.m:63:1 ObjCMethodDecl tests/ObjCTest.m:34:1 tests/ObjCTest.m:63:1
ParmVarDecl tests/ObjCTest.m:34:14 tests/ObjCTest.m:34:34 ParmVarDecl tests/ObjCTest.m:34:14 tests/ObjCTest.m:34:34
@ -1595,39 +1535,9 @@ TranslationUnitDecl None:None:None None:None:None
ObjCPropertyImplDecl tests/ObjCTest.m:21:34 tests/ObjCTest.m:21:34 ObjCPropertyImplDecl tests/ObjCTest.m:21:34 tests/ObjCTest.m:21:34
ObjCIvarDecl tests/ObjCTest.m:22:54 tests/ObjCTest.m:22:54 ObjCIvarDecl tests/ObjCTest.m:22:54 tests/ObjCTest.m:22:54
ObjCPropertyImplDecl tests/ObjCTest.m:22:54 tests/ObjCTest.m:22:54 ObjCPropertyImplDecl tests/ObjCTest.m:22:54 tests/ObjCTest.m:22:54
ObjCMethodDecl tests/ObjCTest.m:18:38 tests/ObjCTest.m:18:38
ImplicitParamDecl tests/ObjCTest.m:18:38 tests/ObjCTest.m:18:38
ImplicitParamDecl tests/ObjCTest.m:18:38 tests/ObjCTest.m:18:38
ObjCMethodDecl tests/ObjCTest.m:18:38 tests/ObjCTest.m:18:38
ParmVarDecl tests/ObjCTest.m:18:38 tests/ObjCTest.m:18:38
ImplicitParamDecl tests/ObjCTest.m:18:38 tests/ObjCTest.m:18:38
ImplicitParamDecl tests/ObjCTest.m:18:38 tests/ObjCTest.m:18:38
ObjCMethodDecl tests/ObjCTest.m:20:36 tests/ObjCTest.m:20:36
ImplicitParamDecl tests/ObjCTest.m:20:36 tests/ObjCTest.m:20:36
ImplicitParamDecl tests/ObjCTest.m:20:36 tests/ObjCTest.m:20:36
ObjCMethodDecl tests/ObjCTest.m:20:36 tests/ObjCTest.m:20:36
ParmVarDecl tests/ObjCTest.m:20:36 tests/ObjCTest.m:20:36
ImplicitParamDecl tests/ObjCTest.m:20:36 tests/ObjCTest.m:20:36
ImplicitParamDecl tests/ObjCTest.m:20:36 tests/ObjCTest.m:20:36
ObjCMethodDecl tests/ObjCTest.m:21:34 tests/ObjCTest.m:21:34
ImplicitParamDecl tests/ObjCTest.m:21:34 tests/ObjCTest.m:21:34
ImplicitParamDecl tests/ObjCTest.m:21:34 tests/ObjCTest.m:21:34
ObjCMethodDecl tests/ObjCTest.m:21:34 tests/ObjCTest.m:21:34
ParmVarDecl tests/ObjCTest.m:21:34 tests/ObjCTest.m:21:34
ImplicitParamDecl tests/ObjCTest.m:21:34 tests/ObjCTest.m:21:34
ImplicitParamDecl tests/ObjCTest.m:21:34 tests/ObjCTest.m:21:34
ObjCMethodDecl tests/ObjCTest.m:22:54 tests/ObjCTest.m:22:54
ImplicitParamDecl tests/ObjCTest.m:22:54 tests/ObjCTest.m:22:54
ImplicitParamDecl tests/ObjCTest.m:22:54 tests/ObjCTest.m:22:54
ObjCMethodDecl tests/ObjCTest.m:22:54 tests/ObjCTest.m:22:54
ParmVarDecl tests/ObjCTest.m:22:54 tests/ObjCTest.m:22:54
ImplicitParamDecl tests/ObjCTest.m:22:54 tests/ObjCTest.m:22:54
ImplicitParamDecl tests/ObjCTest.m:22:54 tests/ObjCTest.m:22:54
ObjCCategoryDecl tests/ObjCTest.m:67:1 tests/ObjCTest.m:71:2 ObjCCategoryDecl tests/ObjCTest.m:67:1 tests/ObjCTest.m:71:2
ObjCMethodDecl tests/ObjCTest.m:69:1 tests/ObjCTest.m:69:26 ObjCMethodDecl tests/ObjCTest.m:69:1 tests/ObjCTest.m:69:26
ParmVarDecl tests/ObjCTest.m:69:14 tests/ObjCTest.m:69:25 ParmVarDecl tests/ObjCTest.m:69:14 tests/ObjCTest.m:69:25
ImplicitParamDecl tests/ObjCTest.m:69:25 tests/ObjCTest.m:69:25
ImplicitParamDecl tests/ObjCTest.m:69:25 tests/ObjCTest.m:69:25
ObjCCategoryImplDecl tests/ObjCTest.m:73:1 tests/ObjCTest.m:81:1 ObjCCategoryImplDecl tests/ObjCTest.m:73:1 tests/ObjCTest.m:81:1
ObjCMethodDecl tests/ObjCTest.m:75:1 tests/ObjCTest.m:79:1 ObjCMethodDecl tests/ObjCTest.m:75:1 tests/ObjCTest.m:79:1
ParmVarDecl tests/ObjCTest.m:75:14 tests/ObjCTest.m:75:25 ParmVarDecl tests/ObjCTest.m:75:14 tests/ObjCTest.m:75:25
@ -1715,8 +1625,6 @@ TranslationUnitDecl None:None:None None:None:None
ObjCInterfaceDecl tests/ObjCTest.m:87:1 tests/ObjCTest.m:89:2 ObjCInterfaceDecl tests/ObjCTest.m:87:1 tests/ObjCTest.m:89:2
ObjCMethodDecl tests/ObjCTest.m:88:1 tests/ObjCTest.m:88:60 ObjCMethodDecl tests/ObjCTest.m:88:1 tests/ObjCTest.m:88:60
ParmVarDecl tests/ObjCTest.m:88:28 tests/ObjCTest.m:88:58 ParmVarDecl tests/ObjCTest.m:88:28 tests/ObjCTest.m:88:58
ImplicitParamDecl tests/ObjCTest.m:88:58 tests/ObjCTest.m:88:58
ImplicitParamDecl tests/ObjCTest.m:88:58 tests/ObjCTest.m:88:58
ObjCInterfaceDecl tests/ObjCTest.m:91:1 tests/ObjCTest.m:92:2 ObjCInterfaceDecl tests/ObjCTest.m:91:1 tests/ObjCTest.m:92:2
ObjCImplementationDecl tests/ObjCTest.m:94:1 tests/ObjCTest.m:104:1 ObjCImplementationDecl tests/ObjCTest.m:94:1 tests/ObjCTest.m:104:1
ObjCMethodDecl tests/ObjCTest.m:96:1 tests/ObjCTest.m:98:1 ObjCMethodDecl tests/ObjCTest.m:96:1 tests/ObjCTest.m:98:1
@ -1758,7 +1666,7 @@ TranslationUnitDecl None:None:None None:None:None
ReturnStmt ReturnStmt
IntegerLiteral IntegerLiteral
TypedefDecl tests/ObjCTest.m:111:10 tests/ObjCTest.m:111:10 TypedefDecl tests/ObjCTest.m:111:10 tests/ObjCTest.m:111:10
82 8 118 56 8 115
TranslationUnitDecl None:None:None None:None:None TranslationUnitDecl None:None:None None:None:None
TypedefDecl None:None:None None:None:None TypedefDecl None:None:None None:None:None
TypedefDecl None:None:None None:None:None TypedefDecl None:None:None None:None:None
@ -1773,58 +1681,32 @@ TranslationUnitDecl None:None:None None:None:None
TypedefDecl tests/FoundationStub.h:9:1 tests/FoundationStub.h:9:22 TypedefDecl tests/FoundationStub.h:9:1 tests/FoundationStub.h:9:22
ObjCInterfaceDecl tests/FoundationStub.h:16:1 tests/FoundationStub.h:27:2 ObjCInterfaceDecl tests/FoundationStub.h:16:1 tests/FoundationStub.h:27:2
ObjCMethodDecl tests/FoundationStub.h:18:1 tests/FoundationStub.h:18:22 ObjCMethodDecl tests/FoundationStub.h:18:1 tests/FoundationStub.h:18:22
ImplicitParamDecl tests/FoundationStub.h:18:22 tests/FoundationStub.h:18:22
ImplicitParamDecl tests/FoundationStub.h:18:22 tests/FoundationStub.h:18:22
ObjCMethodDecl tests/FoundationStub.h:19:1 tests/FoundationStub.h:19:20 ObjCMethodDecl tests/FoundationStub.h:19:1 tests/FoundationStub.h:19:20
ImplicitParamDecl tests/FoundationStub.h:19:20 tests/FoundationStub.h:19:20
ImplicitParamDecl tests/FoundationStub.h:19:20 tests/FoundationStub.h:19:20
ObjCMethodDecl tests/FoundationStub.h:20:1 tests/FoundationStub.h:20:28 ObjCMethodDecl tests/FoundationStub.h:20:1 tests/FoundationStub.h:20:28
ImplicitParamDecl tests/FoundationStub.h:20:28 tests/FoundationStub.h:20:28
ImplicitParamDecl tests/FoundationStub.h:20:28 tests/FoundationStub.h:20:28
ObjCMethodDecl tests/FoundationStub.h:21:1 tests/FoundationStub.h:21:21 ObjCMethodDecl tests/FoundationStub.h:21:1 tests/FoundationStub.h:21:21
ImplicitParamDecl tests/FoundationStub.h:21:21 tests/FoundationStub.h:21:21
ImplicitParamDecl tests/FoundationStub.h:21:21 tests/FoundationStub.h:21:21
ObjCMethodDecl tests/FoundationStub.h:22:1 tests/FoundationStub.h:22:15 ObjCMethodDecl tests/FoundationStub.h:22:1 tests/FoundationStub.h:22:15
ImplicitParamDecl tests/FoundationStub.h:22:15 tests/FoundationStub.h:22:15
ImplicitParamDecl tests/FoundationStub.h:22:15 tests/FoundationStub.h:22:15
ObjCMethodDecl tests/FoundationStub.h:24:1 tests/FoundationStub.h:24:34 ObjCMethodDecl tests/FoundationStub.h:24:1 tests/FoundationStub.h:24:34
ParmVarDecl tests/FoundationStub.h:24:29 tests/FoundationStub.h:24:33 ParmVarDecl tests/FoundationStub.h:24:29 tests/FoundationStub.h:24:33
ImplicitParamDecl tests/FoundationStub.h:24:33 tests/FoundationStub.h:24:33
ImplicitParamDecl tests/FoundationStub.h:24:33 tests/FoundationStub.h:24:33
ObjCMethodDecl tests/FoundationStub.h:25:1 tests/FoundationStub.h:25:41 ObjCMethodDecl tests/FoundationStub.h:25:1 tests/FoundationStub.h:25:41
ParmVarDecl tests/FoundationStub.h:25:29 tests/FoundationStub.h:25:40 ParmVarDecl tests/FoundationStub.h:25:29 tests/FoundationStub.h:25:40
ImplicitParamDecl tests/FoundationStub.h:25:40 tests/FoundationStub.h:25:40
ImplicitParamDecl tests/FoundationStub.h:25:40 tests/FoundationStub.h:25:40
ObjCInterfaceDecl tests/FoundationStub.h:29:1 tests/FoundationStub.h:31:2 ObjCInterfaceDecl tests/FoundationStub.h:29:1 tests/FoundationStub.h:31:2
ObjCMethodDecl tests/FoundationStub.h:30:1 tests/FoundationStub.h:30:37 ObjCMethodDecl tests/FoundationStub.h:30:1 tests/FoundationStub.h:30:37
ParmVarDecl tests/FoundationStub.h:30:32 tests/FoundationStub.h:30:36 ParmVarDecl tests/FoundationStub.h:30:32 tests/FoundationStub.h:30:36
ImplicitParamDecl tests/FoundationStub.h:30:36 tests/FoundationStub.h:30:36
ImplicitParamDecl tests/FoundationStub.h:30:36 tests/FoundationStub.h:30:36
ObjCInterfaceDecl tests/FoundationStub.h:33:1 tests/FoundationStub.h:35:2 ObjCInterfaceDecl tests/FoundationStub.h:33:1 tests/FoundationStub.h:35:2
ObjCMethodDecl tests/FoundationStub.h:34:1 tests/FoundationStub.h:34:21 ObjCMethodDecl tests/FoundationStub.h:34:1 tests/FoundationStub.h:34:21
ImplicitParamDecl tests/FoundationStub.h:34:21 tests/FoundationStub.h:34:21
ImplicitParamDecl tests/FoundationStub.h:34:21 tests/FoundationStub.h:34:21
ObjCInterfaceDecl tests/FoundationStub.h:37:1 tests/FoundationStub.h:42:2 ObjCInterfaceDecl tests/FoundationStub.h:37:1 tests/FoundationStub.h:42:2
ObjCMethodDecl tests/FoundationStub.h:38:1 tests/FoundationStub.h:40:56 ObjCMethodDecl tests/FoundationStub.h:38:1 tests/FoundationStub.h:40:56
ParmVarDecl tests/FoundationStub.h:38:46 tests/FoundationStub.h:38:51 ParmVarDecl tests/FoundationStub.h:38:46 tests/FoundationStub.h:38:51
ParmVarDecl tests/FoundationStub.h:39:46 tests/FoundationStub.h:39:51 ParmVarDecl tests/FoundationStub.h:39:46 tests/FoundationStub.h:39:51
ParmVarDecl tests/FoundationStub.h:40:40 tests/FoundationStub.h:40:51 ParmVarDecl tests/FoundationStub.h:40:40 tests/FoundationStub.h:40:51
ImplicitParamDecl tests/FoundationStub.h:40:51 tests/FoundationStub.h:40:51
ImplicitParamDecl tests/FoundationStub.h:40:51 tests/FoundationStub.h:40:51
ObjCMethodDecl tests/FoundationStub.h:41:1 tests/FoundationStub.h:41:38 ObjCMethodDecl tests/FoundationStub.h:41:1 tests/FoundationStub.h:41:38
ParmVarDecl tests/FoundationStub.h:41:32 tests/FoundationStub.h:41:35 ParmVarDecl tests/FoundationStub.h:41:32 tests/FoundationStub.h:41:35
ImplicitParamDecl tests/FoundationStub.h:41:35 tests/FoundationStub.h:41:35
ImplicitParamDecl tests/FoundationStub.h:41:35 tests/FoundationStub.h:41:35
ObjCInterfaceDecl tests/FoundationStub.h:44:1 tests/FoundationStub.h:47:2 ObjCInterfaceDecl tests/FoundationStub.h:44:1 tests/FoundationStub.h:47:2
ObjCMethodDecl tests/FoundationStub.h:45:1 tests/FoundationStub.h:45:64 ObjCMethodDecl tests/FoundationStub.h:45:1 tests/FoundationStub.h:45:64
ParmVarDecl tests/FoundationStub.h:45:35 tests/FoundationStub.h:45:40 ParmVarDecl tests/FoundationStub.h:45:35 tests/FoundationStub.h:45:40
ParmVarDecl tests/FoundationStub.h:45:52 tests/FoundationStub.h:45:61 ParmVarDecl tests/FoundationStub.h:45:52 tests/FoundationStub.h:45:61
ImplicitParamDecl tests/FoundationStub.h:45:61 tests/FoundationStub.h:45:61
ImplicitParamDecl tests/FoundationStub.h:45:61 tests/FoundationStub.h:45:61
ObjCMethodDecl tests/FoundationStub.h:46:1 tests/FoundationStub.h:46:49 ObjCMethodDecl tests/FoundationStub.h:46:1 tests/FoundationStub.h:46:49
ParmVarDecl tests/FoundationStub.h:46:33 tests/FoundationStub.h:46:44 ParmVarDecl tests/FoundationStub.h:46:33 tests/FoundationStub.h:46:44
ImplicitParamDecl tests/FoundationStub.h:46:44 tests/FoundationStub.h:46:44
ImplicitParamDecl tests/FoundationStub.h:46:44 tests/FoundationStub.h:46:44
ObjCInterfaceDecl tests/FoundationStub.h:49:1 tests/FoundationStub.h:50:2 ObjCInterfaceDecl tests/FoundationStub.h:49:1 tests/FoundationStub.h:50:2
FunctionDecl tests/FoundationStub.h:52:13 tests/FoundationStub.h:52:13 FunctionDecl tests/FoundationStub.h:52:13 tests/FoundationStub.h:52:13
ParmVarDecl tests/FoundationStub.h:52:13 tests/FoundationStub.h:52:13 ParmVarDecl tests/FoundationStub.h:52:13 tests/FoundationStub.h:52:13

@ -374,14 +374,6 @@ _str
_x _x
_y _y
_delegate _delegate
str
setStr:
x
setX:
y
setY:
delegate
setDelegate:
MyCategory MyCategory
bar: bar:
MyCategory MyCategory

@ -12,30 +12,28 @@ set -o pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
SHASUM=${SHASUM:-shasum -a 256} SHASUM=${SHASUM:-shasum -a 256}
LLVM_VER="10.0.1" LLVM_VER="9.0.0"
GITHUB_URL="https://github.com/llvm/llvm-project/releases/download/llvmorg-${LLVM_VER}"
LLVM_FILE="llvm-${LLVM_VER}.src.tar.xz" LLVM_FILE="llvm-${LLVM_VER}.src.tar.xz"
CLANG_FILE="clang-${LLVM_VER}.src.tar.xz" CLANG_FILE="cfe-${LLVM_VER}.src.tar.xz"
COMPILER_RT_FILE="compiler-rt-${LLVM_VER}.src.tar.xz" COMPILER_RT_FILE="compiler-rt-${LLVM_VER}.src.tar.xz"
LIBCXX_FILE="libcxx-${LLVM_VER}.src.tar.xz" LIBCXX_FILE="libcxx-${LLVM_VER}.src.tar.xz"
LIBCXXABI_FILE="libcxxabi-${LLVM_VER}.src.tar.xz" LIBCXXABI_FILE="libcxxabi-${LLVM_VER}.src.tar.xz"
OPENMP_FILE="openmp-${LLVM_VER}.src.tar.xz" OPENMP_FILE="openmp-${LLVM_VER}.src.tar.xz"
LLVM_URL="${GITHUB_URL}/${LLVM_FILE}" LLVM_URL="https://releases.llvm.org/${LLVM_VER}/${LLVM_FILE}"
CLANG_URL="${GITHUB_URL}/${CLANG_FILE}" CLANG_URL="https://releases.llvm.org/${LLVM_VER}/${CLANG_FILE}"
COMPILER_RT_URL="${GITHUB_URL}/${COMPILER_RT_FILE}" COMPILER_RT_URL="https://releases.llvm.org/${LLVM_VER}/${COMPILER_RT_FILE}"
LIBCXX_URL="${GITHUB_URL}/${LIBCXX_FILE}" LIBCXX_URL="https://releases.llvm.org/${LLVM_VER}/${LIBCXX_FILE}"
LIBCXXABI_URL="${GITHUB_URL}/${LIBCXXABI_FILE}" LIBCXXABI_URL="https://releases.llvm.org/${LLVM_VER}/${LIBCXXABI_FILE}"
OPENMP_URL="${GITHUB_URL}/${OPENMP_FILE}" OPENMP_URL="https://releases.llvm.org/${LLVM_VER}/${OPENMP_FILE}"
LLVM_SHA="c5d8e30b57cbded7128d78e5e8dad811bff97a8d471896812f57fa99ee82cdf3" LLVM_SHA="d6a0565cf21f22e9b4353b2eb92622e8365000a9e90a16b09b56f8157eabfe84"
CLANG_SHA="f99afc382b88e622c689b6d96cadfa6241ef55dca90e87fc170352e12ddb2b24" CLANG_SHA="7ba81eef7c22ca5da688fdf9d88c20934d2d6b40bfe150ffd338900890aa4610"
COMPILER_RT_SHA="d90dc8e121ca0271f0fd3d639d135bfaa4b6ed41e67bd6eb77808f72629658fa" COMPILER_RT_SHA="56e4cd96dd1d8c346b07b4d6b255f976570c6f2389697347a6c3dcb9e820d10e"
LIBCXX_SHA="def674535f22f83131353b3c382ccebfef4ba6a35c488bdb76f10b68b25be86c" LIBCXX_SHA="3c4162972b5d3204ba47ac384aa456855a17b5e97422723d4758251acf1ed28c"
LIBCXXABI_SHA="a97ef810b2e9fb70e8f7e317b74e646ed4944f488b02ac5ddd9c99e385381a7b" LIBCXXABI_SHA="675041783565c906ac2f7f8b2bc5c40f14d871ecfa8ade34855aa18de95530e9"
OPENMP_SHA="d19f728c8e04fb1e94566c8d76aef50ec926cd2f95ef3bf1e0a5de4909b28b44" OPENMP_SHA="9979eb1133066376cc0be29d1682bc0b0e7fb541075b391061679111ae4d3b5b"
FILES=( FILES=(
$LLVM_FILE $LLVM_FILE
@ -69,7 +67,7 @@ pushd "${SCRIPT_DIR}/download" >/dev/null
for i in ${!URLS[@]}; do for i in ${!URLS[@]}; do
if [ ! -f "${FILES[$i]}" ]; then if [ ! -f "${FILES[$i]}" ]; then
curl -L "${URLS[$i]}" --output "${FILES[$i]}" curl "${URLS[$i]}" --output "${FILES[$i]}"
fi fi
echo "${SHAS[$i]} ${FILES[$i]}" | $SHASUM -c echo "${SHAS[$i]} ${FILES[$i]}" | $SHASUM -c
done done
@ -79,7 +77,7 @@ rm -rf "llvm-${LLVM_VER}.src" "llvm"
tar xf "${LLVM_FILE}" tar xf "${LLVM_FILE}"
cd "llvm-${LLVM_VER}.src/tools" cd "llvm-${LLVM_VER}.src/tools"
tar xf "../../${CLANG_FILE}" tar xf "../../${CLANG_FILE}"
mv "clang-${LLVM_VER}.src" clang mv "cfe-${LLVM_VER}.src" clang
cd ../projects cd ../projects
tar xf "../../${COMPILER_RT_FILE}" tar xf "../../${COMPILER_RT_FILE}"
mv "compiler-rt-${LLVM_VER}.src" compiler-rt mv "compiler-rt-${LLVM_VER}.src" compiler-rt

@ -156,7 +156,7 @@ struct TupleSizeBase {
return static_cast<Impl *>(this)->BASE##TupleSize(); \ return static_cast<Impl *>(this)->BASE##TupleSize(); \
} }
#define ABSTRACT_TYPE(DERIVED, BASE) TYPE(DERIVED, BASE) #define ABSTRACT_TYPE(DERIVED, BASE) TYPE(DERIVED, BASE)
#include <clang/AST/TypeNodes.inc> #include <clang/AST/TypeNodes.def>
int tupleSizeOfTypeClass(const Type::TypeClass typeClass) { int tupleSizeOfTypeClass(const Type::TypeClass typeClass) {
switch (typeClass) { switch (typeClass) {
@ -164,7 +164,7 @@ struct TupleSizeBase {
case Type::DERIVED: \ case Type::DERIVED: \
return static_cast<Impl *>(this)->DERIVED##TypeTupleSize(); return static_cast<Impl *>(this)->DERIVED##TypeTupleSize();
#define ABSTRACT_TYPE(DERIVED, BASE) #define ABSTRACT_TYPE(DERIVED, BASE)
#include <clang/AST/TypeNodes.inc> #include <clang/AST/TypeNodes.def>
} }
llvm_unreachable("Type that isn't part of TypeNodes.def!"); llvm_unreachable("Type that isn't part of TypeNodes.def!");
} }
@ -1299,37 +1299,37 @@ void ASTExporter<ATDWriter>::dumpInputKind(InputKind kind) {
// new info in InputKind that can still be used, e.g. whether the source is // new info in InputKind that can still be used, e.g. whether the source is
// preprocessed (PP), or precompiled. // preprocessed (PP), or precompiled.
switch (kind.getLanguage()) { switch (kind.getLanguage()) {
case Language::Unknown: case InputKind::Unknown:
OF.emitSimpleVariant("IK_None"); OF.emitSimpleVariant("IK_None");
break; break;
case Language::Asm: case InputKind::Asm:
OF.emitSimpleVariant("IK_Asm"); OF.emitSimpleVariant("IK_Asm");
break; break;
case Language::C: case InputKind::C:
OF.emitSimpleVariant("IK_C"); OF.emitSimpleVariant("IK_C");
break; break;
case Language::CXX: case InputKind::CXX:
OF.emitSimpleVariant("IK_CXX"); OF.emitSimpleVariant("IK_CXX");
break; break;
case Language::ObjC: case InputKind::ObjC:
OF.emitSimpleVariant("IK_ObjC"); OF.emitSimpleVariant("IK_ObjC");
break; break;
case Language::ObjCXX: case InputKind::ObjCXX:
OF.emitSimpleVariant("IK_ObjCXX"); OF.emitSimpleVariant("IK_ObjCXX");
break; break;
case Language::OpenCL: case InputKind::OpenCL:
OF.emitSimpleVariant("IK_OpenCL"); OF.emitSimpleVariant("IK_OpenCL");
break; break;
case Language::CUDA: case InputKind::CUDA:
OF.emitSimpleVariant("IK_CUDA"); OF.emitSimpleVariant("IK_CUDA");
break; break;
case Language::RenderScript: case InputKind::RenderScript:
OF.emitSimpleVariant("IK_RenderScript"); OF.emitSimpleVariant("IK_RenderScript");
break; break;
case Language::LLVM_IR: case InputKind::LLVM_IR:
OF.emitSimpleVariant("IK_LLVM_IR"); OF.emitSimpleVariant("IK_LLVM_IR");
break; break;
case Language::HIP: case InputKind::HIP:
OF.emitSimpleVariant("IK_HIP"); OF.emitSimpleVariant("IK_HIP");
break; break;
} }
@ -4749,7 +4749,7 @@ void ASTExporter<ATDWriter>::visitComment(const Comment *C) {
#define TYPE(DERIVED, BASE) //@atd #define @DERIVED@_type_tuple @BASE@_tuple #define TYPE(DERIVED, BASE) //@atd #define @DERIVED@_type_tuple @BASE@_tuple
#define ABSTRACT_TYPE(DERIVED, BASE) TYPE(DERIVED, BASE) #define ABSTRACT_TYPE(DERIVED, BASE) TYPE(DERIVED, BASE)
TYPE(None, Type) TYPE(None, Type)
#include <clang/AST/TypeNodes.inc> #include <clang/AST/TypeNodes.def>
#undef TYPE #undef TYPE
#undef ABSTRACT_TYPE #undef ABSTRACT_TYPE
@ -4975,10 +4975,6 @@ int ASTExporter<ATDWriter>::BuiltinTypeTupleSize() {
//@atd type builtin_type_kind = [ //@atd type builtin_type_kind = [
#define BUILTIN_TYPE(TYPE, ID) //@atd | TYPE #define BUILTIN_TYPE(TYPE, ID) //@atd | TYPE
#include <clang/AST/BuiltinTypes.def> #include <clang/AST/BuiltinTypes.def>
#define SVE_PREDICATE_TYPE(Name, Id, SingletonId, ElKind) //@atd | Id
#define SVE_VECTOR_TYPE( \
Name, Id, SingletonId, ElKind, ElBits, IsSigned, IsFP) //@atd | Id
#include <clang/Basic/AArch64SVEACLETypes.def>
//@atd ] //@atd ]
template <class ATDWriter> template <class ATDWriter>
void ASTExporter<ATDWriter>::VisitBuiltinType(const BuiltinType *T) { void ASTExporter<ATDWriter>::VisitBuiltinType(const BuiltinType *T) {
@ -4991,17 +4987,6 @@ void ASTExporter<ATDWriter>::VisitBuiltinType(const BuiltinType *T) {
break; \ break; \
} }
#include <clang/AST/BuiltinTypes.def> #include <clang/AST/BuiltinTypes.def>
#define SVE_PREDICATE_TYPE(Name, Id, SingletonId, ElKind) \
case BuiltinType::Id: { \
type_name = #Id; \
break; \
}
#define SVE_VECTOR_TYPE(Name, Id, SingletonId, ElKind, ElBits, IsSigned, IsFP) \
case BuiltinType::Id: { \
type_name = #Id; \
break; \
}
#include <clang/Basic/AArch64SVEACLETypes.def>
#define IMAGE_TYPE(ImgType, ID, SingletonId, Access, Suffix) \ #define IMAGE_TYPE(ImgType, ID, SingletonId, Access, Suffix) \
case BuiltinType::ID: case BuiltinType::ID:
#include <clang/Basic/OpenCLImageTypes.def> #include <clang/Basic/OpenCLImageTypes.def>
@ -5370,7 +5355,7 @@ void ASTExporter<ATDWriter>::VisitVisibilityAttr(const VisibilityAttr *A) {
#define TYPE(CLASS, PARENT) //@atd | CLASS@@Type of (@CLASS@_type_tuple) #define TYPE(CLASS, PARENT) //@atd | CLASS@@Type of (@CLASS@_type_tuple)
#define ABSTRACT_TYPE(CLASS, PARENT) #define ABSTRACT_TYPE(CLASS, PARENT)
TYPE(None, Type) TYPE(None, Type)
#include <clang/AST/TypeNodes.inc> #include <clang/AST/TypeNodes.def>
//@atd ] <ocaml repr="classic" validator="Clang_ast_visit.visit_type"> //@atd ] <ocaml repr="classic" validator="Clang_ast_visit.visit_type">
template <class ATDWriter = JsonWriter, bool ForceYojson = false> template <class ATDWriter = JsonWriter, bool ForceYojson = false>

@ -8,9 +8,12 @@
LEVEL=.. LEVEL=..
include $(LEVEL)/Makefile.common include $(LEVEL)/Makefile.common
HEADERS+=SimplePluginASTAction.h FileUtils.h AttrParameterVectorStream.h
OBJS+=SimplePluginASTAction.o FileUtils.o AttrParameterVectorStream.o
# ASTExporter # ASTExporter
HEADERS+=atdlib/ATDWriter.h ASTExporter.h NamePrinter.h AttrParameterVectorStream.h SimplePluginASTAction.h FileUtils.h HEADERS+=atdlib/ATDWriter.h ASTExporter.h NamePrinter.h
OBJS+=ASTExporter.o SimplePluginASTAction.o FileUtils.o AttrParameterVectorStream.o OBJS+=ASTExporter.o
# Json # Json
PLUGINS+=JsonASTExporter PLUGINS+=JsonASTExporter
@ -25,7 +28,7 @@ BINIOU_PLUGIN=BiniouASTExporter
PLUGINS+=$(BINIOU_PLUGIN) PLUGINS+=$(BINIOU_PLUGIN)
EXTS+=.biniou EXTS+=.biniou
all: build/FacebookClangPlugin.dylib all: build/FacebookClangPlugin.dylib build/ast_exporter_bin
include $(LEVEL)/Makefile.rules include $(LEVEL)/Makefile.rules
@ -35,6 +38,12 @@ build/FacebookClangPlugin.dylib: $(OBJS:%=build/%) $(HEADERS)
@mkdir -p build @mkdir -p build
$(CXX) $(LDFLAGS_DYLIB) -o $@ $(OBJS:%=build/%) -lz -lpthread -lm $(CXX) $(LDFLAGS_DYLIB) -o $@ $(OBJS:%=build/%) -lz -lpthread -lm
# Experimental tool. This requires clang static libraries.
AST_EXPORTER_OBJS=ast_exporter_bin.o SimplePluginASTAction.o FileUtils.o AttrParameterVectorStream.o
build/ast_exporter_bin: $(AST_EXPORTER_OBJS:%=build/%) $(HEADERS)
@mkdir -p build
$(CXX) -o $@ $(AST_EXPORTER_OBJS:%=build/%) $(LDFLAGS) $(LLVM_CXXFLAGS) $(CLANG_TOOL_LIBS) $(LLVM_LDFLAGS) -lz -lpthread -lm
TEST_DIRS=tests TEST_DIRS=tests
OUT_TEST_FILES=${TEST_DIRS:%=%/*/*.out} OUT_TEST_FILES=${TEST_DIRS:%=%/*/*.out}

@ -117,7 +117,7 @@ class SimplePluginASTActionBase : public clang::PluginASTAction {
void ExecuteAction() override { void ExecuteAction() override {
auto &preprocessor = getCompilerInstance().getPreprocessor(); auto &preprocessor = getCompilerInstance().getPreprocessor();
preprocessor.addPPCallbacks(std::make_unique<PreprocessorHandler>( preprocessor.addPPCallbacks(llvm::make_unique<PreprocessorHandler>(
preprocessor.getSourceManager(), options, sharedData)); preprocessor.getSourceManager(), options, sharedData));
clang::PluginASTAction::ExecuteAction(); clang::PluginASTAction::ExecuteAction();
} }
@ -157,9 +157,9 @@ class SimplePluginASTActionBase : public clang::PluginASTAction {
clang::FrontendInputFile inputFile = CI.getFrontendOpts().Inputs[0]; clang::FrontendInputFile inputFile = CI.getFrontendOpts().Inputs[0];
switch (inputFile.getKind().getLanguage()) { switch (inputFile.getKind().getLanguage()) {
case clang::Language::Unknown: case clang::InputKind::Unknown:
case clang::Language::Asm: case clang::InputKind::Asm:
case clang::Language::LLVM_IR: case clang::InputKind::LLVM_IR:
// We can't do anything with these - they may trigger errors when // We can't do anything with these - they may trigger errors when
// running clang frontend // running clang frontend
return false; return false;
@ -183,7 +183,7 @@ class SimpleFrontendActionFactory
explicit SimpleFrontendActionFactory(std::vector<std::string> args) explicit SimpleFrontendActionFactory(std::vector<std::string> args)
: args_(args) {} : args_(args) {}
std::unique_ptr<clang::FrontendAction> create() override { clang::FrontendAction *create() override {
return new SimpleASTAction(args_); return new SimpleASTAction(args_);
} }
}; };

@ -0,0 +1,78 @@
/*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
/**
* Clang tool to export an AST of clang into Json, Yojson, and Biniou
* while conforming to the inlined ATD specifications.
*/
#include "ASTExporter.h"
#include <clang/Tooling/CommonOptionsParser.h>
#include <clang/Tooling/Tooling.h>
//===----------------------------------------------------------------------===//
// ASTExporter Tool
//===----------------------------------------------------------------------===//
static llvm::cl::OptionCategory astExporterCategory("ast_exporter_bin");
enum Mode { json, yojson, biniou };
static llvm::cl::opt<Mode> astExporterMode(
"ast-exporter-mode",
llvm::cl::desc("Mode of operation"),
llvm::cl::values(clEnumVal(json, "json output"),
clEnumVal(yojson, "yojson output"),
clEnumVal(biniou, "biniou output")),
llvm::cl::cat(astExporterCategory));
static llvm::cl::opt<std::string> astExporterOutput(
"ast-exporter-output",
llvm::cl::desc("output file"),
llvm::cl::cat(astExporterCategory));
// TODO: Unpack the other ASTExporterOptions into native command line options.
static llvm::cl::list<std::string> astExporterOptions(
"ast-exporter-option",
llvm::cl::desc("One or several comma-separated pairs [KEY]=[VALUE]. "
"This will override the corresponding environment variables "
"CLANG_FRONTEND_PLUGIN__[KEY]."),
llvm::cl::CommaSeparated,
llvm::cl::cat(astExporterCategory));
static llvm::cl::extrahelp commonHelp(
clang::tooling::CommonOptionsParser::HelpMessage);
int main(int argc, const char **argv) {
clang::tooling::CommonOptionsParser optionsParser(
argc, argv, astExporterCategory);
clang::tooling::ClangTool tool(optionsParser.getCompilations(),
optionsParser.getSourcePathList());
if (!astExporterOutput.empty()) {
astExporterOptions.push_back("OUTPUT_FILE=" + astExporterOutput);
}
std::unique_ptr<clang::tooling::ToolAction> factory = nullptr;
switch (astExporterMode) {
case json:
factory.reset(new ASTPluginLib::SimpleFrontendActionFactory<
ASTLib::JsonExporterASTAction>(astExporterOptions));
break;
case yojson:
factory.reset(new ASTPluginLib::SimpleFrontendActionFactory<
ASTLib::YojsonExporterASTAction>(astExporterOptions));
break;
case biniou:
factory.reset(new ASTPluginLib::SimpleFrontendActionFactory<
ASTLib::BiniouExporterASTAction>(astExporterOptions));
break;
}
return tool.run(factory.get());
}

@ -966,7 +966,7 @@
], ],
{ {
#30e4876a: { #30e4876a: {
#c1127ea9: 35, #c1127ea9: 69,
#ea1a680e: true #ea1a680e: true
}, },
#0e89e422: <#28055b85> #0e89e422: <#28055b85>

@ -114,26 +114,6 @@
{ {
#3ba2c7f6: true, #3ba2c7f6: true,
#137b649c: { #c1127ea9: 17 }, #137b649c: { #c1127ea9: 17 },
#28dcb2c4: [
<#d0d84992:
({
#d121c0bd: 18,
#21793419: ({ }, { }),
#eb8a1f5a: true
},
{ #c8ff724b: "self", #2cdb06fb: [ "self" ] },
{ #c1127ea9: 7, #ea1a680e: true },
{ })>,
<#d0d84992:
({
#d121c0bd: 19,
#21793419: ({ }, { }),
#eb8a1f5a: true
},
{ #c8ff724b: "_cmd", #2cdb06fb: [ "_cmd" ] },
{ #c1127ea9: 5 },
{ })>
],
#22b27dd5: true, #22b27dd5: true,
#d2e9b40c: "-[BarDelegate optionalFunction]" #d2e9b40c: "-[BarDelegate optionalFunction]"
})> })>
@ -153,7 +133,7 @@
})>, })>,
<#18d25297: <#18d25297:
({ ({
#d121c0bd: 20, #d121c0bd: 18,
#f9005968: 1, #f9005968: 1,
#21793419: #21793419:
({ #c7b317f4: 19, #c68b4ed6: 1 }, ({ #c7b317f4: 19, #c68b4ed6: 1 },
@ -163,17 +143,17 @@
[ [
<#c5b2960b: <#c5b2960b:
({ ({
#d121c0bd: 21, #d121c0bd: 19,
#f9005968: 20, #f9005968: 18,
#21793419: #21793419:
({ #c7b317f4: 20, #c68b4ed6: 1 }, { #c68b4ed6: 46 }) ({ #c7b317f4: 20, #c68b4ed6: 1 }, { #c68b4ed6: 46 })
}, },
{ #c8ff724b: "delegate", #2cdb06fb: [ "delegate", "Bar" ] }, { #c8ff724b: "delegate", #2cdb06fb: [ "delegate", "Bar" ] },
{ {
#30e4876a: { #c1127ea9: 22 }, #30e4876a: { #c1127ea9: 20 },
#3106f0d5: { #3106f0d5: {
#c709e154: <#e655f08d>, #c709e154: <#e655f08d>,
#ec05e4a8: 23, #ec05e4a8: 21,
#c8ff724b: { #c8ff724b: {
#c8ff724b: "delegate", #c8ff724b: "delegate",
#2cdb06fb: [ "delegate", "Bar" ] #2cdb06fb: [ "delegate", "Bar" ]
@ -181,7 +161,7 @@
}, },
#f60cd2e1: { #f60cd2e1: {
#c709e154: <#e655f08d>, #c709e154: <#e655f08d>,
#ec05e4a8: 24, #ec05e4a8: 22,
#c8ff724b: { #c8ff724b: {
#c8ff724b: "setDelegate:", #c8ff724b: "setDelegate:",
#2cdb06fb: [ "setDelegate:", "Bar" ] #2cdb06fb: [ "setDelegate:", "Bar" ]
@ -189,12 +169,12 @@
}, },
#2e0d396b: { #2e0d396b: {
#c709e154: <#38103cca>, #c709e154: <#38103cca>,
#ec05e4a8: 25, #ec05e4a8: 23,
#c8ff724b: { #c8ff724b: {
#c8ff724b: "_delegate", #c8ff724b: "_delegate",
#2cdb06fb: [ "_delegate", "Bar" ] #2cdb06fb: [ "_delegate", "Bar" ]
}, },
#30e4876a: { #c1127ea9: 22 } #30e4876a: { #c1127ea9: 20 }
}, },
#e42793c1: [ #e42793c1: [
<#009aba4f>, <#2fe629a9>, <#cd718b98>, <#374fb956> <#009aba4f>, <#2fe629a9>, <#cd718b98>, <#374fb956>
@ -202,19 +182,19 @@
})>, })>,
<#3ccd3797: <#3ccd3797:
({ ({
#d121c0bd: 23, #d121c0bd: 21,
#f9005968: 20, #f9005968: 18,
#21793419: ({ #c68b4ed6: 46 }, { #c68b4ed6: 46 }), #21793419: ({ #c68b4ed6: 46 }, { #c68b4ed6: 46 }),
#eb8a1f5a: true #eb8a1f5a: true
}, },
{ #c8ff724b: "delegate", #2cdb06fb: [ "delegate", "Bar" ] }, { #c8ff724b: "delegate", #2cdb06fb: [ "delegate", "Bar" ] },
{ {
#3ba2c7f6: true, #3ba2c7f6: true,
#137b649c: { #c1127ea9: 22 }, #137b649c: { #c1127ea9: 20 },
#001e675c: true, #001e675c: true,
#2c8fcfd4: { #2c8fcfd4: {
#c709e154: <#f9260501>, #c709e154: <#f9260501>,
#ec05e4a8: 21, #ec05e4a8: 19,
#c8ff724b: { #c8ff724b: {
#c8ff724b: "delegate", #c8ff724b: "delegate",
#2cdb06fb: [ "delegate", "Bar" ] #2cdb06fb: [ "delegate", "Bar" ]
@ -223,16 +203,16 @@
#28dcb2c4: [ #28dcb2c4: [
<#d0d84992: <#d0d84992:
({ ({
#d121c0bd: 26, #d121c0bd: 24,
#21793419: ({ }, { }), #21793419: ({ }, { }),
#eb8a1f5a: true #eb8a1f5a: true
}, },
{ #c8ff724b: "self", #2cdb06fb: [ "self" ] }, { #c8ff724b: "self", #2cdb06fb: [ "self" ] },
{ #c1127ea9: 27, #ea1a680e: true }, { #c1127ea9: 25, #ea1a680e: true },
{ })>, { })>,
<#d0d84992: <#d0d84992:
({ ({
#d121c0bd: 28, #d121c0bd: 26,
#21793419: ({ }, { }), #21793419: ({ }, { }),
#eb8a1f5a: true #eb8a1f5a: true
}, },
@ -244,8 +224,8 @@
})>, })>,
<#3ccd3797: <#3ccd3797:
({ ({
#d121c0bd: 24, #d121c0bd: 22,
#f9005968: 20, #f9005968: 18,
#21793419: ({ #c68b4ed6: 46 }, { #c68b4ed6: 46 }), #21793419: ({ #c68b4ed6: 46 }, { #c68b4ed6: 46 }),
#eb8a1f5a: true #eb8a1f5a: true
}, },
@ -259,7 +239,7 @@
#001e675c: true, #001e675c: true,
#2c8fcfd4: { #2c8fcfd4: {
#c709e154: <#f9260501>, #c709e154: <#f9260501>,
#ec05e4a8: 21, #ec05e4a8: 19,
#c8ff724b: { #c8ff724b: {
#c8ff724b: "delegate", #c8ff724b: "delegate",
#2cdb06fb: [ "delegate", "Bar" ] #2cdb06fb: [ "delegate", "Bar" ]
@ -268,26 +248,26 @@
#d17ebeaa: [ #d17ebeaa: [
<#fd75cc45: <#fd75cc45:
({ ({
#d121c0bd: 29, #d121c0bd: 27,
#21793419: ({ #c68b4ed6: 46 }, { #c68b4ed6: 46 }) #21793419: ({ #c68b4ed6: 46 }, { #c68b4ed6: 46 })
}, },
{ #c8ff724b: "delegate", #2cdb06fb: [ "delegate" ] }, { #c8ff724b: "delegate", #2cdb06fb: [ "delegate" ] },
{ #c1127ea9: 22 }, { #c1127ea9: 20 },
{ #0370b1b2: 0 })> { #0370b1b2: 0 })>
], ],
#28dcb2c4: [ #28dcb2c4: [
<#d0d84992: <#d0d84992:
({ ({
#d121c0bd: 30, #d121c0bd: 28,
#21793419: ({ }, { }), #21793419: ({ }, { }),
#eb8a1f5a: true #eb8a1f5a: true
}, },
{ #c8ff724b: "self", #2cdb06fb: [ "self" ] }, { #c8ff724b: "self", #2cdb06fb: [ "self" ] },
{ #c1127ea9: 27, #ea1a680e: true }, { #c1127ea9: 25, #ea1a680e: true },
{ })>, { })>,
<#d0d84992: <#d0d84992:
({ ({
#d121c0bd: 31, #d121c0bd: 29,
#21793419: ({ }, { }), #21793419: ({ }, { }),
#eb8a1f5a: true #eb8a1f5a: true
}, },
@ -307,13 +287,13 @@
}, },
#d32dd232: { #d32dd232: {
#c709e154: <#c37c57de>, #c709e154: <#c37c57de>,
#ec05e4a8: 32, #ec05e4a8: 30,
#c8ff724b: { #c8ff724b: "Bar", #2cdb06fb: [ "Bar" ] } #c8ff724b: { #c8ff724b: "Bar", #2cdb06fb: [ "Bar" ] }
} }
})>, })>,
<#0e281b68: <#0e281b68:
({ ({
#d121c0bd: 32, #d121c0bd: 30,
#f9005968: 1, #f9005968: 1,
#21793419: #21793419:
({ #c7b317f4: 23, #c68b4ed6: 1 }, ({ #c7b317f4: 23, #c68b4ed6: 1 },
@ -323,8 +303,8 @@
[ [
<#3ccd3797: <#3ccd3797:
({ ({
#d121c0bd: 33, #d121c0bd: 31,
#f9005968: 32, #f9005968: 30,
#21793419: #21793419:
({ #c7b317f4: 24, #c68b4ed6: 1 }, ({ #c7b317f4: 24, #c68b4ed6: 1 },
{ #c7b317f4: 26, #c68b4ed6: 1 }) { #c7b317f4: 26, #c68b4ed6: 1 })
@ -339,18 +319,18 @@
#28dcb2c4: [ #28dcb2c4: [
<#d0d84992: <#d0d84992:
({ ({
#d121c0bd: 34, #d121c0bd: 32,
#21793419: ({ }, { }), #21793419: ({ }, { }),
#eb8a1f5a: true, #eb8a1f5a: true,
#0a16e1f2: true, #0a16e1f2: true,
#d3368c8a: true #d3368c8a: true
}, },
{ #c8ff724b: "self", #2cdb06fb: [ "self" ] }, { #c8ff724b: "self", #2cdb06fb: [ "self" ] },
{ #c1127ea9: 27, #ea1a680e: true }, { #c1127ea9: 25, #ea1a680e: true },
{ })>, { })>,
<#d0d84992: <#d0d84992:
({ ({
#d121c0bd: 35, #d121c0bd: 33,
#21793419: ({ }, { }), #21793419: ({ }, { }),
#eb8a1f5a: true #eb8a1f5a: true
}, },
@ -361,7 +341,7 @@
#c11b7aa2: #c11b7aa2:
<#d394bb73: <#d394bb73:
({ ({
#d121c0bd: 36, #d121c0bd: 34,
#21793419: #21793419:
({ #c7b317f4: 24, #c68b4ed6: 22 }, ({ #c7b317f4: 24, #c68b4ed6: 22 },
{ #c7b317f4: 26, #c68b4ed6: 1 }) { #c7b317f4: 26, #c68b4ed6: 1 })
@ -369,7 +349,7 @@
[ [
<#d0cddcea: <#d0cddcea:
({ ({
#d121c0bd: 37, #d121c0bd: 35,
#21793419: #21793419:
({ #c7b317f4: 25, #c68b4ed6: 3 }, ({ #c7b317f4: 25, #c68b4ed6: 3 },
{ #c68b4ed6: 34 }) { #c68b4ed6: 34 })
@ -377,14 +357,14 @@
[ [
<#f104c570: <#f104c570:
({ ({
#d121c0bd: 38, #d121c0bd: 36,
#21793419: #21793419:
({ #c68b4ed6: 3 }, { #c68b4ed6: 34 }) ({ #c68b4ed6: 3 }, { #c68b4ed6: 34 })
}, },
[ [
<#26afa8d2: <#26afa8d2:
({ ({
#d121c0bd: 39, #d121c0bd: 37,
#21793419: #21793419:
({ #c68b4ed6: 4 }, ({ #c68b4ed6: 4 },
{ #c68b4ed6: 9 }) { #c68b4ed6: 9 })
@ -392,7 +372,7 @@
[ [
<#e9c8dd27: <#e9c8dd27:
({ ({
#d121c0bd: 40, #d121c0bd: 38,
#21793419: #21793419:
({ #c68b4ed6: 4 }, ({ #c68b4ed6: 4 },
{ #c68b4ed6: 9 }) { #c68b4ed6: 9 })
@ -400,7 +380,7 @@
[ [
<#0d679c05: <#0d679c05:
({ ({
#d121c0bd: 41, #d121c0bd: 39,
#21793419: #21793419:
({ #c68b4ed6: 4 }, ({ #c68b4ed6: 4 },
{ #c68b4ed6: 4 }) { #c68b4ed6: 4 })
@ -408,14 +388,14 @@
[], [],
{ {
#30e4876a: { #30e4876a: {
#c1127ea9: 27 #c1127ea9: 25
} }
}, },
{ {
#12076e59: #12076e59:
<#c3b129f9: <#c3b129f9:
({ ({
#d121c0bd: 42, #d121c0bd: 40,
#21793419: #21793419:
({ ({
#c68b4ed6: #c68b4ed6:
@ -430,7 +410,7 @@
<#e9db58be: <#e9db58be:
({ ({
#d121c0bd: #d121c0bd:
43, 41,
#21793419: #21793419:
( (
{ {
@ -446,7 +426,7 @@
{ {
#30e4876a: { #30e4876a: {
#c1127ea9: #c1127ea9:
27, 25,
#ea1a680e: #ea1a680e:
true true
}, },
@ -458,7 +438,7 @@
#c709e154: #c709e154:
<#c6dba908>, <#c6dba908>,
#ec05e4a8: #ec05e4a8:
34, 32,
#c8ff724b: { #c8ff724b: {
#c8ff724b: #c8ff724b:
"self", "self",
@ -468,7 +448,7 @@
}, },
#30e4876a: { #30e4876a: {
#c1127ea9: #c1127ea9:
27, 25,
#ea1a680e: #ea1a680e:
true true
} }
@ -478,7 +458,7 @@
{ {
#30e4876a: { #30e4876a: {
#c1127ea9: #c1127ea9:
27 25
} }
}, },
{ {
@ -490,7 +470,7 @@
], ],
{ {
#30e4876a: { #30e4876a: {
#c1127ea9: 44 #c1127ea9: 42
}, },
#0e89e422: <#28055b85>, #0e89e422: <#28055b85>,
#d61caa14: <#f9260501> #d61caa14: <#f9260501>
@ -499,7 +479,7 @@
#c709e154: #c709e154:
<#fac503de: { <#fac503de: {
#c709e154: <#f9260501>, #c709e154: <#f9260501>,
#ec05e4a8: 21, #ec05e4a8: 19,
#c8ff724b: { #c8ff724b: {
#c8ff724b: #c8ff724b:
"delegate", "delegate",
@ -512,7 +492,7 @@
})>, })>,
<#0d679c05: <#0d679c05:
({ ({
#d121c0bd: 41, #d121c0bd: 39,
#21793419: #21793419:
({ #c68b4ed6: 4 }, ({ #c68b4ed6: 4 },
{ #c68b4ed6: 4 }) { #c68b4ed6: 4 })
@ -520,14 +500,14 @@
[], [],
{ {
#30e4876a: { #30e4876a: {
#c1127ea9: 27 #c1127ea9: 25
} }
}, },
{ {
#12076e59: #12076e59:
<#c3b129f9: <#c3b129f9:
({ ({
#d121c0bd: 42, #d121c0bd: 40,
#21793419: #21793419:
({ #c68b4ed6: 4 }, ({ #c68b4ed6: 4 },
{ #c68b4ed6: 4 }) { #c68b4ed6: 4 })
@ -535,7 +515,7 @@
[ [
<#e9db58be: <#e9db58be:
({ ({
#d121c0bd: 43, #d121c0bd: 41,
#21793419: #21793419:
({ ({
#c68b4ed6: #c68b4ed6:
@ -550,7 +530,7 @@
{ {
#30e4876a: { #30e4876a: {
#c1127ea9: #c1127ea9:
27, 25,
#ea1a680e: #ea1a680e:
true true
}, },
@ -562,7 +542,7 @@
#c709e154: #c709e154:
<#c6dba908>, <#c6dba908>,
#ec05e4a8: #ec05e4a8:
34, 32,
#c8ff724b: { #c8ff724b: {
#c8ff724b: #c8ff724b:
"self", "self",
@ -572,7 +552,7 @@
}, },
#30e4876a: { #30e4876a: {
#c1127ea9: #c1127ea9:
27, 25,
#ea1a680e: #ea1a680e:
true true
} }
@ -581,7 +561,7 @@
], ],
{ {
#30e4876a: { #30e4876a: {
#c1127ea9: 27 #c1127ea9: 25
} }
}, },
{ {
@ -592,7 +572,7 @@
})>, })>,
<#c3b129f9: <#c3b129f9:
({ ({
#d121c0bd: 45, #d121c0bd: 43,
#21793419: #21793419:
({ #c68b4ed6: 9 }, ({ #c68b4ed6: 9 },
{ #c68b4ed6: 9 }) { #c68b4ed6: 9 })
@ -600,7 +580,7 @@
[ [
<#f104c570: <#f104c570:
({ ({
#d121c0bd: 46, #d121c0bd: 44,
#21793419: #21793419:
({ #c68b4ed6: 9 }, ({ #c68b4ed6: 9 },
{ #c68b4ed6: 9 }) { #c68b4ed6: 9 })
@ -608,7 +588,7 @@
[ [
<#0d679c05: <#0d679c05:
({ ({
#d121c0bd: 41, #d121c0bd: 39,
#21793419: #21793419:
({ ({
#c68b4ed6: #c68b4ed6:
@ -622,7 +602,7 @@
[], [],
{ {
#30e4876a: { #30e4876a: {
#c1127ea9: 27 #c1127ea9: 25
} }
}, },
{ {
@ -630,7 +610,7 @@
<#c3b129f9: <#c3b129f9:
({ ({
#d121c0bd: #d121c0bd:
42, 40,
#21793419: #21793419:
( (
{ {
@ -646,7 +626,7 @@
<#e9db58be: <#e9db58be:
({ ({
#d121c0bd: #d121c0bd:
43, 41,
#21793419: #21793419:
( (
{ {
@ -662,7 +642,7 @@
{ {
#30e4876a: { #30e4876a: {
#c1127ea9: #c1127ea9:
27, 25,
#ea1a680e: #ea1a680e:
true true
}, },
@ -674,7 +654,7 @@
#c709e154: #c709e154:
<#c6dba908>, <#c6dba908>,
#ec05e4a8: #ec05e4a8:
34, 32,
#c8ff724b: { #c8ff724b: {
#c8ff724b: #c8ff724b:
"self", "self",
@ -684,7 +664,7 @@
}, },
#30e4876a: { #30e4876a: {
#c1127ea9: #c1127ea9:
27, 25,
#ea1a680e: #ea1a680e:
true true
} }
@ -694,7 +674,7 @@
{ {
#30e4876a: { #30e4876a: {
#c1127ea9: #c1127ea9:
27 25
} }
}, },
{ {
@ -707,18 +687,17 @@
], ],
{ {
#30e4876a: { #30e4876a: {
#c1127ea9: 22 #c1127ea9: 20
} }
}, },
{ {
#316d331f: "delegate", #316d331f: "delegate",
#1ea99a8b: true, #ec05e4a8: 21
#ec05e4a8: 47
})> })>
], ],
{ {
#30e4876a: { #30e4876a: {
#c1127ea9: 22 #c1127ea9: 20
} }
}, },
{ {
@ -726,7 +705,7 @@
#fa1a3bd3: [] #fa1a3bd3: []
})> })>
], ],
{ #30e4876a: { #c1127ea9: 22 } })> { #30e4876a: { #c1127ea9: 20 } })>
], ],
{ #30e4876a: { #c1127ea9: 17 } }, { #30e4876a: { #c1127ea9: 17 } },
{ {
@ -741,22 +720,22 @@
})>, })>,
<#070ee654: <#070ee654:
({ ({
#d121c0bd: 25, #d121c0bd: 23,
#f9005968: 32, #f9005968: 30,
#21793419: #21793419:
({ #c7b317f4: 20, #c68b4ed6: 46 }, { #c68b4ed6: 46 }) ({ #c7b317f4: 20, #c68b4ed6: 46 }, { #c68b4ed6: 46 })
}, },
{ #c8ff724b: "_delegate", #2cdb06fb: [ "_delegate", "Bar" ] }, { #c8ff724b: "_delegate", #2cdb06fb: [ "_delegate", "Bar" ] },
{ #c1127ea9: 22 }, { #c1127ea9: 20 },
{ }, { },
{ #015a971f: true, #f9049e82: <#d6c054e3> })>, { #015a971f: true, #f9049e82: <#d6c054e3> })>,
<#c1a9158b: <#c1a9158b:
({ #d121c0bd: 48, #21793419: ({ }, { #c68b4ed6: 46 }) }, ({ #d121c0bd: 45, #21793419: ({ }, { #c68b4ed6: 46 }) },
{ {
#d32dd232: <#009015ca>, #d32dd232: <#009015ca>,
#2c8fcfd4: { #2c8fcfd4: {
#c709e154: <#f9260501>, #c709e154: <#f9260501>,
#ec05e4a8: 21, #ec05e4a8: 19,
#c8ff724b: { #c8ff724b: {
#c8ff724b: "delegate", #c8ff724b: "delegate",
#2cdb06fb: [ "delegate", "Bar" ] #2cdb06fb: [ "delegate", "Bar" ]
@ -764,124 +743,27 @@
}, },
#2e0d396b: { #2e0d396b: {
#c709e154: <#38103cca>, #c709e154: <#38103cca>,
#ec05e4a8: 25, #ec05e4a8: 23,
#c8ff724b: { #c8ff724b: {
#c8ff724b: "_delegate", #c8ff724b: "_delegate",
#2cdb06fb: [ "_delegate", "Bar" ] #2cdb06fb: [ "_delegate", "Bar" ]
}, },
#30e4876a: { #c1127ea9: 22 } #30e4876a: { #c1127ea9: 20 }
} }
})>,
<#3ccd3797:
({
#d121c0bd: 47,
#f9005968: 32,
#21793419: ({ #c68b4ed6: 46 }, { #c68b4ed6: 46 }),
#eb8a1f5a: true
},
{ #c8ff724b: "delegate", #2cdb06fb: [ "delegate", "Bar" ] },
{
#3ba2c7f6: true,
#137b649c: { #c1127ea9: 22 },
#001e675c: true,
#2c8fcfd4: {
#c709e154: <#f9260501>,
#ec05e4a8: 21,
#c8ff724b: {
#c8ff724b: "delegate",
#2cdb06fb: [ "delegate", "Bar" ]
}
},
#28dcb2c4: [
<#d0d84992:
({
#d121c0bd: 26,
#21793419: ({ }, { }),
#eb8a1f5a: true
},
{ #c8ff724b: "self", #2cdb06fb: [ "self" ] },
{ #c1127ea9: 27, #ea1a680e: true },
{ })>,
<#d0d84992:
({
#d121c0bd: 28,
#21793419: ({ }, { }),
#eb8a1f5a: true
},
{ #c8ff724b: "_cmd", #2cdb06fb: [ "_cmd" ] },
{ #c1127ea9: 5 },
{ })>
],
#d2e9b40c: "-[Bar delegate]"
})>,
<#3ccd3797:
({
#d121c0bd: 49,
#f9005968: 32,
#21793419: ({ #c68b4ed6: 46 }, { #c68b4ed6: 46 }),
#eb8a1f5a: true
},
{
#c8ff724b: "setDelegate:",
#2cdb06fb: [ "setDelegate:", "Bar" ]
},
{
#3ba2c7f6: true,
#137b649c: { #c1127ea9: 17 },
#001e675c: true,
#2c8fcfd4: {
#c709e154: <#f9260501>,
#ec05e4a8: 21,
#c8ff724b: {
#c8ff724b: "delegate",
#2cdb06fb: [ "delegate", "Bar" ]
}
},
#d17ebeaa: [
<#fd75cc45:
({
#d121c0bd: 29,
#21793419: ({ #c68b4ed6: 46 }, { #c68b4ed6: 46 })
},
{ #c8ff724b: "delegate", #2cdb06fb: [ "delegate" ] },
{ #c1127ea9: 22 },
{ #0370b1b2: 0 })>
],
#28dcb2c4: [
<#d0d84992:
({
#d121c0bd: 30,
#21793419: ({ }, { }),
#eb8a1f5a: true
},
{ #c8ff724b: "self", #2cdb06fb: [ "self" ] },
{ #c1127ea9: 27, #ea1a680e: true },
{ })>,
<#d0d84992:
({
#d121c0bd: 31,
#21793419: ({ }, { }),
#eb8a1f5a: true
},
{ #c8ff724b: "_cmd", #2cdb06fb: [ "_cmd" ] },
{ #c1127ea9: 5 },
{ })>
],
#d2e9b40c: "-[Bar setDelegate:]"
})> })>
], ],
{ }, { },
{ {
#2ec29bb2: { #2ec29bb2: {
#c709e154: <#3cf18b8d>, #c709e154: <#3cf18b8d>,
#ec05e4a8: 20, #ec05e4a8: 18,
#c8ff724b: { #c8ff724b: "Bar", #2cdb06fb: [ "Bar" ] } #c8ff724b: { #c8ff724b: "Bar", #2cdb06fb: [ "Bar" ] }
} }
})>, })>,
<#0f3f4d35: <#0f3f4d35:
({ #d121c0bd: 50, #21793419: ({ }, { }), #eb8a1f5a: true }, ({ #d121c0bd: 46, #21793419: ({ }, { }), #eb8a1f5a: true },
{ #c8ff724b: "instancetype", #2cdb06fb: [ "instancetype" ] }, { #c8ff724b: "instancetype", #2cdb06fb: [ "instancetype" ] },
51, 47,
{ })> { })>
], ],
{ }, { },
@ -898,98 +780,98 @@
#247f0baa: true, #247f0baa: true,
#1acb7079: [ #1acb7079: [
<#22d546dd: ({ #d121c0bd: 17 }, <#392cef74>)>, <#22d546dd: ({ #d121c0bd: 17 }, <#392cef74>)>,
<#22d546dd: ({ #d121c0bd: 52 }, <#2bf4b04a>)>, <#22d546dd: ({ #d121c0bd: 48 }, <#2bf4b04a>)>,
<#22d546dd: ({ #d121c0bd: 53 }, <#ec0a078a>)>, <#22d546dd: ({ #d121c0bd: 49 }, <#ec0a078a>)>,
<#22d546dd: ({ #d121c0bd: 54 }, <#f6dab0c9>)>, <#22d546dd: ({ #d121c0bd: 50 }, <#f6dab0c9>)>,
<#22d546dd: ({ #d121c0bd: 55 }, <#0f54f45c>)>, <#22d546dd: ({ #d121c0bd: 51 }, <#0f54f45c>)>,
<#22d546dd: ({ #d121c0bd: 56 }, <#0037c4cf>)>, <#22d546dd: ({ #d121c0bd: 52 }, <#0037c4cf>)>,
<#22d546dd: ({ #d121c0bd: 57 }, <#3290d19c>)>, <#22d546dd: ({ #d121c0bd: 53 }, <#3290d19c>)>,
<#22d546dd: ({ #d121c0bd: 58 }, <#fee0a138>)>, <#22d546dd: ({ #d121c0bd: 54 }, <#fee0a138>)>,
<#22d546dd: ({ #d121c0bd: 59 }, <#1da7d9cb>)>, <#22d546dd: ({ #d121c0bd: 55 }, <#1da7d9cb>)>,
<#22d546dd: ({ #d121c0bd: 60 }, <#0baa9fe7>)>, <#22d546dd: ({ #d121c0bd: 56 }, <#0baa9fe7>)>,
<#22d546dd: ({ #d121c0bd: 61 }, <#3866e79a>)>, <#22d546dd: ({ #d121c0bd: 57 }, <#3866e79a>)>,
<#22d546dd: ({ #d121c0bd: 62 }, <#23a02071>)>, <#22d546dd: ({ #d121c0bd: 58 }, <#23a02071>)>,
<#22d546dd: ({ #d121c0bd: 63 }, <#09087e8d>)>, <#22d546dd: ({ #d121c0bd: 59 }, <#09087e8d>)>,
<#22d546dd: ({ #d121c0bd: 64 }, <#15c4357c>)>, <#22d546dd: ({ #d121c0bd: 60 }, <#15c4357c>)>,
<#22d546dd: ({ #d121c0bd: 65 }, <#e75f9f31>)>, <#22d546dd: ({ #d121c0bd: 61 }, <#e75f9f31>)>,
<#22d546dd: ({ #d121c0bd: 66 }, <#c2f78dcd>)>, <#22d546dd: ({ #d121c0bd: 62 }, <#c2f78dcd>)>,
<#22d546dd: ({ #d121c0bd: 67 }, <#3726ba3b>)>, <#22d546dd: ({ #d121c0bd: 63 }, <#3726ba3b>)>,
<#22d546dd: ({ #d121c0bd: 68 }, <#3759b761>)>, <#22d546dd: ({ #d121c0bd: 64 }, <#3759b761>)>,
<#22d546dd: ({ #d121c0bd: 69 }, <#ebd317dd>)>, <#22d546dd: ({ #d121c0bd: 65 }, <#ebd317dd>)>,
<#22d546dd: ({ #d121c0bd: 70 }, <#2ec759b9>)>, <#22d546dd: ({ #d121c0bd: 66 }, <#2ec759b9>)>,
<#22d546dd: ({ #d121c0bd: 71 }, <#284d329d>)>, <#22d546dd: ({ #d121c0bd: 67 }, <#284d329d>)>,
<#22d546dd: ({ #d121c0bd: 72 }, <#35acb472>)>, <#22d546dd: ({ #d121c0bd: 68 }, <#35acb472>)>,
<#22d546dd: ({ #d121c0bd: 73 }, <#2b1d0544>)>, <#22d546dd: ({ #d121c0bd: 69 }, <#2b1d0544>)>,
<#22d546dd: ({ #d121c0bd: 74 }, <#0106ffa8>)>, <#22d546dd: ({ #d121c0bd: 70 }, <#0106ffa8>)>,
<#22d546dd: ({ #d121c0bd: 75 }, <#d6bc9d8a>)>, <#22d546dd: ({ #d121c0bd: 71 }, <#d6bc9d8a>)>,
<#22d546dd: ({ #d121c0bd: 76 }, <#19b0df66>)>, <#22d546dd: ({ #d121c0bd: 72 }, <#19b0df66>)>,
<#22d546dd: ({ #d121c0bd: 77 }, <#1336b84a>)>, <#22d546dd: ({ #d121c0bd: 73 }, <#1336b84a>)>,
<#22d546dd: ({ #d121c0bd: 78 }, <#20963a1f>)>, <#22d546dd: ({ #d121c0bd: 74 }, <#20963a1f>)>,
<#22d546dd: ({ #d121c0bd: 79 }, <#16068af1>)>, <#22d546dd: ({ #d121c0bd: 75 }, <#16068af1>)>,
<#22d546dd: ({ #d121c0bd: 80 }, <#ebf08555>)>, <#22d546dd: ({ #d121c0bd: 76 }, <#ebf08555>)>,
<#22d546dd: ({ #d121c0bd: 81 }, <#d78ceb63>)>, <#22d546dd: ({ #d121c0bd: 77 }, <#d78ceb63>)>,
<#22d546dd: ({ #d121c0bd: 82 }, <#dd2a33f3>)>, <#22d546dd: ({ #d121c0bd: 78 }, <#dd2a33f3>)>,
<#22d546dd: ({ #d121c0bd: 83 }, <#ef62b1d7>)>, <#22d546dd: ({ #d121c0bd: 79 }, <#ef62b1d7>)>,
<#22d546dd: ({ #d121c0bd: 84 }, <#0c8bf62c>)>, <#22d546dd: ({ #d121c0bd: 80 }, <#0c8bf62c>)>,
<#22d546dd: ({ #d121c0bd: 85 }, <#13391dca>)>, <#22d546dd: ({ #d121c0bd: 81 }, <#13391dca>)>,
<#22d546dd: ({ #d121c0bd: 86 }, <#ecc0d32e>)>, <#22d546dd: ({ #d121c0bd: 82 }, <#ecc0d32e>)>,
<#22d546dd: ({ #d121c0bd: 87 }, <#c2767110>)>, <#22d546dd: ({ #d121c0bd: 83 }, <#c2767110>)>,
<#22d546dd: ({ #d121c0bd: 88 }, <#c813b9a0>)>, <#22d546dd: ({ #d121c0bd: 84 }, <#c813b9a0>)>,
<#22d546dd: ({ #d121c0bd: 89 }, <#da4c3784>)>, <#22d546dd: ({ #d121c0bd: 85 }, <#da4c3784>)>,
<#22d546dd: ({ #d121c0bd: 90 }, <#f7757bd9>)>, <#22d546dd: ({ #d121c0bd: 86 }, <#f7757bd9>)>,
<#22d546dd: ({ #d121c0bd: 91 }, <#fe22a377>)>, <#22d546dd: ({ #d121c0bd: 87 }, <#fe22a377>)>,
<#22d546dd: ({ #d121c0bd: 92 }, <#d7aa58db>)>, <#22d546dd: ({ #d121c0bd: 88 }, <#d7aa58db>)>,
<#22d546dd: ({ #d121c0bd: 93 }, <#d2f340c8>)>, <#22d546dd: ({ #d121c0bd: 89 }, <#d2f340c8>)>,
<#22d546dd: ({ #d121c0bd: 94 }, <#2193aedd>)>, <#22d546dd: ({ #d121c0bd: 90 }, <#2193aedd>)>,
<#22d546dd: ({ #d121c0bd: 95 }, <#0dd56321>)>, <#22d546dd: ({ #d121c0bd: 91 }, <#0dd56321>)>,
<#22d546dd: ({ #d121c0bd: 96 }, <#d8e10c82>)>, <#22d546dd: ({ #d121c0bd: 92 }, <#d8e10c82>)>,
<#22d546dd: ({ #d121c0bd: 97 }, <#c4f079df>)>, <#22d546dd: ({ #d121c0bd: 93 }, <#c4f079df>)>,
<#22d546dd: ({ #d121c0bd: 98 }, <#1ee7219a>)>, <#22d546dd: ({ #d121c0bd: 94 }, <#1ee7219a>)>,
<#22d546dd: ({ #d121c0bd: 99 }, <#0d506118>)>, <#22d546dd: ({ #d121c0bd: 95 }, <#0d506118>)>,
<#22d546dd: ({ #d121c0bd: 44 }, <#dec9bcfd>)>, <#22d546dd: ({ #d121c0bd: 42 }, <#dec9bcfd>)>,
<#22d546dd: ({ #d121c0bd: 100 }, <#f1f6e5a2>)>, <#22d546dd: ({ #d121c0bd: 96 }, <#f1f6e5a2>)>,
<#22d546dd: ({ #d121c0bd: 101 }, <#d935d0cf>)>, <#22d546dd: ({ #d121c0bd: 97 }, <#d935d0cf>)>,
<#22d546dd: ({ #d121c0bd: 102 }, <#d35a4eab>)>, <#22d546dd: ({ #d121c0bd: 98 }, <#d35a4eab>)>,
<#2e6cf4ea: ({ #d121c0bd: 103 })>, <#2e6cf4ea: ({ #d121c0bd: 99 })>,
<#2e6cf4ea: ({ #d121c0bd: 104 })>, <#2e6cf4ea: ({ #d121c0bd: 100 })>,
<#2e6cf4ea: ({ #d121c0bd: 105 })>, <#2e6cf4ea: ({ #d121c0bd: 101 })>,
<#2e6cf4ea: ({ #d121c0bd: 106 })>, <#2e6cf4ea: ({ #d121c0bd: 102 })>,
<#22d546dd: ({ #d121c0bd: 107 }, <#c9ba0f87>)>, <#22d546dd: ({ #d121c0bd: 103 }, <#c9ba0f87>)>,
<#22d546dd: ({ #d121c0bd: 108 }, <#db21580c>)>, <#22d546dd: ({ #d121c0bd: 104 }, <#db21580c>)>,
<#22d546dd: ({ #d121c0bd: 109 }, <#391b1e6e>)>, <#22d546dd: ({ #d121c0bd: 105 }, <#391b1e6e>)>,
<#d3d219f7: ({ #d121c0bd: 110 }, { #c1127ea9: 17 })>, <#d3d219f7: ({ #d121c0bd: 106 }, { #c1127ea9: 17 })>,
<#22d546dd: ({ #d121c0bd: 111 }, <#ea323187>)>, <#22d546dd: ({ #d121c0bd: 107 }, <#ea323187>)>,
<#22d546dd: ({ #d121c0bd: 112 }, <#2fe155d3>)>, <#22d546dd: ({ #d121c0bd: 108 }, <#2fe155d3>)>,
<#d3d219f7: ({ #d121c0bd: 113 }, { #c1127ea9: 109 })>, <#d3d219f7: ({ #d121c0bd: 109 }, { #c1127ea9: 105 })>,
<#0098a8c5: ({ #d121c0bd: 114 }, { #fcd148e8: 107 })>, <#0098a8c5: ({ #d121c0bd: 110 }, { #fcd148e8: 103 })>,
<#2e3d736c: ({ #d121c0bd: 115 }, { #c1127ea9: 114 })>, <#2e3d736c: ({ #d121c0bd: 111 }, { #c1127ea9: 110 })>,
<#0098a8c5: ({ #d121c0bd: 116 }, { #fcd148e8: 108 })>, <#0098a8c5: ({ #d121c0bd: 112 }, { #fcd148e8: 104 })>,
<#2e3d736c: ({ #d121c0bd: 117 }, { #c1127ea9: 116 })>, <#2e3d736c: ({ #d121c0bd: 113 }, { #c1127ea9: 112 })>,
<#2374f4e7: ({ #d121c0bd: 118 }, 9)>, <#2374f4e7: ({ #d121c0bd: 114 }, 9)>,
<#d80cb60b: ({ #d121c0bd: 119 }, 120)>, <#d80cb60b: ({ #d121c0bd: 115 }, 116)>,
<#d3d219f7: ({ #d121c0bd: 121 }, { #c1127ea9: 56, #ea1a680e: true })>, <#d3d219f7: ({ #d121c0bd: 117 }, { #c1127ea9: 52, #ea1a680e: true })>,
<#d3d219f7: ({ #d121c0bd: 122 }, { #c1127ea9: 53, #ea1a680e: true })>, <#d3d219f7: ({ #d121c0bd: 118 }, { #c1127ea9: 49, #ea1a680e: true })>,
<#d3d219f7: ({ #d121c0bd: 123 }, { #c1127ea9: 53 })>, <#d3d219f7: ({ #d121c0bd: 119 }, { #c1127ea9: 49 })>,
<#d80cb60b: ({ #d121c0bd: 124 }, 125)>, <#d80cb60b: ({ #d121c0bd: 120 }, 121)>,
<#da0c5ecf: <#da0c5ecf:
({ #d121c0bd: 126 }, ({ #d121c0bd: 122 },
{ #cd26765d: { #c1127ea9: 124 }, #11302019: 24 }, { #cd26765d: { #c1127ea9: 120 }, #11302019: 24 },
1)>, 1)>,
<#2374f4e7: ({ #d121c0bd: 127 }, 13)>, <#2374f4e7: ({ #d121c0bd: 123 }, 13)>,
<#19e1ef85:
({ #d121c0bd: 7, #26f32be5: 115 },
{ #0b680f7d: { #c1127ea9: 115 }, #c3687459: 6 })>,
<#19e1ef85: <#19e1ef85:
({ #d121c0bd: 51, #26f32be5: 115 }, ({ #d121c0bd: 7, #26f32be5: 111 },
{ #0b680f7d: { #c1127ea9: 7 }, #c3687459: 50 })>, { #0b680f7d: { #c1127ea9: 111 }, #c3687459: 6 })>,
<#19e1ef85: <#19e1ef85:
({ #d121c0bd: 5, #26f32be5: 113 }, ({ #d121c0bd: 47, #26f32be5: 111 },
{ #0b680f7d: { #c1127ea9: 113 }, #c3687459: 4 })>, { #0b680f7d: { #c1127ea9: 7 }, #c3687459: 46 })>,
<#2374f4e7: ({ #d121c0bd: 128 }, 20)>, <#2374f4e7: ({ #d121c0bd: 124 }, 18)>,
<#0098a8c5: <#0098a8c5:
({ #d121c0bd: 129 }, { #fcd148e8: 107, #0b037c51: [ 15 ] })>, ({ #d121c0bd: 125 }, { #fcd148e8: 103, #0b037c51: [ 15 ] })>,
<#2e3d736c: ({ #d121c0bd: 22 }, { #c1127ea9: 129 })>, <#2e3d736c: ({ #d121c0bd: 20 }, { #c1127ea9: 125 })>,
<#2e3d736c: ({ #d121c0bd: 27 }, { #c1127ea9: 128 })>, <#2e3d736c: ({ #d121c0bd: 25 }, { #c1127ea9: 124 })>,
<#19e1ef85:
({ #d121c0bd: 5, #26f32be5: 109 },
{ #0b680f7d: { #c1127ea9: 109 }, #c3687459: 4 })>,
<#cfc9a9b2: ({ #d121c0bd: 0 })> <#cfc9a9b2: ({ #d121c0bd: 0 })>
] ]
})> })>

@ -1769,7 +1769,7 @@
], ],
{ {
"qual_type" : { "qual_type" : {
"type_ptr" : 35, "type_ptr" : 69,
"is_const" : true "is_const" : true
}, },
"value_kind" : "LValue" "value_kind" : "LValue"

@ -1769,7 +1769,7 @@
], ],
{ {
"qual_type" : { "qual_type" : {
"type_ptr" : 35, "type_ptr" : 69,
"is_const" : true "is_const" : true
}, },
"value_kind" : <"LValue"> "value_kind" : <"LValue">

@ -281,9 +281,7 @@ let get_struct_decls decl =
| ObjCPropertyImplDecl _ | ObjCPropertyImplDecl _
| PragmaCommentDecl _ | PragmaCommentDecl _
| PragmaDetectMismatchDecl _ | PragmaDetectMismatchDecl _
| StaticAssertDecl _ | StaticAssertDecl _ ->
| LifetimeExtendedTemporaryDecl _
| RequiresExprBodyDecl _ ->
[] []

@ -141,7 +141,7 @@ let filter_and_replace_unsupported_args ?(replace_options_arg = fun _ s -> s) ?(
let clang_cc1_cmd_sanitizer cmd = let clang_cc1_cmd_sanitizer cmd =
let replace_args arg = function let replace_args arg = function
| Some override_regex when Str.string_match override_regex arg 0 -> | Some override_regex when Str.string_match override_regex arg 0 ->
Config.fcp_dir ^/ "clang" ^/ "install" ^/ "lib" ^/ "clang" ^/ "10.0.1" ^/ "include" Config.fcp_dir ^/ "clang" ^/ "install" ^/ "lib" ^/ "clang" ^/ "9.0.0" ^/ "include"
| _ -> | _ ->
arg arg
in in

@ -232,9 +232,7 @@ module CFrontend_decl_funct (T : CModule_type.CTranslation) : CModule_type.CFron
| PragmaCommentDecl _ | PragmaCommentDecl _
| PragmaDetectMismatchDecl _ | PragmaDetectMismatchDecl _
| StaticAssertDecl _ | StaticAssertDecl _
| TranslationUnitDecl _ | TranslationUnitDecl _ ->
| LifetimeExtendedTemporaryDecl _
| RequiresExprBodyDecl _ ->
(* TODO: some form of logging *) (* TODO: some form of logging *)
() ()

@ -4181,14 +4181,6 @@ module CTrans_funct (F : CModule_type.CFrontend) : CModule_type.CTranslation = s
| OMPTaskwaitDirective _ | OMPTaskwaitDirective _
| OMPTaskyieldDirective _ | OMPTaskyieldDirective _
| OMPTeamsDirective _ | OMPTeamsDirective _
| OMPMasterTaskLoopDirective _
| OMPMasterTaskLoopSimdDirective _
| OMPParallelMasterTaskLoopDirective _
| OMPParallelMasterTaskLoopSimdDirective _
| OMPParallelMasterDirective _
| CXXRewrittenBinaryOperator _
| ConceptSpecializationExpr _
| RequiresExpr _
| SourceLocExpr _ | SourceLocExpr _
| SEHExceptStmt _ | SEHExceptStmt _
| SEHFinallyStmt _ | SEHFinallyStmt _

@ -22,7 +22,7 @@ digraph cfg {
"main.fad58de7366495db4650cfefac2fcd61_3" -> "main.fad58de7366495db4650cfefac2fcd61_2" ; "main.fad58de7366495db4650cfefac2fcd61_3" -> "main.fad58de7366495db4650cfefac2fcd61_2" ;
"main.fad58de7366495db4650cfefac2fcd61_4" [label="4: DeclStmt \n VARIABLE_DECLARED(s:std::basic_string<char,std::char_traits<char>,std::allocator<char>>); [line 20, column 3]\n n$5=_fun_std::basic_string<char,std::char_traits<char>,std::allocator<char>>::basic_string<nullptr_t>(&s:std::basic_string<char,std::char_traits<char>,std::allocator<char>>*,\"1234\":char const *) [line 20, column 15]\n " shape="box"] "main.fad58de7366495db4650cfefac2fcd61_4" [label="4: DeclStmt \n VARIABLE_DECLARED(s:std::basic_string<char,std::char_traits<char>,std::allocator<char>>); [line 20, column 3]\n n$5=_fun_std::basic_string<char,std::char_traits<char>,std::allocator<char>>::basic_string(&s:std::basic_string<char,std::char_traits<char>,std::allocator<char>>*,\"1234\":char const *) [line 20, column 15]\n " shape="box"]
"main.fad58de7366495db4650cfefac2fcd61_4" -> "main.fad58de7366495db4650cfefac2fcd61_3" ; "main.fad58de7366495db4650cfefac2fcd61_4" -> "main.fad58de7366495db4650cfefac2fcd61_3" ;

@ -22,7 +22,7 @@ digraph cfg {
"main.fad58de7366495db4650cfefac2fcd61_3" -> "main.fad58de7366495db4650cfefac2fcd61_2" ; "main.fad58de7366495db4650cfefac2fcd61_3" -> "main.fad58de7366495db4650cfefac2fcd61_2" ;
"main.fad58de7366495db4650cfefac2fcd61_4" [label="4: DeclStmt \n VARIABLE_DECLARED(s:std::basic_string<char,std::char_traits<char>,std::allocator<char>>); [line 20, column 3]\n n$5=_fun_std::basic_string<char,std::char_traits<char>,std::allocator<char>>::basic_string<nullptr_t>(&s:std::basic_string<char,std::char_traits<char>,std::allocator<char>>*,\"1234\":char const *) [line 20, column 15]\n " shape="box"] "main.fad58de7366495db4650cfefac2fcd61_4" [label="4: DeclStmt \n VARIABLE_DECLARED(s:std::basic_string<char,std::char_traits<char>,std::allocator<char>>); [line 20, column 3]\n n$5=_fun_std::basic_string<char,std::char_traits<char>,std::allocator<char>>::basic_string(&s:std::basic_string<char,std::char_traits<char>,std::allocator<char>>*,\"1234\":char const *) [line 20, column 15]\n " shape="box"]
"main.fad58de7366495db4650cfefac2fcd61_4" -> "main.fad58de7366495db4650cfefac2fcd61_3" ; "main.fad58de7366495db4650cfefac2fcd61_4" -> "main.fad58de7366495db4650cfefac2fcd61_3" ;

@ -22,7 +22,7 @@ digraph cfg {
"main.fad58de7366495db4650cfefac2fcd61_3" -> "main.fad58de7366495db4650cfefac2fcd61_2" ; "main.fad58de7366495db4650cfefac2fcd61_3" -> "main.fad58de7366495db4650cfefac2fcd61_2" ;
"main.fad58de7366495db4650cfefac2fcd61_4" [label="4: DeclStmt \n VARIABLE_DECLARED(s:std::basic_string<char,std::char_traits<char>,std::allocator<char>>); [line 20, column 3]\n n$5=_fun_std::basic_string<char,std::char_traits<char>,std::allocator<char>>::basic_string<nullptr_t>(&s:std::basic_string<char,std::char_traits<char>,std::allocator<char>>*,\"1234\":char const *) [line 20, column 15]\n " shape="box"] "main.fad58de7366495db4650cfefac2fcd61_4" [label="4: DeclStmt \n VARIABLE_DECLARED(s:std::basic_string<char,std::char_traits<char>,std::allocator<char>>); [line 20, column 3]\n n$5=_fun_std::basic_string<char,std::char_traits<char>,std::allocator<char>>::basic_string(&s:std::basic_string<char,std::char_traits<char>,std::allocator<char>>*,\"1234\":char const *) [line 20, column 15]\n " shape="box"]
"main.fad58de7366495db4650cfefac2fcd61_4" -> "main.fad58de7366495db4650cfefac2fcd61_3" ; "main.fad58de7366495db4650cfefac2fcd61_4" -> "main.fad58de7366495db4650cfefac2fcd61_3" ;

@ -22,7 +22,7 @@ digraph cfg {
"main.fad58de7366495db4650cfefac2fcd61_3" -> "main.fad58de7366495db4650cfefac2fcd61_2" ; "main.fad58de7366495db4650cfefac2fcd61_3" -> "main.fad58de7366495db4650cfefac2fcd61_2" ;
"main.fad58de7366495db4650cfefac2fcd61_4" [label="4: DeclStmt \n VARIABLE_DECLARED(s:std::basic_string<char,std::char_traits<char>,std::allocator<char>>); [line 20, column 3]\n n$5=_fun_std::basic_string<char,std::char_traits<char>,std::allocator<char>>::basic_string<nullptr_t>(&s:std::basic_string<char,std::char_traits<char>,std::allocator<char>>*,\"1234\":char const *) [line 20, column 15]\n " shape="box"] "main.fad58de7366495db4650cfefac2fcd61_4" [label="4: DeclStmt \n VARIABLE_DECLARED(s:std::basic_string<char,std::char_traits<char>,std::allocator<char>>); [line 20, column 3]\n n$5=_fun_std::basic_string<char,std::char_traits<char>,std::allocator<char>>::basic_string(&s:std::basic_string<char,std::char_traits<char>,std::allocator<char>>*,\"1234\":char const *) [line 20, column 15]\n " shape="box"]
"main.fad58de7366495db4650cfefac2fcd61_4" -> "main.fad58de7366495db4650cfefac2fcd61_3" ; "main.fad58de7366495db4650cfefac2fcd61_4" -> "main.fad58de7366495db4650cfefac2fcd61_3" ;

@ -62,7 +62,7 @@ digraph cfg {
"forward<int>#std#5548362574050729124.664bf3a19e8401f31df778b67554bdae_2" [label="2: Exit std::forward<int> \n " color=yellow style=filled] "forward<int>#std#5548362574050729124.664bf3a19e8401f31df778b67554bdae_2" [label="2: Exit std::forward<int> \n " color=yellow style=filled]
"forward<int>#std#5548362574050729124.664bf3a19e8401f31df778b67554bdae_3" [label="3: Return Stmt \n n$0=*&__t:int& [line 2269, column 31]\n *&return:int&=n$0 [line 2269, column 5]\n " shape="box"] "forward<int>#std#5548362574050729124.664bf3a19e8401f31df778b67554bdae_3" [label="3: Return Stmt \n n$0=*&__t:int& [line 2289, column 31]\n *&return:int&=n$0 [line 2289, column 5]\n " shape="box"]
"forward<int>#std#5548362574050729124.664bf3a19e8401f31df778b67554bdae_3" -> "forward<int>#std#5548362574050729124.664bf3a19e8401f31df778b67554bdae_2" ; "forward<int>#std#5548362574050729124.664bf3a19e8401f31df778b67554bdae_3" -> "forward<int>#std#5548362574050729124.664bf3a19e8401f31df778b67554bdae_2" ;
@ -73,7 +73,7 @@ digraph cfg {
"forward<int_&>#std#2714018779968350623.5a6c534312c02b38db42a98e7dfe7983_2" [label="2: Exit std::forward<int_&> \n " color=yellow style=filled] "forward<int_&>#std#2714018779968350623.5a6c534312c02b38db42a98e7dfe7983_2" [label="2: Exit std::forward<int_&> \n " color=yellow style=filled]
"forward<int_&>#std#2714018779968350623.5a6c534312c02b38db42a98e7dfe7983_3" [label="3: Return Stmt \n n$0=*&__t:int& [line 2269, column 31]\n *&return:int&=n$0 [line 2269, column 5]\n " shape="box"] "forward<int_&>#std#2714018779968350623.5a6c534312c02b38db42a98e7dfe7983_3" [label="3: Return Stmt \n n$0=*&__t:int& [line 2289, column 31]\n *&return:int&=n$0 [line 2289, column 5]\n " shape="box"]
"forward<int_&>#std#2714018779968350623.5a6c534312c02b38db42a98e7dfe7983_3" -> "forward<int_&>#std#2714018779968350623.5a6c534312c02b38db42a98e7dfe7983_2" ; "forward<int_&>#std#2714018779968350623.5a6c534312c02b38db42a98e7dfe7983_3" -> "forward<int_&>#std#2714018779968350623.5a6c534312c02b38db42a98e7dfe7983_2" ;

@ -44,6 +44,7 @@ codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCycleDeduplication.m
codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCyclePropertyInProtocol.m, Delegate.delegate, 0, Bad_footprint, no_bucket, ERROR, [start of procedure delegate] codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCyclePropertyInProtocol.m, Delegate.delegate, 0, Bad_footprint, no_bucket, ERROR, [start of procedure delegate]
codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCyclePropertyInProtocol.m, Delegate.setDelegate:, 0, Bad_footprint, no_bucket, ERROR, [start of procedure setDelegate:] codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCyclePropertyInProtocol.m, Delegate.setDelegate:, 0, Bad_footprint, no_bucket, ERROR, [start of procedure setDelegate:]
codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCyclePropertyInProtocol.m, Delegate.setStrong_delegate:, 0, Bad_footprint, no_bucket, ERROR, [start of procedure setStrong_delegate:] codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCyclePropertyInProtocol.m, Delegate.setStrong_delegate:, 0, Bad_footprint, no_bucket, ERROR, [start of procedure setStrong_delegate:]
codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCyclePropertyInProtocol.m, Delegate.setStrong_delegate:, 0, Bad_footprint, no_bucket, ERROR, [start of procedure setStrong_delegate:]
codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCyclePropertyInProtocol.m, Delegate.strong_delegate, 0, Bad_footprint, no_bucket, ERROR, [start of procedure strong_delegate] codetoanalyze/objc/biabduction/memory_leaks_benchmark/RetainCyclePropertyInProtocol.m, Delegate.strong_delegate, 0, Bad_footprint, no_bucket, ERROR, [start of procedure strong_delegate]
codetoanalyze/objc/biabduction/memory_leaks_benchmark/retain_cycle.m, strongcycle, 6, BIABDUCTION_ANALYSIS_STOPS, no_bucket, WARNING, [start of procedure strongcycle(),start of procedure setB:,return from a call to AA.setB:,start of procedure setA:,return from a call to BBStrong.setA:] codetoanalyze/objc/biabduction/memory_leaks_benchmark/retain_cycle.m, strongcycle, 6, BIABDUCTION_ANALYSIS_STOPS, no_bucket, WARNING, [start of procedure strongcycle(),start of procedure setB:,return from a call to AA.setB:,start of procedure setA:,return from a call to BBStrong.setA:]
codetoanalyze/objc/biabduction/memory_leaks_benchmark/retain_cycle.m, strongcycle, 6, RETAIN_CYCLE, no_bucket, ERROR, [start of procedure strongcycle(),start of procedure setB:,return from a call to AA.setB:,start of procedure setA:,return from a call to BBStrong.setA:] codetoanalyze/objc/biabduction/memory_leaks_benchmark/retain_cycle.m, strongcycle, 6, RETAIN_CYCLE, no_bucket, ERROR, [start of procedure strongcycle(),start of procedure setB:,return from a call to AA.setB:,start of procedure setA:,return from a call to BBStrong.setA:]

Loading…
Cancel
Save