Upgrade Infer to clang10

Reviewed By: jvillard

Differential Revision: D25048497

fbshipit-source-id: 7e839a076
master
Martin Trojer 4 years ago committed by Facebook GitHub Bot
parent c80b80d0d7
commit 9fd1a87cd5

@ -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.def> #include <clang/AST/TypeNodes.inc>
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
58 37 112 86 37 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
@ -1127,32 +1127,58 @@ 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
@ -1161,6 +1187,8 @@ 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
@ -1209,7 +1237,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
132 193 139 176 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
@ -1224,32 +1252,58 @@ 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
@ -1258,8 +1312,12 @@ 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
@ -1297,6 +1355,8 @@ 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
@ -1535,9 +1595,39 @@ 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
@ -1625,6 +1715,8 @@ 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
@ -1666,7 +1758,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
56 8 115 82 8 118
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
@ -1681,32 +1773,58 @@ 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,6 +374,14 @@ _str
_x _x
_y _y
_delegate _delegate
str
setStr:
x
setX:
y
setY:
delegate
setDelegate:
MyCategory MyCategory
bar: bar:
MyCategory MyCategory

@ -12,28 +12,30 @@ 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="9.0.0" LLVM_VER="10.0.1"
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="cfe-${LLVM_VER}.src.tar.xz" CLANG_FILE="clang-${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="https://releases.llvm.org/${LLVM_VER}/${LLVM_FILE}" LLVM_URL="${GITHUB_URL}/${LLVM_FILE}"
CLANG_URL="https://releases.llvm.org/${LLVM_VER}/${CLANG_FILE}" CLANG_URL="${GITHUB_URL}/${CLANG_FILE}"
COMPILER_RT_URL="https://releases.llvm.org/${LLVM_VER}/${COMPILER_RT_FILE}" COMPILER_RT_URL="${GITHUB_URL}/${COMPILER_RT_FILE}"
LIBCXX_URL="https://releases.llvm.org/${LLVM_VER}/${LIBCXX_FILE}" LIBCXX_URL="${GITHUB_URL}/${LIBCXX_FILE}"
LIBCXXABI_URL="https://releases.llvm.org/${LLVM_VER}/${LIBCXXABI_FILE}" LIBCXXABI_URL="${GITHUB_URL}/${LIBCXXABI_FILE}"
OPENMP_URL="https://releases.llvm.org/${LLVM_VER}/${OPENMP_FILE}" OPENMP_URL="${GITHUB_URL}/${OPENMP_FILE}"
LLVM_SHA="d6a0565cf21f22e9b4353b2eb92622e8365000a9e90a16b09b56f8157eabfe84" LLVM_SHA="c5d8e30b57cbded7128d78e5e8dad811bff97a8d471896812f57fa99ee82cdf3"
CLANG_SHA="7ba81eef7c22ca5da688fdf9d88c20934d2d6b40bfe150ffd338900890aa4610" CLANG_SHA="f99afc382b88e622c689b6d96cadfa6241ef55dca90e87fc170352e12ddb2b24"
COMPILER_RT_SHA="56e4cd96dd1d8c346b07b4d6b255f976570c6f2389697347a6c3dcb9e820d10e" COMPILER_RT_SHA="d90dc8e121ca0271f0fd3d639d135bfaa4b6ed41e67bd6eb77808f72629658fa"
LIBCXX_SHA="3c4162972b5d3204ba47ac384aa456855a17b5e97422723d4758251acf1ed28c" LIBCXX_SHA="def674535f22f83131353b3c382ccebfef4ba6a35c488bdb76f10b68b25be86c"
LIBCXXABI_SHA="675041783565c906ac2f7f8b2bc5c40f14d871ecfa8ade34855aa18de95530e9" LIBCXXABI_SHA="a97ef810b2e9fb70e8f7e317b74e646ed4944f488b02ac5ddd9c99e385381a7b"
OPENMP_SHA="9979eb1133066376cc0be29d1682bc0b0e7fb541075b391061679111ae4d3b5b" OPENMP_SHA="d19f728c8e04fb1e94566c8d76aef50ec926cd2f95ef3bf1e0a5de4909b28b44"
FILES=( FILES=(
$LLVM_FILE $LLVM_FILE
@ -67,7 +69,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 "${URLS[$i]}" --output "${FILES[$i]}" curl -L "${URLS[$i]}" --output "${FILES[$i]}"
fi fi
echo "${SHAS[$i]} ${FILES[$i]}" | $SHASUM -c echo "${SHAS[$i]} ${FILES[$i]}" | $SHASUM -c
done done
@ -77,7 +79,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 "cfe-${LLVM_VER}.src" clang mv "clang-${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.def> #include <clang/AST/TypeNodes.inc>
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.def> #include <clang/AST/TypeNodes.inc>
} }
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 InputKind::Unknown: case Language::Unknown:
OF.emitSimpleVariant("IK_None"); OF.emitSimpleVariant("IK_None");
break; break;
case InputKind::Asm: case Language::Asm:
OF.emitSimpleVariant("IK_Asm"); OF.emitSimpleVariant("IK_Asm");
break; break;
case InputKind::C: case Language::C:
OF.emitSimpleVariant("IK_C"); OF.emitSimpleVariant("IK_C");
break; break;
case InputKind::CXX: case Language::CXX:
OF.emitSimpleVariant("IK_CXX"); OF.emitSimpleVariant("IK_CXX");
break; break;
case InputKind::ObjC: case Language::ObjC:
OF.emitSimpleVariant("IK_ObjC"); OF.emitSimpleVariant("IK_ObjC");
break; break;
case InputKind::ObjCXX: case Language::ObjCXX:
OF.emitSimpleVariant("IK_ObjCXX"); OF.emitSimpleVariant("IK_ObjCXX");
break; break;
case InputKind::OpenCL: case Language::OpenCL:
OF.emitSimpleVariant("IK_OpenCL"); OF.emitSimpleVariant("IK_OpenCL");
break; break;
case InputKind::CUDA: case Language::CUDA:
OF.emitSimpleVariant("IK_CUDA"); OF.emitSimpleVariant("IK_CUDA");
break; break;
case InputKind::RenderScript: case Language::RenderScript:
OF.emitSimpleVariant("IK_RenderScript"); OF.emitSimpleVariant("IK_RenderScript");
break; break;
case InputKind::LLVM_IR: case Language::LLVM_IR:
OF.emitSimpleVariant("IK_LLVM_IR"); OF.emitSimpleVariant("IK_LLVM_IR");
break; break;
case InputKind::HIP: case Language::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.def> #include <clang/AST/TypeNodes.inc>
#undef TYPE #undef TYPE
#undef ABSTRACT_TYPE #undef ABSTRACT_TYPE
@ -4975,6 +4975,10 @@ 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) {
@ -4987,6 +4991,17 @@ 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>
@ -5355,7 +5370,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.def> #include <clang/AST/TypeNodes.inc>
//@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,12 +8,9 @@
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 HEADERS+=atdlib/ATDWriter.h ASTExporter.h NamePrinter.h AttrParameterVectorStream.h SimplePluginASTAction.h FileUtils.h
OBJS+=ASTExporter.o OBJS+=ASTExporter.o SimplePluginASTAction.o FileUtils.o AttrParameterVectorStream.o
# Json # Json
PLUGINS+=JsonASTExporter PLUGINS+=JsonASTExporter
@ -38,12 +35,6 @@ 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(llvm::make_unique<PreprocessorHandler>( preprocessor.addPPCallbacks(std::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::InputKind::Unknown: case clang::Language::Unknown:
case clang::InputKind::Asm: case clang::Language::Asm:
case clang::InputKind::LLVM_IR: case clang::Language::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) {}
clang::FrontendAction *create() override { std::unique_ptr<clang::FrontendAction> create() override {
return new SimpleASTAction(args_); return new SimpleASTAction(args_);
} }
}; };

@ -1,78 +0,0 @@
/*
* 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: 69, #c1127ea9: 35,
#ea1a680e: true #ea1a680e: true
}, },
#0e89e422: <#28055b85> #0e89e422: <#28055b85>

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

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

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

@ -281,7 +281,9 @@ 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" ^/ "9.0.0" ^/ "include" Config.fcp_dir ^/ "clang" ^/ "install" ^/ "lib" ^/ "clang" ^/ "10.0.1" ^/ "include"
| _ -> | _ ->
arg arg
in in

@ -232,7 +232,9 @@ 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 *)
() ()

@ -4521,6 +4521,14 @@ 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 _

@ -26,7 +26,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(&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<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" -> "main.fad58de7366495db4650cfefac2fcd61_3" ; "main.fad58de7366495db4650cfefac2fcd61_4" -> "main.fad58de7366495db4650cfefac2fcd61_3" ;

@ -26,7 +26,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(&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<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" -> "main.fad58de7366495db4650cfefac2fcd61_3" ; "main.fad58de7366495db4650cfefac2fcd61_4" -> "main.fad58de7366495db4650cfefac2fcd61_3" ;

@ -26,7 +26,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(&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<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" -> "main.fad58de7366495db4650cfefac2fcd61_3" ; "main.fad58de7366495db4650cfefac2fcd61_4" -> "main.fad58de7366495db4650cfefac2fcd61_3" ;

@ -26,7 +26,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(&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<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" -> "main.fad58de7366495db4650cfefac2fcd61_3" ; "main.fad58de7366495db4650cfefac2fcd61_4" -> "main.fad58de7366495db4650cfefac2fcd61_3" ;

@ -78,11 +78,11 @@ 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 2289, column 31]\n " shape="box"] "forward<int>#std#5548362574050729124.664bf3a19e8401f31df778b67554bdae_3" [label="3: Return Stmt \n n$0=*&__t:int& [line 2269, column 31]\n " shape="box"]
"forward<int>#std#5548362574050729124.664bf3a19e8401f31df778b67554bdae_3" -> "forward<int>#std#5548362574050729124.664bf3a19e8401f31df778b67554bdae_4" ; "forward<int>#std#5548362574050729124.664bf3a19e8401f31df778b67554bdae_3" -> "forward<int>#std#5548362574050729124.664bf3a19e8401f31df778b67554bdae_4" ;
"forward<int>#std#5548362574050729124.664bf3a19e8401f31df778b67554bdae_4" [label="4: Return Stmt \n *&return:int&=n$0 [line 2289, column 5]\n " shape="box"] "forward<int>#std#5548362574050729124.664bf3a19e8401f31df778b67554bdae_4" [label="4: Return Stmt \n *&return:int&=n$0 [line 2269, column 5]\n " shape="box"]
"forward<int>#std#5548362574050729124.664bf3a19e8401f31df778b67554bdae_4" -> "forward<int>#std#5548362574050729124.664bf3a19e8401f31df778b67554bdae_2" ; "forward<int>#std#5548362574050729124.664bf3a19e8401f31df778b67554bdae_4" -> "forward<int>#std#5548362574050729124.664bf3a19e8401f31df778b67554bdae_2" ;
@ -93,11 +93,11 @@ 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 2289, column 31]\n " shape="box"] "forward<int_&>#std#2714018779968350623.5a6c534312c02b38db42a98e7dfe7983_3" [label="3: Return Stmt \n n$0=*&__t:int& [line 2269, column 31]\n " shape="box"]
"forward<int_&>#std#2714018779968350623.5a6c534312c02b38db42a98e7dfe7983_3" -> "forward<int_&>#std#2714018779968350623.5a6c534312c02b38db42a98e7dfe7983_4" ; "forward<int_&>#std#2714018779968350623.5a6c534312c02b38db42a98e7dfe7983_3" -> "forward<int_&>#std#2714018779968350623.5a6c534312c02b38db42a98e7dfe7983_4" ;
"forward<int_&>#std#2714018779968350623.5a6c534312c02b38db42a98e7dfe7983_4" [label="4: Return Stmt \n *&return:int&=n$0 [line 2289, column 5]\n " shape="box"] "forward<int_&>#std#2714018779968350623.5a6c534312c02b38db42a98e7dfe7983_4" [label="4: Return Stmt \n *&return:int&=n$0 [line 2269, column 5]\n " shape="box"]
"forward<int_&>#std#2714018779968350623.5a6c534312c02b38db42a98e7dfe7983_4" -> "forward<int_&>#std#2714018779968350623.5a6c534312c02b38db42a98e7dfe7983_2" ; "forward<int_&>#std#2714018779968350623.5a6c534312c02b38db42a98e7dfe7983_4" -> "forward<int_&>#std#2714018779968350623.5a6c534312c02b38db42a98e7dfe7983_2" ;

@ -44,7 +44,6 @@ 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