github.com/google/syzkaller@v0.0.0-20251211124644-a066d2bc4b02/tools/syz-declextract/testdata/types.c.json (about)

     1  {
     2  	"functions": [
     3  		{
     4  			"name": "__do_sys_align_syscall",
     5  			"file": "types.c",
     6  			"start_line": 111,
     7  			"end_line": 113,
     8  			"scopes": [
     9  				{
    10  					"arg": -1
    11  				}
    12  			]
    13  		},
    14  		{
    15  			"name": "__do_sys_types_syscall",
    16  			"file": "types.c",
    17  			"start_line": 53,
    18  			"end_line": 57,
    19  			"scopes": [
    20  				{
    21  					"arg": -1
    22  				}
    23  			]
    24  		},
    25  		{
    26  			"name": "__do_sys_types_syscall2",
    27  			"file": "types.c",
    28  			"start_line": 69,
    29  			"end_line": 71,
    30  			"scopes": [
    31  				{
    32  					"arg": -1
    33  				}
    34  			]
    35  		},
    36  		{
    37  			"name": "anon_flow",
    38  			"file": "types.c",
    39  			"start_line": 73,
    40  			"end_line": 82,
    41  			"scopes": [
    42  				{
    43  					"arg": -1,
    44  					"facts": [
    45  						{
    46  							"src": {
    47  								"argument": {
    48  									"func": "anon_flow",
    49  									"arg": 0
    50  								}
    51  							},
    52  							"dst": {
    53  								"field": {
    54  									"struct": "11253655576479126317",
    55  									"field": "x"
    56  								}
    57  							}
    58  						},
    59  						{
    60  							"src": {
    61  								"argument": {
    62  									"func": "anon_flow",
    63  									"arg": 0
    64  								}
    65  							},
    66  							"dst": {
    67  								"field": {
    68  									"struct": "11253655576479126319",
    69  									"field": "y"
    70  								}
    71  							}
    72  						},
    73  						{
    74  							"src": {
    75  								"argument": {
    76  									"func": "anon_flow",
    77  									"arg": 0
    78  								}
    79  							},
    80  							"dst": {
    81  								"field": {
    82  									"struct": "11253655576479126320",
    83  									"field": "w"
    84  								}
    85  							}
    86  						},
    87  						{
    88  							"src": {
    89  								"argument": {
    90  									"func": "anon_flow",
    91  									"arg": 0
    92  								}
    93  							},
    94  							"dst": {
    95  								"field": {
    96  									"struct": "11253655576479126310",
    97  									"field": "f"
    98  								}
    99  							}
   100  						},
   101  						{
   102  							"src": {
   103  								"argument": {
   104  									"func": "anon_flow",
   105  									"arg": 0
   106  								}
   107  							},
   108  							"dst": {
   109  								"field": {
   110  									"struct": "11253655576479126323",
   111  									"field": "a"
   112  								}
   113  							}
   114  						},
   115  						{
   116  							"src": {
   117  								"argument": {
   118  									"func": "anon_flow",
   119  									"arg": 0
   120  								}
   121  							},
   122  							"dst": {
   123  								"field": {
   124  									"struct": "11253655576479126324",
   125  									"field": "a"
   126  								}
   127  							}
   128  						},
   129  						{
   130  							"src": {
   131  								"argument": {
   132  									"func": "anon_flow",
   133  									"arg": 0
   134  								}
   135  							},
   136  							"dst": {
   137  								"field": {
   138  									"struct": "11253655576479126325",
   139  									"field": "b"
   140  								}
   141  							}
   142  						}
   143  					]
   144  				}
   145  			]
   146  		},
   147  		{
   148  			"name": "atomic_load32",
   149  			"file": "include/types.h",
   150  			"start_line": 17,
   151  			"end_line": 19,
   152  			"is_static": true,
   153  			"scopes": [
   154  				{
   155  					"arg": -1
   156  				}
   157  			]
   158  		},
   159  		{
   160  			"name": "atomic_load64",
   161  			"file": "include/types.h",
   162  			"start_line": 21,
   163  			"end_line": 23,
   164  			"scopes": [
   165  				{
   166  					"arg": -1
   167  				}
   168  			]
   169  		}
   170  	],
   171  	"consts": [
   172  		{
   173  			"name": "a",
   174  			"filename": "types.c",
   175  			"value": 0
   176  		},
   177  		{
   178  			"name": "b",
   179  			"filename": "types.c",
   180  			"value": 1
   181  		},
   182  		{
   183  			"name": "c",
   184  			"filename": "types.c",
   185  			"value": 2
   186  		},
   187  		{
   188  			"name": "enum_bar_a",
   189  			"filename": "types.c",
   190  			"value": 0
   191  		},
   192  		{
   193  			"name": "enum_bar_b",
   194  			"filename": "types.c",
   195  			"value": 1
   196  		},
   197  		{
   198  			"name": "enum_foo_a",
   199  			"filename": "types.c",
   200  			"value": 0
   201  		},
   202  		{
   203  			"name": "enum_foo_b",
   204  			"filename": "types.c",
   205  			"value": 1
   206  		}
   207  	],
   208  	"enums": [
   209  		{
   210  			"name": "bitfield_enum",
   211  			"values": [
   212  				"a",
   213  				"b",
   214  				"c"
   215  			]
   216  		},
   217  		{
   218  			"name": "enum_bar",
   219  			"values": [
   220  				"enum_bar_a",
   221  				"enum_bar_b"
   222  			]
   223  		},
   224  		{
   225  			"name": "enum_foo",
   226  			"values": [
   227  				"enum_foo_a",
   228  				"enum_foo_b"
   229  			]
   230  		}
   231  	],
   232  	"structs": [
   233  		{
   234  			"name": "align1",
   235  			"byte_size": 16,
   236  			"align": 8,
   237  			"fields": [
   238  				{
   239  					"name": "f1",
   240  					"counted_by": -1,
   241  					"type": {
   242  						"int": {
   243  							"byte_size": 1,
   244  							"name": "char",
   245  							"base": "char"
   246  						}
   247  					}
   248  				},
   249  				{
   250  					"name": "aligner",
   251  					"counted_by": -1,
   252  					"type": {
   253  						"array": {
   254  							"elem": {
   255  								"int": {
   256  									"byte_size": 8,
   257  									"name": "long",
   258  									"base": "long"
   259  								}
   260  							},
   261  							"align": 8,
   262  							"is_const_size": true
   263  						}
   264  					}
   265  				},
   266  				{
   267  					"name": "f2",
   268  					"counted_by": -1,
   269  					"type": {
   270  						"int": {
   271  							"byte_size": 1,
   272  							"name": "char",
   273  							"base": "char"
   274  						}
   275  					}
   276  				}
   277  			]
   278  		},
   279  		{
   280  			"name": "align2",
   281  			"byte_size": 2,
   282  			"align": 1,
   283  			"fields": [
   284  				{
   285  					"name": "f1",
   286  					"counted_by": -1,
   287  					"type": {
   288  						"int": {
   289  							"byte_size": 1,
   290  							"name": "char",
   291  							"base": "char"
   292  						}
   293  					}
   294  				},
   295  				{
   296  					"name": "aligner",
   297  					"counted_by": -1,
   298  					"type": {
   299  						"struct": "empty_struct"
   300  					}
   301  				},
   302  				{
   303  					"name": "f2",
   304  					"counted_by": -1,
   305  					"type": {
   306  						"int": {
   307  							"byte_size": 1,
   308  							"name": "char",
   309  							"base": "char"
   310  						}
   311  					}
   312  				}
   313  			]
   314  		},
   315  		{
   316  			"name": "align3",
   317  			"byte_size": 16,
   318  			"align": 8,
   319  			"fields": [
   320  				{
   321  					"name": "f1",
   322  					"counted_by": -1,
   323  					"type": {
   324  						"int": {
   325  							"byte_size": 1,
   326  							"name": "char",
   327  							"base": "char"
   328  						}
   329  					}
   330  				},
   331  				{
   332  					"name": "aligner",
   333  					"counted_by": -1,
   334  					"type": {
   335  						"struct": "aligned_empty_struct"
   336  					}
   337  				},
   338  				{
   339  					"name": "f2",
   340  					"counted_by": -1,
   341  					"type": {
   342  						"int": {
   343  							"byte_size": 1,
   344  							"name": "char",
   345  							"base": "char"
   346  						}
   347  					}
   348  				}
   349  			]
   350  		},
   351  		{
   352  			"name": "align4",
   353  			"byte_size": 16,
   354  			"align": 8,
   355  			"fields": [
   356  				{
   357  					"name": "f1",
   358  					"counted_by": -1,
   359  					"type": {
   360  						"int": {
   361  							"byte_size": 1,
   362  							"name": "char",
   363  							"base": "char"
   364  						}
   365  					}
   366  				},
   367  				{
   368  					"name": "aligner",
   369  					"counted_by": -1,
   370  					"type": {
   371  						"array": {
   372  							"elem": {
   373  								"struct": "large_struct"
   374  							},
   375  							"align": 8,
   376  							"is_const_size": true
   377  						}
   378  					}
   379  				},
   380  				{
   381  					"name": "f2",
   382  					"counted_by": -1,
   383  					"type": {
   384  						"int": {
   385  							"byte_size": 1,
   386  							"name": "char",
   387  							"base": "char"
   388  						}
   389  					}
   390  				}
   391  			]
   392  		},
   393  		{
   394  			"name": "aligned_empty_struct",
   395  			"align": 8,
   396  			"align_attr": 8
   397  		},
   398  		{
   399  			"name": "anon_struct",
   400  			"byte_size": 104,
   401  			"align": 8,
   402  			"fields": [
   403  				{
   404  					"name": "a",
   405  					"counted_by": -1,
   406  					"type": {
   407  						"struct": "anon_struct_a"
   408  					}
   409  				},
   410  				{
   411  					"name": "b",
   412  					"counted_by": -1,
   413  					"type": {
   414  						"struct": "anon_struct_b"
   415  					}
   416  				},
   417  				{
   418  					"name": "anon_struct_2",
   419  					"is_anonymous": true,
   420  					"counted_by": -1,
   421  					"type": {
   422  						"struct": "anon_struct_2"
   423  					}
   424  				},
   425  				{
   426  					"name": "anon_struct_3",
   427  					"is_anonymous": true,
   428  					"counted_by": -1,
   429  					"type": {
   430  						"struct": "anon_struct_3"
   431  					}
   432  				},
   433  				{
   434  					"name": "foo",
   435  					"counted_by": -1,
   436  					"type": {
   437  						"struct": "anon_t"
   438  					}
   439  				},
   440  				{
   441  					"name": "forward",
   442  					"counted_by": -1,
   443  					"type": {
   444  						"ptr": {
   445  							"elem": {
   446  								"int": {
   447  									"byte_size": 1,
   448  									"name": "TODO",
   449  									"base": "long"
   450  								}
   451  							}
   452  						}
   453  					}
   454  				},
   455  				{
   456  					"name": "array",
   457  					"counted_by": -1,
   458  					"type": {
   459  						"array": {
   460  							"elem": {
   461  								"struct": "anon_struct_array"
   462  							},
   463  							"min_size": 4,
   464  							"max_size": 4,
   465  							"align": 4,
   466  							"is_const_size": true
   467  						}
   468  					}
   469  				},
   470  				{
   471  					"name": "ptr",
   472  					"counted_by": -1,
   473  					"type": {
   474  						"ptr": {
   475  							"elem": {
   476  								"struct": "anon_struct_ptr"
   477  							}
   478  						}
   479  					}
   480  				},
   481  				{
   482  					"name": "ptr_array",
   483  					"counted_by": -1,
   484  					"type": {
   485  						"array": {
   486  							"elem": {
   487  								"ptr": {
   488  									"elem": {
   489  										"struct": "anon_struct_ptr_array"
   490  									}
   491  								}
   492  							},
   493  							"min_size": 4,
   494  							"max_size": 4,
   495  							"align": 8,
   496  							"is_const_size": true
   497  						}
   498  					}
   499  				}
   500  			]
   501  		},
   502  		{
   503  			"name": "anon_struct_2",
   504  			"byte_size": 4,
   505  			"align": 4,
   506  			"fields": [
   507  				{
   508  					"name": "y",
   509  					"counted_by": -1,
   510  					"type": {
   511  						"int": {
   512  							"byte_size": 4,
   513  							"name": "int",
   514  							"base": "int"
   515  						}
   516  					}
   517  				}
   518  			]
   519  		},
   520  		{
   521  			"name": "anon_struct_3",
   522  			"byte_size": 8,
   523  			"align": 8,
   524  			"is_union": true,
   525  			"fields": [
   526  				{
   527  					"name": "q",
   528  					"counted_by": -1,
   529  					"type": {
   530  						"int": {
   531  							"byte_size": 4,
   532  							"name": "int",
   533  							"base": "int"
   534  						}
   535  					}
   536  				},
   537  				{
   538  					"name": "w",
   539  					"counted_by": -1,
   540  					"type": {
   541  						"int": {
   542  							"byte_size": 8,
   543  							"name": "long",
   544  							"base": "long"
   545  						}
   546  					}
   547  				}
   548  			]
   549  		},
   550  		{
   551  			"name": "anon_struct_a",
   552  			"byte_size": 4,
   553  			"align": 4,
   554  			"fields": [
   555  				{
   556  					"name": "x",
   557  					"counted_by": -1,
   558  					"type": {
   559  						"int": {
   560  							"byte_size": 4,
   561  							"name": "int",
   562  							"base": "int"
   563  						}
   564  					}
   565  				}
   566  			]
   567  		},
   568  		{
   569  			"name": "anon_struct_array",
   570  			"byte_size": 8,
   571  			"align": 4,
   572  			"fields": [
   573  				{
   574  					"name": "a",
   575  					"counted_by": -1,
   576  					"type": {
   577  						"int": {
   578  							"byte_size": 4,
   579  							"name": "int",
   580  							"base": "int"
   581  						}
   582  					}
   583  				},
   584  				{
   585  					"name": "b",
   586  					"counted_by": -1,
   587  					"type": {
   588  						"int": {
   589  							"byte_size": 4,
   590  							"name": "int",
   591  							"base": "int"
   592  						}
   593  					}
   594  				}
   595  			]
   596  		},
   597  		{
   598  			"name": "anon_struct_b",
   599  			"align": 1
   600  		},
   601  		{
   602  			"name": "anon_struct_ptr",
   603  			"byte_size": 8,
   604  			"align": 4,
   605  			"fields": [
   606  				{
   607  					"name": "a",
   608  					"counted_by": -1,
   609  					"type": {
   610  						"int": {
   611  							"byte_size": 4,
   612  							"name": "int",
   613  							"base": "int"
   614  						}
   615  					}
   616  				},
   617  				{
   618  					"name": "b",
   619  					"counted_by": -1,
   620  					"type": {
   621  						"int": {
   622  							"byte_size": 4,
   623  							"name": "int",
   624  							"base": "int"
   625  						}
   626  					}
   627  				}
   628  			]
   629  		},
   630  		{
   631  			"name": "anon_struct_ptr_array",
   632  			"byte_size": 8,
   633  			"align": 4,
   634  			"fields": [
   635  				{
   636  					"name": "a",
   637  					"counted_by": -1,
   638  					"type": {
   639  						"int": {
   640  							"byte_size": 4,
   641  							"name": "int",
   642  							"base": "int"
   643  						}
   644  					}
   645  				},
   646  				{
   647  					"name": "b",
   648  					"counted_by": -1,
   649  					"type": {
   650  						"int": {
   651  							"byte_size": 4,
   652  							"name": "int",
   653  							"base": "int"
   654  						}
   655  					}
   656  				}
   657  			]
   658  		},
   659  		{
   660  			"name": "anon_t",
   661  			"byte_size": 4,
   662  			"align": 4,
   663  			"fields": [
   664  				{
   665  					"name": "f",
   666  					"counted_by": -1,
   667  					"type": {
   668  						"int": {
   669  							"byte_size": 4,
   670  							"name": "float",
   671  							"base": "float"
   672  						}
   673  					}
   674  				}
   675  			]
   676  		},
   677  		{
   678  			"name": "bitfields",
   679  			"byte_size": 32,
   680  			"align": 32,
   681  			"align_attr": 32,
   682  			"fields": [
   683  				{
   684  					"name": "a",
   685  					"bit_width": 1,
   686  					"counted_by": -1,
   687  					"type": {
   688  						"int": {
   689  							"byte_size": 4,
   690  							"name": "int",
   691  							"base": "int"
   692  						}
   693  					}
   694  				},
   695  				{
   696  					"name": "bitfields_1",
   697  					"is_anonymous": true,
   698  					"bit_width": 2,
   699  					"counted_by": -1,
   700  					"type": {
   701  						"int": {
   702  							"byte_size": 4,
   703  							"name": "int",
   704  							"base": "int"
   705  						}
   706  					}
   707  				},
   708  				{
   709  					"name": "b",
   710  					"bit_width": 3,
   711  					"counted_by": -1,
   712  					"type": {
   713  						"int": {
   714  							"byte_size": 4,
   715  							"name": "int",
   716  							"base": "int"
   717  						}
   718  					}
   719  				},
   720  				{
   721  					"name": "d",
   722  					"bit_width": 2,
   723  					"counted_by": -1,
   724  					"type": {
   725  						"int": {
   726  							"byte_size": 8,
   727  							"name": "long",
   728  							"base": "long"
   729  						}
   730  					}
   731  				},
   732  				{
   733  					"name": "pad",
   734  					"bit_width": 3,
   735  					"counted_by": -1,
   736  					"type": {
   737  						"int": {
   738  							"byte_size": 8,
   739  							"name": "long",
   740  							"base": "long"
   741  						}
   742  					}
   743  				},
   744  				{
   745  					"name": "e",
   746  					"bit_width": 10,
   747  					"counted_by": -1,
   748  					"type": {
   749  						"int": {
   750  							"byte_size": 4,
   751  							"enum": "bitfield_enum"
   752  						}
   753  					}
   754  				},
   755  				{
   756  					"name": "l",
   757  					"bit_width": 10,
   758  					"counted_by": -1,
   759  					"type": {
   760  						"int": {
   761  							"byte_size": 4,
   762  							"name": "int",
   763  							"base": "int"
   764  						}
   765  					}
   766  				},
   767  				{
   768  					"name": "p",
   769  					"counted_by": 6,
   770  					"type": {
   771  						"ptr": {
   772  							"elem": {
   773  								"int": {
   774  									"byte_size": 4,
   775  									"name": "int",
   776  									"base": "int"
   777  								}
   778  							}
   779  						}
   780  					}
   781  				}
   782  			]
   783  		},
   784  		{
   785  			"name": "empty_struct",
   786  			"align": 1
   787  		},
   788  		{
   789  			"name": "large_struct",
   790  			"byte_size": 80,
   791  			"align": 8,
   792  			"fields": [
   793  				{
   794  					"name": "foo",
   795  					"counted_by": -1,
   796  					"type": {
   797  						"array": {
   798  							"elem": {
   799  								"int": {
   800  									"byte_size": 8,
   801  									"name": "long",
   802  									"base": "long"
   803  								}
   804  							},
   805  							"min_size": 10,
   806  							"max_size": 10,
   807  							"align": 8,
   808  							"is_const_size": true
   809  						}
   810  					}
   811  				}
   812  			]
   813  		},
   814  		{
   815  			"name": "packed_t",
   816  			"byte_size": 32,
   817  			"align": 32,
   818  			"is_packed": true,
   819  			"align_attr": 32,
   820  			"fields": [
   821  				{
   822  					"name": "x",
   823  					"counted_by": -1,
   824  					"type": {
   825  						"int": {
   826  							"byte_size": 1,
   827  							"name": "char",
   828  							"base": "char"
   829  						}
   830  					}
   831  				},
   832  				{
   833  					"name": "y",
   834  					"counted_by": -1,
   835  					"type": {
   836  						"int": {
   837  							"byte_size": 4,
   838  							"name": "int",
   839  							"base": "int"
   840  						}
   841  					}
   842  				}
   843  			]
   844  		},
   845  		{
   846  			"name": "recursive",
   847  			"byte_size": 64,
   848  			"align": 32,
   849  			"fields": [
   850  				{
   851  					"name": "various",
   852  					"counted_by": -1,
   853  					"type": {
   854  						"struct": "various"
   855  					}
   856  				}
   857  			]
   858  		},
   859  		{
   860  			"name": "various",
   861  			"byte_size": 64,
   862  			"align": 32,
   863  			"fields": [
   864  				{
   865  					"name": "recursive",
   866  					"counted_by": -1,
   867  					"type": {
   868  						"ptr": {
   869  							"elem": {
   870  								"struct": "various"
   871  							}
   872  						}
   873  					}
   874  				},
   875  				{
   876  					"name": "next",
   877  					"counted_by": -1,
   878  					"type": {
   879  						"ptr": {
   880  							"elem": {
   881  								"struct": "recursive"
   882  							}
   883  						}
   884  					}
   885  				},
   886  				{
   887  					"name": "packed",
   888  					"counted_by": -1,
   889  					"type": {
   890  						"struct": "packed_t"
   891  					}
   892  				}
   893  			]
   894  		}
   895  	],
   896  	"syscalls": [
   897  		{
   898  			"func": "__do_sys_align_syscall",
   899  			"args": [
   900  				{
   901  					"name": "a1",
   902  					"counted_by": -1,
   903  					"type": {
   904  						"ptr": {
   905  							"elem": {
   906  								"struct": "align1"
   907  							}
   908  						}
   909  					}
   910  				},
   911  				{
   912  					"name": "a2",
   913  					"counted_by": -1,
   914  					"type": {
   915  						"ptr": {
   916  							"elem": {
   917  								"struct": "align2"
   918  							}
   919  						}
   920  					}
   921  				},
   922  				{
   923  					"name": "a3",
   924  					"counted_by": -1,
   925  					"type": {
   926  						"ptr": {
   927  							"elem": {
   928  								"struct": "align3"
   929  							}
   930  						}
   931  					}
   932  				},
   933  				{
   934  					"name": "a4",
   935  					"counted_by": -1,
   936  					"type": {
   937  						"ptr": {
   938  							"elem": {
   939  								"struct": "align4"
   940  							}
   941  						}
   942  					}
   943  				}
   944  			],
   945  			"source_file": "types.c"
   946  		},
   947  		{
   948  			"func": "__do_sys_types_syscall",
   949  			"args": [
   950  				{
   951  					"name": "p",
   952  					"counted_by": -1,
   953  					"type": {
   954  						"ptr": {
   955  							"elem": {
   956  								"struct": "anon_struct"
   957  							}
   958  						}
   959  					}
   960  				},
   961  				{
   962  					"name": "y",
   963  					"counted_by": -1,
   964  					"type": {
   965  						"ptr": {
   966  							"elem": {
   967  								"struct": "empty_struct"
   968  							}
   969  						}
   970  					}
   971  				},
   972  				{
   973  					"name": "b",
   974  					"counted_by": -1,
   975  					"type": {
   976  						"ptr": {
   977  							"elem": {
   978  								"struct": "bitfields"
   979  							}
   980  						}
   981  					}
   982  				},
   983  				{
   984  					"name": "pid",
   985  					"counted_by": -1,
   986  					"type": {
   987  						"int": {
   988  							"byte_size": 4,
   989  							"name": "int",
   990  							"base": "int"
   991  						}
   992  					}
   993  				},
   994  				{
   995  					"name": "f",
   996  					"counted_by": -1,
   997  					"type": {
   998  						"int": {
   999  							"byte_size": 4,
  1000  							"name": "fd_t",
  1001  							"base": "int"
  1002  						}
  1003  					}
  1004  				},
  1005  				{
  1006  					"name": "v",
  1007  					"counted_by": -1,
  1008  					"type": {
  1009  						"ptr": {
  1010  							"elem": {
  1011  								"struct": "various"
  1012  							}
  1013  						}
  1014  					}
  1015  				},
  1016  				{
  1017  					"name": "pi",
  1018  					"counted_by": -1,
  1019  					"type": {
  1020  						"ptr": {
  1021  							"elem": {
  1022  								"int": {
  1023  									"byte_size": 4,
  1024  									"name": "int",
  1025  									"base": "int"
  1026  								}
  1027  							}
  1028  						}
  1029  					}
  1030  				},
  1031  				{
  1032  					"name": "pu",
  1033  					"counted_by": -1,
  1034  					"type": {
  1035  						"ptr": {
  1036  							"elem": {
  1037  								"int": {
  1038  									"byte_size": 4,
  1039  									"name": "u32",
  1040  									"base": "unsigned int"
  1041  								}
  1042  							}
  1043  						}
  1044  					}
  1045  				}
  1046  			],
  1047  			"source_file": "types.c"
  1048  		},
  1049  		{
  1050  			"func": "__do_sys_types_syscall2",
  1051  			"args": [
  1052  				{
  1053  					"name": "foo",
  1054  					"counted_by": -1,
  1055  					"type": {
  1056  						"int": {
  1057  							"byte_size": 4,
  1058  							"enum": "enum_foo"
  1059  						}
  1060  					}
  1061  				},
  1062  				{
  1063  					"name": "bar",
  1064  					"counted_by": -1,
  1065  					"type": {
  1066  						"int": {
  1067  							"byte_size": 4,
  1068  							"enum": "enum_bar"
  1069  						}
  1070  					}
  1071  				}
  1072  			],
  1073  			"source_file": "types.c"
  1074  		}
  1075  	]
  1076  }